aboutsummaryrefslogtreecommitdiffstats
path: root/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam
diff options
context:
space:
mode:
Diffstat (limited to 'Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam')
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/debug/errors.txt458
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/debug/generated3valued.vql_deactivated41824
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/debug/generation.logicproblem1937
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/debug/init.partialmodel396
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/debug/problem.als32
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/log.txt2
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/1.gml8442
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/1.pngbin159195 -> 68150 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/1.xmi19
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/2.gml6135
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/2.pngbin177546 -> 64057 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/2.xmi19
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/3.gml4789
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/3.pngbin177661 -> 64831 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/3.xmi20
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/4.gml6651
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/4.pngbin189772 -> 80996 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/4.xmi17
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/5.gml6737
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/5.pngbin194199 -> 66383 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/5.xmi16
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/statistics.csv68
22 files changed, 31090 insertions, 46472 deletions
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/debug/errors.txt b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/debug/errors.txt
index e96fe7c5..0e9e29c6 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/debug/errors.txt
+++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/debug/errors.txt
@@ -1,9 +1,50 @@
1Error occured (IllegalStateException): Query ca.mcgill.ecse.dslreasoner.standalone.test.fam.terminatorAndInformation contains errors. 1Error occured (UnsupportedOperationException): Can not transform pattern "ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.type"! Reason: Unknown constant type: class ca.mcgill.ecse.dslreasoner.standalone.test.fam.FunctionType
2 org.eclipse.viatra.query.runtime.matchers.util.Preconditions.checkState(Preconditions.java:144) 2 hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.patterns.RelationDefinitionIndexer.transformPattern(RelationDefinitionIndexer.java:205)
3 org.eclipse.viatra.query.patternlanguage.emf.specification.GenericEMFPatternPQuery.getDisjunctBodies(GenericEMFPatternPQuery.java:161) 3 hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.patterns.RelationDefinitionIndexer.generateRelationDefinitions(RelationDefinitionIndexer.java:66)
4 org.eclipse.viatra.query.runtime.matchers.psystem.rewriters.PDisjunctionRewriter.rewrite(PDisjunctionRewriter.java:26) 4 hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.patterns.PatternGenerator.transformBaseProperties(PatternGenerator.java:423)
5 hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic.transformQueries(Viatra2Logic.java:111) 5 hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.patterns.PatternProvider.generateQueries(PatternProvider.java:59)
6 hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:196) 6 hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.ModelGenerationMethodProvider.createModelGenerationMethod(ModelGenerationMethodProvider.java:57)
7 hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.ViatraReasoner.solve(ViatraReasoner.java:96)
8 hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:316)
9 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:130)
10 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:339)
11 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:111)
12 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73)
13 org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (UnsupportedOperationException): Can not transform pattern "ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.type"! Reason: Unknown constant type: class ca.mcgill.ecse.dslreasoner.standalone.test.fam.FunctionType
14 hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.patterns.RelationDefinitionIndexer.transformPattern(RelationDefinitionIndexer.java:205)
15 hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.patterns.RelationDefinitionIndexer.generateRelationDefinitions(RelationDefinitionIndexer.java:66)
16 hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.patterns.PatternGenerator.transformBaseProperties(PatternGenerator.java:423)
17 hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.patterns.PatternProvider.generateQueries(PatternProvider.java:59)
18 hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.ModelGenerationMethodProvider.createModelGenerationMethod(ModelGenerationMethodProvider.java:57)
19 hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.ViatraReasoner.solve(ViatraReasoner.java:96)
20 hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:316)
21 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:130)
22 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:339)
23 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:111)
24 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73)
25 org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (UnsupportedOperationException): Can not transform pattern "ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.type"! Reason: Unknown constant type: class ca.mcgill.ecse.dslreasoner.standalone.test.fam.FunctionType
26 hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.patterns.RelationDefinitionIndexer.transformPattern(RelationDefinitionIndexer.java:205)
27 hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.patterns.RelationDefinitionIndexer.generateRelationDefinitions(RelationDefinitionIndexer.java:66)
28 hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.patterns.PatternGenerator.transformBaseProperties(PatternGenerator.java:423)
29 hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.patterns.PatternProvider.generateQueries(PatternProvider.java:59)
30 hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.ModelGenerationMethodProvider.createModelGenerationMethod(ModelGenerationMethodProvider.java:57)
31 hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.ViatraReasoner.solve(ViatraReasoner.java:96)
32 hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:316)
33 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:130)
34 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:339)
35 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:111)
36 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73)
37 org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (NoSuchElementException): Cannot find entry with FQN ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.model
38 org.eclipse.viatra.query.runtime.registry.impl.GlobalRegistryView.getEntry(GlobalRegistryView.java:56)
39 org.eclipse.viatra.addon.querybasedfeatures.runtime.QueryBasedFeatureSettingDelegateFactory.findQuerySpecification(QueryBasedFeatureSettingDelegateFactory.java:152)
40 org.eclipse.viatra.addon.querybasedfeatures.runtime.QueryBasedFeatureSettingDelegateFactory.createSettingDelegate(QueryBasedFeatureSettingDelegateFactory.java:113)
41 org.eclipse.emf.ecore.impl.EStructuralFeatureImpl.getSettingDelegate(EStructuralFeatureImpl.java:854)
42 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.FunctionalElementImpl.<init>(FunctionalElementImpl.java:57)
43 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.FunctionImpl.<init>(FunctionImpl.java:64)
44 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.famFactoryImpl.createFunction(famFactoryImpl.java:125)
45 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.famFactoryImpl.create(famFactoryImpl.java:68)
46 hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore.transformInterpretation(Logic2Ecore.java:75)
47 hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:359)
7 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:130) 48 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:130)
8 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:339) 49 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:339)
9 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:111) 50 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:111)
@@ -26,122 +67,108 @@ Error occured (IllegalStateException): Query ca.mcgill.ecse.dslreasoner.standalo
26 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:339) 67 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:339)
27 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:111) 68 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:111)
28 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73) 69 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73)
29 org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (IllegalStateException): Query ca.mcgill.ecse.dslreasoner.standalone.test.fam.terminatorAndInformation contains errors. 70 org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (NullPointerException):
30 org.eclipse.viatra.query.runtime.matchers.util.Preconditions.checkState(Preconditions.java:144) 71 hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder.Alloy2LogicMapper.transformOutput(Alloy2LogicMapper.java:53)
31 org.eclipse.viatra.query.patternlanguage.emf.specification.GenericEMFPatternPQuery.getDisjunctBodies(GenericEMFPatternPQuery.java:161) 72 hu.bme.mit.inf.dlsreasoner.alloy.reasoner.AlloySolver.solve(AlloySolver.java:66)
32 org.eclipse.viatra.query.runtime.matchers.psystem.rewriters.PDisjunctionRewriter.rewrite(PDisjunctionRewriter.java:26) 73 hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:316)
33 hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic.transformQueries(Viatra2Logic.java:111)
34 hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:196)
35 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:130)
36 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:339)
37 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:111)
38 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73)
39 org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (IllegalStateException): Query ca.mcgill.ecse.dslreasoner.standalone.test.fam.terminatorAndInformation contains errors.
40 org.eclipse.viatra.query.runtime.matchers.util.Preconditions.checkState(Preconditions.java:144)
41 org.eclipse.viatra.query.patternlanguage.emf.specification.GenericEMFPatternPQuery.getDisjunctBodies(GenericEMFPatternPQuery.java:161)
42 org.eclipse.viatra.query.runtime.matchers.psystem.rewriters.PDisjunctionRewriter.rewrite(PDisjunctionRewriter.java:26)
43 hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic.transformQueries(Viatra2Logic.java:111)
44 hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:196)
45 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:130) 74 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:130)
46 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:339) 75 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:339)
47 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:111) 76 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:111)
48 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73) 77 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73)
49 org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (IllegalStateException): Query ca.mcgill.ecse.dslreasoner.standalone.test.fam.terminatorAndInformation contains errors. 78 org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (NoSuchElementException): Cannot find entry with FQN ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.type
50 org.eclipse.viatra.query.runtime.matchers.util.Preconditions.checkState(Preconditions.java:144) 79 org.eclipse.viatra.query.runtime.registry.impl.GlobalRegistryView.getEntry(GlobalRegistryView.java:56)
51 org.eclipse.viatra.query.patternlanguage.emf.specification.GenericEMFPatternPQuery.getDisjunctBodies(GenericEMFPatternPQuery.java:161) 80 org.eclipse.viatra.addon.querybasedfeatures.runtime.QueryBasedFeatureSettingDelegateFactory.findQuerySpecification(QueryBasedFeatureSettingDelegateFactory.java:152)
52 org.eclipse.viatra.query.runtime.matchers.psystem.rewriters.PDisjunctionRewriter.rewrite(PDisjunctionRewriter.java:26) 81 org.eclipse.viatra.addon.querybasedfeatures.runtime.QueryBasedFeatureSettingDelegateFactory.createSettingDelegate(QueryBasedFeatureSettingDelegateFactory.java:113)
53 hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic.transformQueries(Viatra2Logic.java:111) 82 org.eclipse.emf.ecore.impl.EStructuralFeatureImpl.getSettingDelegate(EStructuralFeatureImpl.java:854)
54 hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:196) 83 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.FunctionImpl.<init>(FunctionImpl.java:56)
84 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.famFactoryImpl.createFunction(famFactoryImpl.java:125)
85 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.famFactoryImpl.create(famFactoryImpl.java:68)
86 hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore.transformInterpretation(Logic2Ecore.java:75)
87 hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:359)
55 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:130) 88 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:130)
56 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:339) 89 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:339)
57 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:111) 90 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:111)
58 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73) 91 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73)
59 org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (IllegalStateException): Query ca.mcgill.ecse.dslreasoner.standalone.test.fam.terminatorAndInformation contains errors. 92 org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (NoSuchElementException): Cannot find entry with FQN ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.type
60 org.eclipse.viatra.query.runtime.matchers.util.Preconditions.checkState(Preconditions.java:144) 93 org.eclipse.viatra.query.runtime.registry.impl.GlobalRegistryView.getEntry(GlobalRegistryView.java:56)
61 org.eclipse.viatra.query.patternlanguage.emf.specification.GenericEMFPatternPQuery.getDisjunctBodies(GenericEMFPatternPQuery.java:161) 94 org.eclipse.viatra.addon.querybasedfeatures.runtime.QueryBasedFeatureSettingDelegateFactory.findQuerySpecification(QueryBasedFeatureSettingDelegateFactory.java:152)
62 org.eclipse.viatra.query.runtime.matchers.psystem.rewriters.PDisjunctionRewriter.rewrite(PDisjunctionRewriter.java:26) 95 org.eclipse.viatra.addon.querybasedfeatures.runtime.QueryBasedFeatureSettingDelegateFactory.createSettingDelegate(QueryBasedFeatureSettingDelegateFactory.java:113)
63 hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic.transformQueries(Viatra2Logic.java:111) 96 org.eclipse.emf.ecore.impl.EStructuralFeatureImpl.getSettingDelegate(EStructuralFeatureImpl.java:854)
64 hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:196) 97 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.FunctionImpl.<init>(FunctionImpl.java:56)
98 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.famFactoryImpl.createFunction(famFactoryImpl.java:125)
99 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.famFactoryImpl.create(famFactoryImpl.java:68)
100 hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore.transformInterpretation(Logic2Ecore.java:75)
101 hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:359)
65 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:130) 102 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:130)
66 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:339) 103 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:339)
67 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:111) 104 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:111)
68 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73) 105 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73)
69 org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (IllegalStateException): Query ca.mcgill.ecse.dslreasoner.standalone.test.fam.terminatorAndInformation contains errors. 106 org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (NoSuchElementException): Cannot find entry with FQN ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.type
70 org.eclipse.viatra.query.runtime.matchers.util.Preconditions.checkState(Preconditions.java:144) 107 org.eclipse.viatra.query.runtime.registry.impl.GlobalRegistryView.getEntry(GlobalRegistryView.java:56)
71 org.eclipse.viatra.query.patternlanguage.emf.specification.GenericEMFPatternPQuery.getDisjunctBodies(GenericEMFPatternPQuery.java:161) 108 org.eclipse.viatra.addon.querybasedfeatures.runtime.QueryBasedFeatureSettingDelegateFactory.findQuerySpecification(QueryBasedFeatureSettingDelegateFactory.java:152)
72 org.eclipse.viatra.query.runtime.matchers.psystem.rewriters.PDisjunctionRewriter.rewrite(PDisjunctionRewriter.java:26) 109 org.eclipse.viatra.addon.querybasedfeatures.runtime.QueryBasedFeatureSettingDelegateFactory.createSettingDelegate(QueryBasedFeatureSettingDelegateFactory.java:113)
73 hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic.transformQueries(Viatra2Logic.java:111) 110 org.eclipse.emf.ecore.impl.EStructuralFeatureImpl.getSettingDelegate(EStructuralFeatureImpl.java:854)
74 hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:196) 111 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.FunctionImpl.<init>(FunctionImpl.java:56)
112 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.famFactoryImpl.createFunction(famFactoryImpl.java:125)
113 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.famFactoryImpl.create(famFactoryImpl.java:68)
114 hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore.transformInterpretation(Logic2Ecore.java:75)
115 hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:359)
75 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:130) 116 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:130)
76 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:339) 117 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:339)
77 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:111) 118 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:111)
78 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73) 119 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73)
79 org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (IllegalStateException): Query ca.mcgill.ecse.dslreasoner.standalone.test.fam.terminatorAndInformation contains errors. 120 org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (NoSuchElementException): Cannot find entry with FQN ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.type
80 org.eclipse.viatra.query.runtime.matchers.util.Preconditions.checkState(Preconditions.java:144) 121 org.eclipse.viatra.query.runtime.registry.impl.GlobalRegistryView.getEntry(GlobalRegistryView.java:56)
81 org.eclipse.viatra.query.patternlanguage.emf.specification.GenericEMFPatternPQuery.getDisjunctBodies(GenericEMFPatternPQuery.java:161) 122 org.eclipse.viatra.addon.querybasedfeatures.runtime.QueryBasedFeatureSettingDelegateFactory.findQuerySpecification(QueryBasedFeatureSettingDelegateFactory.java:152)
82 org.eclipse.viatra.query.runtime.matchers.psystem.rewriters.PDisjunctionRewriter.rewrite(PDisjunctionRewriter.java:26) 123 org.eclipse.viatra.addon.querybasedfeatures.runtime.QueryBasedFeatureSettingDelegateFactory.createSettingDelegate(QueryBasedFeatureSettingDelegateFactory.java:113)
83 hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic.transformQueries(Viatra2Logic.java:111) 124 org.eclipse.emf.ecore.impl.EStructuralFeatureImpl.getSettingDelegate(EStructuralFeatureImpl.java:854)
84 hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:196) 125 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.FunctionImpl.<init>(FunctionImpl.java:56)
126 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.famFactoryImpl.createFunction(famFactoryImpl.java:125)
127 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.famFactoryImpl.create(famFactoryImpl.java:68)
128 hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore.transformInterpretation(Logic2Ecore.java:75)
129 hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:359)
85 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:130) 130 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:130)
86 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:339) 131 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:339)
87 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:111) 132 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:111)
88 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73) 133 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73)
89 org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (IllegalStateException): Query ca.mcgill.ecse.dslreasoner.standalone.test.fam.terminatorAndInformation contains errors. 134 org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (NoSuchElementException): Cannot find entry with FQN ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.type
90 org.eclipse.viatra.query.runtime.matchers.util.Preconditions.checkState(Preconditions.java:144) 135 org.eclipse.viatra.query.runtime.registry.impl.GlobalRegistryView.getEntry(GlobalRegistryView.java:56)
91 org.eclipse.viatra.query.patternlanguage.emf.specification.GenericEMFPatternPQuery.getDisjunctBodies(GenericEMFPatternPQuery.java:161) 136 org.eclipse.viatra.addon.querybasedfeatures.runtime.QueryBasedFeatureSettingDelegateFactory.findQuerySpecification(QueryBasedFeatureSettingDelegateFactory.java:152)
92 org.eclipse.viatra.query.runtime.matchers.psystem.rewriters.PDisjunctionRewriter.rewrite(PDisjunctionRewriter.java:26) 137 org.eclipse.viatra.addon.querybasedfeatures.runtime.QueryBasedFeatureSettingDelegateFactory.createSettingDelegate(QueryBasedFeatureSettingDelegateFactory.java:113)
93 hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic.transformQueries(Viatra2Logic.java:111) 138 org.eclipse.emf.ecore.impl.EStructuralFeatureImpl.getSettingDelegate(EStructuralFeatureImpl.java:854)
94 hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:196) 139 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.FunctionImpl.<init>(FunctionImpl.java:56)
140 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.famFactoryImpl.createFunction(famFactoryImpl.java:125)
141 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.famFactoryImpl.create(famFactoryImpl.java:68)
142 hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore.transformInterpretation(Logic2Ecore.java:75)
143 hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:359)
95 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:130) 144 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:130)
96 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:339) 145 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:339)
97 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:111) 146 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:111)
98 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73) 147 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73)
99 org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (IllegalStateException): Query ca.mcgill.ecse.dslreasoner.standalone.test.fam.terminatorAndInformation contains errors. 148 org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (NoSuchElementException): Cannot find entry with FQN ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.type
100 org.eclipse.viatra.query.runtime.matchers.util.Preconditions.checkState(Preconditions.java:144) 149 org.eclipse.viatra.query.runtime.registry.impl.GlobalRegistryView.getEntry(GlobalRegistryView.java:56)
101 org.eclipse.viatra.query.patternlanguage.emf.specification.GenericEMFPatternPQuery.getDisjunctBodies(GenericEMFPatternPQuery.java:161) 150 org.eclipse.viatra.addon.querybasedfeatures.runtime.QueryBasedFeatureSettingDelegateFactory.findQuerySpecification(QueryBasedFeatureSettingDelegateFactory.java:152)
102 org.eclipse.viatra.query.runtime.matchers.psystem.rewriters.PDisjunctionRewriter.rewrite(PDisjunctionRewriter.java:26) 151 org.eclipse.viatra.addon.querybasedfeatures.runtime.QueryBasedFeatureSettingDelegateFactory.createSettingDelegate(QueryBasedFeatureSettingDelegateFactory.java:113)
103 hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic.transformQueries(Viatra2Logic.java:111) 152 org.eclipse.emf.ecore.impl.EStructuralFeatureImpl.getSettingDelegate(EStructuralFeatureImpl.java:854)
104 hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:196) 153 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.FunctionImpl.<init>(FunctionImpl.java:56)
105 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:130) 154 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.famFactoryImpl.createFunction(famFactoryImpl.java:125)
106 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:339) 155 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.famFactoryImpl.create(famFactoryImpl.java:68)
107 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:111) 156 hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore.transformInterpretation(Logic2Ecore.java:75)
108 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73) 157 hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:359)
109 org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (IllegalStateException): Query ca.mcgill.ecse.dslreasoner.standalone.test.fam.terminatorAndInformation contains errors.
110 org.eclipse.viatra.query.runtime.matchers.util.Preconditions.checkState(Preconditions.java:144)
111 org.eclipse.viatra.query.patternlanguage.emf.specification.GenericEMFPatternPQuery.getDisjunctBodies(GenericEMFPatternPQuery.java:161)
112 org.eclipse.viatra.query.runtime.matchers.psystem.rewriters.PDisjunctionRewriter.rewrite(PDisjunctionRewriter.java:26)
113 hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic.transformQueries(Viatra2Logic.java:111)
114 hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:196)
115 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:130) 158 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:130)
116 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:339) 159 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:339)
117 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:111) 160 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:111)
118 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73) 161 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73)
119 org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (IllegalStateException): Query ca.mcgill.ecse.dslreasoner.standalone.test.fam.terminatorAndInformation contains errors. 162 org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (NoSuchElementException): Cannot find entry with FQN ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.type
120 org.eclipse.viatra.query.runtime.matchers.util.Preconditions.checkState(Preconditions.java:144) 163 org.eclipse.viatra.query.runtime.registry.impl.GlobalRegistryView.getEntry(GlobalRegistryView.java:56)
121 org.eclipse.viatra.query.patternlanguage.emf.specification.GenericEMFPatternPQuery.getDisjunctBodies(GenericEMFPatternPQuery.java:161) 164 org.eclipse.viatra.addon.querybasedfeatures.runtime.QueryBasedFeatureSettingDelegateFactory.findQuerySpecification(QueryBasedFeatureSettingDelegateFactory.java:152)
122 org.eclipse.viatra.query.runtime.matchers.psystem.rewriters.PDisjunctionRewriter.rewrite(PDisjunctionRewriter.java:26) 165 org.eclipse.viatra.addon.querybasedfeatures.runtime.QueryBasedFeatureSettingDelegateFactory.createSettingDelegate(QueryBasedFeatureSettingDelegateFactory.java:113)
123 hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic.transformQueries(Viatra2Logic.java:111) 166 org.eclipse.emf.ecore.impl.EStructuralFeatureImpl.getSettingDelegate(EStructuralFeatureImpl.java:854)
124 hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:196) 167 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.FunctionImpl.<init>(FunctionImpl.java:56)
125 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:130) 168 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.famFactoryImpl.createFunction(famFactoryImpl.java:125)
126 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:339) 169 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.famFactoryImpl.create(famFactoryImpl.java:68)
127 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:111) 170 hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore.transformInterpretation(Logic2Ecore.java:75)
128 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73) 171 hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:359)
129 org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (IllegalStateException): Query ca.mcgill.ecse.dslreasoner.standalone.test.xyz.terminatorAndInformation contains errors.
130 org.eclipse.viatra.query.runtime.matchers.util.Preconditions.checkState(Preconditions.java:144)
131 org.eclipse.viatra.query.patternlanguage.emf.specification.GenericEMFPatternPQuery.getDisjunctBodies(GenericEMFPatternPQuery.java:161)
132 org.eclipse.viatra.query.runtime.matchers.psystem.rewriters.PDisjunctionRewriter.rewrite(PDisjunctionRewriter.java:26)
133 hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic.transformQueries(Viatra2Logic.java:111)
134 hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:196)
135 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:130)
136 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:339)
137 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:111)
138 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73)
139 org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (IllegalStateException): Query ca.mcgill.ecse.dslreasoner.standalone.test.xyz.terminatorAndInformation contains errors.
140 org.eclipse.viatra.query.runtime.matchers.util.Preconditions.checkState(Preconditions.java:144)
141 org.eclipse.viatra.query.patternlanguage.emf.specification.GenericEMFPatternPQuery.getDisjunctBodies(GenericEMFPatternPQuery.java:161)
142 org.eclipse.viatra.query.runtime.matchers.psystem.rewriters.PDisjunctionRewriter.rewrite(PDisjunctionRewriter.java:26)
143 hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic.transformQueries(Viatra2Logic.java:111)
144 hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:196)
145 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:130) 172 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:130)
146 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:339) 173 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:339)
147 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:111) 174 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:111)
@@ -182,34 +209,6 @@ Error occured (IllegalStateException): Query ca.mcgill.ecse.dslreasoner.standalo
182 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:339) 209 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:339)
183 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:111) 210 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:111)
184 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73) 211 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73)
185 org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (UnsupportedOperationException): Unsupported attribute type: EJavaClass of org.eclipse.emf.ecore.impl.EcorePackageImpl@eddc9bb (name: ecore) (nsURI: http://www.eclipse.org/emf/2002/Ecore, nsPrefix: ecore)::EClassifier.instanceClass
186 hu.bme.mit.inf.dslreasoner.ecore2logic.EAttributeMapper_RelationsOverTypes.TypeOfRange(EAttributeMapper_RelationsOverTypes.java:237)
187 hu.bme.mit.inf.dslreasoner.ecore2logic.EAttributeMapper_RelationsOverTypes.transformEAttributes(EAttributeMapper_RelationsOverTypes.java:70)
188 hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic.transformEAttributes(Ecore2Logic.java:140)
189 hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic.transformMetamodel(Ecore2Logic.java:83)
190 hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:189)
191 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:130)
192 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:339)
193 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:111)
194 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73)
195 org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (NullPointerException):
196 hu.bme.mit.inf.dslreasoner.application.execution.QueryLoader.lambda$8(QueryLoader.java:108)
197 org.eclipse.xtext.xbase.lib.internal.BooleanFunctionDelegate.apply(BooleanFunctionDelegate.java:41)
198 com.google.common.collect.Iterators$6.computeNext(Iterators.java:617)
199 com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:145)
200 com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:140)
201 com.google.common.collect.Iterators.addAll(Iterators.java:366)
202 com.google.common.collect.Iterables.addAll(Iterables.java:332)
203 com.google.common.collect.Sets.newLinkedHashSet(Sets.java:383)
204 org.eclipse.xtext.xbase.lib.IterableExtensions.toSet(IterableExtensions.java:592)
205 hu.bme.mit.inf.dslreasoner.application.execution.QueryLoader._getPatterns(QueryLoader.java:84)
206 hu.bme.mit.inf.dslreasoner.application.execution.QueryLoader.getPatterns(QueryLoader.java:213)
207 hu.bme.mit.inf.dslreasoner.application.execution.QueryLoader.loadQueries(QueryLoader.java:54)
208 hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:167)
209 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:130)
210 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:339)
211 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:111)
212 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73)
213 org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (UnsupportedOperationException): Can not transform pattern "ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.type"! Reason: Unknown constant type: class ca.mcgill.ecse.dslreasoner.standalone.test.fam.FunctionType 212 org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (UnsupportedOperationException): Can not transform pattern "ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.type"! Reason: Unknown constant type: class ca.mcgill.ecse.dslreasoner.standalone.test.fam.FunctionType
214 hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.patterns.RelationDefinitionIndexer.transformPattern(RelationDefinitionIndexer.java:205) 213 hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.patterns.RelationDefinitionIndexer.transformPattern(RelationDefinitionIndexer.java:205)
215 hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.patterns.RelationDefinitionIndexer.generateRelationDefinitions(RelationDefinitionIndexer.java:66) 214 hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.patterns.RelationDefinitionIndexer.generateRelationDefinitions(RelationDefinitionIndexer.java:66)
@@ -234,36 +233,49 @@ Error occured (IllegalStateException): Query ca.mcgill.ecse.dslreasoner.standalo
234 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:339) 233 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:339)
235 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:111) 234 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:111)
236 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73) 235 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73)
237 org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (UnsupportedOperationException): Can not transform pattern "ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.type"! Reason: Unknown constant type: class ca.mcgill.ecse.dslreasoner.standalone.test.fam.FunctionType 236 org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (NoSuchElementException): Cannot find entry with FQN ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.model
238 hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.patterns.RelationDefinitionIndexer.transformPattern(RelationDefinitionIndexer.java:205) 237 org.eclipse.viatra.query.runtime.registry.impl.GlobalRegistryView.getEntry(GlobalRegistryView.java:56)
239 hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.patterns.RelationDefinitionIndexer.generateRelationDefinitions(RelationDefinitionIndexer.java:66) 238 org.eclipse.viatra.addon.querybasedfeatures.runtime.QueryBasedFeatureSettingDelegateFactory.findQuerySpecification(QueryBasedFeatureSettingDelegateFactory.java:152)
240 hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.patterns.PatternGenerator.transformBaseProperties(PatternGenerator.java:423) 239 org.eclipse.viatra.addon.querybasedfeatures.runtime.QueryBasedFeatureSettingDelegateFactory.createSettingDelegate(QueryBasedFeatureSettingDelegateFactory.java:113)
241 hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.patterns.PatternProvider.generateQueries(PatternProvider.java:59) 240 org.eclipse.emf.ecore.impl.EStructuralFeatureImpl.getSettingDelegate(EStructuralFeatureImpl.java:854)
242 hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.ModelGenerationMethodProvider.createModelGenerationMethod(ModelGenerationMethodProvider.java:57) 241 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.FunctionalElementImpl.<init>(FunctionalElementImpl.java:57)
243 hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.ViatraReasoner.solve(ViatraReasoner.java:96) 242 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.FunctionImpl.<init>(FunctionImpl.java:64)
244 hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:316) 243 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.famFactoryImpl.createFunction(famFactoryImpl.java:125)
244 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.famFactoryImpl.create(famFactoryImpl.java:68)
245 hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore.transformInterpretation(Logic2Ecore.java:75)
246 hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:359)
245 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:130) 247 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:130)
246 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:339) 248 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:339)
247 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:111) 249 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:111)
248 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73) 250 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73)
249 org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (UnsupportedOperationException): Can not transform pattern "ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.type"! Reason: Unknown constant type: class ca.mcgill.ecse.dslreasoner.standalone.test.fam.FunctionType 251 org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (NoSuchElementException): Cannot find entry with FQN ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.model
250 hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.patterns.RelationDefinitionIndexer.transformPattern(RelationDefinitionIndexer.java:205) 252 org.eclipse.viatra.query.runtime.registry.impl.GlobalRegistryView.getEntry(GlobalRegistryView.java:56)
251 hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.patterns.RelationDefinitionIndexer.generateRelationDefinitions(RelationDefinitionIndexer.java:66) 253 org.eclipse.viatra.addon.querybasedfeatures.runtime.QueryBasedFeatureSettingDelegateFactory.findQuerySpecification(QueryBasedFeatureSettingDelegateFactory.java:152)
252 hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.patterns.PatternGenerator.transformBaseProperties(PatternGenerator.java:423) 254 org.eclipse.viatra.addon.querybasedfeatures.runtime.QueryBasedFeatureSettingDelegateFactory.createSettingDelegate(QueryBasedFeatureSettingDelegateFactory.java:113)
253 hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.patterns.PatternProvider.generateQueries(PatternProvider.java:59) 255 org.eclipse.emf.ecore.impl.EStructuralFeatureImpl.getSettingDelegate(EStructuralFeatureImpl.java:854)
254 hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.ModelGenerationMethodProvider.createModelGenerationMethod(ModelGenerationMethodProvider.java:57) 256 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.FunctionalElementImpl.<init>(FunctionalElementImpl.java:57)
255 hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.ViatraReasoner.solve(ViatraReasoner.java:96) 257 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.FunctionImpl.<init>(FunctionImpl.java:64)
256 hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:316) 258 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.famFactoryImpl.createFunction(famFactoryImpl.java:125)
259 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.famFactoryImpl.create(famFactoryImpl.java:68)
260 hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore.transformInterpretation(Logic2Ecore.java:75)
261 hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:359)
257 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:130) 262 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:130)
258 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:339) 263 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:339)
259 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:111) 264 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:111)
260 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73) 265 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73)
261 org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (NullPointerException): 266 org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (NoSuchElementException): Cannot find entry with FQN ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.model
262 hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder.Alloy2LogicMapper.transformOutput(Alloy2LogicMapper.java:53) 267 org.eclipse.viatra.query.runtime.registry.impl.GlobalRegistryView.getEntry(GlobalRegistryView.java:56)
263 hu.bme.mit.inf.dlsreasoner.alloy.reasoner.AlloySolver.solve(AlloySolver.java:66) 268 org.eclipse.viatra.addon.querybasedfeatures.runtime.QueryBasedFeatureSettingDelegateFactory.findQuerySpecification(QueryBasedFeatureSettingDelegateFactory.java:152)
264 hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:316) 269 org.eclipse.viatra.addon.querybasedfeatures.runtime.QueryBasedFeatureSettingDelegateFactory.createSettingDelegate(QueryBasedFeatureSettingDelegateFactory.java:113)
265 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:132) 270 org.eclipse.emf.ecore.impl.EStructuralFeatureImpl.getSettingDelegate(EStructuralFeatureImpl.java:854)
266 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:343) 271 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.FunctionalElementImpl.<init>(FunctionalElementImpl.java:57)
272 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.FunctionImpl.<init>(FunctionImpl.java:64)
273 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.famFactoryImpl.createFunction(famFactoryImpl.java:125)
274 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.famFactoryImpl.create(famFactoryImpl.java:68)
275 hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore.transformInterpretation(Logic2Ecore.java:75)
276 hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:359)
277 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:130)
278 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:339)
267 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:111) 279 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:111)
268 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73) 280 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73)
269 org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (UnsupportedOperationException): Can not transform pattern "ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.type"! Reason: Unknown constant type: class ca.mcgill.ecse.dslreasoner.standalone.test.fam.FunctionType 281 org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (UnsupportedOperationException): Can not transform pattern "ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.type"! Reason: Unknown constant type: class ca.mcgill.ecse.dslreasoner.standalone.test.fam.FunctionType
@@ -274,36 +286,148 @@ Error occured (IllegalStateException): Query ca.mcgill.ecse.dslreasoner.standalo
274 hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.ModelGenerationMethodProvider.createModelGenerationMethod(ModelGenerationMethodProvider.java:57) 286 hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.ModelGenerationMethodProvider.createModelGenerationMethod(ModelGenerationMethodProvider.java:57)
275 hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.ViatraReasoner.solve(ViatraReasoner.java:96) 287 hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.ViatraReasoner.solve(ViatraReasoner.java:96)
276 hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:316) 288 hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:316)
277 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:132) 289 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:130)
278 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:343) 290 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:339)
279 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:111) 291 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:111)
280 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73) 292 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73)
281 org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (UnsupportedOperationException): Can not transform pattern "ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.type"! Reason: Unknown constant type: class ca.mcgill.ecse.dslreasoner.standalone.test.fam.FunctionType 293 org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (NoSuchElementException): Cannot find entry with FQN ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.model
282 hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.patterns.RelationDefinitionIndexer.transformPattern(RelationDefinitionIndexer.java:205) 294 org.eclipse.viatra.query.runtime.registry.impl.GlobalRegistryView.getEntry(GlobalRegistryView.java:56)
283 hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.patterns.RelationDefinitionIndexer.generateRelationDefinitions(RelationDefinitionIndexer.java:66) 295 org.eclipse.viatra.addon.querybasedfeatures.runtime.QueryBasedFeatureSettingDelegateFactory.findQuerySpecification(QueryBasedFeatureSettingDelegateFactory.java:152)
284 hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.patterns.PatternGenerator.transformBaseProperties(PatternGenerator.java:423) 296 org.eclipse.viatra.addon.querybasedfeatures.runtime.QueryBasedFeatureSettingDelegateFactory.createSettingDelegate(QueryBasedFeatureSettingDelegateFactory.java:113)
285 hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.patterns.PatternProvider.generateQueries(PatternProvider.java:59) 297 org.eclipse.emf.ecore.impl.EStructuralFeatureImpl.getSettingDelegate(EStructuralFeatureImpl.java:854)
286 hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.ModelGenerationMethodProvider.createModelGenerationMethod(ModelGenerationMethodProvider.java:57) 298 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.FunctionalElementImpl.<init>(FunctionalElementImpl.java:57)
287 hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.ViatraReasoner.solve(ViatraReasoner.java:96) 299 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.FunctionImpl.<init>(FunctionImpl.java:64)
288 hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:316) 300 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.famFactoryImpl.createFunction(famFactoryImpl.java:125)
289 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:132) 301 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.famFactoryImpl.create(famFactoryImpl.java:68)
290 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:343) 302 hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore.transformInterpretation(Logic2Ecore.java:75)
303 hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:359)
304 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:130)
305 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:339)
291 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:111) 306 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:111)
292 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73) 307 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73)
293 org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (IllegalArgumentException): Unable to translate query "ca.mcgill.ecse.dslreasoner.standalone.test.ecore.queries.oppositeDifferentClass". 308 org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (NoSuchElementException): Cannot find entry with FQN ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.model
294Reason: IllegalArgumentException, Inconsistent types: [EStructuralFeature class, EModelElement class, ENamedElement class, EReference class, EObject class, ETypedElement class] 309 org.eclipse.viatra.query.runtime.registry.impl.GlobalRegistryView.getEntry(GlobalRegistryView.java:56)
295 hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic.transformQueries(Viatra2Logic.java:166) 310 org.eclipse.viatra.addon.querybasedfeatures.runtime.QueryBasedFeatureSettingDelegateFactory.findQuerySpecification(QueryBasedFeatureSettingDelegateFactory.java:152)
296 hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:196) 311 org.eclipse.viatra.addon.querybasedfeatures.runtime.QueryBasedFeatureSettingDelegateFactory.createSettingDelegate(QueryBasedFeatureSettingDelegateFactory.java:113)
297 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:132) 312 org.eclipse.emf.ecore.impl.EStructuralFeatureImpl.getSettingDelegate(EStructuralFeatureImpl.java:854)
298 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:343) 313 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.FunctionalElementImpl.<init>(FunctionalElementImpl.java:57)
314 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.FunctionImpl.<init>(FunctionImpl.java:64)
315 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.famFactoryImpl.createFunction(famFactoryImpl.java:125)
316 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.famFactoryImpl.create(famFactoryImpl.java:68)
317 hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore.transformInterpretation(Logic2Ecore.java:75)
318 hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:359)
319 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:130)
320 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:339)
299 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:111) 321 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:111)
300 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73) 322 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73)
301 org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (IllegalArgumentException): Unable to translate query "ca.mcgill.ecse.dslreasoner.standalone.test.ecore.queries.oppositeDifferentClass". 323 org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (IllegalStateException): Query ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.type contains errors.
302Reason: IllegalArgumentException, Inconsistent types: [EStructuralFeature class, EModelElement class, ENamedElement class, EReference class, EObject class, ETypedElement class] 324 org.eclipse.viatra.query.runtime.matchers.util.Preconditions.checkState(Preconditions.java:144)
303 hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic.transformQueries(Viatra2Logic.java:166) 325 org.eclipse.viatra.query.patternlanguage.emf.specification.GenericEMFPatternPQuery.getDisjunctBodies(GenericEMFPatternPQuery.java:161)
326 org.eclipse.viatra.query.runtime.matchers.psystem.rewriters.PDisjunctionRewriter.rewrite(PDisjunctionRewriter.java:26)
327 hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic.transformQueries(Viatra2Logic.java:111)
304 hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:196) 328 hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:196)
305 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:132) 329 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:130)
306 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:343) 330 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:339)
331 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:111)
332 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73)
333 org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (IllegalArgumentException): Class FunctionalArchitectureModel is not translated to logic!
334 hu.bme.mit.inf.dslreasoner.ecore2logic.EClassMapper_AllElementAsObject.TypeofEClass(EClassMapper_AllElementAsObject.java:63)
335 hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic.TypeofEClass(Ecore2Logic.java:96)
336 hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2PartialInterpretation.transform(InstanceModel2PartialInterpretation.java:99)
337 hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic.transform(InstanceModel2Logic.java:19)
338 hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:192)
339 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:130)
340 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:339)
341 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:111)
342 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73)
343 org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (NoSuchElementException): Cannot find entry with FQN ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.model
344 org.eclipse.viatra.query.runtime.registry.impl.GlobalRegistryView.getEntry(GlobalRegistryView.java:56)
345 org.eclipse.viatra.addon.querybasedfeatures.runtime.QueryBasedFeatureSettingDelegateFactory.findQuerySpecification(QueryBasedFeatureSettingDelegateFactory.java:152)
346 org.eclipse.viatra.addon.querybasedfeatures.runtime.QueryBasedFeatureSettingDelegateFactory.createSettingDelegate(QueryBasedFeatureSettingDelegateFactory.java:113)
347 org.eclipse.emf.ecore.impl.EStructuralFeatureImpl.getSettingDelegate(EStructuralFeatureImpl.java:854)
348 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.FunctionalElementImpl.<init>(FunctionalElementImpl.java:57)
349 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.FunctionImpl.<init>(FunctionImpl.java:64)
350 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.famFactoryImpl.createFunction(famFactoryImpl.java:125)
351 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.famFactoryImpl.create(famFactoryImpl.java:68)
352 hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore.transformInterpretation(Logic2Ecore.java:75)
353 hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:359)
354 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:130)
355 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:339)
356 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:111)
357 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73)
358 org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (NoSuchElementException): Cannot find entry with FQN ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.model
359 org.eclipse.viatra.query.runtime.registry.impl.GlobalRegistryView.getEntry(GlobalRegistryView.java:56)
360 org.eclipse.viatra.addon.querybasedfeatures.runtime.QueryBasedFeatureSettingDelegateFactory.findQuerySpecification(QueryBasedFeatureSettingDelegateFactory.java:152)
361 org.eclipse.viatra.addon.querybasedfeatures.runtime.QueryBasedFeatureSettingDelegateFactory.createSettingDelegate(QueryBasedFeatureSettingDelegateFactory.java:113)
362 org.eclipse.emf.ecore.impl.EStructuralFeatureImpl.getSettingDelegate(EStructuralFeatureImpl.java:854)
363 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.FunctionalElementImpl.<init>(FunctionalElementImpl.java:57)
364 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.FunctionImpl.<init>(FunctionImpl.java:64)
365 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.famFactoryImpl.createFunction(famFactoryImpl.java:125)
366 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.famFactoryImpl.create(famFactoryImpl.java:68)
367 hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore.transformInterpretation(Logic2Ecore.java:75)
368 hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:359)
369 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:130)
370 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:339)
371 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:111)
372 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73)
373 org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (NoSuchElementException): Cannot find entry with FQN ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.model
374 org.eclipse.viatra.query.runtime.registry.impl.GlobalRegistryView.getEntry(GlobalRegistryView.java:56)
375 org.eclipse.viatra.addon.querybasedfeatures.runtime.QueryBasedFeatureSettingDelegateFactory.findQuerySpecification(QueryBasedFeatureSettingDelegateFactory.java:152)
376 org.eclipse.viatra.addon.querybasedfeatures.runtime.QueryBasedFeatureSettingDelegateFactory.createSettingDelegate(QueryBasedFeatureSettingDelegateFactory.java:113)
377 org.eclipse.emf.ecore.impl.EStructuralFeatureImpl.getSettingDelegate(EStructuralFeatureImpl.java:854)
378 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.FunctionalElementImpl.<init>(FunctionalElementImpl.java:57)
379 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.FunctionImpl.<init>(FunctionImpl.java:64)
380 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.famFactoryImpl.createFunction(famFactoryImpl.java:125)
381 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.famFactoryImpl.create(famFactoryImpl.java:68)
382 hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore.transformInterpretation(Logic2Ecore.java:75)
383 hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:359)
384 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:130)
385 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:339)
386 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:111)
387 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73)
388 org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (NoSuchElementException): Cannot find entry with FQN ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.model
389 org.eclipse.viatra.query.runtime.registry.impl.GlobalRegistryView.getEntry(GlobalRegistryView.java:56)
390 org.eclipse.viatra.addon.querybasedfeatures.runtime.QueryBasedFeatureSettingDelegateFactory.findQuerySpecification(QueryBasedFeatureSettingDelegateFactory.java:152)
391 org.eclipse.viatra.addon.querybasedfeatures.runtime.QueryBasedFeatureSettingDelegateFactory.createSettingDelegate(QueryBasedFeatureSettingDelegateFactory.java:113)
392 org.eclipse.emf.ecore.impl.EStructuralFeatureImpl.getSettingDelegate(EStructuralFeatureImpl.java:854)
393 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.FunctionalElementImpl.<init>(FunctionalElementImpl.java:57)
394 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.FunctionImpl.<init>(FunctionImpl.java:64)
395 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.famFactoryImpl.createFunction(famFactoryImpl.java:125)
396 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.famFactoryImpl.create(famFactoryImpl.java:68)
397 hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore.transformInterpretation(Logic2Ecore.java:75)
398 hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:359)
399 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:130)
400 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:339)
401 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:111)
402 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73)
403 org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (NoSuchElementException): Cannot find entry with FQN ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.model
404 org.eclipse.viatra.query.runtime.registry.impl.GlobalRegistryView.getEntry(GlobalRegistryView.java:56)
405 org.eclipse.viatra.addon.querybasedfeatures.runtime.QueryBasedFeatureSettingDelegateFactory.findQuerySpecification(QueryBasedFeatureSettingDelegateFactory.java:152)
406 org.eclipse.viatra.addon.querybasedfeatures.runtime.QueryBasedFeatureSettingDelegateFactory.createSettingDelegate(QueryBasedFeatureSettingDelegateFactory.java:113)
407 org.eclipse.emf.ecore.impl.EStructuralFeatureImpl.getSettingDelegate(EStructuralFeatureImpl.java:854)
408 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.FunctionalElementImpl.<init>(FunctionalElementImpl.java:57)
409 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.FunctionImpl.<init>(FunctionImpl.java:64)
410 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.famFactoryImpl.createFunction(famFactoryImpl.java:125)
411 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.famFactoryImpl.create(famFactoryImpl.java:68)
412 hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore.transformInterpretation(Logic2Ecore.java:75)
413 hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:359)
414 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:130)
415 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:339)
416 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:111)
417 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73)
418 org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (NoSuchElementException): Cannot find entry with FQN ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.model
419 org.eclipse.viatra.query.runtime.registry.impl.GlobalRegistryView.getEntry(GlobalRegistryView.java:56)
420 org.eclipse.viatra.addon.querybasedfeatures.runtime.QueryBasedFeatureSettingDelegateFactory.findQuerySpecification(QueryBasedFeatureSettingDelegateFactory.java:152)
421 org.eclipse.viatra.addon.querybasedfeatures.runtime.QueryBasedFeatureSettingDelegateFactory.createSettingDelegate(QueryBasedFeatureSettingDelegateFactory.java:113)
422 org.eclipse.emf.ecore.impl.EStructuralFeatureImpl.getSettingDelegate(EStructuralFeatureImpl.java:854)
423 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.FunctionalElementImpl.<init>(FunctionalElementImpl.java:57)
424 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.FunctionImpl.<init>(FunctionImpl.java:64)
425 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.famFactoryImpl.createFunction(famFactoryImpl.java:125)
426 ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.famFactoryImpl.create(famFactoryImpl.java:68)
427 hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore.transformInterpretation(Logic2Ecore.java:75)
428 hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:359)
429 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:130)
430 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:339)
307 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:111) 431 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:111)
308 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73) 432 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73)
309 org.eclipse.core.internal.jobs.Worker.run(Worker.java:56) \ No newline at end of file 433 org.eclipse.core.internal.jobs.Worker.run(Worker.java:56) \ No newline at end of file
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/debug/generated3valued.vql_deactivated b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/debug/generated3valued.vql_deactivated
index f02c64b0..7899a25f 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/debug/generated3valued.vql_deactivated
+++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/debug/generated3valued.vql_deactivated
@@ -105,22 +105,22 @@ private pattern mayInstanceOfFunctionalElement_class(problem:LogicProblem, inter
105 find interpretation(problem,interpretation); 105 find interpretation(problem,interpretation);
106 PartialInterpretation.newElements(interpretation,element); 106 PartialInterpretation.newElements(interpretation,element);
107 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 107 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
108 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 108 neg find mustInstanceOfFunction_class(problem,interpretation,element);
109 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
109 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 110 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
110 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 111 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
111 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 112 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
112 neg find mustInstanceOfFunction_class(problem,interpretation,element);
113 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation); 113 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
114 neg find isPrimitive(element); 114 neg find isPrimitive(element);
115} or { 115} or {
116 find interpretation(problem,interpretation); 116 find interpretation(problem,interpretation);
117 PartialInterpretation.openWorldElements(interpretation,element); 117 PartialInterpretation.openWorldElements(interpretation,element);
118 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 118 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
119 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 119 neg find mustInstanceOfFunction_class(problem,interpretation,element);
120 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
120 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 121 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
121 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 122 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
122 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 123 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
123 neg find mustInstanceOfFunction_class(problem,interpretation,element);
124 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation); 124 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
125 neg find isPrimitive(element); 125 neg find isPrimitive(element);
126} or 126} or
@@ -148,23 +148,23 @@ private pattern mayInstanceOfFunctionalArchitectureModel_class(problem:LogicProb
148{ 148{
149 find interpretation(problem,interpretation); 149 find interpretation(problem,interpretation);
150 PartialInterpretation.newElements(interpretation,element); 150 PartialInterpretation.newElements(interpretation,element);
151 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
152 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
153 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
154 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
155 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 151 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
152 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
153 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
156 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); 154 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
155 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
156 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
157 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation); 157 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
158 neg find isPrimitive(element); 158 neg find isPrimitive(element);
159} or { 159} or {
160 find interpretation(problem,interpretation); 160 find interpretation(problem,interpretation);
161 PartialInterpretation.openWorldElements(interpretation,element); 161 PartialInterpretation.openWorldElements(interpretation,element);
162 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
163 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
164 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
165 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
166 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 162 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
163 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
164 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
167 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); 165 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
166 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
167 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
168 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation); 168 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
169 neg find isPrimitive(element); 169 neg find isPrimitive(element);
170} or 170} or
@@ -193,20 +193,20 @@ private pattern mayInstanceOfFunction_class(problem:LogicProblem, interpretation
193 find interpretation(problem,interpretation); 193 find interpretation(problem,interpretation);
194 PartialInterpretation.newElements(interpretation,element); 194 PartialInterpretation.newElements(interpretation,element);
195 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 195 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
196 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
197 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
198 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
199 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 196 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
197 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
198 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
199 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
200 neg find scopeDisallowsNewFunction_class(problem, interpretation); 200 neg find scopeDisallowsNewFunction_class(problem, interpretation);
201 neg find isPrimitive(element); 201 neg find isPrimitive(element);
202} or { 202} or {
203 find interpretation(problem,interpretation); 203 find interpretation(problem,interpretation);
204 PartialInterpretation.openWorldElements(interpretation,element); 204 PartialInterpretation.openWorldElements(interpretation,element);
205 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 205 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
206 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
207 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
208 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
209 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 206 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
207 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
208 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
209 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
210 neg find scopeDisallowsNewFunction_class(problem, interpretation); 210 neg find scopeDisallowsNewFunction_class(problem, interpretation);
211 neg find isPrimitive(element); 211 neg find isPrimitive(element);
212} or 212} or
@@ -234,21 +234,21 @@ private pattern mayInstanceOfFAMTerminator_class(problem:LogicProblem, interpret
234{ 234{
235 find interpretation(problem,interpretation); 235 find interpretation(problem,interpretation);
236 PartialInterpretation.newElements(interpretation,element); 236 PartialInterpretation.newElements(interpretation,element);
237 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
237 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 238 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
238 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
239 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
240 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 239 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
241 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 240 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
241 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
242 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation); 242 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
243 neg find isPrimitive(element); 243 neg find isPrimitive(element);
244} or { 244} or {
245 find interpretation(problem,interpretation); 245 find interpretation(problem,interpretation);
246 PartialInterpretation.openWorldElements(interpretation,element); 246 PartialInterpretation.openWorldElements(interpretation,element);
247 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
247 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 248 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
248 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
249 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
250 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 249 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
251 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 250 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
251 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
252 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation); 252 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
253 neg find isPrimitive(element); 253 neg find isPrimitive(element);
254} or 254} or
@@ -277,20 +277,20 @@ private pattern mayInstanceOfInformationLink_class(problem:LogicProblem, interpr
277 find interpretation(problem,interpretation); 277 find interpretation(problem,interpretation);
278 PartialInterpretation.newElements(interpretation,element); 278 PartialInterpretation.newElements(interpretation,element);
279 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 279 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
280 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 280 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
281 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 281 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
282 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 282 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
283 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 283 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
284 neg find scopeDisallowsNewInformationLink_class(problem, interpretation); 284 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
285 neg find isPrimitive(element); 285 neg find isPrimitive(element);
286} or { 286} or {
287 find interpretation(problem,interpretation); 287 find interpretation(problem,interpretation);
288 PartialInterpretation.openWorldElements(interpretation,element); 288 PartialInterpretation.openWorldElements(interpretation,element);
289 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 289 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
290 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 290 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
291 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 291 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
292 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 292 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
293 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 293 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
294 neg find scopeDisallowsNewInformationLink_class(problem, interpretation); 294 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
295 neg find isPrimitive(element); 295 neg find isPrimitive(element);
296} or 296} or
@@ -319,20 +319,20 @@ private pattern mayInstanceOfFunctionalInterface_class(problem:LogicProblem, int
319 find interpretation(problem,interpretation); 319 find interpretation(problem,interpretation);
320 PartialInterpretation.newElements(interpretation,element); 320 PartialInterpretation.newElements(interpretation,element);
321 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 321 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
322 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
323 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
324 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
325 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 322 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
323 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
324 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
325 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
326 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation); 326 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
327 neg find isPrimitive(element); 327 neg find isPrimitive(element);
328} or { 328} or {
329 find interpretation(problem,interpretation); 329 find interpretation(problem,interpretation);
330 PartialInterpretation.openWorldElements(interpretation,element); 330 PartialInterpretation.openWorldElements(interpretation,element);
331 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 331 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
332 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
333 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
334 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
335 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 332 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
333 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
334 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
335 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
336 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation); 336 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
337 neg find isPrimitive(element); 337 neg find isPrimitive(element);
338} or 338} or
@@ -360,23 +360,23 @@ private pattern mayInstanceOfFunctionalInput_class(problem:LogicProblem, interpr
360{ 360{
361 find interpretation(problem,interpretation); 361 find interpretation(problem,interpretation);
362 PartialInterpretation.newElements(interpretation,element); 362 PartialInterpretation.newElements(interpretation,element);
363 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
363 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 364 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
364 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
365 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
366 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 365 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
366 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
367 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
367 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 368 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
368 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
369 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation); 369 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
370 neg find isPrimitive(element); 370 neg find isPrimitive(element);
371} or { 371} or {
372 find interpretation(problem,interpretation); 372 find interpretation(problem,interpretation);
373 PartialInterpretation.openWorldElements(interpretation,element); 373 PartialInterpretation.openWorldElements(interpretation,element);
374 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
374 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 375 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
375 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
376 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
377 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 376 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
377 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
378 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
378 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 379 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
379 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
380 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation); 380 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
381 neg find isPrimitive(element); 381 neg find isPrimitive(element);
382} or 382} or
@@ -405,22 +405,22 @@ private pattern mayInstanceOfFunctionalOutput_class(problem:LogicProblem, interp
405 find interpretation(problem,interpretation); 405 find interpretation(problem,interpretation);
406 PartialInterpretation.newElements(interpretation,element); 406 PartialInterpretation.newElements(interpretation,element);
407 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 407 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
408 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 408 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
409 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); 409 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
410 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
411 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 410 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
412 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 411 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
412 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
413 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation); 413 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
414 neg find isPrimitive(element); 414 neg find isPrimitive(element);
415} or { 415} or {
416 find interpretation(problem,interpretation); 416 find interpretation(problem,interpretation);
417 PartialInterpretation.openWorldElements(interpretation,element); 417 PartialInterpretation.openWorldElements(interpretation,element);
418 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 418 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
419 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 419 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
420 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); 420 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
421 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
422 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 421 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
423 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 422 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
423 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
424 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation); 424 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
425 neg find isPrimitive(element); 425 neg find isPrimitive(element);
426} or 426} or
@@ -449,24 +449,24 @@ private pattern mayInstanceOfFunctionalData_class(problem:LogicProblem, interpre
449 find interpretation(problem,interpretation); 449 find interpretation(problem,interpretation);
450 PartialInterpretation.newElements(interpretation,element); 450 PartialInterpretation.newElements(interpretation,element);
451 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 451 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
452 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 452 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
453 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); 453 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
454 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
454 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 455 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
456 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
455 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 457 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
456 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
457 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
458 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation); 458 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
459 neg find isPrimitive(element); 459 neg find isPrimitive(element);
460} or { 460} or {
461 find interpretation(problem,interpretation); 461 find interpretation(problem,interpretation);
462 PartialInterpretation.openWorldElements(interpretation,element); 462 PartialInterpretation.openWorldElements(interpretation,element);
463 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 463 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
464 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 464 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
465 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); 465 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
466 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
466 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 467 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
468 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
467 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 469 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
468 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
469 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
470 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation); 470 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
471 neg find isPrimitive(element); 471 neg find isPrimitive(element);
472} or 472} or
@@ -536,21 +536,21 @@ private pattern mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(pro
536{ 536{
537 find interpretation(problem,interpretation); 537 find interpretation(problem,interpretation);
538 PartialInterpretation.newElements(interpretation,element); 538 PartialInterpretation.newElements(interpretation,element);
539 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
540 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
541 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
542 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
543 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 539 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
540 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
541 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
542 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
543 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
544 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation); 544 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation);
545 neg find isPrimitive(element); 545 neg find isPrimitive(element);
546} or { 546} or {
547 find interpretation(problem,interpretation); 547 find interpretation(problem,interpretation);
548 PartialInterpretation.openWorldElements(interpretation,element); 548 PartialInterpretation.openWorldElements(interpretation,element);
549 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
550 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
551 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
552 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
553 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 549 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
550 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
551 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
552 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
553 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
554 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation); 554 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation);
555 neg find isPrimitive(element); 555 neg find isPrimitive(element);
556} or 556} or
@@ -610,7 +610,7 @@ private pattern mayInRelationinterface_reference_FunctionalElement(
610 problem:LogicProblem, interpretation:PartialInterpretation, 610 problem:LogicProblem, interpretation:PartialInterpretation,
611 source: DefinedElement, target:DefinedElement) 611 source: DefinedElement, target:DefinedElement)
612 { 612 {
613 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_model(problem,interpretation,source,target); 613 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_model(problem,interpretation,source,target);
614 } 614 }
615/** 615/**
616 * Matcher for detecting tuples t where []model reference FunctionalElement(source,target) 616 * Matcher for detecting tuples t where []model reference FunctionalElement(source,target)
@@ -619,7 +619,7 @@ private pattern mayInRelationinterface_reference_FunctionalElement(
619 problem:LogicProblem, interpretation:PartialInterpretation, 619 problem:LogicProblem, interpretation:PartialInterpretation,
620 source: DefinedElement, target:DefinedElement) 620 source: DefinedElement, target:DefinedElement)
621 { 621 {
622 find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_model(problem,interpretation,source,target); 622 find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_model(problem,interpretation,source,target);
623 } 623 }
624/** 624/**
625 * Matcher for detecting tuples t where []parent reference FunctionalElement(source,target) 625 * Matcher for detecting tuples t where []parent reference FunctionalElement(source,target)
@@ -1102,27 +1102,44 @@ private pattern mayInRelationinterface_reference_FunctionalData(
1102/** 1102/**
1103 * Matcher for detecting tuples t where []type attribute Function(source,target) 1103 * Matcher for detecting tuples t where []type attribute Function(source,target)
1104 */ 1104 */
1105 private pattern mustInRelationtype_attribute_Function( 1105private pattern mustInRelationtype_attribute_Function(
1106 problem:LogicProblem, interpretation:PartialInterpretation, 1106 problem:LogicProblem, interpretation:PartialInterpretation,
1107 source: DefinedElement, target:DefinedElement) 1107 source: DefinedElement, target:DefinedElement)
1108 { 1108{
1109 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_type(problem,interpretation,source,target); 1109 find interpretation(problem,interpretation);
1110 } 1110 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
1111 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function");
1112 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
1113 BinaryElementRelationLink.param1(link,source);
1114 BinaryElementRelationLink.param2(link,target);
1115}
1111/** 1116/**
1112 * Matcher for detecting tuples t where []type attribute Function(source,target) 1117 * Matcher for detecting tuples t where <>type attribute Function(source,target)
1113 */ 1118 */
1114 private pattern mayInRelationtype_attribute_Function( 1119private pattern mayInRelationtype_attribute_Function(
1115 problem:LogicProblem, interpretation:PartialInterpretation, 1120 problem:LogicProblem, interpretation:PartialInterpretation,
1116 source: DefinedElement, target:DefinedElement) 1121 source: DefinedElement, target:DefinedElement)
1117 { 1122{
1118 find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_type(problem,interpretation,source,target); 1123 find interpretation(problem,interpretation);
1119 } 1124 // The two endpoint of the link have to exist
1125 find mayExist(problem, interpretation, source);
1126 find mayExist(problem, interpretation, target);
1127 // Type consistency
1128 find mayInstanceOfFunction_class(problem,interpretation,source);
1129 find mayInstanceOfFunctionType_enum(problem,interpretation,target);
1130 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
1131 // the upper bound of the multiplicity should be considered.
1132 numberOfExistingReferences == count find mustInRelationtype_attribute_Function(problem,interpretation,source,_);
1133 check(numberOfExistingReferences < 1);
1134} or {
1135 find mustInRelationtype_attribute_Function(problem,interpretation,source,target);
1136}
1120 1137
1121////////// 1138//////////
1122// 1.3 Relation Definition Indexers 1139// 1.3 Relation Definition Indexers
1123////////// 1140//////////
1124// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test fam terminatorAndInformation 1141// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test fam queries terminatorAndInformation
1125private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_terminatorAndInformation( 1142private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(
1126 problem:LogicProblem, interpretation:PartialInterpretation, 1143 problem:LogicProblem, interpretation:PartialInterpretation,
1127 var_T, var_I) 1144 var_T, var_I)
1128{ 1145{
@@ -1154,7 +1171,7 @@ private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_tes
1154 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1); 1171 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
1155 var_virtual1 == var_T; 1172 var_virtual1 == var_T;
1156} 1173}
1157private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_terminatorAndInformation( 1174private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(
1158 problem:LogicProblem, interpretation:PartialInterpretation, 1175 problem:LogicProblem, interpretation:PartialInterpretation,
1159 var_T, var_I) 1176 var_T, var_I)
1160{ 1177{
@@ -1186,7 +1203,7 @@ private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test
1186 find mayInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1); 1203 find mayInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
1187 find mayEquivalent(problem, interpretation, var_virtual1, var_T); 1204 find mayEquivalent(problem, interpretation, var_virtual1, var_T);
1188} 1205}
1189private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_terminatorAndInformation( 1206private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(
1190 problem:LogicProblem, interpretation:PartialInterpretation, 1207 problem:LogicProblem, interpretation:PartialInterpretation,
1191 var_T, var_I) 1208 var_T, var_I)
1192{ 1209{
@@ -1218,108 +1235,8 @@ private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_
1218 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1); 1235 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
1219 var_virtual1 == var_T; 1236 var_virtual1 == var_T;
1220} 1237}
1221// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test fam type 1238// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test fam queries rootElements
1222private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_type( 1239private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_rootElements(
1223 problem:LogicProblem, interpretation:PartialInterpretation,
1224 var_This, var_Target)
1225{
1226 find interpretation(problem,interpretation);
1227 find mustInstanceOfFunction_class(problem,interpretation,var_This);
1228 // type constraint is enforced by construction
1229 // This is exported
1230 // Target is exported
1231 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_rootElements(problem,interpretation,_var__Model,var_This);
1232 var_virtual0 == const_Root_FunctionType;DefinedElement.name(const_Root_FunctionType,"Root FunctionType"); //LogicProblem.elements(problem,const_Root_FunctionType);
1233 var_Target == var_virtual0;
1234}or{
1235 find interpretation(problem,interpretation);
1236 find mustInstanceOfFunction_class(problem,interpretation,var_This);
1237 // type constraint is enforced by construction
1238 // This is exported
1239 // Target is exported
1240 neg find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(problem,interpretation,_var__Child,var_This);
1241 neg find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_rootElements(problem,interpretation,_var__Model,var_This);
1242 var_virtual0 == const_Leaf_FunctionType;DefinedElement.name(const_Leaf_FunctionType,"Leaf FunctionType"); //LogicProblem.elements(problem,const_Leaf_FunctionType);
1243 var_Target == var_virtual0;
1244}or{
1245 find interpretation(problem,interpretation);
1246 find mustInstanceOfFunction_class(problem,interpretation,var_This);
1247 // type constraint is enforced by construction
1248 // This is exported
1249 // Target is exported
1250 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(problem,interpretation,var_This,_var__Par);
1251 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(problem,interpretation,_var__Child,var_This);
1252 var_virtual0 == const_Intermediate_FunctionType;DefinedElement.name(const_Intermediate_FunctionType,"Intermediate FunctionType"); //LogicProblem.elements(problem,const_Intermediate_FunctionType);
1253 var_Target == var_virtual0;
1254}
1255private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_type(
1256 problem:LogicProblem, interpretation:PartialInterpretation,
1257 var_This, var_Target)
1258{
1259 find interpretation(problem,interpretation);
1260 find mayInstanceOfFunction_class(problem,interpretation,var_This);
1261 // type constraint is enforced by construction
1262 // This is exported
1263 // Target is exported
1264 find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_rootElements(problem,interpretation,_var__Model,var_This);
1265 var_virtual0 == const_Root_FunctionType;DefinedElement.name(const_Root_FunctionType,"Root FunctionType"); //LogicProblem.elements(problem,const_Root_FunctionType);
1266 find mayEquivalent(problem, interpretation, var_Target, var_virtual0);
1267}or{
1268 find interpretation(problem,interpretation);
1269 find mayInstanceOfFunction_class(problem,interpretation,var_This);
1270 // type constraint is enforced by construction
1271 // This is exported
1272 // Target is exported
1273 neg find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(problem,interpretation,_var__Child,var_This);
1274 neg find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_rootElements(problem,interpretation,_var__Model,var_This);
1275 var_virtual0 == const_Leaf_FunctionType;DefinedElement.name(const_Leaf_FunctionType,"Leaf FunctionType"); //LogicProblem.elements(problem,const_Leaf_FunctionType);
1276 find mayEquivalent(problem, interpretation, var_Target, var_virtual0);
1277}or{
1278 find interpretation(problem,interpretation);
1279 find mayInstanceOfFunction_class(problem,interpretation,var_This);
1280 // type constraint is enforced by construction
1281 // This is exported
1282 // Target is exported
1283 find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(problem,interpretation,var_This,_var__Par);
1284 find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(problem,interpretation,_var__Child,var_This);
1285 var_virtual0 == const_Intermediate_FunctionType;DefinedElement.name(const_Intermediate_FunctionType,"Intermediate FunctionType"); //LogicProblem.elements(problem,const_Intermediate_FunctionType);
1286 find mayEquivalent(problem, interpretation, var_Target, var_virtual0);
1287}
1288private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_type(
1289 problem:LogicProblem, interpretation:PartialInterpretation,
1290 var_This, var_Target)
1291{
1292 find interpretation(problem,interpretation);
1293 find mustInstanceOfFunction_class(problem,interpretation,var_This);
1294 // type constraint is enforced by construction
1295 // This is exported
1296 // Target is exported
1297 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_rootElements(problem,interpretation,_var__Model,var_This);
1298 var_virtual0 == const_Root_FunctionType;DefinedElement.name(const_Root_FunctionType,"Root FunctionType"); //LogicProblem.elements(problem,const_Root_FunctionType);
1299 var_Target == var_virtual0;
1300}or{
1301 find interpretation(problem,interpretation);
1302 find mustInstanceOfFunction_class(problem,interpretation,var_This);
1303 // type constraint is enforced by construction
1304 // This is exported
1305 // Target is exported
1306 neg find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(problem,interpretation,_var__Child,var_This);
1307 neg find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_rootElements(problem,interpretation,_var__Model,var_This);
1308 var_virtual0 == const_Leaf_FunctionType;DefinedElement.name(const_Leaf_FunctionType,"Leaf FunctionType"); //LogicProblem.elements(problem,const_Leaf_FunctionType);
1309 var_Target == var_virtual0;
1310}or{
1311 find interpretation(problem,interpretation);
1312 find mustInstanceOfFunction_class(problem,interpretation,var_This);
1313 // type constraint is enforced by construction
1314 // This is exported
1315 // Target is exported
1316 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(problem,interpretation,var_This,_var__Par);
1317 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(problem,interpretation,_var__Child,var_This);
1318 var_virtual0 == const_Intermediate_FunctionType;DefinedElement.name(const_Intermediate_FunctionType,"Intermediate FunctionType"); //LogicProblem.elements(problem,const_Intermediate_FunctionType);
1319 var_Target == var_virtual0;
1320}
1321// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test fam rootElements
1322private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_rootElements(
1323 problem:LogicProblem, interpretation:PartialInterpretation, 1240 problem:LogicProblem, interpretation:PartialInterpretation,
1324 var_Model, var_Root) 1241 var_Model, var_Root)
1325{ 1242{
@@ -1333,7 +1250,7 @@ private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_tes
1333 find mustInstanceOfFunctionalElement_class(problem,interpretation,var_virtual0); 1250 find mustInstanceOfFunctionalElement_class(problem,interpretation,var_virtual0);
1334 var_virtual0 == var_Root; 1251 var_virtual0 == var_Root;
1335} 1252}
1336private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_rootElements( 1253private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_rootElements(
1337 problem:LogicProblem, interpretation:PartialInterpretation, 1254 problem:LogicProblem, interpretation:PartialInterpretation,
1338 var_Model, var_Root) 1255 var_Model, var_Root)
1339{ 1256{
@@ -1347,7 +1264,7 @@ private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test
1347 find mayInstanceOfFunctionalElement_class(problem,interpretation,var_virtual0); 1264 find mayInstanceOfFunctionalElement_class(problem,interpretation,var_virtual0);
1348 find mayEquivalent(problem, interpretation, var_virtual0, var_Root); 1265 find mayEquivalent(problem, interpretation, var_virtual0, var_Root);
1349} 1266}
1350private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_rootElements( 1267private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_rootElements(
1351 problem:LogicProblem, interpretation:PartialInterpretation, 1268 problem:LogicProblem, interpretation:PartialInterpretation,
1352 var_Model, var_Root) 1269 var_Model, var_Root)
1353{ 1270{
@@ -1361,8 +1278,8 @@ private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_
1361 find mustInstanceOfFunctionalElement_class(problem,interpretation,var_virtual0); 1278 find mustInstanceOfFunctionalElement_class(problem,interpretation,var_virtual0);
1362 var_virtual0 == var_Root; 1279 var_virtual0 == var_Root;
1363} 1280}
1364// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test fam parent 1281// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test fam queries parent
1365private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent( 1282private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_parent(
1366 problem:LogicProblem, interpretation:PartialInterpretation, 1283 problem:LogicProblem, interpretation:PartialInterpretation,
1367 var_Func, var_Par) 1284 var_Func, var_Par)
1368{ 1285{
@@ -1376,7 +1293,7 @@ private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_tes
1376 find mustInstanceOfFunction_class(problem,interpretation,var_virtual0); 1293 find mustInstanceOfFunction_class(problem,interpretation,var_virtual0);
1377 var_virtual0 == var_Par; 1294 var_virtual0 == var_Par;
1378} 1295}
1379private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent( 1296private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_parent(
1380 problem:LogicProblem, interpretation:PartialInterpretation, 1297 problem:LogicProblem, interpretation:PartialInterpretation,
1381 var_Func, var_Par) 1298 var_Func, var_Par)
1382{ 1299{
@@ -1390,7 +1307,7 @@ private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test
1390 find mayInstanceOfFunction_class(problem,interpretation,var_virtual0); 1307 find mayInstanceOfFunction_class(problem,interpretation,var_virtual0);
1391 find mayEquivalent(problem, interpretation, var_virtual0, var_Par); 1308 find mayEquivalent(problem, interpretation, var_virtual0, var_Par);
1392} 1309}
1393private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent( 1310private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_parent(
1394 problem:LogicProblem, interpretation:PartialInterpretation, 1311 problem:LogicProblem, interpretation:PartialInterpretation,
1395 var_Func, var_Par) 1312 var_Func, var_Par)
1396{ 1313{
@@ -1404,8 +1321,8 @@ private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_
1404 find mustInstanceOfFunction_class(problem,interpretation,var_virtual0); 1321 find mustInstanceOfFunction_class(problem,interpretation,var_virtual0);
1405 var_virtual0 == var_Par; 1322 var_virtual0 == var_Par;
1406} 1323}
1407// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test fam model 1324// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test fam queries model
1408private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_model( 1325private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_model(
1409 problem:LogicProblem, interpretation:PartialInterpretation, 1326 problem:LogicProblem, interpretation:PartialInterpretation,
1410 var_This, var_Target) 1327 var_This, var_Target)
1411{ 1328{
@@ -1417,7 +1334,7 @@ private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_tes
1417 find mustInstanceOfFunctionalElement_class(problem,interpretation,var_This); 1334 find mustInstanceOfFunctionalElement_class(problem,interpretation,var_This);
1418 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Target); 1335 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Target);
1419} 1336}
1420private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_model( 1337private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_model(
1421 problem:LogicProblem, interpretation:PartialInterpretation, 1338 problem:LogicProblem, interpretation:PartialInterpretation,
1422 var_This, var_Target) 1339 var_This, var_Target)
1423{ 1340{
@@ -1429,7 +1346,7 @@ private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test
1429 find mayInstanceOfFunctionalElement_class(problem,interpretation,var_This); 1346 find mayInstanceOfFunctionalElement_class(problem,interpretation,var_This);
1430 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Target); 1347 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Target);
1431} 1348}
1432private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_model( 1349private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_model(
1433 problem:LogicProblem, interpretation:PartialInterpretation, 1350 problem:LogicProblem, interpretation:PartialInterpretation,
1434 var_This, var_Target) 1351 var_This, var_Target)
1435{ 1352{
@@ -1472,10 +1389,10 @@ private pattern mustTransitiveContains(source,target) {
1472////////// 1389//////////
1473// 2.1 Invalidated by WF Queries 1390// 2.1 Invalidated by WF Queries
1474////////// 1391//////////
1475pattern invalidatedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_terminatorAndInformation(problem:LogicProblem, interpretation:PartialInterpretation, 1392pattern invalidatedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(problem:LogicProblem, interpretation:PartialInterpretation,
1476 var_T, var_I) 1393 var_T, var_I)
1477{ 1394{
1478 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_terminatorAndInformation(problem,interpretation,var_T,var_I); 1395 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(problem,interpretation,var_T,var_I);
1479} 1396}
1480 1397
1481////////// 1398//////////
@@ -1492,14 +1409,23 @@ pattern unfinishedLowerMultiplicity_to_reference_InformationLink(problem:LogicPr
1492 check(numberOfExistingReferences < 1); 1409 check(numberOfExistingReferences < 1);
1493 missingMultiplicity == eval(1-numberOfExistingReferences); 1410 missingMultiplicity == eval(1-numberOfExistingReferences);
1494} 1411}
1412pattern unfinishedLowerMultiplicity_type_attribute_Function(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
1413 find interpretation(problem,interpretation);
1414 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
1415 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function");
1416 find mustInstanceOfFunction_class(problem,interpretation,object);
1417 numberOfExistingReferences == count find mustInRelationtype_attribute_Function(problem,interpretation,object,_);
1418 check(numberOfExistingReferences < 1);
1419 missingMultiplicity == eval(1-numberOfExistingReferences);
1420}
1495 1421
1496////////// 1422//////////
1497// 3.2 Unfinishedness Measured by WF Queries 1423// 3.2 Unfinishedness Measured by WF Queries
1498////////// 1424//////////
1499pattern unfinishedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_terminatorAndInformation(problem:LogicProblem, interpretation:PartialInterpretation, 1425pattern unfinishedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(problem:LogicProblem, interpretation:PartialInterpretation,
1500 var_T, var_I) 1426 var_T, var_I)
1501{ 1427{
1502 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_terminatorAndInformation(problem,interpretation,var_T,var_I); 1428 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(problem,interpretation,var_T,var_I);
1503} 1429}
1504 1430
1505////////// 1431//////////
@@ -1510,15 +1436,11 @@ pattern unfinishedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_term
1510private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation) 1436private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation)
1511{ 1437{
1512 find interpretation(problem,interpretation); 1438 find interpretation(problem,interpretation);
1513 find mustInstanceOfFunctionalElement_class(problem,interpretation,root);
1514 find mustExist(problem, interpretation, root);
1515}or{
1516 find interpretation(problem,interpretation);
1517 find mustInstanceOfFunctionalInput_class(problem,interpretation,root); 1439 find mustInstanceOfFunctionalInput_class(problem,interpretation,root);
1518 find mustExist(problem, interpretation, root); 1440 find mustExist(problem, interpretation, root);
1519}or{ 1441}or{
1520 find interpretation(problem,interpretation); 1442 find interpretation(problem,interpretation);
1521 find mustInstanceOfFunctionalOutput_class(problem,interpretation,root); 1443 find mustInstanceOfFunctionalElement_class(problem,interpretation,root);
1522 find mustExist(problem, interpretation, root); 1444 find mustExist(problem, interpretation, root);
1523}or{ 1445}or{
1524 find interpretation(problem,interpretation); 1446 find interpretation(problem,interpretation);
@@ -1530,19 +1452,23 @@ private pattern hasElementInContainment(problem:LogicProblem, interpretation:Par
1530 find mustExist(problem, interpretation, root); 1452 find mustExist(problem, interpretation, root);
1531}or{ 1453}or{
1532 find interpretation(problem,interpretation); 1454 find interpretation(problem,interpretation);
1533 find mustInstanceOfFunctionalData_class(problem,interpretation,root); 1455 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,root);
1534 find mustExist(problem, interpretation, root); 1456 find mustExist(problem, interpretation, root);
1535}or{ 1457}or{
1536 find interpretation(problem,interpretation); 1458 find interpretation(problem,interpretation);
1537 find mustInstanceOfFunction_class(problem,interpretation,root); 1459 find mustInstanceOfFunctionalInterface_class(problem,interpretation,root);
1538 find mustExist(problem, interpretation, root); 1460 find mustExist(problem, interpretation, root);
1539}or{ 1461}or{
1540 find interpretation(problem,interpretation); 1462 find interpretation(problem,interpretation);
1541 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,root); 1463 find mustInstanceOfFunctionalData_class(problem,interpretation,root);
1542 find mustExist(problem, interpretation, root); 1464 find mustExist(problem, interpretation, root);
1543}or{ 1465}or{
1544 find interpretation(problem,interpretation); 1466 find interpretation(problem,interpretation);
1545 find mustInstanceOfFunctionalInterface_class(problem,interpretation,root); 1467 find mustInstanceOfFunctionalOutput_class(problem,interpretation,root);
1468 find mustExist(problem, interpretation, root);
1469}or{
1470 find interpretation(problem,interpretation);
1471 find mustInstanceOfFunction_class(problem,interpretation,root);
1546 find mustExist(problem, interpretation, root); 1472 find mustExist(problem, interpretation, root);
1547}or{ 1473}or{
1548 find interpretation(problem,interpretation); 1474 find interpretation(problem,interpretation);
@@ -1553,33 +1479,49 @@ private pattern hasElementInContainment(problem:LogicProblem, interpretation:Par
1553 find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,root); 1479 find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,root);
1554 find mustExist(problem, interpretation, root); 1480 find mustExist(problem, interpretation, root);
1555} 1481}
1556pattern createObject_FAMTerminator_class_by_terminator_reference_FunctionalData_with_data_reference_FAMTerminator( 1482pattern createObject_Function_class_by_rootElements_reference_FunctionalArchitectureModel(
1483 problem:LogicProblem, interpretation:PartialInterpretation,
1484 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
1485 container:DefinedElement)
1486{
1487 find interpretation(problem,interpretation);
1488 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
1489 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class");
1490 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
1491 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"rootElements reference FunctionalArchitectureModel");
1492 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,container);
1493 find mayInstanceOfFunction_class(problem,interpretation,newObject);
1494 find mayInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,container,newObject);
1495 find mustExist(problem, interpretation, container);
1496 neg find mustExist(problem, interpretation, newObject);
1497}
1498pattern createObject_Function_class_by_subElements_reference_Function_with_parent_reference_FunctionalElement(
1557 problem:LogicProblem, interpretation:PartialInterpretation, 1499 problem:LogicProblem, interpretation:PartialInterpretation,
1558 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 1500 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
1559 container:DefinedElement) 1501 container:DefinedElement)
1560{ 1502{
1561 find interpretation(problem,interpretation); 1503 find interpretation(problem,interpretation);
1562 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 1504 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
1563 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class"); 1505 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class");
1564 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 1506 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
1565 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"terminator reference FunctionalData"); 1507 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"subElements reference Function");
1566 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 1508 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
1567 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"data reference FAMTerminator"); 1509 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"parent reference FunctionalElement");
1568 find mustInstanceOfFunctionalData_class(problem,interpretation,container); 1510 find mustInstanceOfFunction_class(problem,interpretation,container);
1569 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject); 1511 find mayInstanceOfFunction_class(problem,interpretation,newObject);
1570 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,container,newObject); 1512 find mayInRelationsubElements_reference_Function(problem,interpretation,container,newObject);
1571 find mustExist(problem, interpretation, container); 1513 find mustExist(problem, interpretation, container);
1572 neg find mustExist(problem, interpretation, newObject); 1514 neg find mustExist(problem, interpretation, newObject);
1573} 1515}
1574pattern createObject_FAMTerminator_class( 1516pattern createObject_Function_class(
1575 problem:LogicProblem, interpretation:PartialInterpretation, 1517 problem:LogicProblem, interpretation:PartialInterpretation,
1576 typeInterpretation:PartialComplexTypeInterpretation) 1518 typeInterpretation:PartialComplexTypeInterpretation)
1577{ 1519{
1578 find interpretation(problem,interpretation); 1520 find interpretation(problem,interpretation);
1579 neg find hasElementInContainment(problem,interpretation); 1521 neg find hasElementInContainment(problem,interpretation);
1580 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 1522 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
1581 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class"); 1523 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class");
1582 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject); 1524 find mayInstanceOfFunction_class(problem,interpretation,newObject);
1583 find mayExist(problem, interpretation, newObject); 1525 find mayExist(problem, interpretation, newObject);
1584 neg find mustExist(problem, interpretation, newObject); 1526 neg find mustExist(problem, interpretation, newObject);
1585} 1527}
@@ -1613,151 +1555,135 @@ pattern createObject_FunctionalInput_class(
1613 find mayExist(problem, interpretation, newObject); 1555 find mayExist(problem, interpretation, newObject);
1614 neg find mustExist(problem, interpretation, newObject); 1556 neg find mustExist(problem, interpretation, newObject);
1615} 1557}
1616pattern createObject_FunctionalInterface_class_by_interface_reference_FunctionalElement_with_element_reference_FunctionalInterface( 1558pattern createObject_InformationLink_class_by_outgoingLinks_reference_FunctionalOutput_with_from_reference_InformationLink(
1617 problem:LogicProblem, interpretation:PartialInterpretation, 1559 problem:LogicProblem, interpretation:PartialInterpretation,
1618 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 1560 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
1619 container:DefinedElement) 1561 container:DefinedElement)
1620{ 1562{
1621 find interpretation(problem,interpretation); 1563 find interpretation(problem,interpretation);
1622 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 1564 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
1623 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class"); 1565 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class");
1624 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 1566 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
1625 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"interface reference FunctionalElement"); 1567 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"outgoingLinks reference FunctionalOutput");
1626 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 1568 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
1627 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"element reference FunctionalInterface"); 1569 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"from reference InformationLink");
1628 find mustInstanceOfFunctionalElement_class(problem,interpretation,container); 1570 find mustInstanceOfFunctionalOutput_class(problem,interpretation,container);
1629 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject); 1571 find mayInstanceOfInformationLink_class(problem,interpretation,newObject);
1630 find mayInRelationinterface_reference_FunctionalElement(problem,interpretation,container,newObject); 1572 find mayInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,container,newObject);
1631 find mustExist(problem, interpretation, container); 1573 find mustExist(problem, interpretation, container);
1632 neg find mustExist(problem, interpretation, newObject); 1574 neg find mustExist(problem, interpretation, newObject);
1633} 1575}
1634pattern createObject_FunctionalInterface_class( 1576pattern createObject_InformationLink_class(
1635 problem:LogicProblem, interpretation:PartialInterpretation, 1577 problem:LogicProblem, interpretation:PartialInterpretation,
1636 typeInterpretation:PartialComplexTypeInterpretation) 1578 typeInterpretation:PartialComplexTypeInterpretation)
1637{ 1579{
1638 find interpretation(problem,interpretation); 1580 find interpretation(problem,interpretation);
1639 neg find hasElementInContainment(problem,interpretation); 1581 neg find hasElementInContainment(problem,interpretation);
1640 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 1582 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
1641 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class"); 1583 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class");
1642 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject); 1584 find mayInstanceOfInformationLink_class(problem,interpretation,newObject);
1643 find mayExist(problem, interpretation, newObject); 1585 find mayExist(problem, interpretation, newObject);
1644 neg find mustExist(problem, interpretation, newObject); 1586 neg find mustExist(problem, interpretation, newObject);
1645} 1587}
1646pattern createObject_FunctionalOutput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData( 1588pattern createObject_FunctionalArchitectureModel_class_UndefinedPart(
1647 problem:LogicProblem, interpretation:PartialInterpretation,
1648 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
1649 container:DefinedElement)
1650{
1651 find interpretation(problem,interpretation);
1652 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
1653 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class");
1654 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
1655 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface");
1656 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
1657 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData");
1658 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container);
1659 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject);
1660 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject);
1661 find mustExist(problem, interpretation, container);
1662 neg find mustExist(problem, interpretation, newObject);
1663}
1664pattern createObject_FunctionalOutput_class(
1665 problem:LogicProblem, interpretation:PartialInterpretation, 1589 problem:LogicProblem, interpretation:PartialInterpretation,
1666 typeInterpretation:PartialComplexTypeInterpretation) 1590 typeInterpretation:PartialComplexTypeInterpretation)
1667{ 1591{
1668 find interpretation(problem,interpretation); 1592 find interpretation(problem,interpretation);
1669 neg find hasElementInContainment(problem,interpretation); 1593 neg find hasElementInContainment(problem,interpretation);
1670 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 1594 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
1671 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class"); 1595 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalArchitectureModel class UndefinedPart");
1672 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject); 1596 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,newObject);
1673 find mayExist(problem, interpretation, newObject); 1597 find mayExist(problem, interpretation, newObject);
1674 neg find mustExist(problem, interpretation, newObject); 1598 neg find mustExist(problem, interpretation, newObject);
1675} 1599}
1676pattern createObject_InformationLink_class_by_outgoingLinks_reference_FunctionalOutput_with_from_reference_InformationLink( 1600pattern createObject_FunctionalInterface_class_by_interface_reference_FunctionalElement_with_element_reference_FunctionalInterface(
1677 problem:LogicProblem, interpretation:PartialInterpretation, 1601 problem:LogicProblem, interpretation:PartialInterpretation,
1678 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 1602 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
1679 container:DefinedElement) 1603 container:DefinedElement)
1680{ 1604{
1681 find interpretation(problem,interpretation); 1605 find interpretation(problem,interpretation);
1682 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 1606 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
1683 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class"); 1607 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
1684 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 1608 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
1685 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"outgoingLinks reference FunctionalOutput"); 1609 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"interface reference FunctionalElement");
1686 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 1610 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
1687 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"from reference InformationLink"); 1611 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"element reference FunctionalInterface");
1688 find mustInstanceOfFunctionalOutput_class(problem,interpretation,container); 1612 find mustInstanceOfFunctionalElement_class(problem,interpretation,container);
1689 find mayInstanceOfInformationLink_class(problem,interpretation,newObject); 1613 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
1690 find mayInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,container,newObject); 1614 find mayInRelationinterface_reference_FunctionalElement(problem,interpretation,container,newObject);
1691 find mustExist(problem, interpretation, container); 1615 find mustExist(problem, interpretation, container);
1692 neg find mustExist(problem, interpretation, newObject); 1616 neg find mustExist(problem, interpretation, newObject);
1693} 1617}
1694pattern createObject_InformationLink_class( 1618pattern createObject_FunctionalInterface_class(
1695 problem:LogicProblem, interpretation:PartialInterpretation, 1619 problem:LogicProblem, interpretation:PartialInterpretation,
1696 typeInterpretation:PartialComplexTypeInterpretation) 1620 typeInterpretation:PartialComplexTypeInterpretation)
1697{ 1621{
1698 find interpretation(problem,interpretation); 1622 find interpretation(problem,interpretation);
1699 neg find hasElementInContainment(problem,interpretation); 1623 neg find hasElementInContainment(problem,interpretation);
1700 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 1624 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
1701 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class"); 1625 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
1702 find mayInstanceOfInformationLink_class(problem,interpretation,newObject); 1626 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
1703 find mayExist(problem, interpretation, newObject); 1627 find mayExist(problem, interpretation, newObject);
1704 neg find mustExist(problem, interpretation, newObject); 1628 neg find mustExist(problem, interpretation, newObject);
1705} 1629}
1706pattern createObject_FunctionalArchitectureModel_class_UndefinedPart( 1630pattern createObject_FAMTerminator_class_by_terminator_reference_FunctionalData_with_data_reference_FAMTerminator(
1707 problem:LogicProblem, interpretation:PartialInterpretation, 1631 problem:LogicProblem, interpretation:PartialInterpretation,
1708 typeInterpretation:PartialComplexTypeInterpretation) 1632 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
1633 container:DefinedElement)
1709{ 1634{
1710 find interpretation(problem,interpretation); 1635 find interpretation(problem,interpretation);
1711 neg find hasElementInContainment(problem,interpretation);
1712 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 1636 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
1713 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalArchitectureModel class UndefinedPart"); 1637 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class");
1714 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,newObject); 1638 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
1715 find mayExist(problem, interpretation, newObject); 1639 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"terminator reference FunctionalData");
1640 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
1641 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"data reference FAMTerminator");
1642 find mustInstanceOfFunctionalData_class(problem,interpretation,container);
1643 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject);
1644 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,container,newObject);
1645 find mustExist(problem, interpretation, container);
1716 neg find mustExist(problem, interpretation, newObject); 1646 neg find mustExist(problem, interpretation, newObject);
1717} 1647}
1718pattern createObject_Function_class_by_rootElements_reference_FunctionalArchitectureModel( 1648pattern createObject_FAMTerminator_class(
1719 problem:LogicProblem, interpretation:PartialInterpretation, 1649 problem:LogicProblem, interpretation:PartialInterpretation,
1720 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 1650 typeInterpretation:PartialComplexTypeInterpretation)
1721 container:DefinedElement)
1722{ 1651{
1723 find interpretation(problem,interpretation); 1652 find interpretation(problem,interpretation);
1653 neg find hasElementInContainment(problem,interpretation);
1724 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 1654 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
1725 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class"); 1655 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class");
1726 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 1656 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject);
1727 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"rootElements reference FunctionalArchitectureModel"); 1657 find mayExist(problem, interpretation, newObject);
1728 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,container);
1729 find mayInstanceOfFunction_class(problem,interpretation,newObject);
1730 find mayInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,container,newObject);
1731 find mustExist(problem, interpretation, container);
1732 neg find mustExist(problem, interpretation, newObject); 1658 neg find mustExist(problem, interpretation, newObject);
1733} 1659}
1734pattern createObject_Function_class_by_subElements_reference_Function_with_parent_reference_FunctionalElement( 1660pattern createObject_FunctionalOutput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData(
1735 problem:LogicProblem, interpretation:PartialInterpretation, 1661 problem:LogicProblem, interpretation:PartialInterpretation,
1736 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 1662 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
1737 container:DefinedElement) 1663 container:DefinedElement)
1738{ 1664{
1739 find interpretation(problem,interpretation); 1665 find interpretation(problem,interpretation);
1740 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 1666 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
1741 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class"); 1667 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class");
1742 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 1668 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
1743 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"subElements reference Function"); 1669 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface");
1744 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 1670 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
1745 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"parent reference FunctionalElement"); 1671 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData");
1746 find mustInstanceOfFunction_class(problem,interpretation,container); 1672 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container);
1747 find mayInstanceOfFunction_class(problem,interpretation,newObject); 1673 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject);
1748 find mayInRelationsubElements_reference_Function(problem,interpretation,container,newObject); 1674 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject);
1749 find mustExist(problem, interpretation, container); 1675 find mustExist(problem, interpretation, container);
1750 neg find mustExist(problem, interpretation, newObject); 1676 neg find mustExist(problem, interpretation, newObject);
1751} 1677}
1752pattern createObject_Function_class( 1678pattern createObject_FunctionalOutput_class(
1753 problem:LogicProblem, interpretation:PartialInterpretation, 1679 problem:LogicProblem, interpretation:PartialInterpretation,
1754 typeInterpretation:PartialComplexTypeInterpretation) 1680 typeInterpretation:PartialComplexTypeInterpretation)
1755{ 1681{
1756 find interpretation(problem,interpretation); 1682 find interpretation(problem,interpretation);
1757 neg find hasElementInContainment(problem,interpretation); 1683 neg find hasElementInContainment(problem,interpretation);
1758 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 1684 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
1759 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class"); 1685 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class");
1760 find mayInstanceOfFunction_class(problem,interpretation,newObject); 1686 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject);
1761 find mayExist(problem, interpretation, newObject); 1687 find mayExist(problem, interpretation, newObject);
1762 neg find mustExist(problem, interpretation, newObject); 1688 neg find mustExist(problem, interpretation, newObject);
1763} 1689}
@@ -1765,84 +1691,84 @@ pattern createObject_Function_class(
1765////////// 1691//////////
1766// 4.2 Type refinement 1692// 4.2 Type refinement
1767////////// 1693//////////
1768pattern refineTypeTo_FAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 1694pattern refineTypeTo_Function_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
1769 find interpretation(problem,interpretation); 1695 find interpretation(problem,interpretation);
1770 PartialInterpretation.newElements(interpretation,element); 1696 PartialInterpretation.newElements(interpretation,element);
1771 find mayInstanceOfFAMTerminator_class(problem,interpretation,element); 1697 find mayInstanceOfFunction_class(problem,interpretation,element);
1772 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 1698 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
1773 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 1699 neg find mustInstanceOfFunction_class(problem,interpretation,element);
1774 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
1775 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
1776 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 1700 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
1777 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 1701 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
1702 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
1703 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
1778} 1704}
1779pattern refineTypeTo_FunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 1705pattern refineTypeTo_FunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
1780 find interpretation(problem,interpretation); 1706 find interpretation(problem,interpretation);
1781 PartialInterpretation.newElements(interpretation,element); 1707 PartialInterpretation.newElements(interpretation,element);
1782 find mayInstanceOfFunctionalInput_class(problem,interpretation,element); 1708 find mayInstanceOfFunctionalInput_class(problem,interpretation,element);
1709 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
1783 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 1710 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
1784 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
1785 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); 1711 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
1786 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
1787 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 1712 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
1788 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
1789 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
1790}
1791pattern refineTypeTo_FunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
1792 find interpretation(problem,interpretation);
1793 PartialInterpretation.newElements(interpretation,element);
1794 find mayInstanceOfFunctionalInterface_class(problem,interpretation,element);
1795 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
1796 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
1797 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
1798 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 1713 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
1799 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
1800 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
1801}
1802pattern refineTypeTo_FunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
1803 find interpretation(problem,interpretation);
1804 PartialInterpretation.newElements(interpretation,element);
1805 find mayInstanceOfFunctionalOutput_class(problem,interpretation,element);
1806 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
1807 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 1714 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
1808 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
1809 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
1810 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 1715 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
1811 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
1812 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
1813} 1716}
1814pattern refineTypeTo_InformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 1717pattern refineTypeTo_InformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
1815 find interpretation(problem,interpretation); 1718 find interpretation(problem,interpretation);
1816 PartialInterpretation.newElements(interpretation,element); 1719 PartialInterpretation.newElements(interpretation,element);
1817 find mayInstanceOfInformationLink_class(problem,interpretation,element); 1720 find mayInstanceOfInformationLink_class(problem,interpretation,element);
1818 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 1721 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
1819 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 1722 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
1723 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
1820 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 1724 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
1821 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 1725 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
1822 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 1726 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
1823 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
1824} 1727}
1825pattern refineTypeTo_FunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 1728pattern refineTypeTo_FunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
1826 find interpretation(problem,interpretation); 1729 find interpretation(problem,interpretation);
1827 PartialInterpretation.newElements(interpretation,element); 1730 PartialInterpretation.newElements(interpretation,element);
1828 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); 1731 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
1829 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
1830 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
1831 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
1832 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
1833 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 1732 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
1733 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
1834 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); 1734 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
1735 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
1736 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
1737 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
1835} 1738}
1836pattern refineTypeTo_Function_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 1739pattern refineTypeTo_FunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
1837 find interpretation(problem,interpretation); 1740 find interpretation(problem,interpretation);
1838 PartialInterpretation.newElements(interpretation,element); 1741 PartialInterpretation.newElements(interpretation,element);
1839 find mayInstanceOfFunction_class(problem,interpretation,element); 1742 find mayInstanceOfFunctionalInterface_class(problem,interpretation,element);
1840 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 1743 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
1841 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 1744 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
1745 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
1746 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
1842 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 1747 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
1748 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
1749}
1750pattern refineTypeTo_FAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
1751 find interpretation(problem,interpretation);
1752 PartialInterpretation.newElements(interpretation,element);
1753 find mayInstanceOfFAMTerminator_class(problem,interpretation,element);
1754 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
1755 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
1756 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
1843 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 1757 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
1758 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
1759 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
1760}
1761pattern refineTypeTo_FunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
1762 find interpretation(problem,interpretation);
1763 PartialInterpretation.newElements(interpretation,element);
1764 find mayInstanceOfFunctionalOutput_class(problem,interpretation,element);
1765 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
1766 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
1767 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
1844 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 1768 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
1845 neg find mustInstanceOfFunction_class(problem,interpretation,element); 1769 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
1770 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
1771 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
1846} 1772}
1847 1773
1848////////// 1774//////////
@@ -1894,7 +1820,8 @@ pattern refineRelation_type_attribute_Function(
1894 find mustInstanceOfFunctionType_enum(problem,interpretation,to); 1820 find mustInstanceOfFunctionType_enum(problem,interpretation,to);
1895 find mayInRelationtype_attribute_Function(problem,interpretation,from,to); 1821 find mayInRelationtype_attribute_Function(problem,interpretation,from,to);
1896 neg find mustInRelationtype_attribute_Function(problem,interpretation,from,to); 1822 neg find mustInRelationtype_attribute_Function(problem,interpretation,from,to);
1897}import epackage "http://www.bme.hu/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage" 1823}
1824import epackage "http://www.bme.hu/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage"
1898import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem" 1825import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem"
1899import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/language" 1826import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/language"
1900 1827
@@ -2000,23 +1927,23 @@ private pattern mayInstanceOfFunctionalElement_class(problem:LogicProblem, inter
2000{ 1927{
2001 find interpretation(problem,interpretation); 1928 find interpretation(problem,interpretation);
2002 PartialInterpretation.newElements(interpretation,element); 1929 PartialInterpretation.newElements(interpretation,element);
1930 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
1931 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
1932 neg find mustInstanceOfFunction_class(problem,interpretation,element);
2003 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 1933 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
2004 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 1934 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
2005 neg find mustInstanceOfFunction_class(problem,interpretation,element);
2006 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 1935 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
2007 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
2008 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
2009 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation); 1936 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
2010 neg find isPrimitive(element); 1937 neg find isPrimitive(element);
2011} or { 1938} or {
2012 find interpretation(problem,interpretation); 1939 find interpretation(problem,interpretation);
2013 PartialInterpretation.openWorldElements(interpretation,element); 1940 PartialInterpretation.openWorldElements(interpretation,element);
1941 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
1942 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
1943 neg find mustInstanceOfFunction_class(problem,interpretation,element);
2014 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 1944 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
2015 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 1945 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
2016 neg find mustInstanceOfFunction_class(problem,interpretation,element);
2017 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 1946 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
2018 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
2019 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
2020 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation); 1947 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
2021 neg find isPrimitive(element); 1948 neg find isPrimitive(element);
2022} or 1949} or
@@ -2044,23 +1971,23 @@ private pattern mayInstanceOfFunctionalArchitectureModel_class(problem:LogicProb
2044{ 1971{
2045 find interpretation(problem,interpretation); 1972 find interpretation(problem,interpretation);
2046 PartialInterpretation.newElements(interpretation,element); 1973 PartialInterpretation.newElements(interpretation,element);
2047 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
2048 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
2049 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
2050 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
2051 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 1974 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
1975 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
2052 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); 1976 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
1977 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
1978 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
1979 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
2053 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation); 1980 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
2054 neg find isPrimitive(element); 1981 neg find isPrimitive(element);
2055} or { 1982} or {
2056 find interpretation(problem,interpretation); 1983 find interpretation(problem,interpretation);
2057 PartialInterpretation.openWorldElements(interpretation,element); 1984 PartialInterpretation.openWorldElements(interpretation,element);
2058 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
2059 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
2060 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
2061 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
2062 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 1985 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
1986 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
2063 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); 1987 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
1988 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
1989 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
1990 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
2064 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation); 1991 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
2065 neg find isPrimitive(element); 1992 neg find isPrimitive(element);
2066} or 1993} or
@@ -2088,21 +2015,21 @@ private pattern mayInstanceOfFunction_class(problem:LogicProblem, interpretation
2088{ 2015{
2089 find interpretation(problem,interpretation); 2016 find interpretation(problem,interpretation);
2090 PartialInterpretation.newElements(interpretation,element); 2017 PartialInterpretation.newElements(interpretation,element);
2091 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
2092 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
2093 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 2018 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
2094 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
2095 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 2019 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
2020 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
2021 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
2022 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
2096 neg find scopeDisallowsNewFunction_class(problem, interpretation); 2023 neg find scopeDisallowsNewFunction_class(problem, interpretation);
2097 neg find isPrimitive(element); 2024 neg find isPrimitive(element);
2098} or { 2025} or {
2099 find interpretation(problem,interpretation); 2026 find interpretation(problem,interpretation);
2100 PartialInterpretation.openWorldElements(interpretation,element); 2027 PartialInterpretation.openWorldElements(interpretation,element);
2101 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
2102 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
2103 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 2028 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
2104 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
2105 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 2029 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
2030 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
2031 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
2032 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
2106 neg find scopeDisallowsNewFunction_class(problem, interpretation); 2033 neg find scopeDisallowsNewFunction_class(problem, interpretation);
2107 neg find isPrimitive(element); 2034 neg find isPrimitive(element);
2108} or 2035} or
@@ -2130,20 +2057,20 @@ private pattern mayInstanceOfFAMTerminator_class(problem:LogicProblem, interpret
2130{ 2057{
2131 find interpretation(problem,interpretation); 2058 find interpretation(problem,interpretation);
2132 PartialInterpretation.newElements(interpretation,element); 2059 PartialInterpretation.newElements(interpretation,element);
2133 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 2060 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
2134 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 2061 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
2135 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 2062 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
2136 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 2063 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
2137 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 2064 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
2138 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation); 2065 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
2139 neg find isPrimitive(element); 2066 neg find isPrimitive(element);
2140} or { 2067} or {
2141 find interpretation(problem,interpretation); 2068 find interpretation(problem,interpretation);
2142 PartialInterpretation.openWorldElements(interpretation,element); 2069 PartialInterpretation.openWorldElements(interpretation,element);
2143 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 2070 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
2144 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 2071 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
2145 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 2072 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
2146 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 2073 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
2147 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 2074 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
2148 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation); 2075 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
2149 neg find isPrimitive(element); 2076 neg find isPrimitive(element);
@@ -2172,21 +2099,21 @@ private pattern mayInstanceOfInformationLink_class(problem:LogicProblem, interpr
2172{ 2099{
2173 find interpretation(problem,interpretation); 2100 find interpretation(problem,interpretation);
2174 PartialInterpretation.newElements(interpretation,element); 2101 PartialInterpretation.newElements(interpretation,element);
2175 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
2176 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 2102 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
2103 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
2104 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
2177 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 2105 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
2178 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 2106 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
2179 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
2180 neg find scopeDisallowsNewInformationLink_class(problem, interpretation); 2107 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
2181 neg find isPrimitive(element); 2108 neg find isPrimitive(element);
2182} or { 2109} or {
2183 find interpretation(problem,interpretation); 2110 find interpretation(problem,interpretation);
2184 PartialInterpretation.openWorldElements(interpretation,element); 2111 PartialInterpretation.openWorldElements(interpretation,element);
2185 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
2186 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 2112 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
2113 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
2114 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
2187 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 2115 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
2188 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 2116 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
2189 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
2190 neg find scopeDisallowsNewInformationLink_class(problem, interpretation); 2117 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
2191 neg find isPrimitive(element); 2118 neg find isPrimitive(element);
2192} or 2119} or
@@ -2214,21 +2141,21 @@ private pattern mayInstanceOfFunctionalInterface_class(problem:LogicProblem, int
2214{ 2141{
2215 find interpretation(problem,interpretation); 2142 find interpretation(problem,interpretation);
2216 PartialInterpretation.newElements(interpretation,element); 2143 PartialInterpretation.newElements(interpretation,element);
2144 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
2217 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 2145 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
2146 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
2218 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 2147 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
2219 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 2148 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
2220 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
2221 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
2222 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation); 2149 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
2223 neg find isPrimitive(element); 2150 neg find isPrimitive(element);
2224} or { 2151} or {
2225 find interpretation(problem,interpretation); 2152 find interpretation(problem,interpretation);
2226 PartialInterpretation.openWorldElements(interpretation,element); 2153 PartialInterpretation.openWorldElements(interpretation,element);
2154 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
2227 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 2155 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
2156 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
2228 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 2157 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
2229 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 2158 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
2230 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
2231 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
2232 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation); 2159 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
2233 neg find isPrimitive(element); 2160 neg find isPrimitive(element);
2234} or 2161} or
@@ -2256,22 +2183,22 @@ private pattern mayInstanceOfFunctionalInput_class(problem:LogicProblem, interpr
2256{ 2183{
2257 find interpretation(problem,interpretation); 2184 find interpretation(problem,interpretation);
2258 PartialInterpretation.newElements(interpretation,element); 2185 PartialInterpretation.newElements(interpretation,element);
2259 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
2260 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 2186 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
2261 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
2262 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 2187 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
2263 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 2188 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
2189 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
2190 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
2264 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 2191 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
2265 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation); 2192 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
2266 neg find isPrimitive(element); 2193 neg find isPrimitive(element);
2267} or { 2194} or {
2268 find interpretation(problem,interpretation); 2195 find interpretation(problem,interpretation);
2269 PartialInterpretation.openWorldElements(interpretation,element); 2196 PartialInterpretation.openWorldElements(interpretation,element);
2270 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
2271 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 2197 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
2272 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
2273 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 2198 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
2274 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 2199 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
2200 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
2201 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
2275 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 2202 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
2276 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation); 2203 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
2277 neg find isPrimitive(element); 2204 neg find isPrimitive(element);
@@ -2300,23 +2227,23 @@ private pattern mayInstanceOfFunctionalOutput_class(problem:LogicProblem, interp
2300{ 2227{
2301 find interpretation(problem,interpretation); 2228 find interpretation(problem,interpretation);
2302 PartialInterpretation.newElements(interpretation,element); 2229 PartialInterpretation.newElements(interpretation,element);
2230 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
2231 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
2232 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
2303 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); 2233 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
2304 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 2234 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
2305 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
2306 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 2235 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
2307 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
2308 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
2309 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation); 2236 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
2310 neg find isPrimitive(element); 2237 neg find isPrimitive(element);
2311} or { 2238} or {
2312 find interpretation(problem,interpretation); 2239 find interpretation(problem,interpretation);
2313 PartialInterpretation.openWorldElements(interpretation,element); 2240 PartialInterpretation.openWorldElements(interpretation,element);
2241 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
2242 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
2243 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
2314 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); 2244 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
2315 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 2245 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
2316 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
2317 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 2246 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
2318 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
2319 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
2320 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation); 2247 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
2321 neg find isPrimitive(element); 2248 neg find isPrimitive(element);
2322} or 2249} or
@@ -2344,24 +2271,24 @@ private pattern mayInstanceOfFunctionalData_class(problem:LogicProblem, interpre
2344{ 2271{
2345 find interpretation(problem,interpretation); 2272 find interpretation(problem,interpretation);
2346 PartialInterpretation.newElements(interpretation,element); 2273 PartialInterpretation.newElements(interpretation,element);
2347 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
2348 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
2349 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 2274 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
2350 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
2351 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 2275 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
2352 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 2276 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
2277 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
2278 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
2279 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
2353 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 2280 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
2354 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation); 2281 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
2355 neg find isPrimitive(element); 2282 neg find isPrimitive(element);
2356} or { 2283} or {
2357 find interpretation(problem,interpretation); 2284 find interpretation(problem,interpretation);
2358 PartialInterpretation.openWorldElements(interpretation,element); 2285 PartialInterpretation.openWorldElements(interpretation,element);
2359 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
2360 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
2361 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 2286 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
2362 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
2363 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 2287 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
2364 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 2288 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
2289 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
2290 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
2291 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
2365 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 2292 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
2366 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation); 2293 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
2367 neg find isPrimitive(element); 2294 neg find isPrimitive(element);
@@ -2432,21 +2359,21 @@ private pattern mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(pro
2432{ 2359{
2433 find interpretation(problem,interpretation); 2360 find interpretation(problem,interpretation);
2434 PartialInterpretation.newElements(interpretation,element); 2361 PartialInterpretation.newElements(interpretation,element);
2435 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
2436 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 2362 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
2437 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
2438 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
2439 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 2363 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
2364 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
2365 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
2366 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
2440 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation); 2367 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation);
2441 neg find isPrimitive(element); 2368 neg find isPrimitive(element);
2442} or { 2369} or {
2443 find interpretation(problem,interpretation); 2370 find interpretation(problem,interpretation);
2444 PartialInterpretation.openWorldElements(interpretation,element); 2371 PartialInterpretation.openWorldElements(interpretation,element);
2445 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
2446 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 2372 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
2447 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
2448 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
2449 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 2373 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
2374 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
2375 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
2376 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
2450 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation); 2377 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation);
2451 neg find isPrimitive(element); 2378 neg find isPrimitive(element);
2452} or 2379} or
@@ -2506,7 +2433,7 @@ private pattern mayInRelationinterface_reference_FunctionalElement(
2506 problem:LogicProblem, interpretation:PartialInterpretation, 2433 problem:LogicProblem, interpretation:PartialInterpretation,
2507 source: DefinedElement, target:DefinedElement) 2434 source: DefinedElement, target:DefinedElement)
2508 { 2435 {
2509 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_model(problem,interpretation,source,target); 2436 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_model(problem,interpretation,source,target);
2510 } 2437 }
2511/** 2438/**
2512 * Matcher for detecting tuples t where []model reference FunctionalElement(source,target) 2439 * Matcher for detecting tuples t where []model reference FunctionalElement(source,target)
@@ -2515,7 +2442,7 @@ private pattern mayInRelationinterface_reference_FunctionalElement(
2515 problem:LogicProblem, interpretation:PartialInterpretation, 2442 problem:LogicProblem, interpretation:PartialInterpretation,
2516 source: DefinedElement, target:DefinedElement) 2443 source: DefinedElement, target:DefinedElement)
2517 { 2444 {
2518 find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_model(problem,interpretation,source,target); 2445 find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_model(problem,interpretation,source,target);
2519 } 2446 }
2520/** 2447/**
2521 * Matcher for detecting tuples t where []parent reference FunctionalElement(source,target) 2448 * Matcher for detecting tuples t where []parent reference FunctionalElement(source,target)
@@ -2998,27 +2925,44 @@ private pattern mayInRelationinterface_reference_FunctionalData(
2998/** 2925/**
2999 * Matcher for detecting tuples t where []type attribute Function(source,target) 2926 * Matcher for detecting tuples t where []type attribute Function(source,target)
3000 */ 2927 */
3001 private pattern mustInRelationtype_attribute_Function( 2928private pattern mustInRelationtype_attribute_Function(
3002 problem:LogicProblem, interpretation:PartialInterpretation, 2929 problem:LogicProblem, interpretation:PartialInterpretation,
3003 source: DefinedElement, target:DefinedElement) 2930 source: DefinedElement, target:DefinedElement)
3004 { 2931{
3005 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_type(problem,interpretation,source,target); 2932 find interpretation(problem,interpretation);
3006 } 2933 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
2934 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function");
2935 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
2936 BinaryElementRelationLink.param1(link,source);
2937 BinaryElementRelationLink.param2(link,target);
2938}
3007/** 2939/**
3008 * Matcher for detecting tuples t where []type attribute Function(source,target) 2940 * Matcher for detecting tuples t where <>type attribute Function(source,target)
3009 */ 2941 */
3010 private pattern mayInRelationtype_attribute_Function( 2942private pattern mayInRelationtype_attribute_Function(
3011 problem:LogicProblem, interpretation:PartialInterpretation, 2943 problem:LogicProblem, interpretation:PartialInterpretation,
3012 source: DefinedElement, target:DefinedElement) 2944 source: DefinedElement, target:DefinedElement)
3013 { 2945{
3014 find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_type(problem,interpretation,source,target); 2946 find interpretation(problem,interpretation);
3015 } 2947 // The two endpoint of the link have to exist
2948 find mayExist(problem, interpretation, source);
2949 find mayExist(problem, interpretation, target);
2950 // Type consistency
2951 find mayInstanceOfFunction_class(problem,interpretation,source);
2952 find mayInstanceOfFunctionType_enum(problem,interpretation,target);
2953 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
2954 // the upper bound of the multiplicity should be considered.
2955 numberOfExistingReferences == count find mustInRelationtype_attribute_Function(problem,interpretation,source,_);
2956 check(numberOfExistingReferences < 1);
2957} or {
2958 find mustInRelationtype_attribute_Function(problem,interpretation,source,target);
2959}
3016 2960
3017////////// 2961//////////
3018// 1.3 Relation Definition Indexers 2962// 1.3 Relation Definition Indexers
3019////////// 2963//////////
3020// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test fam terminatorAndInformation 2964// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test fam queries terminatorAndInformation
3021private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_terminatorAndInformation( 2965private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(
3022 problem:LogicProblem, interpretation:PartialInterpretation, 2966 problem:LogicProblem, interpretation:PartialInterpretation,
3023 var_T, var_I) 2967 var_T, var_I)
3024{ 2968{
@@ -3050,7 +2994,7 @@ private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_tes
3050 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1); 2994 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
3051 var_virtual1 == var_T; 2995 var_virtual1 == var_T;
3052} 2996}
3053private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_terminatorAndInformation( 2997private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(
3054 problem:LogicProblem, interpretation:PartialInterpretation, 2998 problem:LogicProblem, interpretation:PartialInterpretation,
3055 var_T, var_I) 2999 var_T, var_I)
3056{ 3000{
@@ -3082,7 +3026,7 @@ private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test
3082 find mayInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1); 3026 find mayInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
3083 find mayEquivalent(problem, interpretation, var_virtual1, var_T); 3027 find mayEquivalent(problem, interpretation, var_virtual1, var_T);
3084} 3028}
3085private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_terminatorAndInformation( 3029private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(
3086 problem:LogicProblem, interpretation:PartialInterpretation, 3030 problem:LogicProblem, interpretation:PartialInterpretation,
3087 var_T, var_I) 3031 var_T, var_I)
3088{ 3032{
@@ -3114,108 +3058,8 @@ private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_
3114 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1); 3058 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
3115 var_virtual1 == var_T; 3059 var_virtual1 == var_T;
3116} 3060}
3117// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test fam type 3061// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test fam queries rootElements
3118private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_type( 3062private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_rootElements(
3119 problem:LogicProblem, interpretation:PartialInterpretation,
3120 var_This, var_Target)
3121{
3122 find interpretation(problem,interpretation);
3123 find mustInstanceOfFunction_class(problem,interpretation,var_This);
3124 // type constraint is enforced by construction
3125 // This is exported
3126 // Target is exported
3127 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_rootElements(problem,interpretation,_var__Model,var_This);
3128 var_virtual0 == const_Root_FunctionType;DefinedElement.name(const_Root_FunctionType,"Root FunctionType"); //LogicProblem.elements(problem,const_Root_FunctionType);
3129 var_Target == var_virtual0;
3130}or{
3131 find interpretation(problem,interpretation);
3132 find mustInstanceOfFunction_class(problem,interpretation,var_This);
3133 // type constraint is enforced by construction
3134 // This is exported
3135 // Target is exported
3136 neg find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(problem,interpretation,_var__Child,var_This);
3137 neg find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_rootElements(problem,interpretation,_var__Model,var_This);
3138 var_virtual0 == const_Leaf_FunctionType;DefinedElement.name(const_Leaf_FunctionType,"Leaf FunctionType"); //LogicProblem.elements(problem,const_Leaf_FunctionType);
3139 var_Target == var_virtual0;
3140}or{
3141 find interpretation(problem,interpretation);
3142 find mustInstanceOfFunction_class(problem,interpretation,var_This);
3143 // type constraint is enforced by construction
3144 // This is exported
3145 // Target is exported
3146 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(problem,interpretation,var_This,_var__Par);
3147 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(problem,interpretation,_var__Child,var_This);
3148 var_virtual0 == const_Intermediate_FunctionType;DefinedElement.name(const_Intermediate_FunctionType,"Intermediate FunctionType"); //LogicProblem.elements(problem,const_Intermediate_FunctionType);
3149 var_Target == var_virtual0;
3150}
3151private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_type(
3152 problem:LogicProblem, interpretation:PartialInterpretation,
3153 var_This, var_Target)
3154{
3155 find interpretation(problem,interpretation);
3156 find mayInstanceOfFunction_class(problem,interpretation,var_This);
3157 // type constraint is enforced by construction
3158 // This is exported
3159 // Target is exported
3160 find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_rootElements(problem,interpretation,_var__Model,var_This);
3161 var_virtual0 == const_Root_FunctionType;DefinedElement.name(const_Root_FunctionType,"Root FunctionType"); //LogicProblem.elements(problem,const_Root_FunctionType);
3162 find mayEquivalent(problem, interpretation, var_Target, var_virtual0);
3163}or{
3164 find interpretation(problem,interpretation);
3165 find mayInstanceOfFunction_class(problem,interpretation,var_This);
3166 // type constraint is enforced by construction
3167 // This is exported
3168 // Target is exported
3169 neg find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(problem,interpretation,_var__Child,var_This);
3170 neg find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_rootElements(problem,interpretation,_var__Model,var_This);
3171 var_virtual0 == const_Leaf_FunctionType;DefinedElement.name(const_Leaf_FunctionType,"Leaf FunctionType"); //LogicProblem.elements(problem,const_Leaf_FunctionType);
3172 find mayEquivalent(problem, interpretation, var_Target, var_virtual0);
3173}or{
3174 find interpretation(problem,interpretation);
3175 find mayInstanceOfFunction_class(problem,interpretation,var_This);
3176 // type constraint is enforced by construction
3177 // This is exported
3178 // Target is exported
3179 find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(problem,interpretation,var_This,_var__Par);
3180 find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(problem,interpretation,_var__Child,var_This);
3181 var_virtual0 == const_Intermediate_FunctionType;DefinedElement.name(const_Intermediate_FunctionType,"Intermediate FunctionType"); //LogicProblem.elements(problem,const_Intermediate_FunctionType);
3182 find mayEquivalent(problem, interpretation, var_Target, var_virtual0);
3183}
3184private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_type(
3185 problem:LogicProblem, interpretation:PartialInterpretation,
3186 var_This, var_Target)
3187{
3188 find interpretation(problem,interpretation);
3189 find mustInstanceOfFunction_class(problem,interpretation,var_This);
3190 // type constraint is enforced by construction
3191 // This is exported
3192 // Target is exported
3193 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_rootElements(problem,interpretation,_var__Model,var_This);
3194 var_virtual0 == const_Root_FunctionType;DefinedElement.name(const_Root_FunctionType,"Root FunctionType"); //LogicProblem.elements(problem,const_Root_FunctionType);
3195 var_Target == var_virtual0;
3196}or{
3197 find interpretation(problem,interpretation);
3198 find mustInstanceOfFunction_class(problem,interpretation,var_This);
3199 // type constraint is enforced by construction
3200 // This is exported
3201 // Target is exported
3202 neg find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(problem,interpretation,_var__Child,var_This);
3203 neg find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_rootElements(problem,interpretation,_var__Model,var_This);
3204 var_virtual0 == const_Leaf_FunctionType;DefinedElement.name(const_Leaf_FunctionType,"Leaf FunctionType"); //LogicProblem.elements(problem,const_Leaf_FunctionType);
3205 var_Target == var_virtual0;
3206}or{
3207 find interpretation(problem,interpretation);
3208 find mustInstanceOfFunction_class(problem,interpretation,var_This);
3209 // type constraint is enforced by construction
3210 // This is exported
3211 // Target is exported
3212 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(problem,interpretation,var_This,_var__Par);
3213 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(problem,interpretation,_var__Child,var_This);
3214 var_virtual0 == const_Intermediate_FunctionType;DefinedElement.name(const_Intermediate_FunctionType,"Intermediate FunctionType"); //LogicProblem.elements(problem,const_Intermediate_FunctionType);
3215 var_Target == var_virtual0;
3216}
3217// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test fam rootElements
3218private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_rootElements(
3219 problem:LogicProblem, interpretation:PartialInterpretation, 3063 problem:LogicProblem, interpretation:PartialInterpretation,
3220 var_Model, var_Root) 3064 var_Model, var_Root)
3221{ 3065{
@@ -3229,7 +3073,7 @@ private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_tes
3229 find mustInstanceOfFunctionalElement_class(problem,interpretation,var_virtual0); 3073 find mustInstanceOfFunctionalElement_class(problem,interpretation,var_virtual0);
3230 var_virtual0 == var_Root; 3074 var_virtual0 == var_Root;
3231} 3075}
3232private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_rootElements( 3076private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_rootElements(
3233 problem:LogicProblem, interpretation:PartialInterpretation, 3077 problem:LogicProblem, interpretation:PartialInterpretation,
3234 var_Model, var_Root) 3078 var_Model, var_Root)
3235{ 3079{
@@ -3243,7 +3087,7 @@ private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test
3243 find mayInstanceOfFunctionalElement_class(problem,interpretation,var_virtual0); 3087 find mayInstanceOfFunctionalElement_class(problem,interpretation,var_virtual0);
3244 find mayEquivalent(problem, interpretation, var_virtual0, var_Root); 3088 find mayEquivalent(problem, interpretation, var_virtual0, var_Root);
3245} 3089}
3246private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_rootElements( 3090private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_rootElements(
3247 problem:LogicProblem, interpretation:PartialInterpretation, 3091 problem:LogicProblem, interpretation:PartialInterpretation,
3248 var_Model, var_Root) 3092 var_Model, var_Root)
3249{ 3093{
@@ -3257,8 +3101,8 @@ private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_
3257 find mustInstanceOfFunctionalElement_class(problem,interpretation,var_virtual0); 3101 find mustInstanceOfFunctionalElement_class(problem,interpretation,var_virtual0);
3258 var_virtual0 == var_Root; 3102 var_virtual0 == var_Root;
3259} 3103}
3260// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test fam parent 3104// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test fam queries parent
3261private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent( 3105private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_parent(
3262 problem:LogicProblem, interpretation:PartialInterpretation, 3106 problem:LogicProblem, interpretation:PartialInterpretation,
3263 var_Func, var_Par) 3107 var_Func, var_Par)
3264{ 3108{
@@ -3272,7 +3116,7 @@ private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_tes
3272 find mustInstanceOfFunction_class(problem,interpretation,var_virtual0); 3116 find mustInstanceOfFunction_class(problem,interpretation,var_virtual0);
3273 var_virtual0 == var_Par; 3117 var_virtual0 == var_Par;
3274} 3118}
3275private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent( 3119private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_parent(
3276 problem:LogicProblem, interpretation:PartialInterpretation, 3120 problem:LogicProblem, interpretation:PartialInterpretation,
3277 var_Func, var_Par) 3121 var_Func, var_Par)
3278{ 3122{
@@ -3286,7 +3130,7 @@ private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test
3286 find mayInstanceOfFunction_class(problem,interpretation,var_virtual0); 3130 find mayInstanceOfFunction_class(problem,interpretation,var_virtual0);
3287 find mayEquivalent(problem, interpretation, var_virtual0, var_Par); 3131 find mayEquivalent(problem, interpretation, var_virtual0, var_Par);
3288} 3132}
3289private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent( 3133private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_parent(
3290 problem:LogicProblem, interpretation:PartialInterpretation, 3134 problem:LogicProblem, interpretation:PartialInterpretation,
3291 var_Func, var_Par) 3135 var_Func, var_Par)
3292{ 3136{
@@ -3300,8 +3144,8 @@ private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_
3300 find mustInstanceOfFunction_class(problem,interpretation,var_virtual0); 3144 find mustInstanceOfFunction_class(problem,interpretation,var_virtual0);
3301 var_virtual0 == var_Par; 3145 var_virtual0 == var_Par;
3302} 3146}
3303// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test fam model 3147// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test fam queries model
3304private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_model( 3148private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_model(
3305 problem:LogicProblem, interpretation:PartialInterpretation, 3149 problem:LogicProblem, interpretation:PartialInterpretation,
3306 var_This, var_Target) 3150 var_This, var_Target)
3307{ 3151{
@@ -3313,7 +3157,7 @@ private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_tes
3313 find mustInstanceOfFunctionalElement_class(problem,interpretation,var_This); 3157 find mustInstanceOfFunctionalElement_class(problem,interpretation,var_This);
3314 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Target); 3158 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Target);
3315} 3159}
3316private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_model( 3160private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_model(
3317 problem:LogicProblem, interpretation:PartialInterpretation, 3161 problem:LogicProblem, interpretation:PartialInterpretation,
3318 var_This, var_Target) 3162 var_This, var_Target)
3319{ 3163{
@@ -3325,7 +3169,7 @@ private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test
3325 find mayInstanceOfFunctionalElement_class(problem,interpretation,var_This); 3169 find mayInstanceOfFunctionalElement_class(problem,interpretation,var_This);
3326 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Target); 3170 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Target);
3327} 3171}
3328private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_model( 3172private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_model(
3329 problem:LogicProblem, interpretation:PartialInterpretation, 3173 problem:LogicProblem, interpretation:PartialInterpretation,
3330 var_This, var_Target) 3174 var_This, var_Target)
3331{ 3175{
@@ -3368,10 +3212,10 @@ private pattern mustTransitiveContains(source,target) {
3368////////// 3212//////////
3369// 2.1 Invalidated by WF Queries 3213// 2.1 Invalidated by WF Queries
3370////////// 3214//////////
3371pattern invalidatedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_terminatorAndInformation(problem:LogicProblem, interpretation:PartialInterpretation, 3215pattern invalidatedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(problem:LogicProblem, interpretation:PartialInterpretation,
3372 var_T, var_I) 3216 var_T, var_I)
3373{ 3217{
3374 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_terminatorAndInformation(problem,interpretation,var_T,var_I); 3218 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(problem,interpretation,var_T,var_I);
3375} 3219}
3376 3220
3377////////// 3221//////////
@@ -3388,14 +3232,23 @@ pattern unfinishedLowerMultiplicity_to_reference_InformationLink(problem:LogicPr
3388 check(numberOfExistingReferences < 1); 3232 check(numberOfExistingReferences < 1);
3389 missingMultiplicity == eval(1-numberOfExistingReferences); 3233 missingMultiplicity == eval(1-numberOfExistingReferences);
3390} 3234}
3235pattern unfinishedLowerMultiplicity_type_attribute_Function(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
3236 find interpretation(problem,interpretation);
3237 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
3238 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function");
3239 find mustInstanceOfFunction_class(problem,interpretation,object);
3240 numberOfExistingReferences == count find mustInRelationtype_attribute_Function(problem,interpretation,object,_);
3241 check(numberOfExistingReferences < 1);
3242 missingMultiplicity == eval(1-numberOfExistingReferences);
3243}
3391 3244
3392////////// 3245//////////
3393// 3.2 Unfinishedness Measured by WF Queries 3246// 3.2 Unfinishedness Measured by WF Queries
3394////////// 3247//////////
3395pattern unfinishedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_terminatorAndInformation(problem:LogicProblem, interpretation:PartialInterpretation, 3248pattern unfinishedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(problem:LogicProblem, interpretation:PartialInterpretation,
3396 var_T, var_I) 3249 var_T, var_I)
3397{ 3250{
3398 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_terminatorAndInformation(problem,interpretation,var_T,var_I); 3251 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(problem,interpretation,var_T,var_I);
3399} 3252}
3400 3253
3401////////// 3254//////////
@@ -3406,11 +3259,11 @@ pattern unfinishedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_term
3406private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation) 3259private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation)
3407{ 3260{
3408 find interpretation(problem,interpretation); 3261 find interpretation(problem,interpretation);
3409 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,root); 3262 find mustInstanceOfInformationLink_class(problem,interpretation,root);
3410 find mustExist(problem, interpretation, root); 3263 find mustExist(problem, interpretation, root);
3411}or{ 3264}or{
3412 find interpretation(problem,interpretation); 3265 find interpretation(problem,interpretation);
3413 find mustInstanceOfFunctionalElement_class(problem,interpretation,root); 3266 find mustInstanceOfFunctionalOutput_class(problem,interpretation,root);
3414 find mustExist(problem, interpretation, root); 3267 find mustExist(problem, interpretation, root);
3415}or{ 3268}or{
3416 find interpretation(problem,interpretation); 3269 find interpretation(problem,interpretation);
@@ -3418,11 +3271,11 @@ private pattern hasElementInContainment(problem:LogicProblem, interpretation:Par
3418 find mustExist(problem, interpretation, root); 3271 find mustExist(problem, interpretation, root);
3419}or{ 3272}or{
3420 find interpretation(problem,interpretation); 3273 find interpretation(problem,interpretation);
3421 find mustInstanceOfFunction_class(problem,interpretation,root); 3274 find mustInstanceOfFunctionalData_class(problem,interpretation,root);
3422 find mustExist(problem, interpretation, root); 3275 find mustExist(problem, interpretation, root);
3423}or{ 3276}or{
3424 find interpretation(problem,interpretation); 3277 find interpretation(problem,interpretation);
3425 find mustInstanceOfFunctionalInterface_class(problem,interpretation,root); 3278 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,root);
3426 find mustExist(problem, interpretation, root); 3279 find mustExist(problem, interpretation, root);
3427}or{ 3280}or{
3428 find interpretation(problem,interpretation); 3281 find interpretation(problem,interpretation);
@@ -3430,15 +3283,15 @@ private pattern hasElementInContainment(problem:LogicProblem, interpretation:Par
3430 find mustExist(problem, interpretation, root); 3283 find mustExist(problem, interpretation, root);
3431}or{ 3284}or{
3432 find interpretation(problem,interpretation); 3285 find interpretation(problem,interpretation);
3433 find mustInstanceOfInformationLink_class(problem,interpretation,root); 3286 find mustInstanceOfFunction_class(problem,interpretation,root);
3434 find mustExist(problem, interpretation, root); 3287 find mustExist(problem, interpretation, root);
3435}or{ 3288}or{
3436 find interpretation(problem,interpretation); 3289 find interpretation(problem,interpretation);
3437 find mustInstanceOfFunctionalOutput_class(problem,interpretation,root); 3290 find mustInstanceOfFunctionalInterface_class(problem,interpretation,root);
3438 find mustExist(problem, interpretation, root); 3291 find mustExist(problem, interpretation, root);
3439}or{ 3292}or{
3440 find interpretation(problem,interpretation); 3293 find interpretation(problem,interpretation);
3441 find mustInstanceOfFunctionalData_class(problem,interpretation,root); 3294 find mustInstanceOfFunctionalElement_class(problem,interpretation,root);
3442 find mustExist(problem, interpretation, root); 3295 find mustExist(problem, interpretation, root);
3443}or{ 3296}or{
3444 find interpretation(problem,interpretation); 3297 find interpretation(problem,interpretation);
@@ -3449,63 +3302,45 @@ private pattern hasElementInContainment(problem:LogicProblem, interpretation:Par
3449 find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,root); 3302 find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,root);
3450 find mustExist(problem, interpretation, root); 3303 find mustExist(problem, interpretation, root);
3451} 3304}
3452pattern createObject_FunctionalInput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData( 3305pattern createObject_InformationLink_class_by_outgoingLinks_reference_FunctionalOutput_with_from_reference_InformationLink(
3453 problem:LogicProblem, interpretation:PartialInterpretation, 3306 problem:LogicProblem, interpretation:PartialInterpretation,
3454 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 3307 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
3455 container:DefinedElement) 3308 container:DefinedElement)
3456{ 3309{
3457 find interpretation(problem,interpretation); 3310 find interpretation(problem,interpretation);
3458 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 3311 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
3459 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class"); 3312 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class");
3460 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 3313 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
3461 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface"); 3314 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"outgoingLinks reference FunctionalOutput");
3462 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 3315 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
3463 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData"); 3316 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"from reference InformationLink");
3464 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container); 3317 find mustInstanceOfFunctionalOutput_class(problem,interpretation,container);
3465 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject); 3318 find mayInstanceOfInformationLink_class(problem,interpretation,newObject);
3466 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject); 3319 find mayInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,container,newObject);
3467 find mustExist(problem, interpretation, container); 3320 find mustExist(problem, interpretation, container);
3468 neg find mustExist(problem, interpretation, newObject); 3321 neg find mustExist(problem, interpretation, newObject);
3469} 3322}
3470pattern createObject_FunctionalInput_class( 3323pattern createObject_InformationLink_class(
3471 problem:LogicProblem, interpretation:PartialInterpretation, 3324 problem:LogicProblem, interpretation:PartialInterpretation,
3472 typeInterpretation:PartialComplexTypeInterpretation) 3325 typeInterpretation:PartialComplexTypeInterpretation)
3473{ 3326{
3474 find interpretation(problem,interpretation); 3327 find interpretation(problem,interpretation);
3475 neg find hasElementInContainment(problem,interpretation); 3328 neg find hasElementInContainment(problem,interpretation);
3476 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 3329 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
3477 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class"); 3330 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class");
3478 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject); 3331 find mayInstanceOfInformationLink_class(problem,interpretation,newObject);
3479 find mayExist(problem, interpretation, newObject); 3332 find mayExist(problem, interpretation, newObject);
3480 neg find mustExist(problem, interpretation, newObject); 3333 neg find mustExist(problem, interpretation, newObject);
3481} 3334}
3482pattern createObject_FunctionalInterface_class_by_interface_reference_FunctionalElement_with_element_reference_FunctionalInterface( 3335pattern createObject_FunctionalArchitectureModel_class_UndefinedPart(
3483 problem:LogicProblem, interpretation:PartialInterpretation,
3484 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
3485 container:DefinedElement)
3486{
3487 find interpretation(problem,interpretation);
3488 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
3489 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
3490 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
3491 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"interface reference FunctionalElement");
3492 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
3493 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"element reference FunctionalInterface");
3494 find mustInstanceOfFunctionalElement_class(problem,interpretation,container);
3495 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
3496 find mayInRelationinterface_reference_FunctionalElement(problem,interpretation,container,newObject);
3497 find mustExist(problem, interpretation, container);
3498 neg find mustExist(problem, interpretation, newObject);
3499}
3500pattern createObject_FunctionalInterface_class(
3501 problem:LogicProblem, interpretation:PartialInterpretation, 3336 problem:LogicProblem, interpretation:PartialInterpretation,
3502 typeInterpretation:PartialComplexTypeInterpretation) 3337 typeInterpretation:PartialComplexTypeInterpretation)
3503{ 3338{
3504 find interpretation(problem,interpretation); 3339 find interpretation(problem,interpretation);
3505 neg find hasElementInContainment(problem,interpretation); 3340 neg find hasElementInContainment(problem,interpretation);
3506 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 3341 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
3507 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class"); 3342 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalArchitectureModel class UndefinedPart");
3508 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject); 3343 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,newObject);
3509 find mayExist(problem, interpretation, newObject); 3344 find mayExist(problem, interpretation, newObject);
3510 neg find mustExist(problem, interpretation, newObject); 3345 neg find mustExist(problem, interpretation, newObject);
3511} 3346}
@@ -3555,75 +3390,93 @@ pattern createObject_Function_class(
3555 find mayExist(problem, interpretation, newObject); 3390 find mayExist(problem, interpretation, newObject);
3556 neg find mustExist(problem, interpretation, newObject); 3391 neg find mustExist(problem, interpretation, newObject);
3557} 3392}
3558pattern createObject_FAMTerminator_class_by_terminator_reference_FunctionalData_with_data_reference_FAMTerminator( 3393pattern createObject_FunctionalInput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData(
3559 problem:LogicProblem, interpretation:PartialInterpretation, 3394 problem:LogicProblem, interpretation:PartialInterpretation,
3560 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 3395 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
3561 container:DefinedElement) 3396 container:DefinedElement)
3562{ 3397{
3563 find interpretation(problem,interpretation); 3398 find interpretation(problem,interpretation);
3564 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 3399 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
3565 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class"); 3400 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class");
3566 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 3401 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
3567 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"terminator reference FunctionalData"); 3402 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface");
3568 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 3403 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
3569 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"data reference FAMTerminator"); 3404 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData");
3570 find mustInstanceOfFunctionalData_class(problem,interpretation,container); 3405 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container);
3571 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject); 3406 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
3572 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,container,newObject); 3407 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject);
3573 find mustExist(problem, interpretation, container); 3408 find mustExist(problem, interpretation, container);
3574 neg find mustExist(problem, interpretation, newObject); 3409 neg find mustExist(problem, interpretation, newObject);
3575} 3410}
3576pattern createObject_FAMTerminator_class( 3411pattern createObject_FunctionalInput_class(
3577 problem:LogicProblem, interpretation:PartialInterpretation, 3412 problem:LogicProblem, interpretation:PartialInterpretation,
3578 typeInterpretation:PartialComplexTypeInterpretation) 3413 typeInterpretation:PartialComplexTypeInterpretation)
3579{ 3414{
3580 find interpretation(problem,interpretation); 3415 find interpretation(problem,interpretation);
3581 neg find hasElementInContainment(problem,interpretation); 3416 neg find hasElementInContainment(problem,interpretation);
3582 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 3417 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
3583 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class"); 3418 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class");
3584 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject); 3419 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
3585 find mayExist(problem, interpretation, newObject); 3420 find mayExist(problem, interpretation, newObject);
3586 neg find mustExist(problem, interpretation, newObject); 3421 neg find mustExist(problem, interpretation, newObject);
3587} 3422}
3588pattern createObject_InformationLink_class_by_outgoingLinks_reference_FunctionalOutput_with_from_reference_InformationLink( 3423pattern createObject_FunctionalInterface_class_by_interface_reference_FunctionalElement_with_element_reference_FunctionalInterface(
3589 problem:LogicProblem, interpretation:PartialInterpretation, 3424 problem:LogicProblem, interpretation:PartialInterpretation,
3590 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 3425 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
3591 container:DefinedElement) 3426 container:DefinedElement)
3592{ 3427{
3593 find interpretation(problem,interpretation); 3428 find interpretation(problem,interpretation);
3594 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 3429 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
3595 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class"); 3430 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
3596 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 3431 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
3597 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"outgoingLinks reference FunctionalOutput"); 3432 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"interface reference FunctionalElement");
3598 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 3433 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
3599 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"from reference InformationLink"); 3434 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"element reference FunctionalInterface");
3600 find mustInstanceOfFunctionalOutput_class(problem,interpretation,container); 3435 find mustInstanceOfFunctionalElement_class(problem,interpretation,container);
3601 find mayInstanceOfInformationLink_class(problem,interpretation,newObject); 3436 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
3602 find mayInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,container,newObject); 3437 find mayInRelationinterface_reference_FunctionalElement(problem,interpretation,container,newObject);
3603 find mustExist(problem, interpretation, container); 3438 find mustExist(problem, interpretation, container);
3604 neg find mustExist(problem, interpretation, newObject); 3439 neg find mustExist(problem, interpretation, newObject);
3605} 3440}
3606pattern createObject_InformationLink_class( 3441pattern createObject_FunctionalInterface_class(
3607 problem:LogicProblem, interpretation:PartialInterpretation, 3442 problem:LogicProblem, interpretation:PartialInterpretation,
3608 typeInterpretation:PartialComplexTypeInterpretation) 3443 typeInterpretation:PartialComplexTypeInterpretation)
3609{ 3444{
3610 find interpretation(problem,interpretation); 3445 find interpretation(problem,interpretation);
3611 neg find hasElementInContainment(problem,interpretation); 3446 neg find hasElementInContainment(problem,interpretation);
3612 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 3447 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
3613 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class"); 3448 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
3614 find mayInstanceOfInformationLink_class(problem,interpretation,newObject); 3449 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
3615 find mayExist(problem, interpretation, newObject); 3450 find mayExist(problem, interpretation, newObject);
3616 neg find mustExist(problem, interpretation, newObject); 3451 neg find mustExist(problem, interpretation, newObject);
3617} 3452}
3618pattern createObject_FunctionalArchitectureModel_class_UndefinedPart( 3453pattern createObject_FAMTerminator_class_by_terminator_reference_FunctionalData_with_data_reference_FAMTerminator(
3454 problem:LogicProblem, interpretation:PartialInterpretation,
3455 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
3456 container:DefinedElement)
3457{
3458 find interpretation(problem,interpretation);
3459 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
3460 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class");
3461 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
3462 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"terminator reference FunctionalData");
3463 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
3464 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"data reference FAMTerminator");
3465 find mustInstanceOfFunctionalData_class(problem,interpretation,container);
3466 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject);
3467 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,container,newObject);
3468 find mustExist(problem, interpretation, container);
3469 neg find mustExist(problem, interpretation, newObject);
3470}
3471pattern createObject_FAMTerminator_class(
3619 problem:LogicProblem, interpretation:PartialInterpretation, 3472 problem:LogicProblem, interpretation:PartialInterpretation,
3620 typeInterpretation:PartialComplexTypeInterpretation) 3473 typeInterpretation:PartialComplexTypeInterpretation)
3621{ 3474{
3622 find interpretation(problem,interpretation); 3475 find interpretation(problem,interpretation);
3623 neg find hasElementInContainment(problem,interpretation); 3476 neg find hasElementInContainment(problem,interpretation);
3624 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 3477 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
3625 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalArchitectureModel class UndefinedPart"); 3478 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class");
3626 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,newObject); 3479 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject);
3627 find mayExist(problem, interpretation, newObject); 3480 find mayExist(problem, interpretation, newObject);
3628 neg find mustExist(problem, interpretation, newObject); 3481 neg find mustExist(problem, interpretation, newObject);
3629} 3482}
@@ -3661,83 +3514,83 @@ pattern createObject_FunctionalOutput_class(
3661////////// 3514//////////
3662// 4.2 Type refinement 3515// 4.2 Type refinement
3663////////// 3516//////////
3664pattern refineTypeTo_FunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 3517pattern refineTypeTo_InformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
3665 find interpretation(problem,interpretation); 3518 find interpretation(problem,interpretation);
3666 PartialInterpretation.newElements(interpretation,element); 3519 PartialInterpretation.newElements(interpretation,element);
3667 find mayInstanceOfFunctionalInput_class(problem,interpretation,element); 3520 find mayInstanceOfInformationLink_class(problem,interpretation,element);
3668 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
3669 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
3670 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 3521 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
3671 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
3672 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 3522 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
3673 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 3523 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
3674 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 3524 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
3525 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
3526 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
3675} 3527}
3676pattern refineTypeTo_FunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 3528pattern refineTypeTo_FunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
3677 find interpretation(problem,interpretation); 3529 find interpretation(problem,interpretation);
3678 PartialInterpretation.newElements(interpretation,element); 3530 PartialInterpretation.newElements(interpretation,element);
3679 find mayInstanceOfFunctionalInterface_class(problem,interpretation,element); 3531 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
3680 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
3681 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 3532 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
3682 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
3683 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
3684 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
3685 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 3533 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
3534 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
3535 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
3536 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
3537 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
3686} 3538}
3687pattern refineTypeTo_Function_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 3539pattern refineTypeTo_Function_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
3688 find interpretation(problem,interpretation); 3540 find interpretation(problem,interpretation);
3689 PartialInterpretation.newElements(interpretation,element); 3541 PartialInterpretation.newElements(interpretation,element);
3690 find mayInstanceOfFunction_class(problem,interpretation,element); 3542 find mayInstanceOfFunction_class(problem,interpretation,element);
3691 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
3692 neg find mustInstanceOfFunction_class(problem,interpretation,element);
3693 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
3694 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 3543 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
3695 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
3696 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 3544 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
3545 neg find mustInstanceOfFunction_class(problem,interpretation,element);
3546 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
3547 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
3548 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
3697} 3549}
3698pattern refineTypeTo_FAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 3550pattern refineTypeTo_FunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
3699 find interpretation(problem,interpretation); 3551 find interpretation(problem,interpretation);
3700 PartialInterpretation.newElements(interpretation,element); 3552 PartialInterpretation.newElements(interpretation,element);
3701 find mayInstanceOfFAMTerminator_class(problem,interpretation,element); 3553 find mayInstanceOfFunctionalInput_class(problem,interpretation,element);
3702 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
3703 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 3554 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
3704 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
3705 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
3706 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 3555 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
3707 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 3556 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
3557 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
3558 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
3559 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
3560 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
3708} 3561}
3709pattern refineTypeTo_InformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 3562pattern refineTypeTo_FunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
3710 find interpretation(problem,interpretation); 3563 find interpretation(problem,interpretation);
3711 PartialInterpretation.newElements(interpretation,element); 3564 PartialInterpretation.newElements(interpretation,element);
3712 find mayInstanceOfInformationLink_class(problem,interpretation,element); 3565 find mayInstanceOfFunctionalInterface_class(problem,interpretation,element);
3713 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 3566 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
3714 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 3567 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
3568 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
3569 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
3715 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 3570 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
3716 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 3571 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
3717 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
3718 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
3719} 3572}
3720pattern refineTypeTo_FunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 3573pattern refineTypeTo_FAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
3721 find interpretation(problem,interpretation); 3574 find interpretation(problem,interpretation);
3722 PartialInterpretation.newElements(interpretation,element); 3575 PartialInterpretation.newElements(interpretation,element);
3723 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); 3576 find mayInstanceOfFAMTerminator_class(problem,interpretation,element);
3724 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 3577 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
3725 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 3578 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
3579 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
3580 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
3726 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 3581 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
3727 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 3582 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
3728 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
3729 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
3730} 3583}
3731pattern refineTypeTo_FunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 3584pattern refineTypeTo_FunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
3732 find interpretation(problem,interpretation); 3585 find interpretation(problem,interpretation);
3733 PartialInterpretation.newElements(interpretation,element); 3586 PartialInterpretation.newElements(interpretation,element);
3734 find mayInstanceOfFunctionalOutput_class(problem,interpretation,element); 3587 find mayInstanceOfFunctionalOutput_class(problem,interpretation,element);
3588 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
3589 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
3590 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
3735 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); 3591 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
3736 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 3592 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
3737 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
3738 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 3593 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
3739 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
3740 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
3741 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 3594 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
3742} 3595}
3743 3596
@@ -3898,22 +3751,22 @@ private pattern mayInstanceOfFunctionalElement_class(problem:LogicProblem, inter
3898 find interpretation(problem,interpretation); 3751 find interpretation(problem,interpretation);
3899 PartialInterpretation.newElements(interpretation,element); 3752 PartialInterpretation.newElements(interpretation,element);
3900 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 3753 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
3901 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
3902 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
3903 neg find mustInstanceOfFunction_class(problem,interpretation,element);
3904 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 3754 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
3755 neg find mustInstanceOfFunction_class(problem,interpretation,element);
3756 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
3905 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 3757 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
3758 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
3906 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation); 3759 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
3907 neg find isPrimitive(element); 3760 neg find isPrimitive(element);
3908} or { 3761} or {
3909 find interpretation(problem,interpretation); 3762 find interpretation(problem,interpretation);
3910 PartialInterpretation.openWorldElements(interpretation,element); 3763 PartialInterpretation.openWorldElements(interpretation,element);
3911 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 3764 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
3912 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
3913 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
3914 neg find mustInstanceOfFunction_class(problem,interpretation,element);
3915 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 3765 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
3766 neg find mustInstanceOfFunction_class(problem,interpretation,element);
3767 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
3916 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 3768 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
3769 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
3917 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation); 3770 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
3918 neg find isPrimitive(element); 3771 neg find isPrimitive(element);
3919} or 3772} or
@@ -3942,10 +3795,10 @@ private pattern mayInstanceOfFunctionalArchitectureModel_class(problem:LogicProb
3942 find interpretation(problem,interpretation); 3795 find interpretation(problem,interpretation);
3943 PartialInterpretation.newElements(interpretation,element); 3796 PartialInterpretation.newElements(interpretation,element);
3944 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 3797 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
3945 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
3946 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 3798 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
3947 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
3948 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 3799 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
3800 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
3801 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
3949 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 3802 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
3950 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation); 3803 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
3951 neg find isPrimitive(element); 3804 neg find isPrimitive(element);
@@ -3953,10 +3806,10 @@ private pattern mayInstanceOfFunctionalArchitectureModel_class(problem:LogicProb
3953 find interpretation(problem,interpretation); 3806 find interpretation(problem,interpretation);
3954 PartialInterpretation.openWorldElements(interpretation,element); 3807 PartialInterpretation.openWorldElements(interpretation,element);
3955 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 3808 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
3956 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
3957 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 3809 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
3958 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
3959 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 3810 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
3811 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
3812 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
3960 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 3813 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
3961 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation); 3814 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
3962 neg find isPrimitive(element); 3815 neg find isPrimitive(element);
@@ -3986,20 +3839,20 @@ private pattern mayInstanceOfFunction_class(problem:LogicProblem, interpretation
3986 find interpretation(problem,interpretation); 3839 find interpretation(problem,interpretation);
3987 PartialInterpretation.newElements(interpretation,element); 3840 PartialInterpretation.newElements(interpretation,element);
3988 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 3841 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
3989 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
3990 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
3991 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 3842 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
3843 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
3992 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 3844 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
3845 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
3993 neg find scopeDisallowsNewFunction_class(problem, interpretation); 3846 neg find scopeDisallowsNewFunction_class(problem, interpretation);
3994 neg find isPrimitive(element); 3847 neg find isPrimitive(element);
3995} or { 3848} or {
3996 find interpretation(problem,interpretation); 3849 find interpretation(problem,interpretation);
3997 PartialInterpretation.openWorldElements(interpretation,element); 3850 PartialInterpretation.openWorldElements(interpretation,element);
3998 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 3851 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
3999 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
4000 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
4001 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 3852 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
3853 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
4002 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 3854 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
3855 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
4003 neg find scopeDisallowsNewFunction_class(problem, interpretation); 3856 neg find scopeDisallowsNewFunction_class(problem, interpretation);
4004 neg find isPrimitive(element); 3857 neg find isPrimitive(element);
4005} or 3858} or
@@ -4028,20 +3881,20 @@ private pattern mayInstanceOfFAMTerminator_class(problem:LogicProblem, interpret
4028 find interpretation(problem,interpretation); 3881 find interpretation(problem,interpretation);
4029 PartialInterpretation.newElements(interpretation,element); 3882 PartialInterpretation.newElements(interpretation,element);
4030 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 3883 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
4031 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
4032 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 3884 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
4033 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
4034 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 3885 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
3886 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
3887 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
4035 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation); 3888 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
4036 neg find isPrimitive(element); 3889 neg find isPrimitive(element);
4037} or { 3890} or {
4038 find interpretation(problem,interpretation); 3891 find interpretation(problem,interpretation);
4039 PartialInterpretation.openWorldElements(interpretation,element); 3892 PartialInterpretation.openWorldElements(interpretation,element);
4040 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 3893 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
4041 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
4042 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 3894 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
4043 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
4044 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 3895 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
3896 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
3897 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
4045 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation); 3898 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
4046 neg find isPrimitive(element); 3899 neg find isPrimitive(element);
4047} or 3900} or
@@ -4070,20 +3923,20 @@ private pattern mayInstanceOfInformationLink_class(problem:LogicProblem, interpr
4070 find interpretation(problem,interpretation); 3923 find interpretation(problem,interpretation);
4071 PartialInterpretation.newElements(interpretation,element); 3924 PartialInterpretation.newElements(interpretation,element);
4072 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 3925 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
4073 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
4074 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 3926 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
4075 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 3927 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
4076 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 3928 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
3929 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
4077 neg find scopeDisallowsNewInformationLink_class(problem, interpretation); 3930 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
4078 neg find isPrimitive(element); 3931 neg find isPrimitive(element);
4079} or { 3932} or {
4080 find interpretation(problem,interpretation); 3933 find interpretation(problem,interpretation);
4081 PartialInterpretation.openWorldElements(interpretation,element); 3934 PartialInterpretation.openWorldElements(interpretation,element);
4082 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 3935 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
4083 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
4084 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 3936 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
4085 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 3937 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
4086 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 3938 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
3939 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
4087 neg find scopeDisallowsNewInformationLink_class(problem, interpretation); 3940 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
4088 neg find isPrimitive(element); 3941 neg find isPrimitive(element);
4089} or 3942} or
@@ -4112,20 +3965,20 @@ private pattern mayInstanceOfFunctionalInterface_class(problem:LogicProblem, int
4112 find interpretation(problem,interpretation); 3965 find interpretation(problem,interpretation);
4113 PartialInterpretation.newElements(interpretation,element); 3966 PartialInterpretation.newElements(interpretation,element);
4114 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 3967 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
4115 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
4116 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
4117 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 3968 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
4118 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 3969 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
3970 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
3971 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
4119 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation); 3972 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
4120 neg find isPrimitive(element); 3973 neg find isPrimitive(element);
4121} or { 3974} or {
4122 find interpretation(problem,interpretation); 3975 find interpretation(problem,interpretation);
4123 PartialInterpretation.openWorldElements(interpretation,element); 3976 PartialInterpretation.openWorldElements(interpretation,element);
4124 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 3977 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
4125 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
4126 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
4127 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 3978 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
4128 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 3979 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
3980 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
3981 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
4129 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation); 3982 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
4130 neg find isPrimitive(element); 3983 neg find isPrimitive(element);
4131} or 3984} or
@@ -4153,23 +4006,23 @@ private pattern mayInstanceOfFunctionalInput_class(problem:LogicProblem, interpr
4153{ 4006{
4154 find interpretation(problem,interpretation); 4007 find interpretation(problem,interpretation);
4155 PartialInterpretation.newElements(interpretation,element); 4008 PartialInterpretation.newElements(interpretation,element);
4009 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
4010 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
4156 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 4011 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
4157 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 4012 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
4158 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
4159 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
4160 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 4013 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
4161 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 4014 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
4162 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation); 4015 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
4163 neg find isPrimitive(element); 4016 neg find isPrimitive(element);
4164} or { 4017} or {
4165 find interpretation(problem,interpretation); 4018 find interpretation(problem,interpretation);
4166 PartialInterpretation.openWorldElements(interpretation,element); 4019 PartialInterpretation.openWorldElements(interpretation,element);
4020 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
4021 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
4167 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 4022 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
4168 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 4023 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
4169 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
4170 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
4171 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 4024 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
4172 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 4025 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
4173 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation); 4026 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
4174 neg find isPrimitive(element); 4027 neg find isPrimitive(element);
4175} or 4028} or
@@ -4197,22 +4050,22 @@ private pattern mayInstanceOfFunctionalOutput_class(problem:LogicProblem, interp
4197{ 4050{
4198 find interpretation(problem,interpretation); 4051 find interpretation(problem,interpretation);
4199 PartialInterpretation.newElements(interpretation,element); 4052 PartialInterpretation.newElements(interpretation,element);
4200 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
4201 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 4053 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
4202 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
4203 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
4204 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 4054 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
4055 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
4056 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
4057 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
4205 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 4058 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
4206 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation); 4059 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
4207 neg find isPrimitive(element); 4060 neg find isPrimitive(element);
4208} or { 4061} or {
4209 find interpretation(problem,interpretation); 4062 find interpretation(problem,interpretation);
4210 PartialInterpretation.openWorldElements(interpretation,element); 4063 PartialInterpretation.openWorldElements(interpretation,element);
4211 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
4212 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 4064 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
4213 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
4214 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
4215 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 4065 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
4066 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
4067 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
4068 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
4216 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 4069 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
4217 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation); 4070 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
4218 neg find isPrimitive(element); 4071 neg find isPrimitive(element);
@@ -4241,25 +4094,25 @@ private pattern mayInstanceOfFunctionalData_class(problem:LogicProblem, interpre
4241{ 4094{
4242 find interpretation(problem,interpretation); 4095 find interpretation(problem,interpretation);
4243 PartialInterpretation.newElements(interpretation,element); 4096 PartialInterpretation.newElements(interpretation,element);
4244 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
4245 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
4246 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
4247 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 4097 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
4248 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
4249 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 4098 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
4099 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
4100 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
4101 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
4250 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 4102 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
4103 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
4251 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation); 4104 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
4252 neg find isPrimitive(element); 4105 neg find isPrimitive(element);
4253} or { 4106} or {
4254 find interpretation(problem,interpretation); 4107 find interpretation(problem,interpretation);
4255 PartialInterpretation.openWorldElements(interpretation,element); 4108 PartialInterpretation.openWorldElements(interpretation,element);
4256 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
4257 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
4258 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
4259 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 4109 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
4260 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
4261 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 4110 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
4111 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
4112 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
4113 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
4262 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 4114 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
4115 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
4263 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation); 4116 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
4264 neg find isPrimitive(element); 4117 neg find isPrimitive(element);
4265} or 4118} or
@@ -4330,9 +4183,9 @@ private pattern mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(pro
4330 find interpretation(problem,interpretation); 4183 find interpretation(problem,interpretation);
4331 PartialInterpretation.newElements(interpretation,element); 4184 PartialInterpretation.newElements(interpretation,element);
4332 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 4185 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
4333 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
4334 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 4186 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
4335 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 4187 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
4188 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
4336 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 4189 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
4337 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation); 4190 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation);
4338 neg find isPrimitive(element); 4191 neg find isPrimitive(element);
@@ -4340,9 +4193,9 @@ private pattern mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(pro
4340 find interpretation(problem,interpretation); 4193 find interpretation(problem,interpretation);
4341 PartialInterpretation.openWorldElements(interpretation,element); 4194 PartialInterpretation.openWorldElements(interpretation,element);
4342 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 4195 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
4343 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
4344 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 4196 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
4345 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 4197 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
4198 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
4346 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 4199 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
4347 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation); 4200 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation);
4348 neg find isPrimitive(element); 4201 neg find isPrimitive(element);
@@ -4399,21 +4252,38 @@ private pattern mayInRelationinterface_reference_FunctionalElement(
4399/** 4252/**
4400 * Matcher for detecting tuples t where []model reference FunctionalElement(source,target) 4253 * Matcher for detecting tuples t where []model reference FunctionalElement(source,target)
4401 */ 4254 */
4402 private pattern mustInRelationmodel_reference_FunctionalElement( 4255private pattern mustInRelationmodel_reference_FunctionalElement(
4403 problem:LogicProblem, interpretation:PartialInterpretation, 4256 problem:LogicProblem, interpretation:PartialInterpretation,
4404 source: DefinedElement, target:DefinedElement) 4257 source: DefinedElement, target:DefinedElement)
4405 { 4258{
4406 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_model(problem,interpretation,source,target); 4259 find interpretation(problem,interpretation);
4407 } 4260 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
4261 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement");
4262 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
4263 BinaryElementRelationLink.param1(link,source);
4264 BinaryElementRelationLink.param2(link,target);
4265}
4408/** 4266/**
4409 * Matcher for detecting tuples t where []model reference FunctionalElement(source,target) 4267 * Matcher for detecting tuples t where <>model reference FunctionalElement(source,target)
4410 */ 4268 */
4411 private pattern mayInRelationmodel_reference_FunctionalElement( 4269private pattern mayInRelationmodel_reference_FunctionalElement(
4412 problem:LogicProblem, interpretation:PartialInterpretation, 4270 problem:LogicProblem, interpretation:PartialInterpretation,
4413 source: DefinedElement, target:DefinedElement) 4271 source: DefinedElement, target:DefinedElement)
4414 { 4272{
4415 find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_model(problem,interpretation,source,target); 4273 find interpretation(problem,interpretation);
4416 } 4274 // The two endpoint of the link have to exist
4275 find mayExist(problem, interpretation, source);
4276 find mayExist(problem, interpretation, target);
4277 // Type consistency
4278 find mayInstanceOfFunctionalElement_class(problem,interpretation,source);
4279 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,target);
4280 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
4281 // the upper bound of the multiplicity should be considered.
4282 numberOfExistingReferences == count find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,source,_);
4283 check(numberOfExistingReferences < 1);
4284} or {
4285 find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,source,target);
4286}
4417/** 4287/**
4418 * Matcher for detecting tuples t where []parent reference FunctionalElement(source,target) 4288 * Matcher for detecting tuples t where []parent reference FunctionalElement(source,target)
4419 */ 4289 */
@@ -4895,347 +4765,44 @@ private pattern mayInRelationinterface_reference_FunctionalData(
4895/** 4765/**
4896 * Matcher for detecting tuples t where []type attribute Function(source,target) 4766 * Matcher for detecting tuples t where []type attribute Function(source,target)
4897 */ 4767 */
4898 private pattern mustInRelationtype_attribute_Function( 4768private pattern mustInRelationtype_attribute_Function(
4899 problem:LogicProblem, interpretation:PartialInterpretation,
4900 source: DefinedElement, target:DefinedElement)
4901 {
4902 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_type(problem,interpretation,source,target);
4903 }
4904/**
4905 * Matcher for detecting tuples t where []type attribute Function(source,target)
4906 */
4907 private pattern mayInRelationtype_attribute_Function(
4908 problem:LogicProblem, interpretation:PartialInterpretation,
4909 source: DefinedElement, target:DefinedElement)
4910 {
4911 find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_type(problem,interpretation,source,target);
4912 }
4913
4914//////////
4915// 1.3 Relation Definition Indexers
4916//////////
4917// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test fam terminatorAndInformation
4918private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_terminatorAndInformation(
4919 problem:LogicProblem, interpretation:PartialInterpretation,
4920 var_T, var_I)
4921{
4922 find interpretation(problem,interpretation);
4923 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_T);
4924 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
4925 // T is exported
4926 // I is exported
4927 find mustInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
4928 find mustInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,var_Out,var_virtual0);
4929 find mustInstanceOfInformationLink_class(problem,interpretation,var_virtual0);
4930 var_virtual0 == var_I;
4931 find mustInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
4932 find mustInRelationterminator_reference_FunctionalData(problem,interpretation,var_Out,var_virtual1);
4933 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
4934 var_virtual1 == var_T;
4935}or{
4936 find interpretation(problem,interpretation);
4937 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_T);
4938 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
4939 // T is exported
4940 // I is exported
4941 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
4942 find mustInRelationto_reference_InformationLink(problem,interpretation,var_I,var_virtual0);
4943 find mustInstanceOfFunctionalInput_class(problem,interpretation,var_virtual0);
4944 var_virtual0 == var_In;
4945 find mustInstanceOfFunctionalInput_class(problem,interpretation,var_In);
4946 find mustInRelationterminator_reference_FunctionalData(problem,interpretation,var_In,var_virtual1);
4947 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
4948 var_virtual1 == var_T;
4949}
4950private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_terminatorAndInformation(
4951 problem:LogicProblem, interpretation:PartialInterpretation,
4952 var_T, var_I)
4953{
4954 find interpretation(problem,interpretation);
4955 find mayInstanceOfFAMTerminator_class(problem,interpretation,var_T);
4956 find mayInstanceOfInformationLink_class(problem,interpretation,var_I);
4957 // T is exported
4958 // I is exported
4959 find mayInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
4960 find mayInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,var_Out,var_virtual0);
4961 find mayInstanceOfInformationLink_class(problem,interpretation,var_virtual0);
4962 find mayEquivalent(problem, interpretation, var_virtual0, var_I);
4963 find mayInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
4964 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,var_Out,var_virtual1);
4965 find mayInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
4966 find mayEquivalent(problem, interpretation, var_virtual1, var_T);
4967}or{
4968 find interpretation(problem,interpretation);
4969 find mayInstanceOfFAMTerminator_class(problem,interpretation,var_T);
4970 find mayInstanceOfInformationLink_class(problem,interpretation,var_I);
4971 // T is exported
4972 // I is exported
4973 find mayInstanceOfInformationLink_class(problem,interpretation,var_I);
4974 find mayInRelationto_reference_InformationLink(problem,interpretation,var_I,var_virtual0);
4975 find mayInstanceOfFunctionalInput_class(problem,interpretation,var_virtual0);
4976 find mayEquivalent(problem, interpretation, var_virtual0, var_In);
4977 find mayInstanceOfFunctionalInput_class(problem,interpretation,var_In);
4978 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,var_In,var_virtual1);
4979 find mayInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
4980 find mayEquivalent(problem, interpretation, var_virtual1, var_T);
4981}
4982private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_terminatorAndInformation(
4983 problem:LogicProblem, interpretation:PartialInterpretation,
4984 var_T, var_I)
4985{
4986 find interpretation(problem,interpretation);
4987 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_T);
4988 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
4989 // T is exported
4990 // I is exported
4991 find mustInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
4992 find mustInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,var_Out,var_virtual0);
4993 find mustInstanceOfInformationLink_class(problem,interpretation,var_virtual0);
4994 var_virtual0 == var_I;
4995 find mustInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
4996 find mustInRelationterminator_reference_FunctionalData(problem,interpretation,var_Out,var_virtual1);
4997 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
4998 var_virtual1 == var_T;
4999}or{
5000 find interpretation(problem,interpretation);
5001 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_T);
5002 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
5003 // T is exported
5004 // I is exported
5005 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
5006 find mustInRelationto_reference_InformationLink(problem,interpretation,var_I,var_virtual0);
5007 find mustInstanceOfFunctionalInput_class(problem,interpretation,var_virtual0);
5008 var_virtual0 == var_In;
5009 find mustInstanceOfFunctionalInput_class(problem,interpretation,var_In);
5010 find mustInRelationterminator_reference_FunctionalData(problem,interpretation,var_In,var_virtual1);
5011 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
5012 var_virtual1 == var_T;
5013}
5014// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test fam type
5015private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_type(
5016 problem:LogicProblem, interpretation:PartialInterpretation,
5017 var_This, var_Target)
5018{
5019 find interpretation(problem,interpretation);
5020 find mustInstanceOfFunction_class(problem,interpretation,var_This);
5021 // type constraint is enforced by construction
5022 // This is exported
5023 // Target is exported
5024 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_rootElements(problem,interpretation,_var__Model,var_This);
5025 var_virtual0 == const_Root_FunctionType;DefinedElement.name(const_Root_FunctionType,"Root FunctionType"); //LogicProblem.elements(problem,const_Root_FunctionType);
5026 var_Target == var_virtual0;
5027}or{
5028 find interpretation(problem,interpretation);
5029 find mustInstanceOfFunction_class(problem,interpretation,var_This);
5030 // type constraint is enforced by construction
5031 // This is exported
5032 // Target is exported
5033 neg find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(problem,interpretation,_var__Child,var_This);
5034 neg find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_rootElements(problem,interpretation,_var__Model,var_This);
5035 var_virtual0 == const_Leaf_FunctionType;DefinedElement.name(const_Leaf_FunctionType,"Leaf FunctionType"); //LogicProblem.elements(problem,const_Leaf_FunctionType);
5036 var_Target == var_virtual0;
5037}or{
5038 find interpretation(problem,interpretation);
5039 find mustInstanceOfFunction_class(problem,interpretation,var_This);
5040 // type constraint is enforced by construction
5041 // This is exported
5042 // Target is exported
5043 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(problem,interpretation,var_This,_var__Par);
5044 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(problem,interpretation,_var__Child,var_This);
5045 var_virtual0 == const_Intermediate_FunctionType;DefinedElement.name(const_Intermediate_FunctionType,"Intermediate FunctionType"); //LogicProblem.elements(problem,const_Intermediate_FunctionType);
5046 var_Target == var_virtual0;
5047}
5048private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_type(
5049 problem:LogicProblem, interpretation:PartialInterpretation,
5050 var_This, var_Target)
5051{
5052 find interpretation(problem,interpretation);
5053 find mayInstanceOfFunction_class(problem,interpretation,var_This);
5054 // type constraint is enforced by construction
5055 // This is exported
5056 // Target is exported
5057 find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_rootElements(problem,interpretation,_var__Model,var_This);
5058 var_virtual0 == const_Root_FunctionType;DefinedElement.name(const_Root_FunctionType,"Root FunctionType"); //LogicProblem.elements(problem,const_Root_FunctionType);
5059 find mayEquivalent(problem, interpretation, var_Target, var_virtual0);
5060}or{
5061 find interpretation(problem,interpretation);
5062 find mayInstanceOfFunction_class(problem,interpretation,var_This);
5063 // type constraint is enforced by construction
5064 // This is exported
5065 // Target is exported
5066 neg find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(problem,interpretation,_var__Child,var_This);
5067 neg find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_rootElements(problem,interpretation,_var__Model,var_This);
5068 var_virtual0 == const_Leaf_FunctionType;DefinedElement.name(const_Leaf_FunctionType,"Leaf FunctionType"); //LogicProblem.elements(problem,const_Leaf_FunctionType);
5069 find mayEquivalent(problem, interpretation, var_Target, var_virtual0);
5070}or{
5071 find interpretation(problem,interpretation);
5072 find mayInstanceOfFunction_class(problem,interpretation,var_This);
5073 // type constraint is enforced by construction
5074 // This is exported
5075 // Target is exported
5076 find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(problem,interpretation,var_This,_var__Par);
5077 find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(problem,interpretation,_var__Child,var_This);
5078 var_virtual0 == const_Intermediate_FunctionType;DefinedElement.name(const_Intermediate_FunctionType,"Intermediate FunctionType"); //LogicProblem.elements(problem,const_Intermediate_FunctionType);
5079 find mayEquivalent(problem, interpretation, var_Target, var_virtual0);
5080}
5081private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_type(
5082 problem:LogicProblem, interpretation:PartialInterpretation,
5083 var_This, var_Target)
5084{
5085 find interpretation(problem,interpretation);
5086 find mustInstanceOfFunction_class(problem,interpretation,var_This);
5087 // type constraint is enforced by construction
5088 // This is exported
5089 // Target is exported
5090 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_rootElements(problem,interpretation,_var__Model,var_This);
5091 var_virtual0 == const_Root_FunctionType;DefinedElement.name(const_Root_FunctionType,"Root FunctionType"); //LogicProblem.elements(problem,const_Root_FunctionType);
5092 var_Target == var_virtual0;
5093}or{
5094 find interpretation(problem,interpretation);
5095 find mustInstanceOfFunction_class(problem,interpretation,var_This);
5096 // type constraint is enforced by construction
5097 // This is exported
5098 // Target is exported
5099 neg find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(problem,interpretation,_var__Child,var_This);
5100 neg find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_rootElements(problem,interpretation,_var__Model,var_This);
5101 var_virtual0 == const_Leaf_FunctionType;DefinedElement.name(const_Leaf_FunctionType,"Leaf FunctionType"); //LogicProblem.elements(problem,const_Leaf_FunctionType);
5102 var_Target == var_virtual0;
5103}or{
5104 find interpretation(problem,interpretation);
5105 find mustInstanceOfFunction_class(problem,interpretation,var_This);
5106 // type constraint is enforced by construction
5107 // This is exported
5108 // Target is exported
5109 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(problem,interpretation,var_This,_var__Par);
5110 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(problem,interpretation,_var__Child,var_This);
5111 var_virtual0 == const_Intermediate_FunctionType;DefinedElement.name(const_Intermediate_FunctionType,"Intermediate FunctionType"); //LogicProblem.elements(problem,const_Intermediate_FunctionType);
5112 var_Target == var_virtual0;
5113}
5114// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test fam rootElements
5115private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_rootElements(
5116 problem:LogicProblem, interpretation:PartialInterpretation,
5117 var_Model, var_Root)
5118{
5119 find interpretation(problem,interpretation);
5120 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Model);
5121 find mustInstanceOfFunction_class(problem,interpretation,var_Root);
5122 // Model is exported
5123 // Root is exported
5124 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Model);
5125 find mustInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,var_Model,var_virtual0);
5126 find mustInstanceOfFunctionalElement_class(problem,interpretation,var_virtual0);
5127 var_virtual0 == var_Root;
5128}
5129private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_rootElements(
5130 problem:LogicProblem, interpretation:PartialInterpretation,
5131 var_Model, var_Root)
5132{
5133 find interpretation(problem,interpretation);
5134 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Model);
5135 find mayInstanceOfFunction_class(problem,interpretation,var_Root);
5136 // Model is exported
5137 // Root is exported
5138 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Model);
5139 find mayInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,var_Model,var_virtual0);
5140 find mayInstanceOfFunctionalElement_class(problem,interpretation,var_virtual0);
5141 find mayEquivalent(problem, interpretation, var_virtual0, var_Root);
5142}
5143private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_rootElements(
5144 problem:LogicProblem, interpretation:PartialInterpretation,
5145 var_Model, var_Root)
5146{
5147 find interpretation(problem,interpretation);
5148 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Model);
5149 find mustInstanceOfFunction_class(problem,interpretation,var_Root);
5150 // Model is exported
5151 // Root is exported
5152 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Model);
5153 find mustInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,var_Model,var_virtual0);
5154 find mustInstanceOfFunctionalElement_class(problem,interpretation,var_virtual0);
5155 var_virtual0 == var_Root;
5156}
5157// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test fam parent
5158private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(
5159 problem:LogicProblem, interpretation:PartialInterpretation,
5160 var_Func, var_Par)
5161{
5162 find interpretation(problem,interpretation);
5163 find mustInstanceOfFunction_class(problem,interpretation,var_Func);
5164 find mustInstanceOfFunction_class(problem,interpretation,var_Par);
5165 // Func is exported
5166 // Par is exported
5167 find mustInstanceOfFunction_class(problem,interpretation,var_Func);
5168 find mustInRelationparent_reference_FunctionalElement(problem,interpretation,var_Func,var_virtual0);
5169 find mustInstanceOfFunction_class(problem,interpretation,var_virtual0);
5170 var_virtual0 == var_Par;
5171}
5172private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(
5173 problem:LogicProblem, interpretation:PartialInterpretation,
5174 var_Func, var_Par)
5175{
5176 find interpretation(problem,interpretation);
5177 find mayInstanceOfFunction_class(problem,interpretation,var_Func);
5178 find mayInstanceOfFunction_class(problem,interpretation,var_Par);
5179 // Func is exported
5180 // Par is exported
5181 find mayInstanceOfFunction_class(problem,interpretation,var_Func);
5182 find mayInRelationparent_reference_FunctionalElement(problem,interpretation,var_Func,var_virtual0);
5183 find mayInstanceOfFunction_class(problem,interpretation,var_virtual0);
5184 find mayEquivalent(problem, interpretation, var_virtual0, var_Par);
5185}
5186private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(
5187 problem:LogicProblem, interpretation:PartialInterpretation,
5188 var_Func, var_Par)
5189{
5190 find interpretation(problem,interpretation);
5191 find mustInstanceOfFunction_class(problem,interpretation,var_Func);
5192 find mustInstanceOfFunction_class(problem,interpretation,var_Par);
5193 // Func is exported
5194 // Par is exported
5195 find mustInstanceOfFunction_class(problem,interpretation,var_Func);
5196 find mustInRelationparent_reference_FunctionalElement(problem,interpretation,var_Func,var_virtual0);
5197 find mustInstanceOfFunction_class(problem,interpretation,var_virtual0);
5198 var_virtual0 == var_Par;
5199}
5200// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test fam model
5201private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_model(
5202 problem:LogicProblem, interpretation:PartialInterpretation,
5203 var_This, var_Target)
5204{
5205 find interpretation(problem,interpretation);
5206 find mustInstanceOfFunctionalElement_class(problem,interpretation,var_This);
5207 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Target);
5208 // This is exported
5209 // Target is exported
5210 find mustInstanceOfFunctionalElement_class(problem,interpretation,var_This);
5211 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Target);
5212}
5213private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_model(
5214 problem:LogicProblem, interpretation:PartialInterpretation, 4769 problem:LogicProblem, interpretation:PartialInterpretation,
5215 var_This, var_Target) 4770 source: DefinedElement, target:DefinedElement)
5216{ 4771{
5217 find interpretation(problem,interpretation); 4772 find interpretation(problem,interpretation);
5218 find mayInstanceOfFunctionalElement_class(problem,interpretation,var_This); 4773 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
5219 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Target); 4774 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function");
5220 // This is exported 4775 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
5221 // Target is exported 4776 BinaryElementRelationLink.param1(link,source);
5222 find mayInstanceOfFunctionalElement_class(problem,interpretation,var_This); 4777 BinaryElementRelationLink.param2(link,target);
5223 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Target);
5224} 4778}
5225private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_model( 4779/**
4780 * Matcher for detecting tuples t where <>type attribute Function(source,target)
4781 */
4782private pattern mayInRelationtype_attribute_Function(
5226 problem:LogicProblem, interpretation:PartialInterpretation, 4783 problem:LogicProblem, interpretation:PartialInterpretation,
5227 var_This, var_Target) 4784 source: DefinedElement, target:DefinedElement)
5228{ 4785{
5229 find interpretation(problem,interpretation); 4786 find interpretation(problem,interpretation);
5230 find mustInstanceOfFunctionalElement_class(problem,interpretation,var_This); 4787 // The two endpoint of the link have to exist
5231 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Target); 4788 find mayExist(problem, interpretation, source);
5232 // This is exported 4789 find mayExist(problem, interpretation, target);
5233 // Target is exported 4790 // Type consistency
5234 find mustInstanceOfFunctionalElement_class(problem,interpretation,var_This); 4791 find mayInstanceOfFunction_class(problem,interpretation,source);
5235 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Target); 4792 find mayInstanceOfFunctionType_enum(problem,interpretation,target);
4793 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
4794 // the upper bound of the multiplicity should be considered.
4795 numberOfExistingReferences == count find mustInRelationtype_attribute_Function(problem,interpretation,source,_);
4796 check(numberOfExistingReferences < 1);
4797} or {
4798 find mustInRelationtype_attribute_Function(problem,interpretation,source,target);
5236} 4799}
5237 4800
5238////////// 4801//////////
4802// 1.3 Relation Definition Indexers
4803//////////
4804
4805//////////
5239// 1.4 Containment Indexer 4806// 1.4 Containment Indexer
5240////////// 4807//////////
5241private pattern mustContains2(source: DefinedElement, target: DefinedElement) { 4808private pattern mustContains2(source: DefinedElement, target: DefinedElement) {
@@ -5271,6 +4838,15 @@ private pattern mustTransitiveContains(source,target) {
5271////////// 4838//////////
5272// 3.1 Unfinishedness Measured by Multiplicity 4839// 3.1 Unfinishedness Measured by Multiplicity
5273////////// 4840//////////
4841pattern unfinishedLowerMultiplicity_model_reference_FunctionalElement(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
4842 find interpretation(problem,interpretation);
4843 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
4844 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement");
4845 find mustInstanceOfFunctionalElement_class(problem,interpretation,object);
4846 numberOfExistingReferences == count find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,object,_);
4847 check(numberOfExistingReferences < 1);
4848 missingMultiplicity == eval(1-numberOfExistingReferences);
4849}
5274pattern unfinishedLowerMultiplicity_to_reference_InformationLink(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { 4850pattern unfinishedLowerMultiplicity_to_reference_InformationLink(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
5275 find interpretation(problem,interpretation); 4851 find interpretation(problem,interpretation);
5276 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 4852 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
@@ -5280,6 +4856,15 @@ pattern unfinishedLowerMultiplicity_to_reference_InformationLink(problem:LogicPr
5280 check(numberOfExistingReferences < 1); 4856 check(numberOfExistingReferences < 1);
5281 missingMultiplicity == eval(1-numberOfExistingReferences); 4857 missingMultiplicity == eval(1-numberOfExistingReferences);
5282} 4858}
4859pattern unfinishedLowerMultiplicity_type_attribute_Function(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
4860 find interpretation(problem,interpretation);
4861 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
4862 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function");
4863 find mustInstanceOfFunction_class(problem,interpretation,object);
4864 numberOfExistingReferences == count find mustInRelationtype_attribute_Function(problem,interpretation,object,_);
4865 check(numberOfExistingReferences < 1);
4866 missingMultiplicity == eval(1-numberOfExistingReferences);
4867}
5283 4868
5284////////// 4869//////////
5285// 3.2 Unfinishedness Measured by WF Queries 4870// 3.2 Unfinishedness Measured by WF Queries
@@ -5293,39 +4878,39 @@ pattern unfinishedLowerMultiplicity_to_reference_InformationLink(problem:LogicPr
5293private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation) 4878private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation)
5294{ 4879{
5295 find interpretation(problem,interpretation); 4880 find interpretation(problem,interpretation);
5296 find mustInstanceOfFunctionalData_class(problem,interpretation,root); 4881 find mustInstanceOfInformationLink_class(problem,interpretation,root);
5297 find mustExist(problem, interpretation, root); 4882 find mustExist(problem, interpretation, root);
5298}or{ 4883}or{
5299 find interpretation(problem,interpretation); 4884 find interpretation(problem,interpretation);
5300 find mustInstanceOfInformationLink_class(problem,interpretation,root); 4885 find mustInstanceOfFunctionalOutput_class(problem,interpretation,root);
5301 find mustExist(problem, interpretation, root); 4886 find mustExist(problem, interpretation, root);
5302}or{ 4887}or{
5303 find interpretation(problem,interpretation); 4888 find interpretation(problem,interpretation);
5304 find mustInstanceOfFunctionalInterface_class(problem,interpretation,root); 4889 find mustInstanceOfFunctionalInput_class(problem,interpretation,root);
5305 find mustExist(problem, interpretation, root); 4890 find mustExist(problem, interpretation, root);
5306}or{ 4891}or{
5307 find interpretation(problem,interpretation); 4892 find interpretation(problem,interpretation);
5308 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,root); 4893 find mustInstanceOfFunctionalData_class(problem,interpretation,root);
5309 find mustExist(problem, interpretation, root); 4894 find mustExist(problem, interpretation, root);
5310}or{ 4895}or{
5311 find interpretation(problem,interpretation); 4896 find interpretation(problem,interpretation);
5312 find mustInstanceOfFAMTerminator_class(problem,interpretation,root); 4897 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,root);
5313 find mustExist(problem, interpretation, root); 4898 find mustExist(problem, interpretation, root);
5314}or{ 4899}or{
5315 find interpretation(problem,interpretation); 4900 find interpretation(problem,interpretation);
5316 find mustInstanceOfFunctionalElement_class(problem,interpretation,root); 4901 find mustInstanceOfFAMTerminator_class(problem,interpretation,root);
5317 find mustExist(problem, interpretation, root); 4902 find mustExist(problem, interpretation, root);
5318}or{ 4903}or{
5319 find interpretation(problem,interpretation); 4904 find interpretation(problem,interpretation);
5320 find mustInstanceOfFunctionalOutput_class(problem,interpretation,root); 4905 find mustInstanceOfFunction_class(problem,interpretation,root);
5321 find mustExist(problem, interpretation, root); 4906 find mustExist(problem, interpretation, root);
5322}or{ 4907}or{
5323 find interpretation(problem,interpretation); 4908 find interpretation(problem,interpretation);
5324 find mustInstanceOfFunction_class(problem,interpretation,root); 4909 find mustInstanceOfFunctionalInterface_class(problem,interpretation,root);
5325 find mustExist(problem, interpretation, root); 4910 find mustExist(problem, interpretation, root);
5326}or{ 4911}or{
5327 find interpretation(problem,interpretation); 4912 find interpretation(problem,interpretation);
5328 find mustInstanceOfFunctionalInput_class(problem,interpretation,root); 4913 find mustInstanceOfFunctionalElement_class(problem,interpretation,root);
5329 find mustExist(problem, interpretation, root); 4914 find mustExist(problem, interpretation, root);
5330}or{ 4915}or{
5331 find interpretation(problem,interpretation); 4916 find interpretation(problem,interpretation);
@@ -5336,63 +4921,33 @@ private pattern hasElementInContainment(problem:LogicProblem, interpretation:Par
5336 find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,root); 4921 find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,root);
5337 find mustExist(problem, interpretation, root); 4922 find mustExist(problem, interpretation, root);
5338} 4923}
5339pattern createObject_FunctionalOutput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData( 4924pattern createObject_InformationLink_class_by_outgoingLinks_reference_FunctionalOutput_with_from_reference_InformationLink(
5340 problem:LogicProblem, interpretation:PartialInterpretation,
5341 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
5342 container:DefinedElement)
5343{
5344 find interpretation(problem,interpretation);
5345 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
5346 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class");
5347 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
5348 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface");
5349 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
5350 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData");
5351 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container);
5352 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject);
5353 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject);
5354 find mustExist(problem, interpretation, container);
5355 neg find mustExist(problem, interpretation, newObject);
5356}
5357pattern createObject_FunctionalOutput_class(
5358 problem:LogicProblem, interpretation:PartialInterpretation,
5359 typeInterpretation:PartialComplexTypeInterpretation)
5360{
5361 find interpretation(problem,interpretation);
5362 neg find hasElementInContainment(problem,interpretation);
5363 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
5364 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class");
5365 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject);
5366 find mayExist(problem, interpretation, newObject);
5367 neg find mustExist(problem, interpretation, newObject);
5368}
5369pattern createObject_FAMTerminator_class_by_terminator_reference_FunctionalData_with_data_reference_FAMTerminator(
5370 problem:LogicProblem, interpretation:PartialInterpretation, 4925 problem:LogicProblem, interpretation:PartialInterpretation,
5371 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 4926 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
5372 container:DefinedElement) 4927 container:DefinedElement)
5373{ 4928{
5374 find interpretation(problem,interpretation); 4929 find interpretation(problem,interpretation);
5375 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 4930 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
5376 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class"); 4931 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class");
5377 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 4932 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
5378 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"terminator reference FunctionalData"); 4933 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"outgoingLinks reference FunctionalOutput");
5379 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 4934 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
5380 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"data reference FAMTerminator"); 4935 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"from reference InformationLink");
5381 find mustInstanceOfFunctionalData_class(problem,interpretation,container); 4936 find mustInstanceOfFunctionalOutput_class(problem,interpretation,container);
5382 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject); 4937 find mayInstanceOfInformationLink_class(problem,interpretation,newObject);
5383 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,container,newObject); 4938 find mayInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,container,newObject);
5384 find mustExist(problem, interpretation, container); 4939 find mustExist(problem, interpretation, container);
5385 neg find mustExist(problem, interpretation, newObject); 4940 neg find mustExist(problem, interpretation, newObject);
5386} 4941}
5387pattern createObject_FAMTerminator_class( 4942pattern createObject_InformationLink_class(
5388 problem:LogicProblem, interpretation:PartialInterpretation, 4943 problem:LogicProblem, interpretation:PartialInterpretation,
5389 typeInterpretation:PartialComplexTypeInterpretation) 4944 typeInterpretation:PartialComplexTypeInterpretation)
5390{ 4945{
5391 find interpretation(problem,interpretation); 4946 find interpretation(problem,interpretation);
5392 neg find hasElementInContainment(problem,interpretation); 4947 neg find hasElementInContainment(problem,interpretation);
5393 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 4948 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
5394 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class"); 4949 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class");
5395 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject); 4950 find mayInstanceOfInformationLink_class(problem,interpretation,newObject);
5396 find mayExist(problem, interpretation, newObject); 4951 find mayExist(problem, interpretation, newObject);
5397 neg find mustExist(problem, interpretation, newObject); 4952 neg find mustExist(problem, interpretation, newObject);
5398} 4953}
@@ -5442,105 +4997,135 @@ pattern createObject_Function_class(
5442 find mayExist(problem, interpretation, newObject); 4997 find mayExist(problem, interpretation, newObject);
5443 neg find mustExist(problem, interpretation, newObject); 4998 neg find mustExist(problem, interpretation, newObject);
5444} 4999}
5445pattern createObject_FunctionalInput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData( 5000pattern createObject_FunctionalOutput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData(
5446 problem:LogicProblem, interpretation:PartialInterpretation, 5001 problem:LogicProblem, interpretation:PartialInterpretation,
5447 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 5002 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
5448 container:DefinedElement) 5003 container:DefinedElement)
5449{ 5004{
5450 find interpretation(problem,interpretation); 5005 find interpretation(problem,interpretation);
5451 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 5006 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
5452 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class"); 5007 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class");
5453 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 5008 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
5454 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface"); 5009 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface");
5455 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 5010 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
5456 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData"); 5011 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData");
5457 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container); 5012 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container);
5458 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject); 5013 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject);
5459 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject); 5014 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject);
5460 find mustExist(problem, interpretation, container); 5015 find mustExist(problem, interpretation, container);
5461 neg find mustExist(problem, interpretation, newObject); 5016 neg find mustExist(problem, interpretation, newObject);
5462} 5017}
5463pattern createObject_FunctionalInput_class( 5018pattern createObject_FunctionalOutput_class(
5464 problem:LogicProblem, interpretation:PartialInterpretation, 5019 problem:LogicProblem, interpretation:PartialInterpretation,
5465 typeInterpretation:PartialComplexTypeInterpretation) 5020 typeInterpretation:PartialComplexTypeInterpretation)
5466{ 5021{
5467 find interpretation(problem,interpretation); 5022 find interpretation(problem,interpretation);
5468 neg find hasElementInContainment(problem,interpretation); 5023 neg find hasElementInContainment(problem,interpretation);
5469 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 5024 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
5025 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class");
5026 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject);
5027 find mayExist(problem, interpretation, newObject);
5028 neg find mustExist(problem, interpretation, newObject);
5029}
5030pattern createObject_FunctionalInput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData(
5031 problem:LogicProblem, interpretation:PartialInterpretation,
5032 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
5033 container:DefinedElement)
5034{
5035 find interpretation(problem,interpretation);
5036 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
5470 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class"); 5037 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class");
5038 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
5039 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface");
5040 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
5041 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData");
5042 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container);
5471 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject); 5043 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
5472 find mayExist(problem, interpretation, newObject); 5044 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject);
5045 find mustExist(problem, interpretation, container);
5473 neg find mustExist(problem, interpretation, newObject); 5046 neg find mustExist(problem, interpretation, newObject);
5474} 5047}
5475pattern createObject_FunctionalArchitectureModel_class_UndefinedPart( 5048pattern createObject_FunctionalInput_class(
5476 problem:LogicProblem, interpretation:PartialInterpretation, 5049 problem:LogicProblem, interpretation:PartialInterpretation,
5477 typeInterpretation:PartialComplexTypeInterpretation) 5050 typeInterpretation:PartialComplexTypeInterpretation)
5478{ 5051{
5479 find interpretation(problem,interpretation); 5052 find interpretation(problem,interpretation);
5480 neg find hasElementInContainment(problem,interpretation); 5053 neg find hasElementInContainment(problem,interpretation);
5481 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 5054 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
5482 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalArchitectureModel class UndefinedPart"); 5055 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class");
5483 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,newObject); 5056 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
5484 find mayExist(problem, interpretation, newObject); 5057 find mayExist(problem, interpretation, newObject);
5485 neg find mustExist(problem, interpretation, newObject); 5058 neg find mustExist(problem, interpretation, newObject);
5486} 5059}
5487pattern createObject_FunctionalInterface_class_by_interface_reference_FunctionalElement_with_element_reference_FunctionalInterface( 5060pattern createObject_FAMTerminator_class_by_terminator_reference_FunctionalData_with_data_reference_FAMTerminator(
5488 problem:LogicProblem, interpretation:PartialInterpretation, 5061 problem:LogicProblem, interpretation:PartialInterpretation,
5489 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 5062 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
5490 container:DefinedElement) 5063 container:DefinedElement)
5491{ 5064{
5492 find interpretation(problem,interpretation); 5065 find interpretation(problem,interpretation);
5493 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 5066 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
5494 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class"); 5067 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class");
5495 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 5068 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
5496 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"interface reference FunctionalElement"); 5069 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"terminator reference FunctionalData");
5497 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 5070 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
5498 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"element reference FunctionalInterface"); 5071 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"data reference FAMTerminator");
5499 find mustInstanceOfFunctionalElement_class(problem,interpretation,container); 5072 find mustInstanceOfFunctionalData_class(problem,interpretation,container);
5500 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject); 5073 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject);
5501 find mayInRelationinterface_reference_FunctionalElement(problem,interpretation,container,newObject); 5074 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,container,newObject);
5502 find mustExist(problem, interpretation, container); 5075 find mustExist(problem, interpretation, container);
5503 neg find mustExist(problem, interpretation, newObject); 5076 neg find mustExist(problem, interpretation, newObject);
5504} 5077}
5505pattern createObject_FunctionalInterface_class( 5078pattern createObject_FAMTerminator_class(
5506 problem:LogicProblem, interpretation:PartialInterpretation, 5079 problem:LogicProblem, interpretation:PartialInterpretation,
5507 typeInterpretation:PartialComplexTypeInterpretation) 5080 typeInterpretation:PartialComplexTypeInterpretation)
5508{ 5081{
5509 find interpretation(problem,interpretation); 5082 find interpretation(problem,interpretation);
5510 neg find hasElementInContainment(problem,interpretation); 5083 neg find hasElementInContainment(problem,interpretation);
5511 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 5084 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
5512 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class"); 5085 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class");
5513 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject); 5086 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject);
5514 find mayExist(problem, interpretation, newObject); 5087 find mayExist(problem, interpretation, newObject);
5515 neg find mustExist(problem, interpretation, newObject); 5088 neg find mustExist(problem, interpretation, newObject);
5516} 5089}
5517pattern createObject_InformationLink_class_by_outgoingLinks_reference_FunctionalOutput_with_from_reference_InformationLink( 5090pattern createObject_FunctionalArchitectureModel_class_UndefinedPart(
5091 problem:LogicProblem, interpretation:PartialInterpretation,
5092 typeInterpretation:PartialComplexTypeInterpretation)
5093{
5094 find interpretation(problem,interpretation);
5095 neg find hasElementInContainment(problem,interpretation);
5096 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
5097 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalArchitectureModel class UndefinedPart");
5098 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,newObject);
5099 find mayExist(problem, interpretation, newObject);
5100 neg find mustExist(problem, interpretation, newObject);
5101}
5102pattern createObject_FunctionalInterface_class_by_interface_reference_FunctionalElement_with_element_reference_FunctionalInterface(
5518 problem:LogicProblem, interpretation:PartialInterpretation, 5103 problem:LogicProblem, interpretation:PartialInterpretation,
5519 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 5104 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
5520 container:DefinedElement) 5105 container:DefinedElement)
5521{ 5106{
5522 find interpretation(problem,interpretation); 5107 find interpretation(problem,interpretation);
5523 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 5108 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
5524 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class"); 5109 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
5525 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 5110 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
5526 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"outgoingLinks reference FunctionalOutput"); 5111 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"interface reference FunctionalElement");
5527 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 5112 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
5528 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"from reference InformationLink"); 5113 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"element reference FunctionalInterface");
5529 find mustInstanceOfFunctionalOutput_class(problem,interpretation,container); 5114 find mustInstanceOfFunctionalElement_class(problem,interpretation,container);
5530 find mayInstanceOfInformationLink_class(problem,interpretation,newObject); 5115 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
5531 find mayInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,container,newObject); 5116 find mayInRelationinterface_reference_FunctionalElement(problem,interpretation,container,newObject);
5532 find mustExist(problem, interpretation, container); 5117 find mustExist(problem, interpretation, container);
5533 neg find mustExist(problem, interpretation, newObject); 5118 neg find mustExist(problem, interpretation, newObject);
5534} 5119}
5535pattern createObject_InformationLink_class( 5120pattern createObject_FunctionalInterface_class(
5536 problem:LogicProblem, interpretation:PartialInterpretation, 5121 problem:LogicProblem, interpretation:PartialInterpretation,
5537 typeInterpretation:PartialComplexTypeInterpretation) 5122 typeInterpretation:PartialComplexTypeInterpretation)
5538{ 5123{
5539 find interpretation(problem,interpretation); 5124 find interpretation(problem,interpretation);
5540 neg find hasElementInContainment(problem,interpretation); 5125 neg find hasElementInContainment(problem,interpretation);
5541 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 5126 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
5542 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class"); 5127 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
5543 find mayInstanceOfInformationLink_class(problem,interpretation,newObject); 5128 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
5544 find mayExist(problem, interpretation, newObject); 5129 find mayExist(problem, interpretation, newObject);
5545 neg find mustExist(problem, interpretation, newObject); 5130 neg find mustExist(problem, interpretation, newObject);
5546} 5131}
@@ -5548,84 +5133,84 @@ pattern createObject_InformationLink_class(
5548////////// 5133//////////
5549// 4.2 Type refinement 5134// 4.2 Type refinement
5550////////// 5135//////////
5551pattern refineTypeTo_FunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 5136pattern refineTypeTo_InformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
5552 find interpretation(problem,interpretation); 5137 find interpretation(problem,interpretation);
5553 PartialInterpretation.newElements(interpretation,element); 5138 PartialInterpretation.newElements(interpretation,element);
5554 find mayInstanceOfFunctionalOutput_class(problem,interpretation,element); 5139 find mayInstanceOfInformationLink_class(problem,interpretation,element);
5555 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 5140 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
5556 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
5557 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 5141 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
5558 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
5559 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
5560 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 5142 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
5143 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
5561 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 5144 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
5145 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
5562} 5146}
5563pattern refineTypeTo_FAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 5147pattern refineTypeTo_Function_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
5564 find interpretation(problem,interpretation); 5148 find interpretation(problem,interpretation);
5565 PartialInterpretation.newElements(interpretation,element); 5149 PartialInterpretation.newElements(interpretation,element);
5566 find mayInstanceOfFAMTerminator_class(problem,interpretation,element); 5150 find mayInstanceOfFunction_class(problem,interpretation,element);
5567 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 5151 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
5152 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
5153 neg find mustInstanceOfFunction_class(problem,interpretation,element);
5568 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 5154 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
5569 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
5570 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
5571 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 5155 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
5572 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 5156 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
5573} 5157}
5574pattern refineTypeTo_Function_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 5158pattern refineTypeTo_FunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
5575 find interpretation(problem,interpretation); 5159 find interpretation(problem,interpretation);
5576 PartialInterpretation.newElements(interpretation,element); 5160 PartialInterpretation.newElements(interpretation,element);
5577 find mayInstanceOfFunction_class(problem,interpretation,element); 5161 find mayInstanceOfFunctionalOutput_class(problem,interpretation,element);
5578 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 5162 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
5163 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
5164 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
5165 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
5579 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 5166 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
5580 neg find mustInstanceOfFunction_class(problem,interpretation,element);
5581 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 5167 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
5582 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
5583 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 5168 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
5584} 5169}
5585pattern refineTypeTo_FunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 5170pattern refineTypeTo_FunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
5586 find interpretation(problem,interpretation); 5171 find interpretation(problem,interpretation);
5587 PartialInterpretation.newElements(interpretation,element); 5172 PartialInterpretation.newElements(interpretation,element);
5588 find mayInstanceOfFunctionalInput_class(problem,interpretation,element); 5173 find mayInstanceOfFunctionalInput_class(problem,interpretation,element);
5589 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
5590 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
5591 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
5592 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 5174 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
5175 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
5176 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
5593 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); 5177 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
5178 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
5594 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 5179 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
5595 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 5180 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
5596} 5181}
5597pattern refineTypeTo_FunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 5182pattern refineTypeTo_FAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
5598 find interpretation(problem,interpretation); 5183 find interpretation(problem,interpretation);
5599 PartialInterpretation.newElements(interpretation,element); 5184 PartialInterpretation.newElements(interpretation,element);
5600 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); 5185 find mayInstanceOfFAMTerminator_class(problem,interpretation,element);
5601 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 5186 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
5602 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
5603 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 5187 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
5604 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
5605 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 5188 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
5189 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
5606 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 5190 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
5191 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
5607} 5192}
5608pattern refineTypeTo_FunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 5193pattern refineTypeTo_FunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
5609 find interpretation(problem,interpretation); 5194 find interpretation(problem,interpretation);
5610 PartialInterpretation.newElements(interpretation,element); 5195 PartialInterpretation.newElements(interpretation,element);
5611 find mayInstanceOfFunctionalInterface_class(problem,interpretation,element); 5196 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
5612 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 5197 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
5613 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
5614 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
5615 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 5198 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
5616 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 5199 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
5200 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
5201 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
5617 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 5202 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
5618} 5203}
5619pattern refineTypeTo_InformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 5204pattern refineTypeTo_FunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
5620 find interpretation(problem,interpretation); 5205 find interpretation(problem,interpretation);
5621 PartialInterpretation.newElements(interpretation,element); 5206 PartialInterpretation.newElements(interpretation,element);
5622 find mayInstanceOfInformationLink_class(problem,interpretation,element); 5207 find mayInstanceOfFunctionalInterface_class(problem,interpretation,element);
5623 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 5208 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
5624 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
5625 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 5209 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
5626 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
5627 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 5210 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
5211 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
5628 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 5212 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
5213 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
5629} 5214}
5630 5215
5631////////// 5216//////////
@@ -5784,23 +5369,23 @@ private pattern mayInstanceOfFunctionalElement_class(problem:LogicProblem, inter
5784{ 5369{
5785 find interpretation(problem,interpretation); 5370 find interpretation(problem,interpretation);
5786 PartialInterpretation.newElements(interpretation,element); 5371 PartialInterpretation.newElements(interpretation,element);
5787 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 5372 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
5788 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 5373 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
5789 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 5374 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
5790 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 5375 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
5376 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
5791 neg find mustInstanceOfFunction_class(problem,interpretation,element); 5377 neg find mustInstanceOfFunction_class(problem,interpretation,element);
5792 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
5793 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation); 5378 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
5794 neg find isPrimitive(element); 5379 neg find isPrimitive(element);
5795} or { 5380} or {
5796 find interpretation(problem,interpretation); 5381 find interpretation(problem,interpretation);
5797 PartialInterpretation.openWorldElements(interpretation,element); 5382 PartialInterpretation.openWorldElements(interpretation,element);
5798 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 5383 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
5799 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 5384 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
5800 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 5385 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
5801 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 5386 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
5387 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
5802 neg find mustInstanceOfFunction_class(problem,interpretation,element); 5388 neg find mustInstanceOfFunction_class(problem,interpretation,element);
5803 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
5804 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation); 5389 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
5805 neg find isPrimitive(element); 5390 neg find isPrimitive(element);
5806} or 5391} or
@@ -5828,23 +5413,23 @@ private pattern mayInstanceOfFunctionalArchitectureModel_class(problem:LogicProb
5828{ 5413{
5829 find interpretation(problem,interpretation); 5414 find interpretation(problem,interpretation);
5830 PartialInterpretation.newElements(interpretation,element); 5415 PartialInterpretation.newElements(interpretation,element);
5416 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
5831 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 5417 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
5832 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
5833 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
5834 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
5835 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); 5418 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
5836 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 5419 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
5420 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
5421 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
5837 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation); 5422 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
5838 neg find isPrimitive(element); 5423 neg find isPrimitive(element);
5839} or { 5424} or {
5840 find interpretation(problem,interpretation); 5425 find interpretation(problem,interpretation);
5841 PartialInterpretation.openWorldElements(interpretation,element); 5426 PartialInterpretation.openWorldElements(interpretation,element);
5427 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
5842 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 5428 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
5843 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
5844 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
5845 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
5846 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); 5429 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
5847 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 5430 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
5431 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
5432 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
5848 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation); 5433 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
5849 neg find isPrimitive(element); 5434 neg find isPrimitive(element);
5850} or 5435} or
@@ -5872,21 +5457,21 @@ private pattern mayInstanceOfFunction_class(problem:LogicProblem, interpretation
5872{ 5457{
5873 find interpretation(problem,interpretation); 5458 find interpretation(problem,interpretation);
5874 PartialInterpretation.newElements(interpretation,element); 5459 PartialInterpretation.newElements(interpretation,element);
5875 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 5460 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
5876 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 5461 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
5877 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
5878 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 5462 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
5879 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 5463 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
5464 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
5880 neg find scopeDisallowsNewFunction_class(problem, interpretation); 5465 neg find scopeDisallowsNewFunction_class(problem, interpretation);
5881 neg find isPrimitive(element); 5466 neg find isPrimitive(element);
5882} or { 5467} or {
5883 find interpretation(problem,interpretation); 5468 find interpretation(problem,interpretation);
5884 PartialInterpretation.openWorldElements(interpretation,element); 5469 PartialInterpretation.openWorldElements(interpretation,element);
5885 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 5470 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
5886 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 5471 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
5887 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
5888 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 5472 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
5889 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 5473 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
5474 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
5890 neg find scopeDisallowsNewFunction_class(problem, interpretation); 5475 neg find scopeDisallowsNewFunction_class(problem, interpretation);
5891 neg find isPrimitive(element); 5476 neg find isPrimitive(element);
5892} or 5477} or
@@ -5914,21 +5499,21 @@ private pattern mayInstanceOfFAMTerminator_class(problem:LogicProblem, interpret
5914{ 5499{
5915 find interpretation(problem,interpretation); 5500 find interpretation(problem,interpretation);
5916 PartialInterpretation.newElements(interpretation,element); 5501 PartialInterpretation.newElements(interpretation,element);
5502 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
5917 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 5503 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
5504 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
5918 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 5505 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
5919 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 5506 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
5920 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
5921 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
5922 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation); 5507 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
5923 neg find isPrimitive(element); 5508 neg find isPrimitive(element);
5924} or { 5509} or {
5925 find interpretation(problem,interpretation); 5510 find interpretation(problem,interpretation);
5926 PartialInterpretation.openWorldElements(interpretation,element); 5511 PartialInterpretation.openWorldElements(interpretation,element);
5512 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
5927 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 5513 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
5514 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
5928 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 5515 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
5929 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 5516 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
5930 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
5931 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
5932 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation); 5517 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
5933 neg find isPrimitive(element); 5518 neg find isPrimitive(element);
5934} or 5519} or
@@ -5956,21 +5541,21 @@ private pattern mayInstanceOfInformationLink_class(problem:LogicProblem, interpr
5956{ 5541{
5957 find interpretation(problem,interpretation); 5542 find interpretation(problem,interpretation);
5958 PartialInterpretation.newElements(interpretation,element); 5543 PartialInterpretation.newElements(interpretation,element);
5544 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
5959 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 5545 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
5546 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
5960 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 5547 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
5961 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 5548 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
5962 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
5963 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
5964 neg find scopeDisallowsNewInformationLink_class(problem, interpretation); 5549 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
5965 neg find isPrimitive(element); 5550 neg find isPrimitive(element);
5966} or { 5551} or {
5967 find interpretation(problem,interpretation); 5552 find interpretation(problem,interpretation);
5968 PartialInterpretation.openWorldElements(interpretation,element); 5553 PartialInterpretation.openWorldElements(interpretation,element);
5554 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
5969 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 5555 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
5556 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
5970 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 5557 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
5971 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 5558 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
5972 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
5973 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
5974 neg find scopeDisallowsNewInformationLink_class(problem, interpretation); 5559 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
5975 neg find isPrimitive(element); 5560 neg find isPrimitive(element);
5976} or 5561} or
@@ -5999,20 +5584,20 @@ private pattern mayInstanceOfFunctionalInterface_class(problem:LogicProblem, int
5999 find interpretation(problem,interpretation); 5584 find interpretation(problem,interpretation);
6000 PartialInterpretation.newElements(interpretation,element); 5585 PartialInterpretation.newElements(interpretation,element);
6001 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 5586 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
6002 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
6003 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 5587 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
6004 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 5588 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
6005 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 5589 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
5590 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
6006 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation); 5591 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
6007 neg find isPrimitive(element); 5592 neg find isPrimitive(element);
6008} or { 5593} or {
6009 find interpretation(problem,interpretation); 5594 find interpretation(problem,interpretation);
6010 PartialInterpretation.openWorldElements(interpretation,element); 5595 PartialInterpretation.openWorldElements(interpretation,element);
6011 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 5596 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
6012 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
6013 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 5597 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
6014 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 5598 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
6015 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 5599 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
5600 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
6016 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation); 5601 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
6017 neg find isPrimitive(element); 5602 neg find isPrimitive(element);
6018} or 5603} or
@@ -6040,23 +5625,23 @@ private pattern mayInstanceOfFunctionalInput_class(problem:LogicProblem, interpr
6040{ 5625{
6041 find interpretation(problem,interpretation); 5626 find interpretation(problem,interpretation);
6042 PartialInterpretation.newElements(interpretation,element); 5627 PartialInterpretation.newElements(interpretation,element);
6043 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 5628 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
6044 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 5629 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
6045 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 5630 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
6046 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 5631 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
6047 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 5632 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
6048 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 5633 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
6049 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation); 5634 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
6050 neg find isPrimitive(element); 5635 neg find isPrimitive(element);
6051} or { 5636} or {
6052 find interpretation(problem,interpretation); 5637 find interpretation(problem,interpretation);
6053 PartialInterpretation.openWorldElements(interpretation,element); 5638 PartialInterpretation.openWorldElements(interpretation,element);
6054 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 5639 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
6055 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 5640 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
6056 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 5641 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
6057 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 5642 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
6058 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 5643 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
6059 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 5644 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
6060 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation); 5645 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
6061 neg find isPrimitive(element); 5646 neg find isPrimitive(element);
6062} or 5647} or
@@ -6084,23 +5669,23 @@ private pattern mayInstanceOfFunctionalOutput_class(problem:LogicProblem, interp
6084{ 5669{
6085 find interpretation(problem,interpretation); 5670 find interpretation(problem,interpretation);
6086 PartialInterpretation.newElements(interpretation,element); 5671 PartialInterpretation.newElements(interpretation,element);
6087 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); 5672 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
6088 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 5673 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
6089 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 5674 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
6090 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 5675 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
6091 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 5676 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
6092 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 5677 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
6093 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation); 5678 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
6094 neg find isPrimitive(element); 5679 neg find isPrimitive(element);
6095} or { 5680} or {
6096 find interpretation(problem,interpretation); 5681 find interpretation(problem,interpretation);
6097 PartialInterpretation.openWorldElements(interpretation,element); 5682 PartialInterpretation.openWorldElements(interpretation,element);
6098 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); 5683 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
6099 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 5684 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
6100 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 5685 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
6101 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 5686 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
6102 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 5687 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
6103 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 5688 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
6104 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation); 5689 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
6105 neg find isPrimitive(element); 5690 neg find isPrimitive(element);
6106} or 5691} or
@@ -6128,25 +5713,25 @@ private pattern mayInstanceOfFunctionalData_class(problem:LogicProblem, interpre
6128{ 5713{
6129 find interpretation(problem,interpretation); 5714 find interpretation(problem,interpretation);
6130 PartialInterpretation.newElements(interpretation,element); 5715 PartialInterpretation.newElements(interpretation,element);
6131 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); 5716 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
6132 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
6133 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 5717 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
5718 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
5719 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
5720 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
6134 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 5721 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
6135 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 5722 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
6136 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
6137 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
6138 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation); 5723 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
6139 neg find isPrimitive(element); 5724 neg find isPrimitive(element);
6140} or { 5725} or {
6141 find interpretation(problem,interpretation); 5726 find interpretation(problem,interpretation);
6142 PartialInterpretation.openWorldElements(interpretation,element); 5727 PartialInterpretation.openWorldElements(interpretation,element);
6143 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); 5728 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
6144 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
6145 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 5729 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
5730 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
5731 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
5732 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
6146 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 5733 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
6147 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 5734 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
6148 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
6149 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
6150 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation); 5735 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
6151 neg find isPrimitive(element); 5736 neg find isPrimitive(element);
6152} or 5737} or
@@ -6216,21 +5801,21 @@ private pattern mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(pro
6216{ 5801{
6217 find interpretation(problem,interpretation); 5802 find interpretation(problem,interpretation);
6218 PartialInterpretation.newElements(interpretation,element); 5803 PartialInterpretation.newElements(interpretation,element);
5804 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
6219 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 5805 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
6220 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
6221 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 5806 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
6222 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 5807 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
6223 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 5808 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
6224 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation); 5809 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation);
6225 neg find isPrimitive(element); 5810 neg find isPrimitive(element);
6226} or { 5811} or {
6227 find interpretation(problem,interpretation); 5812 find interpretation(problem,interpretation);
6228 PartialInterpretation.openWorldElements(interpretation,element); 5813 PartialInterpretation.openWorldElements(interpretation,element);
5814 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
6229 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 5815 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
6230 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
6231 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 5816 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
6232 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 5817 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
6233 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 5818 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
6234 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation); 5819 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation);
6235 neg find isPrimitive(element); 5820 neg find isPrimitive(element);
6236} or 5821} or
@@ -6286,21 +5871,38 @@ private pattern mayInRelationinterface_reference_FunctionalElement(
6286/** 5871/**
6287 * Matcher for detecting tuples t where []model reference FunctionalElement(source,target) 5872 * Matcher for detecting tuples t where []model reference FunctionalElement(source,target)
6288 */ 5873 */
6289 private pattern mustInRelationmodel_reference_FunctionalElement( 5874private pattern mustInRelationmodel_reference_FunctionalElement(
6290 problem:LogicProblem, interpretation:PartialInterpretation, 5875 problem:LogicProblem, interpretation:PartialInterpretation,
6291 source: DefinedElement, target:DefinedElement) 5876 source: DefinedElement, target:DefinedElement)
6292 { 5877{
6293 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_model(problem,interpretation,source,target); 5878 find interpretation(problem,interpretation);
6294 } 5879 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
5880 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement");
5881 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
5882 BinaryElementRelationLink.param1(link,source);
5883 BinaryElementRelationLink.param2(link,target);
5884}
6295/** 5885/**
6296 * Matcher for detecting tuples t where []model reference FunctionalElement(source,target) 5886 * Matcher for detecting tuples t where <>model reference FunctionalElement(source,target)
6297 */ 5887 */
6298 private pattern mayInRelationmodel_reference_FunctionalElement( 5888private pattern mayInRelationmodel_reference_FunctionalElement(
6299 problem:LogicProblem, interpretation:PartialInterpretation, 5889 problem:LogicProblem, interpretation:PartialInterpretation,
6300 source: DefinedElement, target:DefinedElement) 5890 source: DefinedElement, target:DefinedElement)
6301 { 5891{
6302 find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_model(problem,interpretation,source,target); 5892 find interpretation(problem,interpretation);
6303 } 5893 // The two endpoint of the link have to exist
5894 find mayExist(problem, interpretation, source);
5895 find mayExist(problem, interpretation, target);
5896 // Type consistency
5897 find mayInstanceOfFunctionalElement_class(problem,interpretation,source);
5898 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,target);
5899 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
5900 // the upper bound of the multiplicity should be considered.
5901 numberOfExistingReferences == count find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,source,_);
5902 check(numberOfExistingReferences < 1);
5903} or {
5904 find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,source,target);
5905}
6304/** 5906/**
6305 * Matcher for detecting tuples t where []parent reference FunctionalElement(source,target) 5907 * Matcher for detecting tuples t where []parent reference FunctionalElement(source,target)
6306 */ 5908 */
@@ -6782,347 +6384,44 @@ private pattern mayInRelationinterface_reference_FunctionalData(
6782/** 6384/**
6783 * Matcher for detecting tuples t where []type attribute Function(source,target) 6385 * Matcher for detecting tuples t where []type attribute Function(source,target)
6784 */ 6386 */
6785 private pattern mustInRelationtype_attribute_Function( 6387private pattern mustInRelationtype_attribute_Function(
6786 problem:LogicProblem, interpretation:PartialInterpretation,
6787 source: DefinedElement, target:DefinedElement)
6788 {
6789 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_type(problem,interpretation,source,target);
6790 }
6791/**
6792 * Matcher for detecting tuples t where []type attribute Function(source,target)
6793 */
6794 private pattern mayInRelationtype_attribute_Function(
6795 problem:LogicProblem, interpretation:PartialInterpretation,
6796 source: DefinedElement, target:DefinedElement)
6797 {
6798 find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_type(problem,interpretation,source,target);
6799 }
6800
6801//////////
6802// 1.3 Relation Definition Indexers
6803//////////
6804// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test fam terminatorAndInformation
6805private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_terminatorAndInformation(
6806 problem:LogicProblem, interpretation:PartialInterpretation,
6807 var_T, var_I)
6808{
6809 find interpretation(problem,interpretation);
6810 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_T);
6811 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
6812 // T is exported
6813 // I is exported
6814 find mustInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
6815 find mustInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,var_Out,var_virtual0);
6816 find mustInstanceOfInformationLink_class(problem,interpretation,var_virtual0);
6817 var_virtual0 == var_I;
6818 find mustInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
6819 find mustInRelationterminator_reference_FunctionalData(problem,interpretation,var_Out,var_virtual1);
6820 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
6821 var_virtual1 == var_T;
6822}or{
6823 find interpretation(problem,interpretation);
6824 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_T);
6825 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
6826 // T is exported
6827 // I is exported
6828 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
6829 find mustInRelationto_reference_InformationLink(problem,interpretation,var_I,var_virtual0);
6830 find mustInstanceOfFunctionalInput_class(problem,interpretation,var_virtual0);
6831 var_virtual0 == var_In;
6832 find mustInstanceOfFunctionalInput_class(problem,interpretation,var_In);
6833 find mustInRelationterminator_reference_FunctionalData(problem,interpretation,var_In,var_virtual1);
6834 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
6835 var_virtual1 == var_T;
6836}
6837private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_terminatorAndInformation(
6838 problem:LogicProblem, interpretation:PartialInterpretation,
6839 var_T, var_I)
6840{
6841 find interpretation(problem,interpretation);
6842 find mayInstanceOfFAMTerminator_class(problem,interpretation,var_T);
6843 find mayInstanceOfInformationLink_class(problem,interpretation,var_I);
6844 // T is exported
6845 // I is exported
6846 find mayInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
6847 find mayInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,var_Out,var_virtual0);
6848 find mayInstanceOfInformationLink_class(problem,interpretation,var_virtual0);
6849 find mayEquivalent(problem, interpretation, var_virtual0, var_I);
6850 find mayInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
6851 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,var_Out,var_virtual1);
6852 find mayInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
6853 find mayEquivalent(problem, interpretation, var_virtual1, var_T);
6854}or{
6855 find interpretation(problem,interpretation);
6856 find mayInstanceOfFAMTerminator_class(problem,interpretation,var_T);
6857 find mayInstanceOfInformationLink_class(problem,interpretation,var_I);
6858 // T is exported
6859 // I is exported
6860 find mayInstanceOfInformationLink_class(problem,interpretation,var_I);
6861 find mayInRelationto_reference_InformationLink(problem,interpretation,var_I,var_virtual0);
6862 find mayInstanceOfFunctionalInput_class(problem,interpretation,var_virtual0);
6863 find mayEquivalent(problem, interpretation, var_virtual0, var_In);
6864 find mayInstanceOfFunctionalInput_class(problem,interpretation,var_In);
6865 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,var_In,var_virtual1);
6866 find mayInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
6867 find mayEquivalent(problem, interpretation, var_virtual1, var_T);
6868}
6869private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_terminatorAndInformation(
6870 problem:LogicProblem, interpretation:PartialInterpretation,
6871 var_T, var_I)
6872{
6873 find interpretation(problem,interpretation);
6874 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_T);
6875 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
6876 // T is exported
6877 // I is exported
6878 find mustInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
6879 find mustInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,var_Out,var_virtual0);
6880 find mustInstanceOfInformationLink_class(problem,interpretation,var_virtual0);
6881 var_virtual0 == var_I;
6882 find mustInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
6883 find mustInRelationterminator_reference_FunctionalData(problem,interpretation,var_Out,var_virtual1);
6884 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
6885 var_virtual1 == var_T;
6886}or{
6887 find interpretation(problem,interpretation);
6888 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_T);
6889 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
6890 // T is exported
6891 // I is exported
6892 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
6893 find mustInRelationto_reference_InformationLink(problem,interpretation,var_I,var_virtual0);
6894 find mustInstanceOfFunctionalInput_class(problem,interpretation,var_virtual0);
6895 var_virtual0 == var_In;
6896 find mustInstanceOfFunctionalInput_class(problem,interpretation,var_In);
6897 find mustInRelationterminator_reference_FunctionalData(problem,interpretation,var_In,var_virtual1);
6898 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
6899 var_virtual1 == var_T;
6900}
6901// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test fam type
6902private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_type(
6903 problem:LogicProblem, interpretation:PartialInterpretation,
6904 var_This, var_Target)
6905{
6906 find interpretation(problem,interpretation);
6907 find mustInstanceOfFunction_class(problem,interpretation,var_This);
6908 // type constraint is enforced by construction
6909 // This is exported
6910 // Target is exported
6911 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_rootElements(problem,interpretation,_var__Model,var_This);
6912 var_virtual0 == const_Root_FunctionType;DefinedElement.name(const_Root_FunctionType,"Root FunctionType"); //LogicProblem.elements(problem,const_Root_FunctionType);
6913 var_Target == var_virtual0;
6914}or{
6915 find interpretation(problem,interpretation);
6916 find mustInstanceOfFunction_class(problem,interpretation,var_This);
6917 // type constraint is enforced by construction
6918 // This is exported
6919 // Target is exported
6920 neg find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(problem,interpretation,_var__Child,var_This);
6921 neg find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_rootElements(problem,interpretation,_var__Model,var_This);
6922 var_virtual0 == const_Leaf_FunctionType;DefinedElement.name(const_Leaf_FunctionType,"Leaf FunctionType"); //LogicProblem.elements(problem,const_Leaf_FunctionType);
6923 var_Target == var_virtual0;
6924}or{
6925 find interpretation(problem,interpretation);
6926 find mustInstanceOfFunction_class(problem,interpretation,var_This);
6927 // type constraint is enforced by construction
6928 // This is exported
6929 // Target is exported
6930 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(problem,interpretation,var_This,_var__Par);
6931 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(problem,interpretation,_var__Child,var_This);
6932 var_virtual0 == const_Intermediate_FunctionType;DefinedElement.name(const_Intermediate_FunctionType,"Intermediate FunctionType"); //LogicProblem.elements(problem,const_Intermediate_FunctionType);
6933 var_Target == var_virtual0;
6934}
6935private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_type(
6936 problem:LogicProblem, interpretation:PartialInterpretation,
6937 var_This, var_Target)
6938{
6939 find interpretation(problem,interpretation);
6940 find mayInstanceOfFunction_class(problem,interpretation,var_This);
6941 // type constraint is enforced by construction
6942 // This is exported
6943 // Target is exported
6944 find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_rootElements(problem,interpretation,_var__Model,var_This);
6945 var_virtual0 == const_Root_FunctionType;DefinedElement.name(const_Root_FunctionType,"Root FunctionType"); //LogicProblem.elements(problem,const_Root_FunctionType);
6946 find mayEquivalent(problem, interpretation, var_Target, var_virtual0);
6947}or{
6948 find interpretation(problem,interpretation);
6949 find mayInstanceOfFunction_class(problem,interpretation,var_This);
6950 // type constraint is enforced by construction
6951 // This is exported
6952 // Target is exported
6953 neg find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(problem,interpretation,_var__Child,var_This);
6954 neg find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_rootElements(problem,interpretation,_var__Model,var_This);
6955 var_virtual0 == const_Leaf_FunctionType;DefinedElement.name(const_Leaf_FunctionType,"Leaf FunctionType"); //LogicProblem.elements(problem,const_Leaf_FunctionType);
6956 find mayEquivalent(problem, interpretation, var_Target, var_virtual0);
6957}or{
6958 find interpretation(problem,interpretation);
6959 find mayInstanceOfFunction_class(problem,interpretation,var_This);
6960 // type constraint is enforced by construction
6961 // This is exported
6962 // Target is exported
6963 find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(problem,interpretation,var_This,_var__Par);
6964 find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(problem,interpretation,_var__Child,var_This);
6965 var_virtual0 == const_Intermediate_FunctionType;DefinedElement.name(const_Intermediate_FunctionType,"Intermediate FunctionType"); //LogicProblem.elements(problem,const_Intermediate_FunctionType);
6966 find mayEquivalent(problem, interpretation, var_Target, var_virtual0);
6967}
6968private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_type(
6969 problem:LogicProblem, interpretation:PartialInterpretation,
6970 var_This, var_Target)
6971{
6972 find interpretation(problem,interpretation);
6973 find mustInstanceOfFunction_class(problem,interpretation,var_This);
6974 // type constraint is enforced by construction
6975 // This is exported
6976 // Target is exported
6977 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_rootElements(problem,interpretation,_var__Model,var_This);
6978 var_virtual0 == const_Root_FunctionType;DefinedElement.name(const_Root_FunctionType,"Root FunctionType"); //LogicProblem.elements(problem,const_Root_FunctionType);
6979 var_Target == var_virtual0;
6980}or{
6981 find interpretation(problem,interpretation);
6982 find mustInstanceOfFunction_class(problem,interpretation,var_This);
6983 // type constraint is enforced by construction
6984 // This is exported
6985 // Target is exported
6986 neg find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(problem,interpretation,_var__Child,var_This);
6987 neg find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_rootElements(problem,interpretation,_var__Model,var_This);
6988 var_virtual0 == const_Leaf_FunctionType;DefinedElement.name(const_Leaf_FunctionType,"Leaf FunctionType"); //LogicProblem.elements(problem,const_Leaf_FunctionType);
6989 var_Target == var_virtual0;
6990}or{
6991 find interpretation(problem,interpretation);
6992 find mustInstanceOfFunction_class(problem,interpretation,var_This);
6993 // type constraint is enforced by construction
6994 // This is exported
6995 // Target is exported
6996 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(problem,interpretation,var_This,_var__Par);
6997 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(problem,interpretation,_var__Child,var_This);
6998 var_virtual0 == const_Intermediate_FunctionType;DefinedElement.name(const_Intermediate_FunctionType,"Intermediate FunctionType"); //LogicProblem.elements(problem,const_Intermediate_FunctionType);
6999 var_Target == var_virtual0;
7000}
7001// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test fam rootElements
7002private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_rootElements(
7003 problem:LogicProblem, interpretation:PartialInterpretation,
7004 var_Model, var_Root)
7005{
7006 find interpretation(problem,interpretation);
7007 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Model);
7008 find mustInstanceOfFunction_class(problem,interpretation,var_Root);
7009 // Model is exported
7010 // Root is exported
7011 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Model);
7012 find mustInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,var_Model,var_virtual0);
7013 find mustInstanceOfFunctionalElement_class(problem,interpretation,var_virtual0);
7014 var_virtual0 == var_Root;
7015}
7016private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_rootElements(
7017 problem:LogicProblem, interpretation:PartialInterpretation,
7018 var_Model, var_Root)
7019{
7020 find interpretation(problem,interpretation);
7021 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Model);
7022 find mayInstanceOfFunction_class(problem,interpretation,var_Root);
7023 // Model is exported
7024 // Root is exported
7025 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Model);
7026 find mayInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,var_Model,var_virtual0);
7027 find mayInstanceOfFunctionalElement_class(problem,interpretation,var_virtual0);
7028 find mayEquivalent(problem, interpretation, var_virtual0, var_Root);
7029}
7030private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_rootElements(
7031 problem:LogicProblem, interpretation:PartialInterpretation,
7032 var_Model, var_Root)
7033{
7034 find interpretation(problem,interpretation);
7035 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Model);
7036 find mustInstanceOfFunction_class(problem,interpretation,var_Root);
7037 // Model is exported
7038 // Root is exported
7039 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Model);
7040 find mustInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,var_Model,var_virtual0);
7041 find mustInstanceOfFunctionalElement_class(problem,interpretation,var_virtual0);
7042 var_virtual0 == var_Root;
7043}
7044// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test fam parent
7045private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(
7046 problem:LogicProblem, interpretation:PartialInterpretation,
7047 var_Func, var_Par)
7048{
7049 find interpretation(problem,interpretation);
7050 find mustInstanceOfFunction_class(problem,interpretation,var_Func);
7051 find mustInstanceOfFunction_class(problem,interpretation,var_Par);
7052 // Func is exported
7053 // Par is exported
7054 find mustInstanceOfFunction_class(problem,interpretation,var_Func);
7055 find mustInRelationparent_reference_FunctionalElement(problem,interpretation,var_Func,var_virtual0);
7056 find mustInstanceOfFunction_class(problem,interpretation,var_virtual0);
7057 var_virtual0 == var_Par;
7058}
7059private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(
7060 problem:LogicProblem, interpretation:PartialInterpretation,
7061 var_Func, var_Par)
7062{
7063 find interpretation(problem,interpretation);
7064 find mayInstanceOfFunction_class(problem,interpretation,var_Func);
7065 find mayInstanceOfFunction_class(problem,interpretation,var_Par);
7066 // Func is exported
7067 // Par is exported
7068 find mayInstanceOfFunction_class(problem,interpretation,var_Func);
7069 find mayInRelationparent_reference_FunctionalElement(problem,interpretation,var_Func,var_virtual0);
7070 find mayInstanceOfFunction_class(problem,interpretation,var_virtual0);
7071 find mayEquivalent(problem, interpretation, var_virtual0, var_Par);
7072}
7073private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(
7074 problem:LogicProblem, interpretation:PartialInterpretation,
7075 var_Func, var_Par)
7076{
7077 find interpretation(problem,interpretation);
7078 find mustInstanceOfFunction_class(problem,interpretation,var_Func);
7079 find mustInstanceOfFunction_class(problem,interpretation,var_Par);
7080 // Func is exported
7081 // Par is exported
7082 find mustInstanceOfFunction_class(problem,interpretation,var_Func);
7083 find mustInRelationparent_reference_FunctionalElement(problem,interpretation,var_Func,var_virtual0);
7084 find mustInstanceOfFunction_class(problem,interpretation,var_virtual0);
7085 var_virtual0 == var_Par;
7086}
7087// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test fam model
7088private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_model(
7089 problem:LogicProblem, interpretation:PartialInterpretation,
7090 var_This, var_Target)
7091{
7092 find interpretation(problem,interpretation);
7093 find mustInstanceOfFunctionalElement_class(problem,interpretation,var_This);
7094 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Target);
7095 // This is exported
7096 // Target is exported
7097 find mustInstanceOfFunctionalElement_class(problem,interpretation,var_This);
7098 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Target);
7099}
7100private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_model(
7101 problem:LogicProblem, interpretation:PartialInterpretation, 6388 problem:LogicProblem, interpretation:PartialInterpretation,
7102 var_This, var_Target) 6389 source: DefinedElement, target:DefinedElement)
7103{ 6390{
7104 find interpretation(problem,interpretation); 6391 find interpretation(problem,interpretation);
7105 find mayInstanceOfFunctionalElement_class(problem,interpretation,var_This); 6392 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
7106 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Target); 6393 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function");
7107 // This is exported 6394 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
7108 // Target is exported 6395 BinaryElementRelationLink.param1(link,source);
7109 find mayInstanceOfFunctionalElement_class(problem,interpretation,var_This); 6396 BinaryElementRelationLink.param2(link,target);
7110 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Target);
7111} 6397}
7112private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_model( 6398/**
6399 * Matcher for detecting tuples t where <>type attribute Function(source,target)
6400 */
6401private pattern mayInRelationtype_attribute_Function(
7113 problem:LogicProblem, interpretation:PartialInterpretation, 6402 problem:LogicProblem, interpretation:PartialInterpretation,
7114 var_This, var_Target) 6403 source: DefinedElement, target:DefinedElement)
7115{ 6404{
7116 find interpretation(problem,interpretation); 6405 find interpretation(problem,interpretation);
7117 find mustInstanceOfFunctionalElement_class(problem,interpretation,var_This); 6406 // The two endpoint of the link have to exist
7118 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Target); 6407 find mayExist(problem, interpretation, source);
7119 // This is exported 6408 find mayExist(problem, interpretation, target);
7120 // Target is exported 6409 // Type consistency
7121 find mustInstanceOfFunctionalElement_class(problem,interpretation,var_This); 6410 find mayInstanceOfFunction_class(problem,interpretation,source);
7122 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Target); 6411 find mayInstanceOfFunctionType_enum(problem,interpretation,target);
6412 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
6413 // the upper bound of the multiplicity should be considered.
6414 numberOfExistingReferences == count find mustInRelationtype_attribute_Function(problem,interpretation,source,_);
6415 check(numberOfExistingReferences < 1);
6416} or {
6417 find mustInRelationtype_attribute_Function(problem,interpretation,source,target);
7123} 6418}
7124 6419
7125////////// 6420//////////
6421// 1.3 Relation Definition Indexers
6422//////////
6423
6424//////////
7126// 1.4 Containment Indexer 6425// 1.4 Containment Indexer
7127////////// 6426//////////
7128private pattern mustContains2(source: DefinedElement, target: DefinedElement) { 6427private pattern mustContains2(source: DefinedElement, target: DefinedElement) {
@@ -7158,6 +6457,15 @@ private pattern mustTransitiveContains(source,target) {
7158////////// 6457//////////
7159// 3.1 Unfinishedness Measured by Multiplicity 6458// 3.1 Unfinishedness Measured by Multiplicity
7160////////// 6459//////////
6460pattern unfinishedLowerMultiplicity_model_reference_FunctionalElement(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
6461 find interpretation(problem,interpretation);
6462 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
6463 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement");
6464 find mustInstanceOfFunctionalElement_class(problem,interpretation,object);
6465 numberOfExistingReferences == count find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,object,_);
6466 check(numberOfExistingReferences < 1);
6467 missingMultiplicity == eval(1-numberOfExistingReferences);
6468}
7161pattern unfinishedLowerMultiplicity_to_reference_InformationLink(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { 6469pattern unfinishedLowerMultiplicity_to_reference_InformationLink(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
7162 find interpretation(problem,interpretation); 6470 find interpretation(problem,interpretation);
7163 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 6471 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
@@ -7167,6 +6475,15 @@ pattern unfinishedLowerMultiplicity_to_reference_InformationLink(problem:LogicPr
7167 check(numberOfExistingReferences < 1); 6475 check(numberOfExistingReferences < 1);
7168 missingMultiplicity == eval(1-numberOfExistingReferences); 6476 missingMultiplicity == eval(1-numberOfExistingReferences);
7169} 6477}
6478pattern unfinishedLowerMultiplicity_type_attribute_Function(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
6479 find interpretation(problem,interpretation);
6480 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
6481 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function");
6482 find mustInstanceOfFunction_class(problem,interpretation,object);
6483 numberOfExistingReferences == count find mustInRelationtype_attribute_Function(problem,interpretation,object,_);
6484 check(numberOfExistingReferences < 1);
6485 missingMultiplicity == eval(1-numberOfExistingReferences);
6486}
7170 6487
7171////////// 6488//////////
7172// 3.2 Unfinishedness Measured by WF Queries 6489// 3.2 Unfinishedness Measured by WF Queries
@@ -7180,19 +6497,19 @@ pattern unfinishedLowerMultiplicity_to_reference_InformationLink(problem:LogicPr
7180private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation) 6497private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation)
7181{ 6498{
7182 find interpretation(problem,interpretation); 6499 find interpretation(problem,interpretation);
7183 find mustInstanceOfFunctionalOutput_class(problem,interpretation,root); 6500 find mustInstanceOfInformationLink_class(problem,interpretation,root);
7184 find mustExist(problem, interpretation, root); 6501 find mustExist(problem, interpretation, root);
7185}or{ 6502}or{
7186 find interpretation(problem,interpretation); 6503 find interpretation(problem,interpretation);
7187 find mustInstanceOfFunctionalElement_class(problem,interpretation,root); 6504 find mustInstanceOfFunctionalOutput_class(problem,interpretation,root);
7188 find mustExist(problem, interpretation, root); 6505 find mustExist(problem, interpretation, root);
7189}or{ 6506}or{
7190 find interpretation(problem,interpretation); 6507 find interpretation(problem,interpretation);
7191 find mustInstanceOfInformationLink_class(problem,interpretation,root); 6508 find mustInstanceOfFunctionalInput_class(problem,interpretation,root);
7192 find mustExist(problem, interpretation, root); 6509 find mustExist(problem, interpretation, root);
7193}or{ 6510}or{
7194 find interpretation(problem,interpretation); 6511 find interpretation(problem,interpretation);
7195 find mustInstanceOfFunctionalInterface_class(problem,interpretation,root); 6512 find mustInstanceOfFunctionalData_class(problem,interpretation,root);
7196 find mustExist(problem, interpretation, root); 6513 find mustExist(problem, interpretation, root);
7197}or{ 6514}or{
7198 find interpretation(problem,interpretation); 6515 find interpretation(problem,interpretation);
@@ -7200,7 +6517,7 @@ private pattern hasElementInContainment(problem:LogicProblem, interpretation:Par
7200 find mustExist(problem, interpretation, root); 6517 find mustExist(problem, interpretation, root);
7201}or{ 6518}or{
7202 find interpretation(problem,interpretation); 6519 find interpretation(problem,interpretation);
7203 find mustInstanceOfFunctionalData_class(problem,interpretation,root); 6520 find mustInstanceOfFAMTerminator_class(problem,interpretation,root);
7204 find mustExist(problem, interpretation, root); 6521 find mustExist(problem, interpretation, root);
7205}or{ 6522}or{
7206 find interpretation(problem,interpretation); 6523 find interpretation(problem,interpretation);
@@ -7208,11 +6525,11 @@ private pattern hasElementInContainment(problem:LogicProblem, interpretation:Par
7208 find mustExist(problem, interpretation, root); 6525 find mustExist(problem, interpretation, root);
7209}or{ 6526}or{
7210 find interpretation(problem,interpretation); 6527 find interpretation(problem,interpretation);
7211 find mustInstanceOfFAMTerminator_class(problem,interpretation,root); 6528 find mustInstanceOfFunctionalInterface_class(problem,interpretation,root);
7212 find mustExist(problem, interpretation, root); 6529 find mustExist(problem, interpretation, root);
7213}or{ 6530}or{
7214 find interpretation(problem,interpretation); 6531 find interpretation(problem,interpretation);
7215 find mustInstanceOfFunctionalInput_class(problem,interpretation,root); 6532 find mustInstanceOfFunctionalElement_class(problem,interpretation,root);
7216 find mustExist(problem, interpretation, root); 6533 find mustExist(problem, interpretation, root);
7217}or{ 6534}or{
7218 find interpretation(problem,interpretation); 6535 find interpretation(problem,interpretation);
@@ -7223,33 +6540,33 @@ private pattern hasElementInContainment(problem:LogicProblem, interpretation:Par
7223 find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,root); 6540 find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,root);
7224 find mustExist(problem, interpretation, root); 6541 find mustExist(problem, interpretation, root);
7225} 6542}
7226pattern createObject_FunctionalInput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData( 6543pattern createObject_FunctionalInterface_class_by_interface_reference_FunctionalElement_with_element_reference_FunctionalInterface(
7227 problem:LogicProblem, interpretation:PartialInterpretation, 6544 problem:LogicProblem, interpretation:PartialInterpretation,
7228 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 6545 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
7229 container:DefinedElement) 6546 container:DefinedElement)
7230{ 6547{
7231 find interpretation(problem,interpretation); 6548 find interpretation(problem,interpretation);
7232 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 6549 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
7233 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class"); 6550 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
7234 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 6551 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
7235 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface"); 6552 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"interface reference FunctionalElement");
7236 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 6553 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
7237 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData"); 6554 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"element reference FunctionalInterface");
7238 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container); 6555 find mustInstanceOfFunctionalElement_class(problem,interpretation,container);
7239 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject); 6556 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
7240 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject); 6557 find mayInRelationinterface_reference_FunctionalElement(problem,interpretation,container,newObject);
7241 find mustExist(problem, interpretation, container); 6558 find mustExist(problem, interpretation, container);
7242 neg find mustExist(problem, interpretation, newObject); 6559 neg find mustExist(problem, interpretation, newObject);
7243} 6560}
7244pattern createObject_FunctionalInput_class( 6561pattern createObject_FunctionalInterface_class(
7245 problem:LogicProblem, interpretation:PartialInterpretation, 6562 problem:LogicProblem, interpretation:PartialInterpretation,
7246 typeInterpretation:PartialComplexTypeInterpretation) 6563 typeInterpretation:PartialComplexTypeInterpretation)
7247{ 6564{
7248 find interpretation(problem,interpretation); 6565 find interpretation(problem,interpretation);
7249 neg find hasElementInContainment(problem,interpretation); 6566 neg find hasElementInContainment(problem,interpretation);
7250 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 6567 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
7251 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class"); 6568 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
7252 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject); 6569 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
7253 find mayExist(problem, interpretation, newObject); 6570 find mayExist(problem, interpretation, newObject);
7254 neg find mustExist(problem, interpretation, newObject); 6571 neg find mustExist(problem, interpretation, newObject);
7255} 6572}
@@ -7283,33 +6600,45 @@ pattern createObject_FunctionalOutput_class(
7283 find mayExist(problem, interpretation, newObject); 6600 find mayExist(problem, interpretation, newObject);
7284 neg find mustExist(problem, interpretation, newObject); 6601 neg find mustExist(problem, interpretation, newObject);
7285} 6602}
7286pattern createObject_FAMTerminator_class_by_terminator_reference_FunctionalData_with_data_reference_FAMTerminator( 6603pattern createObject_FunctionalInput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData(
7287 problem:LogicProblem, interpretation:PartialInterpretation, 6604 problem:LogicProblem, interpretation:PartialInterpretation,
7288 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 6605 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
7289 container:DefinedElement) 6606 container:DefinedElement)
7290{ 6607{
7291 find interpretation(problem,interpretation); 6608 find interpretation(problem,interpretation);
7292 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 6609 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
7293 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class"); 6610 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class");
7294 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 6611 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
7295 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"terminator reference FunctionalData"); 6612 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface");
7296 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 6613 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
7297 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"data reference FAMTerminator"); 6614 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData");
7298 find mustInstanceOfFunctionalData_class(problem,interpretation,container); 6615 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container);
7299 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject); 6616 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
7300 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,container,newObject); 6617 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject);
7301 find mustExist(problem, interpretation, container); 6618 find mustExist(problem, interpretation, container);
7302 neg find mustExist(problem, interpretation, newObject); 6619 neg find mustExist(problem, interpretation, newObject);
7303} 6620}
7304pattern createObject_FAMTerminator_class( 6621pattern createObject_FunctionalInput_class(
7305 problem:LogicProblem, interpretation:PartialInterpretation, 6622 problem:LogicProblem, interpretation:PartialInterpretation,
7306 typeInterpretation:PartialComplexTypeInterpretation) 6623 typeInterpretation:PartialComplexTypeInterpretation)
7307{ 6624{
7308 find interpretation(problem,interpretation); 6625 find interpretation(problem,interpretation);
7309 neg find hasElementInContainment(problem,interpretation); 6626 neg find hasElementInContainment(problem,interpretation);
7310 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 6627 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
7311 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class"); 6628 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class");
7312 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject); 6629 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
6630 find mayExist(problem, interpretation, newObject);
6631 neg find mustExist(problem, interpretation, newObject);
6632}
6633pattern createObject_FunctionalArchitectureModel_class_UndefinedPart(
6634 problem:LogicProblem, interpretation:PartialInterpretation,
6635 typeInterpretation:PartialComplexTypeInterpretation)
6636{
6637 find interpretation(problem,interpretation);
6638 neg find hasElementInContainment(problem,interpretation);
6639 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
6640 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalArchitectureModel class UndefinedPart");
6641 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,newObject);
7313 find mayExist(problem, interpretation, newObject); 6642 find mayExist(problem, interpretation, newObject);
7314 neg find mustExist(problem, interpretation, newObject); 6643 neg find mustExist(problem, interpretation, newObject);
7315} 6644}
@@ -7343,15 +6672,33 @@ pattern createObject_InformationLink_class(
7343 find mayExist(problem, interpretation, newObject); 6672 find mayExist(problem, interpretation, newObject);
7344 neg find mustExist(problem, interpretation, newObject); 6673 neg find mustExist(problem, interpretation, newObject);
7345} 6674}
7346pattern createObject_FunctionalArchitectureModel_class_UndefinedPart( 6675pattern createObject_FAMTerminator_class_by_terminator_reference_FunctionalData_with_data_reference_FAMTerminator(
6676 problem:LogicProblem, interpretation:PartialInterpretation,
6677 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
6678 container:DefinedElement)
6679{
6680 find interpretation(problem,interpretation);
6681 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
6682 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class");
6683 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
6684 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"terminator reference FunctionalData");
6685 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
6686 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"data reference FAMTerminator");
6687 find mustInstanceOfFunctionalData_class(problem,interpretation,container);
6688 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject);
6689 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,container,newObject);
6690 find mustExist(problem, interpretation, container);
6691 neg find mustExist(problem, interpretation, newObject);
6692}
6693pattern createObject_FAMTerminator_class(
7347 problem:LogicProblem, interpretation:PartialInterpretation, 6694 problem:LogicProblem, interpretation:PartialInterpretation,
7348 typeInterpretation:PartialComplexTypeInterpretation) 6695 typeInterpretation:PartialComplexTypeInterpretation)
7349{ 6696{
7350 find interpretation(problem,interpretation); 6697 find interpretation(problem,interpretation);
7351 neg find hasElementInContainment(problem,interpretation); 6698 neg find hasElementInContainment(problem,interpretation);
7352 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 6699 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
7353 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalArchitectureModel class UndefinedPart"); 6700 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class");
7354 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,newObject); 6701 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject);
7355 find mayExist(problem, interpretation, newObject); 6702 find mayExist(problem, interpretation, newObject);
7356 neg find mustExist(problem, interpretation, newObject); 6703 neg find mustExist(problem, interpretation, newObject);
7357} 6704}
@@ -7401,118 +6748,88 @@ pattern createObject_Function_class(
7401 find mayExist(problem, interpretation, newObject); 6748 find mayExist(problem, interpretation, newObject);
7402 neg find mustExist(problem, interpretation, newObject); 6749 neg find mustExist(problem, interpretation, newObject);
7403} 6750}
7404pattern createObject_FunctionalInterface_class_by_interface_reference_FunctionalElement_with_element_reference_FunctionalInterface(
7405 problem:LogicProblem, interpretation:PartialInterpretation,
7406 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
7407 container:DefinedElement)
7408{
7409 find interpretation(problem,interpretation);
7410 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
7411 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
7412 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
7413 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"interface reference FunctionalElement");
7414 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
7415 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"element reference FunctionalInterface");
7416 find mustInstanceOfFunctionalElement_class(problem,interpretation,container);
7417 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
7418 find mayInRelationinterface_reference_FunctionalElement(problem,interpretation,container,newObject);
7419 find mustExist(problem, interpretation, container);
7420 neg find mustExist(problem, interpretation, newObject);
7421}
7422pattern createObject_FunctionalInterface_class(
7423 problem:LogicProblem, interpretation:PartialInterpretation,
7424 typeInterpretation:PartialComplexTypeInterpretation)
7425{
7426 find interpretation(problem,interpretation);
7427 neg find hasElementInContainment(problem,interpretation);
7428 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
7429 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
7430 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
7431 find mayExist(problem, interpretation, newObject);
7432 neg find mustExist(problem, interpretation, newObject);
7433}
7434 6751
7435////////// 6752//////////
7436// 4.2 Type refinement 6753// 4.2 Type refinement
7437////////// 6754//////////
7438pattern refineTypeTo_FunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 6755pattern refineTypeTo_FunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
7439 find interpretation(problem,interpretation); 6756 find interpretation(problem,interpretation);
7440 PartialInterpretation.newElements(interpretation,element); 6757 PartialInterpretation.newElements(interpretation,element);
7441 find mayInstanceOfFunctionalInput_class(problem,interpretation,element); 6758 find mayInstanceOfFunctionalInterface_class(problem,interpretation,element);
7442 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); 6759 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
7443 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 6760 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
7444 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
7445 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
7446 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 6761 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
6762 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
7447 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 6763 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
7448 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 6764 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
7449} 6765}
7450pattern refineTypeTo_FunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 6766pattern refineTypeTo_FunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
7451 find interpretation(problem,interpretation); 6767 find interpretation(problem,interpretation);
7452 PartialInterpretation.newElements(interpretation,element); 6768 PartialInterpretation.newElements(interpretation,element);
7453 find mayInstanceOfFunctionalOutput_class(problem,interpretation,element); 6769 find mayInstanceOfFunctionalOutput_class(problem,interpretation,element);
7454 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); 6770 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
7455 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
7456 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 6771 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
7457 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 6772 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
6773 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
7458 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 6774 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
7459 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 6775 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
7460 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 6776 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
7461} 6777}
7462pattern refineTypeTo_FAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 6778pattern refineTypeTo_FunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
7463 find interpretation(problem,interpretation); 6779 find interpretation(problem,interpretation);
7464 PartialInterpretation.newElements(interpretation,element); 6780 PartialInterpretation.newElements(interpretation,element);
7465 find mayInstanceOfFAMTerminator_class(problem,interpretation,element); 6781 find mayInstanceOfFunctionalInput_class(problem,interpretation,element);
6782 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
6783 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
6784 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
7466 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 6785 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
7467 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
7468 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 6786 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
7469 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
7470 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 6787 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
7471 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 6788 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
7472} 6789}
7473pattern refineTypeTo_InformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 6790pattern refineTypeTo_FunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
7474 find interpretation(problem,interpretation); 6791 find interpretation(problem,interpretation);
7475 PartialInterpretation.newElements(interpretation,element); 6792 PartialInterpretation.newElements(interpretation,element);
7476 find mayInstanceOfInformationLink_class(problem,interpretation,element); 6793 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
6794 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
7477 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 6795 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
7478 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 6796 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
7479 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
7480 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 6797 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
7481 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 6798 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
7482 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 6799 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
7483} 6800}
7484pattern refineTypeTo_FunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 6801pattern refineTypeTo_InformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
7485 find interpretation(problem,interpretation); 6802 find interpretation(problem,interpretation);
7486 PartialInterpretation.newElements(interpretation,element); 6803 PartialInterpretation.newElements(interpretation,element);
7487 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); 6804 find mayInstanceOfInformationLink_class(problem,interpretation,element);
6805 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
7488 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 6806 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
7489 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
7490 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 6807 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
7491 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 6808 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
7492 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); 6809 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
7493 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 6810 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
7494} 6811}
7495pattern refineTypeTo_Function_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 6812pattern refineTypeTo_FAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
7496 find interpretation(problem,interpretation); 6813 find interpretation(problem,interpretation);
7497 PartialInterpretation.newElements(interpretation,element); 6814 PartialInterpretation.newElements(interpretation,element);
7498 find mayInstanceOfFunction_class(problem,interpretation,element); 6815 find mayInstanceOfFAMTerminator_class(problem,interpretation,element);
6816 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
6817 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
6818 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
7499 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 6819 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
7500 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 6820 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
7501 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 6821 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
7502 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
7503 neg find mustInstanceOfFunction_class(problem,interpretation,element);
7504 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
7505} 6822}
7506pattern refineTypeTo_FunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 6823pattern refineTypeTo_Function_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
7507 find interpretation(problem,interpretation); 6824 find interpretation(problem,interpretation);
7508 PartialInterpretation.newElements(interpretation,element); 6825 PartialInterpretation.newElements(interpretation,element);
7509 find mayInstanceOfFunctionalInterface_class(problem,interpretation,element); 6826 find mayInstanceOfFunction_class(problem,interpretation,element);
7510 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 6827 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
7511 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
7512 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 6828 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
7513 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
7514 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 6829 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
7515 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 6830 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
6831 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
6832 neg find mustInstanceOfFunction_class(problem,interpretation,element);
7516} 6833}
7517 6834
7518////////// 6835//////////
@@ -7672,22 +6989,22 @@ private pattern mayInstanceOfFunctionalElement_class(problem:LogicProblem, inter
7672 find interpretation(problem,interpretation); 6989 find interpretation(problem,interpretation);
7673 PartialInterpretation.newElements(interpretation,element); 6990 PartialInterpretation.newElements(interpretation,element);
7674 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 6991 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
7675 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
7676 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
7677 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 6992 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
7678 neg find mustInstanceOfFunction_class(problem,interpretation,element);
7679 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 6993 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
6994 neg find mustInstanceOfFunction_class(problem,interpretation,element);
6995 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
6996 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
7680 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation); 6997 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
7681 neg find isPrimitive(element); 6998 neg find isPrimitive(element);
7682} or { 6999} or {
7683 find interpretation(problem,interpretation); 7000 find interpretation(problem,interpretation);
7684 PartialInterpretation.openWorldElements(interpretation,element); 7001 PartialInterpretation.openWorldElements(interpretation,element);
7685 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 7002 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
7686 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
7687 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
7688 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 7003 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
7689 neg find mustInstanceOfFunction_class(problem,interpretation,element);
7690 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 7004 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
7005 neg find mustInstanceOfFunction_class(problem,interpretation,element);
7006 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
7007 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
7691 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation); 7008 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
7692 neg find isPrimitive(element); 7009 neg find isPrimitive(element);
7693} or 7010} or
@@ -7716,22 +7033,22 @@ private pattern mayInstanceOfFunctionalArchitectureModel_class(problem:LogicProb
7716 find interpretation(problem,interpretation); 7033 find interpretation(problem,interpretation);
7717 PartialInterpretation.newElements(interpretation,element); 7034 PartialInterpretation.newElements(interpretation,element);
7718 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 7035 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
7036 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
7719 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); 7037 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
7720 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
7721 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 7038 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
7039 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
7722 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 7040 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
7723 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
7724 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation); 7041 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
7725 neg find isPrimitive(element); 7042 neg find isPrimitive(element);
7726} or { 7043} or {
7727 find interpretation(problem,interpretation); 7044 find interpretation(problem,interpretation);
7728 PartialInterpretation.openWorldElements(interpretation,element); 7045 PartialInterpretation.openWorldElements(interpretation,element);
7729 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 7046 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
7047 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
7730 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); 7048 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
7731 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
7732 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 7049 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
7050 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
7733 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 7051 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
7734 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
7735 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation); 7052 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
7736 neg find isPrimitive(element); 7053 neg find isPrimitive(element);
7737} or 7054} or
@@ -7760,20 +7077,20 @@ private pattern mayInstanceOfFunction_class(problem:LogicProblem, interpretation
7760 find interpretation(problem,interpretation); 7077 find interpretation(problem,interpretation);
7761 PartialInterpretation.newElements(interpretation,element); 7078 PartialInterpretation.newElements(interpretation,element);
7762 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 7079 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
7763 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
7764 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
7765 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 7080 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
7766 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 7081 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
7082 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
7083 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
7767 neg find scopeDisallowsNewFunction_class(problem, interpretation); 7084 neg find scopeDisallowsNewFunction_class(problem, interpretation);
7768 neg find isPrimitive(element); 7085 neg find isPrimitive(element);
7769} or { 7086} or {
7770 find interpretation(problem,interpretation); 7087 find interpretation(problem,interpretation);
7771 PartialInterpretation.openWorldElements(interpretation,element); 7088 PartialInterpretation.openWorldElements(interpretation,element);
7772 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 7089 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
7773 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
7774 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
7775 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 7090 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
7776 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 7091 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
7092 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
7093 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
7777 neg find scopeDisallowsNewFunction_class(problem, interpretation); 7094 neg find scopeDisallowsNewFunction_class(problem, interpretation);
7778 neg find isPrimitive(element); 7095 neg find isPrimitive(element);
7779} or 7096} or
@@ -7802,9 +7119,9 @@ private pattern mayInstanceOfFAMTerminator_class(problem:LogicProblem, interpret
7802 find interpretation(problem,interpretation); 7119 find interpretation(problem,interpretation);
7803 PartialInterpretation.newElements(interpretation,element); 7120 PartialInterpretation.newElements(interpretation,element);
7804 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 7121 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
7805 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
7806 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
7807 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 7122 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
7123 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
7124 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
7808 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 7125 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
7809 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation); 7126 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
7810 neg find isPrimitive(element); 7127 neg find isPrimitive(element);
@@ -7812,9 +7129,9 @@ private pattern mayInstanceOfFAMTerminator_class(problem:LogicProblem, interpret
7812 find interpretation(problem,interpretation); 7129 find interpretation(problem,interpretation);
7813 PartialInterpretation.openWorldElements(interpretation,element); 7130 PartialInterpretation.openWorldElements(interpretation,element);
7814 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 7131 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
7815 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
7816 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
7817 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 7132 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
7133 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
7134 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
7818 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 7135 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
7819 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation); 7136 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
7820 neg find isPrimitive(element); 7137 neg find isPrimitive(element);
@@ -7843,21 +7160,21 @@ private pattern mayInstanceOfInformationLink_class(problem:LogicProblem, interpr
7843{ 7160{
7844 find interpretation(problem,interpretation); 7161 find interpretation(problem,interpretation);
7845 PartialInterpretation.newElements(interpretation,element); 7162 PartialInterpretation.newElements(interpretation,element);
7846 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
7847 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
7848 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 7163 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
7849 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
7850 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 7164 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
7165 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
7166 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
7167 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
7851 neg find scopeDisallowsNewInformationLink_class(problem, interpretation); 7168 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
7852 neg find isPrimitive(element); 7169 neg find isPrimitive(element);
7853} or { 7170} or {
7854 find interpretation(problem,interpretation); 7171 find interpretation(problem,interpretation);
7855 PartialInterpretation.openWorldElements(interpretation,element); 7172 PartialInterpretation.openWorldElements(interpretation,element);
7856 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
7857 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
7858 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 7173 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
7859 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
7860 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 7174 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
7175 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
7176 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
7177 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
7861 neg find scopeDisallowsNewInformationLink_class(problem, interpretation); 7178 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
7862 neg find isPrimitive(element); 7179 neg find isPrimitive(element);
7863} or 7180} or
@@ -7885,21 +7202,21 @@ private pattern mayInstanceOfFunctionalInterface_class(problem:LogicProblem, int
7885{ 7202{
7886 find interpretation(problem,interpretation); 7203 find interpretation(problem,interpretation);
7887 PartialInterpretation.newElements(interpretation,element); 7204 PartialInterpretation.newElements(interpretation,element);
7205 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
7888 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 7206 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
7207 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
7889 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 7208 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
7890 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
7891 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 7209 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
7892 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
7893 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation); 7210 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
7894 neg find isPrimitive(element); 7211 neg find isPrimitive(element);
7895} or { 7212} or {
7896 find interpretation(problem,interpretation); 7213 find interpretation(problem,interpretation);
7897 PartialInterpretation.openWorldElements(interpretation,element); 7214 PartialInterpretation.openWorldElements(interpretation,element);
7215 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
7898 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 7216 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
7217 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
7899 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 7218 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
7900 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
7901 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 7219 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
7902 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
7903 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation); 7220 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
7904 neg find isPrimitive(element); 7221 neg find isPrimitive(element);
7905} or 7222} or
@@ -7928,22 +7245,22 @@ private pattern mayInstanceOfFunctionalInput_class(problem:LogicProblem, interpr
7928 find interpretation(problem,interpretation); 7245 find interpretation(problem,interpretation);
7929 PartialInterpretation.newElements(interpretation,element); 7246 PartialInterpretation.newElements(interpretation,element);
7930 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 7247 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
7248 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
7249 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
7931 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 7250 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
7932 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 7251 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
7933 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
7934 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 7252 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
7935 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
7936 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation); 7253 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
7937 neg find isPrimitive(element); 7254 neg find isPrimitive(element);
7938} or { 7255} or {
7939 find interpretation(problem,interpretation); 7256 find interpretation(problem,interpretation);
7940 PartialInterpretation.openWorldElements(interpretation,element); 7257 PartialInterpretation.openWorldElements(interpretation,element);
7941 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 7258 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
7259 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
7260 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
7942 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 7261 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
7943 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 7262 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
7944 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
7945 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 7263 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
7946 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
7947 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation); 7264 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
7948 neg find isPrimitive(element); 7265 neg find isPrimitive(element);
7949} or 7266} or
@@ -7971,23 +7288,23 @@ private pattern mayInstanceOfFunctionalOutput_class(problem:LogicProblem, interp
7971{ 7288{
7972 find interpretation(problem,interpretation); 7289 find interpretation(problem,interpretation);
7973 PartialInterpretation.newElements(interpretation,element); 7290 PartialInterpretation.newElements(interpretation,element);
7974 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
7975 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); 7291 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
7976 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
7977 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 7292 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
7978 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 7293 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
7979 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 7294 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
7295 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
7296 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
7980 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation); 7297 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
7981 neg find isPrimitive(element); 7298 neg find isPrimitive(element);
7982} or { 7299} or {
7983 find interpretation(problem,interpretation); 7300 find interpretation(problem,interpretation);
7984 PartialInterpretation.openWorldElements(interpretation,element); 7301 PartialInterpretation.openWorldElements(interpretation,element);
7985 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
7986 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); 7302 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
7987 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
7988 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 7303 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
7989 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 7304 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
7990 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 7305 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
7306 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
7307 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
7991 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation); 7308 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
7992 neg find isPrimitive(element); 7309 neg find isPrimitive(element);
7993} or 7310} or
@@ -8015,25 +7332,25 @@ private pattern mayInstanceOfFunctionalData_class(problem:LogicProblem, interpre
8015{ 7332{
8016 find interpretation(problem,interpretation); 7333 find interpretation(problem,interpretation);
8017 PartialInterpretation.newElements(interpretation,element); 7334 PartialInterpretation.newElements(interpretation,element);
7335 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
8018 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 7336 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
7337 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
7338 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
8019 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 7339 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
8020 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
8021 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 7340 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
8022 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
8023 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 7341 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
8024 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
8025 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation); 7342 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
8026 neg find isPrimitive(element); 7343 neg find isPrimitive(element);
8027} or { 7344} or {
8028 find interpretation(problem,interpretation); 7345 find interpretation(problem,interpretation);
8029 PartialInterpretation.openWorldElements(interpretation,element); 7346 PartialInterpretation.openWorldElements(interpretation,element);
7347 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
8030 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 7348 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
7349 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
7350 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
8031 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 7351 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
8032 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
8033 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 7352 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
8034 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
8035 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 7353 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
8036 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
8037 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation); 7354 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
8038 neg find isPrimitive(element); 7355 neg find isPrimitive(element);
8039} or 7356} or
@@ -8104,20 +7421,20 @@ private pattern mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(pro
8104 find interpretation(problem,interpretation); 7421 find interpretation(problem,interpretation);
8105 PartialInterpretation.newElements(interpretation,element); 7422 PartialInterpretation.newElements(interpretation,element);
8106 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 7423 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
8107 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 7424 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
8108 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 7425 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
7426 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
8109 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 7427 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
8110 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
8111 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation); 7428 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation);
8112 neg find isPrimitive(element); 7429 neg find isPrimitive(element);
8113} or { 7430} or {
8114 find interpretation(problem,interpretation); 7431 find interpretation(problem,interpretation);
8115 PartialInterpretation.openWorldElements(interpretation,element); 7432 PartialInterpretation.openWorldElements(interpretation,element);
8116 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 7433 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
8117 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 7434 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
8118 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 7435 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
7436 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
8119 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 7437 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
8120 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
8121 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation); 7438 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation);
8122 neg find isPrimitive(element); 7439 neg find isPrimitive(element);
8123} or 7440} or
@@ -8799,39 +8116,39 @@ pattern unfinishedLowerMultiplicity_type_attribute_Function(problem:LogicProblem
8799private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation) 8116private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation)
8800{ 8117{
8801 find interpretation(problem,interpretation); 8118 find interpretation(problem,interpretation);
8802 find mustInstanceOfFunctionalData_class(problem,interpretation,root); 8119 find mustInstanceOfInformationLink_class(problem,interpretation,root);
8803 find mustExist(problem, interpretation, root); 8120 find mustExist(problem, interpretation, root);
8804}or{ 8121}or{
8805 find interpretation(problem,interpretation); 8122 find interpretation(problem,interpretation);
8806 find mustInstanceOfInformationLink_class(problem,interpretation,root); 8123 find mustInstanceOfFunctionalOutput_class(problem,interpretation,root);
8807 find mustExist(problem, interpretation, root); 8124 find mustExist(problem, interpretation, root);
8808}or{ 8125}or{
8809 find interpretation(problem,interpretation); 8126 find interpretation(problem,interpretation);
8810 find mustInstanceOfFunctionalInterface_class(problem,interpretation,root); 8127 find mustInstanceOfFunctionalInput_class(problem,interpretation,root);
8811 find mustExist(problem, interpretation, root); 8128 find mustExist(problem, interpretation, root);
8812}or{ 8129}or{
8813 find interpretation(problem,interpretation); 8130 find interpretation(problem,interpretation);
8814 find mustInstanceOfFAMTerminator_class(problem,interpretation,root); 8131 find mustInstanceOfFunctionalData_class(problem,interpretation,root);
8815 find mustExist(problem, interpretation, root); 8132 find mustExist(problem, interpretation, root);
8816}or{ 8133}or{
8817 find interpretation(problem,interpretation); 8134 find interpretation(problem,interpretation);
8818 find mustInstanceOfFunctionalElement_class(problem,interpretation,root); 8135 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,root);
8819 find mustExist(problem, interpretation, root); 8136 find mustExist(problem, interpretation, root);
8820}or{ 8137}or{
8821 find interpretation(problem,interpretation); 8138 find interpretation(problem,interpretation);
8822 find mustInstanceOfFunctionalInput_class(problem,interpretation,root); 8139 find mustInstanceOfFAMTerminator_class(problem,interpretation,root);
8823 find mustExist(problem, interpretation, root); 8140 find mustExist(problem, interpretation, root);
8824}or{ 8141}or{
8825 find interpretation(problem,interpretation); 8142 find interpretation(problem,interpretation);
8826 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,root); 8143 find mustInstanceOfFunction_class(problem,interpretation,root);
8827 find mustExist(problem, interpretation, root); 8144 find mustExist(problem, interpretation, root);
8828}or{ 8145}or{
8829 find interpretation(problem,interpretation); 8146 find interpretation(problem,interpretation);
8830 find mustInstanceOfFunctionalOutput_class(problem,interpretation,root); 8147 find mustInstanceOfFunctionalInterface_class(problem,interpretation,root);
8831 find mustExist(problem, interpretation, root); 8148 find mustExist(problem, interpretation, root);
8832}or{ 8149}or{
8833 find interpretation(problem,interpretation); 8150 find interpretation(problem,interpretation);
8834 find mustInstanceOfFunction_class(problem,interpretation,root); 8151 find mustInstanceOfFunctionalElement_class(problem,interpretation,root);
8835 find mustExist(problem, interpretation, root); 8152 find mustExist(problem, interpretation, root);
8836}or{ 8153}or{
8837 find interpretation(problem,interpretation); 8154 find interpretation(problem,interpretation);
@@ -8842,135 +8159,93 @@ private pattern hasElementInContainment(problem:LogicProblem, interpretation:Par
8842 find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,root); 8159 find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,root);
8843 find mustExist(problem, interpretation, root); 8160 find mustExist(problem, interpretation, root);
8844} 8161}
8845pattern createObject_InformationLink_class_by_outgoingLinks_reference_FunctionalOutput_with_from_reference_InformationLink( 8162pattern createObject_FunctionalInput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData(
8846 problem:LogicProblem, interpretation:PartialInterpretation,
8847 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
8848 container:DefinedElement)
8849{
8850 find interpretation(problem,interpretation);
8851 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
8852 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class");
8853 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
8854 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"outgoingLinks reference FunctionalOutput");
8855 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
8856 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"from reference InformationLink");
8857 find mustInstanceOfFunctionalOutput_class(problem,interpretation,container);
8858 find mayInstanceOfInformationLink_class(problem,interpretation,newObject);
8859 find mayInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,container,newObject);
8860 find mustExist(problem, interpretation, container);
8861 neg find mustExist(problem, interpretation, newObject);
8862}
8863pattern createObject_InformationLink_class(
8864 problem:LogicProblem, interpretation:PartialInterpretation,
8865 typeInterpretation:PartialComplexTypeInterpretation)
8866{
8867 find interpretation(problem,interpretation);
8868 neg find hasElementInContainment(problem,interpretation);
8869 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
8870 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class");
8871 find mayInstanceOfInformationLink_class(problem,interpretation,newObject);
8872 find mayExist(problem, interpretation, newObject);
8873 neg find mustExist(problem, interpretation, newObject);
8874}
8875pattern createObject_FunctionalOutput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData(
8876 problem:LogicProblem, interpretation:PartialInterpretation, 8163 problem:LogicProblem, interpretation:PartialInterpretation,
8877 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 8164 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
8878 container:DefinedElement) 8165 container:DefinedElement)
8879{ 8166{
8880 find interpretation(problem,interpretation); 8167 find interpretation(problem,interpretation);
8881 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 8168 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
8882 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class"); 8169 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class");
8883 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 8170 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
8884 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface"); 8171 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface");
8885 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 8172 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
8886 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData"); 8173 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData");
8887 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container); 8174 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container);
8888 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject); 8175 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
8889 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject); 8176 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject);
8890 find mustExist(problem, interpretation, container); 8177 find mustExist(problem, interpretation, container);
8891 neg find mustExist(problem, interpretation, newObject); 8178 neg find mustExist(problem, interpretation, newObject);
8892} 8179}
8893pattern createObject_FunctionalOutput_class( 8180pattern createObject_FunctionalInput_class(
8894 problem:LogicProblem, interpretation:PartialInterpretation, 8181 problem:LogicProblem, interpretation:PartialInterpretation,
8895 typeInterpretation:PartialComplexTypeInterpretation) 8182 typeInterpretation:PartialComplexTypeInterpretation)
8896{ 8183{
8897 find interpretation(problem,interpretation); 8184 find interpretation(problem,interpretation);
8898 neg find hasElementInContainment(problem,interpretation); 8185 neg find hasElementInContainment(problem,interpretation);
8899 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 8186 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
8900 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class"); 8187 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class");
8901 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject); 8188 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
8902 find mayExist(problem, interpretation, newObject); 8189 find mayExist(problem, interpretation, newObject);
8903 neg find mustExist(problem, interpretation, newObject); 8190 neg find mustExist(problem, interpretation, newObject);
8904} 8191}
8905pattern createObject_FunctionalInput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData( 8192pattern createObject_InformationLink_class_by_outgoingLinks_reference_FunctionalOutput_with_from_reference_InformationLink(
8906 problem:LogicProblem, interpretation:PartialInterpretation, 8193 problem:LogicProblem, interpretation:PartialInterpretation,
8907 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 8194 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
8908 container:DefinedElement) 8195 container:DefinedElement)
8909{ 8196{
8910 find interpretation(problem,interpretation); 8197 find interpretation(problem,interpretation);
8911 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 8198 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
8912 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class"); 8199 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class");
8913 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 8200 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
8914 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface"); 8201 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"outgoingLinks reference FunctionalOutput");
8915 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 8202 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
8916 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData"); 8203 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"from reference InformationLink");
8917 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container); 8204 find mustInstanceOfFunctionalOutput_class(problem,interpretation,container);
8918 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject); 8205 find mayInstanceOfInformationLink_class(problem,interpretation,newObject);
8919 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject); 8206 find mayInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,container,newObject);
8920 find mustExist(problem, interpretation, container); 8207 find mustExist(problem, interpretation, container);
8921 neg find mustExist(problem, interpretation, newObject); 8208 neg find mustExist(problem, interpretation, newObject);
8922} 8209}
8923pattern createObject_FunctionalInput_class( 8210pattern createObject_InformationLink_class(
8924 problem:LogicProblem, interpretation:PartialInterpretation,
8925 typeInterpretation:PartialComplexTypeInterpretation)
8926{
8927 find interpretation(problem,interpretation);
8928 neg find hasElementInContainment(problem,interpretation);
8929 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
8930 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class");
8931 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
8932 find mayExist(problem, interpretation, newObject);
8933 neg find mustExist(problem, interpretation, newObject);
8934}
8935pattern createObject_FunctionalArchitectureModel_class_UndefinedPart(
8936 problem:LogicProblem, interpretation:PartialInterpretation, 8211 problem:LogicProblem, interpretation:PartialInterpretation,
8937 typeInterpretation:PartialComplexTypeInterpretation) 8212 typeInterpretation:PartialComplexTypeInterpretation)
8938{ 8213{
8939 find interpretation(problem,interpretation); 8214 find interpretation(problem,interpretation);
8940 neg find hasElementInContainment(problem,interpretation); 8215 neg find hasElementInContainment(problem,interpretation);
8941 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 8216 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
8942 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalArchitectureModel class UndefinedPart"); 8217 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class");
8943 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,newObject); 8218 find mayInstanceOfInformationLink_class(problem,interpretation,newObject);
8944 find mayExist(problem, interpretation, newObject); 8219 find mayExist(problem, interpretation, newObject);
8945 neg find mustExist(problem, interpretation, newObject); 8220 neg find mustExist(problem, interpretation, newObject);
8946} 8221}
8947pattern createObject_FunctionalInterface_class_by_interface_reference_FunctionalElement_with_element_reference_FunctionalInterface( 8222pattern createObject_FAMTerminator_class_by_terminator_reference_FunctionalData_with_data_reference_FAMTerminator(
8948 problem:LogicProblem, interpretation:PartialInterpretation, 8223 problem:LogicProblem, interpretation:PartialInterpretation,
8949 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 8224 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
8950 container:DefinedElement) 8225 container:DefinedElement)
8951{ 8226{
8952 find interpretation(problem,interpretation); 8227 find interpretation(problem,interpretation);
8953 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 8228 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
8954 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class"); 8229 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class");
8955 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 8230 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
8956 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"interface reference FunctionalElement"); 8231 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"terminator reference FunctionalData");
8957 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 8232 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
8958 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"element reference FunctionalInterface"); 8233 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"data reference FAMTerminator");
8959 find mustInstanceOfFunctionalElement_class(problem,interpretation,container); 8234 find mustInstanceOfFunctionalData_class(problem,interpretation,container);
8960 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject); 8235 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject);
8961 find mayInRelationinterface_reference_FunctionalElement(problem,interpretation,container,newObject); 8236 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,container,newObject);
8962 find mustExist(problem, interpretation, container); 8237 find mustExist(problem, interpretation, container);
8963 neg find mustExist(problem, interpretation, newObject); 8238 neg find mustExist(problem, interpretation, newObject);
8964} 8239}
8965pattern createObject_FunctionalInterface_class( 8240pattern createObject_FAMTerminator_class(
8966 problem:LogicProblem, interpretation:PartialInterpretation, 8241 problem:LogicProblem, interpretation:PartialInterpretation,
8967 typeInterpretation:PartialComplexTypeInterpretation) 8242 typeInterpretation:PartialComplexTypeInterpretation)
8968{ 8243{
8969 find interpretation(problem,interpretation); 8244 find interpretation(problem,interpretation);
8970 neg find hasElementInContainment(problem,interpretation); 8245 neg find hasElementInContainment(problem,interpretation);
8971 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 8246 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
8972 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class"); 8247 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class");
8973 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject); 8248 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject);
8974 find mayExist(problem, interpretation, newObject); 8249 find mayExist(problem, interpretation, newObject);
8975 neg find mustExist(problem, interpretation, newObject); 8250 neg find mustExist(problem, interpretation, newObject);
8976} 8251}
@@ -9020,33 +8295,75 @@ pattern createObject_Function_class(
9020 find mayExist(problem, interpretation, newObject); 8295 find mayExist(problem, interpretation, newObject);
9021 neg find mustExist(problem, interpretation, newObject); 8296 neg find mustExist(problem, interpretation, newObject);
9022} 8297}
9023pattern createObject_FAMTerminator_class_by_terminator_reference_FunctionalData_with_data_reference_FAMTerminator( 8298pattern createObject_FunctionalOutput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData(
9024 problem:LogicProblem, interpretation:PartialInterpretation, 8299 problem:LogicProblem, interpretation:PartialInterpretation,
9025 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 8300 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
9026 container:DefinedElement) 8301 container:DefinedElement)
9027{ 8302{
9028 find interpretation(problem,interpretation); 8303 find interpretation(problem,interpretation);
9029 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 8304 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
9030 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class"); 8305 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class");
9031 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 8306 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
9032 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"terminator reference FunctionalData"); 8307 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface");
9033 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 8308 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
9034 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"data reference FAMTerminator"); 8309 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData");
9035 find mustInstanceOfFunctionalData_class(problem,interpretation,container); 8310 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container);
9036 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject); 8311 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject);
9037 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,container,newObject); 8312 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject);
9038 find mustExist(problem, interpretation, container); 8313 find mustExist(problem, interpretation, container);
9039 neg find mustExist(problem, interpretation, newObject); 8314 neg find mustExist(problem, interpretation, newObject);
9040} 8315}
9041pattern createObject_FAMTerminator_class( 8316pattern createObject_FunctionalOutput_class(
9042 problem:LogicProblem, interpretation:PartialInterpretation, 8317 problem:LogicProblem, interpretation:PartialInterpretation,
9043 typeInterpretation:PartialComplexTypeInterpretation) 8318 typeInterpretation:PartialComplexTypeInterpretation)
9044{ 8319{
9045 find interpretation(problem,interpretation); 8320 find interpretation(problem,interpretation);
9046 neg find hasElementInContainment(problem,interpretation); 8321 neg find hasElementInContainment(problem,interpretation);
9047 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 8322 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
9048 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class"); 8323 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class");
9049 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject); 8324 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject);
8325 find mayExist(problem, interpretation, newObject);
8326 neg find mustExist(problem, interpretation, newObject);
8327}
8328pattern createObject_FunctionalArchitectureModel_class_UndefinedPart(
8329 problem:LogicProblem, interpretation:PartialInterpretation,
8330 typeInterpretation:PartialComplexTypeInterpretation)
8331{
8332 find interpretation(problem,interpretation);
8333 neg find hasElementInContainment(problem,interpretation);
8334 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
8335 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalArchitectureModel class UndefinedPart");
8336 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,newObject);
8337 find mayExist(problem, interpretation, newObject);
8338 neg find mustExist(problem, interpretation, newObject);
8339}
8340pattern createObject_FunctionalInterface_class_by_interface_reference_FunctionalElement_with_element_reference_FunctionalInterface(
8341 problem:LogicProblem, interpretation:PartialInterpretation,
8342 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
8343 container:DefinedElement)
8344{
8345 find interpretation(problem,interpretation);
8346 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
8347 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
8348 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
8349 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"interface reference FunctionalElement");
8350 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
8351 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"element reference FunctionalInterface");
8352 find mustInstanceOfFunctionalElement_class(problem,interpretation,container);
8353 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
8354 find mayInRelationinterface_reference_FunctionalElement(problem,interpretation,container,newObject);
8355 find mustExist(problem, interpretation, container);
8356 neg find mustExist(problem, interpretation, newObject);
8357}
8358pattern createObject_FunctionalInterface_class(
8359 problem:LogicProblem, interpretation:PartialInterpretation,
8360 typeInterpretation:PartialComplexTypeInterpretation)
8361{
8362 find interpretation(problem,interpretation);
8363 neg find hasElementInContainment(problem,interpretation);
8364 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
8365 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
8366 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
9050 find mayExist(problem, interpretation, newObject); 8367 find mayExist(problem, interpretation, newObject);
9051 neg find mustExist(problem, interpretation, newObject); 8368 neg find mustExist(problem, interpretation, newObject);
9052} 8369}
@@ -9054,84 +8371,84 @@ pattern createObject_FAMTerminator_class(
9054////////// 8371//////////
9055// 4.2 Type refinement 8372// 4.2 Type refinement
9056////////// 8373//////////
8374pattern refineTypeTo_FunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
8375 find interpretation(problem,interpretation);
8376 PartialInterpretation.newElements(interpretation,element);
8377 find mayInstanceOfFunctionalInput_class(problem,interpretation,element);
8378 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
8379 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
8380 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
8381 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
8382 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
8383 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
8384 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
8385}
9057pattern refineTypeTo_InformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 8386pattern refineTypeTo_InformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
9058 find interpretation(problem,interpretation); 8387 find interpretation(problem,interpretation);
9059 PartialInterpretation.newElements(interpretation,element); 8388 PartialInterpretation.newElements(interpretation,element);
9060 find mayInstanceOfInformationLink_class(problem,interpretation,element); 8389 find mayInstanceOfInformationLink_class(problem,interpretation,element);
9061 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 8390 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
9062 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
9063 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
9064 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 8391 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
9065 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
9066 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 8392 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
8393 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
8394 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
8395 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
9067} 8396}
9068pattern refineTypeTo_FunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 8397pattern refineTypeTo_FAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
9069 find interpretation(problem,interpretation); 8398 find interpretation(problem,interpretation);
9070 PartialInterpretation.newElements(interpretation,element); 8399 PartialInterpretation.newElements(interpretation,element);
9071 find mayInstanceOfFunctionalOutput_class(problem,interpretation,element); 8400 find mayInstanceOfFAMTerminator_class(problem,interpretation,element);
9072 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 8401 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
9073 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
9074 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
9075 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
9076 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 8402 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
8403 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
8404 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
8405 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
9077 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 8406 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
8407}
8408pattern refineTypeTo_Function_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
8409 find interpretation(problem,interpretation);
8410 PartialInterpretation.newElements(interpretation,element);
8411 find mayInstanceOfFunction_class(problem,interpretation,element);
8412 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
8413 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
9078 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 8414 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
8415 neg find mustInstanceOfFunction_class(problem,interpretation,element);
8416 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
8417 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
9079} 8418}
9080pattern refineTypeTo_FunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 8419pattern refineTypeTo_FunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
9081 find interpretation(problem,interpretation); 8420 find interpretation(problem,interpretation);
9082 PartialInterpretation.newElements(interpretation,element); 8421 PartialInterpretation.newElements(interpretation,element);
9083 find mayInstanceOfFunctionalInput_class(problem,interpretation,element); 8422 find mayInstanceOfFunctionalOutput_class(problem,interpretation,element);
8423 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
8424 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
9084 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 8425 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
8426 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
9085 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 8427 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
9086 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
9087 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 8428 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
9088 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
9089 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 8429 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
9090 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
9091} 8430}
9092pattern refineTypeTo_FunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 8431pattern refineTypeTo_FunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
9093 find interpretation(problem,interpretation); 8432 find interpretation(problem,interpretation);
9094 PartialInterpretation.newElements(interpretation,element); 8433 PartialInterpretation.newElements(interpretation,element);
9095 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); 8434 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
9096 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 8435 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
8436 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
9097 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); 8437 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
9098 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
9099 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 8438 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
8439 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
9100 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 8440 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
9101 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
9102} 8441}
9103pattern refineTypeTo_FunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 8442pattern refineTypeTo_FunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
9104 find interpretation(problem,interpretation); 8443 find interpretation(problem,interpretation);
9105 PartialInterpretation.newElements(interpretation,element); 8444 PartialInterpretation.newElements(interpretation,element);
9106 find mayInstanceOfFunctionalInterface_class(problem,interpretation,element); 8445 find mayInstanceOfFunctionalInterface_class(problem,interpretation,element);
9107 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
9108 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
9109 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
9110 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 8446 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
9111 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
9112 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
9113}
9114pattern refineTypeTo_Function_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
9115 find interpretation(problem,interpretation);
9116 PartialInterpretation.newElements(interpretation,element);
9117 find mayInstanceOfFunction_class(problem,interpretation,element);
9118 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 8447 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
9119 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
9120 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
9121 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
9122 neg find mustInstanceOfFunction_class(problem,interpretation,element);
9123 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 8448 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
9124}
9125pattern refineTypeTo_FAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
9126 find interpretation(problem,interpretation);
9127 PartialInterpretation.newElements(interpretation,element);
9128 find mayInstanceOfFAMTerminator_class(problem,interpretation,element);
9129 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
9130 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
9131 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 8449 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
9132 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 8450 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
9133 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 8451 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
9134 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
9135} 8452}
9136 8453
9137////////// 8454//////////
@@ -9290,23 +8607,23 @@ private pattern mayInstanceOfFunctionalElement_class(problem:LogicProblem, inter
9290{ 8607{
9291 find interpretation(problem,interpretation); 8608 find interpretation(problem,interpretation);
9292 PartialInterpretation.newElements(interpretation,element); 8609 PartialInterpretation.newElements(interpretation,element);
8610 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
9293 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 8611 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
9294 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 8612 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
9295 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
9296 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
9297 neg find mustInstanceOfFunction_class(problem,interpretation,element); 8613 neg find mustInstanceOfFunction_class(problem,interpretation,element);
9298 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 8614 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
8615 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
9299 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation); 8616 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
9300 neg find isPrimitive(element); 8617 neg find isPrimitive(element);
9301} or { 8618} or {
9302 find interpretation(problem,interpretation); 8619 find interpretation(problem,interpretation);
9303 PartialInterpretation.openWorldElements(interpretation,element); 8620 PartialInterpretation.openWorldElements(interpretation,element);
8621 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
9304 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 8622 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
9305 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 8623 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
9306 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
9307 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
9308 neg find mustInstanceOfFunction_class(problem,interpretation,element); 8624 neg find mustInstanceOfFunction_class(problem,interpretation,element);
9309 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 8625 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
8626 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
9310 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation); 8627 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
9311 neg find isPrimitive(element); 8628 neg find isPrimitive(element);
9312} or 8629} or
@@ -9334,23 +8651,23 @@ private pattern mayInstanceOfFunctionalArchitectureModel_class(problem:LogicProb
9334{ 8651{
9335 find interpretation(problem,interpretation); 8652 find interpretation(problem,interpretation);
9336 PartialInterpretation.newElements(interpretation,element); 8653 PartialInterpretation.newElements(interpretation,element);
9337 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
9338 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
9339 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 8654 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
9340 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
9341 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 8655 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
8656 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
9342 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 8657 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
8658 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
8659 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
9343 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation); 8660 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
9344 neg find isPrimitive(element); 8661 neg find isPrimitive(element);
9345} or { 8662} or {
9346 find interpretation(problem,interpretation); 8663 find interpretation(problem,interpretation);
9347 PartialInterpretation.openWorldElements(interpretation,element); 8664 PartialInterpretation.openWorldElements(interpretation,element);
9348 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
9349 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
9350 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 8665 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
9351 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
9352 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 8666 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
8667 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
9353 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 8668 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
8669 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
8670 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
9354 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation); 8671 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
9355 neg find isPrimitive(element); 8672 neg find isPrimitive(element);
9356} or 8673} or
@@ -9378,21 +8695,21 @@ private pattern mayInstanceOfFunction_class(problem:LogicProblem, interpretation
9378{ 8695{
9379 find interpretation(problem,interpretation); 8696 find interpretation(problem,interpretation);
9380 PartialInterpretation.newElements(interpretation,element); 8697 PartialInterpretation.newElements(interpretation,element);
8698 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
9381 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 8699 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
9382 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 8700 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
9383 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
9384 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
9385 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 8701 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
8702 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
9386 neg find scopeDisallowsNewFunction_class(problem, interpretation); 8703 neg find scopeDisallowsNewFunction_class(problem, interpretation);
9387 neg find isPrimitive(element); 8704 neg find isPrimitive(element);
9388} or { 8705} or {
9389 find interpretation(problem,interpretation); 8706 find interpretation(problem,interpretation);
9390 PartialInterpretation.openWorldElements(interpretation,element); 8707 PartialInterpretation.openWorldElements(interpretation,element);
8708 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
9391 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 8709 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
9392 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 8710 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
9393 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
9394 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
9395 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 8711 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
8712 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
9396 neg find scopeDisallowsNewFunction_class(problem, interpretation); 8713 neg find scopeDisallowsNewFunction_class(problem, interpretation);
9397 neg find isPrimitive(element); 8714 neg find isPrimitive(element);
9398} or 8715} or
@@ -9420,21 +8737,21 @@ private pattern mayInstanceOfFAMTerminator_class(problem:LogicProblem, interpret
9420{ 8737{
9421 find interpretation(problem,interpretation); 8738 find interpretation(problem,interpretation);
9422 PartialInterpretation.newElements(interpretation,element); 8739 PartialInterpretation.newElements(interpretation,element);
8740 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
9423 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 8741 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
8742 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
9424 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 8743 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
9425 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
9426 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 8744 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
9427 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
9428 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation); 8745 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
9429 neg find isPrimitive(element); 8746 neg find isPrimitive(element);
9430} or { 8747} or {
9431 find interpretation(problem,interpretation); 8748 find interpretation(problem,interpretation);
9432 PartialInterpretation.openWorldElements(interpretation,element); 8749 PartialInterpretation.openWorldElements(interpretation,element);
8750 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
9433 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 8751 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
8752 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
9434 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 8753 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
9435 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
9436 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 8754 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
9437 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
9438 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation); 8755 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
9439 neg find isPrimitive(element); 8756 neg find isPrimitive(element);
9440} or 8757} or
@@ -9462,21 +8779,21 @@ private pattern mayInstanceOfInformationLink_class(problem:LogicProblem, interpr
9462{ 8779{
9463 find interpretation(problem,interpretation); 8780 find interpretation(problem,interpretation);
9464 PartialInterpretation.newElements(interpretation,element); 8781 PartialInterpretation.newElements(interpretation,element);
8782 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
9465 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 8783 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
9466 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 8784 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
9467 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
9468 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
9469 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 8785 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
8786 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
9470 neg find scopeDisallowsNewInformationLink_class(problem, interpretation); 8787 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
9471 neg find isPrimitive(element); 8788 neg find isPrimitive(element);
9472} or { 8789} or {
9473 find interpretation(problem,interpretation); 8790 find interpretation(problem,interpretation);
9474 PartialInterpretation.openWorldElements(interpretation,element); 8791 PartialInterpretation.openWorldElements(interpretation,element);
8792 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
9475 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 8793 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
9476 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 8794 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
9477 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
9478 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
9479 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 8795 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
8796 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
9480 neg find scopeDisallowsNewInformationLink_class(problem, interpretation); 8797 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
9481 neg find isPrimitive(element); 8798 neg find isPrimitive(element);
9482} or 8799} or
@@ -9504,21 +8821,21 @@ private pattern mayInstanceOfFunctionalInterface_class(problem:LogicProblem, int
9504{ 8821{
9505 find interpretation(problem,interpretation); 8822 find interpretation(problem,interpretation);
9506 PartialInterpretation.newElements(interpretation,element); 8823 PartialInterpretation.newElements(interpretation,element);
9507 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
9508 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 8824 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
9509 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
9510 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 8825 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
8826 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
9511 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 8827 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
8828 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
9512 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation); 8829 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
9513 neg find isPrimitive(element); 8830 neg find isPrimitive(element);
9514} or { 8831} or {
9515 find interpretation(problem,interpretation); 8832 find interpretation(problem,interpretation);
9516 PartialInterpretation.openWorldElements(interpretation,element); 8833 PartialInterpretation.openWorldElements(interpretation,element);
9517 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
9518 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 8834 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
9519 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
9520 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 8835 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
8836 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
9521 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 8837 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
8838 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
9522 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation); 8839 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
9523 neg find isPrimitive(element); 8840 neg find isPrimitive(element);
9524} or 8841} or
@@ -9546,22 +8863,22 @@ private pattern mayInstanceOfFunctionalInput_class(problem:LogicProblem, interpr
9546{ 8863{
9547 find interpretation(problem,interpretation); 8864 find interpretation(problem,interpretation);
9548 PartialInterpretation.newElements(interpretation,element); 8865 PartialInterpretation.newElements(interpretation,element);
9549 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
9550 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
9551 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 8866 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
9552 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 8867 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
8868 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
9553 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 8869 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
8870 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
9554 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 8871 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
9555 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation); 8872 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
9556 neg find isPrimitive(element); 8873 neg find isPrimitive(element);
9557} or { 8874} or {
9558 find interpretation(problem,interpretation); 8875 find interpretation(problem,interpretation);
9559 PartialInterpretation.openWorldElements(interpretation,element); 8876 PartialInterpretation.openWorldElements(interpretation,element);
9560 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
9561 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
9562 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 8877 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
9563 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 8878 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
8879 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
9564 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 8880 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
8881 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
9565 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 8882 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
9566 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation); 8883 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
9567 neg find isPrimitive(element); 8884 neg find isPrimitive(element);
@@ -9590,23 +8907,23 @@ private pattern mayInstanceOfFunctionalOutput_class(problem:LogicProblem, interp
9590{ 8907{
9591 find interpretation(problem,interpretation); 8908 find interpretation(problem,interpretation);
9592 PartialInterpretation.newElements(interpretation,element); 8909 PartialInterpretation.newElements(interpretation,element);
9593 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
9594 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
9595 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
9596 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 8910 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
8911 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
9597 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 8912 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
8913 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
9598 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 8914 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
8915 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
9599 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation); 8916 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
9600 neg find isPrimitive(element); 8917 neg find isPrimitive(element);
9601} or { 8918} or {
9602 find interpretation(problem,interpretation); 8919 find interpretation(problem,interpretation);
9603 PartialInterpretation.openWorldElements(interpretation,element); 8920 PartialInterpretation.openWorldElements(interpretation,element);
9604 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
9605 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
9606 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
9607 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 8921 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
8922 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
9608 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 8923 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
8924 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
9609 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 8925 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
8926 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
9610 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation); 8927 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
9611 neg find isPrimitive(element); 8928 neg find isPrimitive(element);
9612} or 8929} or
@@ -9634,25 +8951,25 @@ private pattern mayInstanceOfFunctionalData_class(problem:LogicProblem, interpre
9634{ 8951{
9635 find interpretation(problem,interpretation); 8952 find interpretation(problem,interpretation);
9636 PartialInterpretation.newElements(interpretation,element); 8953 PartialInterpretation.newElements(interpretation,element);
9637 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
9638 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
9639 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
9640 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 8954 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
9641 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 8955 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
9642 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 8956 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
8957 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
8958 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
9643 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 8959 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
8960 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
9644 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation); 8961 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
9645 neg find isPrimitive(element); 8962 neg find isPrimitive(element);
9646} or { 8963} or {
9647 find interpretation(problem,interpretation); 8964 find interpretation(problem,interpretation);
9648 PartialInterpretation.openWorldElements(interpretation,element); 8965 PartialInterpretation.openWorldElements(interpretation,element);
9649 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
9650 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
9651 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
9652 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 8966 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
9653 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 8967 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
9654 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 8968 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
8969 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
8970 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
9655 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 8971 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
8972 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
9656 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation); 8973 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
9657 neg find isPrimitive(element); 8974 neg find isPrimitive(element);
9658} or 8975} or
@@ -9722,21 +9039,21 @@ private pattern mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(pro
9722{ 9039{
9723 find interpretation(problem,interpretation); 9040 find interpretation(problem,interpretation);
9724 PartialInterpretation.newElements(interpretation,element); 9041 PartialInterpretation.newElements(interpretation,element);
9725 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
9726 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 9042 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
9727 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 9043 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
9728 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 9044 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
9729 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 9045 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
9046 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
9730 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation); 9047 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation);
9731 neg find isPrimitive(element); 9048 neg find isPrimitive(element);
9732} or { 9049} or {
9733 find interpretation(problem,interpretation); 9050 find interpretation(problem,interpretation);
9734 PartialInterpretation.openWorldElements(interpretation,element); 9051 PartialInterpretation.openWorldElements(interpretation,element);
9735 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
9736 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 9052 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
9737 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 9053 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
9738 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 9054 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
9739 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 9055 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
9056 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
9740 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation); 9057 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation);
9741 neg find isPrimitive(element); 9058 neg find isPrimitive(element);
9742} or 9059} or
@@ -10418,39 +9735,39 @@ pattern unfinishedLowerMultiplicity_type_attribute_Function(problem:LogicProblem
10418private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation) 9735private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation)
10419{ 9736{
10420 find interpretation(problem,interpretation); 9737 find interpretation(problem,interpretation);
10421 find mustInstanceOfFAMTerminator_class(problem,interpretation,root); 9738 find mustInstanceOfInformationLink_class(problem,interpretation,root);
10422 find mustExist(problem, interpretation, root); 9739 find mustExist(problem, interpretation, root);
10423}or{ 9740}or{
10424 find interpretation(problem,interpretation); 9741 find interpretation(problem,interpretation);
10425 find mustInstanceOfFunction_class(problem,interpretation,root); 9742 find mustInstanceOfFunctionalOutput_class(problem,interpretation,root);
10426 find mustExist(problem, interpretation, root); 9743 find mustExist(problem, interpretation, root);
10427}or{ 9744}or{
10428 find interpretation(problem,interpretation); 9745 find interpretation(problem,interpretation);
10429 find mustInstanceOfFunctionalData_class(problem,interpretation,root); 9746 find mustInstanceOfFunctionalInput_class(problem,interpretation,root);
10430 find mustExist(problem, interpretation, root); 9747 find mustExist(problem, interpretation, root);
10431}or{ 9748}or{
10432 find interpretation(problem,interpretation); 9749 find interpretation(problem,interpretation);
10433 find mustInstanceOfFunctionalInterface_class(problem,interpretation,root); 9750 find mustInstanceOfFunctionalData_class(problem,interpretation,root);
10434 find mustExist(problem, interpretation, root); 9751 find mustExist(problem, interpretation, root);
10435}or{ 9752}or{
10436 find interpretation(problem,interpretation); 9753 find interpretation(problem,interpretation);
10437 find mustInstanceOfInformationLink_class(problem,interpretation,root); 9754 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,root);
10438 find mustExist(problem, interpretation, root); 9755 find mustExist(problem, interpretation, root);
10439}or{ 9756}or{
10440 find interpretation(problem,interpretation); 9757 find interpretation(problem,interpretation);
10441 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,root); 9758 find mustInstanceOfFAMTerminator_class(problem,interpretation,root);
10442 find mustExist(problem, interpretation, root); 9759 find mustExist(problem, interpretation, root);
10443}or{ 9760}or{
10444 find interpretation(problem,interpretation); 9761 find interpretation(problem,interpretation);
10445 find mustInstanceOfFunctionalElement_class(problem,interpretation,root); 9762 find mustInstanceOfFunction_class(problem,interpretation,root);
10446 find mustExist(problem, interpretation, root); 9763 find mustExist(problem, interpretation, root);
10447}or{ 9764}or{
10448 find interpretation(problem,interpretation); 9765 find interpretation(problem,interpretation);
10449 find mustInstanceOfFunctionalInput_class(problem,interpretation,root); 9766 find mustInstanceOfFunctionalInterface_class(problem,interpretation,root);
10450 find mustExist(problem, interpretation, root); 9767 find mustExist(problem, interpretation, root);
10451}or{ 9768}or{
10452 find interpretation(problem,interpretation); 9769 find interpretation(problem,interpretation);
10453 find mustInstanceOfFunctionalOutput_class(problem,interpretation,root); 9770 find mustInstanceOfFunctionalElement_class(problem,interpretation,root);
10454 find mustExist(problem, interpretation, root); 9771 find mustExist(problem, interpretation, root);
10455}or{ 9772}or{
10456 find interpretation(problem,interpretation); 9773 find interpretation(problem,interpretation);
@@ -10461,135 +9778,123 @@ private pattern hasElementInContainment(problem:LogicProblem, interpretation:Par
10461 find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,root); 9778 find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,root);
10462 find mustExist(problem, interpretation, root); 9779 find mustExist(problem, interpretation, root);
10463} 9780}
10464pattern createObject_FunctionalInterface_class_by_interface_reference_FunctionalElement_with_element_reference_FunctionalInterface( 9781pattern createObject_InformationLink_class_by_outgoingLinks_reference_FunctionalOutput_with_from_reference_InformationLink(
10465 problem:LogicProblem, interpretation:PartialInterpretation, 9782 problem:LogicProblem, interpretation:PartialInterpretation,
10466 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 9783 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
10467 container:DefinedElement) 9784 container:DefinedElement)
10468{ 9785{
10469 find interpretation(problem,interpretation); 9786 find interpretation(problem,interpretation);
10470 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 9787 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
10471 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class"); 9788 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class");
10472 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 9789 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
10473 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"interface reference FunctionalElement"); 9790 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"outgoingLinks reference FunctionalOutput");
10474 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 9791 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
10475 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"element reference FunctionalInterface"); 9792 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"from reference InformationLink");
10476 find mustInstanceOfFunctionalElement_class(problem,interpretation,container); 9793 find mustInstanceOfFunctionalOutput_class(problem,interpretation,container);
10477 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject); 9794 find mayInstanceOfInformationLink_class(problem,interpretation,newObject);
10478 find mayInRelationinterface_reference_FunctionalElement(problem,interpretation,container,newObject); 9795 find mayInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,container,newObject);
10479 find mustExist(problem, interpretation, container); 9796 find mustExist(problem, interpretation, container);
10480 neg find mustExist(problem, interpretation, newObject); 9797 neg find mustExist(problem, interpretation, newObject);
10481} 9798}
10482pattern createObject_FunctionalInterface_class( 9799pattern createObject_InformationLink_class(
10483 problem:LogicProblem, interpretation:PartialInterpretation, 9800 problem:LogicProblem, interpretation:PartialInterpretation,
10484 typeInterpretation:PartialComplexTypeInterpretation) 9801 typeInterpretation:PartialComplexTypeInterpretation)
10485{ 9802{
10486 find interpretation(problem,interpretation); 9803 find interpretation(problem,interpretation);
10487 neg find hasElementInContainment(problem,interpretation); 9804 neg find hasElementInContainment(problem,interpretation);
10488 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 9805 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
10489 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class"); 9806 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class");
10490 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject); 9807 find mayInstanceOfInformationLink_class(problem,interpretation,newObject);
10491 find mayExist(problem, interpretation, newObject); 9808 find mayExist(problem, interpretation, newObject);
10492 neg find mustExist(problem, interpretation, newObject); 9809 neg find mustExist(problem, interpretation, newObject);
10493} 9810}
10494pattern createObject_FunctionalInput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData( 9811pattern createObject_FunctionalOutput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData(
10495 problem:LogicProblem, interpretation:PartialInterpretation, 9812 problem:LogicProblem, interpretation:PartialInterpretation,
10496 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 9813 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
10497 container:DefinedElement) 9814 container:DefinedElement)
10498{ 9815{
10499 find interpretation(problem,interpretation); 9816 find interpretation(problem,interpretation);
10500 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 9817 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
10501 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class"); 9818 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class");
10502 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 9819 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
10503 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface"); 9820 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface");
10504 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 9821 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
10505 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData"); 9822 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData");
10506 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container); 9823 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container);
10507 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject); 9824 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject);
10508 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject); 9825 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject);
10509 find mustExist(problem, interpretation, container); 9826 find mustExist(problem, interpretation, container);
10510 neg find mustExist(problem, interpretation, newObject); 9827 neg find mustExist(problem, interpretation, newObject);
10511} 9828}
10512pattern createObject_FunctionalInput_class( 9829pattern createObject_FunctionalOutput_class(
10513 problem:LogicProblem, interpretation:PartialInterpretation,
10514 typeInterpretation:PartialComplexTypeInterpretation)
10515{
10516 find interpretation(problem,interpretation);
10517 neg find hasElementInContainment(problem,interpretation);
10518 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
10519 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class");
10520 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
10521 find mayExist(problem, interpretation, newObject);
10522 neg find mustExist(problem, interpretation, newObject);
10523}
10524pattern createObject_FunctionalArchitectureModel_class_UndefinedPart(
10525 problem:LogicProblem, interpretation:PartialInterpretation, 9830 problem:LogicProblem, interpretation:PartialInterpretation,
10526 typeInterpretation:PartialComplexTypeInterpretation) 9831 typeInterpretation:PartialComplexTypeInterpretation)
10527{ 9832{
10528 find interpretation(problem,interpretation); 9833 find interpretation(problem,interpretation);
10529 neg find hasElementInContainment(problem,interpretation); 9834 neg find hasElementInContainment(problem,interpretation);
10530 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 9835 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
10531 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalArchitectureModel class UndefinedPart"); 9836 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class");
10532 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,newObject); 9837 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject);
10533 find mayExist(problem, interpretation, newObject); 9838 find mayExist(problem, interpretation, newObject);
10534 neg find mustExist(problem, interpretation, newObject); 9839 neg find mustExist(problem, interpretation, newObject);
10535} 9840}
10536pattern createObject_InformationLink_class_by_outgoingLinks_reference_FunctionalOutput_with_from_reference_InformationLink( 9841pattern createObject_FunctionalInterface_class_by_interface_reference_FunctionalElement_with_element_reference_FunctionalInterface(
10537 problem:LogicProblem, interpretation:PartialInterpretation, 9842 problem:LogicProblem, interpretation:PartialInterpretation,
10538 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 9843 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
10539 container:DefinedElement) 9844 container:DefinedElement)
10540{ 9845{
10541 find interpretation(problem,interpretation); 9846 find interpretation(problem,interpretation);
10542 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 9847 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
10543 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class"); 9848 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
10544 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 9849 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
10545 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"outgoingLinks reference FunctionalOutput"); 9850 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"interface reference FunctionalElement");
10546 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 9851 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
10547 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"from reference InformationLink"); 9852 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"element reference FunctionalInterface");
10548 find mustInstanceOfFunctionalOutput_class(problem,interpretation,container); 9853 find mustInstanceOfFunctionalElement_class(problem,interpretation,container);
10549 find mayInstanceOfInformationLink_class(problem,interpretation,newObject); 9854 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
10550 find mayInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,container,newObject); 9855 find mayInRelationinterface_reference_FunctionalElement(problem,interpretation,container,newObject);
10551 find mustExist(problem, interpretation, container); 9856 find mustExist(problem, interpretation, container);
10552 neg find mustExist(problem, interpretation, newObject); 9857 neg find mustExist(problem, interpretation, newObject);
10553} 9858}
10554pattern createObject_InformationLink_class( 9859pattern createObject_FunctionalInterface_class(
10555 problem:LogicProblem, interpretation:PartialInterpretation, 9860 problem:LogicProblem, interpretation:PartialInterpretation,
10556 typeInterpretation:PartialComplexTypeInterpretation) 9861 typeInterpretation:PartialComplexTypeInterpretation)
10557{ 9862{
10558 find interpretation(problem,interpretation); 9863 find interpretation(problem,interpretation);
10559 neg find hasElementInContainment(problem,interpretation); 9864 neg find hasElementInContainment(problem,interpretation);
10560 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 9865 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
10561 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class"); 9866 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
10562 find mayInstanceOfInformationLink_class(problem,interpretation,newObject); 9867 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
10563 find mayExist(problem, interpretation, newObject); 9868 find mayExist(problem, interpretation, newObject);
10564 neg find mustExist(problem, interpretation, newObject); 9869 neg find mustExist(problem, interpretation, newObject);
10565} 9870}
10566pattern createObject_FunctionalOutput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData( 9871pattern createObject_FAMTerminator_class_by_terminator_reference_FunctionalData_with_data_reference_FAMTerminator(
10567 problem:LogicProblem, interpretation:PartialInterpretation, 9872 problem:LogicProblem, interpretation:PartialInterpretation,
10568 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 9873 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
10569 container:DefinedElement) 9874 container:DefinedElement)
10570{ 9875{
10571 find interpretation(problem,interpretation); 9876 find interpretation(problem,interpretation);
10572 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 9877 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
10573 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class"); 9878 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class");
10574 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 9879 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
10575 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface"); 9880 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"terminator reference FunctionalData");
10576 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 9881 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
10577 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData"); 9882 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"data reference FAMTerminator");
10578 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container); 9883 find mustInstanceOfFunctionalData_class(problem,interpretation,container);
10579 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject); 9884 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject);
10580 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject); 9885 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,container,newObject);
10581 find mustExist(problem, interpretation, container); 9886 find mustExist(problem, interpretation, container);
10582 neg find mustExist(problem, interpretation, newObject); 9887 neg find mustExist(problem, interpretation, newObject);
10583} 9888}
10584pattern createObject_FunctionalOutput_class( 9889pattern createObject_FAMTerminator_class(
10585 problem:LogicProblem, interpretation:PartialInterpretation, 9890 problem:LogicProblem, interpretation:PartialInterpretation,
10586 typeInterpretation:PartialComplexTypeInterpretation) 9891 typeInterpretation:PartialComplexTypeInterpretation)
10587{ 9892{
10588 find interpretation(problem,interpretation); 9893 find interpretation(problem,interpretation);
10589 neg find hasElementInContainment(problem,interpretation); 9894 neg find hasElementInContainment(problem,interpretation);
10590 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 9895 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
10591 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class"); 9896 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class");
10592 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject); 9897 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject);
10593 find mayExist(problem, interpretation, newObject); 9898 find mayExist(problem, interpretation, newObject);
10594 neg find mustExist(problem, interpretation, newObject); 9899 neg find mustExist(problem, interpretation, newObject);
10595} 9900}
@@ -10639,33 +9944,45 @@ pattern createObject_Function_class(
10639 find mayExist(problem, interpretation, newObject); 9944 find mayExist(problem, interpretation, newObject);
10640 neg find mustExist(problem, interpretation, newObject); 9945 neg find mustExist(problem, interpretation, newObject);
10641} 9946}
10642pattern createObject_FAMTerminator_class_by_terminator_reference_FunctionalData_with_data_reference_FAMTerminator( 9947pattern createObject_FunctionalInput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData(
10643 problem:LogicProblem, interpretation:PartialInterpretation, 9948 problem:LogicProblem, interpretation:PartialInterpretation,
10644 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 9949 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
10645 container:DefinedElement) 9950 container:DefinedElement)
10646{ 9951{
10647 find interpretation(problem,interpretation); 9952 find interpretation(problem,interpretation);
10648 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 9953 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
10649 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class"); 9954 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class");
10650 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 9955 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
10651 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"terminator reference FunctionalData"); 9956 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface");
10652 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 9957 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
10653 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"data reference FAMTerminator"); 9958 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData");
10654 find mustInstanceOfFunctionalData_class(problem,interpretation,container); 9959 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container);
10655 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject); 9960 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
10656 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,container,newObject); 9961 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject);
10657 find mustExist(problem, interpretation, container); 9962 find mustExist(problem, interpretation, container);
10658 neg find mustExist(problem, interpretation, newObject); 9963 neg find mustExist(problem, interpretation, newObject);
10659} 9964}
10660pattern createObject_FAMTerminator_class( 9965pattern createObject_FunctionalInput_class(
10661 problem:LogicProblem, interpretation:PartialInterpretation, 9966 problem:LogicProblem, interpretation:PartialInterpretation,
10662 typeInterpretation:PartialComplexTypeInterpretation) 9967 typeInterpretation:PartialComplexTypeInterpretation)
10663{ 9968{
10664 find interpretation(problem,interpretation); 9969 find interpretation(problem,interpretation);
10665 neg find hasElementInContainment(problem,interpretation); 9970 neg find hasElementInContainment(problem,interpretation);
10666 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 9971 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
10667 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class"); 9972 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class");
10668 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject); 9973 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
9974 find mayExist(problem, interpretation, newObject);
9975 neg find mustExist(problem, interpretation, newObject);
9976}
9977pattern createObject_FunctionalArchitectureModel_class_UndefinedPart(
9978 problem:LogicProblem, interpretation:PartialInterpretation,
9979 typeInterpretation:PartialComplexTypeInterpretation)
9980{
9981 find interpretation(problem,interpretation);
9982 neg find hasElementInContainment(problem,interpretation);
9983 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
9984 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalArchitectureModel class UndefinedPart");
9985 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,newObject);
10669 find mayExist(problem, interpretation, newObject); 9986 find mayExist(problem, interpretation, newObject);
10670 neg find mustExist(problem, interpretation, newObject); 9987 neg find mustExist(problem, interpretation, newObject);
10671} 9988}
@@ -10673,84 +9990,84 @@ pattern createObject_FAMTerminator_class(
10673////////// 9990//////////
10674// 4.2 Type refinement 9991// 4.2 Type refinement
10675////////// 9992//////////
10676pattern refineTypeTo_FunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 9993pattern refineTypeTo_InformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
10677 find interpretation(problem,interpretation); 9994 find interpretation(problem,interpretation);
10678 PartialInterpretation.newElements(interpretation,element); 9995 PartialInterpretation.newElements(interpretation,element);
10679 find mayInstanceOfFunctionalInterface_class(problem,interpretation,element); 9996 find mayInstanceOfInformationLink_class(problem,interpretation,element);
10680 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
10681 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
10682 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 9997 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
10683 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
10684 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 9998 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
9999 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
10000 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
10685 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 10001 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
10002 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
10686} 10003}
10687pattern refineTypeTo_FunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 10004pattern refineTypeTo_FunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
10688 find interpretation(problem,interpretation); 10005 find interpretation(problem,interpretation);
10689 PartialInterpretation.newElements(interpretation,element); 10006 PartialInterpretation.newElements(interpretation,element);
10690 find mayInstanceOfFunctionalInput_class(problem,interpretation,element); 10007 find mayInstanceOfFunctionalOutput_class(problem,interpretation,element);
10691 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
10692 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
10693 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
10694 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 10008 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
10695 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 10009 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
10010 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
10696 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 10011 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
10012 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
10697 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 10013 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
10014 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
10698} 10015}
10699pattern refineTypeTo_FunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 10016pattern refineTypeTo_FunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
10700 find interpretation(problem,interpretation); 10017 find interpretation(problem,interpretation);
10701 PartialInterpretation.newElements(interpretation,element); 10018 PartialInterpretation.newElements(interpretation,element);
10702 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); 10019 find mayInstanceOfFunctionalInterface_class(problem,interpretation,element);
10703 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
10704 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
10705 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 10020 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
10706 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 10021 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
10707 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 10022 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
10023 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
10708 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 10024 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
10025 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
10709} 10026}
10710pattern refineTypeTo_InformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 10027pattern refineTypeTo_FAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
10711 find interpretation(problem,interpretation); 10028 find interpretation(problem,interpretation);
10712 PartialInterpretation.newElements(interpretation,element); 10029 PartialInterpretation.newElements(interpretation,element);
10713 find mayInstanceOfInformationLink_class(problem,interpretation,element); 10030 find mayInstanceOfFAMTerminator_class(problem,interpretation,element);
10714 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
10715 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
10716 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 10031 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
10717 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 10032 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
10718 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 10033 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
10034 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
10719 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 10035 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
10036 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
10720} 10037}
10721pattern refineTypeTo_FunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 10038pattern refineTypeTo_Function_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
10722 find interpretation(problem,interpretation); 10039 find interpretation(problem,interpretation);
10723 PartialInterpretation.newElements(interpretation,element); 10040 PartialInterpretation.newElements(interpretation,element);
10724 find mayInstanceOfFunctionalOutput_class(problem,interpretation,element); 10041 find mayInstanceOfFunction_class(problem,interpretation,element);
10725 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); 10042 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
10726 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 10043 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
10727 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 10044 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
10728 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
10729 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
10730 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
10731 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 10045 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
10046 neg find mustInstanceOfFunction_class(problem,interpretation,element);
10047 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
10732} 10048}
10733pattern refineTypeTo_Function_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 10049pattern refineTypeTo_FunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
10734 find interpretation(problem,interpretation); 10050 find interpretation(problem,interpretation);
10735 PartialInterpretation.newElements(interpretation,element); 10051 PartialInterpretation.newElements(interpretation,element);
10736 find mayInstanceOfFunction_class(problem,interpretation,element); 10052 find mayInstanceOfFunctionalInput_class(problem,interpretation,element);
10053 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
10054 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
10737 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 10055 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
10056 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
10738 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 10057 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
10739 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 10058 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
10740 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
10741 neg find mustInstanceOfFunction_class(problem,interpretation,element);
10742 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 10059 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
10743} 10060}
10744pattern refineTypeTo_FAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 10061pattern refineTypeTo_FunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
10745 find interpretation(problem,interpretation); 10062 find interpretation(problem,interpretation);
10746 PartialInterpretation.newElements(interpretation,element); 10063 PartialInterpretation.newElements(interpretation,element);
10747 find mayInstanceOfFAMTerminator_class(problem,interpretation,element); 10064 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
10748 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
10749 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
10750 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 10065 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
10751 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 10066 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
10752 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 10067 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
10753 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 10068 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
10069 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
10070 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
10754} 10071}
10755 10072
10756////////// 10073//////////
@@ -10909,23 +10226,23 @@ private pattern mayInstanceOfFunctionalElement_class(problem:LogicProblem, inter
10909{ 10226{
10910 find interpretation(problem,interpretation); 10227 find interpretation(problem,interpretation);
10911 PartialInterpretation.newElements(interpretation,element); 10228 PartialInterpretation.newElements(interpretation,element);
10229 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
10230 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
10912 neg find mustInstanceOfFunction_class(problem,interpretation,element); 10231 neg find mustInstanceOfFunction_class(problem,interpretation,element);
10232 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
10913 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 10233 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
10914 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
10915 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 10234 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
10916 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
10917 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
10918 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation); 10235 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
10919 neg find isPrimitive(element); 10236 neg find isPrimitive(element);
10920} or { 10237} or {
10921 find interpretation(problem,interpretation); 10238 find interpretation(problem,interpretation);
10922 PartialInterpretation.openWorldElements(interpretation,element); 10239 PartialInterpretation.openWorldElements(interpretation,element);
10240 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
10241 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
10923 neg find mustInstanceOfFunction_class(problem,interpretation,element); 10242 neg find mustInstanceOfFunction_class(problem,interpretation,element);
10243 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
10924 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 10244 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
10925 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
10926 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 10245 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
10927 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
10928 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
10929 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation); 10246 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
10930 neg find isPrimitive(element); 10247 neg find isPrimitive(element);
10931} or 10248} or
@@ -10953,23 +10270,23 @@ private pattern mayInstanceOfFunctionalArchitectureModel_class(problem:LogicProb
10953{ 10270{
10954 find interpretation(problem,interpretation); 10271 find interpretation(problem,interpretation);
10955 PartialInterpretation.newElements(interpretation,element); 10272 PartialInterpretation.newElements(interpretation,element);
10956 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
10957 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
10958 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
10959 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); 10273 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
10960 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 10274 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
10961 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 10275 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
10276 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
10277 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
10278 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
10962 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation); 10279 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
10963 neg find isPrimitive(element); 10280 neg find isPrimitive(element);
10964} or { 10281} or {
10965 find interpretation(problem,interpretation); 10282 find interpretation(problem,interpretation);
10966 PartialInterpretation.openWorldElements(interpretation,element); 10283 PartialInterpretation.openWorldElements(interpretation,element);
10967 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
10968 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
10969 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
10970 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); 10284 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
10971 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 10285 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
10972 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 10286 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
10287 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
10288 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
10289 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
10973 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation); 10290 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
10974 neg find isPrimitive(element); 10291 neg find isPrimitive(element);
10975} or 10292} or
@@ -10997,21 +10314,21 @@ private pattern mayInstanceOfFunction_class(problem:LogicProblem, interpretation
10997{ 10314{
10998 find interpretation(problem,interpretation); 10315 find interpretation(problem,interpretation);
10999 PartialInterpretation.newElements(interpretation,element); 10316 PartialInterpretation.newElements(interpretation,element);
11000 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
11001 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
11002 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
11003 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 10317 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
10318 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
11004 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 10319 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
10320 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
10321 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
11005 neg find scopeDisallowsNewFunction_class(problem, interpretation); 10322 neg find scopeDisallowsNewFunction_class(problem, interpretation);
11006 neg find isPrimitive(element); 10323 neg find isPrimitive(element);
11007} or { 10324} or {
11008 find interpretation(problem,interpretation); 10325 find interpretation(problem,interpretation);
11009 PartialInterpretation.openWorldElements(interpretation,element); 10326 PartialInterpretation.openWorldElements(interpretation,element);
11010 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
11011 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
11012 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
11013 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 10327 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
10328 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
11014 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 10329 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
10330 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
10331 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
11015 neg find scopeDisallowsNewFunction_class(problem, interpretation); 10332 neg find scopeDisallowsNewFunction_class(problem, interpretation);
11016 neg find isPrimitive(element); 10333 neg find isPrimitive(element);
11017} or 10334} or
@@ -11039,21 +10356,21 @@ private pattern mayInstanceOfFAMTerminator_class(problem:LogicProblem, interpret
11039{ 10356{
11040 find interpretation(problem,interpretation); 10357 find interpretation(problem,interpretation);
11041 PartialInterpretation.newElements(interpretation,element); 10358 PartialInterpretation.newElements(interpretation,element);
11042 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
11043 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
11044 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 10359 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
11045 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
11046 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 10360 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
10361 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
10362 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
10363 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
11047 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation); 10364 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
11048 neg find isPrimitive(element); 10365 neg find isPrimitive(element);
11049} or { 10366} or {
11050 find interpretation(problem,interpretation); 10367 find interpretation(problem,interpretation);
11051 PartialInterpretation.openWorldElements(interpretation,element); 10368 PartialInterpretation.openWorldElements(interpretation,element);
11052 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
11053 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
11054 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 10369 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
11055 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
11056 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 10370 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
10371 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
10372 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
10373 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
11057 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation); 10374 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
11058 neg find isPrimitive(element); 10375 neg find isPrimitive(element);
11059} or 10376} or
@@ -11081,21 +10398,21 @@ private pattern mayInstanceOfInformationLink_class(problem:LogicProblem, interpr
11081{ 10398{
11082 find interpretation(problem,interpretation); 10399 find interpretation(problem,interpretation);
11083 PartialInterpretation.newElements(interpretation,element); 10400 PartialInterpretation.newElements(interpretation,element);
11084 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
11085 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
11086 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 10401 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
11087 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 10402 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
11088 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 10403 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
10404 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
10405 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
11089 neg find scopeDisallowsNewInformationLink_class(problem, interpretation); 10406 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
11090 neg find isPrimitive(element); 10407 neg find isPrimitive(element);
11091} or { 10408} or {
11092 find interpretation(problem,interpretation); 10409 find interpretation(problem,interpretation);
11093 PartialInterpretation.openWorldElements(interpretation,element); 10410 PartialInterpretation.openWorldElements(interpretation,element);
11094 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
11095 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
11096 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 10411 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
11097 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 10412 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
11098 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 10413 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
10414 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
10415 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
11099 neg find scopeDisallowsNewInformationLink_class(problem, interpretation); 10416 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
11100 neg find isPrimitive(element); 10417 neg find isPrimitive(element);
11101} or 10418} or
@@ -11123,21 +10440,21 @@ private pattern mayInstanceOfFunctionalInterface_class(problem:LogicProblem, int
11123{ 10440{
11124 find interpretation(problem,interpretation); 10441 find interpretation(problem,interpretation);
11125 PartialInterpretation.newElements(interpretation,element); 10442 PartialInterpretation.newElements(interpretation,element);
11126 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
11127 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
11128 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
11129 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 10443 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
10444 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
11130 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 10445 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
10446 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
10447 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
11131 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation); 10448 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
11132 neg find isPrimitive(element); 10449 neg find isPrimitive(element);
11133} or { 10450} or {
11134 find interpretation(problem,interpretation); 10451 find interpretation(problem,interpretation);
11135 PartialInterpretation.openWorldElements(interpretation,element); 10452 PartialInterpretation.openWorldElements(interpretation,element);
11136 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
11137 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
11138 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
11139 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 10453 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
10454 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
11140 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 10455 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
10456 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
10457 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
11141 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation); 10458 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
11142 neg find isPrimitive(element); 10459 neg find isPrimitive(element);
11143} or 10460} or
@@ -11165,23 +10482,23 @@ private pattern mayInstanceOfFunctionalInput_class(problem:LogicProblem, interpr
11165{ 10482{
11166 find interpretation(problem,interpretation); 10483 find interpretation(problem,interpretation);
11167 PartialInterpretation.newElements(interpretation,element); 10484 PartialInterpretation.newElements(interpretation,element);
11168 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 10485 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
11169 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 10486 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
10487 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
11170 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 10488 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
11171 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
11172 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 10489 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
11173 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 10490 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
11174 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation); 10491 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
11175 neg find isPrimitive(element); 10492 neg find isPrimitive(element);
11176} or { 10493} or {
11177 find interpretation(problem,interpretation); 10494 find interpretation(problem,interpretation);
11178 PartialInterpretation.openWorldElements(interpretation,element); 10495 PartialInterpretation.openWorldElements(interpretation,element);
11179 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 10496 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
11180 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 10497 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
10498 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
11181 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 10499 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
11182 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
11183 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 10500 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
11184 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 10501 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
11185 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation); 10502 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
11186 neg find isPrimitive(element); 10503 neg find isPrimitive(element);
11187} or 10504} or
@@ -11209,23 +10526,23 @@ private pattern mayInstanceOfFunctionalOutput_class(problem:LogicProblem, interp
11209{ 10526{
11210 find interpretation(problem,interpretation); 10527 find interpretation(problem,interpretation);
11211 PartialInterpretation.newElements(interpretation,element); 10528 PartialInterpretation.newElements(interpretation,element);
11212 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
11213 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
11214 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
11215 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 10529 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
11216 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 10530 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
11217 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 10531 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
10532 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
10533 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
10534 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
11218 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation); 10535 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
11219 neg find isPrimitive(element); 10536 neg find isPrimitive(element);
11220} or { 10537} or {
11221 find interpretation(problem,interpretation); 10538 find interpretation(problem,interpretation);
11222 PartialInterpretation.openWorldElements(interpretation,element); 10539 PartialInterpretation.openWorldElements(interpretation,element);
11223 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
11224 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
11225 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
11226 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 10540 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
11227 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 10541 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
11228 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 10542 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
10543 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
10544 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
10545 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
11229 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation); 10546 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
11230 neg find isPrimitive(element); 10547 neg find isPrimitive(element);
11231} or 10548} or
@@ -11253,25 +10570,25 @@ private pattern mayInstanceOfFunctionalData_class(problem:LogicProblem, interpre
11253{ 10570{
11254 find interpretation(problem,interpretation); 10571 find interpretation(problem,interpretation);
11255 PartialInterpretation.newElements(interpretation,element); 10572 PartialInterpretation.newElements(interpretation,element);
11256 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
11257 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
11258 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
11259 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
11260 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 10573 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
11261 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 10574 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
11262 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 10575 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
10576 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
10577 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
10578 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
10579 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
11263 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation); 10580 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
11264 neg find isPrimitive(element); 10581 neg find isPrimitive(element);
11265} or { 10582} or {
11266 find interpretation(problem,interpretation); 10583 find interpretation(problem,interpretation);
11267 PartialInterpretation.openWorldElements(interpretation,element); 10584 PartialInterpretation.openWorldElements(interpretation,element);
11268 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
11269 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
11270 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
11271 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
11272 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 10585 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
11273 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 10586 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
11274 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 10587 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
10588 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
10589 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
10590 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
10591 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
11275 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation); 10592 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
11276 neg find isPrimitive(element); 10593 neg find isPrimitive(element);
11277} or 10594} or
@@ -11341,21 +10658,21 @@ private pattern mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(pro
11341{ 10658{
11342 find interpretation(problem,interpretation); 10659 find interpretation(problem,interpretation);
11343 PartialInterpretation.newElements(interpretation,element); 10660 PartialInterpretation.newElements(interpretation,element);
11344 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
11345 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 10661 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
11346 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
11347 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
11348 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 10662 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
10663 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
10664 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
10665 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
11349 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation); 10666 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation);
11350 neg find isPrimitive(element); 10667 neg find isPrimitive(element);
11351} or { 10668} or {
11352 find interpretation(problem,interpretation); 10669 find interpretation(problem,interpretation);
11353 PartialInterpretation.openWorldElements(interpretation,element); 10670 PartialInterpretation.openWorldElements(interpretation,element);
11354 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
11355 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 10671 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
11356 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
11357 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
11358 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 10672 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
10673 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
10674 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
10675 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
11359 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation); 10676 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation);
11360 neg find isPrimitive(element); 10677 neg find isPrimitive(element);
11361} or 10678} or
@@ -12037,15 +11354,15 @@ pattern unfinishedLowerMultiplicity_type_attribute_Function(problem:LogicProblem
12037private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation) 11354private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation)
12038{ 11355{
12039 find interpretation(problem,interpretation); 11356 find interpretation(problem,interpretation);
12040 find mustInstanceOfFunctionalOutput_class(problem,interpretation,root); 11357 find mustInstanceOfInformationLink_class(problem,interpretation,root);
12041 find mustExist(problem, interpretation, root); 11358 find mustExist(problem, interpretation, root);
12042}or{ 11359}or{
12043 find interpretation(problem,interpretation); 11360 find interpretation(problem,interpretation);
12044 find mustInstanceOfFunctionalElement_class(problem,interpretation,root); 11361 find mustInstanceOfFunctionalOutput_class(problem,interpretation,root);
12045 find mustExist(problem, interpretation, root); 11362 find mustExist(problem, interpretation, root);
12046}or{ 11363}or{
12047 find interpretation(problem,interpretation); 11364 find interpretation(problem,interpretation);
12048 find mustInstanceOfFunctionalInterface_class(problem,interpretation,root); 11365 find mustInstanceOfFunctionalInput_class(problem,interpretation,root);
12049 find mustExist(problem, interpretation, root); 11366 find mustExist(problem, interpretation, root);
12050}or{ 11367}or{
12051 find interpretation(problem,interpretation); 11368 find interpretation(problem,interpretation);
@@ -12053,23 +11370,23 @@ private pattern hasElementInContainment(problem:LogicProblem, interpretation:Par
12053 find mustExist(problem, interpretation, root); 11370 find mustExist(problem, interpretation, root);
12054}or{ 11371}or{
12055 find interpretation(problem,interpretation); 11372 find interpretation(problem,interpretation);
12056 find mustInstanceOfFunctionalInput_class(problem,interpretation,root); 11373 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,root);
12057 find mustExist(problem, interpretation, root); 11374 find mustExist(problem, interpretation, root);
12058}or{ 11375}or{
12059 find interpretation(problem,interpretation); 11376 find interpretation(problem,interpretation);
12060 find mustInstanceOfInformationLink_class(problem,interpretation,root); 11377 find mustInstanceOfFAMTerminator_class(problem,interpretation,root);
12061 find mustExist(problem, interpretation, root); 11378 find mustExist(problem, interpretation, root);
12062}or{ 11379}or{
12063 find interpretation(problem,interpretation); 11380 find interpretation(problem,interpretation);
12064 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,root); 11381 find mustInstanceOfFunction_class(problem,interpretation,root);
12065 find mustExist(problem, interpretation, root); 11382 find mustExist(problem, interpretation, root);
12066}or{ 11383}or{
12067 find interpretation(problem,interpretation); 11384 find interpretation(problem,interpretation);
12068 find mustInstanceOfFAMTerminator_class(problem,interpretation,root); 11385 find mustInstanceOfFunctionalInterface_class(problem,interpretation,root);
12069 find mustExist(problem, interpretation, root); 11386 find mustExist(problem, interpretation, root);
12070}or{ 11387}or{
12071 find interpretation(problem,interpretation); 11388 find interpretation(problem,interpretation);
12072 find mustInstanceOfFunction_class(problem,interpretation,root); 11389 find mustInstanceOfFunctionalElement_class(problem,interpretation,root);
12073 find mustExist(problem, interpretation, root); 11390 find mustExist(problem, interpretation, root);
12074}or{ 11391}or{
12075 find interpretation(problem,interpretation); 11392 find interpretation(problem,interpretation);
@@ -12080,211 +11397,211 @@ private pattern hasElementInContainment(problem:LogicProblem, interpretation:Par
12080 find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,root); 11397 find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,root);
12081 find mustExist(problem, interpretation, root); 11398 find mustExist(problem, interpretation, root);
12082} 11399}
12083pattern createObject_Function_class_by_rootElements_reference_FunctionalArchitectureModel( 11400pattern createObject_FunctionalArchitectureModel_class_UndefinedPart(
12084 problem:LogicProblem, interpretation:PartialInterpretation, 11401 problem:LogicProblem, interpretation:PartialInterpretation,
12085 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 11402 typeInterpretation:PartialComplexTypeInterpretation)
12086 container:DefinedElement)
12087{ 11403{
12088 find interpretation(problem,interpretation); 11404 find interpretation(problem,interpretation);
11405 neg find hasElementInContainment(problem,interpretation);
12089 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 11406 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
12090 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class"); 11407 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalArchitectureModel class UndefinedPart");
12091 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 11408 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,newObject);
12092 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"rootElements reference FunctionalArchitectureModel"); 11409 find mayExist(problem, interpretation, newObject);
12093 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,container);
12094 find mayInstanceOfFunction_class(problem,interpretation,newObject);
12095 find mayInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,container,newObject);
12096 find mustExist(problem, interpretation, container);
12097 neg find mustExist(problem, interpretation, newObject); 11410 neg find mustExist(problem, interpretation, newObject);
12098} 11411}
12099pattern createObject_Function_class_by_subElements_reference_Function_with_parent_reference_FunctionalElement( 11412pattern createObject_FAMTerminator_class_by_terminator_reference_FunctionalData_with_data_reference_FAMTerminator(
12100 problem:LogicProblem, interpretation:PartialInterpretation, 11413 problem:LogicProblem, interpretation:PartialInterpretation,
12101 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 11414 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
12102 container:DefinedElement) 11415 container:DefinedElement)
12103{ 11416{
12104 find interpretation(problem,interpretation); 11417 find interpretation(problem,interpretation);
12105 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 11418 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
12106 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class"); 11419 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class");
12107 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 11420 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
12108 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"subElements reference Function"); 11421 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"terminator reference FunctionalData");
12109 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 11422 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
12110 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"parent reference FunctionalElement"); 11423 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"data reference FAMTerminator");
12111 find mustInstanceOfFunction_class(problem,interpretation,container); 11424 find mustInstanceOfFunctionalData_class(problem,interpretation,container);
12112 find mayInstanceOfFunction_class(problem,interpretation,newObject); 11425 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject);
12113 find mayInRelationsubElements_reference_Function(problem,interpretation,container,newObject); 11426 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,container,newObject);
12114 find mustExist(problem, interpretation, container); 11427 find mustExist(problem, interpretation, container);
12115 neg find mustExist(problem, interpretation, newObject); 11428 neg find mustExist(problem, interpretation, newObject);
12116} 11429}
12117pattern createObject_Function_class( 11430pattern createObject_FAMTerminator_class(
12118 problem:LogicProblem, interpretation:PartialInterpretation, 11431 problem:LogicProblem, interpretation:PartialInterpretation,
12119 typeInterpretation:PartialComplexTypeInterpretation) 11432 typeInterpretation:PartialComplexTypeInterpretation)
12120{ 11433{
12121 find interpretation(problem,interpretation); 11434 find interpretation(problem,interpretation);
12122 neg find hasElementInContainment(problem,interpretation); 11435 neg find hasElementInContainment(problem,interpretation);
12123 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 11436 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
11437 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class");
11438 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject);
11439 find mayExist(problem, interpretation, newObject);
11440 neg find mustExist(problem, interpretation, newObject);
11441}
11442pattern createObject_Function_class_by_rootElements_reference_FunctionalArchitectureModel(
11443 problem:LogicProblem, interpretation:PartialInterpretation,
11444 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
11445 container:DefinedElement)
11446{
11447 find interpretation(problem,interpretation);
11448 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
12124 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class"); 11449 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class");
11450 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
11451 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"rootElements reference FunctionalArchitectureModel");
11452 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,container);
12125 find mayInstanceOfFunction_class(problem,interpretation,newObject); 11453 find mayInstanceOfFunction_class(problem,interpretation,newObject);
12126 find mayExist(problem, interpretation, newObject); 11454 find mayInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,container,newObject);
11455 find mustExist(problem, interpretation, container);
12127 neg find mustExist(problem, interpretation, newObject); 11456 neg find mustExist(problem, interpretation, newObject);
12128} 11457}
12129pattern createObject_InformationLink_class_by_outgoingLinks_reference_FunctionalOutput_with_from_reference_InformationLink( 11458pattern createObject_Function_class_by_subElements_reference_Function_with_parent_reference_FunctionalElement(
12130 problem:LogicProblem, interpretation:PartialInterpretation, 11459 problem:LogicProblem, interpretation:PartialInterpretation,
12131 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 11460 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
12132 container:DefinedElement) 11461 container:DefinedElement)
12133{ 11462{
12134 find interpretation(problem,interpretation); 11463 find interpretation(problem,interpretation);
12135 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 11464 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
12136 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class"); 11465 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class");
12137 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 11466 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
12138 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"outgoingLinks reference FunctionalOutput"); 11467 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"subElements reference Function");
12139 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 11468 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
12140 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"from reference InformationLink"); 11469 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"parent reference FunctionalElement");
12141 find mustInstanceOfFunctionalOutput_class(problem,interpretation,container); 11470 find mustInstanceOfFunction_class(problem,interpretation,container);
12142 find mayInstanceOfInformationLink_class(problem,interpretation,newObject); 11471 find mayInstanceOfFunction_class(problem,interpretation,newObject);
12143 find mayInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,container,newObject); 11472 find mayInRelationsubElements_reference_Function(problem,interpretation,container,newObject);
12144 find mustExist(problem, interpretation, container); 11473 find mustExist(problem, interpretation, container);
12145 neg find mustExist(problem, interpretation, newObject); 11474 neg find mustExist(problem, interpretation, newObject);
12146} 11475}
12147pattern createObject_InformationLink_class( 11476pattern createObject_Function_class(
12148 problem:LogicProblem, interpretation:PartialInterpretation, 11477 problem:LogicProblem, interpretation:PartialInterpretation,
12149 typeInterpretation:PartialComplexTypeInterpretation) 11478 typeInterpretation:PartialComplexTypeInterpretation)
12150{ 11479{
12151 find interpretation(problem,interpretation); 11480 find interpretation(problem,interpretation);
12152 neg find hasElementInContainment(problem,interpretation); 11481 neg find hasElementInContainment(problem,interpretation);
12153 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 11482 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
12154 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class"); 11483 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class");
12155 find mayInstanceOfInformationLink_class(problem,interpretation,newObject); 11484 find mayInstanceOfFunction_class(problem,interpretation,newObject);
12156 find mayExist(problem, interpretation, newObject); 11485 find mayExist(problem, interpretation, newObject);
12157 neg find mustExist(problem, interpretation, newObject); 11486 neg find mustExist(problem, interpretation, newObject);
12158} 11487}
12159pattern createObject_FAMTerminator_class_by_terminator_reference_FunctionalData_with_data_reference_FAMTerminator( 11488pattern createObject_FunctionalInterface_class_by_interface_reference_FunctionalElement_with_element_reference_FunctionalInterface(
12160 problem:LogicProblem, interpretation:PartialInterpretation, 11489 problem:LogicProblem, interpretation:PartialInterpretation,
12161 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 11490 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
12162 container:DefinedElement) 11491 container:DefinedElement)
12163{ 11492{
12164 find interpretation(problem,interpretation); 11493 find interpretation(problem,interpretation);
12165 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 11494 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
12166 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class"); 11495 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
12167 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 11496 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
12168 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"terminator reference FunctionalData"); 11497 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"interface reference FunctionalElement");
12169 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 11498 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
12170 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"data reference FAMTerminator"); 11499 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"element reference FunctionalInterface");
12171 find mustInstanceOfFunctionalData_class(problem,interpretation,container); 11500 find mustInstanceOfFunctionalElement_class(problem,interpretation,container);
12172 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject); 11501 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
12173 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,container,newObject); 11502 find mayInRelationinterface_reference_FunctionalElement(problem,interpretation,container,newObject);
12174 find mustExist(problem, interpretation, container); 11503 find mustExist(problem, interpretation, container);
12175 neg find mustExist(problem, interpretation, newObject); 11504 neg find mustExist(problem, interpretation, newObject);
12176} 11505}
12177pattern createObject_FAMTerminator_class( 11506pattern createObject_FunctionalInterface_class(
12178 problem:LogicProblem, interpretation:PartialInterpretation, 11507 problem:LogicProblem, interpretation:PartialInterpretation,
12179 typeInterpretation:PartialComplexTypeInterpretation) 11508 typeInterpretation:PartialComplexTypeInterpretation)
12180{ 11509{
12181 find interpretation(problem,interpretation); 11510 find interpretation(problem,interpretation);
12182 neg find hasElementInContainment(problem,interpretation); 11511 neg find hasElementInContainment(problem,interpretation);
12183 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 11512 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
12184 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class"); 11513 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
12185 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject); 11514 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
12186 find mayExist(problem, interpretation, newObject); 11515 find mayExist(problem, interpretation, newObject);
12187 neg find mustExist(problem, interpretation, newObject); 11516 neg find mustExist(problem, interpretation, newObject);
12188} 11517}
12189pattern createObject_FunctionalInput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData( 11518pattern createObject_FunctionalOutput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData(
12190 problem:LogicProblem, interpretation:PartialInterpretation, 11519 problem:LogicProblem, interpretation:PartialInterpretation,
12191 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 11520 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
12192 container:DefinedElement) 11521 container:DefinedElement)
12193{ 11522{
12194 find interpretation(problem,interpretation); 11523 find interpretation(problem,interpretation);
12195 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 11524 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
12196 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class"); 11525 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class");
12197 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 11526 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
12198 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface"); 11527 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface");
12199 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 11528 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
12200 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData"); 11529 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData");
12201 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container); 11530 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container);
12202 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject); 11531 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject);
12203 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject); 11532 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject);
12204 find mustExist(problem, interpretation, container); 11533 find mustExist(problem, interpretation, container);
12205 neg find mustExist(problem, interpretation, newObject); 11534 neg find mustExist(problem, interpretation, newObject);
12206} 11535}
12207pattern createObject_FunctionalInput_class( 11536pattern createObject_FunctionalOutput_class(
12208 problem:LogicProblem, interpretation:PartialInterpretation,
12209 typeInterpretation:PartialComplexTypeInterpretation)
12210{
12211 find interpretation(problem,interpretation);
12212 neg find hasElementInContainment(problem,interpretation);
12213 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
12214 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class");
12215 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
12216 find mayExist(problem, interpretation, newObject);
12217 neg find mustExist(problem, interpretation, newObject);
12218}
12219pattern createObject_FunctionalArchitectureModel_class_UndefinedPart(
12220 problem:LogicProblem, interpretation:PartialInterpretation, 11537 problem:LogicProblem, interpretation:PartialInterpretation,
12221 typeInterpretation:PartialComplexTypeInterpretation) 11538 typeInterpretation:PartialComplexTypeInterpretation)
12222{ 11539{
12223 find interpretation(problem,interpretation); 11540 find interpretation(problem,interpretation);
12224 neg find hasElementInContainment(problem,interpretation); 11541 neg find hasElementInContainment(problem,interpretation);
12225 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 11542 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
12226 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalArchitectureModel class UndefinedPart"); 11543 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class");
12227 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,newObject); 11544 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject);
12228 find mayExist(problem, interpretation, newObject); 11545 find mayExist(problem, interpretation, newObject);
12229 neg find mustExist(problem, interpretation, newObject); 11546 neg find mustExist(problem, interpretation, newObject);
12230} 11547}
12231pattern createObject_FunctionalOutput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData( 11548pattern createObject_InformationLink_class_by_outgoingLinks_reference_FunctionalOutput_with_from_reference_InformationLink(
12232 problem:LogicProblem, interpretation:PartialInterpretation, 11549 problem:LogicProblem, interpretation:PartialInterpretation,
12233 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 11550 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
12234 container:DefinedElement) 11551 container:DefinedElement)
12235{ 11552{
12236 find interpretation(problem,interpretation); 11553 find interpretation(problem,interpretation);
12237 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 11554 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
12238 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class"); 11555 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class");
12239 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 11556 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
12240 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface"); 11557 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"outgoingLinks reference FunctionalOutput");
12241 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 11558 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
12242 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData"); 11559 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"from reference InformationLink");
12243 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container); 11560 find mustInstanceOfFunctionalOutput_class(problem,interpretation,container);
12244 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject); 11561 find mayInstanceOfInformationLink_class(problem,interpretation,newObject);
12245 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject); 11562 find mayInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,container,newObject);
12246 find mustExist(problem, interpretation, container); 11563 find mustExist(problem, interpretation, container);
12247 neg find mustExist(problem, interpretation, newObject); 11564 neg find mustExist(problem, interpretation, newObject);
12248} 11565}
12249pattern createObject_FunctionalOutput_class( 11566pattern createObject_InformationLink_class(
12250 problem:LogicProblem, interpretation:PartialInterpretation, 11567 problem:LogicProblem, interpretation:PartialInterpretation,
12251 typeInterpretation:PartialComplexTypeInterpretation) 11568 typeInterpretation:PartialComplexTypeInterpretation)
12252{ 11569{
12253 find interpretation(problem,interpretation); 11570 find interpretation(problem,interpretation);
12254 neg find hasElementInContainment(problem,interpretation); 11571 neg find hasElementInContainment(problem,interpretation);
12255 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 11572 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
12256 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class"); 11573 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class");
12257 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject); 11574 find mayInstanceOfInformationLink_class(problem,interpretation,newObject);
12258 find mayExist(problem, interpretation, newObject); 11575 find mayExist(problem, interpretation, newObject);
12259 neg find mustExist(problem, interpretation, newObject); 11576 neg find mustExist(problem, interpretation, newObject);
12260} 11577}
12261pattern createObject_FunctionalInterface_class_by_interface_reference_FunctionalElement_with_element_reference_FunctionalInterface( 11578pattern createObject_FunctionalInput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData(
12262 problem:LogicProblem, interpretation:PartialInterpretation, 11579 problem:LogicProblem, interpretation:PartialInterpretation,
12263 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 11580 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
12264 container:DefinedElement) 11581 container:DefinedElement)
12265{ 11582{
12266 find interpretation(problem,interpretation); 11583 find interpretation(problem,interpretation);
12267 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 11584 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
12268 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class"); 11585 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class");
12269 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 11586 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
12270 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"interface reference FunctionalElement"); 11587 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface");
12271 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 11588 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
12272 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"element reference FunctionalInterface"); 11589 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData");
12273 find mustInstanceOfFunctionalElement_class(problem,interpretation,container); 11590 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container);
12274 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject); 11591 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
12275 find mayInRelationinterface_reference_FunctionalElement(problem,interpretation,container,newObject); 11592 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject);
12276 find mustExist(problem, interpretation, container); 11593 find mustExist(problem, interpretation, container);
12277 neg find mustExist(problem, interpretation, newObject); 11594 neg find mustExist(problem, interpretation, newObject);
12278} 11595}
12279pattern createObject_FunctionalInterface_class( 11596pattern createObject_FunctionalInput_class(
12280 problem:LogicProblem, interpretation:PartialInterpretation, 11597 problem:LogicProblem, interpretation:PartialInterpretation,
12281 typeInterpretation:PartialComplexTypeInterpretation) 11598 typeInterpretation:PartialComplexTypeInterpretation)
12282{ 11599{
12283 find interpretation(problem,interpretation); 11600 find interpretation(problem,interpretation);
12284 neg find hasElementInContainment(problem,interpretation); 11601 neg find hasElementInContainment(problem,interpretation);
12285 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 11602 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
12286 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class"); 11603 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class");
12287 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject); 11604 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
12288 find mayExist(problem, interpretation, newObject); 11605 find mayExist(problem, interpretation, newObject);
12289 neg find mustExist(problem, interpretation, newObject); 11606 neg find mustExist(problem, interpretation, newObject);
12290} 11607}
@@ -12292,84 +11609,84 @@ pattern createObject_FunctionalInterface_class(
12292////////// 11609//////////
12293// 4.2 Type refinement 11610// 4.2 Type refinement
12294////////// 11611//////////
12295pattern refineTypeTo_Function_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 11612pattern refineTypeTo_FunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
12296 find interpretation(problem,interpretation); 11613 find interpretation(problem,interpretation);
12297 PartialInterpretation.newElements(interpretation,element); 11614 PartialInterpretation.newElements(interpretation,element);
12298 find mayInstanceOfFunction_class(problem,interpretation,element); 11615 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
12299 neg find mustInstanceOfFunction_class(problem,interpretation,element); 11616 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
12300 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
12301 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 11617 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
12302 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 11618 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
12303 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
12304 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 11619 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
12305}
12306pattern refineTypeTo_InformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
12307 find interpretation(problem,interpretation);
12308 PartialInterpretation.newElements(interpretation,element);
12309 find mayInstanceOfInformationLink_class(problem,interpretation,element);
12310 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 11620 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
12311 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
12312 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 11621 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
12313 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
12314 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
12315 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
12316} 11622}
12317pattern refineTypeTo_FAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 11623pattern refineTypeTo_FAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
12318 find interpretation(problem,interpretation); 11624 find interpretation(problem,interpretation);
12319 PartialInterpretation.newElements(interpretation,element); 11625 PartialInterpretation.newElements(interpretation,element);
12320 find mayInstanceOfFAMTerminator_class(problem,interpretation,element); 11626 find mayInstanceOfFAMTerminator_class(problem,interpretation,element);
12321 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
12322 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
12323 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
12324 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 11627 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
12325 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 11628 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
12326 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 11629 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
11630 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
11631 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
11632 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
12327} 11633}
12328pattern refineTypeTo_FunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 11634pattern refineTypeTo_Function_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
12329 find interpretation(problem,interpretation); 11635 find interpretation(problem,interpretation);
12330 PartialInterpretation.newElements(interpretation,element); 11636 PartialInterpretation.newElements(interpretation,element);
12331 find mayInstanceOfFunctionalInput_class(problem,interpretation,element); 11637 find mayInstanceOfFunction_class(problem,interpretation,element);
12332 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
12333 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
12334 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
12335 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
12336 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 11638 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
11639 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
11640 neg find mustInstanceOfFunction_class(problem,interpretation,element);
12337 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 11641 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
12338 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 11642 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
11643 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
12339} 11644}
12340pattern refineTypeTo_FunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 11645pattern refineTypeTo_FunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
12341 find interpretation(problem,interpretation); 11646 find interpretation(problem,interpretation);
12342 PartialInterpretation.newElements(interpretation,element); 11647 PartialInterpretation.newElements(interpretation,element);
12343 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); 11648 find mayInstanceOfFunctionalInterface_class(problem,interpretation,element);
12344 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 11649 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
12345 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 11650 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
12346 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
12347 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
12348 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
12349 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 11651 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
11652 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
11653 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
11654 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
12350} 11655}
12351pattern refineTypeTo_FunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 11656pattern refineTypeTo_FunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
12352 find interpretation(problem,interpretation); 11657 find interpretation(problem,interpretation);
12353 PartialInterpretation.newElements(interpretation,element); 11658 PartialInterpretation.newElements(interpretation,element);
12354 find mayInstanceOfFunctionalOutput_class(problem,interpretation,element); 11659 find mayInstanceOfFunctionalOutput_class(problem,interpretation,element);
12355 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 11660 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
12356 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 11661 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
12357 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); 11662 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
12358 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 11663 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
12359 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
12360 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 11664 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
12361 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 11665 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
11666 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
12362} 11667}
12363pattern refineTypeTo_FunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 11668pattern refineTypeTo_InformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
12364 find interpretation(problem,interpretation); 11669 find interpretation(problem,interpretation);
12365 PartialInterpretation.newElements(interpretation,element); 11670 PartialInterpretation.newElements(interpretation,element);
12366 find mayInstanceOfFunctionalInterface_class(problem,interpretation,element); 11671 find mayInstanceOfInformationLink_class(problem,interpretation,element);
12367 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 11672 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
12368 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 11673 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
11674 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
11675 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
11676 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
12369 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 11677 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
11678}
11679pattern refineTypeTo_FunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
11680 find interpretation(problem,interpretation);
11681 PartialInterpretation.newElements(interpretation,element);
11682 find mayInstanceOfFunctionalInput_class(problem,interpretation,element);
12370 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 11683 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
12371 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 11684 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
12372 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 11685 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
11686 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
11687 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
11688 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
11689 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
12373} 11690}
12374 11691
12375////////// 11692//////////
@@ -12528,23 +11845,23 @@ private pattern mayInstanceOfFunctionalElement_class(problem:LogicProblem, inter
12528{ 11845{
12529 find interpretation(problem,interpretation); 11846 find interpretation(problem,interpretation);
12530 PartialInterpretation.newElements(interpretation,element); 11847 PartialInterpretation.newElements(interpretation,element);
12531 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
12532 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
12533 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
12534 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
12535 neg find mustInstanceOfFunction_class(problem,interpretation,element); 11848 neg find mustInstanceOfFunction_class(problem,interpretation,element);
11849 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
11850 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
12536 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 11851 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
11852 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
11853 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
12537 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation); 11854 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
12538 neg find isPrimitive(element); 11855 neg find isPrimitive(element);
12539} or { 11856} or {
12540 find interpretation(problem,interpretation); 11857 find interpretation(problem,interpretation);
12541 PartialInterpretation.openWorldElements(interpretation,element); 11858 PartialInterpretation.openWorldElements(interpretation,element);
12542 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
12543 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
12544 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
12545 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
12546 neg find mustInstanceOfFunction_class(problem,interpretation,element); 11859 neg find mustInstanceOfFunction_class(problem,interpretation,element);
11860 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
11861 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
12547 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 11862 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
11863 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
11864 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
12548 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation); 11865 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
12549 neg find isPrimitive(element); 11866 neg find isPrimitive(element);
12550} or 11867} or
@@ -12572,22 +11889,22 @@ private pattern mayInstanceOfFunctionalArchitectureModel_class(problem:LogicProb
12572{ 11889{
12573 find interpretation(problem,interpretation); 11890 find interpretation(problem,interpretation);
12574 PartialInterpretation.newElements(interpretation,element); 11891 PartialInterpretation.newElements(interpretation,element);
12575 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
12576 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
12577 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 11892 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
12578 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 11893 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
12579 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 11894 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
11895 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
11896 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
12580 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); 11897 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
12581 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation); 11898 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
12582 neg find isPrimitive(element); 11899 neg find isPrimitive(element);
12583} or { 11900} or {
12584 find interpretation(problem,interpretation); 11901 find interpretation(problem,interpretation);
12585 PartialInterpretation.openWorldElements(interpretation,element); 11902 PartialInterpretation.openWorldElements(interpretation,element);
12586 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
12587 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
12588 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 11903 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
12589 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 11904 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
12590 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 11905 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
11906 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
11907 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
12591 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); 11908 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
12592 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation); 11909 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
12593 neg find isPrimitive(element); 11910 neg find isPrimitive(element);
@@ -12616,21 +11933,21 @@ private pattern mayInstanceOfFunction_class(problem:LogicProblem, interpretation
12616{ 11933{
12617 find interpretation(problem,interpretation); 11934 find interpretation(problem,interpretation);
12618 PartialInterpretation.newElements(interpretation,element); 11935 PartialInterpretation.newElements(interpretation,element);
12619 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
12620 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
12621 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
12622 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 11936 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
11937 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
12623 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 11938 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
11939 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
11940 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
12624 neg find scopeDisallowsNewFunction_class(problem, interpretation); 11941 neg find scopeDisallowsNewFunction_class(problem, interpretation);
12625 neg find isPrimitive(element); 11942 neg find isPrimitive(element);
12626} or { 11943} or {
12627 find interpretation(problem,interpretation); 11944 find interpretation(problem,interpretation);
12628 PartialInterpretation.openWorldElements(interpretation,element); 11945 PartialInterpretation.openWorldElements(interpretation,element);
12629 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
12630 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
12631 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
12632 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 11946 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
11947 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
12633 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 11948 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
11949 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
11950 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
12634 neg find scopeDisallowsNewFunction_class(problem, interpretation); 11951 neg find scopeDisallowsNewFunction_class(problem, interpretation);
12635 neg find isPrimitive(element); 11952 neg find isPrimitive(element);
12636} or 11953} or
@@ -12658,21 +11975,21 @@ private pattern mayInstanceOfFAMTerminator_class(problem:LogicProblem, interpret
12658{ 11975{
12659 find interpretation(problem,interpretation); 11976 find interpretation(problem,interpretation);
12660 PartialInterpretation.newElements(interpretation,element); 11977 PartialInterpretation.newElements(interpretation,element);
12661 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
12662 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
12663 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
12664 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 11978 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
11979 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
11980 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
12665 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 11981 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
11982 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
12666 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation); 11983 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
12667 neg find isPrimitive(element); 11984 neg find isPrimitive(element);
12668} or { 11985} or {
12669 find interpretation(problem,interpretation); 11986 find interpretation(problem,interpretation);
12670 PartialInterpretation.openWorldElements(interpretation,element); 11987 PartialInterpretation.openWorldElements(interpretation,element);
12671 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
12672 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
12673 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
12674 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 11988 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
11989 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
11990 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
12675 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 11991 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
11992 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
12676 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation); 11993 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
12677 neg find isPrimitive(element); 11994 neg find isPrimitive(element);
12678} or 11995} or
@@ -12700,21 +12017,21 @@ private pattern mayInstanceOfInformationLink_class(problem:LogicProblem, interpr
12700{ 12017{
12701 find interpretation(problem,interpretation); 12018 find interpretation(problem,interpretation);
12702 PartialInterpretation.newElements(interpretation,element); 12019 PartialInterpretation.newElements(interpretation,element);
12020 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
12703 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 12021 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
12022 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
12704 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 12023 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
12705 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 12024 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
12706 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
12707 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
12708 neg find scopeDisallowsNewInformationLink_class(problem, interpretation); 12025 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
12709 neg find isPrimitive(element); 12026 neg find isPrimitive(element);
12710} or { 12027} or {
12711 find interpretation(problem,interpretation); 12028 find interpretation(problem,interpretation);
12712 PartialInterpretation.openWorldElements(interpretation,element); 12029 PartialInterpretation.openWorldElements(interpretation,element);
12030 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
12713 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 12031 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
12032 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
12714 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 12033 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
12715 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 12034 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
12716 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
12717 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
12718 neg find scopeDisallowsNewInformationLink_class(problem, interpretation); 12035 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
12719 neg find isPrimitive(element); 12036 neg find isPrimitive(element);
12720} or 12037} or
@@ -12742,21 +12059,21 @@ private pattern mayInstanceOfFunctionalInterface_class(problem:LogicProblem, int
12742{ 12059{
12743 find interpretation(problem,interpretation); 12060 find interpretation(problem,interpretation);
12744 PartialInterpretation.newElements(interpretation,element); 12061 PartialInterpretation.newElements(interpretation,element);
12745 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
12746 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
12747 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 12062 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
12748 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
12749 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 12063 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
12064 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
12065 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
12066 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
12750 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation); 12067 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
12751 neg find isPrimitive(element); 12068 neg find isPrimitive(element);
12752} or { 12069} or {
12753 find interpretation(problem,interpretation); 12070 find interpretation(problem,interpretation);
12754 PartialInterpretation.openWorldElements(interpretation,element); 12071 PartialInterpretation.openWorldElements(interpretation,element);
12755 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
12756 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
12757 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 12072 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
12758 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
12759 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 12073 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
12074 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
12075 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
12076 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
12760 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation); 12077 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
12761 neg find isPrimitive(element); 12078 neg find isPrimitive(element);
12762} or 12079} or
@@ -12784,23 +12101,23 @@ private pattern mayInstanceOfFunctionalInput_class(problem:LogicProblem, interpr
12784{ 12101{
12785 find interpretation(problem,interpretation); 12102 find interpretation(problem,interpretation);
12786 PartialInterpretation.newElements(interpretation,element); 12103 PartialInterpretation.newElements(interpretation,element);
12787 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
12788 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
12789 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
12790 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 12104 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
12791 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 12105 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
12106 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
12107 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
12792 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 12108 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
12109 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
12793 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation); 12110 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
12794 neg find isPrimitive(element); 12111 neg find isPrimitive(element);
12795} or { 12112} or {
12796 find interpretation(problem,interpretation); 12113 find interpretation(problem,interpretation);
12797 PartialInterpretation.openWorldElements(interpretation,element); 12114 PartialInterpretation.openWorldElements(interpretation,element);
12798 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
12799 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
12800 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
12801 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 12115 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
12802 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 12116 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
12117 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
12118 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
12803 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 12119 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
12120 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
12804 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation); 12121 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
12805 neg find isPrimitive(element); 12122 neg find isPrimitive(element);
12806} or 12123} or
@@ -12828,23 +12145,23 @@ private pattern mayInstanceOfFunctionalOutput_class(problem:LogicProblem, interp
12828{ 12145{
12829 find interpretation(problem,interpretation); 12146 find interpretation(problem,interpretation);
12830 PartialInterpretation.newElements(interpretation,element); 12147 PartialInterpretation.newElements(interpretation,element);
12831 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
12832 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
12833 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
12834 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 12148 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
12835 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 12149 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
12150 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
12836 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 12151 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
12152 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
12153 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
12837 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation); 12154 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
12838 neg find isPrimitive(element); 12155 neg find isPrimitive(element);
12839} or { 12156} or {
12840 find interpretation(problem,interpretation); 12157 find interpretation(problem,interpretation);
12841 PartialInterpretation.openWorldElements(interpretation,element); 12158 PartialInterpretation.openWorldElements(interpretation,element);
12842 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
12843 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
12844 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
12845 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 12159 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
12846 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 12160 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
12161 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
12847 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 12162 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
12163 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
12164 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
12848 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation); 12165 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
12849 neg find isPrimitive(element); 12166 neg find isPrimitive(element);
12850} or 12167} or
@@ -12872,25 +12189,25 @@ private pattern mayInstanceOfFunctionalData_class(problem:LogicProblem, interpre
12872{ 12189{
12873 find interpretation(problem,interpretation); 12190 find interpretation(problem,interpretation);
12874 PartialInterpretation.newElements(interpretation,element); 12191 PartialInterpretation.newElements(interpretation,element);
12875 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
12876 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
12877 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
12878 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
12879 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
12880 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 12192 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
12193 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
12194 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
12195 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
12881 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 12196 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
12197 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
12198 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
12882 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation); 12199 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
12883 neg find isPrimitive(element); 12200 neg find isPrimitive(element);
12884} or { 12201} or {
12885 find interpretation(problem,interpretation); 12202 find interpretation(problem,interpretation);
12886 PartialInterpretation.openWorldElements(interpretation,element); 12203 PartialInterpretation.openWorldElements(interpretation,element);
12887 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
12888 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
12889 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
12890 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
12891 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
12892 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 12204 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
12205 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
12206 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
12207 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
12893 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 12208 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
12209 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
12210 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
12894 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation); 12211 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
12895 neg find isPrimitive(element); 12212 neg find isPrimitive(element);
12896} or 12213} or
@@ -12960,21 +12277,21 @@ private pattern mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(pro
12960{ 12277{
12961 find interpretation(problem,interpretation); 12278 find interpretation(problem,interpretation);
12962 PartialInterpretation.newElements(interpretation,element); 12279 PartialInterpretation.newElements(interpretation,element);
12963 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
12964 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
12965 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 12280 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
12966 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 12281 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
12967 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 12282 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
12283 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
12284 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
12968 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation); 12285 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation);
12969 neg find isPrimitive(element); 12286 neg find isPrimitive(element);
12970} or { 12287} or {
12971 find interpretation(problem,interpretation); 12288 find interpretation(problem,interpretation);
12972 PartialInterpretation.openWorldElements(interpretation,element); 12289 PartialInterpretation.openWorldElements(interpretation,element);
12973 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
12974 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
12975 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 12290 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
12976 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 12291 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
12977 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 12292 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
12293 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
12294 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
12978 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation); 12295 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation);
12979 neg find isPrimitive(element); 12296 neg find isPrimitive(element);
12980} or 12297} or
@@ -13656,39 +12973,39 @@ pattern unfinishedLowerMultiplicity_type_attribute_Function(problem:LogicProblem
13656private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation) 12973private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation)
13657{ 12974{
13658 find interpretation(problem,interpretation); 12975 find interpretation(problem,interpretation);
13659 find mustInstanceOfFAMTerminator_class(problem,interpretation,root); 12976 find mustInstanceOfInformationLink_class(problem,interpretation,root);
13660 find mustExist(problem, interpretation, root); 12977 find mustExist(problem, interpretation, root);
13661}or{ 12978}or{
13662 find interpretation(problem,interpretation); 12979 find interpretation(problem,interpretation);
13663 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,root); 12980 find mustInstanceOfFunctionalOutput_class(problem,interpretation,root);
13664 find mustExist(problem, interpretation, root); 12981 find mustExist(problem, interpretation, root);
13665}or{ 12982}or{
13666 find interpretation(problem,interpretation); 12983 find interpretation(problem,interpretation);
13667 find mustInstanceOfFunctionalOutput_class(problem,interpretation,root); 12984 find mustInstanceOfFunctionalInput_class(problem,interpretation,root);
13668 find mustExist(problem, interpretation, root); 12985 find mustExist(problem, interpretation, root);
13669}or{ 12986}or{
13670 find interpretation(problem,interpretation); 12987 find interpretation(problem,interpretation);
13671 find mustInstanceOfFunction_class(problem,interpretation,root); 12988 find mustInstanceOfFunctionalData_class(problem,interpretation,root);
13672 find mustExist(problem, interpretation, root); 12989 find mustExist(problem, interpretation, root);
13673}or{ 12990}or{
13674 find interpretation(problem,interpretation); 12991 find interpretation(problem,interpretation);
13675 find mustInstanceOfFunctionalInterface_class(problem,interpretation,root); 12992 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,root);
13676 find mustExist(problem, interpretation, root); 12993 find mustExist(problem, interpretation, root);
13677}or{ 12994}or{
13678 find interpretation(problem,interpretation); 12995 find interpretation(problem,interpretation);
13679 find mustInstanceOfFunctionalElement_class(problem,interpretation,root); 12996 find mustInstanceOfFAMTerminator_class(problem,interpretation,root);
13680 find mustExist(problem, interpretation, root); 12997 find mustExist(problem, interpretation, root);
13681}or{ 12998}or{
13682 find interpretation(problem,interpretation); 12999 find interpretation(problem,interpretation);
13683 find mustInstanceOfInformationLink_class(problem,interpretation,root); 13000 find mustInstanceOfFunction_class(problem,interpretation,root);
13684 find mustExist(problem, interpretation, root); 13001 find mustExist(problem, interpretation, root);
13685}or{ 13002}or{
13686 find interpretation(problem,interpretation); 13003 find interpretation(problem,interpretation);
13687 find mustInstanceOfFunctionalInput_class(problem,interpretation,root); 13004 find mustInstanceOfFunctionalInterface_class(problem,interpretation,root);
13688 find mustExist(problem, interpretation, root); 13005 find mustExist(problem, interpretation, root);
13689}or{ 13006}or{
13690 find interpretation(problem,interpretation); 13007 find interpretation(problem,interpretation);
13691 find mustInstanceOfFunctionalData_class(problem,interpretation,root); 13008 find mustInstanceOfFunctionalElement_class(problem,interpretation,root);
13692 find mustExist(problem, interpretation, root); 13009 find mustExist(problem, interpretation, root);
13693}or{ 13010}or{
13694 find interpretation(problem,interpretation); 13011 find interpretation(problem,interpretation);
@@ -13699,211 +13016,211 @@ private pattern hasElementInContainment(problem:LogicProblem, interpretation:Par
13699 find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,root); 13016 find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,root);
13700 find mustExist(problem, interpretation, root); 13017 find mustExist(problem, interpretation, root);
13701} 13018}
13702pattern createObject_FunctionalInput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData( 13019pattern createObject_Function_class_by_rootElements_reference_FunctionalArchitectureModel(
13020 problem:LogicProblem, interpretation:PartialInterpretation,
13021 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
13022 container:DefinedElement)
13023{
13024 find interpretation(problem,interpretation);
13025 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
13026 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class");
13027 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
13028 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"rootElements reference FunctionalArchitectureModel");
13029 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,container);
13030 find mayInstanceOfFunction_class(problem,interpretation,newObject);
13031 find mayInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,container,newObject);
13032 find mustExist(problem, interpretation, container);
13033 neg find mustExist(problem, interpretation, newObject);
13034}
13035pattern createObject_Function_class_by_subElements_reference_Function_with_parent_reference_FunctionalElement(
13703 problem:LogicProblem, interpretation:PartialInterpretation, 13036 problem:LogicProblem, interpretation:PartialInterpretation,
13704 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 13037 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
13705 container:DefinedElement) 13038 container:DefinedElement)
13706{ 13039{
13707 find interpretation(problem,interpretation); 13040 find interpretation(problem,interpretation);
13708 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 13041 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
13709 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class"); 13042 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class");
13710 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 13043 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
13711 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface"); 13044 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"subElements reference Function");
13712 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 13045 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
13713 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData"); 13046 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"parent reference FunctionalElement");
13714 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container); 13047 find mustInstanceOfFunction_class(problem,interpretation,container);
13715 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject); 13048 find mayInstanceOfFunction_class(problem,interpretation,newObject);
13716 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject); 13049 find mayInRelationsubElements_reference_Function(problem,interpretation,container,newObject);
13717 find mustExist(problem, interpretation, container); 13050 find mustExist(problem, interpretation, container);
13718 neg find mustExist(problem, interpretation, newObject); 13051 neg find mustExist(problem, interpretation, newObject);
13719} 13052}
13720pattern createObject_FunctionalInput_class( 13053pattern createObject_Function_class(
13721 problem:LogicProblem, interpretation:PartialInterpretation, 13054 problem:LogicProblem, interpretation:PartialInterpretation,
13722 typeInterpretation:PartialComplexTypeInterpretation) 13055 typeInterpretation:PartialComplexTypeInterpretation)
13723{ 13056{
13724 find interpretation(problem,interpretation); 13057 find interpretation(problem,interpretation);
13725 neg find hasElementInContainment(problem,interpretation); 13058 neg find hasElementInContainment(problem,interpretation);
13726 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 13059 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
13727 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class"); 13060 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class");
13728 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject); 13061 find mayInstanceOfFunction_class(problem,interpretation,newObject);
13729 find mayExist(problem, interpretation, newObject); 13062 find mayExist(problem, interpretation, newObject);
13730 neg find mustExist(problem, interpretation, newObject); 13063 neg find mustExist(problem, interpretation, newObject);
13731} 13064}
13732pattern createObject_FunctionalOutput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData( 13065pattern createObject_InformationLink_class_by_outgoingLinks_reference_FunctionalOutput_with_from_reference_InformationLink(
13733 problem:LogicProblem, interpretation:PartialInterpretation, 13066 problem:LogicProblem, interpretation:PartialInterpretation,
13734 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 13067 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
13735 container:DefinedElement) 13068 container:DefinedElement)
13736{ 13069{
13737 find interpretation(problem,interpretation); 13070 find interpretation(problem,interpretation);
13738 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 13071 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
13739 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class"); 13072 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class");
13740 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 13073 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
13741 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface"); 13074 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"outgoingLinks reference FunctionalOutput");
13742 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 13075 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
13743 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData"); 13076 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"from reference InformationLink");
13744 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container); 13077 find mustInstanceOfFunctionalOutput_class(problem,interpretation,container);
13745 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject); 13078 find mayInstanceOfInformationLink_class(problem,interpretation,newObject);
13746 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject); 13079 find mayInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,container,newObject);
13747 find mustExist(problem, interpretation, container); 13080 find mustExist(problem, interpretation, container);
13748 neg find mustExist(problem, interpretation, newObject); 13081 neg find mustExist(problem, interpretation, newObject);
13749} 13082}
13750pattern createObject_FunctionalOutput_class( 13083pattern createObject_InformationLink_class(
13751 problem:LogicProblem, interpretation:PartialInterpretation, 13084 problem:LogicProblem, interpretation:PartialInterpretation,
13752 typeInterpretation:PartialComplexTypeInterpretation) 13085 typeInterpretation:PartialComplexTypeInterpretation)
13753{ 13086{
13754 find interpretation(problem,interpretation); 13087 find interpretation(problem,interpretation);
13755 neg find hasElementInContainment(problem,interpretation); 13088 neg find hasElementInContainment(problem,interpretation);
13756 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 13089 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
13757 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class"); 13090 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class");
13758 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject); 13091 find mayInstanceOfInformationLink_class(problem,interpretation,newObject);
13759 find mayExist(problem, interpretation, newObject); 13092 find mayExist(problem, interpretation, newObject);
13760 neg find mustExist(problem, interpretation, newObject); 13093 neg find mustExist(problem, interpretation, newObject);
13761} 13094}
13762pattern createObject_FAMTerminator_class_by_terminator_reference_FunctionalData_with_data_reference_FAMTerminator( 13095pattern createObject_FunctionalOutput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData(
13763 problem:LogicProblem, interpretation:PartialInterpretation, 13096 problem:LogicProblem, interpretation:PartialInterpretation,
13764 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 13097 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
13765 container:DefinedElement) 13098 container:DefinedElement)
13766{ 13099{
13767 find interpretation(problem,interpretation); 13100 find interpretation(problem,interpretation);
13768 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 13101 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
13769 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class"); 13102 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class");
13770 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 13103 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
13771 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"terminator reference FunctionalData"); 13104 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface");
13772 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 13105 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
13773 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"data reference FAMTerminator"); 13106 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData");
13774 find mustInstanceOfFunctionalData_class(problem,interpretation,container); 13107 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container);
13775 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject); 13108 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject);
13776 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,container,newObject); 13109 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject);
13777 find mustExist(problem, interpretation, container); 13110 find mustExist(problem, interpretation, container);
13778 neg find mustExist(problem, interpretation, newObject); 13111 neg find mustExist(problem, interpretation, newObject);
13779} 13112}
13780pattern createObject_FAMTerminator_class( 13113pattern createObject_FunctionalOutput_class(
13781 problem:LogicProblem, interpretation:PartialInterpretation, 13114 problem:LogicProblem, interpretation:PartialInterpretation,
13782 typeInterpretation:PartialComplexTypeInterpretation) 13115 typeInterpretation:PartialComplexTypeInterpretation)
13783{ 13116{
13784 find interpretation(problem,interpretation); 13117 find interpretation(problem,interpretation);
13785 neg find hasElementInContainment(problem,interpretation); 13118 neg find hasElementInContainment(problem,interpretation);
13786 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 13119 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
13787 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class"); 13120 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class");
13788 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject); 13121 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject);
13789 find mayExist(problem, interpretation, newObject); 13122 find mayExist(problem, interpretation, newObject);
13790 neg find mustExist(problem, interpretation, newObject); 13123 neg find mustExist(problem, interpretation, newObject);
13791} 13124}
13792pattern createObject_InformationLink_class_by_outgoingLinks_reference_FunctionalOutput_with_from_reference_InformationLink( 13125pattern createObject_FunctionalInterface_class_by_interface_reference_FunctionalElement_with_element_reference_FunctionalInterface(
13793 problem:LogicProblem, interpretation:PartialInterpretation, 13126 problem:LogicProblem, interpretation:PartialInterpretation,
13794 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 13127 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
13795 container:DefinedElement) 13128 container:DefinedElement)
13796{ 13129{
13797 find interpretation(problem,interpretation); 13130 find interpretation(problem,interpretation);
13798 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 13131 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
13799 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class"); 13132 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
13800 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 13133 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
13801 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"outgoingLinks reference FunctionalOutput"); 13134 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"interface reference FunctionalElement");
13802 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 13135 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
13803 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"from reference InformationLink"); 13136 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"element reference FunctionalInterface");
13804 find mustInstanceOfFunctionalOutput_class(problem,interpretation,container); 13137 find mustInstanceOfFunctionalElement_class(problem,interpretation,container);
13805 find mayInstanceOfInformationLink_class(problem,interpretation,newObject); 13138 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
13806 find mayInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,container,newObject); 13139 find mayInRelationinterface_reference_FunctionalElement(problem,interpretation,container,newObject);
13807 find mustExist(problem, interpretation, container); 13140 find mustExist(problem, interpretation, container);
13808 neg find mustExist(problem, interpretation, newObject); 13141 neg find mustExist(problem, interpretation, newObject);
13809} 13142}
13810pattern createObject_InformationLink_class( 13143pattern createObject_FunctionalInterface_class(
13811 problem:LogicProblem, interpretation:PartialInterpretation, 13144 problem:LogicProblem, interpretation:PartialInterpretation,
13812 typeInterpretation:PartialComplexTypeInterpretation) 13145 typeInterpretation:PartialComplexTypeInterpretation)
13813{ 13146{
13814 find interpretation(problem,interpretation); 13147 find interpretation(problem,interpretation);
13815 neg find hasElementInContainment(problem,interpretation); 13148 neg find hasElementInContainment(problem,interpretation);
13816 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 13149 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
13817 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class"); 13150 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
13818 find mayInstanceOfInformationLink_class(problem,interpretation,newObject); 13151 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
13819 find mayExist(problem, interpretation, newObject); 13152 find mayExist(problem, interpretation, newObject);
13820 neg find mustExist(problem, interpretation, newObject); 13153 neg find mustExist(problem, interpretation, newObject);
13821} 13154}
13822pattern createObject_Function_class_by_rootElements_reference_FunctionalArchitectureModel( 13155pattern createObject_FAMTerminator_class_by_terminator_reference_FunctionalData_with_data_reference_FAMTerminator(
13823 problem:LogicProblem, interpretation:PartialInterpretation, 13156 problem:LogicProblem, interpretation:PartialInterpretation,
13824 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 13157 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
13825 container:DefinedElement) 13158 container:DefinedElement)
13826{ 13159{
13827 find interpretation(problem,interpretation); 13160 find interpretation(problem,interpretation);
13828 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 13161 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
13829 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class"); 13162 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class");
13830 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 13163 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
13831 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"rootElements reference FunctionalArchitectureModel"); 13164 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"terminator reference FunctionalData");
13832 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,container); 13165 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
13833 find mayInstanceOfFunction_class(problem,interpretation,newObject); 13166 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"data reference FAMTerminator");
13834 find mayInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,container,newObject); 13167 find mustInstanceOfFunctionalData_class(problem,interpretation,container);
13168 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject);
13169 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,container,newObject);
13835 find mustExist(problem, interpretation, container); 13170 find mustExist(problem, interpretation, container);
13836 neg find mustExist(problem, interpretation, newObject); 13171 neg find mustExist(problem, interpretation, newObject);
13837} 13172}
13838pattern createObject_Function_class_by_subElements_reference_Function_with_parent_reference_FunctionalElement( 13173pattern createObject_FAMTerminator_class(
13839 problem:LogicProblem, interpretation:PartialInterpretation, 13174 problem:LogicProblem, interpretation:PartialInterpretation,
13840 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 13175 typeInterpretation:PartialComplexTypeInterpretation)
13841 container:DefinedElement)
13842{ 13176{
13843 find interpretation(problem,interpretation); 13177 find interpretation(problem,interpretation);
13178 neg find hasElementInContainment(problem,interpretation);
13844 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 13179 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
13845 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class"); 13180 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class");
13846 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 13181 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject);
13847 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"subElements reference Function"); 13182 find mayExist(problem, interpretation, newObject);
13848 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
13849 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"parent reference FunctionalElement");
13850 find mustInstanceOfFunction_class(problem,interpretation,container);
13851 find mayInstanceOfFunction_class(problem,interpretation,newObject);
13852 find mayInRelationsubElements_reference_Function(problem,interpretation,container,newObject);
13853 find mustExist(problem, interpretation, container);
13854 neg find mustExist(problem, interpretation, newObject); 13183 neg find mustExist(problem, interpretation, newObject);
13855} 13184}
13856pattern createObject_Function_class( 13185pattern createObject_FunctionalArchitectureModel_class_UndefinedPart(
13857 problem:LogicProblem, interpretation:PartialInterpretation, 13186 problem:LogicProblem, interpretation:PartialInterpretation,
13858 typeInterpretation:PartialComplexTypeInterpretation) 13187 typeInterpretation:PartialComplexTypeInterpretation)
13859{ 13188{
13860 find interpretation(problem,interpretation); 13189 find interpretation(problem,interpretation);
13861 neg find hasElementInContainment(problem,interpretation); 13190 neg find hasElementInContainment(problem,interpretation);
13862 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 13191 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
13863 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class"); 13192 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalArchitectureModel class UndefinedPart");
13864 find mayInstanceOfFunction_class(problem,interpretation,newObject); 13193 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,newObject);
13865 find mayExist(problem, interpretation, newObject); 13194 find mayExist(problem, interpretation, newObject);
13866 neg find mustExist(problem, interpretation, newObject); 13195 neg find mustExist(problem, interpretation, newObject);
13867} 13196}
13868pattern createObject_FunctionalInterface_class_by_interface_reference_FunctionalElement_with_element_reference_FunctionalInterface( 13197pattern createObject_FunctionalInput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData(
13869 problem:LogicProblem, interpretation:PartialInterpretation, 13198 problem:LogicProblem, interpretation:PartialInterpretation,
13870 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 13199 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
13871 container:DefinedElement) 13200 container:DefinedElement)
13872{ 13201{
13873 find interpretation(problem,interpretation); 13202 find interpretation(problem,interpretation);
13874 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 13203 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
13875 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class"); 13204 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class");
13876 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 13205 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
13877 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"interface reference FunctionalElement"); 13206 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface");
13878 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 13207 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
13879 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"element reference FunctionalInterface"); 13208 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData");
13880 find mustInstanceOfFunctionalElement_class(problem,interpretation,container); 13209 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container);
13881 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject); 13210 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
13882 find mayInRelationinterface_reference_FunctionalElement(problem,interpretation,container,newObject); 13211 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject);
13883 find mustExist(problem, interpretation, container); 13212 find mustExist(problem, interpretation, container);
13884 neg find mustExist(problem, interpretation, newObject); 13213 neg find mustExist(problem, interpretation, newObject);
13885} 13214}
13886pattern createObject_FunctionalInterface_class( 13215pattern createObject_FunctionalInput_class(
13887 problem:LogicProblem, interpretation:PartialInterpretation,
13888 typeInterpretation:PartialComplexTypeInterpretation)
13889{
13890 find interpretation(problem,interpretation);
13891 neg find hasElementInContainment(problem,interpretation);
13892 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
13893 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
13894 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
13895 find mayExist(problem, interpretation, newObject);
13896 neg find mustExist(problem, interpretation, newObject);
13897}
13898pattern createObject_FunctionalArchitectureModel_class_UndefinedPart(
13899 problem:LogicProblem, interpretation:PartialInterpretation, 13216 problem:LogicProblem, interpretation:PartialInterpretation,
13900 typeInterpretation:PartialComplexTypeInterpretation) 13217 typeInterpretation:PartialComplexTypeInterpretation)
13901{ 13218{
13902 find interpretation(problem,interpretation); 13219 find interpretation(problem,interpretation);
13903 neg find hasElementInContainment(problem,interpretation); 13220 neg find hasElementInContainment(problem,interpretation);
13904 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 13221 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
13905 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalArchitectureModel class UndefinedPart"); 13222 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class");
13906 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,newObject); 13223 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
13907 find mayExist(problem, interpretation, newObject); 13224 find mayExist(problem, interpretation, newObject);
13908 neg find mustExist(problem, interpretation, newObject); 13225 neg find mustExist(problem, interpretation, newObject);
13909} 13226}
@@ -13911,84 +13228,84 @@ pattern createObject_FunctionalArchitectureModel_class_UndefinedPart(
13911////////// 13228//////////
13912// 4.2 Type refinement 13229// 4.2 Type refinement
13913////////// 13230//////////
13914pattern refineTypeTo_FunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 13231pattern refineTypeTo_Function_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
13915 find interpretation(problem,interpretation); 13232 find interpretation(problem,interpretation);
13916 PartialInterpretation.newElements(interpretation,element); 13233 PartialInterpretation.newElements(interpretation,element);
13917 find mayInstanceOfFunctionalInput_class(problem,interpretation,element); 13234 find mayInstanceOfFunction_class(problem,interpretation,element);
13918 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 13235 neg find mustInstanceOfFunction_class(problem,interpretation,element);
13919 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
13920 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
13921 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
13922 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
13923 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 13236 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
13924 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
13925}
13926pattern refineTypeTo_FunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
13927 find interpretation(problem,interpretation);
13928 PartialInterpretation.newElements(interpretation,element);
13929 find mayInstanceOfFunctionalOutput_class(problem,interpretation,element);
13930 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
13931 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
13932 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
13933 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
13934 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 13237 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
13935 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
13936 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 13238 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
13937}
13938pattern refineTypeTo_FAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
13939 find interpretation(problem,interpretation);
13940 PartialInterpretation.newElements(interpretation,element);
13941 find mayInstanceOfFAMTerminator_class(problem,interpretation,element);
13942 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 13239 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
13943 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
13944 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
13945 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 13240 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
13946 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
13947 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
13948} 13241}
13949pattern refineTypeTo_InformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 13242pattern refineTypeTo_InformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
13950 find interpretation(problem,interpretation); 13243 find interpretation(problem,interpretation);
13951 PartialInterpretation.newElements(interpretation,element); 13244 PartialInterpretation.newElements(interpretation,element);
13952 find mayInstanceOfInformationLink_class(problem,interpretation,element); 13245 find mayInstanceOfInformationLink_class(problem,interpretation,element);
13953 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
13954 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
13955 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 13246 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
13956 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
13957 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 13247 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
13248 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
13958 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 13249 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
13250 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
13251 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
13959} 13252}
13960pattern refineTypeTo_Function_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 13253pattern refineTypeTo_FunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
13961 find interpretation(problem,interpretation); 13254 find interpretation(problem,interpretation);
13962 PartialInterpretation.newElements(interpretation,element); 13255 PartialInterpretation.newElements(interpretation,element);
13963 find mayInstanceOfFunction_class(problem,interpretation,element); 13256 find mayInstanceOfFunctionalOutput_class(problem,interpretation,element);
13964 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
13965 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 13257 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
13966 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
13967 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 13258 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
13968 neg find mustInstanceOfFunction_class(problem,interpretation,element); 13259 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
13260 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
13969 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 13261 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
13262 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
13263 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
13970} 13264}
13971pattern refineTypeTo_FunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 13265pattern refineTypeTo_FunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
13972 find interpretation(problem,interpretation); 13266 find interpretation(problem,interpretation);
13973 PartialInterpretation.newElements(interpretation,element); 13267 PartialInterpretation.newElements(interpretation,element);
13974 find mayInstanceOfFunctionalInterface_class(problem,interpretation,element); 13268 find mayInstanceOfFunctionalInterface_class(problem,interpretation,element);
13975 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
13976 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
13977 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 13269 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
13270 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
13271 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
13272 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
13273 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
13978 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 13274 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
13275}
13276pattern refineTypeTo_FAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
13277 find interpretation(problem,interpretation);
13278 PartialInterpretation.newElements(interpretation,element);
13279 find mayInstanceOfFAMTerminator_class(problem,interpretation,element);
13979 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 13280 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
13281 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
13282 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
13980 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 13283 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
13284 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
13285 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
13981} 13286}
13982pattern refineTypeTo_FunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 13287pattern refineTypeTo_FunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
13983 find interpretation(problem,interpretation); 13288 find interpretation(problem,interpretation);
13984 PartialInterpretation.newElements(interpretation,element); 13289 PartialInterpretation.newElements(interpretation,element);
13985 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); 13290 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
13986 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
13987 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
13988 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 13291 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
13292 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
13293 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
13294 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
13989 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 13295 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
13990 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); 13296 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
13297}
13298pattern refineTypeTo_FunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
13299 find interpretation(problem,interpretation);
13300 PartialInterpretation.newElements(interpretation,element);
13301 find mayInstanceOfFunctionalInput_class(problem,interpretation,element);
13302 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
13303 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
13304 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
13305 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
13991 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 13306 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
13307 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
13308 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
13992} 13309}
13993 13310
13994////////// 13311//////////
@@ -14147,23 +13464,23 @@ private pattern mayInstanceOfFunctionalElement_class(problem:LogicProblem, inter
14147{ 13464{
14148 find interpretation(problem,interpretation); 13465 find interpretation(problem,interpretation);
14149 PartialInterpretation.newElements(interpretation,element); 13466 PartialInterpretation.newElements(interpretation,element);
13467 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
13468 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
13469 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
14150 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 13470 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
14151 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 13471 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
14152 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
14153 neg find mustInstanceOfFunction_class(problem,interpretation,element); 13472 neg find mustInstanceOfFunction_class(problem,interpretation,element);
14154 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
14155 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
14156 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation); 13473 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
14157 neg find isPrimitive(element); 13474 neg find isPrimitive(element);
14158} or { 13475} or {
14159 find interpretation(problem,interpretation); 13476 find interpretation(problem,interpretation);
14160 PartialInterpretation.openWorldElements(interpretation,element); 13477 PartialInterpretation.openWorldElements(interpretation,element);
13478 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
13479 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
13480 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
14161 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 13481 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
14162 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 13482 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
14163 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
14164 neg find mustInstanceOfFunction_class(problem,interpretation,element); 13483 neg find mustInstanceOfFunction_class(problem,interpretation,element);
14165 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
14166 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
14167 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation); 13484 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
14168 neg find isPrimitive(element); 13485 neg find isPrimitive(element);
14169} or 13486} or
@@ -14191,23 +13508,21 @@ private pattern mayInstanceOfFunctionalArchitectureModel_class(problem:LogicProb
14191{ 13508{
14192 find interpretation(problem,interpretation); 13509 find interpretation(problem,interpretation);
14193 PartialInterpretation.newElements(interpretation,element); 13510 PartialInterpretation.newElements(interpretation,element);
14194 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 13511 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
14195 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
14196 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 13512 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
14197 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 13513 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
14198 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); 13514 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
14199 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 13515 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
14200 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation); 13516 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
14201 neg find isPrimitive(element); 13517 neg find isPrimitive(element);
14202} or { 13518} or {
14203 find interpretation(problem,interpretation); 13519 find interpretation(problem,interpretation);
14204 PartialInterpretation.openWorldElements(interpretation,element); 13520 PartialInterpretation.openWorldElements(interpretation,element);
14205 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 13521 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
14206 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
14207 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 13522 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
14208 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 13523 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
14209 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); 13524 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
14210 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 13525 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
14211 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation); 13526 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
14212 neg find isPrimitive(element); 13527 neg find isPrimitive(element);
14213} or 13528} or
@@ -14235,21 +13550,21 @@ private pattern mayInstanceOfFunction_class(problem:LogicProblem, interpretation
14235{ 13550{
14236 find interpretation(problem,interpretation); 13551 find interpretation(problem,interpretation);
14237 PartialInterpretation.newElements(interpretation,element); 13552 PartialInterpretation.newElements(interpretation,element);
14238 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 13553 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
14239 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
14240 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 13554 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
14241 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 13555 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
14242 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 13556 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
13557 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
14243 neg find scopeDisallowsNewFunction_class(problem, interpretation); 13558 neg find scopeDisallowsNewFunction_class(problem, interpretation);
14244 neg find isPrimitive(element); 13559 neg find isPrimitive(element);
14245} or { 13560} or {
14246 find interpretation(problem,interpretation); 13561 find interpretation(problem,interpretation);
14247 PartialInterpretation.openWorldElements(interpretation,element); 13562 PartialInterpretation.openWorldElements(interpretation,element);
14248 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 13563 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
14249 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
14250 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 13564 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
14251 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 13565 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
14252 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 13566 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
13567 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
14253 neg find scopeDisallowsNewFunction_class(problem, interpretation); 13568 neg find scopeDisallowsNewFunction_class(problem, interpretation);
14254 neg find isPrimitive(element); 13569 neg find isPrimitive(element);
14255} or 13570} or
@@ -14277,21 +13592,21 @@ private pattern mayInstanceOfFAMTerminator_class(problem:LogicProblem, interpret
14277{ 13592{
14278 find interpretation(problem,interpretation); 13593 find interpretation(problem,interpretation);
14279 PartialInterpretation.newElements(interpretation,element); 13594 PartialInterpretation.newElements(interpretation,element);
14280 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 13595 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
14281 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 13596 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
14282 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 13597 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
13598 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
14283 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 13599 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
14284 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
14285 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation); 13600 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
14286 neg find isPrimitive(element); 13601 neg find isPrimitive(element);
14287} or { 13602} or {
14288 find interpretation(problem,interpretation); 13603 find interpretation(problem,interpretation);
14289 PartialInterpretation.openWorldElements(interpretation,element); 13604 PartialInterpretation.openWorldElements(interpretation,element);
14290 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 13605 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
14291 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 13606 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
14292 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 13607 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
13608 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
14293 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 13609 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
14294 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
14295 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation); 13610 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
14296 neg find isPrimitive(element); 13611 neg find isPrimitive(element);
14297} or 13612} or
@@ -14319,21 +13634,21 @@ private pattern mayInstanceOfInformationLink_class(problem:LogicProblem, interpr
14319{ 13634{
14320 find interpretation(problem,interpretation); 13635 find interpretation(problem,interpretation);
14321 PartialInterpretation.newElements(interpretation,element); 13636 PartialInterpretation.newElements(interpretation,element);
14322 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
14323 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
14324 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 13637 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
14325 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 13638 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
13639 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
14326 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 13640 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
13641 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
14327 neg find scopeDisallowsNewInformationLink_class(problem, interpretation); 13642 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
14328 neg find isPrimitive(element); 13643 neg find isPrimitive(element);
14329} or { 13644} or {
14330 find interpretation(problem,interpretation); 13645 find interpretation(problem,interpretation);
14331 PartialInterpretation.openWorldElements(interpretation,element); 13646 PartialInterpretation.openWorldElements(interpretation,element);
14332 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
14333 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
14334 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 13647 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
14335 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 13648 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
13649 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
14336 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 13650 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
13651 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
14337 neg find scopeDisallowsNewInformationLink_class(problem, interpretation); 13652 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
14338 neg find isPrimitive(element); 13653 neg find isPrimitive(element);
14339} or 13654} or
@@ -14361,21 +13676,21 @@ private pattern mayInstanceOfFunctionalInterface_class(problem:LogicProblem, int
14361{ 13676{
14362 find interpretation(problem,interpretation); 13677 find interpretation(problem,interpretation);
14363 PartialInterpretation.newElements(interpretation,element); 13678 PartialInterpretation.newElements(interpretation,element);
14364 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 13679 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
14365 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
14366 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 13680 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
13681 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
14367 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 13682 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
14368 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 13683 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
14369 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation); 13684 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
14370 neg find isPrimitive(element); 13685 neg find isPrimitive(element);
14371} or { 13686} or {
14372 find interpretation(problem,interpretation); 13687 find interpretation(problem,interpretation);
14373 PartialInterpretation.openWorldElements(interpretation,element); 13688 PartialInterpretation.openWorldElements(interpretation,element);
14374 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 13689 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
14375 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
14376 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 13690 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
13691 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
14377 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 13692 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
14378 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 13693 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
14379 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation); 13694 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
14380 neg find isPrimitive(element); 13695 neg find isPrimitive(element);
14381} or 13696} or
@@ -14403,23 +13718,23 @@ private pattern mayInstanceOfFunctionalInput_class(problem:LogicProblem, interpr
14403{ 13718{
14404 find interpretation(problem,interpretation); 13719 find interpretation(problem,interpretation);
14405 PartialInterpretation.newElements(interpretation,element); 13720 PartialInterpretation.newElements(interpretation,element);
14406 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 13721 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
14407 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 13722 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
14408 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 13723 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
14409 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 13724 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
14410 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 13725 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
14411 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 13726 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
14412 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation); 13727 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
14413 neg find isPrimitive(element); 13728 neg find isPrimitive(element);
14414} or { 13729} or {
14415 find interpretation(problem,interpretation); 13730 find interpretation(problem,interpretation);
14416 PartialInterpretation.openWorldElements(interpretation,element); 13731 PartialInterpretation.openWorldElements(interpretation,element);
14417 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 13732 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
14418 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 13733 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
14419 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 13734 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
14420 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 13735 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
14421 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 13736 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
14422 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 13737 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
14423 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation); 13738 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
14424 neg find isPrimitive(element); 13739 neg find isPrimitive(element);
14425} or 13740} or
@@ -14447,23 +13762,23 @@ private pattern mayInstanceOfFunctionalOutput_class(problem:LogicProblem, interp
14447{ 13762{
14448 find interpretation(problem,interpretation); 13763 find interpretation(problem,interpretation);
14449 PartialInterpretation.newElements(interpretation,element); 13764 PartialInterpretation.newElements(interpretation,element);
14450 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 13765 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
14451 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
14452 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 13766 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
14453 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 13767 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
13768 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
14454 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 13769 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
14455 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 13770 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
14456 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation); 13771 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
14457 neg find isPrimitive(element); 13772 neg find isPrimitive(element);
14458} or { 13773} or {
14459 find interpretation(problem,interpretation); 13774 find interpretation(problem,interpretation);
14460 PartialInterpretation.openWorldElements(interpretation,element); 13775 PartialInterpretation.openWorldElements(interpretation,element);
14461 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 13776 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
14462 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
14463 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 13777 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
14464 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 13778 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
13779 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
14465 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 13780 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
14466 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 13781 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
14467 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation); 13782 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
14468 neg find isPrimitive(element); 13783 neg find isPrimitive(element);
14469} or 13784} or
@@ -14491,25 +13806,25 @@ private pattern mayInstanceOfFunctionalData_class(problem:LogicProblem, interpre
14491{ 13806{
14492 find interpretation(problem,interpretation); 13807 find interpretation(problem,interpretation);
14493 PartialInterpretation.newElements(interpretation,element); 13808 PartialInterpretation.newElements(interpretation,element);
14494 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
14495 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 13809 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
14496 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); 13810 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
14497 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 13811 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
14498 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 13812 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
13813 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
14499 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 13814 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
14500 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 13815 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
14501 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation); 13816 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
14502 neg find isPrimitive(element); 13817 neg find isPrimitive(element);
14503} or { 13818} or {
14504 find interpretation(problem,interpretation); 13819 find interpretation(problem,interpretation);
14505 PartialInterpretation.openWorldElements(interpretation,element); 13820 PartialInterpretation.openWorldElements(interpretation,element);
14506 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
14507 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 13821 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
14508 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); 13822 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
14509 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 13823 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
14510 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 13824 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
13825 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
14511 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 13826 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
14512 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 13827 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
14513 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation); 13828 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
14514 neg find isPrimitive(element); 13829 neg find isPrimitive(element);
14515} or 13830} or
@@ -14535,69 +13850,6 @@ private pattern scopeDisallowsNewFunctionType_enum(problem:LogicProblem, interpr
14535 */ 13850 */
14536private pattern mayInstanceOfFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 13851private pattern mayInstanceOfFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
14537{ find mustInstanceOfFunctionType_enum(problem,interpretation,element); } 13852{ find mustInstanceOfFunctionType_enum(problem,interpretation,element); }
14538/**
14539 * An element must be an instance of type "FunctionalArchitectureModel class DefinedPart".
14540 */
14541private pattern mustInstanceOfFunctionalArchitectureModel_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
14542 Type.name(type,"FunctionalArchitectureModel class DefinedPart");
14543 find directInstanceOf(problem,interpretation,element,type);
14544}
14545private pattern scopeDisallowsNewFunctionalArchitectureModel_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
14546 find interpretation(problem,interpretation);
14547 PartialInterpretation.scopes(interpretation,scope);
14548 Scope.targetTypeInterpretation(scope,typeInterpretation);
14549 Scope.maxNewElements(scope,0);
14550 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
14551 Type.name(type,"FunctionalArchitectureModel class DefinedPart");
14552}
14553
14554/**
14555 * An element may be an instance of type "FunctionalArchitectureModel class DefinedPart".
14556 */
14557private pattern mayInstanceOfFunctionalArchitectureModel_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
14558{ find mustInstanceOfFunctionalArchitectureModel_class_DefinedPart(problem,interpretation,element); }
14559/**
14560 * An element must be an instance of type "FunctionalArchitectureModel class UndefinedPart".
14561 */
14562private pattern mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
14563 Type.name(type,"FunctionalArchitectureModel class UndefinedPart");
14564 find directInstanceOf(problem,interpretation,element,type);
14565}
14566private pattern scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
14567 find interpretation(problem,interpretation);
14568 PartialInterpretation.scopes(interpretation,scope);
14569 Scope.targetTypeInterpretation(scope,typeInterpretation);
14570 Scope.maxNewElements(scope,0);
14571 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
14572 Type.name(type,"FunctionalArchitectureModel class UndefinedPart");
14573}
14574
14575/**
14576 * An element may be an instance of type "FunctionalArchitectureModel class UndefinedPart".
14577 */
14578private pattern mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
14579{
14580 find interpretation(problem,interpretation);
14581 PartialInterpretation.newElements(interpretation,element);
14582 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
14583 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
14584 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
14585 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
14586 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
14587 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation);
14588 neg find isPrimitive(element);
14589} or {
14590 find interpretation(problem,interpretation);
14591 PartialInterpretation.openWorldElements(interpretation,element);
14592 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
14593 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
14594 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
14595 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
14596 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
14597 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation);
14598 neg find isPrimitive(element);
14599} or
14600{ find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); }
14601 13853
14602////////// 13854//////////
14603// 1.2 Relation Declaration Indexers 13855// 1.2 Relation Declaration Indexers
@@ -14649,21 +13901,38 @@ private pattern mayInRelationinterface_reference_FunctionalElement(
14649/** 13901/**
14650 * Matcher for detecting tuples t where []model reference FunctionalElement(source,target) 13902 * Matcher for detecting tuples t where []model reference FunctionalElement(source,target)
14651 */ 13903 */
14652 private pattern mustInRelationmodel_reference_FunctionalElement( 13904private pattern mustInRelationmodel_reference_FunctionalElement(
14653 problem:LogicProblem, interpretation:PartialInterpretation, 13905 problem:LogicProblem, interpretation:PartialInterpretation,
14654 source: DefinedElement, target:DefinedElement) 13906 source: DefinedElement, target:DefinedElement)
14655 { 13907{
14656 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_model(problem,interpretation,source,target); 13908 find interpretation(problem,interpretation);
14657 } 13909 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
13910 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement");
13911 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
13912 BinaryElementRelationLink.param1(link,source);
13913 BinaryElementRelationLink.param2(link,target);
13914}
14658/** 13915/**
14659 * Matcher for detecting tuples t where []model reference FunctionalElement(source,target) 13916 * Matcher for detecting tuples t where <>model reference FunctionalElement(source,target)
14660 */ 13917 */
14661 private pattern mayInRelationmodel_reference_FunctionalElement( 13918private pattern mayInRelationmodel_reference_FunctionalElement(
14662 problem:LogicProblem, interpretation:PartialInterpretation, 13919 problem:LogicProblem, interpretation:PartialInterpretation,
14663 source: DefinedElement, target:DefinedElement) 13920 source: DefinedElement, target:DefinedElement)
14664 { 13921{
14665 find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_model(problem,interpretation,source,target); 13922 find interpretation(problem,interpretation);
14666 } 13923 // The two endpoint of the link have to exist
13924 find mayExist(problem, interpretation, source);
13925 find mayExist(problem, interpretation, target);
13926 // Type consistency
13927 find mayInstanceOfFunctionalElement_class(problem,interpretation,source);
13928 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,target);
13929 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
13930 // the upper bound of the multiplicity should be considered.
13931 numberOfExistingReferences == count find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,source,_);
13932 check(numberOfExistingReferences < 1);
13933} or {
13934 find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,source,target);
13935}
14667/** 13936/**
14668 * Matcher for detecting tuples t where []parent reference FunctionalElement(source,target) 13937 * Matcher for detecting tuples t where []parent reference FunctionalElement(source,target)
14669 */ 13938 */
@@ -15145,27 +14414,44 @@ private pattern mayInRelationinterface_reference_FunctionalData(
15145/** 14414/**
15146 * Matcher for detecting tuples t where []type attribute Function(source,target) 14415 * Matcher for detecting tuples t where []type attribute Function(source,target)
15147 */ 14416 */
15148 private pattern mustInRelationtype_attribute_Function( 14417private pattern mustInRelationtype_attribute_Function(
15149 problem:LogicProblem, interpretation:PartialInterpretation, 14418 problem:LogicProblem, interpretation:PartialInterpretation,
15150 source: DefinedElement, target:DefinedElement) 14419 source: DefinedElement, target:DefinedElement)
15151 { 14420{
15152 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_type(problem,interpretation,source,target); 14421 find interpretation(problem,interpretation);
15153 } 14422 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
14423 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function");
14424 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
14425 BinaryElementRelationLink.param1(link,source);
14426 BinaryElementRelationLink.param2(link,target);
14427}
15154/** 14428/**
15155 * Matcher for detecting tuples t where []type attribute Function(source,target) 14429 * Matcher for detecting tuples t where <>type attribute Function(source,target)
15156 */ 14430 */
15157 private pattern mayInRelationtype_attribute_Function( 14431private pattern mayInRelationtype_attribute_Function(
15158 problem:LogicProblem, interpretation:PartialInterpretation, 14432 problem:LogicProblem, interpretation:PartialInterpretation,
15159 source: DefinedElement, target:DefinedElement) 14433 source: DefinedElement, target:DefinedElement)
15160 { 14434{
15161 find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_type(problem,interpretation,source,target); 14435 find interpretation(problem,interpretation);
15162 } 14436 // The two endpoint of the link have to exist
14437 find mayExist(problem, interpretation, source);
14438 find mayExist(problem, interpretation, target);
14439 // Type consistency
14440 find mayInstanceOfFunction_class(problem,interpretation,source);
14441 find mayInstanceOfFunctionType_enum(problem,interpretation,target);
14442 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
14443 // the upper bound of the multiplicity should be considered.
14444 numberOfExistingReferences == count find mustInRelationtype_attribute_Function(problem,interpretation,source,_);
14445 check(numberOfExistingReferences < 1);
14446} or {
14447 find mustInRelationtype_attribute_Function(problem,interpretation,source,target);
14448}
15163 14449
15164////////// 14450//////////
15165// 1.3 Relation Definition Indexers 14451// 1.3 Relation Definition Indexers
15166////////// 14452//////////
15167// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test fam terminatorAndInformation 14453// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test fam queries terminatorAndInformation
15168private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_terminatorAndInformation( 14454private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(
15169 problem:LogicProblem, interpretation:PartialInterpretation, 14455 problem:LogicProblem, interpretation:PartialInterpretation,
15170 var_T, var_I) 14456 var_T, var_I)
15171{ 14457{
@@ -15197,7 +14483,7 @@ private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_tes
15197 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1); 14483 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
15198 var_virtual1 == var_T; 14484 var_virtual1 == var_T;
15199} 14485}
15200private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_terminatorAndInformation( 14486private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(
15201 problem:LogicProblem, interpretation:PartialInterpretation, 14487 problem:LogicProblem, interpretation:PartialInterpretation,
15202 var_T, var_I) 14488 var_T, var_I)
15203{ 14489{
@@ -15229,7 +14515,7 @@ private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test
15229 find mayInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1); 14515 find mayInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
15230 find mayEquivalent(problem, interpretation, var_virtual1, var_T); 14516 find mayEquivalent(problem, interpretation, var_virtual1, var_T);
15231} 14517}
15232private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_terminatorAndInformation( 14518private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(
15233 problem:LogicProblem, interpretation:PartialInterpretation, 14519 problem:LogicProblem, interpretation:PartialInterpretation,
15234 var_T, var_I) 14520 var_T, var_I)
15235{ 14521{
@@ -15261,229 +14547,6 @@ private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_
15261 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1); 14547 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
15262 var_virtual1 == var_T; 14548 var_virtual1 == var_T;
15263} 14549}
15264// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test fam type
15265private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_type(
15266 problem:LogicProblem, interpretation:PartialInterpretation,
15267 var_This, var_Target)
15268{
15269 find interpretation(problem,interpretation);
15270 find mustInstanceOfFunction_class(problem,interpretation,var_This);
15271 // type constraint is enforced by construction
15272 // This is exported
15273 // Target is exported
15274 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_rootElements(problem,interpretation,_var__Model,var_This);
15275 var_virtual0 == const_Root_FunctionType;DefinedElement.name(const_Root_FunctionType,"Root FunctionType"); //LogicProblem.elements(problem,const_Root_FunctionType);
15276 var_Target == var_virtual0;
15277}or{
15278 find interpretation(problem,interpretation);
15279 find mustInstanceOfFunction_class(problem,interpretation,var_This);
15280 // type constraint is enforced by construction
15281 // This is exported
15282 // Target is exported
15283 neg find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(problem,interpretation,_var__Child,var_This);
15284 neg find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_rootElements(problem,interpretation,_var__Model,var_This);
15285 var_virtual0 == const_Leaf_FunctionType;DefinedElement.name(const_Leaf_FunctionType,"Leaf FunctionType"); //LogicProblem.elements(problem,const_Leaf_FunctionType);
15286 var_Target == var_virtual0;
15287}or{
15288 find interpretation(problem,interpretation);
15289 find mustInstanceOfFunction_class(problem,interpretation,var_This);
15290 // type constraint is enforced by construction
15291 // This is exported
15292 // Target is exported
15293 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(problem,interpretation,var_This,_var__Par);
15294 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(problem,interpretation,_var__Child,var_This);
15295 var_virtual0 == const_Intermediate_FunctionType;DefinedElement.name(const_Intermediate_FunctionType,"Intermediate FunctionType"); //LogicProblem.elements(problem,const_Intermediate_FunctionType);
15296 var_Target == var_virtual0;
15297}
15298private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_type(
15299 problem:LogicProblem, interpretation:PartialInterpretation,
15300 var_This, var_Target)
15301{
15302 find interpretation(problem,interpretation);
15303 find mayInstanceOfFunction_class(problem,interpretation,var_This);
15304 // type constraint is enforced by construction
15305 // This is exported
15306 // Target is exported
15307 find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_rootElements(problem,interpretation,_var__Model,var_This);
15308 var_virtual0 == const_Root_FunctionType;DefinedElement.name(const_Root_FunctionType,"Root FunctionType"); //LogicProblem.elements(problem,const_Root_FunctionType);
15309 find mayEquivalent(problem, interpretation, var_Target, var_virtual0);
15310}or{
15311 find interpretation(problem,interpretation);
15312 find mayInstanceOfFunction_class(problem,interpretation,var_This);
15313 // type constraint is enforced by construction
15314 // This is exported
15315 // Target is exported
15316 neg find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(problem,interpretation,_var__Child,var_This);
15317 neg find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_rootElements(problem,interpretation,_var__Model,var_This);
15318 var_virtual0 == const_Leaf_FunctionType;DefinedElement.name(const_Leaf_FunctionType,"Leaf FunctionType"); //LogicProblem.elements(problem,const_Leaf_FunctionType);
15319 find mayEquivalent(problem, interpretation, var_Target, var_virtual0);
15320}or{
15321 find interpretation(problem,interpretation);
15322 find mayInstanceOfFunction_class(problem,interpretation,var_This);
15323 // type constraint is enforced by construction
15324 // This is exported
15325 // Target is exported
15326 find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(problem,interpretation,var_This,_var__Par);
15327 find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(problem,interpretation,_var__Child,var_This);
15328 var_virtual0 == const_Intermediate_FunctionType;DefinedElement.name(const_Intermediate_FunctionType,"Intermediate FunctionType"); //LogicProblem.elements(problem,const_Intermediate_FunctionType);
15329 find mayEquivalent(problem, interpretation, var_Target, var_virtual0);
15330}
15331private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_type(
15332 problem:LogicProblem, interpretation:PartialInterpretation,
15333 var_This, var_Target)
15334{
15335 find interpretation(problem,interpretation);
15336 find mustInstanceOfFunction_class(problem,interpretation,var_This);
15337 // type constraint is enforced by construction
15338 // This is exported
15339 // Target is exported
15340 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_rootElements(problem,interpretation,_var__Model,var_This);
15341 var_virtual0 == const_Root_FunctionType;DefinedElement.name(const_Root_FunctionType,"Root FunctionType"); //LogicProblem.elements(problem,const_Root_FunctionType);
15342 var_Target == var_virtual0;
15343}or{
15344 find interpretation(problem,interpretation);
15345 find mustInstanceOfFunction_class(problem,interpretation,var_This);
15346 // type constraint is enforced by construction
15347 // This is exported
15348 // Target is exported
15349 neg find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(problem,interpretation,_var__Child,var_This);
15350 neg find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_rootElements(problem,interpretation,_var__Model,var_This);
15351 var_virtual0 == const_Leaf_FunctionType;DefinedElement.name(const_Leaf_FunctionType,"Leaf FunctionType"); //LogicProblem.elements(problem,const_Leaf_FunctionType);
15352 var_Target == var_virtual0;
15353}or{
15354 find interpretation(problem,interpretation);
15355 find mustInstanceOfFunction_class(problem,interpretation,var_This);
15356 // type constraint is enforced by construction
15357 // This is exported
15358 // Target is exported
15359 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(problem,interpretation,var_This,_var__Par);
15360 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(problem,interpretation,_var__Child,var_This);
15361 var_virtual0 == const_Intermediate_FunctionType;DefinedElement.name(const_Intermediate_FunctionType,"Intermediate FunctionType"); //LogicProblem.elements(problem,const_Intermediate_FunctionType);
15362 var_Target == var_virtual0;
15363}
15364// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test fam rootElements
15365private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_rootElements(
15366 problem:LogicProblem, interpretation:PartialInterpretation,
15367 var_Model, var_Root)
15368{
15369 find interpretation(problem,interpretation);
15370 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Model);
15371 find mustInstanceOfFunction_class(problem,interpretation,var_Root);
15372 // Model is exported
15373 // Root is exported
15374 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Model);
15375 find mustInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,var_Model,var_virtual0);
15376 find mustInstanceOfFunctionalElement_class(problem,interpretation,var_virtual0);
15377 var_virtual0 == var_Root;
15378}
15379private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_rootElements(
15380 problem:LogicProblem, interpretation:PartialInterpretation,
15381 var_Model, var_Root)
15382{
15383 find interpretation(problem,interpretation);
15384 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Model);
15385 find mayInstanceOfFunction_class(problem,interpretation,var_Root);
15386 // Model is exported
15387 // Root is exported
15388 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Model);
15389 find mayInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,var_Model,var_virtual0);
15390 find mayInstanceOfFunctionalElement_class(problem,interpretation,var_virtual0);
15391 find mayEquivalent(problem, interpretation, var_virtual0, var_Root);
15392}
15393private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_rootElements(
15394 problem:LogicProblem, interpretation:PartialInterpretation,
15395 var_Model, var_Root)
15396{
15397 find interpretation(problem,interpretation);
15398 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Model);
15399 find mustInstanceOfFunction_class(problem,interpretation,var_Root);
15400 // Model is exported
15401 // Root is exported
15402 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Model);
15403 find mustInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,var_Model,var_virtual0);
15404 find mustInstanceOfFunctionalElement_class(problem,interpretation,var_virtual0);
15405 var_virtual0 == var_Root;
15406}
15407// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test fam parent
15408private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(
15409 problem:LogicProblem, interpretation:PartialInterpretation,
15410 var_Func, var_Par)
15411{
15412 find interpretation(problem,interpretation);
15413 find mustInstanceOfFunction_class(problem,interpretation,var_Func);
15414 find mustInstanceOfFunction_class(problem,interpretation,var_Par);
15415 // Func is exported
15416 // Par is exported
15417 find mustInstanceOfFunction_class(problem,interpretation,var_Func);
15418 find mustInRelationparent_reference_FunctionalElement(problem,interpretation,var_Func,var_virtual0);
15419 find mustInstanceOfFunction_class(problem,interpretation,var_virtual0);
15420 var_virtual0 == var_Par;
15421}
15422private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(
15423 problem:LogicProblem, interpretation:PartialInterpretation,
15424 var_Func, var_Par)
15425{
15426 find interpretation(problem,interpretation);
15427 find mayInstanceOfFunction_class(problem,interpretation,var_Func);
15428 find mayInstanceOfFunction_class(problem,interpretation,var_Par);
15429 // Func is exported
15430 // Par is exported
15431 find mayInstanceOfFunction_class(problem,interpretation,var_Func);
15432 find mayInRelationparent_reference_FunctionalElement(problem,interpretation,var_Func,var_virtual0);
15433 find mayInstanceOfFunction_class(problem,interpretation,var_virtual0);
15434 find mayEquivalent(problem, interpretation, var_virtual0, var_Par);
15435}
15436private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(
15437 problem:LogicProblem, interpretation:PartialInterpretation,
15438 var_Func, var_Par)
15439{
15440 find interpretation(problem,interpretation);
15441 find mustInstanceOfFunction_class(problem,interpretation,var_Func);
15442 find mustInstanceOfFunction_class(problem,interpretation,var_Par);
15443 // Func is exported
15444 // Par is exported
15445 find mustInstanceOfFunction_class(problem,interpretation,var_Func);
15446 find mustInRelationparent_reference_FunctionalElement(problem,interpretation,var_Func,var_virtual0);
15447 find mustInstanceOfFunction_class(problem,interpretation,var_virtual0);
15448 var_virtual0 == var_Par;
15449}
15450// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test fam model
15451private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_model(
15452 problem:LogicProblem, interpretation:PartialInterpretation,
15453 var_This, var_Target)
15454{
15455 find interpretation(problem,interpretation);
15456 find mustInstanceOfFunctionalElement_class(problem,interpretation,var_This);
15457 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Target);
15458 // This is exported
15459 // Target is exported
15460 find mustInstanceOfFunctionalElement_class(problem,interpretation,var_This);
15461 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Target);
15462}
15463private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_model(
15464 problem:LogicProblem, interpretation:PartialInterpretation,
15465 var_This, var_Target)
15466{
15467 find interpretation(problem,interpretation);
15468 find mayInstanceOfFunctionalElement_class(problem,interpretation,var_This);
15469 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Target);
15470 // This is exported
15471 // Target is exported
15472 find mayInstanceOfFunctionalElement_class(problem,interpretation,var_This);
15473 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Target);
15474}
15475private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_model(
15476 problem:LogicProblem, interpretation:PartialInterpretation,
15477 var_This, var_Target)
15478{
15479 find interpretation(problem,interpretation);
15480 find mustInstanceOfFunctionalElement_class(problem,interpretation,var_This);
15481 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Target);
15482 // This is exported
15483 // Target is exported
15484 find mustInstanceOfFunctionalElement_class(problem,interpretation,var_This);
15485 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Target);
15486}
15487 14550
15488////////// 14551//////////
15489// 1.4 Containment Indexer 14552// 1.4 Containment Indexer
@@ -15515,12 +14578,26 @@ private pattern mustTransitiveContains(source,target) {
15515////////// 14578//////////
15516// 2.1 Invalidated by WF Queries 14579// 2.1 Invalidated by WF Queries
15517////////// 14580//////////
14581pattern invalidatedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(problem:LogicProblem, interpretation:PartialInterpretation,
14582 var_T, var_I)
14583{
14584 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(problem,interpretation,var_T,var_I);
14585}
15518 14586
15519////////// 14587//////////
15520// 3. Unfinishedness Indexers 14588// 3. Unfinishedness Indexers
15521////////// 14589//////////
15522// 3.1 Unfinishedness Measured by Multiplicity 14590// 3.1 Unfinishedness Measured by Multiplicity
15523////////// 14591//////////
14592pattern unfinishedLowerMultiplicity_model_reference_FunctionalElement(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
14593 find interpretation(problem,interpretation);
14594 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
14595 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement");
14596 find mustInstanceOfFunctionalElement_class(problem,interpretation,object);
14597 numberOfExistingReferences == count find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,object,_);
14598 check(numberOfExistingReferences < 1);
14599 missingMultiplicity == eval(1-numberOfExistingReferences);
14600}
15524pattern unfinishedLowerMultiplicity_to_reference_InformationLink(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { 14601pattern unfinishedLowerMultiplicity_to_reference_InformationLink(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
15525 find interpretation(problem,interpretation); 14602 find interpretation(problem,interpretation);
15526 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 14603 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
@@ -15530,10 +14607,24 @@ pattern unfinishedLowerMultiplicity_to_reference_InformationLink(problem:LogicPr
15530 check(numberOfExistingReferences < 1); 14607 check(numberOfExistingReferences < 1);
15531 missingMultiplicity == eval(1-numberOfExistingReferences); 14608 missingMultiplicity == eval(1-numberOfExistingReferences);
15532} 14609}
14610pattern unfinishedLowerMultiplicity_type_attribute_Function(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
14611 find interpretation(problem,interpretation);
14612 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
14613 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function");
14614 find mustInstanceOfFunction_class(problem,interpretation,object);
14615 numberOfExistingReferences == count find mustInRelationtype_attribute_Function(problem,interpretation,object,_);
14616 check(numberOfExistingReferences < 1);
14617 missingMultiplicity == eval(1-numberOfExistingReferences);
14618}
15533 14619
15534////////// 14620//////////
15535// 3.2 Unfinishedness Measured by WF Queries 14621// 3.2 Unfinishedness Measured by WF Queries
15536////////// 14622//////////
14623pattern unfinishedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(problem:LogicProblem, interpretation:PartialInterpretation,
14624 var_T, var_I)
14625{
14626 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(problem,interpretation,var_T,var_I);
14627}
15537 14628
15538////////// 14629//////////
15539// 4. Refinement Indexers 14630// 4. Refinement Indexers
@@ -15547,11 +14638,11 @@ private pattern hasElementInContainment(problem:LogicProblem, interpretation:Par
15547 find mustExist(problem, interpretation, root); 14638 find mustExist(problem, interpretation, root);
15548}or{ 14639}or{
15549 find interpretation(problem,interpretation); 14640 find interpretation(problem,interpretation);
15550 find mustInstanceOfFunctionalElement_class(problem,interpretation,root); 14641 find mustInstanceOfInformationLink_class(problem,interpretation,root);
15551 find mustExist(problem, interpretation, root); 14642 find mustExist(problem, interpretation, root);
15552}or{ 14643}or{
15553 find interpretation(problem,interpretation); 14644 find interpretation(problem,interpretation);
15554 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,root); 14645 find mustInstanceOfFunctionalElement_class(problem,interpretation,root);
15555 find mustExist(problem, interpretation, root); 14646 find mustExist(problem, interpretation, root);
15556}or{ 14647}or{
15557 find interpretation(problem,interpretation); 14648 find interpretation(problem,interpretation);
@@ -15559,15 +14650,11 @@ private pattern hasElementInContainment(problem:LogicProblem, interpretation:Par
15559 find mustExist(problem, interpretation, root); 14650 find mustExist(problem, interpretation, root);
15560}or{ 14651}or{
15561 find interpretation(problem,interpretation); 14652 find interpretation(problem,interpretation);
15562 find mustInstanceOfFunctionalInput_class(problem,interpretation,root); 14653 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,root);
15563 find mustExist(problem, interpretation, root);
15564}or{
15565 find interpretation(problem,interpretation);
15566 find mustInstanceOfFunctionalOutput_class(problem,interpretation,root);
15567 find mustExist(problem, interpretation, root); 14654 find mustExist(problem, interpretation, root);
15568}or{ 14655}or{
15569 find interpretation(problem,interpretation); 14656 find interpretation(problem,interpretation);
15570 find mustInstanceOfInformationLink_class(problem,interpretation,root); 14657 find mustInstanceOfFunctionalInput_class(problem,interpretation,root);
15571 find mustExist(problem, interpretation, root); 14658 find mustExist(problem, interpretation, root);
15572}or{ 14659}or{
15573 find interpretation(problem,interpretation); 14660 find interpretation(problem,interpretation);
@@ -15575,104 +14662,82 @@ private pattern hasElementInContainment(problem:LogicProblem, interpretation:Par
15575 find mustExist(problem, interpretation, root); 14662 find mustExist(problem, interpretation, root);
15576}or{ 14663}or{
15577 find interpretation(problem,interpretation); 14664 find interpretation(problem,interpretation);
15578 find mustInstanceOfFunctionalData_class(problem,interpretation,root); 14665 find mustInstanceOfFunctionalOutput_class(problem,interpretation,root);
15579 find mustExist(problem, interpretation, root);
15580}or{
15581 find interpretation(problem,interpretation);
15582 find mustInstanceOfFunctionalArchitectureModel_class_DefinedPart(problem,interpretation,root);
15583 find mustExist(problem, interpretation, root); 14666 find mustExist(problem, interpretation, root);
15584}or{ 14667}or{
15585 find interpretation(problem,interpretation); 14668 find interpretation(problem,interpretation);
15586 find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,root); 14669 find mustInstanceOfFunctionalData_class(problem,interpretation,root);
15587 find mustExist(problem, interpretation, root); 14670 find mustExist(problem, interpretation, root);
15588} 14671}
15589pattern createObject_FAMTerminator_class_by_terminator_reference_FunctionalData_with_data_reference_FAMTerminator( 14672pattern createObject_InformationLink_class_by_outgoingLinks_reference_FunctionalOutput_with_from_reference_InformationLink(
15590 problem:LogicProblem, interpretation:PartialInterpretation, 14673 problem:LogicProblem, interpretation:PartialInterpretation,
15591 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 14674 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
15592 container:DefinedElement) 14675 container:DefinedElement)
15593{ 14676{
15594 find interpretation(problem,interpretation); 14677 find interpretation(problem,interpretation);
15595 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 14678 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
15596 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class"); 14679 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class");
15597 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 14680 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
15598 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"terminator reference FunctionalData"); 14681 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"outgoingLinks reference FunctionalOutput");
15599 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 14682 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
15600 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"data reference FAMTerminator"); 14683 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"from reference InformationLink");
15601 find mustInstanceOfFunctionalData_class(problem,interpretation,container); 14684 find mustInstanceOfFunctionalOutput_class(problem,interpretation,container);
15602 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject); 14685 find mayInstanceOfInformationLink_class(problem,interpretation,newObject);
15603 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,container,newObject); 14686 find mayInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,container,newObject);
15604 find mustExist(problem, interpretation, container); 14687 find mustExist(problem, interpretation, container);
15605 neg find mustExist(problem, interpretation, newObject); 14688 neg find mustExist(problem, interpretation, newObject);
15606} 14689}
15607pattern createObject_FAMTerminator_class( 14690pattern createObject_InformationLink_class(
15608 problem:LogicProblem, interpretation:PartialInterpretation, 14691 problem:LogicProblem, interpretation:PartialInterpretation,
15609 typeInterpretation:PartialComplexTypeInterpretation) 14692 typeInterpretation:PartialComplexTypeInterpretation)
15610{ 14693{
15611 find interpretation(problem,interpretation); 14694 find interpretation(problem,interpretation);
15612 neg find hasElementInContainment(problem,interpretation); 14695 neg find hasElementInContainment(problem,interpretation);
15613 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 14696 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
15614 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class"); 14697 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class");
15615 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject); 14698 find mayInstanceOfInformationLink_class(problem,interpretation,newObject);
15616 find mayExist(problem, interpretation, newObject); 14699 find mayExist(problem, interpretation, newObject);
15617 neg find mustExist(problem, interpretation, newObject); 14700 neg find mustExist(problem, interpretation, newObject);
15618} 14701}
15619pattern createObject_FunctionalInput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData( 14702pattern createObject_FunctionalOutput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData(
15620 problem:LogicProblem, interpretation:PartialInterpretation, 14703 problem:LogicProblem, interpretation:PartialInterpretation,
15621 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 14704 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
15622 container:DefinedElement) 14705 container:DefinedElement)
15623{ 14706{
15624 find interpretation(problem,interpretation); 14707 find interpretation(problem,interpretation);
15625 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 14708 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
15626 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class"); 14709 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class");
15627 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 14710 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
15628 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface"); 14711 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface");
15629 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 14712 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
15630 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData"); 14713 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData");
15631 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container); 14714 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container);
15632 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject); 14715 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject);
15633 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject); 14716 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject);
15634 find mustExist(problem, interpretation, container); 14717 find mustExist(problem, interpretation, container);
15635 neg find mustExist(problem, interpretation, newObject); 14718 neg find mustExist(problem, interpretation, newObject);
15636} 14719}
15637pattern createObject_FunctionalInput_class( 14720pattern createObject_FunctionalOutput_class(
15638 problem:LogicProblem, interpretation:PartialInterpretation, 14721 problem:LogicProblem, interpretation:PartialInterpretation,
15639 typeInterpretation:PartialComplexTypeInterpretation) 14722 typeInterpretation:PartialComplexTypeInterpretation)
15640{ 14723{
15641 find interpretation(problem,interpretation); 14724 find interpretation(problem,interpretation);
15642 neg find hasElementInContainment(problem,interpretation); 14725 neg find hasElementInContainment(problem,interpretation);
15643 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 14726 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
15644 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class");
15645 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
15646 find mayExist(problem, interpretation, newObject);
15647 neg find mustExist(problem, interpretation, newObject);
15648}
15649pattern createObject_FunctionalOutput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData(
15650 problem:LogicProblem, interpretation:PartialInterpretation,
15651 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
15652 container:DefinedElement)
15653{
15654 find interpretation(problem,interpretation);
15655 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
15656 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class"); 14727 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class");
15657 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
15658 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface");
15659 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
15660 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData");
15661 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container);
15662 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject); 14728 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject);
15663 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject); 14729 find mayExist(problem, interpretation, newObject);
15664 find mustExist(problem, interpretation, container);
15665 neg find mustExist(problem, interpretation, newObject); 14730 neg find mustExist(problem, interpretation, newObject);
15666} 14731}
15667pattern createObject_FunctionalOutput_class( 14732pattern createObject_FunctionalArchitectureModel_class(
15668 problem:LogicProblem, interpretation:PartialInterpretation, 14733 problem:LogicProblem, interpretation:PartialInterpretation,
15669 typeInterpretation:PartialComplexTypeInterpretation) 14734 typeInterpretation:PartialComplexTypeInterpretation)
15670{ 14735{
15671 find interpretation(problem,interpretation); 14736 find interpretation(problem,interpretation);
15672 neg find hasElementInContainment(problem,interpretation); 14737 neg find hasElementInContainment(problem,interpretation);
15673 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 14738 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
15674 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class"); 14739 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalArchitectureModel class");
15675 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject); 14740 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,newObject);
15676 find mayExist(problem, interpretation, newObject); 14741 find mayExist(problem, interpretation, newObject);
15677 neg find mustExist(problem, interpretation, newObject); 14742 neg find mustExist(problem, interpretation, newObject);
15678} 14743}
@@ -15706,91 +14771,109 @@ pattern createObject_FunctionalInterface_class(
15706 find mayExist(problem, interpretation, newObject); 14771 find mayExist(problem, interpretation, newObject);
15707 neg find mustExist(problem, interpretation, newObject); 14772 neg find mustExist(problem, interpretation, newObject);
15708} 14773}
15709pattern createObject_Function_class_by_rootElements_reference_FunctionalArchitectureModel( 14774pattern createObject_FunctionalInput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData(
15710 problem:LogicProblem, interpretation:PartialInterpretation, 14775 problem:LogicProblem, interpretation:PartialInterpretation,
15711 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 14776 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
15712 container:DefinedElement) 14777 container:DefinedElement)
15713{ 14778{
15714 find interpretation(problem,interpretation); 14779 find interpretation(problem,interpretation);
15715 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 14780 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
15716 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class"); 14781 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class");
15717 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 14782 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
15718 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"rootElements reference FunctionalArchitectureModel"); 14783 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface");
15719 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,container); 14784 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
15720 find mayInstanceOfFunction_class(problem,interpretation,newObject); 14785 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData");
15721 find mayInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,container,newObject); 14786 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container);
14787 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
14788 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject);
15722 find mustExist(problem, interpretation, container); 14789 find mustExist(problem, interpretation, container);
15723 neg find mustExist(problem, interpretation, newObject); 14790 neg find mustExist(problem, interpretation, newObject);
15724} 14791}
15725pattern createObject_Function_class_by_subElements_reference_Function_with_parent_reference_FunctionalElement( 14792pattern createObject_FunctionalInput_class(
14793 problem:LogicProblem, interpretation:PartialInterpretation,
14794 typeInterpretation:PartialComplexTypeInterpretation)
14795{
14796 find interpretation(problem,interpretation);
14797 neg find hasElementInContainment(problem,interpretation);
14798 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
14799 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class");
14800 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
14801 find mayExist(problem, interpretation, newObject);
14802 neg find mustExist(problem, interpretation, newObject);
14803}
14804pattern createObject_FAMTerminator_class_by_terminator_reference_FunctionalData_with_data_reference_FAMTerminator(
15726 problem:LogicProblem, interpretation:PartialInterpretation, 14805 problem:LogicProblem, interpretation:PartialInterpretation,
15727 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 14806 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
15728 container:DefinedElement) 14807 container:DefinedElement)
15729{ 14808{
15730 find interpretation(problem,interpretation); 14809 find interpretation(problem,interpretation);
15731 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 14810 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
15732 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class"); 14811 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class");
15733 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 14812 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
15734 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"subElements reference Function"); 14813 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"terminator reference FunctionalData");
15735 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 14814 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
15736 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"parent reference FunctionalElement"); 14815 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"data reference FAMTerminator");
15737 find mustInstanceOfFunction_class(problem,interpretation,container); 14816 find mustInstanceOfFunctionalData_class(problem,interpretation,container);
15738 find mayInstanceOfFunction_class(problem,interpretation,newObject); 14817 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject);
15739 find mayInRelationsubElements_reference_Function(problem,interpretation,container,newObject); 14818 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,container,newObject);
15740 find mustExist(problem, interpretation, container); 14819 find mustExist(problem, interpretation, container);
15741 neg find mustExist(problem, interpretation, newObject); 14820 neg find mustExist(problem, interpretation, newObject);
15742} 14821}
15743pattern createObject_Function_class( 14822pattern createObject_FAMTerminator_class(
15744 problem:LogicProblem, interpretation:PartialInterpretation, 14823 problem:LogicProblem, interpretation:PartialInterpretation,
15745 typeInterpretation:PartialComplexTypeInterpretation) 14824 typeInterpretation:PartialComplexTypeInterpretation)
15746{ 14825{
15747 find interpretation(problem,interpretation); 14826 find interpretation(problem,interpretation);
15748 neg find hasElementInContainment(problem,interpretation); 14827 neg find hasElementInContainment(problem,interpretation);
15749 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 14828 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
15750 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class"); 14829 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class");
15751 find mayInstanceOfFunction_class(problem,interpretation,newObject); 14830 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject);
15752 find mayExist(problem, interpretation, newObject); 14831 find mayExist(problem, interpretation, newObject);
15753 neg find mustExist(problem, interpretation, newObject); 14832 neg find mustExist(problem, interpretation, newObject);
15754} 14833}
15755pattern createObject_FunctionalArchitectureModel_class_UndefinedPart( 14834pattern createObject_Function_class_by_rootElements_reference_FunctionalArchitectureModel(
15756 problem:LogicProblem, interpretation:PartialInterpretation, 14835 problem:LogicProblem, interpretation:PartialInterpretation,
15757 typeInterpretation:PartialComplexTypeInterpretation) 14836 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
14837 container:DefinedElement)
15758{ 14838{
15759 find interpretation(problem,interpretation); 14839 find interpretation(problem,interpretation);
15760 neg find hasElementInContainment(problem,interpretation);
15761 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 14840 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
15762 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalArchitectureModel class UndefinedPart"); 14841 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class");
15763 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,newObject); 14842 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
15764 find mayExist(problem, interpretation, newObject); 14843 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"rootElements reference FunctionalArchitectureModel");
14844 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,container);
14845 find mayInstanceOfFunction_class(problem,interpretation,newObject);
14846 find mayInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,container,newObject);
14847 find mustExist(problem, interpretation, container);
15765 neg find mustExist(problem, interpretation, newObject); 14848 neg find mustExist(problem, interpretation, newObject);
15766} 14849}
15767pattern createObject_InformationLink_class_by_outgoingLinks_reference_FunctionalOutput_with_from_reference_InformationLink( 14850pattern createObject_Function_class_by_subElements_reference_Function_with_parent_reference_FunctionalElement(
15768 problem:LogicProblem, interpretation:PartialInterpretation, 14851 problem:LogicProblem, interpretation:PartialInterpretation,
15769 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 14852 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
15770 container:DefinedElement) 14853 container:DefinedElement)
15771{ 14854{
15772 find interpretation(problem,interpretation); 14855 find interpretation(problem,interpretation);
15773 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 14856 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
15774 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class"); 14857 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class");
15775 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 14858 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
15776 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"outgoingLinks reference FunctionalOutput"); 14859 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"subElements reference Function");
15777 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 14860 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
15778 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"from reference InformationLink"); 14861 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"parent reference FunctionalElement");
15779 find mustInstanceOfFunctionalOutput_class(problem,interpretation,container); 14862 find mustInstanceOfFunction_class(problem,interpretation,container);
15780 find mayInstanceOfInformationLink_class(problem,interpretation,newObject); 14863 find mayInstanceOfFunction_class(problem,interpretation,newObject);
15781 find mayInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,container,newObject); 14864 find mayInRelationsubElements_reference_Function(problem,interpretation,container,newObject);
15782 find mustExist(problem, interpretation, container); 14865 find mustExist(problem, interpretation, container);
15783 neg find mustExist(problem, interpretation, newObject); 14866 neg find mustExist(problem, interpretation, newObject);
15784} 14867}
15785pattern createObject_InformationLink_class( 14868pattern createObject_Function_class(
15786 problem:LogicProblem, interpretation:PartialInterpretation, 14869 problem:LogicProblem, interpretation:PartialInterpretation,
15787 typeInterpretation:PartialComplexTypeInterpretation) 14870 typeInterpretation:PartialComplexTypeInterpretation)
15788{ 14871{
15789 find interpretation(problem,interpretation); 14872 find interpretation(problem,interpretation);
15790 neg find hasElementInContainment(problem,interpretation); 14873 neg find hasElementInContainment(problem,interpretation);
15791 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 14874 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
15792 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class"); 14875 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class");
15793 find mayInstanceOfInformationLink_class(problem,interpretation,newObject); 14876 find mayInstanceOfFunction_class(problem,interpretation,newObject);
15794 find mayExist(problem, interpretation, newObject); 14877 find mayExist(problem, interpretation, newObject);
15795 neg find mustExist(problem, interpretation, newObject); 14878 neg find mustExist(problem, interpretation, newObject);
15796} 14879}
@@ -15798,84 +14881,84 @@ pattern createObject_InformationLink_class(
15798////////// 14881//////////
15799// 4.2 Type refinement 14882// 4.2 Type refinement
15800////////// 14883//////////
15801pattern refineTypeTo_FAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 14884pattern refineTypeTo_InformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
15802 find interpretation(problem,interpretation); 14885 find interpretation(problem,interpretation);
15803 PartialInterpretation.newElements(interpretation,element); 14886 PartialInterpretation.newElements(interpretation,element);
15804 find mayInstanceOfFAMTerminator_class(problem,interpretation,element); 14887 find mayInstanceOfInformationLink_class(problem,interpretation,element);
15805 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 14888 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
15806 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
15807 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 14889 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
15808 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 14890 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
14891 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
15809 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 14892 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
15810 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 14893 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
15811} 14894}
15812pattern refineTypeTo_FunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 14895pattern refineTypeTo_FunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
15813 find interpretation(problem,interpretation); 14896 find interpretation(problem,interpretation);
15814 PartialInterpretation.newElements(interpretation,element); 14897 PartialInterpretation.newElements(interpretation,element);
15815 find mayInstanceOfFunctionalInput_class(problem,interpretation,element); 14898 find mayInstanceOfFunctionalOutput_class(problem,interpretation,element);
15816 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 14899 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
15817 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
15818 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 14900 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
15819 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 14901 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
15820 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 14902 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
14903 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
15821 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 14904 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
15822 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 14905 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
15823} 14906}
15824pattern refineTypeTo_FunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 14907pattern refineTypeTo_FunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
15825 find interpretation(problem,interpretation); 14908 find interpretation(problem,interpretation);
15826 PartialInterpretation.newElements(interpretation,element); 14909 PartialInterpretation.newElements(interpretation,element);
15827 find mayInstanceOfFunctionalOutput_class(problem,interpretation,element); 14910 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
15828 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 14911 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
15829 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
15830 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
15831 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 14912 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
15832 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 14913 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
15833 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 14914 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
15834 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 14915 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
14916 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
15835} 14917}
15836pattern refineTypeTo_FunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 14918pattern refineTypeTo_FunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
15837 find interpretation(problem,interpretation); 14919 find interpretation(problem,interpretation);
15838 PartialInterpretation.newElements(interpretation,element); 14920 PartialInterpretation.newElements(interpretation,element);
15839 find mayInstanceOfFunctionalInterface_class(problem,interpretation,element); 14921 find mayInstanceOfFunctionalInterface_class(problem,interpretation,element);
15840 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 14922 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
15841 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
15842 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 14923 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
15843 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 14924 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
14925 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
15844 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 14926 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
15845 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 14927 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
15846} 14928}
15847pattern refineTypeTo_Function_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 14929pattern refineTypeTo_FunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
15848 find interpretation(problem,interpretation); 14930 find interpretation(problem,interpretation);
15849 PartialInterpretation.newElements(interpretation,element); 14931 PartialInterpretation.newElements(interpretation,element);
15850 find mayInstanceOfFunction_class(problem,interpretation,element); 14932 find mayInstanceOfFunctionalInput_class(problem,interpretation,element);
15851 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 14933 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
15852 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 14934 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
15853 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 14935 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
15854 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 14936 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
15855 neg find mustInstanceOfFunction_class(problem,interpretation,element); 14937 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
15856 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 14938 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
14939 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
15857} 14940}
15858pattern refineTypeTo_FunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 14941pattern refineTypeTo_FAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
15859 find interpretation(problem,interpretation); 14942 find interpretation(problem,interpretation);
15860 PartialInterpretation.newElements(interpretation,element); 14943 PartialInterpretation.newElements(interpretation,element);
15861 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); 14944 find mayInstanceOfFAMTerminator_class(problem,interpretation,element);
15862 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 14945 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
15863 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 14946 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
15864 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 14947 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
14948 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
15865 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 14949 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
15866 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); 14950 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
15867 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
15868} 14951}
15869pattern refineTypeTo_InformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 14952pattern refineTypeTo_Function_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
15870 find interpretation(problem,interpretation); 14953 find interpretation(problem,interpretation);
15871 PartialInterpretation.newElements(interpretation,element); 14954 PartialInterpretation.newElements(interpretation,element);
15872 find mayInstanceOfInformationLink_class(problem,interpretation,element); 14955 find mayInstanceOfFunction_class(problem,interpretation,element);
15873 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 14956 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
15874 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
15875 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 14957 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
15876 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 14958 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
15877 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 14959 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
15878 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 14960 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
14961 neg find mustInstanceOfFunction_class(problem,interpretation,element);
15879} 14962}
15880 14963
15881////////// 14964//////////
@@ -16034,22 +15117,22 @@ private pattern mayInstanceOfFunctionalElement_class(problem:LogicProblem, inter
16034{ 15117{
16035 find interpretation(problem,interpretation); 15118 find interpretation(problem,interpretation);
16036 PartialInterpretation.newElements(interpretation,element); 15119 PartialInterpretation.newElements(interpretation,element);
16037 neg find mustInstanceOfFunction_class(problem,interpretation,element);
16038 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
16039 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
16040 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 15120 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
15121 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
16041 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 15122 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
15123 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
15124 neg find mustInstanceOfFunction_class(problem,interpretation,element);
16042 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 15125 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
16043 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation); 15126 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
16044 neg find isPrimitive(element); 15127 neg find isPrimitive(element);
16045} or { 15128} or {
16046 find interpretation(problem,interpretation); 15129 find interpretation(problem,interpretation);
16047 PartialInterpretation.openWorldElements(interpretation,element); 15130 PartialInterpretation.openWorldElements(interpretation,element);
16048 neg find mustInstanceOfFunction_class(problem,interpretation,element);
16049 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
16050 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
16051 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 15131 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
15132 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
16052 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 15133 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
15134 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
15135 neg find mustInstanceOfFunction_class(problem,interpretation,element);
16053 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 15136 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
16054 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation); 15137 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
16055 neg find isPrimitive(element); 15138 neg find isPrimitive(element);
@@ -16078,23 +15161,21 @@ private pattern mayInstanceOfFunctionalArchitectureModel_class(problem:LogicProb
16078{ 15161{
16079 find interpretation(problem,interpretation); 15162 find interpretation(problem,interpretation);
16080 PartialInterpretation.newElements(interpretation,element); 15163 PartialInterpretation.newElements(interpretation,element);
16081 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
16082 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
16083 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 15164 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
15165 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
16084 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 15166 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
15167 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
16085 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 15168 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
16086 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
16087 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation); 15169 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
16088 neg find isPrimitive(element); 15170 neg find isPrimitive(element);
16089} or { 15171} or {
16090 find interpretation(problem,interpretation); 15172 find interpretation(problem,interpretation);
16091 PartialInterpretation.openWorldElements(interpretation,element); 15173 PartialInterpretation.openWorldElements(interpretation,element);
16092 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
16093 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
16094 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 15174 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
15175 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
16095 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 15176 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
15177 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
16096 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 15178 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
16097 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
16098 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation); 15179 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
16099 neg find isPrimitive(element); 15180 neg find isPrimitive(element);
16100} or 15181} or
@@ -16122,20 +15203,20 @@ private pattern mayInstanceOfFunction_class(problem:LogicProblem, interpretation
16122{ 15203{
16123 find interpretation(problem,interpretation); 15204 find interpretation(problem,interpretation);
16124 PartialInterpretation.newElements(interpretation,element); 15205 PartialInterpretation.newElements(interpretation,element);
16125 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
16126 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
16127 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 15206 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
16128 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 15207 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
15208 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
15209 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
16129 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 15210 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
16130 neg find scopeDisallowsNewFunction_class(problem, interpretation); 15211 neg find scopeDisallowsNewFunction_class(problem, interpretation);
16131 neg find isPrimitive(element); 15212 neg find isPrimitive(element);
16132} or { 15213} or {
16133 find interpretation(problem,interpretation); 15214 find interpretation(problem,interpretation);
16134 PartialInterpretation.openWorldElements(interpretation,element); 15215 PartialInterpretation.openWorldElements(interpretation,element);
16135 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
16136 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
16137 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 15216 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
16138 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 15217 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
15218 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
15219 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
16139 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 15220 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
16140 neg find scopeDisallowsNewFunction_class(problem, interpretation); 15221 neg find scopeDisallowsNewFunction_class(problem, interpretation);
16141 neg find isPrimitive(element); 15222 neg find isPrimitive(element);
@@ -16164,21 +15245,21 @@ private pattern mayInstanceOfFAMTerminator_class(problem:LogicProblem, interpret
16164{ 15245{
16165 find interpretation(problem,interpretation); 15246 find interpretation(problem,interpretation);
16166 PartialInterpretation.newElements(interpretation,element); 15247 PartialInterpretation.newElements(interpretation,element);
16167 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
16168 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 15248 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
15249 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
16169 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 15250 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
15251 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
16170 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 15252 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
16171 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
16172 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation); 15253 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
16173 neg find isPrimitive(element); 15254 neg find isPrimitive(element);
16174} or { 15255} or {
16175 find interpretation(problem,interpretation); 15256 find interpretation(problem,interpretation);
16176 PartialInterpretation.openWorldElements(interpretation,element); 15257 PartialInterpretation.openWorldElements(interpretation,element);
16177 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
16178 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 15258 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
15259 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
16179 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 15260 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
15261 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
16180 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 15262 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
16181 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
16182 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation); 15263 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
16183 neg find isPrimitive(element); 15264 neg find isPrimitive(element);
16184} or 15265} or
@@ -16206,21 +15287,21 @@ private pattern mayInstanceOfInformationLink_class(problem:LogicProblem, interpr
16206{ 15287{
16207 find interpretation(problem,interpretation); 15288 find interpretation(problem,interpretation);
16208 PartialInterpretation.newElements(interpretation,element); 15289 PartialInterpretation.newElements(interpretation,element);
15290 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
16209 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 15291 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
16210 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
16211 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 15292 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
15293 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
16212 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 15294 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
16213 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
16214 neg find scopeDisallowsNewInformationLink_class(problem, interpretation); 15295 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
16215 neg find isPrimitive(element); 15296 neg find isPrimitive(element);
16216} or { 15297} or {
16217 find interpretation(problem,interpretation); 15298 find interpretation(problem,interpretation);
16218 PartialInterpretation.openWorldElements(interpretation,element); 15299 PartialInterpretation.openWorldElements(interpretation,element);
15300 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
16219 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 15301 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
16220 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
16221 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 15302 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
15303 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
16222 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 15304 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
16223 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
16224 neg find scopeDisallowsNewInformationLink_class(problem, interpretation); 15305 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
16225 neg find isPrimitive(element); 15306 neg find isPrimitive(element);
16226} or 15307} or
@@ -16248,21 +15329,21 @@ private pattern mayInstanceOfFunctionalInterface_class(problem:LogicProblem, int
16248{ 15329{
16249 find interpretation(problem,interpretation); 15330 find interpretation(problem,interpretation);
16250 PartialInterpretation.newElements(interpretation,element); 15331 PartialInterpretation.newElements(interpretation,element);
16251 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
16252 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
16253 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 15332 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
16254 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
16255 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 15333 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
15334 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
15335 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
15336 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
16256 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation); 15337 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
16257 neg find isPrimitive(element); 15338 neg find isPrimitive(element);
16258} or { 15339} or {
16259 find interpretation(problem,interpretation); 15340 find interpretation(problem,interpretation);
16260 PartialInterpretation.openWorldElements(interpretation,element); 15341 PartialInterpretation.openWorldElements(interpretation,element);
16261 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
16262 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
16263 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 15342 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
16264 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
16265 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 15343 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
15344 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
15345 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
15346 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
16266 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation); 15347 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
16267 neg find isPrimitive(element); 15348 neg find isPrimitive(element);
16268} or 15349} or
@@ -16290,23 +15371,23 @@ private pattern mayInstanceOfFunctionalInput_class(problem:LogicProblem, interpr
16290{ 15371{
16291 find interpretation(problem,interpretation); 15372 find interpretation(problem,interpretation);
16292 PartialInterpretation.newElements(interpretation,element); 15373 PartialInterpretation.newElements(interpretation,element);
15374 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
16293 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 15375 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
15376 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
16294 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 15377 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
16295 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 15378 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
16296 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
16297 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 15379 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
16298 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
16299 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation); 15380 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
16300 neg find isPrimitive(element); 15381 neg find isPrimitive(element);
16301} or { 15382} or {
16302 find interpretation(problem,interpretation); 15383 find interpretation(problem,interpretation);
16303 PartialInterpretation.openWorldElements(interpretation,element); 15384 PartialInterpretation.openWorldElements(interpretation,element);
15385 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
16304 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 15386 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
15387 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
16305 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 15388 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
16306 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 15389 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
16307 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
16308 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 15390 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
16309 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
16310 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation); 15391 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
16311 neg find isPrimitive(element); 15392 neg find isPrimitive(element);
16312} or 15393} or
@@ -16334,23 +15415,23 @@ private pattern mayInstanceOfFunctionalOutput_class(problem:LogicProblem, interp
16334{ 15415{
16335 find interpretation(problem,interpretation); 15416 find interpretation(problem,interpretation);
16336 PartialInterpretation.newElements(interpretation,element); 15417 PartialInterpretation.newElements(interpretation,element);
16337 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
16338 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
16339 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); 15418 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
16340 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 15419 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
16341 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
16342 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 15420 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
15421 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
15422 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
15423 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
16343 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation); 15424 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
16344 neg find isPrimitive(element); 15425 neg find isPrimitive(element);
16345} or { 15426} or {
16346 find interpretation(problem,interpretation); 15427 find interpretation(problem,interpretation);
16347 PartialInterpretation.openWorldElements(interpretation,element); 15428 PartialInterpretation.openWorldElements(interpretation,element);
16348 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
16349 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
16350 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); 15429 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
16351 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 15430 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
16352 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
16353 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 15431 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
15432 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
15433 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
15434 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
16354 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation); 15435 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
16355 neg find isPrimitive(element); 15436 neg find isPrimitive(element);
16356} or 15437} or
@@ -16378,25 +15459,25 @@ private pattern mayInstanceOfFunctionalData_class(problem:LogicProblem, interpre
16378{ 15459{
16379 find interpretation(problem,interpretation); 15460 find interpretation(problem,interpretation);
16380 PartialInterpretation.newElements(interpretation,element); 15461 PartialInterpretation.newElements(interpretation,element);
15462 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
15463 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
16381 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 15464 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
15465 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
16382 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 15466 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
16383 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 15467 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
16384 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
16385 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
16386 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 15468 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
16387 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
16388 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation); 15469 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
16389 neg find isPrimitive(element); 15470 neg find isPrimitive(element);
16390} or { 15471} or {
16391 find interpretation(problem,interpretation); 15472 find interpretation(problem,interpretation);
16392 PartialInterpretation.openWorldElements(interpretation,element); 15473 PartialInterpretation.openWorldElements(interpretation,element);
15474 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
15475 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
16393 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 15476 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
15477 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
16394 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 15478 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
16395 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 15479 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
16396 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
16397 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
16398 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 15480 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
16399 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
16400 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation); 15481 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
16401 neg find isPrimitive(element); 15482 neg find isPrimitive(element);
16402} or 15483} or
@@ -16422,69 +15503,6 @@ private pattern scopeDisallowsNewFunctionType_enum(problem:LogicProblem, interpr
16422 */ 15503 */
16423private pattern mayInstanceOfFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 15504private pattern mayInstanceOfFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
16424{ find mustInstanceOfFunctionType_enum(problem,interpretation,element); } 15505{ find mustInstanceOfFunctionType_enum(problem,interpretation,element); }
16425/**
16426 * An element must be an instance of type "FunctionalArchitectureModel class DefinedPart".
16427 */
16428private pattern mustInstanceOfFunctionalArchitectureModel_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
16429 Type.name(type,"FunctionalArchitectureModel class DefinedPart");
16430 find directInstanceOf(problem,interpretation,element,type);
16431}
16432private pattern scopeDisallowsNewFunctionalArchitectureModel_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
16433 find interpretation(problem,interpretation);
16434 PartialInterpretation.scopes(interpretation,scope);
16435 Scope.targetTypeInterpretation(scope,typeInterpretation);
16436 Scope.maxNewElements(scope,0);
16437 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
16438 Type.name(type,"FunctionalArchitectureModel class DefinedPart");
16439}
16440
16441/**
16442 * An element may be an instance of type "FunctionalArchitectureModel class DefinedPart".
16443 */
16444private pattern mayInstanceOfFunctionalArchitectureModel_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
16445{ find mustInstanceOfFunctionalArchitectureModel_class_DefinedPart(problem,interpretation,element); }
16446/**
16447 * An element must be an instance of type "FunctionalArchitectureModel class UndefinedPart".
16448 */
16449private pattern mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
16450 Type.name(type,"FunctionalArchitectureModel class UndefinedPart");
16451 find directInstanceOf(problem,interpretation,element,type);
16452}
16453private pattern scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
16454 find interpretation(problem,interpretation);
16455 PartialInterpretation.scopes(interpretation,scope);
16456 Scope.targetTypeInterpretation(scope,typeInterpretation);
16457 Scope.maxNewElements(scope,0);
16458 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
16459 Type.name(type,"FunctionalArchitectureModel class UndefinedPart");
16460}
16461
16462/**
16463 * An element may be an instance of type "FunctionalArchitectureModel class UndefinedPart".
16464 */
16465private pattern mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
16466{
16467 find interpretation(problem,interpretation);
16468 PartialInterpretation.newElements(interpretation,element);
16469 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
16470 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
16471 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
16472 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
16473 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
16474 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation);
16475 neg find isPrimitive(element);
16476} or {
16477 find interpretation(problem,interpretation);
16478 PartialInterpretation.openWorldElements(interpretation,element);
16479 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
16480 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
16481 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
16482 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
16483 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
16484 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation);
16485 neg find isPrimitive(element);
16486} or
16487{ find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); }
16488 15506
16489////////// 15507//////////
16490// 1.2 Relation Declaration Indexers 15508// 1.2 Relation Declaration Indexers
@@ -17162,23 +16180,15 @@ pattern unfinishedLowerMultiplicity_type_attribute_Function(problem:LogicProblem
17162private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation) 16180private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation)
17163{ 16181{
17164 find interpretation(problem,interpretation); 16182 find interpretation(problem,interpretation);
17165 find mustInstanceOfFunction_class(problem,interpretation,root); 16183 find mustInstanceOfFunctionalInterface_class(problem,interpretation,root);
17166 find mustExist(problem, interpretation, root);
17167}or{
17168 find interpretation(problem,interpretation);
17169 find mustInstanceOfFunctionalElement_class(problem,interpretation,root);
17170 find mustExist(problem, interpretation, root);
17171}or{
17172 find interpretation(problem,interpretation);
17173 find mustInstanceOfFunctionalOutput_class(problem,interpretation,root);
17174 find mustExist(problem, interpretation, root); 16184 find mustExist(problem, interpretation, root);
17175}or{ 16185}or{
17176 find interpretation(problem,interpretation); 16186 find interpretation(problem,interpretation);
17177 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,root); 16187 find mustInstanceOfInformationLink_class(problem,interpretation,root);
17178 find mustExist(problem, interpretation, root); 16188 find mustExist(problem, interpretation, root);
17179}or{ 16189}or{
17180 find interpretation(problem,interpretation); 16190 find interpretation(problem,interpretation);
17181 find mustInstanceOfFunctionalData_class(problem,interpretation,root); 16191 find mustInstanceOfFunctionalElement_class(problem,interpretation,root);
17182 find mustExist(problem, interpretation, root); 16192 find mustExist(problem, interpretation, root);
17183}or{ 16193}or{
17184 find interpretation(problem,interpretation); 16194 find interpretation(problem,interpretation);
@@ -17186,7 +16196,7 @@ private pattern hasElementInContainment(problem:LogicProblem, interpretation:Par
17186 find mustExist(problem, interpretation, root); 16196 find mustExist(problem, interpretation, root);
17187}or{ 16197}or{
17188 find interpretation(problem,interpretation); 16198 find interpretation(problem,interpretation);
17189 find mustInstanceOfFunctionalInterface_class(problem,interpretation,root); 16199 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,root);
17190 find mustExist(problem, interpretation, root); 16200 find mustExist(problem, interpretation, root);
17191}or{ 16201}or{
17192 find interpretation(problem,interpretation); 16202 find interpretation(problem,interpretation);
@@ -17194,72 +16204,74 @@ private pattern hasElementInContainment(problem:LogicProblem, interpretation:Par
17194 find mustExist(problem, interpretation, root); 16204 find mustExist(problem, interpretation, root);
17195}or{ 16205}or{
17196 find interpretation(problem,interpretation); 16206 find interpretation(problem,interpretation);
17197 find mustInstanceOfInformationLink_class(problem,interpretation,root); 16207 find mustInstanceOfFunction_class(problem,interpretation,root);
17198 find mustExist(problem, interpretation, root); 16208 find mustExist(problem, interpretation, root);
17199}or{ 16209}or{
17200 find interpretation(problem,interpretation); 16210 find interpretation(problem,interpretation);
17201 find mustInstanceOfFunctionalArchitectureModel_class_DefinedPart(problem,interpretation,root); 16211 find mustInstanceOfFunctionalOutput_class(problem,interpretation,root);
17202 find mustExist(problem, interpretation, root); 16212 find mustExist(problem, interpretation, root);
17203}or{ 16213}or{
17204 find interpretation(problem,interpretation); 16214 find interpretation(problem,interpretation);
17205 find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,root); 16215 find mustInstanceOfFunctionalData_class(problem,interpretation,root);
17206 find mustExist(problem, interpretation, root); 16216 find mustExist(problem, interpretation, root);
17207} 16217}
17208pattern createObject_Function_class_by_rootElements_reference_FunctionalArchitectureModel( 16218pattern createObject_FunctionalInput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData(
17209 problem:LogicProblem, interpretation:PartialInterpretation, 16219 problem:LogicProblem, interpretation:PartialInterpretation,
17210 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 16220 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
17211 container:DefinedElement) 16221 container:DefinedElement)
17212{ 16222{
17213 find interpretation(problem,interpretation); 16223 find interpretation(problem,interpretation);
17214 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 16224 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
17215 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class"); 16225 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class");
17216 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 16226 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
17217 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"rootElements reference FunctionalArchitectureModel"); 16227 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface");
17218 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,container); 16228 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
17219 find mayInstanceOfFunction_class(problem,interpretation,newObject); 16229 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData");
17220 find mayInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,container,newObject); 16230 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container);
16231 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
16232 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject);
17221 find mustExist(problem, interpretation, container); 16233 find mustExist(problem, interpretation, container);
17222 neg find mustExist(problem, interpretation, newObject); 16234 neg find mustExist(problem, interpretation, newObject);
17223} 16235}
17224pattern createObject_Function_class_by_subElements_reference_Function_with_parent_reference_FunctionalElement( 16236pattern createObject_FunctionalInput_class(
17225 problem:LogicProblem, interpretation:PartialInterpretation, 16237 problem:LogicProblem, interpretation:PartialInterpretation,
17226 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 16238 typeInterpretation:PartialComplexTypeInterpretation)
17227 container:DefinedElement)
17228{ 16239{
17229 find interpretation(problem,interpretation); 16240 find interpretation(problem,interpretation);
16241 neg find hasElementInContainment(problem,interpretation);
17230 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 16242 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
17231 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class"); 16243 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class");
17232 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 16244 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
17233 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"subElements reference Function"); 16245 find mayExist(problem, interpretation, newObject);
17234 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
17235 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"parent reference FunctionalElement");
17236 find mustInstanceOfFunction_class(problem,interpretation,container);
17237 find mayInstanceOfFunction_class(problem,interpretation,newObject);
17238 find mayInRelationsubElements_reference_Function(problem,interpretation,container,newObject);
17239 find mustExist(problem, interpretation, container);
17240 neg find mustExist(problem, interpretation, newObject); 16246 neg find mustExist(problem, interpretation, newObject);
17241} 16247}
17242pattern createObject_Function_class( 16248pattern createObject_InformationLink_class_by_outgoingLinks_reference_FunctionalOutput_with_from_reference_InformationLink(
17243 problem:LogicProblem, interpretation:PartialInterpretation, 16249 problem:LogicProblem, interpretation:PartialInterpretation,
17244 typeInterpretation:PartialComplexTypeInterpretation) 16250 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
16251 container:DefinedElement)
17245{ 16252{
17246 find interpretation(problem,interpretation); 16253 find interpretation(problem,interpretation);
17247 neg find hasElementInContainment(problem,interpretation);
17248 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 16254 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
17249 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class"); 16255 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class");
17250 find mayInstanceOfFunction_class(problem,interpretation,newObject); 16256 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
17251 find mayExist(problem, interpretation, newObject); 16257 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"outgoingLinks reference FunctionalOutput");
16258 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
16259 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"from reference InformationLink");
16260 find mustInstanceOfFunctionalOutput_class(problem,interpretation,container);
16261 find mayInstanceOfInformationLink_class(problem,interpretation,newObject);
16262 find mayInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,container,newObject);
16263 find mustExist(problem, interpretation, container);
17252 neg find mustExist(problem, interpretation, newObject); 16264 neg find mustExist(problem, interpretation, newObject);
17253} 16265}
17254pattern createObject_FunctionalArchitectureModel_class_UndefinedPart( 16266pattern createObject_InformationLink_class(
17255 problem:LogicProblem, interpretation:PartialInterpretation, 16267 problem:LogicProblem, interpretation:PartialInterpretation,
17256 typeInterpretation:PartialComplexTypeInterpretation) 16268 typeInterpretation:PartialComplexTypeInterpretation)
17257{ 16269{
17258 find interpretation(problem,interpretation); 16270 find interpretation(problem,interpretation);
17259 neg find hasElementInContainment(problem,interpretation); 16271 neg find hasElementInContainment(problem,interpretation);
17260 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 16272 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
17261 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalArchitectureModel class UndefinedPart"); 16273 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class");
17262 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,newObject); 16274 find mayInstanceOfInformationLink_class(problem,interpretation,newObject);
17263 find mayExist(problem, interpretation, newObject); 16275 find mayExist(problem, interpretation, newObject);
17264 neg find mustExist(problem, interpretation, newObject); 16276 neg find mustExist(problem, interpretation, newObject);
17265} 16277}
@@ -17323,63 +16335,61 @@ pattern createObject_FAMTerminator_class(
17323 find mayExist(problem, interpretation, newObject); 16335 find mayExist(problem, interpretation, newObject);
17324 neg find mustExist(problem, interpretation, newObject); 16336 neg find mustExist(problem, interpretation, newObject);
17325} 16337}
17326pattern createObject_FunctionalInput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData( 16338pattern createObject_FunctionalArchitectureModel_class(
17327 problem:LogicProblem, interpretation:PartialInterpretation, 16339 problem:LogicProblem, interpretation:PartialInterpretation,
17328 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 16340 typeInterpretation:PartialComplexTypeInterpretation)
17329 container:DefinedElement)
17330{ 16341{
17331 find interpretation(problem,interpretation); 16342 find interpretation(problem,interpretation);
16343 neg find hasElementInContainment(problem,interpretation);
17332 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 16344 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
17333 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class"); 16345 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalArchitectureModel class");
17334 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 16346 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,newObject);
17335 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface"); 16347 find mayExist(problem, interpretation, newObject);
17336 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
17337 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData");
17338 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container);
17339 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
17340 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject);
17341 find mustExist(problem, interpretation, container);
17342 neg find mustExist(problem, interpretation, newObject); 16348 neg find mustExist(problem, interpretation, newObject);
17343} 16349}
17344pattern createObject_FunctionalInput_class( 16350pattern createObject_Function_class_by_rootElements_reference_FunctionalArchitectureModel(
17345 problem:LogicProblem, interpretation:PartialInterpretation, 16351 problem:LogicProblem, interpretation:PartialInterpretation,
17346 typeInterpretation:PartialComplexTypeInterpretation) 16352 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
16353 container:DefinedElement)
17347{ 16354{
17348 find interpretation(problem,interpretation); 16355 find interpretation(problem,interpretation);
17349 neg find hasElementInContainment(problem,interpretation);
17350 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 16356 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
17351 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class"); 16357 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class");
17352 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject); 16358 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
17353 find mayExist(problem, interpretation, newObject); 16359 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"rootElements reference FunctionalArchitectureModel");
16360 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,container);
16361 find mayInstanceOfFunction_class(problem,interpretation,newObject);
16362 find mayInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,container,newObject);
16363 find mustExist(problem, interpretation, container);
17354 neg find mustExist(problem, interpretation, newObject); 16364 neg find mustExist(problem, interpretation, newObject);
17355} 16365}
17356pattern createObject_InformationLink_class_by_outgoingLinks_reference_FunctionalOutput_with_from_reference_InformationLink( 16366pattern createObject_Function_class_by_subElements_reference_Function_with_parent_reference_FunctionalElement(
17357 problem:LogicProblem, interpretation:PartialInterpretation, 16367 problem:LogicProblem, interpretation:PartialInterpretation,
17358 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 16368 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
17359 container:DefinedElement) 16369 container:DefinedElement)
17360{ 16370{
17361 find interpretation(problem,interpretation); 16371 find interpretation(problem,interpretation);
17362 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 16372 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
17363 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class"); 16373 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class");
17364 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 16374 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
17365 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"outgoingLinks reference FunctionalOutput"); 16375 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"subElements reference Function");
17366 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 16376 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
17367 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"from reference InformationLink"); 16377 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"parent reference FunctionalElement");
17368 find mustInstanceOfFunctionalOutput_class(problem,interpretation,container); 16378 find mustInstanceOfFunction_class(problem,interpretation,container);
17369 find mayInstanceOfInformationLink_class(problem,interpretation,newObject); 16379 find mayInstanceOfFunction_class(problem,interpretation,newObject);
17370 find mayInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,container,newObject); 16380 find mayInRelationsubElements_reference_Function(problem,interpretation,container,newObject);
17371 find mustExist(problem, interpretation, container); 16381 find mustExist(problem, interpretation, container);
17372 neg find mustExist(problem, interpretation, newObject); 16382 neg find mustExist(problem, interpretation, newObject);
17373} 16383}
17374pattern createObject_InformationLink_class( 16384pattern createObject_Function_class(
17375 problem:LogicProblem, interpretation:PartialInterpretation, 16385 problem:LogicProblem, interpretation:PartialInterpretation,
17376 typeInterpretation:PartialComplexTypeInterpretation) 16386 typeInterpretation:PartialComplexTypeInterpretation)
17377{ 16387{
17378 find interpretation(problem,interpretation); 16388 find interpretation(problem,interpretation);
17379 neg find hasElementInContainment(problem,interpretation); 16389 neg find hasElementInContainment(problem,interpretation);
17380 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 16390 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
17381 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class"); 16391 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class");
17382 find mayInstanceOfInformationLink_class(problem,interpretation,newObject); 16392 find mayInstanceOfFunction_class(problem,interpretation,newObject);
17383 find mayExist(problem, interpretation, newObject); 16393 find mayExist(problem, interpretation, newObject);
17384 neg find mustExist(problem, interpretation, newObject); 16394 neg find mustExist(problem, interpretation, newObject);
17385} 16395}
@@ -17417,84 +16427,84 @@ pattern createObject_FunctionalInterface_class(
17417////////// 16427//////////
17418// 4.2 Type refinement 16428// 4.2 Type refinement
17419////////// 16429//////////
17420pattern refineTypeTo_Function_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 16430pattern refineTypeTo_FunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
17421 find interpretation(problem,interpretation); 16431 find interpretation(problem,interpretation);
17422 PartialInterpretation.newElements(interpretation,element); 16432 PartialInterpretation.newElements(interpretation,element);
17423 find mayInstanceOfFunction_class(problem,interpretation,element); 16433 find mayInstanceOfFunctionalInput_class(problem,interpretation,element);
17424 neg find mustInstanceOfFunction_class(problem,interpretation,element); 16434 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
16435 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
16436 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
16437 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
17425 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 16438 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
17426 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 16439 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
17427 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
17428 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
17429 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 16440 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
17430} 16441}
17431pattern refineTypeTo_FunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 16442pattern refineTypeTo_InformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
17432 find interpretation(problem,interpretation); 16443 find interpretation(problem,interpretation);
17433 PartialInterpretation.newElements(interpretation,element); 16444 PartialInterpretation.newElements(interpretation,element);
17434 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); 16445 find mayInstanceOfInformationLink_class(problem,interpretation,element);
17435 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
17436 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
17437 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 16446 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
16447 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
16448 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
17438 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 16449 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
16450 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
17439 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 16451 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
17440 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
17441} 16452}
17442pattern refineTypeTo_FunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 16453pattern refineTypeTo_FunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
17443 find interpretation(problem,interpretation); 16454 find interpretation(problem,interpretation);
17444 PartialInterpretation.newElements(interpretation,element); 16455 PartialInterpretation.newElements(interpretation,element);
17445 find mayInstanceOfFunctionalOutput_class(problem,interpretation,element); 16456 find mayInstanceOfFunctionalOutput_class(problem,interpretation,element);
16457 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
16458 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
17446 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 16459 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
16460 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
17447 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 16461 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
17448 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 16462 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
17449 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
17450 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
17451 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 16463 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
17452 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
17453} 16464}
17454pattern refineTypeTo_FAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 16465pattern refineTypeTo_FAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
17455 find interpretation(problem,interpretation); 16466 find interpretation(problem,interpretation);
17456 PartialInterpretation.newElements(interpretation,element); 16467 PartialInterpretation.newElements(interpretation,element);
17457 find mayInstanceOfFAMTerminator_class(problem,interpretation,element); 16468 find mayInstanceOfFAMTerminator_class(problem,interpretation,element);
17458 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
17459 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
17460 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 16469 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
16470 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
16471 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
17461 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 16472 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
16473 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
17462 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 16474 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
17463 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
17464} 16475}
17465pattern refineTypeTo_FunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 16476pattern refineTypeTo_FunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
17466 find interpretation(problem,interpretation); 16477 find interpretation(problem,interpretation);
17467 PartialInterpretation.newElements(interpretation,element); 16478 PartialInterpretation.newElements(interpretation,element);
17468 find mayInstanceOfFunctionalInput_class(problem,interpretation,element); 16479 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
17469 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 16480 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
16481 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
16482 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
17470 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 16483 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
17471 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 16484 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
17472 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
17473 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
17474 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 16485 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
17475 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
17476} 16486}
17477pattern refineTypeTo_InformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 16487pattern refineTypeTo_Function_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
17478 find interpretation(problem,interpretation); 16488 find interpretation(problem,interpretation);
17479 PartialInterpretation.newElements(interpretation,element); 16489 PartialInterpretation.newElements(interpretation,element);
17480 find mayInstanceOfInformationLink_class(problem,interpretation,element); 16490 find mayInstanceOfFunction_class(problem,interpretation,element);
17481 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
17482 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
17483 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 16491 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
17484 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 16492 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
16493 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
16494 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
16495 neg find mustInstanceOfFunction_class(problem,interpretation,element);
17485 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 16496 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
17486 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
17487} 16497}
17488pattern refineTypeTo_FunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 16498pattern refineTypeTo_FunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
17489 find interpretation(problem,interpretation); 16499 find interpretation(problem,interpretation);
17490 PartialInterpretation.newElements(interpretation,element); 16500 PartialInterpretation.newElements(interpretation,element);
17491 find mayInstanceOfFunctionalInterface_class(problem,interpretation,element); 16501 find mayInstanceOfFunctionalInterface_class(problem,interpretation,element);
17492 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
17493 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
17494 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 16502 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
16503 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
17495 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 16504 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
16505 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
16506 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
17496 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 16507 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
17497 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
17498} 16508}
17499 16509
17500////////// 16510//////////
@@ -17653,22 +16663,22 @@ private pattern mayInstanceOfFunctionalElement_class(problem:LogicProblem, inter
17653{ 16663{
17654 find interpretation(problem,interpretation); 16664 find interpretation(problem,interpretation);
17655 PartialInterpretation.newElements(interpretation,element); 16665 PartialInterpretation.newElements(interpretation,element);
16666 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
16667 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
17656 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 16668 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
17657 neg find mustInstanceOfFunction_class(problem,interpretation,element); 16669 neg find mustInstanceOfFunction_class(problem,interpretation,element);
17658 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 16670 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
17659 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
17660 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
17661 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 16671 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
17662 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation); 16672 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
17663 neg find isPrimitive(element); 16673 neg find isPrimitive(element);
17664} or { 16674} or {
17665 find interpretation(problem,interpretation); 16675 find interpretation(problem,interpretation);
17666 PartialInterpretation.openWorldElements(interpretation,element); 16676 PartialInterpretation.openWorldElements(interpretation,element);
16677 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
16678 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
17667 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 16679 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
17668 neg find mustInstanceOfFunction_class(problem,interpretation,element); 16680 neg find mustInstanceOfFunction_class(problem,interpretation,element);
17669 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 16681 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
17670 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
17671 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
17672 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 16682 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
17673 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation); 16683 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
17674 neg find isPrimitive(element); 16684 neg find isPrimitive(element);
@@ -17697,22 +16707,22 @@ private pattern mayInstanceOfFunctionalArchitectureModel_class(problem:LogicProb
17697{ 16707{
17698 find interpretation(problem,interpretation); 16708 find interpretation(problem,interpretation);
17699 PartialInterpretation.newElements(interpretation,element); 16709 PartialInterpretation.newElements(interpretation,element);
17700 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); 16710 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
17701 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 16711 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
17702 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 16712 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
17703 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 16713 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
17704 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 16714 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
17705 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 16715 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
17706 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation); 16716 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
17707 neg find isPrimitive(element); 16717 neg find isPrimitive(element);
17708} or { 16718} or {
17709 find interpretation(problem,interpretation); 16719 find interpretation(problem,interpretation);
17710 PartialInterpretation.openWorldElements(interpretation,element); 16720 PartialInterpretation.openWorldElements(interpretation,element);
17711 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); 16721 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
17712 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 16722 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
17713 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 16723 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
17714 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 16724 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
17715 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 16725 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
17716 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 16726 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
17717 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation); 16727 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
17718 neg find isPrimitive(element); 16728 neg find isPrimitive(element);
@@ -17741,21 +16751,21 @@ private pattern mayInstanceOfFunction_class(problem:LogicProblem, interpretation
17741{ 16751{
17742 find interpretation(problem,interpretation); 16752 find interpretation(problem,interpretation);
17743 PartialInterpretation.newElements(interpretation,element); 16753 PartialInterpretation.newElements(interpretation,element);
17744 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
17745 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
17746 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
17747 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 16754 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
16755 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
16756 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
17748 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 16757 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
16758 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
17749 neg find scopeDisallowsNewFunction_class(problem, interpretation); 16759 neg find scopeDisallowsNewFunction_class(problem, interpretation);
17750 neg find isPrimitive(element); 16760 neg find isPrimitive(element);
17751} or { 16761} or {
17752 find interpretation(problem,interpretation); 16762 find interpretation(problem,interpretation);
17753 PartialInterpretation.openWorldElements(interpretation,element); 16763 PartialInterpretation.openWorldElements(interpretation,element);
17754 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
17755 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
17756 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
17757 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 16764 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
16765 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
16766 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
17758 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 16767 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
16768 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
17759 neg find scopeDisallowsNewFunction_class(problem, interpretation); 16769 neg find scopeDisallowsNewFunction_class(problem, interpretation);
17760 neg find isPrimitive(element); 16770 neg find isPrimitive(element);
17761} or 16771} or
@@ -17783,20 +16793,20 @@ private pattern mayInstanceOfFAMTerminator_class(problem:LogicProblem, interpret
17783{ 16793{
17784 find interpretation(problem,interpretation); 16794 find interpretation(problem,interpretation);
17785 PartialInterpretation.newElements(interpretation,element); 16795 PartialInterpretation.newElements(interpretation,element);
16796 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
17786 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 16797 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
17787 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
17788 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 16798 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
17789 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 16799 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
17790 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 16800 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
17791 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation); 16801 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
17792 neg find isPrimitive(element); 16802 neg find isPrimitive(element);
17793} or { 16803} or {
17794 find interpretation(problem,interpretation); 16804 find interpretation(problem,interpretation);
17795 PartialInterpretation.openWorldElements(interpretation,element); 16805 PartialInterpretation.openWorldElements(interpretation,element);
16806 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
17796 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 16807 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
17797 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
17798 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 16808 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
17799 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 16809 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
17800 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 16810 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
17801 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation); 16811 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
17802 neg find isPrimitive(element); 16812 neg find isPrimitive(element);
@@ -17826,9 +16836,9 @@ private pattern mayInstanceOfInformationLink_class(problem:LogicProblem, interpr
17826 find interpretation(problem,interpretation); 16836 find interpretation(problem,interpretation);
17827 PartialInterpretation.newElements(interpretation,element); 16837 PartialInterpretation.newElements(interpretation,element);
17828 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 16838 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
17829 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
17830 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
17831 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 16839 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
16840 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
16841 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
17832 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 16842 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
17833 neg find scopeDisallowsNewInformationLink_class(problem, interpretation); 16843 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
17834 neg find isPrimitive(element); 16844 neg find isPrimitive(element);
@@ -17836,9 +16846,9 @@ private pattern mayInstanceOfInformationLink_class(problem:LogicProblem, interpr
17836 find interpretation(problem,interpretation); 16846 find interpretation(problem,interpretation);
17837 PartialInterpretation.openWorldElements(interpretation,element); 16847 PartialInterpretation.openWorldElements(interpretation,element);
17838 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 16848 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
17839 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
17840 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
17841 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 16849 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
16850 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
16851 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
17842 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 16852 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
17843 neg find scopeDisallowsNewInformationLink_class(problem, interpretation); 16853 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
17844 neg find isPrimitive(element); 16854 neg find isPrimitive(element);
@@ -17867,21 +16877,21 @@ private pattern mayInstanceOfFunctionalInterface_class(problem:LogicProblem, int
17867{ 16877{
17868 find interpretation(problem,interpretation); 16878 find interpretation(problem,interpretation);
17869 PartialInterpretation.newElements(interpretation,element); 16879 PartialInterpretation.newElements(interpretation,element);
16880 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
16881 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
17870 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 16882 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
17871 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
17872 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 16883 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
17873 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 16884 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
17874 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
17875 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation); 16885 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
17876 neg find isPrimitive(element); 16886 neg find isPrimitive(element);
17877} or { 16887} or {
17878 find interpretation(problem,interpretation); 16888 find interpretation(problem,interpretation);
17879 PartialInterpretation.openWorldElements(interpretation,element); 16889 PartialInterpretation.openWorldElements(interpretation,element);
16890 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
16891 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
17880 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 16892 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
17881 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
17882 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 16893 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
17883 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 16894 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
17884 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
17885 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation); 16895 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
17886 neg find isPrimitive(element); 16896 neg find isPrimitive(element);
17887} or 16897} or
@@ -17909,23 +16919,23 @@ private pattern mayInstanceOfFunctionalInput_class(problem:LogicProblem, interpr
17909{ 16919{
17910 find interpretation(problem,interpretation); 16920 find interpretation(problem,interpretation);
17911 PartialInterpretation.newElements(interpretation,element); 16921 PartialInterpretation.newElements(interpretation,element);
17912 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
17913 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
17914 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
17915 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
17916 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 16922 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
16923 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
16924 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
16925 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
17917 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 16926 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
16927 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
17918 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation); 16928 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
17919 neg find isPrimitive(element); 16929 neg find isPrimitive(element);
17920} or { 16930} or {
17921 find interpretation(problem,interpretation); 16931 find interpretation(problem,interpretation);
17922 PartialInterpretation.openWorldElements(interpretation,element); 16932 PartialInterpretation.openWorldElements(interpretation,element);
17923 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
17924 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
17925 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
17926 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
17927 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 16933 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
16934 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
16935 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
16936 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
17928 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 16937 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
16938 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
17929 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation); 16939 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
17930 neg find isPrimitive(element); 16940 neg find isPrimitive(element);
17931} or 16941} or
@@ -17953,23 +16963,23 @@ private pattern mayInstanceOfFunctionalOutput_class(problem:LogicProblem, interp
17953{ 16963{
17954 find interpretation(problem,interpretation); 16964 find interpretation(problem,interpretation);
17955 PartialInterpretation.newElements(interpretation,element); 16965 PartialInterpretation.newElements(interpretation,element);
17956 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 16966 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
16967 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
17957 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); 16968 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
17958 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 16969 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
17959 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
17960 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
17961 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 16970 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
16971 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
17962 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation); 16972 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
17963 neg find isPrimitive(element); 16973 neg find isPrimitive(element);
17964} or { 16974} or {
17965 find interpretation(problem,interpretation); 16975 find interpretation(problem,interpretation);
17966 PartialInterpretation.openWorldElements(interpretation,element); 16976 PartialInterpretation.openWorldElements(interpretation,element);
17967 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 16977 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
16978 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
17968 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); 16979 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
17969 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 16980 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
17970 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
17971 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
17972 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 16981 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
16982 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
17973 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation); 16983 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
17974 neg find isPrimitive(element); 16984 neg find isPrimitive(element);
17975} or 16985} or
@@ -17997,25 +17007,25 @@ private pattern mayInstanceOfFunctionalData_class(problem:LogicProblem, interpre
17997{ 17007{
17998 find interpretation(problem,interpretation); 17008 find interpretation(problem,interpretation);
17999 PartialInterpretation.newElements(interpretation,element); 17009 PartialInterpretation.newElements(interpretation,element);
18000 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 17010 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
18001 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 17011 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
18002 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); 17012 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
18003 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 17013 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
18004 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 17014 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
18005 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
18006 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 17015 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
17016 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
18007 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation); 17017 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
18008 neg find isPrimitive(element); 17018 neg find isPrimitive(element);
18009} or { 17019} or {
18010 find interpretation(problem,interpretation); 17020 find interpretation(problem,interpretation);
18011 PartialInterpretation.openWorldElements(interpretation,element); 17021 PartialInterpretation.openWorldElements(interpretation,element);
18012 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 17022 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
18013 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 17023 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
18014 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); 17024 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
18015 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 17025 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
18016 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 17026 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
18017 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
18018 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 17027 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
17028 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
18019 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation); 17029 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
18020 neg find isPrimitive(element); 17030 neg find isPrimitive(element);
18021} or 17031} or
@@ -18085,20 +17095,20 @@ private pattern mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(pro
18085{ 17095{
18086 find interpretation(problem,interpretation); 17096 find interpretation(problem,interpretation);
18087 PartialInterpretation.newElements(interpretation,element); 17097 PartialInterpretation.newElements(interpretation,element);
17098 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
18088 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 17099 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
18089 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
18090 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 17100 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
18091 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 17101 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
18092 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 17102 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
18093 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation); 17103 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation);
18094 neg find isPrimitive(element); 17104 neg find isPrimitive(element);
18095} or { 17105} or {
18096 find interpretation(problem,interpretation); 17106 find interpretation(problem,interpretation);
18097 PartialInterpretation.openWorldElements(interpretation,element); 17107 PartialInterpretation.openWorldElements(interpretation,element);
17108 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
18098 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 17109 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
18099 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
18100 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 17110 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
18101 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 17111 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
18102 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 17112 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
18103 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation); 17113 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation);
18104 neg find isPrimitive(element); 17114 neg find isPrimitive(element);
@@ -18781,39 +17791,39 @@ pattern unfinishedLowerMultiplicity_type_attribute_Function(problem:LogicProblem
18781private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation) 17791private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation)
18782{ 17792{
18783 find interpretation(problem,interpretation); 17793 find interpretation(problem,interpretation);
18784 find mustInstanceOfFunctionalInput_class(problem,interpretation,root); 17794 find mustInstanceOfFunctionalInterface_class(problem,interpretation,root);
18785 find mustExist(problem, interpretation, root); 17795 find mustExist(problem, interpretation, root);
18786}or{ 17796}or{
18787 find interpretation(problem,interpretation); 17797 find interpretation(problem,interpretation);
18788 find mustInstanceOfFAMTerminator_class(problem,interpretation,root); 17798 find mustInstanceOfInformationLink_class(problem,interpretation,root);
18789 find mustExist(problem, interpretation, root); 17799 find mustExist(problem, interpretation, root);
18790}or{ 17800}or{
18791 find interpretation(problem,interpretation); 17801 find interpretation(problem,interpretation);
18792 find mustInstanceOfFunctionalData_class(problem,interpretation,root); 17802 find mustInstanceOfFunctionalElement_class(problem,interpretation,root);
18793 find mustExist(problem, interpretation, root); 17803 find mustExist(problem, interpretation, root);
18794}or{ 17804}or{
18795 find interpretation(problem,interpretation); 17805 find interpretation(problem,interpretation);
18796 find mustInstanceOfFunctionalInterface_class(problem,interpretation,root); 17806 find mustInstanceOfFAMTerminator_class(problem,interpretation,root);
18797 find mustExist(problem, interpretation, root); 17807 find mustExist(problem, interpretation, root);
18798}or{ 17808}or{
18799 find interpretation(problem,interpretation); 17809 find interpretation(problem,interpretation);
18800 find mustInstanceOfInformationLink_class(problem,interpretation,root); 17810 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,root);
18801 find mustExist(problem, interpretation, root); 17811 find mustExist(problem, interpretation, root);
18802}or{ 17812}or{
18803 find interpretation(problem,interpretation); 17813 find interpretation(problem,interpretation);
18804 find mustInstanceOfFunctionalOutput_class(problem,interpretation,root); 17814 find mustInstanceOfFunctionalInput_class(problem,interpretation,root);
18805 find mustExist(problem, interpretation, root); 17815 find mustExist(problem, interpretation, root);
18806}or{ 17816}or{
18807 find interpretation(problem,interpretation); 17817 find interpretation(problem,interpretation);
18808 find mustInstanceOfFunctionalElement_class(problem,interpretation,root); 17818 find mustInstanceOfFunction_class(problem,interpretation,root);
18809 find mustExist(problem, interpretation, root); 17819 find mustExist(problem, interpretation, root);
18810}or{ 17820}or{
18811 find interpretation(problem,interpretation); 17821 find interpretation(problem,interpretation);
18812 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,root); 17822 find mustInstanceOfFunctionalOutput_class(problem,interpretation,root);
18813 find mustExist(problem, interpretation, root); 17823 find mustExist(problem, interpretation, root);
18814}or{ 17824}or{
18815 find interpretation(problem,interpretation); 17825 find interpretation(problem,interpretation);
18816 find mustInstanceOfFunction_class(problem,interpretation,root); 17826 find mustInstanceOfFunctionalData_class(problem,interpretation,root);
18817 find mustExist(problem, interpretation, root); 17827 find mustExist(problem, interpretation, root);
18818}or{ 17828}or{
18819 find interpretation(problem,interpretation); 17829 find interpretation(problem,interpretation);
@@ -18824,15 +17834,33 @@ private pattern hasElementInContainment(problem:LogicProblem, interpretation:Par
18824 find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,root); 17834 find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,root);
18825 find mustExist(problem, interpretation, root); 17835 find mustExist(problem, interpretation, root);
18826} 17836}
18827pattern createObject_FunctionalArchitectureModel_class_UndefinedPart( 17837pattern createObject_InformationLink_class_by_outgoingLinks_reference_FunctionalOutput_with_from_reference_InformationLink(
17838 problem:LogicProblem, interpretation:PartialInterpretation,
17839 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
17840 container:DefinedElement)
17841{
17842 find interpretation(problem,interpretation);
17843 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
17844 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class");
17845 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
17846 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"outgoingLinks reference FunctionalOutput");
17847 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
17848 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"from reference InformationLink");
17849 find mustInstanceOfFunctionalOutput_class(problem,interpretation,container);
17850 find mayInstanceOfInformationLink_class(problem,interpretation,newObject);
17851 find mayInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,container,newObject);
17852 find mustExist(problem, interpretation, container);
17853 neg find mustExist(problem, interpretation, newObject);
17854}
17855pattern createObject_InformationLink_class(
18828 problem:LogicProblem, interpretation:PartialInterpretation, 17856 problem:LogicProblem, interpretation:PartialInterpretation,
18829 typeInterpretation:PartialComplexTypeInterpretation) 17857 typeInterpretation:PartialComplexTypeInterpretation)
18830{ 17858{
18831 find interpretation(problem,interpretation); 17859 find interpretation(problem,interpretation);
18832 neg find hasElementInContainment(problem,interpretation); 17860 neg find hasElementInContainment(problem,interpretation);
18833 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 17861 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
18834 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalArchitectureModel class UndefinedPart"); 17862 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class");
18835 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,newObject); 17863 find mayInstanceOfInformationLink_class(problem,interpretation,newObject);
18836 find mayExist(problem, interpretation, newObject); 17864 find mayExist(problem, interpretation, newObject);
18837 neg find mustExist(problem, interpretation, newObject); 17865 neg find mustExist(problem, interpretation, newObject);
18838} 17866}
@@ -18882,153 +17910,135 @@ pattern createObject_Function_class(
18882 find mayExist(problem, interpretation, newObject); 17910 find mayExist(problem, interpretation, newObject);
18883 neg find mustExist(problem, interpretation, newObject); 17911 neg find mustExist(problem, interpretation, newObject);
18884} 17912}
18885pattern createObject_FunctionalOutput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData( 17913pattern createObject_FunctionalInput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData(
18886 problem:LogicProblem, interpretation:PartialInterpretation, 17914 problem:LogicProblem, interpretation:PartialInterpretation,
18887 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 17915 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
18888 container:DefinedElement) 17916 container:DefinedElement)
18889{ 17917{
18890 find interpretation(problem,interpretation); 17918 find interpretation(problem,interpretation);
18891 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 17919 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
18892 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class"); 17920 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class");
18893 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 17921 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
18894 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface"); 17922 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface");
18895 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 17923 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
18896 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData"); 17924 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData");
18897 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container); 17925 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container);
18898 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject); 17926 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
18899 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject); 17927 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject);
18900 find mustExist(problem, interpretation, container); 17928 find mustExist(problem, interpretation, container);
18901 neg find mustExist(problem, interpretation, newObject); 17929 neg find mustExist(problem, interpretation, newObject);
18902} 17930}
18903pattern createObject_FunctionalOutput_class( 17931pattern createObject_FunctionalInput_class(
18904 problem:LogicProblem, interpretation:PartialInterpretation, 17932 problem:LogicProblem, interpretation:PartialInterpretation,
18905 typeInterpretation:PartialComplexTypeInterpretation) 17933 typeInterpretation:PartialComplexTypeInterpretation)
18906{ 17934{
18907 find interpretation(problem,interpretation); 17935 find interpretation(problem,interpretation);
18908 neg find hasElementInContainment(problem,interpretation); 17936 neg find hasElementInContainment(problem,interpretation);
18909 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 17937 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
18910 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class"); 17938 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class");
18911 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject); 17939 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
18912 find mayExist(problem, interpretation, newObject); 17940 find mayExist(problem, interpretation, newObject);
18913 neg find mustExist(problem, interpretation, newObject); 17941 neg find mustExist(problem, interpretation, newObject);
18914} 17942}
18915pattern createObject_FAMTerminator_class_by_terminator_reference_FunctionalData_with_data_reference_FAMTerminator( 17943pattern createObject_FunctionalArchitectureModel_class_UndefinedPart(
18916 problem:LogicProblem, interpretation:PartialInterpretation,
18917 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
18918 container:DefinedElement)
18919{
18920 find interpretation(problem,interpretation);
18921 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
18922 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class");
18923 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
18924 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"terminator reference FunctionalData");
18925 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
18926 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"data reference FAMTerminator");
18927 find mustInstanceOfFunctionalData_class(problem,interpretation,container);
18928 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject);
18929 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,container,newObject);
18930 find mustExist(problem, interpretation, container);
18931 neg find mustExist(problem, interpretation, newObject);
18932}
18933pattern createObject_FAMTerminator_class(
18934 problem:LogicProblem, interpretation:PartialInterpretation, 17944 problem:LogicProblem, interpretation:PartialInterpretation,
18935 typeInterpretation:PartialComplexTypeInterpretation) 17945 typeInterpretation:PartialComplexTypeInterpretation)
18936{ 17946{
18937 find interpretation(problem,interpretation); 17947 find interpretation(problem,interpretation);
18938 neg find hasElementInContainment(problem,interpretation); 17948 neg find hasElementInContainment(problem,interpretation);
18939 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 17949 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
18940 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class"); 17950 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalArchitectureModel class UndefinedPart");
18941 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject); 17951 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,newObject);
18942 find mayExist(problem, interpretation, newObject); 17952 find mayExist(problem, interpretation, newObject);
18943 neg find mustExist(problem, interpretation, newObject); 17953 neg find mustExist(problem, interpretation, newObject);
18944} 17954}
18945pattern createObject_FunctionalInput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData( 17955pattern createObject_FunctionalOutput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData(
18946 problem:LogicProblem, interpretation:PartialInterpretation, 17956 problem:LogicProblem, interpretation:PartialInterpretation,
18947 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 17957 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
18948 container:DefinedElement) 17958 container:DefinedElement)
18949{ 17959{
18950 find interpretation(problem,interpretation); 17960 find interpretation(problem,interpretation);
18951 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 17961 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
18952 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class"); 17962 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class");
18953 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 17963 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
18954 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface"); 17964 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface");
18955 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 17965 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
18956 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData"); 17966 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData");
18957 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container); 17967 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container);
18958 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject); 17968 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject);
18959 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject); 17969 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject);
18960 find mustExist(problem, interpretation, container); 17970 find mustExist(problem, interpretation, container);
18961 neg find mustExist(problem, interpretation, newObject); 17971 neg find mustExist(problem, interpretation, newObject);
18962} 17972}
18963pattern createObject_FunctionalInput_class( 17973pattern createObject_FunctionalOutput_class(
18964 problem:LogicProblem, interpretation:PartialInterpretation, 17974 problem:LogicProblem, interpretation:PartialInterpretation,
18965 typeInterpretation:PartialComplexTypeInterpretation) 17975 typeInterpretation:PartialComplexTypeInterpretation)
18966{ 17976{
18967 find interpretation(problem,interpretation); 17977 find interpretation(problem,interpretation);
18968 neg find hasElementInContainment(problem,interpretation); 17978 neg find hasElementInContainment(problem,interpretation);
18969 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 17979 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
18970 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class"); 17980 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class");
18971 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject); 17981 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject);
18972 find mayExist(problem, interpretation, newObject); 17982 find mayExist(problem, interpretation, newObject);
18973 neg find mustExist(problem, interpretation, newObject); 17983 neg find mustExist(problem, interpretation, newObject);
18974} 17984}
18975pattern createObject_InformationLink_class_by_outgoingLinks_reference_FunctionalOutput_with_from_reference_InformationLink( 17985pattern createObject_FunctionalInterface_class_by_interface_reference_FunctionalElement_with_element_reference_FunctionalInterface(
18976 problem:LogicProblem, interpretation:PartialInterpretation, 17986 problem:LogicProblem, interpretation:PartialInterpretation,
18977 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 17987 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
18978 container:DefinedElement) 17988 container:DefinedElement)
18979{ 17989{
18980 find interpretation(problem,interpretation); 17990 find interpretation(problem,interpretation);
18981 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 17991 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
18982 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class"); 17992 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
18983 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 17993 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
18984 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"outgoingLinks reference FunctionalOutput"); 17994 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"interface reference FunctionalElement");
18985 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 17995 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
18986 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"from reference InformationLink"); 17996 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"element reference FunctionalInterface");
18987 find mustInstanceOfFunctionalOutput_class(problem,interpretation,container); 17997 find mustInstanceOfFunctionalElement_class(problem,interpretation,container);
18988 find mayInstanceOfInformationLink_class(problem,interpretation,newObject); 17998 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
18989 find mayInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,container,newObject); 17999 find mayInRelationinterface_reference_FunctionalElement(problem,interpretation,container,newObject);
18990 find mustExist(problem, interpretation, container); 18000 find mustExist(problem, interpretation, container);
18991 neg find mustExist(problem, interpretation, newObject); 18001 neg find mustExist(problem, interpretation, newObject);
18992} 18002}
18993pattern createObject_InformationLink_class( 18003pattern createObject_FunctionalInterface_class(
18994 problem:LogicProblem, interpretation:PartialInterpretation, 18004 problem:LogicProblem, interpretation:PartialInterpretation,
18995 typeInterpretation:PartialComplexTypeInterpretation) 18005 typeInterpretation:PartialComplexTypeInterpretation)
18996{ 18006{
18997 find interpretation(problem,interpretation); 18007 find interpretation(problem,interpretation);
18998 neg find hasElementInContainment(problem,interpretation); 18008 neg find hasElementInContainment(problem,interpretation);
18999 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 18009 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
19000 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class"); 18010 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
19001 find mayInstanceOfInformationLink_class(problem,interpretation,newObject); 18011 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
19002 find mayExist(problem, interpretation, newObject); 18012 find mayExist(problem, interpretation, newObject);
19003 neg find mustExist(problem, interpretation, newObject); 18013 neg find mustExist(problem, interpretation, newObject);
19004} 18014}
19005pattern createObject_FunctionalInterface_class_by_interface_reference_FunctionalElement_with_element_reference_FunctionalInterface( 18015pattern createObject_FAMTerminator_class_by_terminator_reference_FunctionalData_with_data_reference_FAMTerminator(
19006 problem:LogicProblem, interpretation:PartialInterpretation, 18016 problem:LogicProblem, interpretation:PartialInterpretation,
19007 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 18017 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
19008 container:DefinedElement) 18018 container:DefinedElement)
19009{ 18019{
19010 find interpretation(problem,interpretation); 18020 find interpretation(problem,interpretation);
19011 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 18021 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
19012 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class"); 18022 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class");
19013 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 18023 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
19014 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"interface reference FunctionalElement"); 18024 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"terminator reference FunctionalData");
19015 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 18025 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
19016 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"element reference FunctionalInterface"); 18026 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"data reference FAMTerminator");
19017 find mustInstanceOfFunctionalElement_class(problem,interpretation,container); 18027 find mustInstanceOfFunctionalData_class(problem,interpretation,container);
19018 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject); 18028 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject);
19019 find mayInRelationinterface_reference_FunctionalElement(problem,interpretation,container,newObject); 18029 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,container,newObject);
19020 find mustExist(problem, interpretation, container); 18030 find mustExist(problem, interpretation, container);
19021 neg find mustExist(problem, interpretation, newObject); 18031 neg find mustExist(problem, interpretation, newObject);
19022} 18032}
19023pattern createObject_FunctionalInterface_class( 18033pattern createObject_FAMTerminator_class(
19024 problem:LogicProblem, interpretation:PartialInterpretation, 18034 problem:LogicProblem, interpretation:PartialInterpretation,
19025 typeInterpretation:PartialComplexTypeInterpretation) 18035 typeInterpretation:PartialComplexTypeInterpretation)
19026{ 18036{
19027 find interpretation(problem,interpretation); 18037 find interpretation(problem,interpretation);
19028 neg find hasElementInContainment(problem,interpretation); 18038 neg find hasElementInContainment(problem,interpretation);
19029 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 18039 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
19030 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class"); 18040 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class");
19031 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject); 18041 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject);
19032 find mayExist(problem, interpretation, newObject); 18042 find mayExist(problem, interpretation, newObject);
19033 neg find mustExist(problem, interpretation, newObject); 18043 neg find mustExist(problem, interpretation, newObject);
19034} 18044}
@@ -19036,83 +18046,83 @@ pattern createObject_FunctionalInterface_class(
19036////////// 18046//////////
19037// 4.2 Type refinement 18047// 4.2 Type refinement
19038////////// 18048//////////
19039pattern refineTypeTo_FunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 18049pattern refineTypeTo_InformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
19040 find interpretation(problem,interpretation); 18050 find interpretation(problem,interpretation);
19041 PartialInterpretation.newElements(interpretation,element); 18051 PartialInterpretation.newElements(interpretation,element);
19042 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); 18052 find mayInstanceOfInformationLink_class(problem,interpretation,element);
19043 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); 18053 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
19044 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 18054 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
19045 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 18055 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
19046 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 18056 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
19047 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 18057 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
19048 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 18058 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
19049} 18059}
19050pattern refineTypeTo_Function_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 18060pattern refineTypeTo_Function_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
19051 find interpretation(problem,interpretation); 18061 find interpretation(problem,interpretation);
19052 PartialInterpretation.newElements(interpretation,element); 18062 PartialInterpretation.newElements(interpretation,element);
19053 find mayInstanceOfFunction_class(problem,interpretation,element); 18063 find mayInstanceOfFunction_class(problem,interpretation,element);
19054 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 18064 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
19055 neg find mustInstanceOfFunction_class(problem,interpretation,element); 18065 neg find mustInstanceOfFunction_class(problem,interpretation,element);
19056 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
19057 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 18066 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
19058 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 18067 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
19059 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 18068 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
18069 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
19060} 18070}
19061pattern refineTypeTo_FunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 18071pattern refineTypeTo_FunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
19062 find interpretation(problem,interpretation); 18072 find interpretation(problem,interpretation);
19063 PartialInterpretation.newElements(interpretation,element); 18073 PartialInterpretation.newElements(interpretation,element);
19064 find mayInstanceOfFunctionalOutput_class(problem,interpretation,element); 18074 find mayInstanceOfFunctionalInput_class(problem,interpretation,element);
19065 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 18075 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
19066 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 18076 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
19067 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); 18077 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
19068 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 18078 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
19069 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 18079 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
19070 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
19071 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 18080 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
18081 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
19072} 18082}
19073pattern refineTypeTo_FAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 18083pattern refineTypeTo_FunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
19074 find interpretation(problem,interpretation); 18084 find interpretation(problem,interpretation);
19075 PartialInterpretation.newElements(interpretation,element); 18085 PartialInterpretation.newElements(interpretation,element);
19076 find mayInstanceOfFAMTerminator_class(problem,interpretation,element); 18086 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
18087 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
19077 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 18088 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
19078 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 18089 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
19079 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 18090 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
19080 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 18091 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
19081 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
19082 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 18092 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
19083} 18093}
19084pattern refineTypeTo_FunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 18094pattern refineTypeTo_FunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
19085 find interpretation(problem,interpretation); 18095 find interpretation(problem,interpretation);
19086 PartialInterpretation.newElements(interpretation,element); 18096 PartialInterpretation.newElements(interpretation,element);
19087 find mayInstanceOfFunctionalInput_class(problem,interpretation,element); 18097 find mayInstanceOfFunctionalOutput_class(problem,interpretation,element);
19088 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 18098 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
19089 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 18099 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
19090 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); 18100 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
19091 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 18101 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
19092 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 18102 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
19093 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
19094 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 18103 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
18104 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
19095} 18105}
19096pattern refineTypeTo_InformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 18106pattern refineTypeTo_FunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
19097 find interpretation(problem,interpretation); 18107 find interpretation(problem,interpretation);
19098 PartialInterpretation.newElements(interpretation,element); 18108 PartialInterpretation.newElements(interpretation,element);
19099 find mayInstanceOfInformationLink_class(problem,interpretation,element); 18109 find mayInstanceOfFunctionalInterface_class(problem,interpretation,element);
18110 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
18111 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
19100 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 18112 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
19101 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
19102 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 18113 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
19103 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 18114 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
19104 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
19105 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 18115 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
19106} 18116}
19107pattern refineTypeTo_FunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 18117pattern refineTypeTo_FAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
19108 find interpretation(problem,interpretation); 18118 find interpretation(problem,interpretation);
19109 PartialInterpretation.newElements(interpretation,element); 18119 PartialInterpretation.newElements(interpretation,element);
19110 find mayInstanceOfFunctionalInterface_class(problem,interpretation,element); 18120 find mayInstanceOfFAMTerminator_class(problem,interpretation,element);
18121 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
19111 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 18122 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
19112 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
19113 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
19114 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 18123 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
19115 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 18124 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
18125 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
19116 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 18126 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
19117} 18127}
19118 18128
@@ -19272,23 +18282,23 @@ private pattern mayInstanceOfFunctionalElement_class(problem:LogicProblem, inter
19272{ 18282{
19273 find interpretation(problem,interpretation); 18283 find interpretation(problem,interpretation);
19274 PartialInterpretation.newElements(interpretation,element); 18284 PartialInterpretation.newElements(interpretation,element);
19275 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
19276 neg find mustInstanceOfFunction_class(problem,interpretation,element);
19277 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 18285 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
19278 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 18286 neg find mustInstanceOfFunction_class(problem,interpretation,element);
19279 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 18287 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
18288 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
19280 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 18289 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
18290 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
19281 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation); 18291 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
19282 neg find isPrimitive(element); 18292 neg find isPrimitive(element);
19283} or { 18293} or {
19284 find interpretation(problem,interpretation); 18294 find interpretation(problem,interpretation);
19285 PartialInterpretation.openWorldElements(interpretation,element); 18295 PartialInterpretation.openWorldElements(interpretation,element);
19286 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
19287 neg find mustInstanceOfFunction_class(problem,interpretation,element);
19288 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 18296 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
19289 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 18297 neg find mustInstanceOfFunction_class(problem,interpretation,element);
19290 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 18298 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
18299 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
19291 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 18300 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
18301 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
19292 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation); 18302 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
19293 neg find isPrimitive(element); 18303 neg find isPrimitive(element);
19294} or 18304} or
@@ -19316,23 +18326,23 @@ private pattern mayInstanceOfFunctionalArchitectureModel_class(problem:LogicProb
19316{ 18326{
19317 find interpretation(problem,interpretation); 18327 find interpretation(problem,interpretation);
19318 PartialInterpretation.newElements(interpretation,element); 18328 PartialInterpretation.newElements(interpretation,element);
19319 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
19320 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
19321 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
19322 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); 18329 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
18330 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
19323 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 18331 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
19324 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 18332 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
18333 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
18334 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
19325 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation); 18335 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
19326 neg find isPrimitive(element); 18336 neg find isPrimitive(element);
19327} or { 18337} or {
19328 find interpretation(problem,interpretation); 18338 find interpretation(problem,interpretation);
19329 PartialInterpretation.openWorldElements(interpretation,element); 18339 PartialInterpretation.openWorldElements(interpretation,element);
19330 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
19331 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
19332 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
19333 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); 18340 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
18341 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
19334 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 18342 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
19335 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 18343 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
18344 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
18345 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
19336 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation); 18346 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
19337 neg find isPrimitive(element); 18347 neg find isPrimitive(element);
19338} or 18348} or
@@ -19360,21 +18370,21 @@ private pattern mayInstanceOfFunction_class(problem:LogicProblem, interpretation
19360{ 18370{
19361 find interpretation(problem,interpretation); 18371 find interpretation(problem,interpretation);
19362 PartialInterpretation.newElements(interpretation,element); 18372 PartialInterpretation.newElements(interpretation,element);
19363 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
19364 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 18373 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
19365 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
19366 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 18374 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
18375 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
19367 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 18376 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
18377 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
19368 neg find scopeDisallowsNewFunction_class(problem, interpretation); 18378 neg find scopeDisallowsNewFunction_class(problem, interpretation);
19369 neg find isPrimitive(element); 18379 neg find isPrimitive(element);
19370} or { 18380} or {
19371 find interpretation(problem,interpretation); 18381 find interpretation(problem,interpretation);
19372 PartialInterpretation.openWorldElements(interpretation,element); 18382 PartialInterpretation.openWorldElements(interpretation,element);
19373 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
19374 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 18383 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
19375 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
19376 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 18384 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
18385 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
19377 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 18386 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
18387 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
19378 neg find scopeDisallowsNewFunction_class(problem, interpretation); 18388 neg find scopeDisallowsNewFunction_class(problem, interpretation);
19379 neg find isPrimitive(element); 18389 neg find isPrimitive(element);
19380} or 18390} or
@@ -19402,21 +18412,21 @@ private pattern mayInstanceOfFAMTerminator_class(problem:LogicProblem, interpret
19402{ 18412{
19403 find interpretation(problem,interpretation); 18413 find interpretation(problem,interpretation);
19404 PartialInterpretation.newElements(interpretation,element); 18414 PartialInterpretation.newElements(interpretation,element);
19405 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
19406 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 18415 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
18416 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
18417 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
19407 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 18418 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
19408 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 18419 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
19409 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
19410 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation); 18420 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
19411 neg find isPrimitive(element); 18421 neg find isPrimitive(element);
19412} or { 18422} or {
19413 find interpretation(problem,interpretation); 18423 find interpretation(problem,interpretation);
19414 PartialInterpretation.openWorldElements(interpretation,element); 18424 PartialInterpretation.openWorldElements(interpretation,element);
19415 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
19416 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 18425 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
18426 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
18427 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
19417 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 18428 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
19418 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 18429 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
19419 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
19420 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation); 18430 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
19421 neg find isPrimitive(element); 18431 neg find isPrimitive(element);
19422} or 18432} or
@@ -19444,21 +18454,21 @@ private pattern mayInstanceOfInformationLink_class(problem:LogicProblem, interpr
19444{ 18454{
19445 find interpretation(problem,interpretation); 18455 find interpretation(problem,interpretation);
19446 PartialInterpretation.newElements(interpretation,element); 18456 PartialInterpretation.newElements(interpretation,element);
19447 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
19448 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 18457 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
18458 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
18459 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
19449 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 18460 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
19450 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 18461 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
19451 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
19452 neg find scopeDisallowsNewInformationLink_class(problem, interpretation); 18462 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
19453 neg find isPrimitive(element); 18463 neg find isPrimitive(element);
19454} or { 18464} or {
19455 find interpretation(problem,interpretation); 18465 find interpretation(problem,interpretation);
19456 PartialInterpretation.openWorldElements(interpretation,element); 18466 PartialInterpretation.openWorldElements(interpretation,element);
19457 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
19458 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 18467 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
18468 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
18469 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
19459 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 18470 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
19460 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 18471 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
19461 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
19462 neg find scopeDisallowsNewInformationLink_class(problem, interpretation); 18472 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
19463 neg find isPrimitive(element); 18473 neg find isPrimitive(element);
19464} or 18474} or
@@ -19486,21 +18496,21 @@ private pattern mayInstanceOfFunctionalInterface_class(problem:LogicProblem, int
19486{ 18496{
19487 find interpretation(problem,interpretation); 18497 find interpretation(problem,interpretation);
19488 PartialInterpretation.newElements(interpretation,element); 18498 PartialInterpretation.newElements(interpretation,element);
18499 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
18500 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
19489 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 18501 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
19490 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 18502 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
19491 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 18503 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
19492 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
19493 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
19494 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation); 18504 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
19495 neg find isPrimitive(element); 18505 neg find isPrimitive(element);
19496} or { 18506} or {
19497 find interpretation(problem,interpretation); 18507 find interpretation(problem,interpretation);
19498 PartialInterpretation.openWorldElements(interpretation,element); 18508 PartialInterpretation.openWorldElements(interpretation,element);
18509 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
18510 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
19499 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 18511 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
19500 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 18512 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
19501 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 18513 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
19502 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
19503 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
19504 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation); 18514 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
19505 neg find isPrimitive(element); 18515 neg find isPrimitive(element);
19506} or 18516} or
@@ -19528,23 +18538,23 @@ private pattern mayInstanceOfFunctionalInput_class(problem:LogicProblem, interpr
19528{ 18538{
19529 find interpretation(problem,interpretation); 18539 find interpretation(problem,interpretation);
19530 PartialInterpretation.newElements(interpretation,element); 18540 PartialInterpretation.newElements(interpretation,element);
19531 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
19532 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 18541 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
19533 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
19534 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
19535 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 18542 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
18543 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
18544 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
19536 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 18545 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
18546 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
19537 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation); 18547 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
19538 neg find isPrimitive(element); 18548 neg find isPrimitive(element);
19539} or { 18549} or {
19540 find interpretation(problem,interpretation); 18550 find interpretation(problem,interpretation);
19541 PartialInterpretation.openWorldElements(interpretation,element); 18551 PartialInterpretation.openWorldElements(interpretation,element);
19542 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
19543 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 18552 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
19544 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
19545 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
19546 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 18553 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
18554 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
18555 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
19547 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 18556 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
18557 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
19548 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation); 18558 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
19549 neg find isPrimitive(element); 18559 neg find isPrimitive(element);
19550} or 18560} or
@@ -19572,23 +18582,23 @@ private pattern mayInstanceOfFunctionalOutput_class(problem:LogicProblem, interp
19572{ 18582{
19573 find interpretation(problem,interpretation); 18583 find interpretation(problem,interpretation);
19574 PartialInterpretation.newElements(interpretation,element); 18584 PartialInterpretation.newElements(interpretation,element);
19575 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
19576 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 18585 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
19577 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
19578 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); 18586 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
19579 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 18587 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
18588 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
19580 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 18589 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
18590 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
19581 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation); 18591 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
19582 neg find isPrimitive(element); 18592 neg find isPrimitive(element);
19583} or { 18593} or {
19584 find interpretation(problem,interpretation); 18594 find interpretation(problem,interpretation);
19585 PartialInterpretation.openWorldElements(interpretation,element); 18595 PartialInterpretation.openWorldElements(interpretation,element);
19586 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
19587 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 18596 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
19588 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
19589 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); 18597 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
19590 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 18598 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
18599 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
19591 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 18600 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
18601 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
19592 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation); 18602 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
19593 neg find isPrimitive(element); 18603 neg find isPrimitive(element);
19594} or 18604} or
@@ -19616,25 +18626,25 @@ private pattern mayInstanceOfFunctionalData_class(problem:LogicProblem, interpre
19616{ 18626{
19617 find interpretation(problem,interpretation); 18627 find interpretation(problem,interpretation);
19618 PartialInterpretation.newElements(interpretation,element); 18628 PartialInterpretation.newElements(interpretation,element);
19619 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
19620 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 18629 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
19621 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
19622 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
19623 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); 18630 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
19624 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 18631 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
18632 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
18633 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
19625 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 18634 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
18635 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
19626 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation); 18636 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
19627 neg find isPrimitive(element); 18637 neg find isPrimitive(element);
19628} or { 18638} or {
19629 find interpretation(problem,interpretation); 18639 find interpretation(problem,interpretation);
19630 PartialInterpretation.openWorldElements(interpretation,element); 18640 PartialInterpretation.openWorldElements(interpretation,element);
19631 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
19632 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 18641 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
19633 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
19634 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
19635 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); 18642 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
19636 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 18643 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
18644 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
18645 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
19637 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 18646 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
18647 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
19638 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation); 18648 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
19639 neg find isPrimitive(element); 18649 neg find isPrimitive(element);
19640} or 18650} or
@@ -19705,20 +18715,20 @@ private pattern mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(pro
19705 find interpretation(problem,interpretation); 18715 find interpretation(problem,interpretation);
19706 PartialInterpretation.newElements(interpretation,element); 18716 PartialInterpretation.newElements(interpretation,element);
19707 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 18717 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
19708 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
19709 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
19710 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 18718 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
19711 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 18719 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
18720 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
18721 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
19712 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation); 18722 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation);
19713 neg find isPrimitive(element); 18723 neg find isPrimitive(element);
19714} or { 18724} or {
19715 find interpretation(problem,interpretation); 18725 find interpretation(problem,interpretation);
19716 PartialInterpretation.openWorldElements(interpretation,element); 18726 PartialInterpretation.openWorldElements(interpretation,element);
19717 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 18727 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
19718 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
19719 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
19720 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 18728 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
19721 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 18729 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
18730 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
18731 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
19722 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation); 18732 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation);
19723 neg find isPrimitive(element); 18733 neg find isPrimitive(element);
19724} or 18734} or
@@ -20323,6 +19333,103 @@ private pattern mayInRelationtype_attribute_Function(
20323////////// 19333//////////
20324// 1.3 Relation Definition Indexers 19334// 1.3 Relation Definition Indexers
20325////////// 19335//////////
19336// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test fam queries terminatorAndInformation
19337private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(
19338 problem:LogicProblem, interpretation:PartialInterpretation,
19339 var_T, var_I)
19340{
19341 find interpretation(problem,interpretation);
19342 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_T);
19343 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
19344 // T is exported
19345 // I is exported
19346 find mustInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
19347 find mustInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,var_Out,var_virtual0);
19348 find mustInstanceOfInformationLink_class(problem,interpretation,var_virtual0);
19349 var_virtual0 == var_I;
19350 find mustInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
19351 find mustInRelationterminator_reference_FunctionalData(problem,interpretation,var_Out,var_virtual1);
19352 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
19353 var_virtual1 == var_T;
19354}or{
19355 find interpretation(problem,interpretation);
19356 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_T);
19357 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
19358 // T is exported
19359 // I is exported
19360 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
19361 find mustInRelationto_reference_InformationLink(problem,interpretation,var_I,var_virtual0);
19362 find mustInstanceOfFunctionalInput_class(problem,interpretation,var_virtual0);
19363 var_virtual0 == var_In;
19364 find mustInstanceOfFunctionalInput_class(problem,interpretation,var_In);
19365 find mustInRelationterminator_reference_FunctionalData(problem,interpretation,var_In,var_virtual1);
19366 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
19367 var_virtual1 == var_T;
19368}
19369private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(
19370 problem:LogicProblem, interpretation:PartialInterpretation,
19371 var_T, var_I)
19372{
19373 find interpretation(problem,interpretation);
19374 find mayInstanceOfFAMTerminator_class(problem,interpretation,var_T);
19375 find mayInstanceOfInformationLink_class(problem,interpretation,var_I);
19376 // T is exported
19377 // I is exported
19378 find mayInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
19379 find mayInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,var_Out,var_virtual0);
19380 find mayInstanceOfInformationLink_class(problem,interpretation,var_virtual0);
19381 find mayEquivalent(problem, interpretation, var_virtual0, var_I);
19382 find mayInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
19383 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,var_Out,var_virtual1);
19384 find mayInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
19385 find mayEquivalent(problem, interpretation, var_virtual1, var_T);
19386}or{
19387 find interpretation(problem,interpretation);
19388 find mayInstanceOfFAMTerminator_class(problem,interpretation,var_T);
19389 find mayInstanceOfInformationLink_class(problem,interpretation,var_I);
19390 // T is exported
19391 // I is exported
19392 find mayInstanceOfInformationLink_class(problem,interpretation,var_I);
19393 find mayInRelationto_reference_InformationLink(problem,interpretation,var_I,var_virtual0);
19394 find mayInstanceOfFunctionalInput_class(problem,interpretation,var_virtual0);
19395 find mayEquivalent(problem, interpretation, var_virtual0, var_In);
19396 find mayInstanceOfFunctionalInput_class(problem,interpretation,var_In);
19397 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,var_In,var_virtual1);
19398 find mayInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
19399 find mayEquivalent(problem, interpretation, var_virtual1, var_T);
19400}
19401private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(
19402 problem:LogicProblem, interpretation:PartialInterpretation,
19403 var_T, var_I)
19404{
19405 find interpretation(problem,interpretation);
19406 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_T);
19407 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
19408 // T is exported
19409 // I is exported
19410 find mustInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
19411 find mustInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,var_Out,var_virtual0);
19412 find mustInstanceOfInformationLink_class(problem,interpretation,var_virtual0);
19413 var_virtual0 == var_I;
19414 find mustInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
19415 find mustInRelationterminator_reference_FunctionalData(problem,interpretation,var_Out,var_virtual1);
19416 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
19417 var_virtual1 == var_T;
19418}or{
19419 find interpretation(problem,interpretation);
19420 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_T);
19421 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
19422 // T is exported
19423 // I is exported
19424 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
19425 find mustInRelationto_reference_InformationLink(problem,interpretation,var_I,var_virtual0);
19426 find mustInstanceOfFunctionalInput_class(problem,interpretation,var_virtual0);
19427 var_virtual0 == var_In;
19428 find mustInstanceOfFunctionalInput_class(problem,interpretation,var_In);
19429 find mustInRelationterminator_reference_FunctionalData(problem,interpretation,var_In,var_virtual1);
19430 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
19431 var_virtual1 == var_T;
19432}
20326 19433
20327////////// 19434//////////
20328// 1.4 Containment Indexer 19435// 1.4 Containment Indexer
@@ -20354,6 +19461,11 @@ private pattern mustTransitiveContains(source,target) {
20354////////// 19461//////////
20355// 2.1 Invalidated by WF Queries 19462// 2.1 Invalidated by WF Queries
20356////////// 19463//////////
19464pattern invalidatedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(problem:LogicProblem, interpretation:PartialInterpretation,
19465 var_T, var_I)
19466{
19467 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(problem,interpretation,var_T,var_I);
19468}
20357 19469
20358////////// 19470//////////
20359// 3. Unfinishedness Indexers 19471// 3. Unfinishedness Indexers
@@ -20391,6 +19503,11 @@ pattern unfinishedLowerMultiplicity_type_attribute_Function(problem:LogicProblem
20391////////// 19503//////////
20392// 3.2 Unfinishedness Measured by WF Queries 19504// 3.2 Unfinishedness Measured by WF Queries
20393////////// 19505//////////
19506pattern unfinishedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(problem:LogicProblem, interpretation:PartialInterpretation,
19507 var_T, var_I)
19508{
19509 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(problem,interpretation,var_T,var_I);
19510}
20394 19511
20395////////// 19512//////////
20396// 4. Refinement Indexers 19513// 4. Refinement Indexers
@@ -20400,39 +19517,39 @@ pattern unfinishedLowerMultiplicity_type_attribute_Function(problem:LogicProblem
20400private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation) 19517private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation)
20401{ 19518{
20402 find interpretation(problem,interpretation); 19519 find interpretation(problem,interpretation);
20403 find mustInstanceOfFunctionalInput_class(problem,interpretation,root); 19520 find mustInstanceOfFunctionalInterface_class(problem,interpretation,root);
20404 find mustExist(problem, interpretation, root); 19521 find mustExist(problem, interpretation, root);
20405}or{ 19522}or{
20406 find interpretation(problem,interpretation); 19523 find interpretation(problem,interpretation);
20407 find mustInstanceOfFAMTerminator_class(problem,interpretation,root); 19524 find mustInstanceOfInformationLink_class(problem,interpretation,root);
20408 find mustExist(problem, interpretation, root); 19525 find mustExist(problem, interpretation, root);
20409}or{ 19526}or{
20410 find interpretation(problem,interpretation); 19527 find interpretation(problem,interpretation);
20411 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,root); 19528 find mustInstanceOfFunctionalElement_class(problem,interpretation,root);
20412 find mustExist(problem, interpretation, root); 19529 find mustExist(problem, interpretation, root);
20413}or{ 19530}or{
20414 find interpretation(problem,interpretation); 19531 find interpretation(problem,interpretation);
20415 find mustInstanceOfFunctionalElement_class(problem,interpretation,root); 19532 find mustInstanceOfFAMTerminator_class(problem,interpretation,root);
20416 find mustExist(problem, interpretation, root); 19533 find mustExist(problem, interpretation, root);
20417}or{ 19534}or{
20418 find interpretation(problem,interpretation); 19535 find interpretation(problem,interpretation);
20419 find mustInstanceOfFunction_class(problem,interpretation,root); 19536 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,root);
20420 find mustExist(problem, interpretation, root); 19537 find mustExist(problem, interpretation, root);
20421}or{ 19538}or{
20422 find interpretation(problem,interpretation); 19539 find interpretation(problem,interpretation);
20423 find mustInstanceOfFunctionalData_class(problem,interpretation,root); 19540 find mustInstanceOfFunctionalInput_class(problem,interpretation,root);
20424 find mustExist(problem, interpretation, root); 19541 find mustExist(problem, interpretation, root);
20425}or{ 19542}or{
20426 find interpretation(problem,interpretation); 19543 find interpretation(problem,interpretation);
20427 find mustInstanceOfInformationLink_class(problem,interpretation,root); 19544 find mustInstanceOfFunction_class(problem,interpretation,root);
20428 find mustExist(problem, interpretation, root); 19545 find mustExist(problem, interpretation, root);
20429}or{ 19546}or{
20430 find interpretation(problem,interpretation); 19547 find interpretation(problem,interpretation);
20431 find mustInstanceOfFunctionalInterface_class(problem,interpretation,root); 19548 find mustInstanceOfFunctionalOutput_class(problem,interpretation,root);
20432 find mustExist(problem, interpretation, root); 19549 find mustExist(problem, interpretation, root);
20433}or{ 19550}or{
20434 find interpretation(problem,interpretation); 19551 find interpretation(problem,interpretation);
20435 find mustInstanceOfFunctionalOutput_class(problem,interpretation,root); 19552 find mustInstanceOfFunctionalData_class(problem,interpretation,root);
20436 find mustExist(problem, interpretation, root); 19553 find mustExist(problem, interpretation, root);
20437}or{ 19554}or{
20438 find interpretation(problem,interpretation); 19555 find interpretation(problem,interpretation);
@@ -20443,33 +19560,45 @@ private pattern hasElementInContainment(problem:LogicProblem, interpretation:Par
20443 find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,root); 19560 find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,root);
20444 find mustExist(problem, interpretation, root); 19561 find mustExist(problem, interpretation, root);
20445} 19562}
20446pattern createObject_FunctionalInterface_class_by_interface_reference_FunctionalElement_with_element_reference_FunctionalInterface( 19563pattern createObject_FunctionalArchitectureModel_class_UndefinedPart(
19564 problem:LogicProblem, interpretation:PartialInterpretation,
19565 typeInterpretation:PartialComplexTypeInterpretation)
19566{
19567 find interpretation(problem,interpretation);
19568 neg find hasElementInContainment(problem,interpretation);
19569 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
19570 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalArchitectureModel class UndefinedPart");
19571 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,newObject);
19572 find mayExist(problem, interpretation, newObject);
19573 neg find mustExist(problem, interpretation, newObject);
19574}
19575pattern createObject_FunctionalInput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData(
20447 problem:LogicProblem, interpretation:PartialInterpretation, 19576 problem:LogicProblem, interpretation:PartialInterpretation,
20448 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 19577 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
20449 container:DefinedElement) 19578 container:DefinedElement)
20450{ 19579{
20451 find interpretation(problem,interpretation); 19580 find interpretation(problem,interpretation);
20452 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 19581 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
20453 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class"); 19582 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class");
20454 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 19583 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
20455 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"interface reference FunctionalElement"); 19584 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface");
20456 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 19585 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
20457 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"element reference FunctionalInterface"); 19586 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData");
20458 find mustInstanceOfFunctionalElement_class(problem,interpretation,container); 19587 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container);
20459 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject); 19588 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
20460 find mayInRelationinterface_reference_FunctionalElement(problem,interpretation,container,newObject); 19589 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject);
20461 find mustExist(problem, interpretation, container); 19590 find mustExist(problem, interpretation, container);
20462 neg find mustExist(problem, interpretation, newObject); 19591 neg find mustExist(problem, interpretation, newObject);
20463} 19592}
20464pattern createObject_FunctionalInterface_class( 19593pattern createObject_FunctionalInput_class(
20465 problem:LogicProblem, interpretation:PartialInterpretation, 19594 problem:LogicProblem, interpretation:PartialInterpretation,
20466 typeInterpretation:PartialComplexTypeInterpretation) 19595 typeInterpretation:PartialComplexTypeInterpretation)
20467{ 19596{
20468 find interpretation(problem,interpretation); 19597 find interpretation(problem,interpretation);
20469 neg find hasElementInContainment(problem,interpretation); 19598 neg find hasElementInContainment(problem,interpretation);
20470 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 19599 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
20471 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class"); 19600 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class");
20472 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject); 19601 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
20473 find mayExist(problem, interpretation, newObject); 19602 find mayExist(problem, interpretation, newObject);
20474 neg find mustExist(problem, interpretation, newObject); 19603 neg find mustExist(problem, interpretation, newObject);
20475} 19604}
@@ -20519,75 +19648,33 @@ pattern createObject_Function_class(
20519 find mayExist(problem, interpretation, newObject); 19648 find mayExist(problem, interpretation, newObject);
20520 neg find mustExist(problem, interpretation, newObject); 19649 neg find mustExist(problem, interpretation, newObject);
20521} 19650}
20522pattern createObject_FunctionalOutput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData( 19651pattern createObject_FunctionalInterface_class_by_interface_reference_FunctionalElement_with_element_reference_FunctionalInterface(
20523 problem:LogicProblem, interpretation:PartialInterpretation,
20524 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
20525 container:DefinedElement)
20526{
20527 find interpretation(problem,interpretation);
20528 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
20529 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class");
20530 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
20531 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface");
20532 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
20533 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData");
20534 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container);
20535 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject);
20536 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject);
20537 find mustExist(problem, interpretation, container);
20538 neg find mustExist(problem, interpretation, newObject);
20539}
20540pattern createObject_FunctionalOutput_class(
20541 problem:LogicProblem, interpretation:PartialInterpretation,
20542 typeInterpretation:PartialComplexTypeInterpretation)
20543{
20544 find interpretation(problem,interpretation);
20545 neg find hasElementInContainment(problem,interpretation);
20546 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
20547 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class");
20548 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject);
20549 find mayExist(problem, interpretation, newObject);
20550 neg find mustExist(problem, interpretation, newObject);
20551}
20552pattern createObject_FunctionalInput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData(
20553 problem:LogicProblem, interpretation:PartialInterpretation, 19652 problem:LogicProblem, interpretation:PartialInterpretation,
20554 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 19653 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
20555 container:DefinedElement) 19654 container:DefinedElement)
20556{ 19655{
20557 find interpretation(problem,interpretation); 19656 find interpretation(problem,interpretation);
20558 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 19657 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
20559 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class"); 19658 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
20560 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 19659 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
20561 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface"); 19660 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"interface reference FunctionalElement");
20562 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 19661 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
20563 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData"); 19662 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"element reference FunctionalInterface");
20564 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container); 19663 find mustInstanceOfFunctionalElement_class(problem,interpretation,container);
20565 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject); 19664 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
20566 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject); 19665 find mayInRelationinterface_reference_FunctionalElement(problem,interpretation,container,newObject);
20567 find mustExist(problem, interpretation, container); 19666 find mustExist(problem, interpretation, container);
20568 neg find mustExist(problem, interpretation, newObject); 19667 neg find mustExist(problem, interpretation, newObject);
20569} 19668}
20570pattern createObject_FunctionalInput_class( 19669pattern createObject_FunctionalInterface_class(
20571 problem:LogicProblem, interpretation:PartialInterpretation,
20572 typeInterpretation:PartialComplexTypeInterpretation)
20573{
20574 find interpretation(problem,interpretation);
20575 neg find hasElementInContainment(problem,interpretation);
20576 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
20577 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class");
20578 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
20579 find mayExist(problem, interpretation, newObject);
20580 neg find mustExist(problem, interpretation, newObject);
20581}
20582pattern createObject_FunctionalArchitectureModel_class_UndefinedPart(
20583 problem:LogicProblem, interpretation:PartialInterpretation, 19670 problem:LogicProblem, interpretation:PartialInterpretation,
20584 typeInterpretation:PartialComplexTypeInterpretation) 19671 typeInterpretation:PartialComplexTypeInterpretation)
20585{ 19672{
20586 find interpretation(problem,interpretation); 19673 find interpretation(problem,interpretation);
20587 neg find hasElementInContainment(problem,interpretation); 19674 neg find hasElementInContainment(problem,interpretation);
20588 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 19675 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
20589 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalArchitectureModel class UndefinedPart"); 19676 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
20590 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,newObject); 19677 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
20591 find mayExist(problem, interpretation, newObject); 19678 find mayExist(problem, interpretation, newObject);
20592 neg find mustExist(problem, interpretation, newObject); 19679 neg find mustExist(problem, interpretation, newObject);
20593} 19680}
@@ -20651,88 +19738,118 @@ pattern createObject_FAMTerminator_class(
20651 find mayExist(problem, interpretation, newObject); 19738 find mayExist(problem, interpretation, newObject);
20652 neg find mustExist(problem, interpretation, newObject); 19739 neg find mustExist(problem, interpretation, newObject);
20653} 19740}
19741pattern createObject_FunctionalOutput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData(
19742 problem:LogicProblem, interpretation:PartialInterpretation,
19743 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
19744 container:DefinedElement)
19745{
19746 find interpretation(problem,interpretation);
19747 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
19748 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class");
19749 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
19750 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface");
19751 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
19752 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData");
19753 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container);
19754 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject);
19755 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject);
19756 find mustExist(problem, interpretation, container);
19757 neg find mustExist(problem, interpretation, newObject);
19758}
19759pattern createObject_FunctionalOutput_class(
19760 problem:LogicProblem, interpretation:PartialInterpretation,
19761 typeInterpretation:PartialComplexTypeInterpretation)
19762{
19763 find interpretation(problem,interpretation);
19764 neg find hasElementInContainment(problem,interpretation);
19765 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
19766 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class");
19767 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject);
19768 find mayExist(problem, interpretation, newObject);
19769 neg find mustExist(problem, interpretation, newObject);
19770}
20654 19771
20655////////// 19772//////////
20656// 4.2 Type refinement 19773// 4.2 Type refinement
20657////////// 19774//////////
20658pattern refineTypeTo_FunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 19775pattern refineTypeTo_FunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
20659 find interpretation(problem,interpretation); 19776 find interpretation(problem,interpretation);
20660 PartialInterpretation.newElements(interpretation,element); 19777 PartialInterpretation.newElements(interpretation,element);
20661 find mayInstanceOfFunctionalInterface_class(problem,interpretation,element); 19778 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
20662 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 19779 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
20663 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 19780 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
20664 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
20665 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
20666 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 19781 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
20667 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 19782 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
20668} 19783 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
20669pattern refineTypeTo_Function_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
20670 find interpretation(problem,interpretation);
20671 PartialInterpretation.newElements(interpretation,element);
20672 find mayInstanceOfFunction_class(problem,interpretation,element);
20673 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
20674 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
20675 neg find mustInstanceOfFunction_class(problem,interpretation,element);
20676 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 19784 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
20677 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
20678 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
20679} 19785}
20680pattern refineTypeTo_FunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 19786pattern refineTypeTo_FunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
20681 find interpretation(problem,interpretation); 19787 find interpretation(problem,interpretation);
20682 PartialInterpretation.newElements(interpretation,element); 19788 PartialInterpretation.newElements(interpretation,element);
20683 find mayInstanceOfFunctionalOutput_class(problem,interpretation,element); 19789 find mayInstanceOfFunctionalInput_class(problem,interpretation,element);
20684 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
20685 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
20686 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 19790 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
20687 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
20688 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); 19791 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
20689 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 19792 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
19793 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
19794 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
20690 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 19795 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
19796 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
20691} 19797}
20692pattern refineTypeTo_FunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 19798pattern refineTypeTo_Function_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
20693 find interpretation(problem,interpretation); 19799 find interpretation(problem,interpretation);
20694 PartialInterpretation.newElements(interpretation,element); 19800 PartialInterpretation.newElements(interpretation,element);
20695 find mayInstanceOfFunctionalInput_class(problem,interpretation,element); 19801 find mayInstanceOfFunction_class(problem,interpretation,element);
20696 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 19802 neg find mustInstanceOfFunction_class(problem,interpretation,element);
20697 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
20698 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 19803 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
20699 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
20700 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
20701 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 19804 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
19805 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
20702 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 19806 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
19807 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
20703} 19808}
20704pattern refineTypeTo_FunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 19809pattern refineTypeTo_FunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
20705 find interpretation(problem,interpretation); 19810 find interpretation(problem,interpretation);
20706 PartialInterpretation.newElements(interpretation,element); 19811 PartialInterpretation.newElements(interpretation,element);
20707 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); 19812 find mayInstanceOfFunctionalInterface_class(problem,interpretation,element);
20708 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 19813 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
20709 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
20710 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
20711 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
20712 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 19814 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
20713 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 19815 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
19816 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
19817 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
19818 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
20714} 19819}
20715pattern refineTypeTo_InformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 19820pattern refineTypeTo_InformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
20716 find interpretation(problem,interpretation); 19821 find interpretation(problem,interpretation);
20717 PartialInterpretation.newElements(interpretation,element); 19822 PartialInterpretation.newElements(interpretation,element);
20718 find mayInstanceOfInformationLink_class(problem,interpretation,element); 19823 find mayInstanceOfInformationLink_class(problem,interpretation,element);
20719 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
20720 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 19824 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
20721 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
20722 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
20723 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 19825 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
20724 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 19826 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
19827 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
19828 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
19829 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
20725} 19830}
20726pattern refineTypeTo_FAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 19831pattern refineTypeTo_FAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
20727 find interpretation(problem,interpretation); 19832 find interpretation(problem,interpretation);
20728 PartialInterpretation.newElements(interpretation,element); 19833 PartialInterpretation.newElements(interpretation,element);
20729 find mayInstanceOfFAMTerminator_class(problem,interpretation,element); 19834 find mayInstanceOfFAMTerminator_class(problem,interpretation,element);
20730 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
20731 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 19835 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
19836 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
19837 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
19838 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
20732 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 19839 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
20733 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 19840 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
19841}
19842pattern refineTypeTo_FunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
19843 find interpretation(problem,interpretation);
19844 PartialInterpretation.newElements(interpretation,element);
19845 find mayInstanceOfFunctionalOutput_class(problem,interpretation,element);
19846 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
19847 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
20734 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 19848 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
19849 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
19850 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
20735 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 19851 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
19852 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
20736} 19853}
20737 19854
20738////////// 19855//////////
@@ -20891,23 +20008,23 @@ private pattern mayInstanceOfFunctionalElement_class(problem:LogicProblem, inter
20891{ 20008{
20892 find interpretation(problem,interpretation); 20009 find interpretation(problem,interpretation);
20893 PartialInterpretation.newElements(interpretation,element); 20010 PartialInterpretation.newElements(interpretation,element);
20011 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
20012 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
20013 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
20894 neg find mustInstanceOfFunction_class(problem,interpretation,element); 20014 neg find mustInstanceOfFunction_class(problem,interpretation,element);
20895 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 20015 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
20896 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
20897 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 20016 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
20898 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
20899 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
20900 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation); 20017 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
20901 neg find isPrimitive(element); 20018 neg find isPrimitive(element);
20902} or { 20019} or {
20903 find interpretation(problem,interpretation); 20020 find interpretation(problem,interpretation);
20904 PartialInterpretation.openWorldElements(interpretation,element); 20021 PartialInterpretation.openWorldElements(interpretation,element);
20022 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
20023 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
20024 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
20905 neg find mustInstanceOfFunction_class(problem,interpretation,element); 20025 neg find mustInstanceOfFunction_class(problem,interpretation,element);
20906 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 20026 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
20907 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
20908 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 20027 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
20909 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
20910 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
20911 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation); 20028 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
20912 neg find isPrimitive(element); 20029 neg find isPrimitive(element);
20913} or 20030} or
@@ -20935,23 +20052,21 @@ private pattern mayInstanceOfFunctionalArchitectureModel_class(problem:LogicProb
20935{ 20052{
20936 find interpretation(problem,interpretation); 20053 find interpretation(problem,interpretation);
20937 PartialInterpretation.newElements(interpretation,element); 20054 PartialInterpretation.newElements(interpretation,element);
20055 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
20056 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
20938 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 20057 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
20939 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 20058 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
20940 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
20941 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 20059 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
20942 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
20943 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
20944 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation); 20060 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
20945 neg find isPrimitive(element); 20061 neg find isPrimitive(element);
20946} or { 20062} or {
20947 find interpretation(problem,interpretation); 20063 find interpretation(problem,interpretation);
20948 PartialInterpretation.openWorldElements(interpretation,element); 20064 PartialInterpretation.openWorldElements(interpretation,element);
20065 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
20066 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
20949 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 20067 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
20950 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 20068 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
20951 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
20952 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 20069 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
20953 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
20954 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
20955 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation); 20070 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
20956 neg find isPrimitive(element); 20071 neg find isPrimitive(element);
20957} or 20072} or
@@ -20979,21 +20094,21 @@ private pattern mayInstanceOfFunction_class(problem:LogicProblem, interpretation
20979{ 20094{
20980 find interpretation(problem,interpretation); 20095 find interpretation(problem,interpretation);
20981 PartialInterpretation.newElements(interpretation,element); 20096 PartialInterpretation.newElements(interpretation,element);
20982 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
20983 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 20097 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
20984 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
20985 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
20986 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 20098 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
20099 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
20100 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
20101 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
20987 neg find scopeDisallowsNewFunction_class(problem, interpretation); 20102 neg find scopeDisallowsNewFunction_class(problem, interpretation);
20988 neg find isPrimitive(element); 20103 neg find isPrimitive(element);
20989} or { 20104} or {
20990 find interpretation(problem,interpretation); 20105 find interpretation(problem,interpretation);
20991 PartialInterpretation.openWorldElements(interpretation,element); 20106 PartialInterpretation.openWorldElements(interpretation,element);
20992 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
20993 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 20107 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
20994 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
20995 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
20996 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 20108 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
20109 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
20110 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
20111 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
20997 neg find scopeDisallowsNewFunction_class(problem, interpretation); 20112 neg find scopeDisallowsNewFunction_class(problem, interpretation);
20998 neg find isPrimitive(element); 20113 neg find isPrimitive(element);
20999} or 20114} or
@@ -21021,21 +20136,21 @@ private pattern mayInstanceOfFAMTerminator_class(problem:LogicProblem, interpret
21021{ 20136{
21022 find interpretation(problem,interpretation); 20137 find interpretation(problem,interpretation);
21023 PartialInterpretation.newElements(interpretation,element); 20138 PartialInterpretation.newElements(interpretation,element);
20139 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
20140 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
21024 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 20141 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
21025 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 20142 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
21026 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 20143 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
21027 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
21028 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
21029 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation); 20144 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
21030 neg find isPrimitive(element); 20145 neg find isPrimitive(element);
21031} or { 20146} or {
21032 find interpretation(problem,interpretation); 20147 find interpretation(problem,interpretation);
21033 PartialInterpretation.openWorldElements(interpretation,element); 20148 PartialInterpretation.openWorldElements(interpretation,element);
20149 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
20150 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
21034 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 20151 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
21035 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 20152 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
21036 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 20153 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
21037 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
21038 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
21039 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation); 20154 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
21040 neg find isPrimitive(element); 20155 neg find isPrimitive(element);
21041} or 20156} or
@@ -21063,21 +20178,21 @@ private pattern mayInstanceOfInformationLink_class(problem:LogicProblem, interpr
21063{ 20178{
21064 find interpretation(problem,interpretation); 20179 find interpretation(problem,interpretation);
21065 PartialInterpretation.newElements(interpretation,element); 20180 PartialInterpretation.newElements(interpretation,element);
20181 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
20182 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
21066 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 20183 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
21067 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 20184 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
21068 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
21069 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 20185 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
21070 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
21071 neg find scopeDisallowsNewInformationLink_class(problem, interpretation); 20186 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
21072 neg find isPrimitive(element); 20187 neg find isPrimitive(element);
21073} or { 20188} or {
21074 find interpretation(problem,interpretation); 20189 find interpretation(problem,interpretation);
21075 PartialInterpretation.openWorldElements(interpretation,element); 20190 PartialInterpretation.openWorldElements(interpretation,element);
20191 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
20192 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
21076 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 20193 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
21077 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 20194 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
21078 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
21079 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 20195 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
21080 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
21081 neg find scopeDisallowsNewInformationLink_class(problem, interpretation); 20196 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
21082 neg find isPrimitive(element); 20197 neg find isPrimitive(element);
21083} or 20198} or
@@ -21105,21 +20220,21 @@ private pattern mayInstanceOfFunctionalInterface_class(problem:LogicProblem, int
21105{ 20220{
21106 find interpretation(problem,interpretation); 20221 find interpretation(problem,interpretation);
21107 PartialInterpretation.newElements(interpretation,element); 20222 PartialInterpretation.newElements(interpretation,element);
21108 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
21109 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 20223 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
21110 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
21111 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
21112 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 20224 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
20225 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
20226 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
20227 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
21113 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation); 20228 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
21114 neg find isPrimitive(element); 20229 neg find isPrimitive(element);
21115} or { 20230} or {
21116 find interpretation(problem,interpretation); 20231 find interpretation(problem,interpretation);
21117 PartialInterpretation.openWorldElements(interpretation,element); 20232 PartialInterpretation.openWorldElements(interpretation,element);
21118 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
21119 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 20233 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
21120 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
21121 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
21122 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 20234 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
20235 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
20236 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
20237 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
21123 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation); 20238 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
21124 neg find isPrimitive(element); 20239 neg find isPrimitive(element);
21125} or 20240} or
@@ -21147,23 +20262,23 @@ private pattern mayInstanceOfFunctionalInput_class(problem:LogicProblem, interpr
21147{ 20262{
21148 find interpretation(problem,interpretation); 20263 find interpretation(problem,interpretation);
21149 PartialInterpretation.newElements(interpretation,element); 20264 PartialInterpretation.newElements(interpretation,element);
21150 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
21151 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
21152 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 20265 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
20266 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
21153 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 20267 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
20268 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
21154 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 20269 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
21155 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 20270 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
21156 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation); 20271 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
21157 neg find isPrimitive(element); 20272 neg find isPrimitive(element);
21158} or { 20273} or {
21159 find interpretation(problem,interpretation); 20274 find interpretation(problem,interpretation);
21160 PartialInterpretation.openWorldElements(interpretation,element); 20275 PartialInterpretation.openWorldElements(interpretation,element);
21161 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
21162 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
21163 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 20276 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
20277 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
21164 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 20278 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
20279 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
21165 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 20280 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
21166 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 20281 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
21167 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation); 20282 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
21168 neg find isPrimitive(element); 20283 neg find isPrimitive(element);
21169} or 20284} or
@@ -21191,23 +20306,23 @@ private pattern mayInstanceOfFunctionalOutput_class(problem:LogicProblem, interp
21191{ 20306{
21192 find interpretation(problem,interpretation); 20307 find interpretation(problem,interpretation);
21193 PartialInterpretation.newElements(interpretation,element); 20308 PartialInterpretation.newElements(interpretation,element);
21194 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
21195 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
21196 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 20309 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
20310 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
21197 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 20311 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
21198 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); 20312 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
21199 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 20313 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
20314 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
21200 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation); 20315 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
21201 neg find isPrimitive(element); 20316 neg find isPrimitive(element);
21202} or { 20317} or {
21203 find interpretation(problem,interpretation); 20318 find interpretation(problem,interpretation);
21204 PartialInterpretation.openWorldElements(interpretation,element); 20319 PartialInterpretation.openWorldElements(interpretation,element);
21205 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
21206 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
21207 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 20320 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
20321 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
21208 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 20322 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
21209 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); 20323 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
21210 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 20324 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
20325 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
21211 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation); 20326 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
21212 neg find isPrimitive(element); 20327 neg find isPrimitive(element);
21213} or 20328} or
@@ -21235,25 +20350,25 @@ private pattern mayInstanceOfFunctionalData_class(problem:LogicProblem, interpre
21235{ 20350{
21236 find interpretation(problem,interpretation); 20351 find interpretation(problem,interpretation);
21237 PartialInterpretation.newElements(interpretation,element); 20352 PartialInterpretation.newElements(interpretation,element);
21238 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
21239 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
21240 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 20353 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
20354 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
21241 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 20355 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
21242 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
21243 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); 20356 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
21244 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 20357 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
20358 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
20359 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
21245 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation); 20360 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
21246 neg find isPrimitive(element); 20361 neg find isPrimitive(element);
21247} or { 20362} or {
21248 find interpretation(problem,interpretation); 20363 find interpretation(problem,interpretation);
21249 PartialInterpretation.openWorldElements(interpretation,element); 20364 PartialInterpretation.openWorldElements(interpretation,element);
21250 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
21251 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
21252 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 20365 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
20366 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
21253 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 20367 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
21254 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
21255 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); 20368 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
21256 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 20369 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
20370 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
20371 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
21257 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation); 20372 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
21258 neg find isPrimitive(element); 20373 neg find isPrimitive(element);
21259} or 20374} or
@@ -21279,69 +20394,6 @@ private pattern scopeDisallowsNewFunctionType_enum(problem:LogicProblem, interpr
21279 */ 20394 */
21280private pattern mayInstanceOfFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 20395private pattern mayInstanceOfFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
21281{ find mustInstanceOfFunctionType_enum(problem,interpretation,element); } 20396{ find mustInstanceOfFunctionType_enum(problem,interpretation,element); }
21282/**
21283 * An element must be an instance of type "FunctionalArchitectureModel class DefinedPart".
21284 */
21285private pattern mustInstanceOfFunctionalArchitectureModel_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
21286 Type.name(type,"FunctionalArchitectureModel class DefinedPart");
21287 find directInstanceOf(problem,interpretation,element,type);
21288}
21289private pattern scopeDisallowsNewFunctionalArchitectureModel_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
21290 find interpretation(problem,interpretation);
21291 PartialInterpretation.scopes(interpretation,scope);
21292 Scope.targetTypeInterpretation(scope,typeInterpretation);
21293 Scope.maxNewElements(scope,0);
21294 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
21295 Type.name(type,"FunctionalArchitectureModel class DefinedPart");
21296}
21297
21298/**
21299 * An element may be an instance of type "FunctionalArchitectureModel class DefinedPart".
21300 */
21301private pattern mayInstanceOfFunctionalArchitectureModel_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
21302{ find mustInstanceOfFunctionalArchitectureModel_class_DefinedPart(problem,interpretation,element); }
21303/**
21304 * An element must be an instance of type "FunctionalArchitectureModel class UndefinedPart".
21305 */
21306private pattern mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
21307 Type.name(type,"FunctionalArchitectureModel class UndefinedPart");
21308 find directInstanceOf(problem,interpretation,element,type);
21309}
21310private pattern scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
21311 find interpretation(problem,interpretation);
21312 PartialInterpretation.scopes(interpretation,scope);
21313 Scope.targetTypeInterpretation(scope,typeInterpretation);
21314 Scope.maxNewElements(scope,0);
21315 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
21316 Type.name(type,"FunctionalArchitectureModel class UndefinedPart");
21317}
21318
21319/**
21320 * An element may be an instance of type "FunctionalArchitectureModel class UndefinedPart".
21321 */
21322private pattern mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
21323{
21324 find interpretation(problem,interpretation);
21325 PartialInterpretation.newElements(interpretation,element);
21326 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
21327 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
21328 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
21329 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
21330 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
21331 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation);
21332 neg find isPrimitive(element);
21333} or {
21334 find interpretation(problem,interpretation);
21335 PartialInterpretation.openWorldElements(interpretation,element);
21336 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
21337 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
21338 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
21339 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
21340 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
21341 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation);
21342 neg find isPrimitive(element);
21343} or
21344{ find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); }
21345 20397
21346////////// 20398//////////
21347// 1.2 Relation Declaration Indexers 20399// 1.2 Relation Declaration Indexers
@@ -21393,21 +20445,38 @@ private pattern mayInRelationinterface_reference_FunctionalElement(
21393/** 20445/**
21394 * Matcher for detecting tuples t where []model reference FunctionalElement(source,target) 20446 * Matcher for detecting tuples t where []model reference FunctionalElement(source,target)
21395 */ 20447 */
21396 private pattern mustInRelationmodel_reference_FunctionalElement( 20448private pattern mustInRelationmodel_reference_FunctionalElement(
21397 problem:LogicProblem, interpretation:PartialInterpretation, 20449 problem:LogicProblem, interpretation:PartialInterpretation,
21398 source: DefinedElement, target:DefinedElement) 20450 source: DefinedElement, target:DefinedElement)
21399 { 20451{
21400 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_model(problem,interpretation,source,target); 20452 find interpretation(problem,interpretation);
21401 } 20453 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
20454 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement");
20455 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
20456 BinaryElementRelationLink.param1(link,source);
20457 BinaryElementRelationLink.param2(link,target);
20458}
21402/** 20459/**
21403 * Matcher for detecting tuples t where []model reference FunctionalElement(source,target) 20460 * Matcher for detecting tuples t where <>model reference FunctionalElement(source,target)
21404 */ 20461 */
21405 private pattern mayInRelationmodel_reference_FunctionalElement( 20462private pattern mayInRelationmodel_reference_FunctionalElement(
21406 problem:LogicProblem, interpretation:PartialInterpretation, 20463 problem:LogicProblem, interpretation:PartialInterpretation,
21407 source: DefinedElement, target:DefinedElement) 20464 source: DefinedElement, target:DefinedElement)
21408 { 20465{
21409 find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_model(problem,interpretation,source,target); 20466 find interpretation(problem,interpretation);
21410 } 20467 // The two endpoint of the link have to exist
20468 find mayExist(problem, interpretation, source);
20469 find mayExist(problem, interpretation, target);
20470 // Type consistency
20471 find mayInstanceOfFunctionalElement_class(problem,interpretation,source);
20472 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,target);
20473 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
20474 // the upper bound of the multiplicity should be considered.
20475 numberOfExistingReferences == count find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,source,_);
20476 check(numberOfExistingReferences < 1);
20477} or {
20478 find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,source,target);
20479}
21411/** 20480/**
21412 * Matcher for detecting tuples t where []parent reference FunctionalElement(source,target) 20481 * Matcher for detecting tuples t where []parent reference FunctionalElement(source,target)
21413 */ 20482 */
@@ -21889,347 +20958,44 @@ private pattern mayInRelationinterface_reference_FunctionalData(
21889/** 20958/**
21890 * Matcher for detecting tuples t where []type attribute Function(source,target) 20959 * Matcher for detecting tuples t where []type attribute Function(source,target)
21891 */ 20960 */
21892 private pattern mustInRelationtype_attribute_Function( 20961private pattern mustInRelationtype_attribute_Function(
21893 problem:LogicProblem, interpretation:PartialInterpretation,
21894 source: DefinedElement, target:DefinedElement)
21895 {
21896 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_type(problem,interpretation,source,target);
21897 }
21898/**
21899 * Matcher for detecting tuples t where []type attribute Function(source,target)
21900 */
21901 private pattern mayInRelationtype_attribute_Function(
21902 problem:LogicProblem, interpretation:PartialInterpretation,
21903 source: DefinedElement, target:DefinedElement)
21904 {
21905 find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_type(problem,interpretation,source,target);
21906 }
21907
21908//////////
21909// 1.3 Relation Definition Indexers
21910//////////
21911// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test fam terminatorAndInformation
21912private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_terminatorAndInformation(
21913 problem:LogicProblem, interpretation:PartialInterpretation,
21914 var_T, var_I)
21915{
21916 find interpretation(problem,interpretation);
21917 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_T);
21918 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
21919 // T is exported
21920 // I is exported
21921 find mustInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
21922 find mustInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,var_Out,var_virtual0);
21923 find mustInstanceOfInformationLink_class(problem,interpretation,var_virtual0);
21924 var_virtual0 == var_I;
21925 find mustInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
21926 find mustInRelationterminator_reference_FunctionalData(problem,interpretation,var_Out,var_virtual1);
21927 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
21928 var_virtual1 == var_T;
21929}or{
21930 find interpretation(problem,interpretation);
21931 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_T);
21932 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
21933 // T is exported
21934 // I is exported
21935 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
21936 find mustInRelationto_reference_InformationLink(problem,interpretation,var_I,var_virtual0);
21937 find mustInstanceOfFunctionalInput_class(problem,interpretation,var_virtual0);
21938 var_virtual0 == var_In;
21939 find mustInstanceOfFunctionalInput_class(problem,interpretation,var_In);
21940 find mustInRelationterminator_reference_FunctionalData(problem,interpretation,var_In,var_virtual1);
21941 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
21942 var_virtual1 == var_T;
21943}
21944private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_terminatorAndInformation(
21945 problem:LogicProblem, interpretation:PartialInterpretation,
21946 var_T, var_I)
21947{
21948 find interpretation(problem,interpretation);
21949 find mayInstanceOfFAMTerminator_class(problem,interpretation,var_T);
21950 find mayInstanceOfInformationLink_class(problem,interpretation,var_I);
21951 // T is exported
21952 // I is exported
21953 find mayInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
21954 find mayInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,var_Out,var_virtual0);
21955 find mayInstanceOfInformationLink_class(problem,interpretation,var_virtual0);
21956 find mayEquivalent(problem, interpretation, var_virtual0, var_I);
21957 find mayInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
21958 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,var_Out,var_virtual1);
21959 find mayInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
21960 find mayEquivalent(problem, interpretation, var_virtual1, var_T);
21961}or{
21962 find interpretation(problem,interpretation);
21963 find mayInstanceOfFAMTerminator_class(problem,interpretation,var_T);
21964 find mayInstanceOfInformationLink_class(problem,interpretation,var_I);
21965 // T is exported
21966 // I is exported
21967 find mayInstanceOfInformationLink_class(problem,interpretation,var_I);
21968 find mayInRelationto_reference_InformationLink(problem,interpretation,var_I,var_virtual0);
21969 find mayInstanceOfFunctionalInput_class(problem,interpretation,var_virtual0);
21970 find mayEquivalent(problem, interpretation, var_virtual0, var_In);
21971 find mayInstanceOfFunctionalInput_class(problem,interpretation,var_In);
21972 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,var_In,var_virtual1);
21973 find mayInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
21974 find mayEquivalent(problem, interpretation, var_virtual1, var_T);
21975}
21976private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_terminatorAndInformation(
21977 problem:LogicProblem, interpretation:PartialInterpretation,
21978 var_T, var_I)
21979{
21980 find interpretation(problem,interpretation);
21981 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_T);
21982 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
21983 // T is exported
21984 // I is exported
21985 find mustInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
21986 find mustInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,var_Out,var_virtual0);
21987 find mustInstanceOfInformationLink_class(problem,interpretation,var_virtual0);
21988 var_virtual0 == var_I;
21989 find mustInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
21990 find mustInRelationterminator_reference_FunctionalData(problem,interpretation,var_Out,var_virtual1);
21991 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
21992 var_virtual1 == var_T;
21993}or{
21994 find interpretation(problem,interpretation);
21995 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_T);
21996 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
21997 // T is exported
21998 // I is exported
21999 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
22000 find mustInRelationto_reference_InformationLink(problem,interpretation,var_I,var_virtual0);
22001 find mustInstanceOfFunctionalInput_class(problem,interpretation,var_virtual0);
22002 var_virtual0 == var_In;
22003 find mustInstanceOfFunctionalInput_class(problem,interpretation,var_In);
22004 find mustInRelationterminator_reference_FunctionalData(problem,interpretation,var_In,var_virtual1);
22005 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
22006 var_virtual1 == var_T;
22007}
22008// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test fam type
22009private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_type(
22010 problem:LogicProblem, interpretation:PartialInterpretation,
22011 var_This, var_Target)
22012{
22013 find interpretation(problem,interpretation);
22014 find mustInstanceOfFunction_class(problem,interpretation,var_This);
22015 // type constraint is enforced by construction
22016 // This is exported
22017 // Target is exported
22018 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_rootElements(problem,interpretation,_var__Model,var_This);
22019 var_virtual0 == const_Root_FunctionType;DefinedElement.name(const_Root_FunctionType,"Root FunctionType"); //LogicProblem.elements(problem,const_Root_FunctionType);
22020 var_Target == var_virtual0;
22021}or{
22022 find interpretation(problem,interpretation);
22023 find mustInstanceOfFunction_class(problem,interpretation,var_This);
22024 // type constraint is enforced by construction
22025 // This is exported
22026 // Target is exported
22027 neg find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(problem,interpretation,_var__Child,var_This);
22028 neg find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_rootElements(problem,interpretation,_var__Model,var_This);
22029 var_virtual0 == const_Leaf_FunctionType;DefinedElement.name(const_Leaf_FunctionType,"Leaf FunctionType"); //LogicProblem.elements(problem,const_Leaf_FunctionType);
22030 var_Target == var_virtual0;
22031}or{
22032 find interpretation(problem,interpretation);
22033 find mustInstanceOfFunction_class(problem,interpretation,var_This);
22034 // type constraint is enforced by construction
22035 // This is exported
22036 // Target is exported
22037 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(problem,interpretation,var_This,_var__Par);
22038 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(problem,interpretation,_var__Child,var_This);
22039 var_virtual0 == const_Intermediate_FunctionType;DefinedElement.name(const_Intermediate_FunctionType,"Intermediate FunctionType"); //LogicProblem.elements(problem,const_Intermediate_FunctionType);
22040 var_Target == var_virtual0;
22041}
22042private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_type(
22043 problem:LogicProblem, interpretation:PartialInterpretation,
22044 var_This, var_Target)
22045{
22046 find interpretation(problem,interpretation);
22047 find mayInstanceOfFunction_class(problem,interpretation,var_This);
22048 // type constraint is enforced by construction
22049 // This is exported
22050 // Target is exported
22051 find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_rootElements(problem,interpretation,_var__Model,var_This);
22052 var_virtual0 == const_Root_FunctionType;DefinedElement.name(const_Root_FunctionType,"Root FunctionType"); //LogicProblem.elements(problem,const_Root_FunctionType);
22053 find mayEquivalent(problem, interpretation, var_Target, var_virtual0);
22054}or{
22055 find interpretation(problem,interpretation);
22056 find mayInstanceOfFunction_class(problem,interpretation,var_This);
22057 // type constraint is enforced by construction
22058 // This is exported
22059 // Target is exported
22060 neg find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(problem,interpretation,_var__Child,var_This);
22061 neg find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_rootElements(problem,interpretation,_var__Model,var_This);
22062 var_virtual0 == const_Leaf_FunctionType;DefinedElement.name(const_Leaf_FunctionType,"Leaf FunctionType"); //LogicProblem.elements(problem,const_Leaf_FunctionType);
22063 find mayEquivalent(problem, interpretation, var_Target, var_virtual0);
22064}or{
22065 find interpretation(problem,interpretation);
22066 find mayInstanceOfFunction_class(problem,interpretation,var_This);
22067 // type constraint is enforced by construction
22068 // This is exported
22069 // Target is exported
22070 find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(problem,interpretation,var_This,_var__Par);
22071 find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(problem,interpretation,_var__Child,var_This);
22072 var_virtual0 == const_Intermediate_FunctionType;DefinedElement.name(const_Intermediate_FunctionType,"Intermediate FunctionType"); //LogicProblem.elements(problem,const_Intermediate_FunctionType);
22073 find mayEquivalent(problem, interpretation, var_Target, var_virtual0);
22074}
22075private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_type(
22076 problem:LogicProblem, interpretation:PartialInterpretation,
22077 var_This, var_Target)
22078{
22079 find interpretation(problem,interpretation);
22080 find mustInstanceOfFunction_class(problem,interpretation,var_This);
22081 // type constraint is enforced by construction
22082 // This is exported
22083 // Target is exported
22084 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_rootElements(problem,interpretation,_var__Model,var_This);
22085 var_virtual0 == const_Root_FunctionType;DefinedElement.name(const_Root_FunctionType,"Root FunctionType"); //LogicProblem.elements(problem,const_Root_FunctionType);
22086 var_Target == var_virtual0;
22087}or{
22088 find interpretation(problem,interpretation);
22089 find mustInstanceOfFunction_class(problem,interpretation,var_This);
22090 // type constraint is enforced by construction
22091 // This is exported
22092 // Target is exported
22093 neg find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(problem,interpretation,_var__Child,var_This);
22094 neg find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_rootElements(problem,interpretation,_var__Model,var_This);
22095 var_virtual0 == const_Leaf_FunctionType;DefinedElement.name(const_Leaf_FunctionType,"Leaf FunctionType"); //LogicProblem.elements(problem,const_Leaf_FunctionType);
22096 var_Target == var_virtual0;
22097}or{
22098 find interpretation(problem,interpretation);
22099 find mustInstanceOfFunction_class(problem,interpretation,var_This);
22100 // type constraint is enforced by construction
22101 // This is exported
22102 // Target is exported
22103 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(problem,interpretation,var_This,_var__Par);
22104 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(problem,interpretation,_var__Child,var_This);
22105 var_virtual0 == const_Intermediate_FunctionType;DefinedElement.name(const_Intermediate_FunctionType,"Intermediate FunctionType"); //LogicProblem.elements(problem,const_Intermediate_FunctionType);
22106 var_Target == var_virtual0;
22107}
22108// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test fam rootElements
22109private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_rootElements(
22110 problem:LogicProblem, interpretation:PartialInterpretation,
22111 var_Model, var_Root)
22112{
22113 find interpretation(problem,interpretation);
22114 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Model);
22115 find mustInstanceOfFunction_class(problem,interpretation,var_Root);
22116 // Model is exported
22117 // Root is exported
22118 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Model);
22119 find mustInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,var_Model,var_virtual0);
22120 find mustInstanceOfFunctionalElement_class(problem,interpretation,var_virtual0);
22121 var_virtual0 == var_Root;
22122}
22123private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_rootElements(
22124 problem:LogicProblem, interpretation:PartialInterpretation,
22125 var_Model, var_Root)
22126{
22127 find interpretation(problem,interpretation);
22128 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Model);
22129 find mayInstanceOfFunction_class(problem,interpretation,var_Root);
22130 // Model is exported
22131 // Root is exported
22132 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Model);
22133 find mayInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,var_Model,var_virtual0);
22134 find mayInstanceOfFunctionalElement_class(problem,interpretation,var_virtual0);
22135 find mayEquivalent(problem, interpretation, var_virtual0, var_Root);
22136}
22137private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_rootElements(
22138 problem:LogicProblem, interpretation:PartialInterpretation,
22139 var_Model, var_Root)
22140{
22141 find interpretation(problem,interpretation);
22142 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Model);
22143 find mustInstanceOfFunction_class(problem,interpretation,var_Root);
22144 // Model is exported
22145 // Root is exported
22146 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Model);
22147 find mustInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,var_Model,var_virtual0);
22148 find mustInstanceOfFunctionalElement_class(problem,interpretation,var_virtual0);
22149 var_virtual0 == var_Root;
22150}
22151// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test fam parent
22152private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(
22153 problem:LogicProblem, interpretation:PartialInterpretation,
22154 var_Func, var_Par)
22155{
22156 find interpretation(problem,interpretation);
22157 find mustInstanceOfFunction_class(problem,interpretation,var_Func);
22158 find mustInstanceOfFunction_class(problem,interpretation,var_Par);
22159 // Func is exported
22160 // Par is exported
22161 find mustInstanceOfFunction_class(problem,interpretation,var_Func);
22162 find mustInRelationparent_reference_FunctionalElement(problem,interpretation,var_Func,var_virtual0);
22163 find mustInstanceOfFunction_class(problem,interpretation,var_virtual0);
22164 var_virtual0 == var_Par;
22165}
22166private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(
22167 problem:LogicProblem, interpretation:PartialInterpretation,
22168 var_Func, var_Par)
22169{
22170 find interpretation(problem,interpretation);
22171 find mayInstanceOfFunction_class(problem,interpretation,var_Func);
22172 find mayInstanceOfFunction_class(problem,interpretation,var_Par);
22173 // Func is exported
22174 // Par is exported
22175 find mayInstanceOfFunction_class(problem,interpretation,var_Func);
22176 find mayInRelationparent_reference_FunctionalElement(problem,interpretation,var_Func,var_virtual0);
22177 find mayInstanceOfFunction_class(problem,interpretation,var_virtual0);
22178 find mayEquivalent(problem, interpretation, var_virtual0, var_Par);
22179}
22180private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_parent(
22181 problem:LogicProblem, interpretation:PartialInterpretation,
22182 var_Func, var_Par)
22183{
22184 find interpretation(problem,interpretation);
22185 find mustInstanceOfFunction_class(problem,interpretation,var_Func);
22186 find mustInstanceOfFunction_class(problem,interpretation,var_Par);
22187 // Func is exported
22188 // Par is exported
22189 find mustInstanceOfFunction_class(problem,interpretation,var_Func);
22190 find mustInRelationparent_reference_FunctionalElement(problem,interpretation,var_Func,var_virtual0);
22191 find mustInstanceOfFunction_class(problem,interpretation,var_virtual0);
22192 var_virtual0 == var_Par;
22193}
22194// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test fam model
22195private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_model(
22196 problem:LogicProblem, interpretation:PartialInterpretation,
22197 var_This, var_Target)
22198{
22199 find interpretation(problem,interpretation);
22200 find mustInstanceOfFunctionalElement_class(problem,interpretation,var_This);
22201 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Target);
22202 // This is exported
22203 // Target is exported
22204 find mustInstanceOfFunctionalElement_class(problem,interpretation,var_This);
22205 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Target);
22206}
22207private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_model(
22208 problem:LogicProblem, interpretation:PartialInterpretation, 20962 problem:LogicProblem, interpretation:PartialInterpretation,
22209 var_This, var_Target) 20963 source: DefinedElement, target:DefinedElement)
22210{ 20964{
22211 find interpretation(problem,interpretation); 20965 find interpretation(problem,interpretation);
22212 find mayInstanceOfFunctionalElement_class(problem,interpretation,var_This); 20966 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
22213 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Target); 20967 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function");
22214 // This is exported 20968 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
22215 // Target is exported 20969 BinaryElementRelationLink.param1(link,source);
22216 find mayInstanceOfFunctionalElement_class(problem,interpretation,var_This); 20970 BinaryElementRelationLink.param2(link,target);
22217 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Target);
22218} 20971}
22219private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_model( 20972/**
20973 * Matcher for detecting tuples t where <>type attribute Function(source,target)
20974 */
20975private pattern mayInRelationtype_attribute_Function(
22220 problem:LogicProblem, interpretation:PartialInterpretation, 20976 problem:LogicProblem, interpretation:PartialInterpretation,
22221 var_This, var_Target) 20977 source: DefinedElement, target:DefinedElement)
22222{ 20978{
22223 find interpretation(problem,interpretation); 20979 find interpretation(problem,interpretation);
22224 find mustInstanceOfFunctionalElement_class(problem,interpretation,var_This); 20980 // The two endpoint of the link have to exist
22225 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Target); 20981 find mayExist(problem, interpretation, source);
22226 // This is exported 20982 find mayExist(problem, interpretation, target);
22227 // Target is exported 20983 // Type consistency
22228 find mustInstanceOfFunctionalElement_class(problem,interpretation,var_This); 20984 find mayInstanceOfFunction_class(problem,interpretation,source);
22229 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Target); 20985 find mayInstanceOfFunctionType_enum(problem,interpretation,target);
20986 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
20987 // the upper bound of the multiplicity should be considered.
20988 numberOfExistingReferences == count find mustInRelationtype_attribute_Function(problem,interpretation,source,_);
20989 check(numberOfExistingReferences < 1);
20990} or {
20991 find mustInRelationtype_attribute_Function(problem,interpretation,source,target);
22230} 20992}
22231 20993
22232////////// 20994//////////
20995// 1.3 Relation Definition Indexers
20996//////////
20997
20998//////////
22233// 1.4 Containment Indexer 20999// 1.4 Containment Indexer
22234////////// 21000//////////
22235private pattern mustContains2(source: DefinedElement, target: DefinedElement) { 21001private pattern mustContains2(source: DefinedElement, target: DefinedElement) {
@@ -22259,17 +21025,21 @@ private pattern mustTransitiveContains(source,target) {
22259////////// 21025//////////
22260// 2.1 Invalidated by WF Queries 21026// 2.1 Invalidated by WF Queries
22261////////// 21027//////////
22262pattern invalidatedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_terminatorAndInformation(problem:LogicProblem, interpretation:PartialInterpretation,
22263 var_T, var_I)
22264{
22265 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_terminatorAndInformation(problem,interpretation,var_T,var_I);
22266}
22267 21028
22268////////// 21029//////////
22269// 3. Unfinishedness Indexers 21030// 3. Unfinishedness Indexers
22270////////// 21031//////////
22271// 3.1 Unfinishedness Measured by Multiplicity 21032// 3.1 Unfinishedness Measured by Multiplicity
22272////////// 21033//////////
21034pattern unfinishedLowerMultiplicity_model_reference_FunctionalElement(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
21035 find interpretation(problem,interpretation);
21036 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
21037 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement");
21038 find mustInstanceOfFunctionalElement_class(problem,interpretation,object);
21039 numberOfExistingReferences == count find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,object,_);
21040 check(numberOfExistingReferences < 1);
21041 missingMultiplicity == eval(1-numberOfExistingReferences);
21042}
22273pattern unfinishedLowerMultiplicity_to_reference_InformationLink(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { 21043pattern unfinishedLowerMultiplicity_to_reference_InformationLink(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
22274 find interpretation(problem,interpretation); 21044 find interpretation(problem,interpretation);
22275 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 21045 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
@@ -22279,15 +21049,19 @@ pattern unfinishedLowerMultiplicity_to_reference_InformationLink(problem:LogicPr
22279 check(numberOfExistingReferences < 1); 21049 check(numberOfExistingReferences < 1);
22280 missingMultiplicity == eval(1-numberOfExistingReferences); 21050 missingMultiplicity == eval(1-numberOfExistingReferences);
22281} 21051}
21052pattern unfinishedLowerMultiplicity_type_attribute_Function(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
21053 find interpretation(problem,interpretation);
21054 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
21055 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function");
21056 find mustInstanceOfFunction_class(problem,interpretation,object);
21057 numberOfExistingReferences == count find mustInRelationtype_attribute_Function(problem,interpretation,object,_);
21058 check(numberOfExistingReferences < 1);
21059 missingMultiplicity == eval(1-numberOfExistingReferences);
21060}
22282 21061
22283////////// 21062//////////
22284// 3.2 Unfinishedness Measured by WF Queries 21063// 3.2 Unfinishedness Measured by WF Queries
22285////////// 21064//////////
22286pattern unfinishedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_terminatorAndInformation(problem:LogicProblem, interpretation:PartialInterpretation,
22287 var_T, var_I)
22288{
22289 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_terminatorAndInformation(problem,interpretation,var_T,var_I);
22290}
22291 21065
22292////////// 21066//////////
22293// 4. Refinement Indexers 21067// 4. Refinement Indexers
@@ -22297,11 +21071,7 @@ pattern unfinishedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_term
22297private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation) 21071private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation)
22298{ 21072{
22299 find interpretation(problem,interpretation); 21073 find interpretation(problem,interpretation);
22300 find mustInstanceOfFunction_class(problem,interpretation,root); 21074 find mustInstanceOfFunctionalData_class(problem,interpretation,root);
22301 find mustExist(problem, interpretation, root);
22302}or{
22303 find interpretation(problem,interpretation);
22304 find mustInstanceOfFAMTerminator_class(problem,interpretation,root);
22305 find mustExist(problem, interpretation, root); 21075 find mustExist(problem, interpretation, root);
22306}or{ 21076}or{
22307 find interpretation(problem,interpretation); 21077 find interpretation(problem,interpretation);
@@ -22309,11 +21079,11 @@ private pattern hasElementInContainment(problem:LogicProblem, interpretation:Par
22309 find mustExist(problem, interpretation, root); 21079 find mustExist(problem, interpretation, root);
22310}or{ 21080}or{
22311 find interpretation(problem,interpretation); 21081 find interpretation(problem,interpretation);
22312 find mustInstanceOfFunctionalData_class(problem,interpretation,root); 21082 find mustInstanceOfFunction_class(problem,interpretation,root);
22313 find mustExist(problem, interpretation, root); 21083 find mustExist(problem, interpretation, root);
22314}or{ 21084}or{
22315 find interpretation(problem,interpretation); 21085 find interpretation(problem,interpretation);
22316 find mustInstanceOfFunctionalInput_class(problem,interpretation,root); 21086 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,root);
22317 find mustExist(problem, interpretation, root); 21087 find mustExist(problem, interpretation, root);
22318}or{ 21088}or{
22319 find interpretation(problem,interpretation); 21089 find interpretation(problem,interpretation);
@@ -22321,52 +21091,90 @@ private pattern hasElementInContainment(problem:LogicProblem, interpretation:Par
22321 find mustExist(problem, interpretation, root); 21091 find mustExist(problem, interpretation, root);
22322}or{ 21092}or{
22323 find interpretation(problem,interpretation); 21093 find interpretation(problem,interpretation);
22324 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,root); 21094 find mustInstanceOfFunctionalElement_class(problem,interpretation,root);
22325 find mustExist(problem, interpretation, root); 21095 find mustExist(problem, interpretation, root);
22326}or{ 21096}or{
22327 find interpretation(problem,interpretation); 21097 find interpretation(problem,interpretation);
22328 find mustInstanceOfFunctionalInterface_class(problem,interpretation,root); 21098 find mustInstanceOfFAMTerminator_class(problem,interpretation,root);
22329 find mustExist(problem, interpretation, root); 21099 find mustExist(problem, interpretation, root);
22330}or{ 21100}or{
22331 find interpretation(problem,interpretation); 21101 find interpretation(problem,interpretation);
22332 find mustInstanceOfFunctionalElement_class(problem,interpretation,root); 21102 find mustInstanceOfFunctionalInput_class(problem,interpretation,root);
22333 find mustExist(problem, interpretation, root); 21103 find mustExist(problem, interpretation, root);
22334}or{ 21104}or{
22335 find interpretation(problem,interpretation); 21105 find interpretation(problem,interpretation);
22336 find mustInstanceOfFunctionalArchitectureModel_class_DefinedPart(problem,interpretation,root); 21106 find mustInstanceOfFunctionalInterface_class(problem,interpretation,root);
22337 find mustExist(problem, interpretation, root); 21107 find mustExist(problem, interpretation, root);
22338}or{ 21108}
21109pattern createObject_FAMTerminator_class_by_terminator_reference_FunctionalData_with_data_reference_FAMTerminator(
21110 problem:LogicProblem, interpretation:PartialInterpretation,
21111 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
21112 container:DefinedElement)
21113{
22339 find interpretation(problem,interpretation); 21114 find interpretation(problem,interpretation);
22340 find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,root); 21115 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
22341 find mustExist(problem, interpretation, root); 21116 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class");
21117 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
21118 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"terminator reference FunctionalData");
21119 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
21120 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"data reference FAMTerminator");
21121 find mustInstanceOfFunctionalData_class(problem,interpretation,container);
21122 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject);
21123 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,container,newObject);
21124 find mustExist(problem, interpretation, container);
21125 neg find mustExist(problem, interpretation, newObject);
22342} 21126}
22343pattern createObject_FunctionalInterface_class_by_interface_reference_FunctionalElement_with_element_reference_FunctionalInterface( 21127pattern createObject_FAMTerminator_class(
21128 problem:LogicProblem, interpretation:PartialInterpretation,
21129 typeInterpretation:PartialComplexTypeInterpretation)
21130{
21131 find interpretation(problem,interpretation);
21132 neg find hasElementInContainment(problem,interpretation);
21133 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
21134 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class");
21135 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject);
21136 find mayExist(problem, interpretation, newObject);
21137 neg find mustExist(problem, interpretation, newObject);
21138}
21139pattern createObject_FunctionalArchitectureModel_class(
21140 problem:LogicProblem, interpretation:PartialInterpretation,
21141 typeInterpretation:PartialComplexTypeInterpretation)
21142{
21143 find interpretation(problem,interpretation);
21144 neg find hasElementInContainment(problem,interpretation);
21145 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
21146 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalArchitectureModel class");
21147 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,newObject);
21148 find mayExist(problem, interpretation, newObject);
21149 neg find mustExist(problem, interpretation, newObject);
21150}
21151pattern createObject_InformationLink_class_by_outgoingLinks_reference_FunctionalOutput_with_from_reference_InformationLink(
22344 problem:LogicProblem, interpretation:PartialInterpretation, 21152 problem:LogicProblem, interpretation:PartialInterpretation,
22345 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 21153 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
22346 container:DefinedElement) 21154 container:DefinedElement)
22347{ 21155{
22348 find interpretation(problem,interpretation); 21156 find interpretation(problem,interpretation);
22349 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 21157 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
22350 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class"); 21158 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class");
22351 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 21159 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
22352 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"interface reference FunctionalElement"); 21160 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"outgoingLinks reference FunctionalOutput");
22353 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 21161 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
22354 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"element reference FunctionalInterface"); 21162 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"from reference InformationLink");
22355 find mustInstanceOfFunctionalElement_class(problem,interpretation,container); 21163 find mustInstanceOfFunctionalOutput_class(problem,interpretation,container);
22356 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject); 21164 find mayInstanceOfInformationLink_class(problem,interpretation,newObject);
22357 find mayInRelationinterface_reference_FunctionalElement(problem,interpretation,container,newObject); 21165 find mayInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,container,newObject);
22358 find mustExist(problem, interpretation, container); 21166 find mustExist(problem, interpretation, container);
22359 neg find mustExist(problem, interpretation, newObject); 21167 neg find mustExist(problem, interpretation, newObject);
22360} 21168}
22361pattern createObject_FunctionalInterface_class( 21169pattern createObject_InformationLink_class(
22362 problem:LogicProblem, interpretation:PartialInterpretation, 21170 problem:LogicProblem, interpretation:PartialInterpretation,
22363 typeInterpretation:PartialComplexTypeInterpretation) 21171 typeInterpretation:PartialComplexTypeInterpretation)
22364{ 21172{
22365 find interpretation(problem,interpretation); 21173 find interpretation(problem,interpretation);
22366 neg find hasElementInContainment(problem,interpretation); 21174 neg find hasElementInContainment(problem,interpretation);
22367 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 21175 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
22368 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class"); 21176 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class");
22369 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject); 21177 find mayInstanceOfInformationLink_class(problem,interpretation,newObject);
22370 find mayExist(problem, interpretation, newObject); 21178 find mayExist(problem, interpretation, newObject);
22371 neg find mustExist(problem, interpretation, newObject); 21179 neg find mustExist(problem, interpretation, newObject);
22372} 21180}
@@ -22416,75 +21224,63 @@ pattern createObject_Function_class(
22416 find mayExist(problem, interpretation, newObject); 21224 find mayExist(problem, interpretation, newObject);
22417 neg find mustExist(problem, interpretation, newObject); 21225 neg find mustExist(problem, interpretation, newObject);
22418} 21226}
22419pattern createObject_FAMTerminator_class_by_terminator_reference_FunctionalData_with_data_reference_FAMTerminator( 21227pattern createObject_FunctionalInput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData(
22420 problem:LogicProblem, interpretation:PartialInterpretation, 21228 problem:LogicProblem, interpretation:PartialInterpretation,
22421 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 21229 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
22422 container:DefinedElement) 21230 container:DefinedElement)
22423{ 21231{
22424 find interpretation(problem,interpretation); 21232 find interpretation(problem,interpretation);
22425 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 21233 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
22426 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class"); 21234 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class");
22427 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 21235 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
22428 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"terminator reference FunctionalData"); 21236 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface");
22429 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 21237 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
22430 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"data reference FAMTerminator"); 21238 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData");
22431 find mustInstanceOfFunctionalData_class(problem,interpretation,container); 21239 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container);
22432 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject); 21240 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
22433 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,container,newObject); 21241 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject);
22434 find mustExist(problem, interpretation, container); 21242 find mustExist(problem, interpretation, container);
22435 neg find mustExist(problem, interpretation, newObject); 21243 neg find mustExist(problem, interpretation, newObject);
22436} 21244}
22437pattern createObject_FAMTerminator_class( 21245pattern createObject_FunctionalInput_class(
22438 problem:LogicProblem, interpretation:PartialInterpretation,
22439 typeInterpretation:PartialComplexTypeInterpretation)
22440{
22441 find interpretation(problem,interpretation);
22442 neg find hasElementInContainment(problem,interpretation);
22443 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
22444 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class");
22445 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject);
22446 find mayExist(problem, interpretation, newObject);
22447 neg find mustExist(problem, interpretation, newObject);
22448}
22449pattern createObject_FunctionalArchitectureModel_class_UndefinedPart(
22450 problem:LogicProblem, interpretation:PartialInterpretation, 21246 problem:LogicProblem, interpretation:PartialInterpretation,
22451 typeInterpretation:PartialComplexTypeInterpretation) 21247 typeInterpretation:PartialComplexTypeInterpretation)
22452{ 21248{
22453 find interpretation(problem,interpretation); 21249 find interpretation(problem,interpretation);
22454 neg find hasElementInContainment(problem,interpretation); 21250 neg find hasElementInContainment(problem,interpretation);
22455 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 21251 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
22456 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalArchitectureModel class UndefinedPart"); 21252 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class");
22457 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,newObject); 21253 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
22458 find mayExist(problem, interpretation, newObject); 21254 find mayExist(problem, interpretation, newObject);
22459 neg find mustExist(problem, interpretation, newObject); 21255 neg find mustExist(problem, interpretation, newObject);
22460} 21256}
22461pattern createObject_InformationLink_class_by_outgoingLinks_reference_FunctionalOutput_with_from_reference_InformationLink( 21257pattern createObject_FunctionalInterface_class_by_interface_reference_FunctionalElement_with_element_reference_FunctionalInterface(
22462 problem:LogicProblem, interpretation:PartialInterpretation, 21258 problem:LogicProblem, interpretation:PartialInterpretation,
22463 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 21259 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
22464 container:DefinedElement) 21260 container:DefinedElement)
22465{ 21261{
22466 find interpretation(problem,interpretation); 21262 find interpretation(problem,interpretation);
22467 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 21263 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
22468 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class"); 21264 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
22469 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 21265 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
22470 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"outgoingLinks reference FunctionalOutput"); 21266 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"interface reference FunctionalElement");
22471 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 21267 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
22472 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"from reference InformationLink"); 21268 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"element reference FunctionalInterface");
22473 find mustInstanceOfFunctionalOutput_class(problem,interpretation,container); 21269 find mustInstanceOfFunctionalElement_class(problem,interpretation,container);
22474 find mayInstanceOfInformationLink_class(problem,interpretation,newObject); 21270 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
22475 find mayInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,container,newObject); 21271 find mayInRelationinterface_reference_FunctionalElement(problem,interpretation,container,newObject);
22476 find mustExist(problem, interpretation, container); 21272 find mustExist(problem, interpretation, container);
22477 neg find mustExist(problem, interpretation, newObject); 21273 neg find mustExist(problem, interpretation, newObject);
22478} 21274}
22479pattern createObject_InformationLink_class( 21275pattern createObject_FunctionalInterface_class(
22480 problem:LogicProblem, interpretation:PartialInterpretation, 21276 problem:LogicProblem, interpretation:PartialInterpretation,
22481 typeInterpretation:PartialComplexTypeInterpretation) 21277 typeInterpretation:PartialComplexTypeInterpretation)
22482{ 21278{
22483 find interpretation(problem,interpretation); 21279 find interpretation(problem,interpretation);
22484 neg find hasElementInContainment(problem,interpretation); 21280 neg find hasElementInContainment(problem,interpretation);
22485 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 21281 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
22486 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class"); 21282 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
22487 find mayInstanceOfInformationLink_class(problem,interpretation,newObject); 21283 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
22488 find mayExist(problem, interpretation, newObject); 21284 find mayExist(problem, interpretation, newObject);
22489 neg find mustExist(problem, interpretation, newObject); 21285 neg find mustExist(problem, interpretation, newObject);
22490} 21286}
@@ -22518,118 +21314,88 @@ pattern createObject_FunctionalOutput_class(
22518 find mayExist(problem, interpretation, newObject); 21314 find mayExist(problem, interpretation, newObject);
22519 neg find mustExist(problem, interpretation, newObject); 21315 neg find mustExist(problem, interpretation, newObject);
22520} 21316}
22521pattern createObject_FunctionalInput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData(
22522 problem:LogicProblem, interpretation:PartialInterpretation,
22523 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
22524 container:DefinedElement)
22525{
22526 find interpretation(problem,interpretation);
22527 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
22528 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class");
22529 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
22530 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface");
22531 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
22532 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData");
22533 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container);
22534 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
22535 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject);
22536 find mustExist(problem, interpretation, container);
22537 neg find mustExist(problem, interpretation, newObject);
22538}
22539pattern createObject_FunctionalInput_class(
22540 problem:LogicProblem, interpretation:PartialInterpretation,
22541 typeInterpretation:PartialComplexTypeInterpretation)
22542{
22543 find interpretation(problem,interpretation);
22544 neg find hasElementInContainment(problem,interpretation);
22545 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
22546 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class");
22547 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
22548 find mayExist(problem, interpretation, newObject);
22549 neg find mustExist(problem, interpretation, newObject);
22550}
22551 21317
22552////////// 21318//////////
22553// 4.2 Type refinement 21319// 4.2 Type refinement
22554////////// 21320//////////
22555pattern refineTypeTo_FunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 21321pattern refineTypeTo_FAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
22556 find interpretation(problem,interpretation); 21322 find interpretation(problem,interpretation);
22557 PartialInterpretation.newElements(interpretation,element); 21323 PartialInterpretation.newElements(interpretation,element);
22558 find mayInstanceOfFunctionalInterface_class(problem,interpretation,element); 21324 find mayInstanceOfFAMTerminator_class(problem,interpretation,element);
21325 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
21326 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
21327 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
22559 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 21328 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
22560 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 21329 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
22561 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
22562 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 21330 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
22563 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
22564 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
22565} 21331}
22566pattern refineTypeTo_Function_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 21332pattern refineTypeTo_FunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
22567 find interpretation(problem,interpretation); 21333 find interpretation(problem,interpretation);
22568 PartialInterpretation.newElements(interpretation,element); 21334 PartialInterpretation.newElements(interpretation,element);
22569 find mayInstanceOfFunction_class(problem,interpretation,element); 21335 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
22570 neg find mustInstanceOfFunction_class(problem,interpretation,element);
22571 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
22572 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 21336 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
22573 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
22574 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
22575 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 21337 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
22576} 21338 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
22577pattern refineTypeTo_FAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
22578 find interpretation(problem,interpretation);
22579 PartialInterpretation.newElements(interpretation,element);
22580 find mayInstanceOfFAMTerminator_class(problem,interpretation,element);
22581 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 21339 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
22582 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 21340 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
22583 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
22584 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 21341 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
22585 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
22586 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
22587} 21342}
22588pattern refineTypeTo_FunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 21343pattern refineTypeTo_InformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
22589 find interpretation(problem,interpretation); 21344 find interpretation(problem,interpretation);
22590 PartialInterpretation.newElements(interpretation,element); 21345 PartialInterpretation.newElements(interpretation,element);
22591 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); 21346 find mayInstanceOfInformationLink_class(problem,interpretation,element);
21347 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
21348 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
21349 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
22592 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 21350 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
22593 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 21351 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
22594 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
22595 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 21352 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
22596 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
22597 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
22598} 21353}
22599pattern refineTypeTo_InformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 21354pattern refineTypeTo_Function_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
22600 find interpretation(problem,interpretation); 21355 find interpretation(problem,interpretation);
22601 PartialInterpretation.newElements(interpretation,element); 21356 PartialInterpretation.newElements(interpretation,element);
22602 find mayInstanceOfInformationLink_class(problem,interpretation,element); 21357 find mayInstanceOfFunction_class(problem,interpretation,element);
22603 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
22604 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
22605 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 21358 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
22606 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
22607 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
22608 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 21359 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
21360 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
21361 neg find mustInstanceOfFunction_class(problem,interpretation,element);
21362 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
21363 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
22609} 21364}
22610pattern refineTypeTo_FunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 21365pattern refineTypeTo_FunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
22611 find interpretation(problem,interpretation); 21366 find interpretation(problem,interpretation);
22612 PartialInterpretation.newElements(interpretation,element); 21367 PartialInterpretation.newElements(interpretation,element);
22613 find mayInstanceOfFunctionalOutput_class(problem,interpretation,element); 21368 find mayInstanceOfFunctionalInput_class(problem,interpretation,element);
22614 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
22615 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
22616 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 21369 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
21370 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
22617 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 21371 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
22618 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
22619 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); 21372 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
22620 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 21373 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
21374 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
21375 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
22621} 21376}
22622pattern refineTypeTo_FunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 21377pattern refineTypeTo_FunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
22623 find interpretation(problem,interpretation); 21378 find interpretation(problem,interpretation);
22624 PartialInterpretation.newElements(interpretation,element); 21379 PartialInterpretation.newElements(interpretation,element);
22625 find mayInstanceOfFunctionalInput_class(problem,interpretation,element); 21380 find mayInstanceOfFunctionalInterface_class(problem,interpretation,element);
21381 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
21382 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
21383 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
22626 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 21384 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
22627 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 21385 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
21386 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
21387}
21388pattern refineTypeTo_FunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
21389 find interpretation(problem,interpretation);
21390 PartialInterpretation.newElements(interpretation,element);
21391 find mayInstanceOfFunctionalOutput_class(problem,interpretation,element);
22628 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 21392 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
21393 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
22629 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 21394 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
22630 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
22631 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); 21395 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
22632 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 21396 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
21397 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
21398 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
22633} 21399}
22634 21400
22635////////// 21401//////////
@@ -22788,23 +21554,23 @@ private pattern mayInstanceOfFunctionalElement_class(problem:LogicProblem, inter
22788{ 21554{
22789 find interpretation(problem,interpretation); 21555 find interpretation(problem,interpretation);
22790 PartialInterpretation.newElements(interpretation,element); 21556 PartialInterpretation.newElements(interpretation,element);
22791 neg find mustInstanceOfFunction_class(problem,interpretation,element);
22792 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
22793 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 21557 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
22794 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 21558 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
21559 neg find mustInstanceOfFunction_class(problem,interpretation,element);
22795 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 21560 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
22796 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 21561 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
21562 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
22797 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation); 21563 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
22798 neg find isPrimitive(element); 21564 neg find isPrimitive(element);
22799} or { 21565} or {
22800 find interpretation(problem,interpretation); 21566 find interpretation(problem,interpretation);
22801 PartialInterpretation.openWorldElements(interpretation,element); 21567 PartialInterpretation.openWorldElements(interpretation,element);
22802 neg find mustInstanceOfFunction_class(problem,interpretation,element);
22803 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
22804 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 21568 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
22805 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 21569 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
21570 neg find mustInstanceOfFunction_class(problem,interpretation,element);
22806 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 21571 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
22807 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 21572 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
21573 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
22808 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation); 21574 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
22809 neg find isPrimitive(element); 21575 neg find isPrimitive(element);
22810} or 21576} or
@@ -22832,23 +21598,21 @@ private pattern mayInstanceOfFunctionalArchitectureModel_class(problem:LogicProb
22832{ 21598{
22833 find interpretation(problem,interpretation); 21599 find interpretation(problem,interpretation);
22834 PartialInterpretation.newElements(interpretation,element); 21600 PartialInterpretation.newElements(interpretation,element);
22835 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
22836 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
22837 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
22838 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 21601 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
22839 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 21602 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
22840 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 21603 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
21604 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
21605 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
22841 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation); 21606 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
22842 neg find isPrimitive(element); 21607 neg find isPrimitive(element);
22843} or { 21608} or {
22844 find interpretation(problem,interpretation); 21609 find interpretation(problem,interpretation);
22845 PartialInterpretation.openWorldElements(interpretation,element); 21610 PartialInterpretation.openWorldElements(interpretation,element);
22846 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
22847 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
22848 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
22849 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 21611 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
22850 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 21612 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
22851 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 21613 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
21614 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
21615 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
22852 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation); 21616 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
22853 neg find isPrimitive(element); 21617 neg find isPrimitive(element);
22854} or 21618} or
@@ -22876,21 +21640,21 @@ private pattern mayInstanceOfFunction_class(problem:LogicProblem, interpretation
22876{ 21640{
22877 find interpretation(problem,interpretation); 21641 find interpretation(problem,interpretation);
22878 PartialInterpretation.newElements(interpretation,element); 21642 PartialInterpretation.newElements(interpretation,element);
22879 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
22880 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 21643 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
22881 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
22882 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 21644 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
21645 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
22883 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 21646 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
21647 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
22884 neg find scopeDisallowsNewFunction_class(problem, interpretation); 21648 neg find scopeDisallowsNewFunction_class(problem, interpretation);
22885 neg find isPrimitive(element); 21649 neg find isPrimitive(element);
22886} or { 21650} or {
22887 find interpretation(problem,interpretation); 21651 find interpretation(problem,interpretation);
22888 PartialInterpretation.openWorldElements(interpretation,element); 21652 PartialInterpretation.openWorldElements(interpretation,element);
22889 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
22890 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 21653 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
22891 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
22892 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 21654 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
21655 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
22893 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 21656 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
21657 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
22894 neg find scopeDisallowsNewFunction_class(problem, interpretation); 21658 neg find scopeDisallowsNewFunction_class(problem, interpretation);
22895 neg find isPrimitive(element); 21659 neg find isPrimitive(element);
22896} or 21660} or
@@ -22918,21 +21682,21 @@ private pattern mayInstanceOfFAMTerminator_class(problem:LogicProblem, interpret
22918{ 21682{
22919 find interpretation(problem,interpretation); 21683 find interpretation(problem,interpretation);
22920 PartialInterpretation.newElements(interpretation,element); 21684 PartialInterpretation.newElements(interpretation,element);
22921 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
22922 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
22923 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 21685 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
22924 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 21686 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
22925 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 21687 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
21688 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
21689 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
22926 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation); 21690 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
22927 neg find isPrimitive(element); 21691 neg find isPrimitive(element);
22928} or { 21692} or {
22929 find interpretation(problem,interpretation); 21693 find interpretation(problem,interpretation);
22930 PartialInterpretation.openWorldElements(interpretation,element); 21694 PartialInterpretation.openWorldElements(interpretation,element);
22931 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
22932 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
22933 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 21695 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
22934 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 21696 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
22935 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 21697 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
21698 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
21699 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
22936 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation); 21700 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
22937 neg find isPrimitive(element); 21701 neg find isPrimitive(element);
22938} or 21702} or
@@ -22960,21 +21724,21 @@ private pattern mayInstanceOfInformationLink_class(problem:LogicProblem, interpr
22960{ 21724{
22961 find interpretation(problem,interpretation); 21725 find interpretation(problem,interpretation);
22962 PartialInterpretation.newElements(interpretation,element); 21726 PartialInterpretation.newElements(interpretation,element);
22963 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
22964 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
22965 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 21727 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
22966 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 21728 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
22967 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 21729 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
21730 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
21731 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
22968 neg find scopeDisallowsNewInformationLink_class(problem, interpretation); 21732 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
22969 neg find isPrimitive(element); 21733 neg find isPrimitive(element);
22970} or { 21734} or {
22971 find interpretation(problem,interpretation); 21735 find interpretation(problem,interpretation);
22972 PartialInterpretation.openWorldElements(interpretation,element); 21736 PartialInterpretation.openWorldElements(interpretation,element);
22973 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
22974 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
22975 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 21737 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
22976 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 21738 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
22977 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 21739 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
21740 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
21741 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
22978 neg find scopeDisallowsNewInformationLink_class(problem, interpretation); 21742 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
22979 neg find isPrimitive(element); 21743 neg find isPrimitive(element);
22980} or 21744} or
@@ -23002,21 +21766,21 @@ private pattern mayInstanceOfFunctionalInterface_class(problem:LogicProblem, int
23002{ 21766{
23003 find interpretation(problem,interpretation); 21767 find interpretation(problem,interpretation);
23004 PartialInterpretation.newElements(interpretation,element); 21768 PartialInterpretation.newElements(interpretation,element);
23005 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
23006 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
23007 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 21769 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
23008 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
23009 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 21770 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
21771 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
21772 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
21773 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
23010 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation); 21774 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
23011 neg find isPrimitive(element); 21775 neg find isPrimitive(element);
23012} or { 21776} or {
23013 find interpretation(problem,interpretation); 21777 find interpretation(problem,interpretation);
23014 PartialInterpretation.openWorldElements(interpretation,element); 21778 PartialInterpretation.openWorldElements(interpretation,element);
23015 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
23016 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
23017 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 21779 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
23018 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
23019 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 21780 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
21781 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
21782 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
21783 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
23020 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation); 21784 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
23021 neg find isPrimitive(element); 21785 neg find isPrimitive(element);
23022} or 21786} or
@@ -23044,23 +21808,23 @@ private pattern mayInstanceOfFunctionalInput_class(problem:LogicProblem, interpr
23044{ 21808{
23045 find interpretation(problem,interpretation); 21809 find interpretation(problem,interpretation);
23046 PartialInterpretation.newElements(interpretation,element); 21810 PartialInterpretation.newElements(interpretation,element);
23047 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
23048 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 21811 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
23049 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 21812 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
23050 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
23051 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 21813 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
21814 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
23052 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 21815 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
21816 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
23053 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation); 21817 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
23054 neg find isPrimitive(element); 21818 neg find isPrimitive(element);
23055} or { 21819} or {
23056 find interpretation(problem,interpretation); 21820 find interpretation(problem,interpretation);
23057 PartialInterpretation.openWorldElements(interpretation,element); 21821 PartialInterpretation.openWorldElements(interpretation,element);
23058 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
23059 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 21822 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
23060 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 21823 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
23061 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
23062 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 21824 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
21825 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
23063 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 21826 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
21827 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
23064 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation); 21828 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
23065 neg find isPrimitive(element); 21829 neg find isPrimitive(element);
23066} or 21830} or
@@ -23088,23 +21852,23 @@ private pattern mayInstanceOfFunctionalOutput_class(problem:LogicProblem, interp
23088{ 21852{
23089 find interpretation(problem,interpretation); 21853 find interpretation(problem,interpretation);
23090 PartialInterpretation.newElements(interpretation,element); 21854 PartialInterpretation.newElements(interpretation,element);
23091 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
23092 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 21855 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
23093 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
23094 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 21856 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
23095 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 21857 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
23096 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); 21858 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
21859 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
21860 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
23097 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation); 21861 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
23098 neg find isPrimitive(element); 21862 neg find isPrimitive(element);
23099} or { 21863} or {
23100 find interpretation(problem,interpretation); 21864 find interpretation(problem,interpretation);
23101 PartialInterpretation.openWorldElements(interpretation,element); 21865 PartialInterpretation.openWorldElements(interpretation,element);
23102 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
23103 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 21866 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
23104 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
23105 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 21867 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
23106 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 21868 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
23107 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); 21869 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
21870 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
21871 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
23108 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation); 21872 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
23109 neg find isPrimitive(element); 21873 neg find isPrimitive(element);
23110} or 21874} or
@@ -23132,25 +21896,25 @@ private pattern mayInstanceOfFunctionalData_class(problem:LogicProblem, interpre
23132{ 21896{
23133 find interpretation(problem,interpretation); 21897 find interpretation(problem,interpretation);
23134 PartialInterpretation.newElements(interpretation,element); 21898 PartialInterpretation.newElements(interpretation,element);
23135 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
23136 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 21899 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
23137 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
23138 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 21900 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
21901 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
23139 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 21902 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
23140 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); 21903 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
23141 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 21904 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
21905 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
23142 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation); 21906 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
23143 neg find isPrimitive(element); 21907 neg find isPrimitive(element);
23144} or { 21908} or {
23145 find interpretation(problem,interpretation); 21909 find interpretation(problem,interpretation);
23146 PartialInterpretation.openWorldElements(interpretation,element); 21910 PartialInterpretation.openWorldElements(interpretation,element);
23147 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
23148 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 21911 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
23149 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
23150 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 21912 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
21913 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
23151 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 21914 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
23152 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); 21915 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
23153 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 21916 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
21917 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
23154 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation); 21918 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
23155 neg find isPrimitive(element); 21919 neg find isPrimitive(element);
23156} or 21920} or
@@ -23176,69 +21940,6 @@ private pattern scopeDisallowsNewFunctionType_enum(problem:LogicProblem, interpr
23176 */ 21940 */
23177private pattern mayInstanceOfFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 21941private pattern mayInstanceOfFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
23178{ find mustInstanceOfFunctionType_enum(problem,interpretation,element); } 21942{ find mustInstanceOfFunctionType_enum(problem,interpretation,element); }
23179/**
23180 * An element must be an instance of type "FunctionalArchitectureModel class DefinedPart".
23181 */
23182private pattern mustInstanceOfFunctionalArchitectureModel_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
23183 Type.name(type,"FunctionalArchitectureModel class DefinedPart");
23184 find directInstanceOf(problem,interpretation,element,type);
23185}
23186private pattern scopeDisallowsNewFunctionalArchitectureModel_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
23187 find interpretation(problem,interpretation);
23188 PartialInterpretation.scopes(interpretation,scope);
23189 Scope.targetTypeInterpretation(scope,typeInterpretation);
23190 Scope.maxNewElements(scope,0);
23191 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
23192 Type.name(type,"FunctionalArchitectureModel class DefinedPart");
23193}
23194
23195/**
23196 * An element may be an instance of type "FunctionalArchitectureModel class DefinedPart".
23197 */
23198private pattern mayInstanceOfFunctionalArchitectureModel_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
23199{ find mustInstanceOfFunctionalArchitectureModel_class_DefinedPart(problem,interpretation,element); }
23200/**
23201 * An element must be an instance of type "FunctionalArchitectureModel class UndefinedPart".
23202 */
23203private pattern mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
23204 Type.name(type,"FunctionalArchitectureModel class UndefinedPart");
23205 find directInstanceOf(problem,interpretation,element,type);
23206}
23207private pattern scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
23208 find interpretation(problem,interpretation);
23209 PartialInterpretation.scopes(interpretation,scope);
23210 Scope.targetTypeInterpretation(scope,typeInterpretation);
23211 Scope.maxNewElements(scope,0);
23212 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
23213 Type.name(type,"FunctionalArchitectureModel class UndefinedPart");
23214}
23215
23216/**
23217 * An element may be an instance of type "FunctionalArchitectureModel class UndefinedPart".
23218 */
23219private pattern mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
23220{
23221 find interpretation(problem,interpretation);
23222 PartialInterpretation.newElements(interpretation,element);
23223 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
23224 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
23225 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
23226 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
23227 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
23228 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation);
23229 neg find isPrimitive(element);
23230} or {
23231 find interpretation(problem,interpretation);
23232 PartialInterpretation.openWorldElements(interpretation,element);
23233 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
23234 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
23235 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
23236 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
23237 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
23238 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation);
23239 neg find isPrimitive(element);
23240} or
23241{ find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); }
23242 21943
23243////////// 21944//////////
23244// 1.2 Relation Declaration Indexers 21945// 1.2 Relation Declaration Indexers
@@ -23290,21 +21991,38 @@ private pattern mayInRelationinterface_reference_FunctionalElement(
23290/** 21991/**
23291 * Matcher for detecting tuples t where []model reference FunctionalElement(source,target) 21992 * Matcher for detecting tuples t where []model reference FunctionalElement(source,target)
23292 */ 21993 */
23293 private pattern mustInRelationmodel_reference_FunctionalElement( 21994private pattern mustInRelationmodel_reference_FunctionalElement(
23294 problem:LogicProblem, interpretation:PartialInterpretation, 21995 problem:LogicProblem, interpretation:PartialInterpretation,
23295 source: DefinedElement, target:DefinedElement) 21996 source: DefinedElement, target:DefinedElement)
23296 { 21997{
23297 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_xyz_model(problem,interpretation,source,target); 21998 find interpretation(problem,interpretation);
23298 } 21999 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
22000 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement");
22001 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
22002 BinaryElementRelationLink.param1(link,source);
22003 BinaryElementRelationLink.param2(link,target);
22004}
23299/** 22005/**
23300 * Matcher for detecting tuples t where []model reference FunctionalElement(source,target) 22006 * Matcher for detecting tuples t where <>model reference FunctionalElement(source,target)
23301 */ 22007 */
23302 private pattern mayInRelationmodel_reference_FunctionalElement( 22008private pattern mayInRelationmodel_reference_FunctionalElement(
23303 problem:LogicProblem, interpretation:PartialInterpretation, 22009 problem:LogicProblem, interpretation:PartialInterpretation,
23304 source: DefinedElement, target:DefinedElement) 22010 source: DefinedElement, target:DefinedElement)
23305 { 22011{
23306 find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_xyz_model(problem,interpretation,source,target); 22012 find interpretation(problem,interpretation);
23307 } 22013 // The two endpoint of the link have to exist
22014 find mayExist(problem, interpretation, source);
22015 find mayExist(problem, interpretation, target);
22016 // Type consistency
22017 find mayInstanceOfFunctionalElement_class(problem,interpretation,source);
22018 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,target);
22019 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
22020 // the upper bound of the multiplicity should be considered.
22021 numberOfExistingReferences == count find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,source,_);
22022 check(numberOfExistingReferences < 1);
22023} or {
22024 find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,source,target);
22025}
23308/** 22026/**
23309 * Matcher for detecting tuples t where []parent reference FunctionalElement(source,target) 22027 * Matcher for detecting tuples t where []parent reference FunctionalElement(source,target)
23310 */ 22028 */
@@ -23786,347 +22504,44 @@ private pattern mayInRelationinterface_reference_FunctionalData(
23786/** 22504/**
23787 * Matcher for detecting tuples t where []type attribute Function(source,target) 22505 * Matcher for detecting tuples t where []type attribute Function(source,target)
23788 */ 22506 */
23789 private pattern mustInRelationtype_attribute_Function( 22507private pattern mustInRelationtype_attribute_Function(
23790 problem:LogicProblem, interpretation:PartialInterpretation,
23791 source: DefinedElement, target:DefinedElement)
23792 {
23793 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_xyz_type(problem,interpretation,source,target);
23794 }
23795/**
23796 * Matcher for detecting tuples t where []type attribute Function(source,target)
23797 */
23798 private pattern mayInRelationtype_attribute_Function(
23799 problem:LogicProblem, interpretation:PartialInterpretation,
23800 source: DefinedElement, target:DefinedElement)
23801 {
23802 find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_xyz_type(problem,interpretation,source,target);
23803 }
23804
23805//////////
23806// 1.3 Relation Definition Indexers
23807//////////
23808// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test xyz terminatorAndInformation
23809private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_xyz_terminatorAndInformation(
23810 problem:LogicProblem, interpretation:PartialInterpretation,
23811 var_T, var_I)
23812{
23813 find interpretation(problem,interpretation);
23814 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_T);
23815 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
23816 // T is exported
23817 // I is exported
23818 find mustInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
23819 find mustInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,var_Out,var_virtual0);
23820 find mustInstanceOfInformationLink_class(problem,interpretation,var_virtual0);
23821 var_virtual0 == var_I;
23822 find mustInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
23823 find mustInRelationterminator_reference_FunctionalData(problem,interpretation,var_Out,var_virtual1);
23824 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
23825 var_virtual1 == var_T;
23826}or{
23827 find interpretation(problem,interpretation);
23828 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_T);
23829 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
23830 // T is exported
23831 // I is exported
23832 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
23833 find mustInRelationto_reference_InformationLink(problem,interpretation,var_I,var_virtual0);
23834 find mustInstanceOfFunctionalInput_class(problem,interpretation,var_virtual0);
23835 var_virtual0 == var_In;
23836 find mustInstanceOfFunctionalInput_class(problem,interpretation,var_In);
23837 find mustInRelationterminator_reference_FunctionalData(problem,interpretation,var_In,var_virtual1);
23838 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
23839 var_virtual1 == var_T;
23840}
23841private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_xyz_terminatorAndInformation(
23842 problem:LogicProblem, interpretation:PartialInterpretation,
23843 var_T, var_I)
23844{
23845 find interpretation(problem,interpretation);
23846 find mayInstanceOfFAMTerminator_class(problem,interpretation,var_T);
23847 find mayInstanceOfInformationLink_class(problem,interpretation,var_I);
23848 // T is exported
23849 // I is exported
23850 find mayInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
23851 find mayInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,var_Out,var_virtual0);
23852 find mayInstanceOfInformationLink_class(problem,interpretation,var_virtual0);
23853 find mayEquivalent(problem, interpretation, var_virtual0, var_I);
23854 find mayInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
23855 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,var_Out,var_virtual1);
23856 find mayInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
23857 find mayEquivalent(problem, interpretation, var_virtual1, var_T);
23858}or{
23859 find interpretation(problem,interpretation);
23860 find mayInstanceOfFAMTerminator_class(problem,interpretation,var_T);
23861 find mayInstanceOfInformationLink_class(problem,interpretation,var_I);
23862 // T is exported
23863 // I is exported
23864 find mayInstanceOfInformationLink_class(problem,interpretation,var_I);
23865 find mayInRelationto_reference_InformationLink(problem,interpretation,var_I,var_virtual0);
23866 find mayInstanceOfFunctionalInput_class(problem,interpretation,var_virtual0);
23867 find mayEquivalent(problem, interpretation, var_virtual0, var_In);
23868 find mayInstanceOfFunctionalInput_class(problem,interpretation,var_In);
23869 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,var_In,var_virtual1);
23870 find mayInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
23871 find mayEquivalent(problem, interpretation, var_virtual1, var_T);
23872}
23873private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_xyz_terminatorAndInformation(
23874 problem:LogicProblem, interpretation:PartialInterpretation,
23875 var_T, var_I)
23876{
23877 find interpretation(problem,interpretation);
23878 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_T);
23879 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
23880 // T is exported
23881 // I is exported
23882 find mustInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
23883 find mustInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,var_Out,var_virtual0);
23884 find mustInstanceOfInformationLink_class(problem,interpretation,var_virtual0);
23885 var_virtual0 == var_I;
23886 find mustInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
23887 find mustInRelationterminator_reference_FunctionalData(problem,interpretation,var_Out,var_virtual1);
23888 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
23889 var_virtual1 == var_T;
23890}or{
23891 find interpretation(problem,interpretation);
23892 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_T);
23893 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
23894 // T is exported
23895 // I is exported
23896 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
23897 find mustInRelationto_reference_InformationLink(problem,interpretation,var_I,var_virtual0);
23898 find mustInstanceOfFunctionalInput_class(problem,interpretation,var_virtual0);
23899 var_virtual0 == var_In;
23900 find mustInstanceOfFunctionalInput_class(problem,interpretation,var_In);
23901 find mustInRelationterminator_reference_FunctionalData(problem,interpretation,var_In,var_virtual1);
23902 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
23903 var_virtual1 == var_T;
23904}
23905// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test xyz type
23906private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_xyz_type(
23907 problem:LogicProblem, interpretation:PartialInterpretation,
23908 var_This, var_Target)
23909{
23910 find interpretation(problem,interpretation);
23911 find mustInstanceOfFunction_class(problem,interpretation,var_This);
23912 // type constraint is enforced by construction
23913 // This is exported
23914 // Target is exported
23915 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_xyz_rootElements(problem,interpretation,_var__Model,var_This);
23916 var_virtual0 == const_Root_FunctionType;DefinedElement.name(const_Root_FunctionType,"Root FunctionType"); //LogicProblem.elements(problem,const_Root_FunctionType);
23917 var_Target == var_virtual0;
23918}or{
23919 find interpretation(problem,interpretation);
23920 find mustInstanceOfFunction_class(problem,interpretation,var_This);
23921 // type constraint is enforced by construction
23922 // This is exported
23923 // Target is exported
23924 neg find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_xyz_parent(problem,interpretation,_var__Child,var_This);
23925 neg find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_xyz_rootElements(problem,interpretation,_var__Model,var_This);
23926 var_virtual0 == const_Leaf_FunctionType;DefinedElement.name(const_Leaf_FunctionType,"Leaf FunctionType"); //LogicProblem.elements(problem,const_Leaf_FunctionType);
23927 var_Target == var_virtual0;
23928}or{
23929 find interpretation(problem,interpretation);
23930 find mustInstanceOfFunction_class(problem,interpretation,var_This);
23931 // type constraint is enforced by construction
23932 // This is exported
23933 // Target is exported
23934 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_xyz_parent(problem,interpretation,var_This,_var__Par);
23935 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_xyz_parent(problem,interpretation,_var__Child,var_This);
23936 var_virtual0 == const_Intermediate_FunctionType;DefinedElement.name(const_Intermediate_FunctionType,"Intermediate FunctionType"); //LogicProblem.elements(problem,const_Intermediate_FunctionType);
23937 var_Target == var_virtual0;
23938}
23939private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_xyz_type(
23940 problem:LogicProblem, interpretation:PartialInterpretation,
23941 var_This, var_Target)
23942{
23943 find interpretation(problem,interpretation);
23944 find mayInstanceOfFunction_class(problem,interpretation,var_This);
23945 // type constraint is enforced by construction
23946 // This is exported
23947 // Target is exported
23948 find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_xyz_rootElements(problem,interpretation,_var__Model,var_This);
23949 var_virtual0 == const_Root_FunctionType;DefinedElement.name(const_Root_FunctionType,"Root FunctionType"); //LogicProblem.elements(problem,const_Root_FunctionType);
23950 find mayEquivalent(problem, interpretation, var_Target, var_virtual0);
23951}or{
23952 find interpretation(problem,interpretation);
23953 find mayInstanceOfFunction_class(problem,interpretation,var_This);
23954 // type constraint is enforced by construction
23955 // This is exported
23956 // Target is exported
23957 neg find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_xyz_parent(problem,interpretation,_var__Child,var_This);
23958 neg find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_xyz_rootElements(problem,interpretation,_var__Model,var_This);
23959 var_virtual0 == const_Leaf_FunctionType;DefinedElement.name(const_Leaf_FunctionType,"Leaf FunctionType"); //LogicProblem.elements(problem,const_Leaf_FunctionType);
23960 find mayEquivalent(problem, interpretation, var_Target, var_virtual0);
23961}or{
23962 find interpretation(problem,interpretation);
23963 find mayInstanceOfFunction_class(problem,interpretation,var_This);
23964 // type constraint is enforced by construction
23965 // This is exported
23966 // Target is exported
23967 find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_xyz_parent(problem,interpretation,var_This,_var__Par);
23968 find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_xyz_parent(problem,interpretation,_var__Child,var_This);
23969 var_virtual0 == const_Intermediate_FunctionType;DefinedElement.name(const_Intermediate_FunctionType,"Intermediate FunctionType"); //LogicProblem.elements(problem,const_Intermediate_FunctionType);
23970 find mayEquivalent(problem, interpretation, var_Target, var_virtual0);
23971}
23972private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_xyz_type(
23973 problem:LogicProblem, interpretation:PartialInterpretation,
23974 var_This, var_Target)
23975{
23976 find interpretation(problem,interpretation);
23977 find mustInstanceOfFunction_class(problem,interpretation,var_This);
23978 // type constraint is enforced by construction
23979 // This is exported
23980 // Target is exported
23981 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_xyz_rootElements(problem,interpretation,_var__Model,var_This);
23982 var_virtual0 == const_Root_FunctionType;DefinedElement.name(const_Root_FunctionType,"Root FunctionType"); //LogicProblem.elements(problem,const_Root_FunctionType);
23983 var_Target == var_virtual0;
23984}or{
23985 find interpretation(problem,interpretation);
23986 find mustInstanceOfFunction_class(problem,interpretation,var_This);
23987 // type constraint is enforced by construction
23988 // This is exported
23989 // Target is exported
23990 neg find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_xyz_parent(problem,interpretation,_var__Child,var_This);
23991 neg find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_xyz_rootElements(problem,interpretation,_var__Model,var_This);
23992 var_virtual0 == const_Leaf_FunctionType;DefinedElement.name(const_Leaf_FunctionType,"Leaf FunctionType"); //LogicProblem.elements(problem,const_Leaf_FunctionType);
23993 var_Target == var_virtual0;
23994}or{
23995 find interpretation(problem,interpretation);
23996 find mustInstanceOfFunction_class(problem,interpretation,var_This);
23997 // type constraint is enforced by construction
23998 // This is exported
23999 // Target is exported
24000 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_xyz_parent(problem,interpretation,var_This,_var__Par);
24001 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_xyz_parent(problem,interpretation,_var__Child,var_This);
24002 var_virtual0 == const_Intermediate_FunctionType;DefinedElement.name(const_Intermediate_FunctionType,"Intermediate FunctionType"); //LogicProblem.elements(problem,const_Intermediate_FunctionType);
24003 var_Target == var_virtual0;
24004}
24005// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test xyz rootElements
24006private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_xyz_rootElements(
24007 problem:LogicProblem, interpretation:PartialInterpretation,
24008 var_Model, var_Root)
24009{
24010 find interpretation(problem,interpretation);
24011 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Model);
24012 find mustInstanceOfFunction_class(problem,interpretation,var_Root);
24013 // Model is exported
24014 // Root is exported
24015 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Model);
24016 find mustInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,var_Model,var_virtual0);
24017 find mustInstanceOfFunctionalElement_class(problem,interpretation,var_virtual0);
24018 var_virtual0 == var_Root;
24019}
24020private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_xyz_rootElements(
24021 problem:LogicProblem, interpretation:PartialInterpretation,
24022 var_Model, var_Root)
24023{
24024 find interpretation(problem,interpretation);
24025 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Model);
24026 find mayInstanceOfFunction_class(problem,interpretation,var_Root);
24027 // Model is exported
24028 // Root is exported
24029 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Model);
24030 find mayInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,var_Model,var_virtual0);
24031 find mayInstanceOfFunctionalElement_class(problem,interpretation,var_virtual0);
24032 find mayEquivalent(problem, interpretation, var_virtual0, var_Root);
24033}
24034private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_xyz_rootElements(
24035 problem:LogicProblem, interpretation:PartialInterpretation,
24036 var_Model, var_Root)
24037{
24038 find interpretation(problem,interpretation);
24039 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Model);
24040 find mustInstanceOfFunction_class(problem,interpretation,var_Root);
24041 // Model is exported
24042 // Root is exported
24043 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Model);
24044 find mustInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,var_Model,var_virtual0);
24045 find mustInstanceOfFunctionalElement_class(problem,interpretation,var_virtual0);
24046 var_virtual0 == var_Root;
24047}
24048// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test xyz parent
24049private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_xyz_parent(
24050 problem:LogicProblem, interpretation:PartialInterpretation,
24051 var_Func, var_Par)
24052{
24053 find interpretation(problem,interpretation);
24054 find mustInstanceOfFunction_class(problem,interpretation,var_Func);
24055 find mustInstanceOfFunction_class(problem,interpretation,var_Par);
24056 // Func is exported
24057 // Par is exported
24058 find mustInstanceOfFunction_class(problem,interpretation,var_Func);
24059 find mustInRelationparent_reference_FunctionalElement(problem,interpretation,var_Func,var_virtual0);
24060 find mustInstanceOfFunction_class(problem,interpretation,var_virtual0);
24061 var_virtual0 == var_Par;
24062}
24063private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_xyz_parent(
24064 problem:LogicProblem, interpretation:PartialInterpretation,
24065 var_Func, var_Par)
24066{
24067 find interpretation(problem,interpretation);
24068 find mayInstanceOfFunction_class(problem,interpretation,var_Func);
24069 find mayInstanceOfFunction_class(problem,interpretation,var_Par);
24070 // Func is exported
24071 // Par is exported
24072 find mayInstanceOfFunction_class(problem,interpretation,var_Func);
24073 find mayInRelationparent_reference_FunctionalElement(problem,interpretation,var_Func,var_virtual0);
24074 find mayInstanceOfFunction_class(problem,interpretation,var_virtual0);
24075 find mayEquivalent(problem, interpretation, var_virtual0, var_Par);
24076}
24077private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_xyz_parent(
24078 problem:LogicProblem, interpretation:PartialInterpretation,
24079 var_Func, var_Par)
24080{
24081 find interpretation(problem,interpretation);
24082 find mustInstanceOfFunction_class(problem,interpretation,var_Func);
24083 find mustInstanceOfFunction_class(problem,interpretation,var_Par);
24084 // Func is exported
24085 // Par is exported
24086 find mustInstanceOfFunction_class(problem,interpretation,var_Func);
24087 find mustInRelationparent_reference_FunctionalElement(problem,interpretation,var_Func,var_virtual0);
24088 find mustInstanceOfFunction_class(problem,interpretation,var_virtual0);
24089 var_virtual0 == var_Par;
24090}
24091// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test xyz model
24092private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_xyz_model(
24093 problem:LogicProblem, interpretation:PartialInterpretation,
24094 var_This, var_Target)
24095{
24096 find interpretation(problem,interpretation);
24097 find mustInstanceOfFunctionalElement_class(problem,interpretation,var_This);
24098 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Target);
24099 // This is exported
24100 // Target is exported
24101 find mustInstanceOfFunctionalElement_class(problem,interpretation,var_This);
24102 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Target);
24103}
24104private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_xyz_model(
24105 problem:LogicProblem, interpretation:PartialInterpretation, 22508 problem:LogicProblem, interpretation:PartialInterpretation,
24106 var_This, var_Target) 22509 source: DefinedElement, target:DefinedElement)
24107{ 22510{
24108 find interpretation(problem,interpretation); 22511 find interpretation(problem,interpretation);
24109 find mayInstanceOfFunctionalElement_class(problem,interpretation,var_This); 22512 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
24110 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Target); 22513 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function");
24111 // This is exported 22514 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
24112 // Target is exported 22515 BinaryElementRelationLink.param1(link,source);
24113 find mayInstanceOfFunctionalElement_class(problem,interpretation,var_This); 22516 BinaryElementRelationLink.param2(link,target);
24114 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Target);
24115} 22517}
24116private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_xyz_model( 22518/**
22519 * Matcher for detecting tuples t where <>type attribute Function(source,target)
22520 */
22521private pattern mayInRelationtype_attribute_Function(
24117 problem:LogicProblem, interpretation:PartialInterpretation, 22522 problem:LogicProblem, interpretation:PartialInterpretation,
24118 var_This, var_Target) 22523 source: DefinedElement, target:DefinedElement)
24119{ 22524{
24120 find interpretation(problem,interpretation); 22525 find interpretation(problem,interpretation);
24121 find mustInstanceOfFunctionalElement_class(problem,interpretation,var_This); 22526 // The two endpoint of the link have to exist
24122 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Target); 22527 find mayExist(problem, interpretation, source);
24123 // This is exported 22528 find mayExist(problem, interpretation, target);
24124 // Target is exported 22529 // Type consistency
24125 find mustInstanceOfFunctionalElement_class(problem,interpretation,var_This); 22530 find mayInstanceOfFunction_class(problem,interpretation,source);
24126 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,var_Target); 22531 find mayInstanceOfFunctionType_enum(problem,interpretation,target);
22532 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
22533 // the upper bound of the multiplicity should be considered.
22534 numberOfExistingReferences == count find mustInRelationtype_attribute_Function(problem,interpretation,source,_);
22535 check(numberOfExistingReferences < 1);
22536} or {
22537 find mustInRelationtype_attribute_Function(problem,interpretation,source,target);
24127} 22538}
24128 22539
24129////////// 22540//////////
22541// 1.3 Relation Definition Indexers
22542//////////
22543
22544//////////
24130// 1.4 Containment Indexer 22545// 1.4 Containment Indexer
24131////////// 22546//////////
24132private pattern mustContains2(source: DefinedElement, target: DefinedElement) { 22547private pattern mustContains2(source: DefinedElement, target: DefinedElement) {
@@ -24156,17 +22571,21 @@ private pattern mustTransitiveContains(source,target) {
24156////////// 22571//////////
24157// 2.1 Invalidated by WF Queries 22572// 2.1 Invalidated by WF Queries
24158////////// 22573//////////
24159pattern invalidatedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_xyz_terminatorAndInformation(problem:LogicProblem, interpretation:PartialInterpretation,
24160 var_T, var_I)
24161{
24162 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_xyz_terminatorAndInformation(problem,interpretation,var_T,var_I);
24163}
24164 22574
24165////////// 22575//////////
24166// 3. Unfinishedness Indexers 22576// 3. Unfinishedness Indexers
24167////////// 22577//////////
24168// 3.1 Unfinishedness Measured by Multiplicity 22578// 3.1 Unfinishedness Measured by Multiplicity
24169////////// 22579//////////
22580pattern unfinishedLowerMultiplicity_model_reference_FunctionalElement(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
22581 find interpretation(problem,interpretation);
22582 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
22583 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement");
22584 find mustInstanceOfFunctionalElement_class(problem,interpretation,object);
22585 numberOfExistingReferences == count find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,object,_);
22586 check(numberOfExistingReferences < 1);
22587 missingMultiplicity == eval(1-numberOfExistingReferences);
22588}
24170pattern unfinishedLowerMultiplicity_to_reference_InformationLink(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { 22589pattern unfinishedLowerMultiplicity_to_reference_InformationLink(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
24171 find interpretation(problem,interpretation); 22590 find interpretation(problem,interpretation);
24172 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 22591 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
@@ -24176,15 +22595,19 @@ pattern unfinishedLowerMultiplicity_to_reference_InformationLink(problem:LogicPr
24176 check(numberOfExistingReferences < 1); 22595 check(numberOfExistingReferences < 1);
24177 missingMultiplicity == eval(1-numberOfExistingReferences); 22596 missingMultiplicity == eval(1-numberOfExistingReferences);
24178} 22597}
22598pattern unfinishedLowerMultiplicity_type_attribute_Function(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
22599 find interpretation(problem,interpretation);
22600 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
22601 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function");
22602 find mustInstanceOfFunction_class(problem,interpretation,object);
22603 numberOfExistingReferences == count find mustInRelationtype_attribute_Function(problem,interpretation,object,_);
22604 check(numberOfExistingReferences < 1);
22605 missingMultiplicity == eval(1-numberOfExistingReferences);
22606}
24179 22607
24180////////// 22608//////////
24181// 3.2 Unfinishedness Measured by WF Queries 22609// 3.2 Unfinishedness Measured by WF Queries
24182////////// 22610//////////
24183pattern unfinishedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_xyz_terminatorAndInformation(problem:LogicProblem, interpretation:PartialInterpretation,
24184 var_T, var_I)
24185{
24186 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_xyz_terminatorAndInformation(problem,interpretation,var_T,var_I);
24187}
24188 22611
24189////////// 22612//////////
24190// 4. Refinement Indexers 22613// 4. Refinement Indexers
@@ -24198,27 +22621,15 @@ private pattern hasElementInContainment(problem:LogicProblem, interpretation:Par
24198 find mustExist(problem, interpretation, root); 22621 find mustExist(problem, interpretation, root);
24199}or{ 22622}or{
24200 find interpretation(problem,interpretation); 22623 find interpretation(problem,interpretation);
24201 find mustInstanceOfFunctionalData_class(problem,interpretation,root);
24202 find mustExist(problem, interpretation, root);
24203}or{
24204 find interpretation(problem,interpretation);
24205 find mustInstanceOfInformationLink_class(problem,interpretation,root); 22624 find mustInstanceOfInformationLink_class(problem,interpretation,root);
24206 find mustExist(problem, interpretation, root); 22625 find mustExist(problem, interpretation, root);
24207}or{ 22626}or{
24208 find interpretation(problem,interpretation); 22627 find interpretation(problem,interpretation);
24209 find mustInstanceOfFunction_class(problem,interpretation,root);
24210 find mustExist(problem, interpretation, root);
24211}or{
24212 find interpretation(problem,interpretation);
24213 find mustInstanceOfFAMTerminator_class(problem,interpretation,root);
24214 find mustExist(problem, interpretation, root);
24215}or{
24216 find interpretation(problem,interpretation);
24217 find mustInstanceOfFunctionalElement_class(problem,interpretation,root); 22628 find mustInstanceOfFunctionalElement_class(problem,interpretation,root);
24218 find mustExist(problem, interpretation, root); 22629 find mustExist(problem, interpretation, root);
24219}or{ 22630}or{
24220 find interpretation(problem,interpretation); 22631 find interpretation(problem,interpretation);
24221 find mustInstanceOfFunctionalOutput_class(problem,interpretation,root); 22632 find mustInstanceOfFAMTerminator_class(problem,interpretation,root);
24222 find mustExist(problem, interpretation, root); 22633 find mustExist(problem, interpretation, root);
24223}or{ 22634}or{
24224 find interpretation(problem,interpretation); 22635 find interpretation(problem,interpretation);
@@ -24230,98 +22641,74 @@ private pattern hasElementInContainment(problem:LogicProblem, interpretation:Par
24230 find mustExist(problem, interpretation, root); 22641 find mustExist(problem, interpretation, root);
24231}or{ 22642}or{
24232 find interpretation(problem,interpretation); 22643 find interpretation(problem,interpretation);
24233 find mustInstanceOfFunctionalArchitectureModel_class_DefinedPart(problem,interpretation,root); 22644 find mustInstanceOfFunction_class(problem,interpretation,root);
24234 find mustExist(problem, interpretation, root); 22645 find mustExist(problem, interpretation, root);
24235}or{ 22646}or{
24236 find interpretation(problem,interpretation); 22647 find interpretation(problem,interpretation);
24237 find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,root); 22648 find mustInstanceOfFunctionalOutput_class(problem,interpretation,root);
24238 find mustExist(problem, interpretation, root); 22649 find mustExist(problem, interpretation, root);
24239} 22650}or{
24240pattern createObject_FunctionalArchitectureModel_class_UndefinedPart(
24241 problem:LogicProblem, interpretation:PartialInterpretation,
24242 typeInterpretation:PartialComplexTypeInterpretation)
24243{
24244 find interpretation(problem,interpretation);
24245 neg find hasElementInContainment(problem,interpretation);
24246 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
24247 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalArchitectureModel class UndefinedPart");
24248 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,newObject);
24249 find mayExist(problem, interpretation, newObject);
24250 neg find mustExist(problem, interpretation, newObject);
24251}
24252pattern createObject_Function_class_by_rootElements_reference_FunctionalArchitectureModel(
24253 problem:LogicProblem, interpretation:PartialInterpretation,
24254 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
24255 container:DefinedElement)
24256{
24257 find interpretation(problem,interpretation); 22651 find interpretation(problem,interpretation);
24258 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 22652 find mustInstanceOfFunctionalData_class(problem,interpretation,root);
24259 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class"); 22653 find mustExist(problem, interpretation, root);
24260 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
24261 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"rootElements reference FunctionalArchitectureModel");
24262 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,container);
24263 find mayInstanceOfFunction_class(problem,interpretation,newObject);
24264 find mayInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,container,newObject);
24265 find mustExist(problem, interpretation, container);
24266 neg find mustExist(problem, interpretation, newObject);
24267} 22654}
24268pattern createObject_Function_class_by_subElements_reference_Function_with_parent_reference_FunctionalElement( 22655pattern createObject_InformationLink_class_by_outgoingLinks_reference_FunctionalOutput_with_from_reference_InformationLink(
24269 problem:LogicProblem, interpretation:PartialInterpretation, 22656 problem:LogicProblem, interpretation:PartialInterpretation,
24270 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 22657 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
24271 container:DefinedElement) 22658 container:DefinedElement)
24272{ 22659{
24273 find interpretation(problem,interpretation); 22660 find interpretation(problem,interpretation);
24274 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 22661 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
24275 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class"); 22662 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class");
24276 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 22663 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
24277 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"subElements reference Function"); 22664 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"outgoingLinks reference FunctionalOutput");
24278 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 22665 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
24279 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"parent reference FunctionalElement"); 22666 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"from reference InformationLink");
24280 find mustInstanceOfFunction_class(problem,interpretation,container); 22667 find mustInstanceOfFunctionalOutput_class(problem,interpretation,container);
24281 find mayInstanceOfFunction_class(problem,interpretation,newObject); 22668 find mayInstanceOfInformationLink_class(problem,interpretation,newObject);
24282 find mayInRelationsubElements_reference_Function(problem,interpretation,container,newObject); 22669 find mayInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,container,newObject);
24283 find mustExist(problem, interpretation, container); 22670 find mustExist(problem, interpretation, container);
24284 neg find mustExist(problem, interpretation, newObject); 22671 neg find mustExist(problem, interpretation, newObject);
24285} 22672}
24286pattern createObject_Function_class( 22673pattern createObject_InformationLink_class(
24287 problem:LogicProblem, interpretation:PartialInterpretation, 22674 problem:LogicProblem, interpretation:PartialInterpretation,
24288 typeInterpretation:PartialComplexTypeInterpretation) 22675 typeInterpretation:PartialComplexTypeInterpretation)
24289{ 22676{
24290 find interpretation(problem,interpretation); 22677 find interpretation(problem,interpretation);
24291 neg find hasElementInContainment(problem,interpretation); 22678 neg find hasElementInContainment(problem,interpretation);
24292 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 22679 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
24293 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class"); 22680 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class");
24294 find mayInstanceOfFunction_class(problem,interpretation,newObject); 22681 find mayInstanceOfInformationLink_class(problem,interpretation,newObject);
24295 find mayExist(problem, interpretation, newObject); 22682 find mayExist(problem, interpretation, newObject);
24296 neg find mustExist(problem, interpretation, newObject); 22683 neg find mustExist(problem, interpretation, newObject);
24297} 22684}
24298pattern createObject_InformationLink_class_by_outgoingLinks_reference_FunctionalOutput_with_from_reference_InformationLink( 22685pattern createObject_FAMTerminator_class_by_terminator_reference_FunctionalData_with_data_reference_FAMTerminator(
24299 problem:LogicProblem, interpretation:PartialInterpretation, 22686 problem:LogicProblem, interpretation:PartialInterpretation,
24300 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 22687 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
24301 container:DefinedElement) 22688 container:DefinedElement)
24302{ 22689{
24303 find interpretation(problem,interpretation); 22690 find interpretation(problem,interpretation);
24304 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 22691 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
24305 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class"); 22692 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class");
24306 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 22693 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
24307 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"outgoingLinks reference FunctionalOutput"); 22694 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"terminator reference FunctionalData");
24308 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 22695 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
24309 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"from reference InformationLink"); 22696 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"data reference FAMTerminator");
24310 find mustInstanceOfFunctionalOutput_class(problem,interpretation,container); 22697 find mustInstanceOfFunctionalData_class(problem,interpretation,container);
24311 find mayInstanceOfInformationLink_class(problem,interpretation,newObject); 22698 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject);
24312 find mayInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,container,newObject); 22699 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,container,newObject);
24313 find mustExist(problem, interpretation, container); 22700 find mustExist(problem, interpretation, container);
24314 neg find mustExist(problem, interpretation, newObject); 22701 neg find mustExist(problem, interpretation, newObject);
24315} 22702}
24316pattern createObject_InformationLink_class( 22703pattern createObject_FAMTerminator_class(
24317 problem:LogicProblem, interpretation:PartialInterpretation, 22704 problem:LogicProblem, interpretation:PartialInterpretation,
24318 typeInterpretation:PartialComplexTypeInterpretation) 22705 typeInterpretation:PartialComplexTypeInterpretation)
24319{ 22706{
24320 find interpretation(problem,interpretation); 22707 find interpretation(problem,interpretation);
24321 neg find hasElementInContainment(problem,interpretation); 22708 neg find hasElementInContainment(problem,interpretation);
24322 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 22709 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
24323 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class"); 22710 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class");
24324 find mayInstanceOfInformationLink_class(problem,interpretation,newObject); 22711 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject);
24325 find mayExist(problem, interpretation, newObject); 22712 find mayExist(problem, interpretation, newObject);
24326 neg find mustExist(problem, interpretation, newObject); 22713 neg find mustExist(problem, interpretation, newObject);
24327} 22714}
@@ -24355,63 +22742,61 @@ pattern createObject_FunctionalOutput_class(
24355 find mayExist(problem, interpretation, newObject); 22742 find mayExist(problem, interpretation, newObject);
24356 neg find mustExist(problem, interpretation, newObject); 22743 neg find mustExist(problem, interpretation, newObject);
24357} 22744}
24358pattern createObject_FAMTerminator_class_by_terminator_reference_FunctionalData_with_data_reference_FAMTerminator( 22745pattern createObject_FunctionalArchitectureModel_class(
24359 problem:LogicProblem, interpretation:PartialInterpretation, 22746 problem:LogicProblem, interpretation:PartialInterpretation,
24360 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 22747 typeInterpretation:PartialComplexTypeInterpretation)
24361 container:DefinedElement)
24362{ 22748{
24363 find interpretation(problem,interpretation); 22749 find interpretation(problem,interpretation);
22750 neg find hasElementInContainment(problem,interpretation);
24364 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 22751 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
24365 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class"); 22752 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalArchitectureModel class");
24366 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 22753 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,newObject);
24367 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"terminator reference FunctionalData"); 22754 find mayExist(problem, interpretation, newObject);
24368 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
24369 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"data reference FAMTerminator");
24370 find mustInstanceOfFunctionalData_class(problem,interpretation,container);
24371 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject);
24372 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,container,newObject);
24373 find mustExist(problem, interpretation, container);
24374 neg find mustExist(problem, interpretation, newObject); 22755 neg find mustExist(problem, interpretation, newObject);
24375} 22756}
24376pattern createObject_FAMTerminator_class( 22757pattern createObject_Function_class_by_rootElements_reference_FunctionalArchitectureModel(
24377 problem:LogicProblem, interpretation:PartialInterpretation, 22758 problem:LogicProblem, interpretation:PartialInterpretation,
24378 typeInterpretation:PartialComplexTypeInterpretation) 22759 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
22760 container:DefinedElement)
24379{ 22761{
24380 find interpretation(problem,interpretation); 22762 find interpretation(problem,interpretation);
24381 neg find hasElementInContainment(problem,interpretation);
24382 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 22763 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
24383 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class"); 22764 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class");
24384 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject); 22765 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
24385 find mayExist(problem, interpretation, newObject); 22766 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"rootElements reference FunctionalArchitectureModel");
22767 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,container);
22768 find mayInstanceOfFunction_class(problem,interpretation,newObject);
22769 find mayInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,container,newObject);
22770 find mustExist(problem, interpretation, container);
24386 neg find mustExist(problem, interpretation, newObject); 22771 neg find mustExist(problem, interpretation, newObject);
24387} 22772}
24388pattern createObject_FunctionalInterface_class_by_interface_reference_FunctionalElement_with_element_reference_FunctionalInterface( 22773pattern createObject_Function_class_by_subElements_reference_Function_with_parent_reference_FunctionalElement(
24389 problem:LogicProblem, interpretation:PartialInterpretation, 22774 problem:LogicProblem, interpretation:PartialInterpretation,
24390 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 22775 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
24391 container:DefinedElement) 22776 container:DefinedElement)
24392{ 22777{
24393 find interpretation(problem,interpretation); 22778 find interpretation(problem,interpretation);
24394 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 22779 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
24395 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class"); 22780 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class");
24396 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 22781 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
24397 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"interface reference FunctionalElement"); 22782 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"subElements reference Function");
24398 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 22783 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
24399 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"element reference FunctionalInterface"); 22784 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"parent reference FunctionalElement");
24400 find mustInstanceOfFunctionalElement_class(problem,interpretation,container); 22785 find mustInstanceOfFunction_class(problem,interpretation,container);
24401 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject); 22786 find mayInstanceOfFunction_class(problem,interpretation,newObject);
24402 find mayInRelationinterface_reference_FunctionalElement(problem,interpretation,container,newObject); 22787 find mayInRelationsubElements_reference_Function(problem,interpretation,container,newObject);
24403 find mustExist(problem, interpretation, container); 22788 find mustExist(problem, interpretation, container);
24404 neg find mustExist(problem, interpretation, newObject); 22789 neg find mustExist(problem, interpretation, newObject);
24405} 22790}
24406pattern createObject_FunctionalInterface_class( 22791pattern createObject_Function_class(
24407 problem:LogicProblem, interpretation:PartialInterpretation, 22792 problem:LogicProblem, interpretation:PartialInterpretation,
24408 typeInterpretation:PartialComplexTypeInterpretation) 22793 typeInterpretation:PartialComplexTypeInterpretation)
24409{ 22794{
24410 find interpretation(problem,interpretation); 22795 find interpretation(problem,interpretation);
24411 neg find hasElementInContainment(problem,interpretation); 22796 neg find hasElementInContainment(problem,interpretation);
24412 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 22797 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
24413 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class"); 22798 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class");
24414 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject); 22799 find mayInstanceOfFunction_class(problem,interpretation,newObject);
24415 find mayExist(problem, interpretation, newObject); 22800 find mayExist(problem, interpretation, newObject);
24416 neg find mustExist(problem, interpretation, newObject); 22801 neg find mustExist(problem, interpretation, newObject);
24417} 22802}
@@ -24445,88 +22830,118 @@ pattern createObject_FunctionalInput_class(
24445 find mayExist(problem, interpretation, newObject); 22830 find mayExist(problem, interpretation, newObject);
24446 neg find mustExist(problem, interpretation, newObject); 22831 neg find mustExist(problem, interpretation, newObject);
24447} 22832}
22833pattern createObject_FunctionalInterface_class_by_interface_reference_FunctionalElement_with_element_reference_FunctionalInterface(
22834 problem:LogicProblem, interpretation:PartialInterpretation,
22835 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
22836 container:DefinedElement)
22837{
22838 find interpretation(problem,interpretation);
22839 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
22840 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
22841 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
22842 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"interface reference FunctionalElement");
22843 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
22844 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"element reference FunctionalInterface");
22845 find mustInstanceOfFunctionalElement_class(problem,interpretation,container);
22846 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
22847 find mayInRelationinterface_reference_FunctionalElement(problem,interpretation,container,newObject);
22848 find mustExist(problem, interpretation, container);
22849 neg find mustExist(problem, interpretation, newObject);
22850}
22851pattern createObject_FunctionalInterface_class(
22852 problem:LogicProblem, interpretation:PartialInterpretation,
22853 typeInterpretation:PartialComplexTypeInterpretation)
22854{
22855 find interpretation(problem,interpretation);
22856 neg find hasElementInContainment(problem,interpretation);
22857 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
22858 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
22859 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
22860 find mayExist(problem, interpretation, newObject);
22861 neg find mustExist(problem, interpretation, newObject);
22862}
24448 22863
24449////////// 22864//////////
24450// 4.2 Type refinement 22865// 4.2 Type refinement
24451////////// 22866//////////
24452pattern refineTypeTo_FunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 22867pattern refineTypeTo_InformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
24453 find interpretation(problem,interpretation); 22868 find interpretation(problem,interpretation);
24454 PartialInterpretation.newElements(interpretation,element); 22869 PartialInterpretation.newElements(interpretation,element);
24455 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); 22870 find mayInstanceOfInformationLink_class(problem,interpretation,element);
24456 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
24457 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
24458 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
24459 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 22871 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
24460 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 22872 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
24461 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
24462}
24463pattern refineTypeTo_Function_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
24464 find interpretation(problem,interpretation);
24465 PartialInterpretation.newElements(interpretation,element);
24466 find mayInstanceOfFunction_class(problem,interpretation,element);
24467 neg find mustInstanceOfFunction_class(problem,interpretation,element);
24468 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
24469 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
24470 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 22873 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
24471 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
24472 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 22874 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
22875 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
22876 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
24473} 22877}
24474pattern refineTypeTo_InformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 22878pattern refineTypeTo_FAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
24475 find interpretation(problem,interpretation); 22879 find interpretation(problem,interpretation);
24476 PartialInterpretation.newElements(interpretation,element); 22880 PartialInterpretation.newElements(interpretation,element);
24477 find mayInstanceOfInformationLink_class(problem,interpretation,element); 22881 find mayInstanceOfFAMTerminator_class(problem,interpretation,element);
24478 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
24479 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
24480 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 22882 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
24481 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 22883 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
24482 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 22884 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
24483 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 22885 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
22886 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
22887 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
24484} 22888}
24485pattern refineTypeTo_FunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 22889pattern refineTypeTo_FunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
24486 find interpretation(problem,interpretation); 22890 find interpretation(problem,interpretation);
24487 PartialInterpretation.newElements(interpretation,element); 22891 PartialInterpretation.newElements(interpretation,element);
24488 find mayInstanceOfFunctionalOutput_class(problem,interpretation,element); 22892 find mayInstanceOfFunctionalOutput_class(problem,interpretation,element);
24489 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
24490 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 22893 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
24491 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
24492 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 22894 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
24493 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 22895 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
24494 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 22896 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
24495 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); 22897 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
22898 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
22899 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
24496} 22900}
24497pattern refineTypeTo_FAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 22901pattern refineTypeTo_FunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
24498 find interpretation(problem,interpretation); 22902 find interpretation(problem,interpretation);
24499 PartialInterpretation.newElements(interpretation,element); 22903 PartialInterpretation.newElements(interpretation,element);
24500 find mayInstanceOfFAMTerminator_class(problem,interpretation,element); 22904 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
24501 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
24502 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
24503 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 22905 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
24504 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
24505 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 22906 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
22907 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
24506 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 22908 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
22909 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
22910 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
24507} 22911}
24508pattern refineTypeTo_FunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 22912pattern refineTypeTo_Function_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
24509 find interpretation(problem,interpretation); 22913 find interpretation(problem,interpretation);
24510 PartialInterpretation.newElements(interpretation,element); 22914 PartialInterpretation.newElements(interpretation,element);
24511 find mayInstanceOfFunctionalInterface_class(problem,interpretation,element); 22915 find mayInstanceOfFunction_class(problem,interpretation,element);
24512 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
24513 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
24514 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 22916 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
24515 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
24516 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 22917 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
22918 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
22919 neg find mustInstanceOfFunction_class(problem,interpretation,element);
24517 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 22920 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
22921 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
24518} 22922}
24519pattern refineTypeTo_FunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 22923pattern refineTypeTo_FunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
24520 find interpretation(problem,interpretation); 22924 find interpretation(problem,interpretation);
24521 PartialInterpretation.newElements(interpretation,element); 22925 PartialInterpretation.newElements(interpretation,element);
24522 find mayInstanceOfFunctionalInput_class(problem,interpretation,element); 22926 find mayInstanceOfFunctionalInput_class(problem,interpretation,element);
24523 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
24524 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 22927 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
24525 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 22928 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
24526 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
24527 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 22929 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
22930 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
22931 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
24528 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); 22932 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
22933 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
22934}
22935pattern refineTypeTo_FunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
22936 find interpretation(problem,interpretation);
22937 PartialInterpretation.newElements(interpretation,element);
22938 find mayInstanceOfFunctionalInterface_class(problem,interpretation,element);
22939 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
22940 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
22941 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
24529 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 22942 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
22943 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
22944 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
24530} 22945}
24531 22946
24532////////// 22947//////////
@@ -24686,22 +23101,22 @@ private pattern mayInstanceOfFunctionalElement_class(problem:LogicProblem, inter
24686 find interpretation(problem,interpretation); 23101 find interpretation(problem,interpretation);
24687 PartialInterpretation.newElements(interpretation,element); 23102 PartialInterpretation.newElements(interpretation,element);
24688 neg find mustInstanceOfFunction_class(problem,interpretation,element); 23103 neg find mustInstanceOfFunction_class(problem,interpretation,element);
23104 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
24689 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 23105 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
23106 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
24690 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 23107 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
24691 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 23108 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
24692 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
24693 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
24694 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation); 23109 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
24695 neg find isPrimitive(element); 23110 neg find isPrimitive(element);
24696} or { 23111} or {
24697 find interpretation(problem,interpretation); 23112 find interpretation(problem,interpretation);
24698 PartialInterpretation.openWorldElements(interpretation,element); 23113 PartialInterpretation.openWorldElements(interpretation,element);
24699 neg find mustInstanceOfFunction_class(problem,interpretation,element); 23114 neg find mustInstanceOfFunction_class(problem,interpretation,element);
23115 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
24700 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 23116 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
23117 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
24701 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 23118 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
24702 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 23119 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
24703 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
24704 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
24705 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation); 23120 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
24706 neg find isPrimitive(element); 23121 neg find isPrimitive(element);
24707} or 23122} or
@@ -24729,23 +23144,21 @@ private pattern mayInstanceOfFunctionalArchitectureModel_class(problem:LogicProb
24729{ 23144{
24730 find interpretation(problem,interpretation); 23145 find interpretation(problem,interpretation);
24731 PartialInterpretation.newElements(interpretation,element); 23146 PartialInterpretation.newElements(interpretation,element);
24732 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
24733 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
24734 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 23147 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
24735 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 23148 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
24736 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); 23149 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
24737 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 23150 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
23151 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
24738 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation); 23152 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
24739 neg find isPrimitive(element); 23153 neg find isPrimitive(element);
24740} or { 23154} or {
24741 find interpretation(problem,interpretation); 23155 find interpretation(problem,interpretation);
24742 PartialInterpretation.openWorldElements(interpretation,element); 23156 PartialInterpretation.openWorldElements(interpretation,element);
24743 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
24744 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
24745 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 23157 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
24746 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 23158 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
24747 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); 23159 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
24748 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 23160 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
23161 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
24749 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation); 23162 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
24750 neg find isPrimitive(element); 23163 neg find isPrimitive(element);
24751} or 23164} or
@@ -24773,20 +23186,20 @@ private pattern mayInstanceOfFunction_class(problem:LogicProblem, interpretation
24773{ 23186{
24774 find interpretation(problem,interpretation); 23187 find interpretation(problem,interpretation);
24775 PartialInterpretation.newElements(interpretation,element); 23188 PartialInterpretation.newElements(interpretation,element);
23189 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
24776 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 23190 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
24777 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 23191 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
24778 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 23192 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
24779 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
24780 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 23193 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
24781 neg find scopeDisallowsNewFunction_class(problem, interpretation); 23194 neg find scopeDisallowsNewFunction_class(problem, interpretation);
24782 neg find isPrimitive(element); 23195 neg find isPrimitive(element);
24783} or { 23196} or {
24784 find interpretation(problem,interpretation); 23197 find interpretation(problem,interpretation);
24785 PartialInterpretation.openWorldElements(interpretation,element); 23198 PartialInterpretation.openWorldElements(interpretation,element);
23199 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
24786 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 23200 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
24787 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 23201 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
24788 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 23202 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
24789 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
24790 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 23203 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
24791 neg find scopeDisallowsNewFunction_class(problem, interpretation); 23204 neg find scopeDisallowsNewFunction_class(problem, interpretation);
24792 neg find isPrimitive(element); 23205 neg find isPrimitive(element);
@@ -24815,21 +23228,21 @@ private pattern mayInstanceOfFAMTerminator_class(problem:LogicProblem, interpret
24815{ 23228{
24816 find interpretation(problem,interpretation); 23229 find interpretation(problem,interpretation);
24817 PartialInterpretation.newElements(interpretation,element); 23230 PartialInterpretation.newElements(interpretation,element);
24818 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
24819 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 23231 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
24820 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
24821 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 23232 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
23233 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
24822 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 23234 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
23235 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
24823 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation); 23236 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
24824 neg find isPrimitive(element); 23237 neg find isPrimitive(element);
24825} or { 23238} or {
24826 find interpretation(problem,interpretation); 23239 find interpretation(problem,interpretation);
24827 PartialInterpretation.openWorldElements(interpretation,element); 23240 PartialInterpretation.openWorldElements(interpretation,element);
24828 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
24829 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 23241 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
24830 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
24831 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 23242 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
23243 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
24832 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 23244 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
23245 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
24833 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation); 23246 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
24834 neg find isPrimitive(element); 23247 neg find isPrimitive(element);
24835} or 23248} or
@@ -24857,21 +23270,21 @@ private pattern mayInstanceOfInformationLink_class(problem:LogicProblem, interpr
24857{ 23270{
24858 find interpretation(problem,interpretation); 23271 find interpretation(problem,interpretation);
24859 PartialInterpretation.newElements(interpretation,element); 23272 PartialInterpretation.newElements(interpretation,element);
23273 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
23274 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
24860 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 23275 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
24861 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 23276 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
24862 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
24863 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 23277 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
24864 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
24865 neg find scopeDisallowsNewInformationLink_class(problem, interpretation); 23278 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
24866 neg find isPrimitive(element); 23279 neg find isPrimitive(element);
24867} or { 23280} or {
24868 find interpretation(problem,interpretation); 23281 find interpretation(problem,interpretation);
24869 PartialInterpretation.openWorldElements(interpretation,element); 23282 PartialInterpretation.openWorldElements(interpretation,element);
23283 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
23284 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
24870 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 23285 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
24871 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 23286 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
24872 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
24873 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 23287 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
24874 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
24875 neg find scopeDisallowsNewInformationLink_class(problem, interpretation); 23288 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
24876 neg find isPrimitive(element); 23289 neg find isPrimitive(element);
24877} or 23290} or
@@ -24899,21 +23312,21 @@ private pattern mayInstanceOfFunctionalInterface_class(problem:LogicProblem, int
24899{ 23312{
24900 find interpretation(problem,interpretation); 23313 find interpretation(problem,interpretation);
24901 PartialInterpretation.newElements(interpretation,element); 23314 PartialInterpretation.newElements(interpretation,element);
24902 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
24903 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 23315 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
24904 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
24905 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 23316 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
23317 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
24906 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 23318 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
23319 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
24907 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation); 23320 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
24908 neg find isPrimitive(element); 23321 neg find isPrimitive(element);
24909} or { 23322} or {
24910 find interpretation(problem,interpretation); 23323 find interpretation(problem,interpretation);
24911 PartialInterpretation.openWorldElements(interpretation,element); 23324 PartialInterpretation.openWorldElements(interpretation,element);
24912 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
24913 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 23325 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
24914 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
24915 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 23326 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
23327 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
24916 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 23328 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
23329 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
24917 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation); 23330 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
24918 neg find isPrimitive(element); 23331 neg find isPrimitive(element);
24919} or 23332} or
@@ -24941,23 +23354,23 @@ private pattern mayInstanceOfFunctionalInput_class(problem:LogicProblem, interpr
24941{ 23354{
24942 find interpretation(problem,interpretation); 23355 find interpretation(problem,interpretation);
24943 PartialInterpretation.newElements(interpretation,element); 23356 PartialInterpretation.newElements(interpretation,element);
24944 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
24945 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
24946 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
24947 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 23357 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
23358 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
24948 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 23359 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
24949 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 23360 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
23361 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
23362 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
24950 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation); 23363 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
24951 neg find isPrimitive(element); 23364 neg find isPrimitive(element);
24952} or { 23365} or {
24953 find interpretation(problem,interpretation); 23366 find interpretation(problem,interpretation);
24954 PartialInterpretation.openWorldElements(interpretation,element); 23367 PartialInterpretation.openWorldElements(interpretation,element);
24955 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
24956 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
24957 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
24958 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 23368 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
23369 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
24959 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 23370 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
24960 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 23371 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
23372 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
23373 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
24961 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation); 23374 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
24962 neg find isPrimitive(element); 23375 neg find isPrimitive(element);
24963} or 23376} or
@@ -24985,23 +23398,23 @@ private pattern mayInstanceOfFunctionalOutput_class(problem:LogicProblem, interp
24985{ 23398{
24986 find interpretation(problem,interpretation); 23399 find interpretation(problem,interpretation);
24987 PartialInterpretation.newElements(interpretation,element); 23400 PartialInterpretation.newElements(interpretation,element);
23401 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
24988 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 23402 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
23403 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
24989 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 23404 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
24990 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
24991 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 23405 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
24992 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 23406 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
24993 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
24994 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation); 23407 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
24995 neg find isPrimitive(element); 23408 neg find isPrimitive(element);
24996} or { 23409} or {
24997 find interpretation(problem,interpretation); 23410 find interpretation(problem,interpretation);
24998 PartialInterpretation.openWorldElements(interpretation,element); 23411 PartialInterpretation.openWorldElements(interpretation,element);
23412 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
24999 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 23413 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
23414 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
25000 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 23415 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
25001 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
25002 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 23416 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
25003 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 23417 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
25004 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
25005 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation); 23418 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
25006 neg find isPrimitive(element); 23419 neg find isPrimitive(element);
25007} or 23420} or
@@ -25029,25 +23442,25 @@ private pattern mayInstanceOfFunctionalData_class(problem:LogicProblem, interpre
25029{ 23442{
25030 find interpretation(problem,interpretation); 23443 find interpretation(problem,interpretation);
25031 PartialInterpretation.newElements(interpretation,element); 23444 PartialInterpretation.newElements(interpretation,element);
25032 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 23445 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
25033 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 23446 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
23447 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
25034 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 23448 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
25035 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
25036 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 23449 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
25037 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
25038 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 23450 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
23451 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
25039 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation); 23452 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
25040 neg find isPrimitive(element); 23453 neg find isPrimitive(element);
25041} or { 23454} or {
25042 find interpretation(problem,interpretation); 23455 find interpretation(problem,interpretation);
25043 PartialInterpretation.openWorldElements(interpretation,element); 23456 PartialInterpretation.openWorldElements(interpretation,element);
25044 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 23457 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
25045 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 23458 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
23459 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
25046 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 23460 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
25047 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
25048 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 23461 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
25049 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
25050 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 23462 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
23463 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
25051 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation); 23464 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
25052 neg find isPrimitive(element); 23465 neg find isPrimitive(element);
25053} or 23466} or
@@ -25073,69 +23486,6 @@ private pattern scopeDisallowsNewFunctionType_enum(problem:LogicProblem, interpr
25073 */ 23486 */
25074private pattern mayInstanceOfFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 23487private pattern mayInstanceOfFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
25075{ find mustInstanceOfFunctionType_enum(problem,interpretation,element); } 23488{ find mustInstanceOfFunctionType_enum(problem,interpretation,element); }
25076/**
25077 * An element must be an instance of type "FunctionalArchitectureModel class DefinedPart".
25078 */
25079private pattern mustInstanceOfFunctionalArchitectureModel_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
25080 Type.name(type,"FunctionalArchitectureModel class DefinedPart");
25081 find directInstanceOf(problem,interpretation,element,type);
25082}
25083private pattern scopeDisallowsNewFunctionalArchitectureModel_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
25084 find interpretation(problem,interpretation);
25085 PartialInterpretation.scopes(interpretation,scope);
25086 Scope.targetTypeInterpretation(scope,typeInterpretation);
25087 Scope.maxNewElements(scope,0);
25088 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
25089 Type.name(type,"FunctionalArchitectureModel class DefinedPart");
25090}
25091
25092/**
25093 * An element may be an instance of type "FunctionalArchitectureModel class DefinedPart".
25094 */
25095private pattern mayInstanceOfFunctionalArchitectureModel_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
25096{ find mustInstanceOfFunctionalArchitectureModel_class_DefinedPart(problem,interpretation,element); }
25097/**
25098 * An element must be an instance of type "FunctionalArchitectureModel class UndefinedPart".
25099 */
25100private pattern mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
25101 Type.name(type,"FunctionalArchitectureModel class UndefinedPart");
25102 find directInstanceOf(problem,interpretation,element,type);
25103}
25104private pattern scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
25105 find interpretation(problem,interpretation);
25106 PartialInterpretation.scopes(interpretation,scope);
25107 Scope.targetTypeInterpretation(scope,typeInterpretation);
25108 Scope.maxNewElements(scope,0);
25109 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
25110 Type.name(type,"FunctionalArchitectureModel class UndefinedPart");
25111}
25112
25113/**
25114 * An element may be an instance of type "FunctionalArchitectureModel class UndefinedPart".
25115 */
25116private pattern mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
25117{
25118 find interpretation(problem,interpretation);
25119 PartialInterpretation.newElements(interpretation,element);
25120 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
25121 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
25122 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
25123 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
25124 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
25125 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation);
25126 neg find isPrimitive(element);
25127} or {
25128 find interpretation(problem,interpretation);
25129 PartialInterpretation.openWorldElements(interpretation,element);
25130 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
25131 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
25132 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
25133 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
25134 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
25135 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation);
25136 neg find isPrimitive(element);
25137} or
25138{ find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); }
25139 23489
25140////////// 23490//////////
25141// 1.2 Relation Declaration Indexers 23491// 1.2 Relation Declaration Indexers
@@ -25813,11 +24163,7 @@ pattern unfinishedLowerMultiplicity_type_attribute_Function(problem:LogicProblem
25813private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation) 24163private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation)
25814{ 24164{
25815 find interpretation(problem,interpretation); 24165 find interpretation(problem,interpretation);
25816 find mustInstanceOfFunctionalData_class(problem,interpretation,root); 24166 find mustInstanceOfFunctionalInterface_class(problem,interpretation,root);
25817 find mustExist(problem, interpretation, root);
25818}or{
25819 find interpretation(problem,interpretation);
25820 find mustInstanceOfFunction_class(problem,interpretation,root);
25821 find mustExist(problem, interpretation, root); 24167 find mustExist(problem, interpretation, root);
25822}or{ 24168}or{
25823 find interpretation(problem,interpretation); 24169 find interpretation(problem,interpretation);
@@ -25829,19 +24175,19 @@ private pattern hasElementInContainment(problem:LogicProblem, interpretation:Par
25829 find mustExist(problem, interpretation, root); 24175 find mustExist(problem, interpretation, root);
25830}or{ 24176}or{
25831 find interpretation(problem,interpretation); 24177 find interpretation(problem,interpretation);
25832 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,root); 24178 find mustInstanceOfFAMTerminator_class(problem,interpretation,root);
25833 find mustExist(problem, interpretation, root); 24179 find mustExist(problem, interpretation, root);
25834}or{ 24180}or{
25835 find interpretation(problem,interpretation); 24181 find interpretation(problem,interpretation);
25836 find mustInstanceOfFunctionalInput_class(problem,interpretation,root); 24182 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,root);
25837 find mustExist(problem, interpretation, root); 24183 find mustExist(problem, interpretation, root);
25838}or{ 24184}or{
25839 find interpretation(problem,interpretation); 24185 find interpretation(problem,interpretation);
25840 find mustInstanceOfFAMTerminator_class(problem,interpretation,root); 24186 find mustInstanceOfFunctionalInput_class(problem,interpretation,root);
25841 find mustExist(problem, interpretation, root); 24187 find mustExist(problem, interpretation, root);
25842}or{ 24188}or{
25843 find interpretation(problem,interpretation); 24189 find interpretation(problem,interpretation);
25844 find mustInstanceOfFunctionalInterface_class(problem,interpretation,root); 24190 find mustInstanceOfFunction_class(problem,interpretation,root);
25845 find mustExist(problem, interpretation, root); 24191 find mustExist(problem, interpretation, root);
25846}or{ 24192}or{
25847 find interpretation(problem,interpretation); 24193 find interpretation(problem,interpretation);
@@ -25849,11 +24195,7 @@ private pattern hasElementInContainment(problem:LogicProblem, interpretation:Par
25849 find mustExist(problem, interpretation, root); 24195 find mustExist(problem, interpretation, root);
25850}or{ 24196}or{
25851 find interpretation(problem,interpretation); 24197 find interpretation(problem,interpretation);
25852 find mustInstanceOfFunctionalArchitectureModel_class_DefinedPart(problem,interpretation,root); 24198 find mustInstanceOfFunctionalData_class(problem,interpretation,root);
25853 find mustExist(problem, interpretation, root);
25854}or{
25855 find interpretation(problem,interpretation);
25856 find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,root);
25857 find mustExist(problem, interpretation, root); 24199 find mustExist(problem, interpretation, root);
25858} 24200}
25859pattern createObject_Function_class_by_rootElements_reference_FunctionalArchitectureModel( 24201pattern createObject_Function_class_by_rootElements_reference_FunctionalArchitectureModel(
@@ -25932,135 +24274,135 @@ pattern createObject_FAMTerminator_class(
25932 find mayExist(problem, interpretation, newObject); 24274 find mayExist(problem, interpretation, newObject);
25933 neg find mustExist(problem, interpretation, newObject); 24275 neg find mustExist(problem, interpretation, newObject);
25934} 24276}
25935pattern createObject_FunctionalOutput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData( 24277pattern createObject_FunctionalInput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData(
25936 problem:LogicProblem, interpretation:PartialInterpretation, 24278 problem:LogicProblem, interpretation:PartialInterpretation,
25937 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 24279 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
25938 container:DefinedElement) 24280 container:DefinedElement)
25939{ 24281{
25940 find interpretation(problem,interpretation); 24282 find interpretation(problem,interpretation);
25941 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 24283 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
25942 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class"); 24284 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class");
25943 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 24285 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
25944 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface"); 24286 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface");
25945 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 24287 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
25946 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData"); 24288 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData");
25947 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container); 24289 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container);
25948 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject); 24290 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
25949 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject); 24291 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject);
25950 find mustExist(problem, interpretation, container); 24292 find mustExist(problem, interpretation, container);
25951 neg find mustExist(problem, interpretation, newObject); 24293 neg find mustExist(problem, interpretation, newObject);
25952} 24294}
25953pattern createObject_FunctionalOutput_class( 24295pattern createObject_FunctionalInput_class(
25954 problem:LogicProblem, interpretation:PartialInterpretation, 24296 problem:LogicProblem, interpretation:PartialInterpretation,
25955 typeInterpretation:PartialComplexTypeInterpretation) 24297 typeInterpretation:PartialComplexTypeInterpretation)
25956{ 24298{
25957 find interpretation(problem,interpretation); 24299 find interpretation(problem,interpretation);
25958 neg find hasElementInContainment(problem,interpretation); 24300 neg find hasElementInContainment(problem,interpretation);
25959 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 24301 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
25960 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class"); 24302 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class");
25961 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject); 24303 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
25962 find mayExist(problem, interpretation, newObject); 24304 find mayExist(problem, interpretation, newObject);
25963 neg find mustExist(problem, interpretation, newObject); 24305 neg find mustExist(problem, interpretation, newObject);
25964} 24306}
25965pattern createObject_FunctionalInterface_class_by_interface_reference_FunctionalElement_with_element_reference_FunctionalInterface( 24307pattern createObject_FunctionalArchitectureModel_class(
25966 problem:LogicProblem, interpretation:PartialInterpretation, 24308 problem:LogicProblem, interpretation:PartialInterpretation,
25967 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 24309 typeInterpretation:PartialComplexTypeInterpretation)
25968 container:DefinedElement)
25969{ 24310{
25970 find interpretation(problem,interpretation); 24311 find interpretation(problem,interpretation);
24312 neg find hasElementInContainment(problem,interpretation);
25971 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 24313 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
25972 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class"); 24314 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalArchitectureModel class");
25973 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 24315 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,newObject);
25974 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"interface reference FunctionalElement"); 24316 find mayExist(problem, interpretation, newObject);
25975 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
25976 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"element reference FunctionalInterface");
25977 find mustInstanceOfFunctionalElement_class(problem,interpretation,container);
25978 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
25979 find mayInRelationinterface_reference_FunctionalElement(problem,interpretation,container,newObject);
25980 find mustExist(problem, interpretation, container);
25981 neg find mustExist(problem, interpretation, newObject); 24317 neg find mustExist(problem, interpretation, newObject);
25982} 24318}
25983pattern createObject_FunctionalInterface_class( 24319pattern createObject_InformationLink_class_by_outgoingLinks_reference_FunctionalOutput_with_from_reference_InformationLink(
25984 problem:LogicProblem, interpretation:PartialInterpretation, 24320 problem:LogicProblem, interpretation:PartialInterpretation,
25985 typeInterpretation:PartialComplexTypeInterpretation) 24321 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
24322 container:DefinedElement)
25986{ 24323{
25987 find interpretation(problem,interpretation); 24324 find interpretation(problem,interpretation);
25988 neg find hasElementInContainment(problem,interpretation);
25989 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 24325 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
25990 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class"); 24326 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class");
25991 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject); 24327 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
25992 find mayExist(problem, interpretation, newObject); 24328 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"outgoingLinks reference FunctionalOutput");
24329 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
24330 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"from reference InformationLink");
24331 find mustInstanceOfFunctionalOutput_class(problem,interpretation,container);
24332 find mayInstanceOfInformationLink_class(problem,interpretation,newObject);
24333 find mayInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,container,newObject);
24334 find mustExist(problem, interpretation, container);
25993 neg find mustExist(problem, interpretation, newObject); 24335 neg find mustExist(problem, interpretation, newObject);
25994} 24336}
25995pattern createObject_FunctionalArchitectureModel_class_UndefinedPart( 24337pattern createObject_InformationLink_class(
25996 problem:LogicProblem, interpretation:PartialInterpretation, 24338 problem:LogicProblem, interpretation:PartialInterpretation,
25997 typeInterpretation:PartialComplexTypeInterpretation) 24339 typeInterpretation:PartialComplexTypeInterpretation)
25998{ 24340{
25999 find interpretation(problem,interpretation); 24341 find interpretation(problem,interpretation);
26000 neg find hasElementInContainment(problem,interpretation); 24342 neg find hasElementInContainment(problem,interpretation);
26001 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 24343 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
26002 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalArchitectureModel class UndefinedPart"); 24344 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class");
26003 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,newObject); 24345 find mayInstanceOfInformationLink_class(problem,interpretation,newObject);
26004 find mayExist(problem, interpretation, newObject); 24346 find mayExist(problem, interpretation, newObject);
26005 neg find mustExist(problem, interpretation, newObject); 24347 neg find mustExist(problem, interpretation, newObject);
26006} 24348}
26007pattern createObject_FunctionalInput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData( 24349pattern createObject_FunctionalInterface_class_by_interface_reference_FunctionalElement_with_element_reference_FunctionalInterface(
26008 problem:LogicProblem, interpretation:PartialInterpretation, 24350 problem:LogicProblem, interpretation:PartialInterpretation,
26009 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 24351 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
26010 container:DefinedElement) 24352 container:DefinedElement)
26011{ 24353{
26012 find interpretation(problem,interpretation); 24354 find interpretation(problem,interpretation);
26013 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 24355 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
26014 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class"); 24356 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
26015 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 24357 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
26016 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface"); 24358 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"interface reference FunctionalElement");
26017 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 24359 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
26018 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData"); 24360 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"element reference FunctionalInterface");
26019 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container); 24361 find mustInstanceOfFunctionalElement_class(problem,interpretation,container);
26020 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject); 24362 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
26021 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject); 24363 find mayInRelationinterface_reference_FunctionalElement(problem,interpretation,container,newObject);
26022 find mustExist(problem, interpretation, container); 24364 find mustExist(problem, interpretation, container);
26023 neg find mustExist(problem, interpretation, newObject); 24365 neg find mustExist(problem, interpretation, newObject);
26024} 24366}
26025pattern createObject_FunctionalInput_class( 24367pattern createObject_FunctionalInterface_class(
26026 problem:LogicProblem, interpretation:PartialInterpretation, 24368 problem:LogicProblem, interpretation:PartialInterpretation,
26027 typeInterpretation:PartialComplexTypeInterpretation) 24369 typeInterpretation:PartialComplexTypeInterpretation)
26028{ 24370{
26029 find interpretation(problem,interpretation); 24371 find interpretation(problem,interpretation);
26030 neg find hasElementInContainment(problem,interpretation); 24372 neg find hasElementInContainment(problem,interpretation);
26031 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 24373 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
26032 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class"); 24374 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
26033 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject); 24375 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
26034 find mayExist(problem, interpretation, newObject); 24376 find mayExist(problem, interpretation, newObject);
26035 neg find mustExist(problem, interpretation, newObject); 24377 neg find mustExist(problem, interpretation, newObject);
26036} 24378}
26037pattern createObject_InformationLink_class_by_outgoingLinks_reference_FunctionalOutput_with_from_reference_InformationLink( 24379pattern createObject_FunctionalOutput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData(
26038 problem:LogicProblem, interpretation:PartialInterpretation, 24380 problem:LogicProblem, interpretation:PartialInterpretation,
26039 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 24381 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
26040 container:DefinedElement) 24382 container:DefinedElement)
26041{ 24383{
26042 find interpretation(problem,interpretation); 24384 find interpretation(problem,interpretation);
26043 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 24385 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
26044 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class"); 24386 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class");
26045 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 24387 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
26046 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"outgoingLinks reference FunctionalOutput"); 24388 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface");
26047 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 24389 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
26048 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"from reference InformationLink"); 24390 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData");
26049 find mustInstanceOfFunctionalOutput_class(problem,interpretation,container); 24391 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container);
26050 find mayInstanceOfInformationLink_class(problem,interpretation,newObject); 24392 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject);
26051 find mayInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,container,newObject); 24393 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject);
26052 find mustExist(problem, interpretation, container); 24394 find mustExist(problem, interpretation, container);
26053 neg find mustExist(problem, interpretation, newObject); 24395 neg find mustExist(problem, interpretation, newObject);
26054} 24396}
26055pattern createObject_InformationLink_class( 24397pattern createObject_FunctionalOutput_class(
26056 problem:LogicProblem, interpretation:PartialInterpretation, 24398 problem:LogicProblem, interpretation:PartialInterpretation,
26057 typeInterpretation:PartialComplexTypeInterpretation) 24399 typeInterpretation:PartialComplexTypeInterpretation)
26058{ 24400{
26059 find interpretation(problem,interpretation); 24401 find interpretation(problem,interpretation);
26060 neg find hasElementInContainment(problem,interpretation); 24402 neg find hasElementInContainment(problem,interpretation);
26061 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 24403 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
26062 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class"); 24404 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class");
26063 find mayInstanceOfInformationLink_class(problem,interpretation,newObject); 24405 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject);
26064 find mayExist(problem, interpretation, newObject); 24406 find mayExist(problem, interpretation, newObject);
26065 neg find mustExist(problem, interpretation, newObject); 24407 neg find mustExist(problem, interpretation, newObject);
26066} 24408}
@@ -26072,79 +24414,79 @@ pattern refineTypeTo_Function_class(problem:LogicProblem, interpretation:Partial
26072 find interpretation(problem,interpretation); 24414 find interpretation(problem,interpretation);
26073 PartialInterpretation.newElements(interpretation,element); 24415 PartialInterpretation.newElements(interpretation,element);
26074 find mayInstanceOfFunction_class(problem,interpretation,element); 24416 find mayInstanceOfFunction_class(problem,interpretation,element);
26075 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
26076 neg find mustInstanceOfFunction_class(problem,interpretation,element); 24417 neg find mustInstanceOfFunction_class(problem,interpretation,element);
24418 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
24419 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
26077 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 24420 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
26078 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 24421 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
26079 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
26080 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 24422 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
26081} 24423}
26082pattern refineTypeTo_FAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 24424pattern refineTypeTo_FAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
26083 find interpretation(problem,interpretation); 24425 find interpretation(problem,interpretation);
26084 PartialInterpretation.newElements(interpretation,element); 24426 PartialInterpretation.newElements(interpretation,element);
26085 find mayInstanceOfFAMTerminator_class(problem,interpretation,element); 24427 find mayInstanceOfFAMTerminator_class(problem,interpretation,element);
26086 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
26087 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
26088 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 24428 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
26089 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
26090 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 24429 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
24430 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
24431 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
26091 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 24432 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
24433 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
26092} 24434}
26093pattern refineTypeTo_FunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 24435pattern refineTypeTo_FunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
26094 find interpretation(problem,interpretation); 24436 find interpretation(problem,interpretation);
26095 PartialInterpretation.newElements(interpretation,element); 24437 PartialInterpretation.newElements(interpretation,element);
26096 find mayInstanceOfFunctionalOutput_class(problem,interpretation,element); 24438 find mayInstanceOfFunctionalInput_class(problem,interpretation,element);
26097 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
26098 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
26099 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
26100 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 24439 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
24440 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
24441 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
26101 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 24442 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
26102 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 24443 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
26103 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); 24444 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
24445 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
26104} 24446}
26105pattern refineTypeTo_FunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 24447pattern refineTypeTo_FunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
26106 find interpretation(problem,interpretation); 24448 find interpretation(problem,interpretation);
26107 PartialInterpretation.newElements(interpretation,element); 24449 PartialInterpretation.newElements(interpretation,element);
26108 find mayInstanceOfFunctionalInterface_class(problem,interpretation,element); 24450 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
26109 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
26110 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
26111 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 24451 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
26112 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
26113 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 24452 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
24453 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
24454 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
26114 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 24455 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
24456 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
26115} 24457}
26116pattern refineTypeTo_FunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 24458pattern refineTypeTo_InformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
26117 find interpretation(problem,interpretation); 24459 find interpretation(problem,interpretation);
26118 PartialInterpretation.newElements(interpretation,element); 24460 PartialInterpretation.newElements(interpretation,element);
26119 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); 24461 find mayInstanceOfInformationLink_class(problem,interpretation,element);
26120 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
26121 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
26122 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 24462 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
26123 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 24463 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
26124 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); 24464 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
24465 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
24466 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
26125 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 24467 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
26126} 24468}
26127pattern refineTypeTo_FunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 24469pattern refineTypeTo_FunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
26128 find interpretation(problem,interpretation); 24470 find interpretation(problem,interpretation);
26129 PartialInterpretation.newElements(interpretation,element); 24471 PartialInterpretation.newElements(interpretation,element);
26130 find mayInstanceOfFunctionalInput_class(problem,interpretation,element); 24472 find mayInstanceOfFunctionalInterface_class(problem,interpretation,element);
26131 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
26132 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
26133 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
26134 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 24473 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
26135 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 24474 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
24475 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
26136 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 24476 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
26137 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); 24477 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
24478 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
26138} 24479}
26139pattern refineTypeTo_InformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 24480pattern refineTypeTo_FunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
26140 find interpretation(problem,interpretation); 24481 find interpretation(problem,interpretation);
26141 PartialInterpretation.newElements(interpretation,element); 24482 PartialInterpretation.newElements(interpretation,element);
26142 find mayInstanceOfInformationLink_class(problem,interpretation,element); 24483 find mayInstanceOfFunctionalOutput_class(problem,interpretation,element);
24484 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
26143 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 24485 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
24486 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
26144 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 24487 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
26145 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
26146 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 24488 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
26147 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 24489 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
26148 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 24490 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
26149} 24491}
26150 24492
@@ -26282,1130 +24624,501 @@ private pattern isPrimitive(element: PrimitiveElement) {
26282// 1.1.2 domain-specific Type Indexers 24624// 1.1.2 domain-specific Type Indexers
26283////////// 24625//////////
26284/** 24626/**
26285 * An element must be an instance of type "EAttribute class". 24627 * An element must be an instance of type "FunctionalElement class".
26286 */
26287private pattern mustInstanceOfEAttribute_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
26288 Type.name(type,"EAttribute class");
26289 find directInstanceOf(problem,interpretation,element,type);
26290}
26291private pattern scopeDisallowsNewEAttribute_class(problem:LogicProblem, interpretation:PartialInterpretation) {
26292 find interpretation(problem,interpretation);
26293 PartialInterpretation.scopes(interpretation,scope);
26294 Scope.targetTypeInterpretation(scope,typeInterpretation);
26295 Scope.maxNewElements(scope,0);
26296 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
26297 Type.name(type,"EAttribute class");
26298}
26299
26300/**
26301 * An element may be an instance of type "EAttribute class".
26302 */
26303private pattern mayInstanceOfEAttribute_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
26304{
26305 find interpretation(problem,interpretation);
26306 PartialInterpretation.newElements(interpretation,element);
26307 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
26308 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
26309 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
26310 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
26311 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
26312 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
26313 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
26314 neg find mustInstanceOfEReference_class(problem,interpretation,element);
26315 neg find mustInstanceOfEObject_class(problem,interpretation,element);
26316 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
26317 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
26318 neg find scopeDisallowsNewEAttribute_class(problem, interpretation);
26319 neg find isPrimitive(element);
26320} or {
26321 find interpretation(problem,interpretation);
26322 PartialInterpretation.openWorldElements(interpretation,element);
26323 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
26324 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
26325 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
26326 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
26327 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
26328 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
26329 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
26330 neg find mustInstanceOfEReference_class(problem,interpretation,element);
26331 neg find mustInstanceOfEObject_class(problem,interpretation,element);
26332 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
26333 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
26334 neg find scopeDisallowsNewEAttribute_class(problem, interpretation);
26335 neg find isPrimitive(element);
26336} or
26337{ find mustInstanceOfEAttribute_class(problem,interpretation,element); }
26338/**
26339 * An element must be an instance of type "EAnnotation class".
26340 */
26341private pattern mustInstanceOfEAnnotation_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
26342 Type.name(type,"EAnnotation class");
26343 find directInstanceOf(problem,interpretation,element,type);
26344}
26345private pattern scopeDisallowsNewEAnnotation_class(problem:LogicProblem, interpretation:PartialInterpretation) {
26346 find interpretation(problem,interpretation);
26347 PartialInterpretation.scopes(interpretation,scope);
26348 Scope.targetTypeInterpretation(scope,typeInterpretation);
26349 Scope.maxNewElements(scope,0);
26350 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
26351 Type.name(type,"EAnnotation class");
26352}
26353
26354/**
26355 * An element may be an instance of type "EAnnotation class".
26356 */
26357private pattern mayInstanceOfEAnnotation_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
26358{
26359 find interpretation(problem,interpretation);
26360 PartialInterpretation.newElements(interpretation,element);
26361 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
26362 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
26363 neg find mustInstanceOfEObject_class(problem,interpretation,element);
26364 neg find mustInstanceOfENamedElement_class(problem,interpretation,element);
26365 neg find scopeDisallowsNewEAnnotation_class(problem, interpretation);
26366 neg find isPrimitive(element);
26367} or {
26368 find interpretation(problem,interpretation);
26369 PartialInterpretation.openWorldElements(interpretation,element);
26370 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
26371 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
26372 neg find mustInstanceOfEObject_class(problem,interpretation,element);
26373 neg find mustInstanceOfENamedElement_class(problem,interpretation,element);
26374 neg find scopeDisallowsNewEAnnotation_class(problem, interpretation);
26375 neg find isPrimitive(element);
26376} or
26377{ find mustInstanceOfEAnnotation_class(problem,interpretation,element); }
26378/**
26379 * An element must be an instance of type "EClass class".
26380 */
26381private pattern mustInstanceOfEClass_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
26382 Type.name(type,"EClass class");
26383 find directInstanceOf(problem,interpretation,element,type);
26384}
26385private pattern scopeDisallowsNewEClass_class(problem:LogicProblem, interpretation:PartialInterpretation) {
26386 find interpretation(problem,interpretation);
26387 PartialInterpretation.scopes(interpretation,scope);
26388 Scope.targetTypeInterpretation(scope,typeInterpretation);
26389 Scope.maxNewElements(scope,0);
26390 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
26391 Type.name(type,"EClass class");
26392}
26393
26394/**
26395 * An element may be an instance of type "EClass class".
26396 */
26397private pattern mayInstanceOfEClass_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
26398{
26399 find interpretation(problem,interpretation);
26400 PartialInterpretation.newElements(interpretation,element);
26401 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
26402 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
26403 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
26404 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
26405 neg find mustInstanceOfEDataType_class(problem,interpretation,element);
26406 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
26407 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
26408 neg find mustInstanceOfEObject_class(problem,interpretation,element);
26409 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
26410 neg find scopeDisallowsNewEClass_class(problem, interpretation);
26411 neg find isPrimitive(element);
26412} or {
26413 find interpretation(problem,interpretation);
26414 PartialInterpretation.openWorldElements(interpretation,element);
26415 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
26416 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
26417 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
26418 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
26419 neg find mustInstanceOfEDataType_class(problem,interpretation,element);
26420 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
26421 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
26422 neg find mustInstanceOfEObject_class(problem,interpretation,element);
26423 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
26424 neg find scopeDisallowsNewEClass_class(problem, interpretation);
26425 neg find isPrimitive(element);
26426} or
26427{ find mustInstanceOfEClass_class(problem,interpretation,element); }
26428/**
26429 * An element must be an instance of type "EClassifier class".
26430 */
26431private pattern mustInstanceOfEClassifier_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
26432 Type.name(type,"EClassifier class");
26433 find directInstanceOf(problem,interpretation,element,type);
26434}
26435private pattern scopeDisallowsNewEClassifier_class(problem:LogicProblem, interpretation:PartialInterpretation) {
26436 find interpretation(problem,interpretation);
26437 PartialInterpretation.scopes(interpretation,scope);
26438 Scope.targetTypeInterpretation(scope,typeInterpretation);
26439 Scope.maxNewElements(scope,0);
26440 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
26441 Type.name(type,"EClassifier class");
26442}
26443
26444/**
26445 * An element may be an instance of type "EClassifier class".
26446 */
26447private pattern mayInstanceOfEClassifier_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
26448{
26449 find interpretation(problem,interpretation);
26450 PartialInterpretation.newElements(interpretation,element);
26451 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
26452 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
26453 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
26454 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
26455 neg find mustInstanceOfEDataType_class(problem,interpretation,element);
26456 neg find mustInstanceOfEClass_class(problem,interpretation,element);
26457 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
26458 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
26459 neg find mustInstanceOfEObject_class(problem,interpretation,element);
26460 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
26461 neg find scopeDisallowsNewEClassifier_class(problem, interpretation);
26462 neg find isPrimitive(element);
26463} or {
26464 find interpretation(problem,interpretation);
26465 PartialInterpretation.openWorldElements(interpretation,element);
26466 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
26467 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
26468 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
26469 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
26470 neg find mustInstanceOfEDataType_class(problem,interpretation,element);
26471 neg find mustInstanceOfEClass_class(problem,interpretation,element);
26472 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
26473 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
26474 neg find mustInstanceOfEObject_class(problem,interpretation,element);
26475 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
26476 neg find scopeDisallowsNewEClassifier_class(problem, interpretation);
26477 neg find isPrimitive(element);
26478} or
26479{ find mustInstanceOfEClassifier_class(problem,interpretation,element); }
26480/**
26481 * An element must be an instance of type "EDataType class".
26482 */
26483private pattern mustInstanceOfEDataType_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
26484 Type.name(type,"EDataType class");
26485 find directInstanceOf(problem,interpretation,element,type);
26486}
26487private pattern scopeDisallowsNewEDataType_class(problem:LogicProblem, interpretation:PartialInterpretation) {
26488 find interpretation(problem,interpretation);
26489 PartialInterpretation.scopes(interpretation,scope);
26490 Scope.targetTypeInterpretation(scope,typeInterpretation);
26491 Scope.maxNewElements(scope,0);
26492 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
26493 Type.name(type,"EDataType class");
26494}
26495
26496/**
26497 * An element may be an instance of type "EDataType class".
26498 */
26499private pattern mayInstanceOfEDataType_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
26500{
26501 find interpretation(problem,interpretation);
26502 PartialInterpretation.newElements(interpretation,element);
26503 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
26504 neg find mustInstanceOfEEnum_class(problem,interpretation,element);
26505 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
26506 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
26507 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
26508 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
26509 neg find mustInstanceOfEClass_class(problem,interpretation,element);
26510 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
26511 neg find mustInstanceOfEObject_class(problem,interpretation,element);
26512 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
26513 neg find scopeDisallowsNewEDataType_class(problem, interpretation);
26514 neg find isPrimitive(element);
26515} or {
26516 find interpretation(problem,interpretation);
26517 PartialInterpretation.openWorldElements(interpretation,element);
26518 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
26519 neg find mustInstanceOfEEnum_class(problem,interpretation,element);
26520 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
26521 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
26522 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
26523 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
26524 neg find mustInstanceOfEClass_class(problem,interpretation,element);
26525 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
26526 neg find mustInstanceOfEObject_class(problem,interpretation,element);
26527 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
26528 neg find scopeDisallowsNewEDataType_class(problem, interpretation);
26529 neg find isPrimitive(element);
26530} or
26531{ find mustInstanceOfEDataType_class(problem,interpretation,element); }
26532/**
26533 * An element must be an instance of type "EEnum class".
26534 */
26535private pattern mustInstanceOfEEnum_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
26536 Type.name(type,"EEnum class");
26537 find directInstanceOf(problem,interpretation,element,type);
26538}
26539private pattern scopeDisallowsNewEEnum_class(problem:LogicProblem, interpretation:PartialInterpretation) {
26540 find interpretation(problem,interpretation);
26541 PartialInterpretation.scopes(interpretation,scope);
26542 Scope.targetTypeInterpretation(scope,typeInterpretation);
26543 Scope.maxNewElements(scope,0);
26544 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
26545 Type.name(type,"EEnum class");
26546}
26547
26548/**
26549 * An element may be an instance of type "EEnum class".
26550 */
26551private pattern mayInstanceOfEEnum_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
26552{
26553 find interpretation(problem,interpretation);
26554 PartialInterpretation.newElements(interpretation,element);
26555 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
26556 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
26557 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
26558 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
26559 neg find mustInstanceOfEClass_class(problem,interpretation,element);
26560 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
26561 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
26562 neg find mustInstanceOfEObject_class(problem,interpretation,element);
26563 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
26564 neg find scopeDisallowsNewEEnum_class(problem, interpretation);
26565 neg find isPrimitive(element);
26566} or {
26567 find interpretation(problem,interpretation);
26568 PartialInterpretation.openWorldElements(interpretation,element);
26569 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
26570 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
26571 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
26572 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
26573 neg find mustInstanceOfEClass_class(problem,interpretation,element);
26574 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
26575 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
26576 neg find mustInstanceOfEObject_class(problem,interpretation,element);
26577 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
26578 neg find scopeDisallowsNewEEnum_class(problem, interpretation);
26579 neg find isPrimitive(element);
26580} or
26581{ find mustInstanceOfEEnum_class(problem,interpretation,element); }
26582/**
26583 * An element must be an instance of type "EEnumLiteral class".
26584 */
26585private pattern mustInstanceOfEEnumLiteral_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
26586 Type.name(type,"EEnumLiteral class");
26587 find directInstanceOf(problem,interpretation,element,type);
26588}
26589private pattern scopeDisallowsNewEEnumLiteral_class(problem:LogicProblem, interpretation:PartialInterpretation) {
26590 find interpretation(problem,interpretation);
26591 PartialInterpretation.scopes(interpretation,scope);
26592 Scope.targetTypeInterpretation(scope,typeInterpretation);
26593 Scope.maxNewElements(scope,0);
26594 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
26595 Type.name(type,"EEnumLiteral class");
26596}
26597
26598/**
26599 * An element may be an instance of type "EEnumLiteral class".
26600 */
26601private pattern mayInstanceOfEEnumLiteral_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
26602{
26603 find interpretation(problem,interpretation);
26604 PartialInterpretation.newElements(interpretation,element);
26605 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
26606 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
26607 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
26608 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
26609 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
26610 neg find mustInstanceOfEObject_class(problem,interpretation,element);
26611 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
26612 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
26613 neg find scopeDisallowsNewEEnumLiteral_class(problem, interpretation);
26614 neg find isPrimitive(element);
26615} or {
26616 find interpretation(problem,interpretation);
26617 PartialInterpretation.openWorldElements(interpretation,element);
26618 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
26619 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
26620 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
26621 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
26622 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
26623 neg find mustInstanceOfEObject_class(problem,interpretation,element);
26624 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
26625 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
26626 neg find scopeDisallowsNewEEnumLiteral_class(problem, interpretation);
26627 neg find isPrimitive(element);
26628} or
26629{ find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); }
26630/**
26631 * An element must be an instance of type "EModelElement class".
26632 */
26633private pattern mustInstanceOfEModelElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
26634 Type.name(type,"EModelElement class");
26635 find directInstanceOf(problem,interpretation,element,type);
26636}
26637private pattern scopeDisallowsNewEModelElement_class(problem:LogicProblem, interpretation:PartialInterpretation) {
26638 find interpretation(problem,interpretation);
26639 PartialInterpretation.scopes(interpretation,scope);
26640 Scope.targetTypeInterpretation(scope,typeInterpretation);
26641 Scope.maxNewElements(scope,0);
26642 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
26643 Type.name(type,"EModelElement class");
26644}
26645
26646/**
26647 * An element may be an instance of type "EModelElement class".
26648 */
26649private pattern mayInstanceOfEModelElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
26650{
26651 find interpretation(problem,interpretation);
26652 PartialInterpretation.newElements(interpretation,element);
26653 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
26654 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
26655 neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element);
26656 neg find mustInstanceOfEObject_class(problem,interpretation,element);
26657 neg find mustInstanceOfENamedElement_class(problem,interpretation,element);
26658 neg find scopeDisallowsNewEModelElement_class(problem, interpretation);
26659 neg find isPrimitive(element);
26660} or {
26661 find interpretation(problem,interpretation);
26662 PartialInterpretation.openWorldElements(interpretation,element);
26663 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
26664 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
26665 neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element);
26666 neg find mustInstanceOfEObject_class(problem,interpretation,element);
26667 neg find mustInstanceOfENamedElement_class(problem,interpretation,element);
26668 neg find scopeDisallowsNewEModelElement_class(problem, interpretation);
26669 neg find isPrimitive(element);
26670} or
26671{ find mustInstanceOfEModelElement_class(problem,interpretation,element); }
26672/**
26673 * An element must be an instance of type "ENamedElement class".
26674 */
26675private pattern mustInstanceOfENamedElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
26676 Type.name(type,"ENamedElement class");
26677 find directInstanceOf(problem,interpretation,element,type);
26678}
26679private pattern scopeDisallowsNewENamedElement_class(problem:LogicProblem, interpretation:PartialInterpretation) {
26680 find interpretation(problem,interpretation);
26681 PartialInterpretation.scopes(interpretation,scope);
26682 Scope.targetTypeInterpretation(scope,typeInterpretation);
26683 Scope.maxNewElements(scope,0);
26684 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
26685 Type.name(type,"ENamedElement class");
26686}
26687
26688/**
26689 * An element may be an instance of type "ENamedElement class".
26690 */
26691private pattern mayInstanceOfENamedElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
26692{
26693 find interpretation(problem,interpretation);
26694 PartialInterpretation.newElements(interpretation,element);
26695 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
26696 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
26697 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
26698 neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element);
26699 neg find mustInstanceOfEObject_class(problem,interpretation,element);
26700 neg find scopeDisallowsNewENamedElement_class(problem, interpretation);
26701 neg find isPrimitive(element);
26702} or {
26703 find interpretation(problem,interpretation);
26704 PartialInterpretation.openWorldElements(interpretation,element);
26705 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
26706 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
26707 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
26708 neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element);
26709 neg find mustInstanceOfEObject_class(problem,interpretation,element);
26710 neg find scopeDisallowsNewENamedElement_class(problem, interpretation);
26711 neg find isPrimitive(element);
26712} or
26713{ find mustInstanceOfENamedElement_class(problem,interpretation,element); }
26714/**
26715 * An element must be an instance of type "EObject class".
26716 */
26717private pattern mustInstanceOfEObject_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
26718 Type.name(type,"EObject class");
26719 find directInstanceOf(problem,interpretation,element,type);
26720}
26721private pattern scopeDisallowsNewEObject_class(problem:LogicProblem, interpretation:PartialInterpretation) {
26722 find interpretation(problem,interpretation);
26723 PartialInterpretation.scopes(interpretation,scope);
26724 Scope.targetTypeInterpretation(scope,typeInterpretation);
26725 Scope.maxNewElements(scope,0);
26726 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
26727 Type.name(type,"EObject class");
26728}
26729
26730/**
26731 * An element may be an instance of type "EObject class".
26732 */
26733private pattern mayInstanceOfEObject_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
26734{
26735 find interpretation(problem,interpretation);
26736 PartialInterpretation.newElements(interpretation,element);
26737 neg find mustInstanceOfEModelElement_class(problem,interpretation,element);
26738 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
26739 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
26740 neg find scopeDisallowsNewEObject_class(problem, interpretation);
26741 neg find isPrimitive(element);
26742} or {
26743 find interpretation(problem,interpretation);
26744 PartialInterpretation.openWorldElements(interpretation,element);
26745 neg find mustInstanceOfEModelElement_class(problem,interpretation,element);
26746 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
26747 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
26748 neg find scopeDisallowsNewEObject_class(problem, interpretation);
26749 neg find isPrimitive(element);
26750} or
26751{ find mustInstanceOfEObject_class(problem,interpretation,element); }
26752/**
26753 * An element must be an instance of type "EOperation class".
26754 */
26755private pattern mustInstanceOfEOperation_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
26756 Type.name(type,"EOperation class");
26757 find directInstanceOf(problem,interpretation,element,type);
26758}
26759private pattern scopeDisallowsNewEOperation_class(problem:LogicProblem, interpretation:PartialInterpretation) {
26760 find interpretation(problem,interpretation);
26761 PartialInterpretation.scopes(interpretation,scope);
26762 Scope.targetTypeInterpretation(scope,typeInterpretation);
26763 Scope.maxNewElements(scope,0);
26764 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
26765 Type.name(type,"EOperation class");
26766}
26767
26768/**
26769 * An element may be an instance of type "EOperation class".
26770 */
26771private pattern mayInstanceOfEOperation_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
26772{
26773 find interpretation(problem,interpretation);
26774 PartialInterpretation.newElements(interpretation,element);
26775 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
26776 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
26777 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
26778 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
26779 neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element);
26780 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
26781 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
26782 neg find mustInstanceOfEObject_class(problem,interpretation,element);
26783 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
26784 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
26785 neg find scopeDisallowsNewEOperation_class(problem, interpretation);
26786 neg find isPrimitive(element);
26787} or {
26788 find interpretation(problem,interpretation);
26789 PartialInterpretation.openWorldElements(interpretation,element);
26790 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
26791 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
26792 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
26793 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
26794 neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element);
26795 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
26796 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
26797 neg find mustInstanceOfEObject_class(problem,interpretation,element);
26798 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
26799 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
26800 neg find scopeDisallowsNewEOperation_class(problem, interpretation);
26801 neg find isPrimitive(element);
26802} or
26803{ find mustInstanceOfEOperation_class(problem,interpretation,element); }
26804/**
26805 * An element must be an instance of type "EPackage class".
26806 */ 24628 */
26807private pattern mustInstanceOfEPackage_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 24629private pattern mustInstanceOfFunctionalElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
26808 Type.name(type,"EPackage class"); 24630 Type.name(type,"FunctionalElement class");
26809 find directInstanceOf(problem,interpretation,element,type); 24631 find directInstanceOf(problem,interpretation,element,type);
26810} 24632}
26811private pattern scopeDisallowsNewEPackage_class(problem:LogicProblem, interpretation:PartialInterpretation) { 24633private pattern scopeDisallowsNewFunctionalElement_class(problem:LogicProblem, interpretation:PartialInterpretation) {
26812 find interpretation(problem,interpretation); 24634 find interpretation(problem,interpretation);
26813 PartialInterpretation.scopes(interpretation,scope); 24635 PartialInterpretation.scopes(interpretation,scope);
26814 Scope.targetTypeInterpretation(scope,typeInterpretation); 24636 Scope.targetTypeInterpretation(scope,typeInterpretation);
26815 Scope.maxNewElements(scope,0); 24637 Scope.maxNewElements(scope,0);
26816 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 24638 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
26817 Type.name(type,"EPackage class"); 24639 Type.name(type,"FunctionalElement class");
26818} 24640}
26819 24641
26820/** 24642/**
26821 * An element may be an instance of type "EPackage class". 24643 * An element may be an instance of type "FunctionalElement class".
26822 */ 24644 */
26823private pattern mayInstanceOfEPackage_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 24645private pattern mayInstanceOfFunctionalElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
26824{ 24646{
26825 find interpretation(problem,interpretation); 24647 find interpretation(problem,interpretation);
26826 PartialInterpretation.newElements(interpretation,element); 24648 PartialInterpretation.newElements(interpretation,element);
26827 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 24649 neg find mustInstanceOfFunction_class(problem,interpretation,element);
26828 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 24650 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
26829 neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element); 24651 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
26830 neg find mustInstanceOfEObject_class(problem,interpretation,element); 24652 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
26831 neg find scopeDisallowsNewEPackage_class(problem, interpretation); 24653 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
24654 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
24655 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
26832 neg find isPrimitive(element); 24656 neg find isPrimitive(element);
26833} or { 24657} or {
26834 find interpretation(problem,interpretation); 24658 find interpretation(problem,interpretation);
26835 PartialInterpretation.openWorldElements(interpretation,element); 24659 PartialInterpretation.openWorldElements(interpretation,element);
26836 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 24660 neg find mustInstanceOfFunction_class(problem,interpretation,element);
26837 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 24661 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
26838 neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element); 24662 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
26839 neg find mustInstanceOfEObject_class(problem,interpretation,element); 24663 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
26840 neg find scopeDisallowsNewEPackage_class(problem, interpretation); 24664 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
24665 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
24666 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
26841 neg find isPrimitive(element); 24667 neg find isPrimitive(element);
26842} or 24668} or
26843{ find mustInstanceOfEPackage_class(problem,interpretation,element); } 24669{ find mustInstanceOfFunctionalElement_class(problem,interpretation,element); }
26844/** 24670/**
26845 * An element must be an instance of type "EParameter class". 24671 * An element must be an instance of type "FunctionalArchitectureModel class".
26846 */ 24672 */
26847private pattern mustInstanceOfEParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 24673private pattern mustInstanceOfFunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
26848 Type.name(type,"EParameter class"); 24674 Type.name(type,"FunctionalArchitectureModel class");
26849 find directInstanceOf(problem,interpretation,element,type); 24675 find directInstanceOf(problem,interpretation,element,type);
26850} 24676}
26851private pattern scopeDisallowsNewEParameter_class(problem:LogicProblem, interpretation:PartialInterpretation) { 24677private pattern scopeDisallowsNewFunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation) {
26852 find interpretation(problem,interpretation); 24678 find interpretation(problem,interpretation);
26853 PartialInterpretation.scopes(interpretation,scope); 24679 PartialInterpretation.scopes(interpretation,scope);
26854 Scope.targetTypeInterpretation(scope,typeInterpretation); 24680 Scope.targetTypeInterpretation(scope,typeInterpretation);
26855 Scope.maxNewElements(scope,0); 24681 Scope.maxNewElements(scope,0);
26856 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 24682 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
26857 Type.name(type,"EParameter class"); 24683 Type.name(type,"FunctionalArchitectureModel class");
26858} 24684}
26859 24685
26860/** 24686/**
26861 * An element may be an instance of type "EParameter class". 24687 * An element may be an instance of type "FunctionalArchitectureModel class".
26862 */ 24688 */
26863private pattern mayInstanceOfEParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 24689private pattern mayInstanceOfFunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
26864{ 24690{
26865 find interpretation(problem,interpretation); 24691 find interpretation(problem,interpretation);
26866 PartialInterpretation.newElements(interpretation,element); 24692 PartialInterpretation.newElements(interpretation,element);
26867 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 24693 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
26868 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); 24694 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
26869 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 24695 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
26870 neg find mustInstanceOfEOperation_class(problem,interpretation,element); 24696 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
26871 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 24697 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
26872 neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); 24698 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
26873 neg find mustInstanceOfEPackage_class(problem,interpretation,element); 24699 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
26874 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
26875 neg find mustInstanceOfEObject_class(problem,interpretation,element);
26876 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
26877 neg find scopeDisallowsNewEParameter_class(problem, interpretation);
26878 neg find isPrimitive(element); 24700 neg find isPrimitive(element);
26879} or { 24701} or {
26880 find interpretation(problem,interpretation); 24702 find interpretation(problem,interpretation);
26881 PartialInterpretation.openWorldElements(interpretation,element); 24703 PartialInterpretation.openWorldElements(interpretation,element);
26882 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 24704 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
26883 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); 24705 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
26884 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 24706 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
26885 neg find mustInstanceOfEOperation_class(problem,interpretation,element); 24707 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
26886 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 24708 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
26887 neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); 24709 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
26888 neg find mustInstanceOfEPackage_class(problem,interpretation,element); 24710 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
26889 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
26890 neg find mustInstanceOfEObject_class(problem,interpretation,element);
26891 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
26892 neg find scopeDisallowsNewEParameter_class(problem, interpretation);
26893 neg find isPrimitive(element); 24711 neg find isPrimitive(element);
26894} or 24712} or
26895{ find mustInstanceOfEParameter_class(problem,interpretation,element); } 24713{ find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); }
26896/** 24714/**
26897 * An element must be an instance of type "EReference class". 24715 * An element must be an instance of type "Function class".
26898 */ 24716 */
26899private pattern mustInstanceOfEReference_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 24717private pattern mustInstanceOfFunction_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
26900 Type.name(type,"EReference class"); 24718 Type.name(type,"Function class");
26901 find directInstanceOf(problem,interpretation,element,type); 24719 find directInstanceOf(problem,interpretation,element,type);
26902} 24720}
26903private pattern scopeDisallowsNewEReference_class(problem:LogicProblem, interpretation:PartialInterpretation) { 24721private pattern scopeDisallowsNewFunction_class(problem:LogicProblem, interpretation:PartialInterpretation) {
26904 find interpretation(problem,interpretation); 24722 find interpretation(problem,interpretation);
26905 PartialInterpretation.scopes(interpretation,scope); 24723 PartialInterpretation.scopes(interpretation,scope);
26906 Scope.targetTypeInterpretation(scope,typeInterpretation); 24724 Scope.targetTypeInterpretation(scope,typeInterpretation);
26907 Scope.maxNewElements(scope,0); 24725 Scope.maxNewElements(scope,0);
26908 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 24726 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
26909 Type.name(type,"EReference class"); 24727 Type.name(type,"Function class");
26910} 24728}
26911 24729
26912/** 24730/**
26913 * An element may be an instance of type "EReference class". 24731 * An element may be an instance of type "Function class".
26914 */ 24732 */
26915private pattern mayInstanceOfEReference_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 24733private pattern mayInstanceOfFunction_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
26916{ 24734{
26917 find interpretation(problem,interpretation); 24735 find interpretation(problem,interpretation);
26918 PartialInterpretation.newElements(interpretation,element); 24736 PartialInterpretation.newElements(interpretation,element);
26919 neg find mustInstanceOfEAttribute_class(problem,interpretation,element); 24737 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
26920 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 24738 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
26921 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); 24739 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
26922 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 24740 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
26923 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 24741 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
26924 neg find mustInstanceOfEOperation_class(problem,interpretation,element); 24742 neg find scopeDisallowsNewFunction_class(problem, interpretation);
26925 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
26926 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
26927 neg find mustInstanceOfEObject_class(problem,interpretation,element);
26928 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
26929 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
26930 neg find scopeDisallowsNewEReference_class(problem, interpretation);
26931 neg find isPrimitive(element); 24743 neg find isPrimitive(element);
26932} or { 24744} or {
26933 find interpretation(problem,interpretation); 24745 find interpretation(problem,interpretation);
26934 PartialInterpretation.openWorldElements(interpretation,element); 24746 PartialInterpretation.openWorldElements(interpretation,element);
26935 neg find mustInstanceOfEAttribute_class(problem,interpretation,element); 24747 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
26936 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 24748 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
26937 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); 24749 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
26938 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 24750 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
26939 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 24751 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
26940 neg find mustInstanceOfEOperation_class(problem,interpretation,element); 24752 neg find scopeDisallowsNewFunction_class(problem, interpretation);
26941 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
26942 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
26943 neg find mustInstanceOfEObject_class(problem,interpretation,element);
26944 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
26945 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
26946 neg find scopeDisallowsNewEReference_class(problem, interpretation);
26947 neg find isPrimitive(element); 24753 neg find isPrimitive(element);
26948} or 24754} or
26949{ find mustInstanceOfEReference_class(problem,interpretation,element); } 24755{ find mustInstanceOfFunction_class(problem,interpretation,element); }
26950/** 24756/**
26951 * An element must be an instance of type "EStructuralFeature class". 24757 * An element must be an instance of type "FAMTerminator class".
26952 */ 24758 */
26953private pattern mustInstanceOfEStructuralFeature_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 24759private pattern mustInstanceOfFAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
26954 Type.name(type,"EStructuralFeature class"); 24760 Type.name(type,"FAMTerminator class");
26955 find directInstanceOf(problem,interpretation,element,type); 24761 find directInstanceOf(problem,interpretation,element,type);
26956} 24762}
26957private pattern scopeDisallowsNewEStructuralFeature_class(problem:LogicProblem, interpretation:PartialInterpretation) { 24763private pattern scopeDisallowsNewFAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation) {
26958 find interpretation(problem,interpretation); 24764 find interpretation(problem,interpretation);
26959 PartialInterpretation.scopes(interpretation,scope); 24765 PartialInterpretation.scopes(interpretation,scope);
26960 Scope.targetTypeInterpretation(scope,typeInterpretation); 24766 Scope.targetTypeInterpretation(scope,typeInterpretation);
26961 Scope.maxNewElements(scope,0); 24767 Scope.maxNewElements(scope,0);
26962 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 24768 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
26963 Type.name(type,"EStructuralFeature class"); 24769 Type.name(type,"FAMTerminator class");
26964} 24770}
26965 24771
26966/** 24772/**
26967 * An element may be an instance of type "EStructuralFeature class". 24773 * An element may be an instance of type "FAMTerminator class".
26968 */ 24774 */
26969private pattern mayInstanceOfEStructuralFeature_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 24775private pattern mayInstanceOfFAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
26970{ 24776{
26971 find interpretation(problem,interpretation); 24777 find interpretation(problem,interpretation);
26972 PartialInterpretation.newElements(interpretation,element); 24778 PartialInterpretation.newElements(interpretation,element);
26973 neg find mustInstanceOfEAttribute_class(problem,interpretation,element); 24779 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
26974 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 24780 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
26975 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); 24781 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
26976 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 24782 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
26977 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 24783 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
26978 neg find mustInstanceOfEOperation_class(problem,interpretation,element); 24784 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
26979 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
26980 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
26981 neg find mustInstanceOfEReference_class(problem,interpretation,element);
26982 neg find mustInstanceOfEObject_class(problem,interpretation,element);
26983 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
26984 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
26985 neg find scopeDisallowsNewEStructuralFeature_class(problem, interpretation);
26986 neg find isPrimitive(element); 24785 neg find isPrimitive(element);
26987} or { 24786} or {
26988 find interpretation(problem,interpretation); 24787 find interpretation(problem,interpretation);
26989 PartialInterpretation.openWorldElements(interpretation,element); 24788 PartialInterpretation.openWorldElements(interpretation,element);
26990 neg find mustInstanceOfEAttribute_class(problem,interpretation,element); 24789 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
26991 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 24790 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
26992 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); 24791 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
26993 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 24792 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
26994 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 24793 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
26995 neg find mustInstanceOfEOperation_class(problem,interpretation,element); 24794 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
26996 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
26997 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
26998 neg find mustInstanceOfEReference_class(problem,interpretation,element);
26999 neg find mustInstanceOfEObject_class(problem,interpretation,element);
27000 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
27001 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
27002 neg find scopeDisallowsNewEStructuralFeature_class(problem, interpretation);
27003 neg find isPrimitive(element); 24795 neg find isPrimitive(element);
27004} or 24796} or
27005{ find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); } 24797{ find mustInstanceOfFAMTerminator_class(problem,interpretation,element); }
27006/** 24798/**
27007 * An element must be an instance of type "ETypedElement class". 24799 * An element must be an instance of type "InformationLink class".
27008 */ 24800 */
27009private pattern mustInstanceOfETypedElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 24801private pattern mustInstanceOfInformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
27010 Type.name(type,"ETypedElement class"); 24802 Type.name(type,"InformationLink class");
27011 find directInstanceOf(problem,interpretation,element,type); 24803 find directInstanceOf(problem,interpretation,element,type);
27012} 24804}
27013private pattern scopeDisallowsNewETypedElement_class(problem:LogicProblem, interpretation:PartialInterpretation) { 24805private pattern scopeDisallowsNewInformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation) {
27014 find interpretation(problem,interpretation); 24806 find interpretation(problem,interpretation);
27015 PartialInterpretation.scopes(interpretation,scope); 24807 PartialInterpretation.scopes(interpretation,scope);
27016 Scope.targetTypeInterpretation(scope,typeInterpretation); 24808 Scope.targetTypeInterpretation(scope,typeInterpretation);
27017 Scope.maxNewElements(scope,0); 24809 Scope.maxNewElements(scope,0);
27018 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 24810 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
27019 Type.name(type,"ETypedElement class"); 24811 Type.name(type,"InformationLink class");
27020} 24812}
27021 24813
27022/** 24814/**
27023 * An element may be an instance of type "ETypedElement class". 24815 * An element may be an instance of type "InformationLink class".
27024 */ 24816 */
27025private pattern mayInstanceOfETypedElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 24817private pattern mayInstanceOfInformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
27026{ 24818{
27027 find interpretation(problem,interpretation); 24819 find interpretation(problem,interpretation);
27028 PartialInterpretation.newElements(interpretation,element); 24820 PartialInterpretation.newElements(interpretation,element);
27029 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 24821 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
27030 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); 24822 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
27031 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 24823 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
27032 neg find mustInstanceOfEOperation_class(problem,interpretation,element); 24824 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
27033 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 24825 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
27034 neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); 24826 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
27035 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
27036 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
27037 neg find mustInstanceOfEObject_class(problem,interpretation,element);
27038 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
27039 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
27040 neg find scopeDisallowsNewETypedElement_class(problem, interpretation);
27041 neg find isPrimitive(element); 24827 neg find isPrimitive(element);
27042} or { 24828} or {
27043 find interpretation(problem,interpretation); 24829 find interpretation(problem,interpretation);
27044 PartialInterpretation.openWorldElements(interpretation,element); 24830 PartialInterpretation.openWorldElements(interpretation,element);
27045 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 24831 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
27046 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); 24832 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
27047 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 24833 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
27048 neg find mustInstanceOfEOperation_class(problem,interpretation,element); 24834 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
27049 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 24835 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
27050 neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); 24836 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
27051 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
27052 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
27053 neg find mustInstanceOfEObject_class(problem,interpretation,element);
27054 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
27055 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
27056 neg find scopeDisallowsNewETypedElement_class(problem, interpretation);
27057 neg find isPrimitive(element); 24837 neg find isPrimitive(element);
27058} or 24838} or
27059{ find mustInstanceOfETypedElement_class(problem,interpretation,element); } 24839{ find mustInstanceOfInformationLink_class(problem,interpretation,element); }
27060/** 24840/**
27061 * An element must be an instance of type "EStringToStringMapEntry class". 24841 * An element must be an instance of type "FunctionalInterface class".
27062 */ 24842 */
27063private pattern mustInstanceOfEStringToStringMapEntry_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 24843private pattern mustInstanceOfFunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
27064 Type.name(type,"EStringToStringMapEntry class"); 24844 Type.name(type,"FunctionalInterface class");
27065 find directInstanceOf(problem,interpretation,element,type); 24845 find directInstanceOf(problem,interpretation,element,type);
27066} 24846}
27067private pattern scopeDisallowsNewEStringToStringMapEntry_class(problem:LogicProblem, interpretation:PartialInterpretation) { 24847private pattern scopeDisallowsNewFunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation) {
27068 find interpretation(problem,interpretation); 24848 find interpretation(problem,interpretation);
27069 PartialInterpretation.scopes(interpretation,scope); 24849 PartialInterpretation.scopes(interpretation,scope);
27070 Scope.targetTypeInterpretation(scope,typeInterpretation); 24850 Scope.targetTypeInterpretation(scope,typeInterpretation);
27071 Scope.maxNewElements(scope,0); 24851 Scope.maxNewElements(scope,0);
27072 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 24852 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
27073 Type.name(type,"EStringToStringMapEntry class"); 24853 Type.name(type,"FunctionalInterface class");
27074} 24854}
27075 24855
27076/** 24856/**
27077 * An element may be an instance of type "EStringToStringMapEntry class". 24857 * An element may be an instance of type "FunctionalInterface class".
27078 */ 24858 */
27079private pattern mayInstanceOfEStringToStringMapEntry_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 24859private pattern mayInstanceOfFunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
27080{ 24860{
27081 find interpretation(problem,interpretation); 24861 find interpretation(problem,interpretation);
27082 PartialInterpretation.newElements(interpretation,element); 24862 PartialInterpretation.newElements(interpretation,element);
27083 neg find mustInstanceOfEModelElement_class(problem,interpretation,element); 24863 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
27084 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 24864 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
27085 neg find mustInstanceOfEObject_class(problem,interpretation,element); 24865 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
27086 neg find scopeDisallowsNewEStringToStringMapEntry_class(problem, interpretation); 24866 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
24867 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
24868 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
27087 neg find isPrimitive(element); 24869 neg find isPrimitive(element);
27088} or { 24870} or {
27089 find interpretation(problem,interpretation); 24871 find interpretation(problem,interpretation);
27090 PartialInterpretation.openWorldElements(interpretation,element); 24872 PartialInterpretation.openWorldElements(interpretation,element);
27091 neg find mustInstanceOfEModelElement_class(problem,interpretation,element); 24873 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
27092 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 24874 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
27093 neg find mustInstanceOfEObject_class(problem,interpretation,element); 24875 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
27094 neg find scopeDisallowsNewEStringToStringMapEntry_class(problem, interpretation); 24876 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
24877 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
24878 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
27095 neg find isPrimitive(element); 24879 neg find isPrimitive(element);
27096} or 24880} or
27097{ find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); } 24881{ find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); }
27098/** 24882/**
27099 * An element must be an instance of type "EGenericType class". 24883 * An element must be an instance of type "FunctionalInput class".
27100 */ 24884 */
27101private pattern mustInstanceOfEGenericType_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 24885private pattern mustInstanceOfFunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
27102 Type.name(type,"EGenericType class"); 24886 Type.name(type,"FunctionalInput class");
27103 find directInstanceOf(problem,interpretation,element,type); 24887 find directInstanceOf(problem,interpretation,element,type);
27104} 24888}
27105private pattern scopeDisallowsNewEGenericType_class(problem:LogicProblem, interpretation:PartialInterpretation) { 24889private pattern scopeDisallowsNewFunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation) {
27106 find interpretation(problem,interpretation); 24890 find interpretation(problem,interpretation);
27107 PartialInterpretation.scopes(interpretation,scope); 24891 PartialInterpretation.scopes(interpretation,scope);
27108 Scope.targetTypeInterpretation(scope,typeInterpretation); 24892 Scope.targetTypeInterpretation(scope,typeInterpretation);
27109 Scope.maxNewElements(scope,0); 24893 Scope.maxNewElements(scope,0);
27110 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 24894 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
27111 Type.name(type,"EGenericType class"); 24895 Type.name(type,"FunctionalInput class");
27112} 24896}
27113 24897
27114/** 24898/**
27115 * An element may be an instance of type "EGenericType class". 24899 * An element may be an instance of type "FunctionalInput class".
27116 */ 24900 */
27117private pattern mayInstanceOfEGenericType_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 24901private pattern mayInstanceOfFunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
27118{ 24902{
27119 find interpretation(problem,interpretation); 24903 find interpretation(problem,interpretation);
27120 PartialInterpretation.newElements(interpretation,element); 24904 PartialInterpretation.newElements(interpretation,element);
27121 neg find mustInstanceOfEModelElement_class(problem,interpretation,element); 24905 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
27122 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 24906 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
27123 neg find mustInstanceOfEObject_class(problem,interpretation,element); 24907 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
27124 neg find scopeDisallowsNewEGenericType_class(problem, interpretation); 24908 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
24909 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
24910 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
24911 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
27125 neg find isPrimitive(element); 24912 neg find isPrimitive(element);
27126} or { 24913} or {
27127 find interpretation(problem,interpretation); 24914 find interpretation(problem,interpretation);
27128 PartialInterpretation.openWorldElements(interpretation,element); 24915 PartialInterpretation.openWorldElements(interpretation,element);
27129 neg find mustInstanceOfEModelElement_class(problem,interpretation,element); 24916 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
27130 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 24917 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
27131 neg find mustInstanceOfEObject_class(problem,interpretation,element); 24918 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
27132 neg find scopeDisallowsNewEGenericType_class(problem, interpretation); 24919 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
24920 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
24921 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
24922 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
27133 neg find isPrimitive(element); 24923 neg find isPrimitive(element);
27134} or 24924} or
27135{ find mustInstanceOfEGenericType_class(problem,interpretation,element); } 24925{ find mustInstanceOfFunctionalInput_class(problem,interpretation,element); }
27136/** 24926/**
27137 * An element must be an instance of type "ETypeParameter class". 24927 * An element must be an instance of type "FunctionalOutput class".
27138 */ 24928 */
27139private pattern mustInstanceOfETypeParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 24929private pattern mustInstanceOfFunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
27140 Type.name(type,"ETypeParameter class"); 24930 Type.name(type,"FunctionalOutput class");
27141 find directInstanceOf(problem,interpretation,element,type); 24931 find directInstanceOf(problem,interpretation,element,type);
27142} 24932}
27143private pattern scopeDisallowsNewETypeParameter_class(problem:LogicProblem, interpretation:PartialInterpretation) { 24933private pattern scopeDisallowsNewFunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation) {
27144 find interpretation(problem,interpretation); 24934 find interpretation(problem,interpretation);
27145 PartialInterpretation.scopes(interpretation,scope); 24935 PartialInterpretation.scopes(interpretation,scope);
27146 Scope.targetTypeInterpretation(scope,typeInterpretation); 24936 Scope.targetTypeInterpretation(scope,typeInterpretation);
27147 Scope.maxNewElements(scope,0); 24937 Scope.maxNewElements(scope,0);
27148 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 24938 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
27149 Type.name(type,"ETypeParameter class"); 24939 Type.name(type,"FunctionalOutput class");
27150} 24940}
27151 24941
27152/** 24942/**
27153 * An element may be an instance of type "ETypeParameter class". 24943 * An element may be an instance of type "FunctionalOutput class".
27154 */ 24944 */
27155private pattern mayInstanceOfETypeParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 24945private pattern mayInstanceOfFunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
27156{ 24946{
27157 find interpretation(problem,interpretation); 24947 find interpretation(problem,interpretation);
27158 PartialInterpretation.newElements(interpretation,element); 24948 PartialInterpretation.newElements(interpretation,element);
27159 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 24949 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
27160 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 24950 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
27161 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); 24951 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
27162 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 24952 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
27163 neg find mustInstanceOfEPackage_class(problem,interpretation,element); 24953 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
27164 neg find mustInstanceOfEObject_class(problem,interpretation,element); 24954 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
27165 neg find mustInstanceOfETypedElement_class(problem,interpretation,element); 24955 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
27166 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
27167 neg find scopeDisallowsNewETypeParameter_class(problem, interpretation);
27168 neg find isPrimitive(element); 24956 neg find isPrimitive(element);
27169} or { 24957} or {
27170 find interpretation(problem,interpretation); 24958 find interpretation(problem,interpretation);
27171 PartialInterpretation.openWorldElements(interpretation,element); 24959 PartialInterpretation.openWorldElements(interpretation,element);
27172 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 24960 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
27173 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 24961 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
27174 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); 24962 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
27175 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 24963 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
27176 neg find mustInstanceOfEPackage_class(problem,interpretation,element); 24964 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
27177 neg find mustInstanceOfEObject_class(problem,interpretation,element); 24965 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
27178 neg find mustInstanceOfETypedElement_class(problem,interpretation,element); 24966 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
27179 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
27180 neg find scopeDisallowsNewETypeParameter_class(problem, interpretation);
27181 neg find isPrimitive(element); 24967 neg find isPrimitive(element);
27182} or 24968} or
27183{ find mustInstanceOfETypeParameter_class(problem,interpretation,element); } 24969{ find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); }
27184/**
27185 * An element must be an instance of type "EModelElement class DefinedPart".
27186 */
27187private pattern mustInstanceOfEModelElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
27188 Type.name(type,"EModelElement class DefinedPart");
27189 find directInstanceOf(problem,interpretation,element,type);
27190}
27191private pattern scopeDisallowsNewEModelElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
27192 find interpretation(problem,interpretation);
27193 PartialInterpretation.scopes(interpretation,scope);
27194 Scope.targetTypeInterpretation(scope,typeInterpretation);
27195 Scope.maxNewElements(scope,0);
27196 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
27197 Type.name(type,"EModelElement class DefinedPart");
27198}
27199
27200/**
27201 * An element may be an instance of type "EModelElement class DefinedPart".
27202 */
27203private pattern mayInstanceOfEModelElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
27204{ find mustInstanceOfEModelElement_class_DefinedPart(problem,interpretation,element); }
27205/** 24970/**
27206 * An element must be an instance of type "EModelElement class UndefinedPart". 24971 * An element must be an instance of type "FunctionalData class".
27207 */ 24972 */
27208private pattern mustInstanceOfEModelElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 24973private pattern mustInstanceOfFunctionalData_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
27209 Type.name(type,"EModelElement class UndefinedPart"); 24974 Type.name(type,"FunctionalData class");
27210 find directInstanceOf(problem,interpretation,element,type); 24975 find directInstanceOf(problem,interpretation,element,type);
27211} 24976}
27212private pattern scopeDisallowsNewEModelElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { 24977private pattern scopeDisallowsNewFunctionalData_class(problem:LogicProblem, interpretation:PartialInterpretation) {
27213 find interpretation(problem,interpretation); 24978 find interpretation(problem,interpretation);
27214 PartialInterpretation.scopes(interpretation,scope); 24979 PartialInterpretation.scopes(interpretation,scope);
27215 Scope.targetTypeInterpretation(scope,typeInterpretation); 24980 Scope.targetTypeInterpretation(scope,typeInterpretation);
27216 Scope.maxNewElements(scope,0); 24981 Scope.maxNewElements(scope,0);
27217 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 24982 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
27218 Type.name(type,"EModelElement class UndefinedPart"); 24983 Type.name(type,"FunctionalData class");
27219} 24984}
27220 24985
27221/** 24986/**
27222 * An element may be an instance of type "EModelElement class UndefinedPart". 24987 * An element may be an instance of type "FunctionalData class".
27223 */ 24988 */
27224private pattern mayInstanceOfEModelElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 24989private pattern mayInstanceOfFunctionalData_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
27225{ 24990{
27226 find interpretation(problem,interpretation); 24991 find interpretation(problem,interpretation);
27227 PartialInterpretation.newElements(interpretation,element); 24992 PartialInterpretation.newElements(interpretation,element);
27228 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 24993 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
27229 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 24994 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
27230 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 24995 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
27231 neg find mustInstanceOfEObject_class(problem,interpretation,element); 24996 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
27232 neg find mustInstanceOfENamedElement_class(problem,interpretation,element); 24997 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
27233 neg find scopeDisallowsNewEModelElement_class_UndefinedPart(problem, interpretation); 24998 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
24999 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
25000 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
27234 neg find isPrimitive(element); 25001 neg find isPrimitive(element);
27235} or { 25002} or {
27236 find interpretation(problem,interpretation); 25003 find interpretation(problem,interpretation);
27237 PartialInterpretation.openWorldElements(interpretation,element); 25004 PartialInterpretation.openWorldElements(interpretation,element);
27238 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 25005 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
27239 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 25006 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
27240 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 25007 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
27241 neg find mustInstanceOfEObject_class(problem,interpretation,element); 25008 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
27242 neg find mustInstanceOfENamedElement_class(problem,interpretation,element); 25009 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
27243 neg find scopeDisallowsNewEModelElement_class_UndefinedPart(problem, interpretation); 25010 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
25011 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
25012 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
27244 neg find isPrimitive(element); 25013 neg find isPrimitive(element);
27245} or 25014} or
27246{ find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element); } 25015{ find mustInstanceOfFunctionalData_class(problem,interpretation,element); }
27247/**
27248 * An element must be an instance of type "ENamedElement class DefinedPart".
27249 */
27250private pattern mustInstanceOfENamedElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
27251 Type.name(type,"ENamedElement class DefinedPart");
27252 find directInstanceOf(problem,interpretation,element,type);
27253}
27254private pattern scopeDisallowsNewENamedElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
27255 find interpretation(problem,interpretation);
27256 PartialInterpretation.scopes(interpretation,scope);
27257 Scope.targetTypeInterpretation(scope,typeInterpretation);
27258 Scope.maxNewElements(scope,0);
27259 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
27260 Type.name(type,"ENamedElement class DefinedPart");
27261}
27262
27263/**
27264 * An element may be an instance of type "ENamedElement class DefinedPart".
27265 */
27266private pattern mayInstanceOfENamedElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
27267{ find mustInstanceOfENamedElement_class_DefinedPart(problem,interpretation,element); }
27268/** 25016/**
27269 * An element must be an instance of type "ENamedElement class UndefinedPart". 25017 * An element must be an instance of type "FunctionType enum".
27270 */ 25018 */
27271private pattern mustInstanceOfENamedElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 25019private pattern mustInstanceOfFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
27272 Type.name(type,"ENamedElement class UndefinedPart"); 25020 Type.name(type,"FunctionType enum");
27273 find directInstanceOf(problem,interpretation,element,type); 25021 find directInstanceOf(problem,interpretation,element,type);
27274} 25022}
27275private pattern scopeDisallowsNewENamedElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { 25023private pattern scopeDisallowsNewFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation) {
27276 find interpretation(problem,interpretation); 25024 find interpretation(problem,interpretation);
27277 PartialInterpretation.scopes(interpretation,scope); 25025 PartialInterpretation.scopes(interpretation,scope);
27278 Scope.targetTypeInterpretation(scope,typeInterpretation); 25026 Scope.targetTypeInterpretation(scope,typeInterpretation);
27279 Scope.maxNewElements(scope,0); 25027 Scope.maxNewElements(scope,0);
27280 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 25028 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
27281 Type.name(type,"ENamedElement class UndefinedPart"); 25029 Type.name(type,"FunctionType enum");
27282} 25030}
27283 25031
27284/** 25032/**
27285 * An element may be an instance of type "ENamedElement class UndefinedPart". 25033 * An element may be an instance of type "FunctionType enum".
27286 */ 25034 */
27287private pattern mayInstanceOfENamedElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 25035private pattern mayInstanceOfFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
27288{ 25036{ find mustInstanceOfFunctionType_enum(problem,interpretation,element); }
27289 find interpretation(problem,interpretation);
27290 PartialInterpretation.newElements(interpretation,element);
27291 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
27292 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
27293 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
27294 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
27295 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
27296 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
27297 neg find mustInstanceOfEObject_class(problem,interpretation,element);
27298 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
27299 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
27300 neg find scopeDisallowsNewENamedElement_class_UndefinedPart(problem, interpretation);
27301 neg find isPrimitive(element);
27302} or {
27303 find interpretation(problem,interpretation);
27304 PartialInterpretation.openWorldElements(interpretation,element);
27305 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
27306 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
27307 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
27308 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
27309 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
27310 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
27311 neg find mustInstanceOfEObject_class(problem,interpretation,element);
27312 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
27313 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
27314 neg find scopeDisallowsNewENamedElement_class_UndefinedPart(problem, interpretation);
27315 neg find isPrimitive(element);
27316} or
27317{ find mustInstanceOfENamedElement_class_UndefinedPart(problem,interpretation,element); }
27318/** 25037/**
27319 * An element must be an instance of type "EPackage class DefinedPart". 25038 * An element must be an instance of type "FunctionalArchitectureModel class DefinedPart".
27320 */ 25039 */
27321private pattern mustInstanceOfEPackage_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 25040private pattern mustInstanceOfFunctionalArchitectureModel_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
27322 Type.name(type,"EPackage class DefinedPart"); 25041 Type.name(type,"FunctionalArchitectureModel class DefinedPart");
27323 find directInstanceOf(problem,interpretation,element,type); 25042 find directInstanceOf(problem,interpretation,element,type);
27324} 25043}
27325private pattern scopeDisallowsNewEPackage_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { 25044private pattern scopeDisallowsNewFunctionalArchitectureModel_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
27326 find interpretation(problem,interpretation); 25045 find interpretation(problem,interpretation);
27327 PartialInterpretation.scopes(interpretation,scope); 25046 PartialInterpretation.scopes(interpretation,scope);
27328 Scope.targetTypeInterpretation(scope,typeInterpretation); 25047 Scope.targetTypeInterpretation(scope,typeInterpretation);
27329 Scope.maxNewElements(scope,0); 25048 Scope.maxNewElements(scope,0);
27330 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 25049 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
27331 Type.name(type,"EPackage class DefinedPart"); 25050 Type.name(type,"FunctionalArchitectureModel class DefinedPart");
27332} 25051}
27333 25052
27334/** 25053/**
27335 * An element may be an instance of type "EPackage class DefinedPart". 25054 * An element may be an instance of type "FunctionalArchitectureModel class DefinedPart".
27336 */ 25055 */
27337private pattern mayInstanceOfEPackage_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 25056private pattern mayInstanceOfFunctionalArchitectureModel_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
27338{ find mustInstanceOfEPackage_class_DefinedPart(problem,interpretation,element); } 25057{ find mustInstanceOfFunctionalArchitectureModel_class_DefinedPart(problem,interpretation,element); }
27339/** 25058/**
27340 * An element must be an instance of type "EPackage class UndefinedPart". 25059 * An element must be an instance of type "FunctionalArchitectureModel class UndefinedPart".
27341 */ 25060 */
27342private pattern mustInstanceOfEPackage_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 25061private pattern mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
27343 Type.name(type,"EPackage class UndefinedPart"); 25062 Type.name(type,"FunctionalArchitectureModel class UndefinedPart");
27344 find directInstanceOf(problem,interpretation,element,type); 25063 find directInstanceOf(problem,interpretation,element,type);
27345} 25064}
27346private pattern scopeDisallowsNewEPackage_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { 25065private pattern scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
27347 find interpretation(problem,interpretation); 25066 find interpretation(problem,interpretation);
27348 PartialInterpretation.scopes(interpretation,scope); 25067 PartialInterpretation.scopes(interpretation,scope);
27349 Scope.targetTypeInterpretation(scope,typeInterpretation); 25068 Scope.targetTypeInterpretation(scope,typeInterpretation);
27350 Scope.maxNewElements(scope,0); 25069 Scope.maxNewElements(scope,0);
27351 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 25070 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
27352 Type.name(type,"EPackage class UndefinedPart"); 25071 Type.name(type,"FunctionalArchitectureModel class UndefinedPart");
27353} 25072}
27354 25073
27355/** 25074/**
27356 * An element may be an instance of type "EPackage class UndefinedPart". 25075 * An element may be an instance of type "FunctionalArchitectureModel class UndefinedPart".
27357 */ 25076 */
27358private pattern mayInstanceOfEPackage_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 25077private pattern mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
27359{ 25078{
27360 find interpretation(problem,interpretation); 25079 find interpretation(problem,interpretation);
27361 PartialInterpretation.newElements(interpretation,element); 25080 PartialInterpretation.newElements(interpretation,element);
27362 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 25081 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
27363 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 25082 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
27364 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); 25083 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
27365 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 25084 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
27366 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); 25085 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
27367 neg find mustInstanceOfEObject_class(problem,interpretation,element); 25086 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation);
27368 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
27369 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
27370 neg find scopeDisallowsNewEPackage_class_UndefinedPart(problem, interpretation);
27371 neg find isPrimitive(element); 25087 neg find isPrimitive(element);
27372} or { 25088} or {
27373 find interpretation(problem,interpretation); 25089 find interpretation(problem,interpretation);
27374 PartialInterpretation.openWorldElements(interpretation,element); 25090 PartialInterpretation.openWorldElements(interpretation,element);
27375 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 25091 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
27376 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 25092 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
27377 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); 25093 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
27378 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 25094 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
27379 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); 25095 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
27380 neg find mustInstanceOfEObject_class(problem,interpretation,element); 25096 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation);
27381 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
27382 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
27383 neg find scopeDisallowsNewEPackage_class_UndefinedPart(problem, interpretation);
27384 neg find isPrimitive(element); 25097 neg find isPrimitive(element);
27385} or 25098} or
27386{ find mustInstanceOfEPackage_class_UndefinedPart(problem,interpretation,element); } 25099{ find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); }
27387 25100
27388////////// 25101//////////
27389// 1.2 Relation Declaration Indexers 25102// 1.2 Relation Declaration Indexers
27390////////// 25103//////////
27391/** 25104/**
27392 * Matcher for detecting tuples t where []eAttributeType reference EAttribute(source,target) 25105 * Matcher for detecting tuples t where []interface reference FunctionalElement(source,target)
27393 */ 25106 */
27394private pattern mustInRelationeAttributeType_reference_EAttribute( 25107private pattern mustInRelationinterface_reference_FunctionalElement(
27395 problem:LogicProblem, interpretation:PartialInterpretation, 25108 problem:LogicProblem, interpretation:PartialInterpretation,
27396 source: DefinedElement, target:DefinedElement) 25109 source: DefinedElement, target:DefinedElement)
27397{ 25110{
27398 find interpretation(problem,interpretation); 25111 find interpretation(problem,interpretation);
27399 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 25112 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
27400 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAttributeType reference EAttribute"); 25113 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"interface reference FunctionalElement");
27401 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 25114 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
27402 BinaryElementRelationLink.param1(link,source); 25115 BinaryElementRelationLink.param1(link,source);
27403 BinaryElementRelationLink.param2(link,target); 25116 BinaryElementRelationLink.param2(link,target);
27404} 25117}
27405/** 25118/**
27406 * Matcher for detecting tuples t where <>eAttributeType reference EAttribute(source,target) 25119 * Matcher for detecting tuples t where <>interface reference FunctionalElement(source,target)
27407 */ 25120 */
27408private pattern mayInRelationeAttributeType_reference_EAttribute( 25121private pattern mayInRelationinterface_reference_FunctionalElement(
27409 problem:LogicProblem, interpretation:PartialInterpretation, 25122 problem:LogicProblem, interpretation:PartialInterpretation,
27410 source: DefinedElement, target:DefinedElement) 25123 source: DefinedElement, target:DefinedElement)
27411{ 25124{
@@ -27414,33 +25127,42 @@ private pattern mayInRelationeAttributeType_reference_EAttribute(
27414 find mayExist(problem, interpretation, source); 25127 find mayExist(problem, interpretation, source);
27415 find mayExist(problem, interpretation, target); 25128 find mayExist(problem, interpretation, target);
27416 // Type consistency 25129 // Type consistency
27417 find mayInstanceOfEAttribute_class(problem,interpretation,source); 25130 find mayInstanceOfFunctionalElement_class(problem,interpretation,source);
27418 find mayInstanceOfEDataType_class(problem,interpretation,target); 25131 find mayInstanceOfFunctionalInterface_class(problem,interpretation,target);
27419 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 25132 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
27420 // the upper bound of the multiplicity should be considered. 25133 // the upper bound of the multiplicity should be considered.
27421 numberOfExistingReferences == count find mustInRelationeAttributeType_reference_EAttribute(problem,interpretation,source,_); 25134 numberOfExistingReferences == count find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,source,_);
27422 check(numberOfExistingReferences < 1); 25135 check(numberOfExistingReferences < 1);
25136 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
25137 // the upper bound of the opposite reference multiplicity should be considered.
25138 numberOfExistingOppositeReferences == count find mustInRelationelement_reference_FunctionalInterface(problem,interpretation,target,_);
25139 check(numberOfExistingOppositeReferences < 1);
25140 // The reference is containment, then a new reference cannot be create if:
25141 // 1. Multiple parents
25142 neg find mustContains4(problem,interpretation,_,target);
25143 // 2. Circle in the containment hierarchy
25144 neg find mustTransitiveContains(source,target);
27423} or { 25145} or {
27424 find mustInRelationeAttributeType_reference_EAttribute(problem,interpretation,source,target); 25146 find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,source,target);
27425} 25147}
27426/** 25148/**
27427 * Matcher for detecting tuples t where []details reference EAnnotation(source,target) 25149 * Matcher for detecting tuples t where []model reference FunctionalElement(source,target)
27428 */ 25150 */
27429private pattern mustInRelationdetails_reference_EAnnotation( 25151private pattern mustInRelationmodel_reference_FunctionalElement(
27430 problem:LogicProblem, interpretation:PartialInterpretation, 25152 problem:LogicProblem, interpretation:PartialInterpretation,
27431 source: DefinedElement, target:DefinedElement) 25153 source: DefinedElement, target:DefinedElement)
27432{ 25154{
27433 find interpretation(problem,interpretation); 25155 find interpretation(problem,interpretation);
27434 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 25156 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
27435 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"details reference EAnnotation"); 25157 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement");
27436 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 25158 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
27437 BinaryElementRelationLink.param1(link,source); 25159 BinaryElementRelationLink.param1(link,source);
27438 BinaryElementRelationLink.param2(link,target); 25160 BinaryElementRelationLink.param2(link,target);
27439} 25161}
27440/** 25162/**
27441 * Matcher for detecting tuples t where <>details reference EAnnotation(source,target) 25163 * Matcher for detecting tuples t where <>model reference FunctionalElement(source,target)
27442 */ 25164 */
27443private pattern mayInRelationdetails_reference_EAnnotation( 25165private pattern mayInRelationmodel_reference_FunctionalElement(
27444 problem:LogicProblem, interpretation:PartialInterpretation, 25166 problem:LogicProblem, interpretation:PartialInterpretation,
27445 source: DefinedElement, target:DefinedElement) 25167 source: DefinedElement, target:DefinedElement)
27446{ 25168{
@@ -27449,34 +25171,33 @@ private pattern mayInRelationdetails_reference_EAnnotation(
27449 find mayExist(problem, interpretation, source); 25171 find mayExist(problem, interpretation, source);
27450 find mayExist(problem, interpretation, target); 25172 find mayExist(problem, interpretation, target);
27451 // Type consistency 25173 // Type consistency
27452 find mayInstanceOfEAnnotation_class(problem,interpretation,source); 25174 find mayInstanceOfFunctionalElement_class(problem,interpretation,source);
27453 find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,target); 25175 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,target);
27454 // The reference is containment, then a new reference cannot be create if: 25176 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
27455 // 1. Multiple parents 25177 // the upper bound of the multiplicity should be considered.
27456 neg find mustContains4(problem,interpretation,_,target); 25178 numberOfExistingReferences == count find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,source,_);
27457 // 2. Circle in the containment hierarchy 25179 check(numberOfExistingReferences < 1);
27458 neg find mustTransitiveContains(source,target);
27459} or { 25180} or {
27460 find mustInRelationdetails_reference_EAnnotation(problem,interpretation,source,target); 25181 find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,source,target);
27461} 25182}
27462/** 25183/**
27463 * Matcher for detecting tuples t where []eModelElement reference EAnnotation(source,target) 25184 * Matcher for detecting tuples t where []parent reference FunctionalElement(source,target)
27464 */ 25185 */
27465private pattern mustInRelationeModelElement_reference_EAnnotation( 25186private pattern mustInRelationparent_reference_FunctionalElement(
27466 problem:LogicProblem, interpretation:PartialInterpretation, 25187 problem:LogicProblem, interpretation:PartialInterpretation,
27467 source: DefinedElement, target:DefinedElement) 25188 source: DefinedElement, target:DefinedElement)
27468{ 25189{
27469 find interpretation(problem,interpretation); 25190 find interpretation(problem,interpretation);
27470 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 25191 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
27471 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eModelElement reference EAnnotation"); 25192 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"parent reference FunctionalElement");
27472 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 25193 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
27473 BinaryElementRelationLink.param1(link,source); 25194 BinaryElementRelationLink.param1(link,source);
27474 BinaryElementRelationLink.param2(link,target); 25195 BinaryElementRelationLink.param2(link,target);
27475} 25196}
27476/** 25197/**
27477 * Matcher for detecting tuples t where <>eModelElement reference EAnnotation(source,target) 25198 * Matcher for detecting tuples t where <>parent reference FunctionalElement(source,target)
27478 */ 25199 */
27479private pattern mayInRelationeModelElement_reference_EAnnotation( 25200private pattern mayInRelationparent_reference_FunctionalElement(
27480 problem:LogicProblem, interpretation:PartialInterpretation, 25201 problem:LogicProblem, interpretation:PartialInterpretation,
27481 source: DefinedElement, target:DefinedElement) 25202 source: DefinedElement, target:DefinedElement)
27482{ 25203{
@@ -27485,11 +25206,11 @@ private pattern mayInRelationeModelElement_reference_EAnnotation(
27485 find mayExist(problem, interpretation, source); 25206 find mayExist(problem, interpretation, source);
27486 find mayExist(problem, interpretation, target); 25207 find mayExist(problem, interpretation, target);
27487 // Type consistency 25208 // Type consistency
27488 find mayInstanceOfEAnnotation_class(problem,interpretation,source); 25209 find mayInstanceOfFunctionalElement_class(problem,interpretation,source);
27489 find mayInstanceOfEModelElement_class(problem,interpretation,target); 25210 find mayInstanceOfFunction_class(problem,interpretation,target);
27490 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 25211 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
27491 // the upper bound of the multiplicity should be considered. 25212 // the upper bound of the multiplicity should be considered.
27492 numberOfExistingReferences == count find mustInRelationeModelElement_reference_EAnnotation(problem,interpretation,source,_); 25213 numberOfExistingReferences == count find mustInRelationparent_reference_FunctionalElement(problem,interpretation,source,_);
27493 check(numberOfExistingReferences < 1); 25214 check(numberOfExistingReferences < 1);
27494 // The eOpposite of the reference is containment, then a referene cannot be created if 25215 // The eOpposite of the reference is containment, then a referene cannot be created if
27495 // 1. Multiple parents 25216 // 1. Multiple parents
@@ -27497,26 +25218,26 @@ private pattern mayInRelationeModelElement_reference_EAnnotation(
27497 // 2. Circle in the containment hierarchy 25218 // 2. Circle in the containment hierarchy
27498 neg find mustTransitiveContains(source,target); 25219 neg find mustTransitiveContains(source,target);
27499} or { 25220} or {
27500 find mustInRelationeModelElement_reference_EAnnotation(problem,interpretation,source,target); 25221 find mustInRelationparent_reference_FunctionalElement(problem,interpretation,source,target);
27501} 25222}
27502/** 25223/**
27503 * Matcher for detecting tuples t where []contents reference EAnnotation(source,target) 25224 * Matcher for detecting tuples t where []rootElements reference FunctionalArchitectureModel(source,target)
27504 */ 25225 */
27505private pattern mustInRelationcontents_reference_EAnnotation( 25226private pattern mustInRelationrootElements_reference_FunctionalArchitectureModel(
27506 problem:LogicProblem, interpretation:PartialInterpretation, 25227 problem:LogicProblem, interpretation:PartialInterpretation,
27507 source: DefinedElement, target:DefinedElement) 25228 source: DefinedElement, target:DefinedElement)
27508{ 25229{
27509 find interpretation(problem,interpretation); 25230 find interpretation(problem,interpretation);
27510 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 25231 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
27511 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"contents reference EAnnotation"); 25232 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"rootElements reference FunctionalArchitectureModel");
27512 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 25233 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
27513 BinaryElementRelationLink.param1(link,source); 25234 BinaryElementRelationLink.param1(link,source);
27514 BinaryElementRelationLink.param2(link,target); 25235 BinaryElementRelationLink.param2(link,target);
27515} 25236}
27516/** 25237/**
27517 * Matcher for detecting tuples t where <>contents reference EAnnotation(source,target) 25238 * Matcher for detecting tuples t where <>rootElements reference FunctionalArchitectureModel(source,target)
27518 */ 25239 */
27519private pattern mayInRelationcontents_reference_EAnnotation( 25240private pattern mayInRelationrootElements_reference_FunctionalArchitectureModel(
27520 problem:LogicProblem, interpretation:PartialInterpretation, 25241 problem:LogicProblem, interpretation:PartialInterpretation,
27521 source: DefinedElement, target:DefinedElement) 25242 source: DefinedElement, target:DefinedElement)
27522{ 25243{
@@ -27525,96 +25246,34 @@ private pattern mayInRelationcontents_reference_EAnnotation(
27525 find mayExist(problem, interpretation, source); 25246 find mayExist(problem, interpretation, source);
27526 find mayExist(problem, interpretation, target); 25247 find mayExist(problem, interpretation, target);
27527 // Type consistency 25248 // Type consistency
27528 find mayInstanceOfEAnnotation_class(problem,interpretation,source); 25249 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,source);
27529 find mayInstanceOfEObject_class(problem,interpretation,target); 25250 find mayInstanceOfFunctionalElement_class(problem,interpretation,target);
27530 // The reference is containment, then a new reference cannot be create if: 25251 // The reference is containment, then a new reference cannot be create if:
27531 // 1. Multiple parents 25252 // 1. Multiple parents
27532 neg find mustContains4(problem,interpretation,_,target); 25253 neg find mustContains4(problem,interpretation,_,target);
27533 // 2. Circle in the containment hierarchy 25254 // 2. Circle in the containment hierarchy
27534 neg find mustTransitiveContains(source,target); 25255 neg find mustTransitiveContains(source,target);
27535} or { 25256} or {
27536 find mustInRelationcontents_reference_EAnnotation(problem,interpretation,source,target); 25257 find mustInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,source,target);
27537}
27538/**
27539 * Matcher for detecting tuples t where []references reference EAnnotation(source,target)
27540 */
27541private pattern mustInRelationreferences_reference_EAnnotation(
27542 problem:LogicProblem, interpretation:PartialInterpretation,
27543 source: DefinedElement, target:DefinedElement)
27544{
27545 find interpretation(problem,interpretation);
27546 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
27547 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"references reference EAnnotation");
27548 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
27549 BinaryElementRelationLink.param1(link,source);
27550 BinaryElementRelationLink.param2(link,target);
27551}
27552/**
27553 * Matcher for detecting tuples t where <>references reference EAnnotation(source,target)
27554 */
27555private pattern mayInRelationreferences_reference_EAnnotation(
27556 problem:LogicProblem, interpretation:PartialInterpretation,
27557 source: DefinedElement, target:DefinedElement)
27558{
27559 find interpretation(problem,interpretation);
27560 // The two endpoint of the link have to exist
27561 find mayExist(problem, interpretation, source);
27562 find mayExist(problem, interpretation, target);
27563 // Type consistency
27564 find mayInstanceOfEAnnotation_class(problem,interpretation,source);
27565 find mayInstanceOfEObject_class(problem,interpretation,target);
27566} or {
27567 find mustInRelationreferences_reference_EAnnotation(problem,interpretation,source,target);
27568}
27569/**
27570 * Matcher for detecting tuples t where []eSuperTypes reference EClass(source,target)
27571 */
27572private pattern mustInRelationeSuperTypes_reference_EClass(
27573 problem:LogicProblem, interpretation:PartialInterpretation,
27574 source: DefinedElement, target:DefinedElement)
27575{
27576 find interpretation(problem,interpretation);
27577 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
27578 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eSuperTypes reference EClass");
27579 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
27580 BinaryElementRelationLink.param1(link,source);
27581 BinaryElementRelationLink.param2(link,target);
27582}
27583/**
27584 * Matcher for detecting tuples t where <>eSuperTypes reference EClass(source,target)
27585 */
27586private pattern mayInRelationeSuperTypes_reference_EClass(
27587 problem:LogicProblem, interpretation:PartialInterpretation,
27588 source: DefinedElement, target:DefinedElement)
27589{
27590 find interpretation(problem,interpretation);
27591 // The two endpoint of the link have to exist
27592 find mayExist(problem, interpretation, source);
27593 find mayExist(problem, interpretation, target);
27594 // Type consistency
27595 find mayInstanceOfEClass_class(problem,interpretation,source);
27596 find mayInstanceOfEClass_class(problem,interpretation,target);
27597} or {
27598 find mustInRelationeSuperTypes_reference_EClass(problem,interpretation,source,target);
27599} 25258}
27600/** 25259/**
27601 * Matcher for detecting tuples t where []eOperations reference EClass(source,target) 25260 * Matcher for detecting tuples t where []subElements reference Function(source,target)
27602 */ 25261 */
27603private pattern mustInRelationeOperations_reference_EClass( 25262private pattern mustInRelationsubElements_reference_Function(
27604 problem:LogicProblem, interpretation:PartialInterpretation, 25263 problem:LogicProblem, interpretation:PartialInterpretation,
27605 source: DefinedElement, target:DefinedElement) 25264 source: DefinedElement, target:DefinedElement)
27606{ 25265{
27607 find interpretation(problem,interpretation); 25266 find interpretation(problem,interpretation);
27608 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 25267 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
27609 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eOperations reference EClass"); 25268 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"subElements reference Function");
27610 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 25269 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
27611 BinaryElementRelationLink.param1(link,source); 25270 BinaryElementRelationLink.param1(link,source);
27612 BinaryElementRelationLink.param2(link,target); 25271 BinaryElementRelationLink.param2(link,target);
27613} 25272}
27614/** 25273/**
27615 * Matcher for detecting tuples t where <>eOperations reference EClass(source,target) 25274 * Matcher for detecting tuples t where <>subElements reference Function(source,target)
27616 */ 25275 */
27617private pattern mayInRelationeOperations_reference_EClass( 25276private pattern mayInRelationsubElements_reference_Function(
27618 problem:LogicProblem, interpretation:PartialInterpretation, 25277 problem:LogicProblem, interpretation:PartialInterpretation,
27619 source: DefinedElement, target:DefinedElement) 25278 source: DefinedElement, target:DefinedElement)
27620{ 25279{
@@ -27623,11 +25282,11 @@ private pattern mayInRelationeOperations_reference_EClass(
27623 find mayExist(problem, interpretation, source); 25282 find mayExist(problem, interpretation, source);
27624 find mayExist(problem, interpretation, target); 25283 find mayExist(problem, interpretation, target);
27625 // Type consistency 25284 // Type consistency
27626 find mayInstanceOfEClass_class(problem,interpretation,source); 25285 find mayInstanceOfFunction_class(problem,interpretation,source);
27627 find mayInstanceOfEOperation_class(problem,interpretation,target); 25286 find mayInstanceOfFunctionalElement_class(problem,interpretation,target);
27628 // There are "numberOfExistingReferences" currently existing instances of the reference to the target, 25287 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
27629 // the upper bound of the opposite reference multiplicity should be considered. 25288 // the upper bound of the opposite reference multiplicity should be considered.
27630 numberOfExistingOppositeReferences == count find mustInRelationeContainingClass_reference_EOperation(problem,interpretation,target,_); 25289 numberOfExistingOppositeReferences == count find mustInRelationparent_reference_FunctionalElement(problem,interpretation,target,_);
27631 check(numberOfExistingOppositeReferences < 1); 25290 check(numberOfExistingOppositeReferences < 1);
27632 // The reference is containment, then a new reference cannot be create if: 25291 // The reference is containment, then a new reference cannot be create if:
27633 // 1. Multiple parents 25292 // 1. Multiple parents
@@ -27635,274 +25294,26 @@ private pattern mayInRelationeOperations_reference_EClass(
27635 // 2. Circle in the containment hierarchy 25294 // 2. Circle in the containment hierarchy
27636 neg find mustTransitiveContains(source,target); 25295 neg find mustTransitiveContains(source,target);
27637} or { 25296} or {
27638 find mustInRelationeOperations_reference_EClass(problem,interpretation,source,target); 25297 find mustInRelationsubElements_reference_Function(problem,interpretation,source,target);
27639}
27640/**
27641 * Matcher for detecting tuples t where []eAllAttributes reference EClass(source,target)
27642 */
27643private pattern mustInRelationeAllAttributes_reference_EClass(
27644 problem:LogicProblem, interpretation:PartialInterpretation,
27645 source: DefinedElement, target:DefinedElement)
27646{
27647 find interpretation(problem,interpretation);
27648 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
27649 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllAttributes reference EClass");
27650 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
27651 BinaryElementRelationLink.param1(link,source);
27652 BinaryElementRelationLink.param2(link,target);
27653}
27654/**
27655 * Matcher for detecting tuples t where <>eAllAttributes reference EClass(source,target)
27656 */
27657private pattern mayInRelationeAllAttributes_reference_EClass(
27658 problem:LogicProblem, interpretation:PartialInterpretation,
27659 source: DefinedElement, target:DefinedElement)
27660{
27661 find interpretation(problem,interpretation);
27662 // The two endpoint of the link have to exist
27663 find mayExist(problem, interpretation, source);
27664 find mayExist(problem, interpretation, target);
27665 // Type consistency
27666 find mayInstanceOfEClass_class(problem,interpretation,source);
27667 find mayInstanceOfEAttribute_class(problem,interpretation,target);
27668} or {
27669 find mustInRelationeAllAttributes_reference_EClass(problem,interpretation,source,target);
27670}
27671/**
27672 * Matcher for detecting tuples t where []eAllReferences reference EClass(source,target)
27673 */
27674private pattern mustInRelationeAllReferences_reference_EClass(
27675 problem:LogicProblem, interpretation:PartialInterpretation,
27676 source: DefinedElement, target:DefinedElement)
27677{
27678 find interpretation(problem,interpretation);
27679 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
27680 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllReferences reference EClass");
27681 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
27682 BinaryElementRelationLink.param1(link,source);
27683 BinaryElementRelationLink.param2(link,target);
27684}
27685/**
27686 * Matcher for detecting tuples t where <>eAllReferences reference EClass(source,target)
27687 */
27688private pattern mayInRelationeAllReferences_reference_EClass(
27689 problem:LogicProblem, interpretation:PartialInterpretation,
27690 source: DefinedElement, target:DefinedElement)
27691{
27692 find interpretation(problem,interpretation);
27693 // The two endpoint of the link have to exist
27694 find mayExist(problem, interpretation, source);
27695 find mayExist(problem, interpretation, target);
27696 // Type consistency
27697 find mayInstanceOfEClass_class(problem,interpretation,source);
27698 find mayInstanceOfEReference_class(problem,interpretation,target);
27699} or {
27700 find mustInRelationeAllReferences_reference_EClass(problem,interpretation,source,target);
27701}
27702/**
27703 * Matcher for detecting tuples t where []eReferences reference EClass(source,target)
27704 */
27705private pattern mustInRelationeReferences_reference_EClass(
27706 problem:LogicProblem, interpretation:PartialInterpretation,
27707 source: DefinedElement, target:DefinedElement)
27708{
27709 find interpretation(problem,interpretation);
27710 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
27711 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eReferences reference EClass");
27712 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
27713 BinaryElementRelationLink.param1(link,source);
27714 BinaryElementRelationLink.param2(link,target);
27715}
27716/**
27717 * Matcher for detecting tuples t where <>eReferences reference EClass(source,target)
27718 */
27719private pattern mayInRelationeReferences_reference_EClass(
27720 problem:LogicProblem, interpretation:PartialInterpretation,
27721 source: DefinedElement, target:DefinedElement)
27722{
27723 find interpretation(problem,interpretation);
27724 // The two endpoint of the link have to exist
27725 find mayExist(problem, interpretation, source);
27726 find mayExist(problem, interpretation, target);
27727 // Type consistency
27728 find mayInstanceOfEClass_class(problem,interpretation,source);
27729 find mayInstanceOfEReference_class(problem,interpretation,target);
27730} or {
27731 find mustInRelationeReferences_reference_EClass(problem,interpretation,source,target);
27732}
27733/**
27734 * Matcher for detecting tuples t where []eAttributes reference EClass(source,target)
27735 */
27736private pattern mustInRelationeAttributes_reference_EClass(
27737 problem:LogicProblem, interpretation:PartialInterpretation,
27738 source: DefinedElement, target:DefinedElement)
27739{
27740 find interpretation(problem,interpretation);
27741 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
27742 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAttributes reference EClass");
27743 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
27744 BinaryElementRelationLink.param1(link,source);
27745 BinaryElementRelationLink.param2(link,target);
27746}
27747/**
27748 * Matcher for detecting tuples t where <>eAttributes reference EClass(source,target)
27749 */
27750private pattern mayInRelationeAttributes_reference_EClass(
27751 problem:LogicProblem, interpretation:PartialInterpretation,
27752 source: DefinedElement, target:DefinedElement)
27753{
27754 find interpretation(problem,interpretation);
27755 // The two endpoint of the link have to exist
27756 find mayExist(problem, interpretation, source);
27757 find mayExist(problem, interpretation, target);
27758 // Type consistency
27759 find mayInstanceOfEClass_class(problem,interpretation,source);
27760 find mayInstanceOfEAttribute_class(problem,interpretation,target);
27761} or {
27762 find mustInRelationeAttributes_reference_EClass(problem,interpretation,source,target);
27763}
27764/**
27765 * Matcher for detecting tuples t where []eAllContainments reference EClass(source,target)
27766 */
27767private pattern mustInRelationeAllContainments_reference_EClass(
27768 problem:LogicProblem, interpretation:PartialInterpretation,
27769 source: DefinedElement, target:DefinedElement)
27770{
27771 find interpretation(problem,interpretation);
27772 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
27773 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllContainments reference EClass");
27774 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
27775 BinaryElementRelationLink.param1(link,source);
27776 BinaryElementRelationLink.param2(link,target);
27777}
27778/**
27779 * Matcher for detecting tuples t where <>eAllContainments reference EClass(source,target)
27780 */
27781private pattern mayInRelationeAllContainments_reference_EClass(
27782 problem:LogicProblem, interpretation:PartialInterpretation,
27783 source: DefinedElement, target:DefinedElement)
27784{
27785 find interpretation(problem,interpretation);
27786 // The two endpoint of the link have to exist
27787 find mayExist(problem, interpretation, source);
27788 find mayExist(problem, interpretation, target);
27789 // Type consistency
27790 find mayInstanceOfEClass_class(problem,interpretation,source);
27791 find mayInstanceOfEReference_class(problem,interpretation,target);
27792} or {
27793 find mustInRelationeAllContainments_reference_EClass(problem,interpretation,source,target);
27794}
27795/**
27796 * Matcher for detecting tuples t where []eAllOperations reference EClass(source,target)
27797 */
27798private pattern mustInRelationeAllOperations_reference_EClass(
27799 problem:LogicProblem, interpretation:PartialInterpretation,
27800 source: DefinedElement, target:DefinedElement)
27801{
27802 find interpretation(problem,interpretation);
27803 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
27804 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllOperations reference EClass");
27805 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
27806 BinaryElementRelationLink.param1(link,source);
27807 BinaryElementRelationLink.param2(link,target);
27808}
27809/**
27810 * Matcher for detecting tuples t where <>eAllOperations reference EClass(source,target)
27811 */
27812private pattern mayInRelationeAllOperations_reference_EClass(
27813 problem:LogicProblem, interpretation:PartialInterpretation,
27814 source: DefinedElement, target:DefinedElement)
27815{
27816 find interpretation(problem,interpretation);
27817 // The two endpoint of the link have to exist
27818 find mayExist(problem, interpretation, source);
27819 find mayExist(problem, interpretation, target);
27820 // Type consistency
27821 find mayInstanceOfEClass_class(problem,interpretation,source);
27822 find mayInstanceOfEOperation_class(problem,interpretation,target);
27823} or {
27824 find mustInRelationeAllOperations_reference_EClass(problem,interpretation,source,target);
27825}
27826/**
27827 * Matcher for detecting tuples t where []eAllStructuralFeatures reference EClass(source,target)
27828 */
27829private pattern mustInRelationeAllStructuralFeatures_reference_EClass(
27830 problem:LogicProblem, interpretation:PartialInterpretation,
27831 source: DefinedElement, target:DefinedElement)
27832{
27833 find interpretation(problem,interpretation);
27834 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
27835 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllStructuralFeatures reference EClass");
27836 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
27837 BinaryElementRelationLink.param1(link,source);
27838 BinaryElementRelationLink.param2(link,target);
27839}
27840/**
27841 * Matcher for detecting tuples t where <>eAllStructuralFeatures reference EClass(source,target)
27842 */
27843private pattern mayInRelationeAllStructuralFeatures_reference_EClass(
27844 problem:LogicProblem, interpretation:PartialInterpretation,
27845 source: DefinedElement, target:DefinedElement)
27846{
27847 find interpretation(problem,interpretation);
27848 // The two endpoint of the link have to exist
27849 find mayExist(problem, interpretation, source);
27850 find mayExist(problem, interpretation, target);
27851 // Type consistency
27852 find mayInstanceOfEClass_class(problem,interpretation,source);
27853 find mayInstanceOfEStructuralFeature_class(problem,interpretation,target);
27854} or {
27855 find mustInRelationeAllStructuralFeatures_reference_EClass(problem,interpretation,source,target);
27856}
27857/**
27858 * Matcher for detecting tuples t where []eAllSuperTypes reference EClass(source,target)
27859 */
27860private pattern mustInRelationeAllSuperTypes_reference_EClass(
27861 problem:LogicProblem, interpretation:PartialInterpretation,
27862 source: DefinedElement, target:DefinedElement)
27863{
27864 find interpretation(problem,interpretation);
27865 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
27866 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllSuperTypes reference EClass");
27867 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
27868 BinaryElementRelationLink.param1(link,source);
27869 BinaryElementRelationLink.param2(link,target);
27870}
27871/**
27872 * Matcher for detecting tuples t where <>eAllSuperTypes reference EClass(source,target)
27873 */
27874private pattern mayInRelationeAllSuperTypes_reference_EClass(
27875 problem:LogicProblem, interpretation:PartialInterpretation,
27876 source: DefinedElement, target:DefinedElement)
27877{
27878 find interpretation(problem,interpretation);
27879 // The two endpoint of the link have to exist
27880 find mayExist(problem, interpretation, source);
27881 find mayExist(problem, interpretation, target);
27882 // Type consistency
27883 find mayInstanceOfEClass_class(problem,interpretation,source);
27884 find mayInstanceOfEClass_class(problem,interpretation,target);
27885} or {
27886 find mustInRelationeAllSuperTypes_reference_EClass(problem,interpretation,source,target);
27887} 25298}
27888/** 25299/**
27889 * Matcher for detecting tuples t where []eIDAttribute reference EClass(source,target) 25300 * Matcher for detecting tuples t where []data reference FAMTerminator(source,target)
27890 */ 25301 */
27891private pattern mustInRelationeIDAttribute_reference_EClass( 25302private pattern mustInRelationdata_reference_FAMTerminator(
27892 problem:LogicProblem, interpretation:PartialInterpretation, 25303 problem:LogicProblem, interpretation:PartialInterpretation,
27893 source: DefinedElement, target:DefinedElement) 25304 source: DefinedElement, target:DefinedElement)
27894{ 25305{
27895 find interpretation(problem,interpretation); 25306 find interpretation(problem,interpretation);
27896 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 25307 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
27897 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eIDAttribute reference EClass"); 25308 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"data reference FAMTerminator");
27898 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 25309 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
27899 BinaryElementRelationLink.param1(link,source); 25310 BinaryElementRelationLink.param1(link,source);
27900 BinaryElementRelationLink.param2(link,target); 25311 BinaryElementRelationLink.param2(link,target);
27901} 25312}
27902/** 25313/**
27903 * Matcher for detecting tuples t where <>eIDAttribute reference EClass(source,target) 25314 * Matcher for detecting tuples t where <>data reference FAMTerminator(source,target)
27904 */ 25315 */
27905private pattern mayInRelationeIDAttribute_reference_EClass( 25316private pattern mayInRelationdata_reference_FAMTerminator(
27906 problem:LogicProblem, interpretation:PartialInterpretation, 25317 problem:LogicProblem, interpretation:PartialInterpretation,
27907 source: DefinedElement, target:DefinedElement) 25318 source: DefinedElement, target:DefinedElement)
27908{ 25319{
@@ -27911,140 +25322,42 @@ private pattern mayInRelationeIDAttribute_reference_EClass(
27911 find mayExist(problem, interpretation, source); 25322 find mayExist(problem, interpretation, source);
27912 find mayExist(problem, interpretation, target); 25323 find mayExist(problem, interpretation, target);
27913 // Type consistency 25324 // Type consistency
27914 find mayInstanceOfEClass_class(problem,interpretation,source); 25325 find mayInstanceOfFAMTerminator_class(problem,interpretation,source);
27915 find mayInstanceOfEAttribute_class(problem,interpretation,target); 25326 find mayInstanceOfFunctionalData_class(problem,interpretation,target);
27916 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 25327 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
27917 // the upper bound of the multiplicity should be considered. 25328 // the upper bound of the multiplicity should be considered.
27918 numberOfExistingReferences == count find mustInRelationeIDAttribute_reference_EClass(problem,interpretation,source,_); 25329 numberOfExistingReferences == count find mustInRelationdata_reference_FAMTerminator(problem,interpretation,source,_);
27919 check(numberOfExistingReferences < 1); 25330 check(numberOfExistingReferences < 1);
27920} or {
27921 find mustInRelationeIDAttribute_reference_EClass(problem,interpretation,source,target);
27922}
27923/**
27924 * Matcher for detecting tuples t where []eStructuralFeatures reference EClass(source,target)
27925 */
27926private pattern mustInRelationeStructuralFeatures_reference_EClass(
27927 problem:LogicProblem, interpretation:PartialInterpretation,
27928 source: DefinedElement, target:DefinedElement)
27929{
27930 find interpretation(problem,interpretation);
27931 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
27932 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eStructuralFeatures reference EClass");
27933 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
27934 BinaryElementRelationLink.param1(link,source);
27935 BinaryElementRelationLink.param2(link,target);
27936}
27937/**
27938 * Matcher for detecting tuples t where <>eStructuralFeatures reference EClass(source,target)
27939 */
27940private pattern mayInRelationeStructuralFeatures_reference_EClass(
27941 problem:LogicProblem, interpretation:PartialInterpretation,
27942 source: DefinedElement, target:DefinedElement)
27943{
27944 find interpretation(problem,interpretation);
27945 // The two endpoint of the link have to exist
27946 find mayExist(problem, interpretation, source);
27947 find mayExist(problem, interpretation, target);
27948 // Type consistency
27949 find mayInstanceOfEClass_class(problem,interpretation,source);
27950 find mayInstanceOfEStructuralFeature_class(problem,interpretation,target);
27951 // There are "numberOfExistingReferences" currently existing instances of the reference to the target, 25331 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
27952 // the upper bound of the opposite reference multiplicity should be considered. 25332 // the upper bound of the opposite reference multiplicity should be considered.
27953 numberOfExistingOppositeReferences == count find mustInRelationeContainingClass_reference_EStructuralFeature(problem,interpretation,target,_); 25333 numberOfExistingOppositeReferences == count find mustInRelationterminator_reference_FunctionalData(problem,interpretation,target,_);
27954 check(numberOfExistingOppositeReferences < 1); 25334 check(numberOfExistingOppositeReferences < 1);
27955 // The reference is containment, then a new reference cannot be create if: 25335 // The eOpposite of the reference is containment, then a referene cannot be created if
27956 // 1. Multiple parents
27957 neg find mustContains4(problem,interpretation,_,target);
27958 // 2. Circle in the containment hierarchy
27959 neg find mustTransitiveContains(source,target);
27960} or {
27961 find mustInRelationeStructuralFeatures_reference_EClass(problem,interpretation,source,target);
27962}
27963/**
27964 * Matcher for detecting tuples t where []eGenericSuperTypes reference EClass(source,target)
27965 */
27966private pattern mustInRelationeGenericSuperTypes_reference_EClass(
27967 problem:LogicProblem, interpretation:PartialInterpretation,
27968 source: DefinedElement, target:DefinedElement)
27969{
27970 find interpretation(problem,interpretation);
27971 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
27972 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eGenericSuperTypes reference EClass");
27973 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
27974 BinaryElementRelationLink.param1(link,source);
27975 BinaryElementRelationLink.param2(link,target);
27976}
27977/**
27978 * Matcher for detecting tuples t where <>eGenericSuperTypes reference EClass(source,target)
27979 */
27980private pattern mayInRelationeGenericSuperTypes_reference_EClass(
27981 problem:LogicProblem, interpretation:PartialInterpretation,
27982 source: DefinedElement, target:DefinedElement)
27983{
27984 find interpretation(problem,interpretation);
27985 // The two endpoint of the link have to exist
27986 find mayExist(problem, interpretation, source);
27987 find mayExist(problem, interpretation, target);
27988 // Type consistency
27989 find mayInstanceOfEClass_class(problem,interpretation,source);
27990 find mayInstanceOfEGenericType_class(problem,interpretation,target);
27991 // The reference is containment, then a new reference cannot be create if:
27992 // 1. Multiple parents 25336 // 1. Multiple parents
27993 neg find mustContains4(problem,interpretation,_,target); 25337 neg find mustContains4(problem,interpretation,source,_);
27994 // 2. Circle in the containment hierarchy 25338 // 2. Circle in the containment hierarchy
27995 neg find mustTransitiveContains(source,target); 25339 neg find mustTransitiveContains(source,target);
27996} or { 25340} or {
27997 find mustInRelationeGenericSuperTypes_reference_EClass(problem,interpretation,source,target); 25341 find mustInRelationdata_reference_FAMTerminator(problem,interpretation,source,target);
27998}
27999/**
28000 * Matcher for detecting tuples t where []eAllGenericSuperTypes reference EClass(source,target)
28001 */
28002private pattern mustInRelationeAllGenericSuperTypes_reference_EClass(
28003 problem:LogicProblem, interpretation:PartialInterpretation,
28004 source: DefinedElement, target:DefinedElement)
28005{
28006 find interpretation(problem,interpretation);
28007 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
28008 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllGenericSuperTypes reference EClass");
28009 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
28010 BinaryElementRelationLink.param1(link,source);
28011 BinaryElementRelationLink.param2(link,target);
28012}
28013/**
28014 * Matcher for detecting tuples t where <>eAllGenericSuperTypes reference EClass(source,target)
28015 */
28016private pattern mayInRelationeAllGenericSuperTypes_reference_EClass(
28017 problem:LogicProblem, interpretation:PartialInterpretation,
28018 source: DefinedElement, target:DefinedElement)
28019{
28020 find interpretation(problem,interpretation);
28021 // The two endpoint of the link have to exist
28022 find mayExist(problem, interpretation, source);
28023 find mayExist(problem, interpretation, target);
28024 // Type consistency
28025 find mayInstanceOfEClass_class(problem,interpretation,source);
28026 find mayInstanceOfEGenericType_class(problem,interpretation,target);
28027} or {
28028 find mustInRelationeAllGenericSuperTypes_reference_EClass(problem,interpretation,source,target);
28029} 25342}
28030/** 25343/**
28031 * Matcher for detecting tuples t where []ePackage reference EClassifier(source,target) 25344 * Matcher for detecting tuples t where []from reference InformationLink(source,target)
28032 */ 25345 */
28033private pattern mustInRelationePackage_reference_EClassifier( 25346private pattern mustInRelationfrom_reference_InformationLink(
28034 problem:LogicProblem, interpretation:PartialInterpretation, 25347 problem:LogicProblem, interpretation:PartialInterpretation,
28035 source: DefinedElement, target:DefinedElement) 25348 source: DefinedElement, target:DefinedElement)
28036{ 25349{
28037 find interpretation(problem,interpretation); 25350 find interpretation(problem,interpretation);
28038 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 25351 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
28039 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"ePackage reference EClassifier"); 25352 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"from reference InformationLink");
28040 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 25353 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
28041 BinaryElementRelationLink.param1(link,source); 25354 BinaryElementRelationLink.param1(link,source);
28042 BinaryElementRelationLink.param2(link,target); 25355 BinaryElementRelationLink.param2(link,target);
28043} 25356}
28044/** 25357/**
28045 * Matcher for detecting tuples t where <>ePackage reference EClassifier(source,target) 25358 * Matcher for detecting tuples t where <>from reference InformationLink(source,target)
28046 */ 25359 */
28047private pattern mayInRelationePackage_reference_EClassifier( 25360private pattern mayInRelationfrom_reference_InformationLink(
28048 problem:LogicProblem, interpretation:PartialInterpretation, 25361 problem:LogicProblem, interpretation:PartialInterpretation,
28049 source: DefinedElement, target:DefinedElement) 25362 source: DefinedElement, target:DefinedElement)
28050{ 25363{
@@ -28053,11 +25366,11 @@ private pattern mayInRelationePackage_reference_EClassifier(
28053 find mayExist(problem, interpretation, source); 25366 find mayExist(problem, interpretation, source);
28054 find mayExist(problem, interpretation, target); 25367 find mayExist(problem, interpretation, target);
28055 // Type consistency 25368 // Type consistency
28056 find mayInstanceOfEClassifier_class(problem,interpretation,source); 25369 find mayInstanceOfInformationLink_class(problem,interpretation,source);
28057 find mayInstanceOfEPackage_class(problem,interpretation,target); 25370 find mayInstanceOfFunctionalOutput_class(problem,interpretation,target);
28058 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 25371 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
28059 // the upper bound of the multiplicity should be considered. 25372 // the upper bound of the multiplicity should be considered.
28060 numberOfExistingReferences == count find mustInRelationePackage_reference_EClassifier(problem,interpretation,source,_); 25373 numberOfExistingReferences == count find mustInRelationfrom_reference_InformationLink(problem,interpretation,source,_);
28061 check(numberOfExistingReferences < 1); 25374 check(numberOfExistingReferences < 1);
28062 // The eOpposite of the reference is containment, then a referene cannot be created if 25375 // The eOpposite of the reference is containment, then a referene cannot be created if
28063 // 1. Multiple parents 25376 // 1. Multiple parents
@@ -28065,102 +25378,26 @@ private pattern mayInRelationePackage_reference_EClassifier(
28065 // 2. Circle in the containment hierarchy 25378 // 2. Circle in the containment hierarchy
28066 neg find mustTransitiveContains(source,target); 25379 neg find mustTransitiveContains(source,target);
28067} or { 25380} or {
28068 find mustInRelationePackage_reference_EClassifier(problem,interpretation,source,target); 25381 find mustInRelationfrom_reference_InformationLink(problem,interpretation,source,target);
28069}
28070/**
28071 * Matcher for detecting tuples t where []eTypeParameters reference EClassifier(source,target)
28072 */
28073private pattern mustInRelationeTypeParameters_reference_EClassifier(
28074 problem:LogicProblem, interpretation:PartialInterpretation,
28075 source: DefinedElement, target:DefinedElement)
28076{
28077 find interpretation(problem,interpretation);
28078 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
28079 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eTypeParameters reference EClassifier");
28080 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
28081 BinaryElementRelationLink.param1(link,source);
28082 BinaryElementRelationLink.param2(link,target);
28083}
28084/**
28085 * Matcher for detecting tuples t where <>eTypeParameters reference EClassifier(source,target)
28086 */
28087private pattern mayInRelationeTypeParameters_reference_EClassifier(
28088 problem:LogicProblem, interpretation:PartialInterpretation,
28089 source: DefinedElement, target:DefinedElement)
28090{
28091 find interpretation(problem,interpretation);
28092 // The two endpoint of the link have to exist
28093 find mayExist(problem, interpretation, source);
28094 find mayExist(problem, interpretation, target);
28095 // Type consistency
28096 find mayInstanceOfEClassifier_class(problem,interpretation,source);
28097 find mayInstanceOfETypeParameter_class(problem,interpretation,target);
28098 // The reference is containment, then a new reference cannot be create if:
28099 // 1. Multiple parents
28100 neg find mustContains4(problem,interpretation,_,target);
28101 // 2. Circle in the containment hierarchy
28102 neg find mustTransitiveContains(source,target);
28103} or {
28104 find mustInRelationeTypeParameters_reference_EClassifier(problem,interpretation,source,target);
28105}
28106/**
28107 * Matcher for detecting tuples t where []eLiterals reference EEnum(source,target)
28108 */
28109private pattern mustInRelationeLiterals_reference_EEnum(
28110 problem:LogicProblem, interpretation:PartialInterpretation,
28111 source: DefinedElement, target:DefinedElement)
28112{
28113 find interpretation(problem,interpretation);
28114 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
28115 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eLiterals reference EEnum");
28116 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
28117 BinaryElementRelationLink.param1(link,source);
28118 BinaryElementRelationLink.param2(link,target);
28119}
28120/**
28121 * Matcher for detecting tuples t where <>eLiterals reference EEnum(source,target)
28122 */
28123private pattern mayInRelationeLiterals_reference_EEnum(
28124 problem:LogicProblem, interpretation:PartialInterpretation,
28125 source: DefinedElement, target:DefinedElement)
28126{
28127 find interpretation(problem,interpretation);
28128 // The two endpoint of the link have to exist
28129 find mayExist(problem, interpretation, source);
28130 find mayExist(problem, interpretation, target);
28131 // Type consistency
28132 find mayInstanceOfEEnum_class(problem,interpretation,source);
28133 find mayInstanceOfEEnumLiteral_class(problem,interpretation,target);
28134 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
28135 // the upper bound of the opposite reference multiplicity should be considered.
28136 numberOfExistingOppositeReferences == count find mustInRelationeEnum_reference_EEnumLiteral(problem,interpretation,target,_);
28137 check(numberOfExistingOppositeReferences < 1);
28138 // The reference is containment, then a new reference cannot be create if:
28139 // 1. Multiple parents
28140 neg find mustContains4(problem,interpretation,_,target);
28141 // 2. Circle in the containment hierarchy
28142 neg find mustTransitiveContains(source,target);
28143} or {
28144 find mustInRelationeLiterals_reference_EEnum(problem,interpretation,source,target);
28145} 25382}
28146/** 25383/**
28147 * Matcher for detecting tuples t where []eEnum reference EEnumLiteral(source,target) 25384 * Matcher for detecting tuples t where []to reference InformationLink(source,target)
28148 */ 25385 */
28149private pattern mustInRelationeEnum_reference_EEnumLiteral( 25386private pattern mustInRelationto_reference_InformationLink(
28150 problem:LogicProblem, interpretation:PartialInterpretation, 25387 problem:LogicProblem, interpretation:PartialInterpretation,
28151 source: DefinedElement, target:DefinedElement) 25388 source: DefinedElement, target:DefinedElement)
28152{ 25389{
28153 find interpretation(problem,interpretation); 25390 find interpretation(problem,interpretation);
28154 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 25391 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
28155 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eEnum reference EEnumLiteral"); 25392 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"to reference InformationLink");
28156 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 25393 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
28157 BinaryElementRelationLink.param1(link,source); 25394 BinaryElementRelationLink.param1(link,source);
28158 BinaryElementRelationLink.param2(link,target); 25395 BinaryElementRelationLink.param2(link,target);
28159} 25396}
28160/** 25397/**
28161 * Matcher for detecting tuples t where <>eEnum reference EEnumLiteral(source,target) 25398 * Matcher for detecting tuples t where <>to reference InformationLink(source,target)
28162 */ 25399 */
28163private pattern mayInRelationeEnum_reference_EEnumLiteral( 25400private pattern mayInRelationto_reference_InformationLink(
28164 problem:LogicProblem, interpretation:PartialInterpretation, 25401 problem:LogicProblem, interpretation:PartialInterpretation,
28165 source: DefinedElement, target:DefinedElement) 25402 source: DefinedElement, target:DefinedElement)
28166{ 25403{
@@ -28169,38 +25406,33 @@ private pattern mayInRelationeEnum_reference_EEnumLiteral(
28169 find mayExist(problem, interpretation, source); 25406 find mayExist(problem, interpretation, source);
28170 find mayExist(problem, interpretation, target); 25407 find mayExist(problem, interpretation, target);
28171 // Type consistency 25408 // Type consistency
28172 find mayInstanceOfEEnumLiteral_class(problem,interpretation,source); 25409 find mayInstanceOfInformationLink_class(problem,interpretation,source);
28173 find mayInstanceOfEEnum_class(problem,interpretation,target); 25410 find mayInstanceOfFunctionalInput_class(problem,interpretation,target);
28174 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 25411 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
28175 // the upper bound of the multiplicity should be considered. 25412 // the upper bound of the multiplicity should be considered.
28176 numberOfExistingReferences == count find mustInRelationeEnum_reference_EEnumLiteral(problem,interpretation,source,_); 25413 numberOfExistingReferences == count find mustInRelationto_reference_InformationLink(problem,interpretation,source,_);
28177 check(numberOfExistingReferences < 1); 25414 check(numberOfExistingReferences < 1);
28178 // The eOpposite of the reference is containment, then a referene cannot be created if
28179 // 1. Multiple parents
28180 neg find mustContains4(problem,interpretation,source,_);
28181 // 2. Circle in the containment hierarchy
28182 neg find mustTransitiveContains(source,target);
28183} or { 25415} or {
28184 find mustInRelationeEnum_reference_EEnumLiteral(problem,interpretation,source,target); 25416 find mustInRelationto_reference_InformationLink(problem,interpretation,source,target);
28185} 25417}
28186/** 25418/**
28187 * Matcher for detecting tuples t where []eAnnotations reference EModelElement(source,target) 25419 * Matcher for detecting tuples t where []data reference FunctionalInterface(source,target)
28188 */ 25420 */
28189private pattern mustInRelationeAnnotations_reference_EModelElement( 25421private pattern mustInRelationdata_reference_FunctionalInterface(
28190 problem:LogicProblem, interpretation:PartialInterpretation, 25422 problem:LogicProblem, interpretation:PartialInterpretation,
28191 source: DefinedElement, target:DefinedElement) 25423 source: DefinedElement, target:DefinedElement)
28192{ 25424{
28193 find interpretation(problem,interpretation); 25425 find interpretation(problem,interpretation);
28194 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 25426 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
28195 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAnnotations reference EModelElement"); 25427 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"data reference FunctionalInterface");
28196 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 25428 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
28197 BinaryElementRelationLink.param1(link,source); 25429 BinaryElementRelationLink.param1(link,source);
28198 BinaryElementRelationLink.param2(link,target); 25430 BinaryElementRelationLink.param2(link,target);
28199} 25431}
28200/** 25432/**
28201 * Matcher for detecting tuples t where <>eAnnotations reference EModelElement(source,target) 25433 * Matcher for detecting tuples t where <>data reference FunctionalInterface(source,target)
28202 */ 25434 */
28203private pattern mayInRelationeAnnotations_reference_EModelElement( 25435private pattern mayInRelationdata_reference_FunctionalInterface(
28204 problem:LogicProblem, interpretation:PartialInterpretation, 25436 problem:LogicProblem, interpretation:PartialInterpretation,
28205 source: DefinedElement, target:DefinedElement) 25437 source: DefinedElement, target:DefinedElement)
28206{ 25438{
@@ -28209,11 +25441,11 @@ private pattern mayInRelationeAnnotations_reference_EModelElement(
28209 find mayExist(problem, interpretation, source); 25441 find mayExist(problem, interpretation, source);
28210 find mayExist(problem, interpretation, target); 25442 find mayExist(problem, interpretation, target);
28211 // Type consistency 25443 // Type consistency
28212 find mayInstanceOfEModelElement_class(problem,interpretation,source); 25444 find mayInstanceOfFunctionalInterface_class(problem,interpretation,source);
28213 find mayInstanceOfEAnnotation_class(problem,interpretation,target); 25445 find mayInstanceOfFunctionalData_class(problem,interpretation,target);
28214 // There are "numberOfExistingReferences" currently existing instances of the reference to the target, 25446 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
28215 // the upper bound of the opposite reference multiplicity should be considered. 25447 // the upper bound of the opposite reference multiplicity should be considered.
28216 numberOfExistingOppositeReferences == count find mustInRelationeModelElement_reference_EAnnotation(problem,interpretation,target,_); 25448 numberOfExistingOppositeReferences == count find mustInRelationinterface_reference_FunctionalData(problem,interpretation,target,_);
28217 check(numberOfExistingOppositeReferences < 1); 25449 check(numberOfExistingOppositeReferences < 1);
28218 // The reference is containment, then a new reference cannot be create if: 25450 // The reference is containment, then a new reference cannot be create if:
28219 // 1. Multiple parents 25451 // 1. Multiple parents
@@ -28221,26 +25453,26 @@ private pattern mayInRelationeAnnotations_reference_EModelElement(
28221 // 2. Circle in the containment hierarchy 25453 // 2. Circle in the containment hierarchy
28222 neg find mustTransitiveContains(source,target); 25454 neg find mustTransitiveContains(source,target);
28223} or { 25455} or {
28224 find mustInRelationeAnnotations_reference_EModelElement(problem,interpretation,source,target); 25456 find mustInRelationdata_reference_FunctionalInterface(problem,interpretation,source,target);
28225} 25457}
28226/** 25458/**
28227 * Matcher for detecting tuples t where []eContainingClass reference EOperation(source,target) 25459 * Matcher for detecting tuples t where []element reference FunctionalInterface(source,target)
28228 */ 25460 */
28229private pattern mustInRelationeContainingClass_reference_EOperation( 25461private pattern mustInRelationelement_reference_FunctionalInterface(
28230 problem:LogicProblem, interpretation:PartialInterpretation, 25462 problem:LogicProblem, interpretation:PartialInterpretation,
28231 source: DefinedElement, target:DefinedElement) 25463 source: DefinedElement, target:DefinedElement)
28232{ 25464{
28233 find interpretation(problem,interpretation); 25465 find interpretation(problem,interpretation);
28234 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 25466 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
28235 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eContainingClass reference EOperation"); 25467 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"element reference FunctionalInterface");
28236 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 25468 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
28237 BinaryElementRelationLink.param1(link,source); 25469 BinaryElementRelationLink.param1(link,source);
28238 BinaryElementRelationLink.param2(link,target); 25470 BinaryElementRelationLink.param2(link,target);
28239} 25471}
28240/** 25472/**
28241 * Matcher for detecting tuples t where <>eContainingClass reference EOperation(source,target) 25473 * Matcher for detecting tuples t where <>element reference FunctionalInterface(source,target)
28242 */ 25474 */
28243private pattern mayInRelationeContainingClass_reference_EOperation( 25475private pattern mayInRelationelement_reference_FunctionalInterface(
28244 problem:LogicProblem, interpretation:PartialInterpretation, 25476 problem:LogicProblem, interpretation:PartialInterpretation,
28245 source: DefinedElement, target:DefinedElement) 25477 source: DefinedElement, target:DefinedElement)
28246{ 25478{
@@ -28249,74 +25481,42 @@ private pattern mayInRelationeContainingClass_reference_EOperation(
28249 find mayExist(problem, interpretation, source); 25481 find mayExist(problem, interpretation, source);
28250 find mayExist(problem, interpretation, target); 25482 find mayExist(problem, interpretation, target);
28251 // Type consistency 25483 // Type consistency
28252 find mayInstanceOfEOperation_class(problem,interpretation,source); 25484 find mayInstanceOfFunctionalInterface_class(problem,interpretation,source);
28253 find mayInstanceOfEClass_class(problem,interpretation,target); 25485 find mayInstanceOfFunctionalElement_class(problem,interpretation,target);
28254 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 25486 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
28255 // the upper bound of the multiplicity should be considered. 25487 // the upper bound of the multiplicity should be considered.
28256 numberOfExistingReferences == count find mustInRelationeContainingClass_reference_EOperation(problem,interpretation,source,_); 25488 numberOfExistingReferences == count find mustInRelationelement_reference_FunctionalInterface(problem,interpretation,source,_);
28257 check(numberOfExistingReferences < 1); 25489 check(numberOfExistingReferences < 1);
25490 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
25491 // the upper bound of the opposite reference multiplicity should be considered.
25492 numberOfExistingOppositeReferences == count find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,target,_);
25493 check(numberOfExistingOppositeReferences < 1);
28258 // The eOpposite of the reference is containment, then a referene cannot be created if 25494 // The eOpposite of the reference is containment, then a referene cannot be created if
28259 // 1. Multiple parents 25495 // 1. Multiple parents
28260 neg find mustContains4(problem,interpretation,source,_); 25496 neg find mustContains4(problem,interpretation,source,_);
28261 // 2. Circle in the containment hierarchy 25497 // 2. Circle in the containment hierarchy
28262 neg find mustTransitiveContains(source,target); 25498 neg find mustTransitiveContains(source,target);
28263} or { 25499} or {
28264 find mustInRelationeContainingClass_reference_EOperation(problem,interpretation,source,target); 25500 find mustInRelationelement_reference_FunctionalInterface(problem,interpretation,source,target);
28265}
28266/**
28267 * Matcher for detecting tuples t where []eTypeParameters reference EOperation(source,target)
28268 */
28269private pattern mustInRelationeTypeParameters_reference_EOperation(
28270 problem:LogicProblem, interpretation:PartialInterpretation,
28271 source: DefinedElement, target:DefinedElement)
28272{
28273 find interpretation(problem,interpretation);
28274 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
28275 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eTypeParameters reference EOperation");
28276 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
28277 BinaryElementRelationLink.param1(link,source);
28278 BinaryElementRelationLink.param2(link,target);
28279}
28280/**
28281 * Matcher for detecting tuples t where <>eTypeParameters reference EOperation(source,target)
28282 */
28283private pattern mayInRelationeTypeParameters_reference_EOperation(
28284 problem:LogicProblem, interpretation:PartialInterpretation,
28285 source: DefinedElement, target:DefinedElement)
28286{
28287 find interpretation(problem,interpretation);
28288 // The two endpoint of the link have to exist
28289 find mayExist(problem, interpretation, source);
28290 find mayExist(problem, interpretation, target);
28291 // Type consistency
28292 find mayInstanceOfEOperation_class(problem,interpretation,source);
28293 find mayInstanceOfETypeParameter_class(problem,interpretation,target);
28294 // The reference is containment, then a new reference cannot be create if:
28295 // 1. Multiple parents
28296 neg find mustContains4(problem,interpretation,_,target);
28297 // 2. Circle in the containment hierarchy
28298 neg find mustTransitiveContains(source,target);
28299} or {
28300 find mustInRelationeTypeParameters_reference_EOperation(problem,interpretation,source,target);
28301} 25501}
28302/** 25502/**
28303 * Matcher for detecting tuples t where []eParameters reference EOperation(source,target) 25503 * Matcher for detecting tuples t where []IncomingLinks reference FunctionalInput(source,target)
28304 */ 25504 */
28305private pattern mustInRelationeParameters_reference_EOperation( 25505private pattern mustInRelationIncomingLinks_reference_FunctionalInput(
28306 problem:LogicProblem, interpretation:PartialInterpretation, 25506 problem:LogicProblem, interpretation:PartialInterpretation,
28307 source: DefinedElement, target:DefinedElement) 25507 source: DefinedElement, target:DefinedElement)
28308{ 25508{
28309 find interpretation(problem,interpretation); 25509 find interpretation(problem,interpretation);
28310 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 25510 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
28311 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eParameters reference EOperation"); 25511 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"IncomingLinks reference FunctionalInput");
28312 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 25512 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
28313 BinaryElementRelationLink.param1(link,source); 25513 BinaryElementRelationLink.param1(link,source);
28314 BinaryElementRelationLink.param2(link,target); 25514 BinaryElementRelationLink.param2(link,target);
28315} 25515}
28316/** 25516/**
28317 * Matcher for detecting tuples t where <>eParameters reference EOperation(source,target) 25517 * Matcher for detecting tuples t where <>IncomingLinks reference FunctionalInput(source,target)
28318 */ 25518 */
28319private pattern mayInRelationeParameters_reference_EOperation( 25519private pattern mayInRelationIncomingLinks_reference_FunctionalInput(
28320 problem:LogicProblem, interpretation:PartialInterpretation, 25520 problem:LogicProblem, interpretation:PartialInterpretation,
28321 source: DefinedElement, target:DefinedElement) 25521 source: DefinedElement, target:DefinedElement)
28322{ 25522{
@@ -28325,105 +25525,33 @@ private pattern mayInRelationeParameters_reference_EOperation(
28325 find mayExist(problem, interpretation, source); 25525 find mayExist(problem, interpretation, source);
28326 find mayExist(problem, interpretation, target); 25526 find mayExist(problem, interpretation, target);
28327 // Type consistency 25527 // Type consistency
28328 find mayInstanceOfEOperation_class(problem,interpretation,source); 25528 find mayInstanceOfFunctionalInput_class(problem,interpretation,source);
28329 find mayInstanceOfEParameter_class(problem,interpretation,target); 25529 find mayInstanceOfInformationLink_class(problem,interpretation,target);
28330 // There are "numberOfExistingReferences" currently existing instances of the reference to the target, 25530 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
28331 // the upper bound of the opposite reference multiplicity should be considered. 25531 // the upper bound of the opposite reference multiplicity should be considered.
28332 numberOfExistingOppositeReferences == count find mustInRelationeOperation_reference_EParameter(problem,interpretation,target,_); 25532 numberOfExistingOppositeReferences == count find mustInRelationto_reference_InformationLink(problem,interpretation,target,_);
28333 check(numberOfExistingOppositeReferences < 1); 25533 check(numberOfExistingOppositeReferences < 1);
28334 // The reference is containment, then a new reference cannot be create if:
28335 // 1. Multiple parents
28336 neg find mustContains4(problem,interpretation,_,target);
28337 // 2. Circle in the containment hierarchy
28338 neg find mustTransitiveContains(source,target);
28339} or { 25534} or {
28340 find mustInRelationeParameters_reference_EOperation(problem,interpretation,source,target); 25535 find mustInRelationIncomingLinks_reference_FunctionalInput(problem,interpretation,source,target);
28341}
28342/**
28343 * Matcher for detecting tuples t where []eExceptions reference EOperation(source,target)
28344 */
28345private pattern mustInRelationeExceptions_reference_EOperation(
28346 problem:LogicProblem, interpretation:PartialInterpretation,
28347 source: DefinedElement, target:DefinedElement)
28348{
28349 find interpretation(problem,interpretation);
28350 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
28351 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eExceptions reference EOperation");
28352 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
28353 BinaryElementRelationLink.param1(link,source);
28354 BinaryElementRelationLink.param2(link,target);
28355}
28356/**
28357 * Matcher for detecting tuples t where <>eExceptions reference EOperation(source,target)
28358 */
28359private pattern mayInRelationeExceptions_reference_EOperation(
28360 problem:LogicProblem, interpretation:PartialInterpretation,
28361 source: DefinedElement, target:DefinedElement)
28362{
28363 find interpretation(problem,interpretation);
28364 // The two endpoint of the link have to exist
28365 find mayExist(problem, interpretation, source);
28366 find mayExist(problem, interpretation, target);
28367 // Type consistency
28368 find mayInstanceOfEOperation_class(problem,interpretation,source);
28369 find mayInstanceOfEClassifier_class(problem,interpretation,target);
28370} or {
28371 find mustInRelationeExceptions_reference_EOperation(problem,interpretation,source,target);
28372}
28373/**
28374 * Matcher for detecting tuples t where []eGenericExceptions reference EOperation(source,target)
28375 */
28376private pattern mustInRelationeGenericExceptions_reference_EOperation(
28377 problem:LogicProblem, interpretation:PartialInterpretation,
28378 source: DefinedElement, target:DefinedElement)
28379{
28380 find interpretation(problem,interpretation);
28381 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
28382 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eGenericExceptions reference EOperation");
28383 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
28384 BinaryElementRelationLink.param1(link,source);
28385 BinaryElementRelationLink.param2(link,target);
28386}
28387/**
28388 * Matcher for detecting tuples t where <>eGenericExceptions reference EOperation(source,target)
28389 */
28390private pattern mayInRelationeGenericExceptions_reference_EOperation(
28391 problem:LogicProblem, interpretation:PartialInterpretation,
28392 source: DefinedElement, target:DefinedElement)
28393{
28394 find interpretation(problem,interpretation);
28395 // The two endpoint of the link have to exist
28396 find mayExist(problem, interpretation, source);
28397 find mayExist(problem, interpretation, target);
28398 // Type consistency
28399 find mayInstanceOfEOperation_class(problem,interpretation,source);
28400 find mayInstanceOfEGenericType_class(problem,interpretation,target);
28401 // The reference is containment, then a new reference cannot be create if:
28402 // 1. Multiple parents
28403 neg find mustContains4(problem,interpretation,_,target);
28404 // 2. Circle in the containment hierarchy
28405 neg find mustTransitiveContains(source,target);
28406} or {
28407 find mustInRelationeGenericExceptions_reference_EOperation(problem,interpretation,source,target);
28408} 25536}
28409/** 25537/**
28410 * Matcher for detecting tuples t where []eClassifiers reference EPackage(source,target) 25538 * Matcher for detecting tuples t where []outgoingLinks reference FunctionalOutput(source,target)
28411 */ 25539 */
28412private pattern mustInRelationeClassifiers_reference_EPackage( 25540private pattern mustInRelationoutgoingLinks_reference_FunctionalOutput(
28413 problem:LogicProblem, interpretation:PartialInterpretation, 25541 problem:LogicProblem, interpretation:PartialInterpretation,
28414 source: DefinedElement, target:DefinedElement) 25542 source: DefinedElement, target:DefinedElement)
28415{ 25543{
28416 find interpretation(problem,interpretation); 25544 find interpretation(problem,interpretation);
28417 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 25545 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
28418 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eClassifiers reference EPackage"); 25546 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"outgoingLinks reference FunctionalOutput");
28419 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 25547 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
28420 BinaryElementRelationLink.param1(link,source); 25548 BinaryElementRelationLink.param1(link,source);
28421 BinaryElementRelationLink.param2(link,target); 25549 BinaryElementRelationLink.param2(link,target);
28422} 25550}
28423/** 25551/**
28424 * Matcher for detecting tuples t where <>eClassifiers reference EPackage(source,target) 25552 * Matcher for detecting tuples t where <>outgoingLinks reference FunctionalOutput(source,target)
28425 */ 25553 */
28426private pattern mayInRelationeClassifiers_reference_EPackage( 25554private pattern mayInRelationoutgoingLinks_reference_FunctionalOutput(
28427 problem:LogicProblem, interpretation:PartialInterpretation, 25555 problem:LogicProblem, interpretation:PartialInterpretation,
28428 source: DefinedElement, target:DefinedElement) 25556 source: DefinedElement, target:DefinedElement)
28429{ 25557{
@@ -28432,11 +25560,11 @@ private pattern mayInRelationeClassifiers_reference_EPackage(
28432 find mayExist(problem, interpretation, source); 25560 find mayExist(problem, interpretation, source);
28433 find mayExist(problem, interpretation, target); 25561 find mayExist(problem, interpretation, target);
28434 // Type consistency 25562 // Type consistency
28435 find mayInstanceOfEPackage_class(problem,interpretation,source); 25563 find mayInstanceOfFunctionalOutput_class(problem,interpretation,source);
28436 find mayInstanceOfEClassifier_class(problem,interpretation,target); 25564 find mayInstanceOfInformationLink_class(problem,interpretation,target);
28437 // There are "numberOfExistingReferences" currently existing instances of the reference to the target, 25565 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
28438 // the upper bound of the opposite reference multiplicity should be considered. 25566 // the upper bound of the opposite reference multiplicity should be considered.
28439 numberOfExistingOppositeReferences == count find mustInRelationePackage_reference_EClassifier(problem,interpretation,target,_); 25567 numberOfExistingOppositeReferences == count find mustInRelationfrom_reference_InformationLink(problem,interpretation,target,_);
28440 check(numberOfExistingOppositeReferences < 1); 25568 check(numberOfExistingOppositeReferences < 1);
28441 // The reference is containment, then a new reference cannot be create if: 25569 // The reference is containment, then a new reference cannot be create if:
28442 // 1. Multiple parents 25570 // 1. Multiple parents
@@ -28444,26 +25572,26 @@ private pattern mayInRelationeClassifiers_reference_EPackage(
28444 // 2. Circle in the containment hierarchy 25572 // 2. Circle in the containment hierarchy
28445 neg find mustTransitiveContains(source,target); 25573 neg find mustTransitiveContains(source,target);
28446} or { 25574} or {
28447 find mustInRelationeClassifiers_reference_EPackage(problem,interpretation,source,target); 25575 find mustInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,source,target);
28448} 25576}
28449/** 25577/**
28450 * Matcher for detecting tuples t where []eSubpackages reference EPackage(source,target) 25578 * Matcher for detecting tuples t where []terminator reference FunctionalData(source,target)
28451 */ 25579 */
28452private pattern mustInRelationeSubpackages_reference_EPackage( 25580private pattern mustInRelationterminator_reference_FunctionalData(
28453 problem:LogicProblem, interpretation:PartialInterpretation, 25581 problem:LogicProblem, interpretation:PartialInterpretation,
28454 source: DefinedElement, target:DefinedElement) 25582 source: DefinedElement, target:DefinedElement)
28455{ 25583{
28456 find interpretation(problem,interpretation); 25584 find interpretation(problem,interpretation);
28457 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 25585 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
28458 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eSubpackages reference EPackage"); 25586 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"terminator reference FunctionalData");
28459 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 25587 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
28460 BinaryElementRelationLink.param1(link,source); 25588 BinaryElementRelationLink.param1(link,source);
28461 BinaryElementRelationLink.param2(link,target); 25589 BinaryElementRelationLink.param2(link,target);
28462} 25590}
28463/** 25591/**
28464 * Matcher for detecting tuples t where <>eSubpackages reference EPackage(source,target) 25592 * Matcher for detecting tuples t where <>terminator reference FunctionalData(source,target)
28465 */ 25593 */
28466private pattern mayInRelationeSubpackages_reference_EPackage( 25594private pattern mayInRelationterminator_reference_FunctionalData(
28467 problem:LogicProblem, interpretation:PartialInterpretation, 25595 problem:LogicProblem, interpretation:PartialInterpretation,
28468 source: DefinedElement, target:DefinedElement) 25596 source: DefinedElement, target:DefinedElement)
28469{ 25597{
@@ -28472,11 +25600,15 @@ private pattern mayInRelationeSubpackages_reference_EPackage(
28472 find mayExist(problem, interpretation, source); 25600 find mayExist(problem, interpretation, source);
28473 find mayExist(problem, interpretation, target); 25601 find mayExist(problem, interpretation, target);
28474 // Type consistency 25602 // Type consistency
28475 find mayInstanceOfEPackage_class(problem,interpretation,source); 25603 find mayInstanceOfFunctionalData_class(problem,interpretation,source);
28476 find mayInstanceOfEPackage_class(problem,interpretation,target); 25604 find mayInstanceOfFAMTerminator_class(problem,interpretation,target);
25605 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
25606 // the upper bound of the multiplicity should be considered.
25607 numberOfExistingReferences == count find mustInRelationterminator_reference_FunctionalData(problem,interpretation,source,_);
25608 check(numberOfExistingReferences < 1);
28477 // There are "numberOfExistingReferences" currently existing instances of the reference to the target, 25609 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
28478 // the upper bound of the opposite reference multiplicity should be considered. 25610 // the upper bound of the opposite reference multiplicity should be considered.
28479 numberOfExistingOppositeReferences == count find mustInRelationeSuperPackage_reference_EPackage(problem,interpretation,target,_); 25611 numberOfExistingOppositeReferences == count find mustInRelationdata_reference_FAMTerminator(problem,interpretation,target,_);
28480 check(numberOfExistingOppositeReferences < 1); 25612 check(numberOfExistingOppositeReferences < 1);
28481 // The reference is containment, then a new reference cannot be create if: 25613 // The reference is containment, then a new reference cannot be create if:
28482 // 1. Multiple parents 25614 // 1. Multiple parents
@@ -28484,26 +25616,26 @@ private pattern mayInRelationeSubpackages_reference_EPackage(
28484 // 2. Circle in the containment hierarchy 25616 // 2. Circle in the containment hierarchy
28485 neg find mustTransitiveContains(source,target); 25617 neg find mustTransitiveContains(source,target);
28486} or { 25618} or {
28487 find mustInRelationeSubpackages_reference_EPackage(problem,interpretation,source,target); 25619 find mustInRelationterminator_reference_FunctionalData(problem,interpretation,source,target);
28488} 25620}
28489/** 25621/**
28490 * Matcher for detecting tuples t where []eSuperPackage reference EPackage(source,target) 25622 * Matcher for detecting tuples t where []interface reference FunctionalData(source,target)
28491 */ 25623 */
28492private pattern mustInRelationeSuperPackage_reference_EPackage( 25624private pattern mustInRelationinterface_reference_FunctionalData(
28493 problem:LogicProblem, interpretation:PartialInterpretation, 25625 problem:LogicProblem, interpretation:PartialInterpretation,
28494 source: DefinedElement, target:DefinedElement) 25626 source: DefinedElement, target:DefinedElement)
28495{ 25627{
28496 find interpretation(problem,interpretation); 25628 find interpretation(problem,interpretation);
28497 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 25629 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
28498 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eSuperPackage reference EPackage"); 25630 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"interface reference FunctionalData");
28499 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 25631 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
28500 BinaryElementRelationLink.param1(link,source); 25632 BinaryElementRelationLink.param1(link,source);
28501 BinaryElementRelationLink.param2(link,target); 25633 BinaryElementRelationLink.param2(link,target);
28502} 25634}
28503/** 25635/**
28504 * Matcher for detecting tuples t where <>eSuperPackage reference EPackage(source,target) 25636 * Matcher for detecting tuples t where <>interface reference FunctionalData(source,target)
28505 */ 25637 */
28506private pattern mayInRelationeSuperPackage_reference_EPackage( 25638private pattern mayInRelationinterface_reference_FunctionalData(
28507 problem:LogicProblem, interpretation:PartialInterpretation, 25639 problem:LogicProblem, interpretation:PartialInterpretation,
28508 source: DefinedElement, target:DefinedElement) 25640 source: DefinedElement, target:DefinedElement)
28509{ 25641{
@@ -28512,11 +25644,11 @@ private pattern mayInRelationeSuperPackage_reference_EPackage(
28512 find mayExist(problem, interpretation, source); 25644 find mayExist(problem, interpretation, source);
28513 find mayExist(problem, interpretation, target); 25645 find mayExist(problem, interpretation, target);
28514 // Type consistency 25646 // Type consistency
28515 find mayInstanceOfEPackage_class(problem,interpretation,source); 25647 find mayInstanceOfFunctionalData_class(problem,interpretation,source);
28516 find mayInstanceOfEPackage_class(problem,interpretation,target); 25648 find mayInstanceOfFunctionalInterface_class(problem,interpretation,target);
28517 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 25649 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
28518 // the upper bound of the multiplicity should be considered. 25650 // the upper bound of the multiplicity should be considered.
28519 numberOfExistingReferences == count find mustInRelationeSuperPackage_reference_EPackage(problem,interpretation,source,_); 25651 numberOfExistingReferences == count find mustInRelationinterface_reference_FunctionalData(problem,interpretation,source,_);
28520 check(numberOfExistingReferences < 1); 25652 check(numberOfExistingReferences < 1);
28521 // The eOpposite of the reference is containment, then a referene cannot be created if 25653 // The eOpposite of the reference is containment, then a referene cannot be created if
28522 // 1. Multiple parents 25654 // 1. Multiple parents
@@ -28524,26 +25656,26 @@ private pattern mayInRelationeSuperPackage_reference_EPackage(
28524 // 2. Circle in the containment hierarchy 25656 // 2. Circle in the containment hierarchy
28525 neg find mustTransitiveContains(source,target); 25657 neg find mustTransitiveContains(source,target);
28526} or { 25658} or {
28527 find mustInRelationeSuperPackage_reference_EPackage(problem,interpretation,source,target); 25659 find mustInRelationinterface_reference_FunctionalData(problem,interpretation,source,target);
28528} 25660}
28529/** 25661/**
28530 * Matcher for detecting tuples t where []eOperation reference EParameter(source,target) 25662 * Matcher for detecting tuples t where []type attribute Function(source,target)
28531 */ 25663 */
28532private pattern mustInRelationeOperation_reference_EParameter( 25664private pattern mustInRelationtype_attribute_Function(
28533 problem:LogicProblem, interpretation:PartialInterpretation, 25665 problem:LogicProblem, interpretation:PartialInterpretation,
28534 source: DefinedElement, target:DefinedElement) 25666 source: DefinedElement, target:DefinedElement)
28535{ 25667{
28536 find interpretation(problem,interpretation); 25668 find interpretation(problem,interpretation);
28537 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 25669 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
28538 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eOperation reference EParameter"); 25670 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function");
28539 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 25671 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
28540 BinaryElementRelationLink.param1(link,source); 25672 BinaryElementRelationLink.param1(link,source);
28541 BinaryElementRelationLink.param2(link,target); 25673 BinaryElementRelationLink.param2(link,target);
28542} 25674}
28543/** 25675/**
28544 * Matcher for detecting tuples t where <>eOperation reference EParameter(source,target) 25676 * Matcher for detecting tuples t where <>type attribute Function(source,target)
28545 */ 25677 */
28546private pattern mayInRelationeOperation_reference_EParameter( 25678private pattern mayInRelationtype_attribute_Function(
28547 problem:LogicProblem, interpretation:PartialInterpretation, 25679 problem:LogicProblem, interpretation:PartialInterpretation,
28548 source: DefinedElement, target:DefinedElement) 25680 source: DefinedElement, target:DefinedElement)
28549{ 25681{
@@ -28552,1001 +25684,1060 @@ private pattern mayInRelationeOperation_reference_EParameter(
28552 find mayExist(problem, interpretation, source); 25684 find mayExist(problem, interpretation, source);
28553 find mayExist(problem, interpretation, target); 25685 find mayExist(problem, interpretation, target);
28554 // Type consistency 25686 // Type consistency
28555 find mayInstanceOfEParameter_class(problem,interpretation,source); 25687 find mayInstanceOfFunction_class(problem,interpretation,source);
28556 find mayInstanceOfEOperation_class(problem,interpretation,target); 25688 find mayInstanceOfFunctionType_enum(problem,interpretation,target);
28557 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 25689 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
28558 // the upper bound of the multiplicity should be considered. 25690 // the upper bound of the multiplicity should be considered.
28559 numberOfExistingReferences == count find mustInRelationeOperation_reference_EParameter(problem,interpretation,source,_); 25691 numberOfExistingReferences == count find mustInRelationtype_attribute_Function(problem,interpretation,source,_);
28560 check(numberOfExistingReferences < 1); 25692 check(numberOfExistingReferences < 1);
28561 // The eOpposite of the reference is containment, then a referene cannot be created if
28562 // 1. Multiple parents
28563 neg find mustContains4(problem,interpretation,source,_);
28564 // 2. Circle in the containment hierarchy
28565 neg find mustTransitiveContains(source,target);
28566} or { 25693} or {
28567 find mustInRelationeOperation_reference_EParameter(problem,interpretation,source,target); 25694 find mustInRelationtype_attribute_Function(problem,interpretation,source,target);
28568} 25695}
28569/** 25696
28570 * Matcher for detecting tuples t where []eOpposite reference EReference(source,target) 25697//////////
28571 */ 25698// 1.3 Relation Definition Indexers
28572private pattern mustInRelationeOpposite_reference_EReference( 25699//////////
28573 problem:LogicProblem, interpretation:PartialInterpretation, 25700
28574 source: DefinedElement, target:DefinedElement) 25701//////////
28575{ 25702// 1.4 Containment Indexer
25703//////////
25704private pattern mustContains2(source: DefinedElement, target: DefinedElement) {
25705 find mustContains4(_,_,source,target);
25706}
25707
25708private pattern mustContains4(problem:LogicProblem, interpretation:PartialInterpretation,
25709 source: DefinedElement, target: DefinedElement)
25710 { find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,source,target); }or
25711
25712 { find mustInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,source,target); }or
25713
25714 { find mustInRelationsubElements_reference_Function(problem,interpretation,source,target); }or
25715
25716 { find mustInRelationdata_reference_FunctionalInterface(problem,interpretation,source,target); }or
25717
25718 { find mustInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,source,target); }or
25719
25720 { find mustInRelationterminator_reference_FunctionalData(problem,interpretation,source,target); }
25721
25722private pattern mustTransitiveContains(source,target) {
25723 find mustContains2+(source,target);
25724}
25725
25726//////////
25727// 2. Invalidation Indexers
25728//////////
25729// 2.1 Invalidated by WF Queries
25730//////////
25731
25732//////////
25733// 3. Unfinishedness Indexers
25734//////////
25735// 3.1 Unfinishedness Measured by Multiplicity
25736//////////
25737pattern unfinishedLowerMultiplicity_model_reference_FunctionalElement(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
28576 find interpretation(problem,interpretation); 25738 find interpretation(problem,interpretation);
28577 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 25739 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
28578 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eOpposite reference EReference"); 25740 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement");
28579 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 25741 find mustInstanceOfFunctionalElement_class(problem,interpretation,object);
28580 BinaryElementRelationLink.param1(link,source); 25742 numberOfExistingReferences == count find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,object,_);
28581 BinaryElementRelationLink.param2(link,target); 25743 check(numberOfExistingReferences < 1);
25744 missingMultiplicity == eval(1-numberOfExistingReferences);
28582} 25745}
28583/** 25746pattern unfinishedLowerMultiplicity_to_reference_InformationLink(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
28584 * Matcher for detecting tuples t where <>eOpposite reference EReference(source,target)
28585 */
28586private pattern mayInRelationeOpposite_reference_EReference(
28587 problem:LogicProblem, interpretation:PartialInterpretation,
28588 source: DefinedElement, target:DefinedElement)
28589{
28590 find interpretation(problem,interpretation); 25747 find interpretation(problem,interpretation);
28591 // The two endpoint of the link have to exist 25748 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
28592 find mayExist(problem, interpretation, source); 25749 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"to reference InformationLink");
28593 find mayExist(problem, interpretation, target); 25750 find mustInstanceOfInformationLink_class(problem,interpretation,object);
28594 // Type consistency 25751 numberOfExistingReferences == count find mustInRelationto_reference_InformationLink(problem,interpretation,object,_);
28595 find mayInstanceOfEReference_class(problem,interpretation,source);
28596 find mayInstanceOfEReference_class(problem,interpretation,target);
28597 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
28598 // the upper bound of the multiplicity should be considered.
28599 numberOfExistingReferences == count find mustInRelationeOpposite_reference_EReference(problem,interpretation,source,_);
28600 check(numberOfExistingReferences < 1); 25752 check(numberOfExistingReferences < 1);
28601} or { 25753 missingMultiplicity == eval(1-numberOfExistingReferences);
28602 find mustInRelationeOpposite_reference_EReference(problem,interpretation,source,target);
28603} 25754}
28604/** 25755pattern unfinishedLowerMultiplicity_type_attribute_Function(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
28605 * Matcher for detecting tuples t where []eReferenceType reference EReference(source,target)
28606 */
28607private pattern mustInRelationeReferenceType_reference_EReference(
28608 problem:LogicProblem, interpretation:PartialInterpretation,
28609 source: DefinedElement, target:DefinedElement)
28610{
28611 find interpretation(problem,interpretation); 25756 find interpretation(problem,interpretation);
28612 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 25757 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
28613 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eReferenceType reference EReference"); 25758 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function");
28614 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 25759 find mustInstanceOfFunction_class(problem,interpretation,object);
28615 BinaryElementRelationLink.param1(link,source); 25760 numberOfExistingReferences == count find mustInRelationtype_attribute_Function(problem,interpretation,object,_);
28616 BinaryElementRelationLink.param2(link,target); 25761 check(numberOfExistingReferences < 1);
25762 missingMultiplicity == eval(1-numberOfExistingReferences);
28617} 25763}
28618/** 25764
28619 * Matcher for detecting tuples t where <>eReferenceType reference EReference(source,target) 25765//////////
28620 */ 25766// 3.2 Unfinishedness Measured by WF Queries
28621private pattern mayInRelationeReferenceType_reference_EReference( 25767//////////
28622 problem:LogicProblem, interpretation:PartialInterpretation, 25768
28623 source: DefinedElement, target:DefinedElement) 25769//////////
25770// 4. Refinement Indexers
25771//////////
25772// 4.1 Object constructors
25773//////////
25774private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation)
28624{ 25775{
28625 find interpretation(problem,interpretation); 25776 find interpretation(problem,interpretation);
28626 // The two endpoint of the link have to exist 25777 find mustInstanceOfFunctionalInterface_class(problem,interpretation,root);
28627 find mayExist(problem, interpretation, source); 25778 find mustExist(problem, interpretation, root);
28628 find mayExist(problem, interpretation, target); 25779}or{
28629 // Type consistency 25780 find interpretation(problem,interpretation);
28630 find mayInstanceOfEReference_class(problem,interpretation,source); 25781 find mustInstanceOfInformationLink_class(problem,interpretation,root);
28631 find mayInstanceOfEClass_class(problem,interpretation,target); 25782 find mustExist(problem, interpretation, root);
28632 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 25783}or{
28633 // the upper bound of the multiplicity should be considered. 25784 find interpretation(problem,interpretation);
28634 numberOfExistingReferences == count find mustInRelationeReferenceType_reference_EReference(problem,interpretation,source,_); 25785 find mustInstanceOfFunctionalElement_class(problem,interpretation,root);
28635 check(numberOfExistingReferences < 1); 25786 find mustExist(problem, interpretation, root);
28636} or { 25787}or{
28637 find mustInRelationeReferenceType_reference_EReference(problem,interpretation,source,target); 25788 find interpretation(problem,interpretation);
25789 find mustInstanceOfFAMTerminator_class(problem,interpretation,root);
25790 find mustExist(problem, interpretation, root);
25791}or{
25792 find interpretation(problem,interpretation);
25793 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,root);
25794 find mustExist(problem, interpretation, root);
25795}or{
25796 find interpretation(problem,interpretation);
25797 find mustInstanceOfFunctionalInput_class(problem,interpretation,root);
25798 find mustExist(problem, interpretation, root);
25799}or{
25800 find interpretation(problem,interpretation);
25801 find mustInstanceOfFunction_class(problem,interpretation,root);
25802 find mustExist(problem, interpretation, root);
25803}or{
25804 find interpretation(problem,interpretation);
25805 find mustInstanceOfFunctionalOutput_class(problem,interpretation,root);
25806 find mustExist(problem, interpretation, root);
25807}or{
25808 find interpretation(problem,interpretation);
25809 find mustInstanceOfFunctionalData_class(problem,interpretation,root);
25810 find mustExist(problem, interpretation, root);
25811}or{
25812 find interpretation(problem,interpretation);
25813 find mustInstanceOfFunctionalArchitectureModel_class_DefinedPart(problem,interpretation,root);
25814 find mustExist(problem, interpretation, root);
25815}or{
25816 find interpretation(problem,interpretation);
25817 find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,root);
25818 find mustExist(problem, interpretation, root);
28638} 25819}
28639/** 25820pattern createObject_FunctionalOutput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData(
28640 * Matcher for detecting tuples t where []eKeys reference EReference(source,target)
28641 */
28642private pattern mustInRelationeKeys_reference_EReference(
28643 problem:LogicProblem, interpretation:PartialInterpretation, 25821 problem:LogicProblem, interpretation:PartialInterpretation,
28644 source: DefinedElement, target:DefinedElement) 25822 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
25823 container:DefinedElement)
28645{ 25824{
28646 find interpretation(problem,interpretation); 25825 find interpretation(problem,interpretation);
28647 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 25826 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
28648 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eKeys reference EReference"); 25827 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class");
28649 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 25828 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
28650 BinaryElementRelationLink.param1(link,source); 25829 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface");
28651 BinaryElementRelationLink.param2(link,target); 25830 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
25831 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData");
25832 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container);
25833 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject);
25834 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject);
25835 find mustExist(problem, interpretation, container);
25836 neg find mustExist(problem, interpretation, newObject);
28652} 25837}
28653/** 25838pattern createObject_FunctionalOutput_class(
28654 * Matcher for detecting tuples t where <>eKeys reference EReference(source,target)
28655 */
28656private pattern mayInRelationeKeys_reference_EReference(
28657 problem:LogicProblem, interpretation:PartialInterpretation, 25839 problem:LogicProblem, interpretation:PartialInterpretation,
28658 source: DefinedElement, target:DefinedElement) 25840 typeInterpretation:PartialComplexTypeInterpretation)
28659{ 25841{
28660 find interpretation(problem,interpretation); 25842 find interpretation(problem,interpretation);
28661 // The two endpoint of the link have to exist 25843 neg find hasElementInContainment(problem,interpretation);
28662 find mayExist(problem, interpretation, source); 25844 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
28663 find mayExist(problem, interpretation, target); 25845 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class");
28664 // Type consistency 25846 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject);
28665 find mayInstanceOfEReference_class(problem,interpretation,source); 25847 find mayExist(problem, interpretation, newObject);
28666 find mayInstanceOfEAttribute_class(problem,interpretation,target); 25848 neg find mustExist(problem, interpretation, newObject);
28667} or {
28668 find mustInRelationeKeys_reference_EReference(problem,interpretation,source,target);
28669} 25849}
28670/** 25850pattern createObject_Function_class_by_rootElements_reference_FunctionalArchitectureModel(
28671 * Matcher for detecting tuples t where []eContainingClass reference EStructuralFeature(source,target)
28672 */
28673private pattern mustInRelationeContainingClass_reference_EStructuralFeature(
28674 problem:LogicProblem, interpretation:PartialInterpretation, 25851 problem:LogicProblem, interpretation:PartialInterpretation,
28675 source: DefinedElement, target:DefinedElement) 25852 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
25853 container:DefinedElement)
28676{ 25854{
28677 find interpretation(problem,interpretation); 25855 find interpretation(problem,interpretation);
28678 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 25856 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
28679 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eContainingClass reference EStructuralFeature"); 25857 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class");
28680 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 25858 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
28681 BinaryElementRelationLink.param1(link,source); 25859 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"rootElements reference FunctionalArchitectureModel");
28682 BinaryElementRelationLink.param2(link,target); 25860 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,container);
25861 find mayInstanceOfFunction_class(problem,interpretation,newObject);
25862 find mayInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,container,newObject);
25863 find mustExist(problem, interpretation, container);
25864 neg find mustExist(problem, interpretation, newObject);
28683} 25865}
28684/** 25866pattern createObject_Function_class_by_subElements_reference_Function_with_parent_reference_FunctionalElement(
28685 * Matcher for detecting tuples t where <>eContainingClass reference EStructuralFeature(source,target)
28686 */
28687private pattern mayInRelationeContainingClass_reference_EStructuralFeature(
28688 problem:LogicProblem, interpretation:PartialInterpretation, 25867 problem:LogicProblem, interpretation:PartialInterpretation,
28689 source: DefinedElement, target:DefinedElement) 25868 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
25869 container:DefinedElement)
28690{ 25870{
28691 find interpretation(problem,interpretation); 25871 find interpretation(problem,interpretation);
28692 // The two endpoint of the link have to exist 25872 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
28693 find mayExist(problem, interpretation, source); 25873 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class");
28694 find mayExist(problem, interpretation, target); 25874 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
28695 // Type consistency 25875 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"subElements reference Function");
28696 find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); 25876 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
28697 find mayInstanceOfEClass_class(problem,interpretation,target); 25877 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"parent reference FunctionalElement");
28698 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 25878 find mustInstanceOfFunction_class(problem,interpretation,container);
28699 // the upper bound of the multiplicity should be considered. 25879 find mayInstanceOfFunction_class(problem,interpretation,newObject);
28700 numberOfExistingReferences == count find mustInRelationeContainingClass_reference_EStructuralFeature(problem,interpretation,source,_); 25880 find mayInRelationsubElements_reference_Function(problem,interpretation,container,newObject);
28701 check(numberOfExistingReferences < 1); 25881 find mustExist(problem, interpretation, container);
28702 // The eOpposite of the reference is containment, then a referene cannot be created if 25882 neg find mustExist(problem, interpretation, newObject);
28703 // 1. Multiple parents
28704 neg find mustContains4(problem,interpretation,source,_);
28705 // 2. Circle in the containment hierarchy
28706 neg find mustTransitiveContains(source,target);
28707} or {
28708 find mustInRelationeContainingClass_reference_EStructuralFeature(problem,interpretation,source,target);
28709} 25883}
28710/** 25884pattern createObject_Function_class(
28711 * Matcher for detecting tuples t where []eType reference ETypedElement(source,target)
28712 */
28713private pattern mustInRelationeType_reference_ETypedElement(
28714 problem:LogicProblem, interpretation:PartialInterpretation, 25885 problem:LogicProblem, interpretation:PartialInterpretation,
28715 source: DefinedElement, target:DefinedElement) 25886 typeInterpretation:PartialComplexTypeInterpretation)
28716{ 25887{
28717 find interpretation(problem,interpretation); 25888 find interpretation(problem,interpretation);
28718 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 25889 neg find hasElementInContainment(problem,interpretation);
28719 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eType reference ETypedElement"); 25890 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
28720 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 25891 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class");
28721 BinaryElementRelationLink.param1(link,source); 25892 find mayInstanceOfFunction_class(problem,interpretation,newObject);
28722 BinaryElementRelationLink.param2(link,target); 25893 find mayExist(problem, interpretation, newObject);
25894 neg find mustExist(problem, interpretation, newObject);
28723} 25895}
28724/** 25896pattern createObject_FunctionalInterface_class_by_interface_reference_FunctionalElement_with_element_reference_FunctionalInterface(
28725 * Matcher for detecting tuples t where <>eType reference ETypedElement(source,target)
28726 */
28727private pattern mayInRelationeType_reference_ETypedElement(
28728 problem:LogicProblem, interpretation:PartialInterpretation, 25897 problem:LogicProblem, interpretation:PartialInterpretation,
28729 source: DefinedElement, target:DefinedElement) 25898 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
25899 container:DefinedElement)
28730{ 25900{
28731 find interpretation(problem,interpretation); 25901 find interpretation(problem,interpretation);
28732 // The two endpoint of the link have to exist 25902 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
28733 find mayExist(problem, interpretation, source); 25903 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
28734 find mayExist(problem, interpretation, target); 25904 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
28735 // Type consistency 25905 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"interface reference FunctionalElement");
28736 find mayInstanceOfETypedElement_class(problem,interpretation,source); 25906 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
28737 find mayInstanceOfEClassifier_class(problem,interpretation,target); 25907 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"element reference FunctionalInterface");
28738 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 25908 find mustInstanceOfFunctionalElement_class(problem,interpretation,container);
28739 // the upper bound of the multiplicity should be considered. 25909 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
28740 numberOfExistingReferences == count find mustInRelationeType_reference_ETypedElement(problem,interpretation,source,_); 25910 find mayInRelationinterface_reference_FunctionalElement(problem,interpretation,container,newObject);
28741 check(numberOfExistingReferences < 1); 25911 find mustExist(problem, interpretation, container);
28742} or { 25912 neg find mustExist(problem, interpretation, newObject);
28743 find mustInRelationeType_reference_ETypedElement(problem,interpretation,source,target);
28744} 25913}
28745/** 25914pattern createObject_FunctionalInterface_class(
28746 * Matcher for detecting tuples t where []eGenericType reference ETypedElement(source,target)
28747 */
28748private pattern mustInRelationeGenericType_reference_ETypedElement(
28749 problem:LogicProblem, interpretation:PartialInterpretation, 25915 problem:LogicProblem, interpretation:PartialInterpretation,
28750 source: DefinedElement, target:DefinedElement) 25916 typeInterpretation:PartialComplexTypeInterpretation)
28751{ 25917{
28752 find interpretation(problem,interpretation); 25918 find interpretation(problem,interpretation);
28753 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 25919 neg find hasElementInContainment(problem,interpretation);
28754 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eGenericType reference ETypedElement"); 25920 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
28755 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 25921 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
28756 BinaryElementRelationLink.param1(link,source); 25922 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
28757 BinaryElementRelationLink.param2(link,target); 25923 find mayExist(problem, interpretation, newObject);
25924 neg find mustExist(problem, interpretation, newObject);
28758} 25925}
28759/** 25926pattern createObject_FunctionalArchitectureModel_class_UndefinedPart(
28760 * Matcher for detecting tuples t where <>eGenericType reference ETypedElement(source,target)
28761 */
28762private pattern mayInRelationeGenericType_reference_ETypedElement(
28763 problem:LogicProblem, interpretation:PartialInterpretation, 25927 problem:LogicProblem, interpretation:PartialInterpretation,
28764 source: DefinedElement, target:DefinedElement) 25928 typeInterpretation:PartialComplexTypeInterpretation)
28765{ 25929{
28766 find interpretation(problem,interpretation); 25930 find interpretation(problem,interpretation);
28767 // The two endpoint of the link have to exist 25931 neg find hasElementInContainment(problem,interpretation);
28768 find mayExist(problem, interpretation, source); 25932 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
28769 find mayExist(problem, interpretation, target); 25933 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalArchitectureModel class UndefinedPart");
28770 // Type consistency 25934 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,newObject);
28771 find mayInstanceOfETypedElement_class(problem,interpretation,source); 25935 find mayExist(problem, interpretation, newObject);
28772 find mayInstanceOfEGenericType_class(problem,interpretation,target); 25936 neg find mustExist(problem, interpretation, newObject);
28773 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
28774 // the upper bound of the multiplicity should be considered.
28775 numberOfExistingReferences == count find mustInRelationeGenericType_reference_ETypedElement(problem,interpretation,source,_);
28776 check(numberOfExistingReferences < 1);
28777 // The reference is containment, then a new reference cannot be create if:
28778 // 1. Multiple parents
28779 neg find mustContains4(problem,interpretation,_,target);
28780 // 2. Circle in the containment hierarchy
28781 neg find mustTransitiveContains(source,target);
28782} or {
28783 find mustInRelationeGenericType_reference_ETypedElement(problem,interpretation,source,target);
28784} 25937}
28785/** 25938pattern createObject_FunctionalInput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData(
28786 * Matcher for detecting tuples t where []eUpperBound reference EGenericType(source,target)
28787 */
28788private pattern mustInRelationeUpperBound_reference_EGenericType(
28789 problem:LogicProblem, interpretation:PartialInterpretation, 25939 problem:LogicProblem, interpretation:PartialInterpretation,
28790 source: DefinedElement, target:DefinedElement) 25940 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
25941 container:DefinedElement)
28791{ 25942{
28792 find interpretation(problem,interpretation); 25943 find interpretation(problem,interpretation);
28793 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 25944 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
28794 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eUpperBound reference EGenericType"); 25945 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class");
28795 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 25946 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
28796 BinaryElementRelationLink.param1(link,source); 25947 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface");
28797 BinaryElementRelationLink.param2(link,target); 25948 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
25949 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData");
25950 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container);
25951 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
25952 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject);
25953 find mustExist(problem, interpretation, container);
25954 neg find mustExist(problem, interpretation, newObject);
28798} 25955}
28799/** 25956pattern createObject_FunctionalInput_class(
28800 * Matcher for detecting tuples t where <>eUpperBound reference EGenericType(source,target)
28801 */
28802private pattern mayInRelationeUpperBound_reference_EGenericType(
28803 problem:LogicProblem, interpretation:PartialInterpretation, 25957 problem:LogicProblem, interpretation:PartialInterpretation,
28804 source: DefinedElement, target:DefinedElement) 25958 typeInterpretation:PartialComplexTypeInterpretation)
28805{ 25959{
28806 find interpretation(problem,interpretation); 25960 find interpretation(problem,interpretation);
28807 // The two endpoint of the link have to exist 25961 neg find hasElementInContainment(problem,interpretation);
28808 find mayExist(problem, interpretation, source); 25962 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
28809 find mayExist(problem, interpretation, target); 25963 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class");
28810 // Type consistency 25964 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
28811 find mayInstanceOfEGenericType_class(problem,interpretation,source); 25965 find mayExist(problem, interpretation, newObject);
28812 find mayInstanceOfEGenericType_class(problem,interpretation,target); 25966 neg find mustExist(problem, interpretation, newObject);
28813 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
28814 // the upper bound of the multiplicity should be considered.
28815 numberOfExistingReferences == count find mustInRelationeUpperBound_reference_EGenericType(problem,interpretation,source,_);
28816 check(numberOfExistingReferences < 1);
28817 // The reference is containment, then a new reference cannot be create if:
28818 // 1. Multiple parents
28819 neg find mustContains4(problem,interpretation,_,target);
28820 // 2. Circle in the containment hierarchy
28821 neg find mustTransitiveContains(source,target);
28822} or {
28823 find mustInRelationeUpperBound_reference_EGenericType(problem,interpretation,source,target);
28824} 25967}
28825/** 25968pattern createObject_FAMTerminator_class_by_terminator_reference_FunctionalData_with_data_reference_FAMTerminator(
28826 * Matcher for detecting tuples t where []eTypeArguments reference EGenericType(source,target)
28827 */
28828private pattern mustInRelationeTypeArguments_reference_EGenericType(
28829 problem:LogicProblem, interpretation:PartialInterpretation, 25969 problem:LogicProblem, interpretation:PartialInterpretation,
28830 source: DefinedElement, target:DefinedElement) 25970 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
25971 container:DefinedElement)
28831{ 25972{
28832 find interpretation(problem,interpretation); 25973 find interpretation(problem,interpretation);
28833 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 25974 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
28834 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eTypeArguments reference EGenericType"); 25975 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class");
28835 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 25976 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
28836 BinaryElementRelationLink.param1(link,source); 25977 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"terminator reference FunctionalData");
28837 BinaryElementRelationLink.param2(link,target); 25978 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
25979 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"data reference FAMTerminator");
25980 find mustInstanceOfFunctionalData_class(problem,interpretation,container);
25981 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject);
25982 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,container,newObject);
25983 find mustExist(problem, interpretation, container);
25984 neg find mustExist(problem, interpretation, newObject);
28838} 25985}
28839/** 25986pattern createObject_FAMTerminator_class(
28840 * Matcher for detecting tuples t where <>eTypeArguments reference EGenericType(source,target)
28841 */
28842private pattern mayInRelationeTypeArguments_reference_EGenericType(
28843 problem:LogicProblem, interpretation:PartialInterpretation, 25987 problem:LogicProblem, interpretation:PartialInterpretation,
28844 source: DefinedElement, target:DefinedElement) 25988 typeInterpretation:PartialComplexTypeInterpretation)
28845{ 25989{
28846 find interpretation(problem,interpretation); 25990 find interpretation(problem,interpretation);
28847 // The two endpoint of the link have to exist 25991 neg find hasElementInContainment(problem,interpretation);
28848 find mayExist(problem, interpretation, source); 25992 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
28849 find mayExist(problem, interpretation, target); 25993 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class");
28850 // Type consistency 25994 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject);
28851 find mayInstanceOfEGenericType_class(problem,interpretation,source); 25995 find mayExist(problem, interpretation, newObject);
28852 find mayInstanceOfEGenericType_class(problem,interpretation,target); 25996 neg find mustExist(problem, interpretation, newObject);
28853 // The reference is containment, then a new reference cannot be create if:
28854 // 1. Multiple parents
28855 neg find mustContains4(problem,interpretation,_,target);
28856 // 2. Circle in the containment hierarchy
28857 neg find mustTransitiveContains(source,target);
28858} or {
28859 find mustInRelationeTypeArguments_reference_EGenericType(problem,interpretation,source,target);
28860} 25997}
28861/** 25998pattern createObject_InformationLink_class_by_outgoingLinks_reference_FunctionalOutput_with_from_reference_InformationLink(
28862 * Matcher for detecting tuples t where []eRawType reference EGenericType(source,target)
28863 */
28864private pattern mustInRelationeRawType_reference_EGenericType(
28865 problem:LogicProblem, interpretation:PartialInterpretation, 25999 problem:LogicProblem, interpretation:PartialInterpretation,
28866 source: DefinedElement, target:DefinedElement) 26000 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
26001 container:DefinedElement)
28867{ 26002{
28868 find interpretation(problem,interpretation); 26003 find interpretation(problem,interpretation);
28869 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 26004 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
28870 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eRawType reference EGenericType"); 26005 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class");
28871 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 26006 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
28872 BinaryElementRelationLink.param1(link,source); 26007 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"outgoingLinks reference FunctionalOutput");
28873 BinaryElementRelationLink.param2(link,target); 26008 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
26009 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"from reference InformationLink");
26010 find mustInstanceOfFunctionalOutput_class(problem,interpretation,container);
26011 find mayInstanceOfInformationLink_class(problem,interpretation,newObject);
26012 find mayInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,container,newObject);
26013 find mustExist(problem, interpretation, container);
26014 neg find mustExist(problem, interpretation, newObject);
28874} 26015}
28875/** 26016pattern createObject_InformationLink_class(
28876 * Matcher for detecting tuples t where <>eRawType reference EGenericType(source,target)
28877 */
28878private pattern mayInRelationeRawType_reference_EGenericType(
28879 problem:LogicProblem, interpretation:PartialInterpretation, 26017 problem:LogicProblem, interpretation:PartialInterpretation,
28880 source: DefinedElement, target:DefinedElement) 26018 typeInterpretation:PartialComplexTypeInterpretation)
28881{ 26019{
28882 find interpretation(problem,interpretation); 26020 find interpretation(problem,interpretation);
28883 // The two endpoint of the link have to exist 26021 neg find hasElementInContainment(problem,interpretation);
28884 find mayExist(problem, interpretation, source); 26022 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
28885 find mayExist(problem, interpretation, target); 26023 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class");
28886 // Type consistency 26024 find mayInstanceOfInformationLink_class(problem,interpretation,newObject);
28887 find mayInstanceOfEGenericType_class(problem,interpretation,source); 26025 find mayExist(problem, interpretation, newObject);
28888 find mayInstanceOfEClassifier_class(problem,interpretation,target); 26026 neg find mustExist(problem, interpretation, newObject);
28889 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
28890 // the upper bound of the multiplicity should be considered.
28891 numberOfExistingReferences == count find mustInRelationeRawType_reference_EGenericType(problem,interpretation,source,_);
28892 check(numberOfExistingReferences < 1);
28893} or {
28894 find mustInRelationeRawType_reference_EGenericType(problem,interpretation,source,target);
28895} 26027}
28896/** 26028
28897 * Matcher for detecting tuples t where []eLowerBound reference EGenericType(source,target) 26029//////////
28898 */ 26030// 4.2 Type refinement
28899private pattern mustInRelationeLowerBound_reference_EGenericType( 26031//////////
28900 problem:LogicProblem, interpretation:PartialInterpretation, 26032pattern refineTypeTo_FunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
28901 source: DefinedElement, target:DefinedElement)
28902{
28903 find interpretation(problem,interpretation); 26033 find interpretation(problem,interpretation);
28904 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 26034 PartialInterpretation.newElements(interpretation,element);
28905 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eLowerBound reference EGenericType"); 26035 find mayInstanceOfFunctionalOutput_class(problem,interpretation,element);
28906 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 26036 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
28907 BinaryElementRelationLink.param1(link,source); 26037 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
28908 BinaryElementRelationLink.param2(link,target); 26038 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
26039 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
26040 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
26041 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
26042 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
28909} 26043}
28910/** 26044pattern refineTypeTo_Function_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
28911 * Matcher for detecting tuples t where <>eLowerBound reference EGenericType(source,target)
28912 */
28913private pattern mayInRelationeLowerBound_reference_EGenericType(
28914 problem:LogicProblem, interpretation:PartialInterpretation,
28915 source: DefinedElement, target:DefinedElement)
28916{
28917 find interpretation(problem,interpretation); 26045 find interpretation(problem,interpretation);
28918 // The two endpoint of the link have to exist 26046 PartialInterpretation.newElements(interpretation,element);
28919 find mayExist(problem, interpretation, source); 26047 find mayInstanceOfFunction_class(problem,interpretation,element);
28920 find mayExist(problem, interpretation, target); 26048 neg find mustInstanceOfFunction_class(problem,interpretation,element);
28921 // Type consistency 26049 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
28922 find mayInstanceOfEGenericType_class(problem,interpretation,source); 26050 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
28923 find mayInstanceOfEGenericType_class(problem,interpretation,target); 26051 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
28924 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 26052 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
28925 // the upper bound of the multiplicity should be considered. 26053 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
28926 numberOfExistingReferences == count find mustInRelationeLowerBound_reference_EGenericType(problem,interpretation,source,_);
28927 check(numberOfExistingReferences < 1);
28928 // The reference is containment, then a new reference cannot be create if:
28929 // 1. Multiple parents
28930 neg find mustContains4(problem,interpretation,_,target);
28931 // 2. Circle in the containment hierarchy
28932 neg find mustTransitiveContains(source,target);
28933} or {
28934 find mustInRelationeLowerBound_reference_EGenericType(problem,interpretation,source,target);
28935} 26054}
28936/** 26055pattern refineTypeTo_FunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
28937 * Matcher for detecting tuples t where []eTypeParameter reference EGenericType(source,target)
28938 */
28939private pattern mustInRelationeTypeParameter_reference_EGenericType(
28940 problem:LogicProblem, interpretation:PartialInterpretation,
28941 source: DefinedElement, target:DefinedElement)
28942{
28943 find interpretation(problem,interpretation); 26056 find interpretation(problem,interpretation);
28944 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 26057 PartialInterpretation.newElements(interpretation,element);
28945 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eTypeParameter reference EGenericType"); 26058 find mayInstanceOfFunctionalInterface_class(problem,interpretation,element);
28946 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 26059 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
28947 BinaryElementRelationLink.param1(link,source); 26060 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
28948 BinaryElementRelationLink.param2(link,target); 26061 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
26062 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
26063 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
26064 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
28949} 26065}
28950/** 26066pattern refineTypeTo_FunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
28951 * Matcher for detecting tuples t where <>eTypeParameter reference EGenericType(source,target)
28952 */
28953private pattern mayInRelationeTypeParameter_reference_EGenericType(
28954 problem:LogicProblem, interpretation:PartialInterpretation,
28955 source: DefinedElement, target:DefinedElement)
28956{
28957 find interpretation(problem,interpretation); 26067 find interpretation(problem,interpretation);
28958 // The two endpoint of the link have to exist 26068 PartialInterpretation.newElements(interpretation,element);
28959 find mayExist(problem, interpretation, source); 26069 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
28960 find mayExist(problem, interpretation, target); 26070 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
28961 // Type consistency 26071 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
28962 find mayInstanceOfEGenericType_class(problem,interpretation,source); 26072 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
28963 find mayInstanceOfETypeParameter_class(problem,interpretation,target); 26073 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
28964 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 26074 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
28965 // the upper bound of the multiplicity should be considered. 26075 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
28966 numberOfExistingReferences == count find mustInRelationeTypeParameter_reference_EGenericType(problem,interpretation,source,_);
28967 check(numberOfExistingReferences < 1);
28968} or {
28969 find mustInRelationeTypeParameter_reference_EGenericType(problem,interpretation,source,target);
28970} 26076}
28971/** 26077pattern refineTypeTo_FunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
28972 * Matcher for detecting tuples t where []eClassifier reference EGenericType(source,target)
28973 */
28974private pattern mustInRelationeClassifier_reference_EGenericType(
28975 problem:LogicProblem, interpretation:PartialInterpretation,
28976 source: DefinedElement, target:DefinedElement)
28977{
28978 find interpretation(problem,interpretation); 26078 find interpretation(problem,interpretation);
28979 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 26079 PartialInterpretation.newElements(interpretation,element);
28980 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eClassifier reference EGenericType"); 26080 find mayInstanceOfFunctionalInput_class(problem,interpretation,element);
28981 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 26081 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
28982 BinaryElementRelationLink.param1(link,source); 26082 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
28983 BinaryElementRelationLink.param2(link,target); 26083 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
26084 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
26085 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
26086 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
26087 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
28984} 26088}
28985/** 26089pattern refineTypeTo_FAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
28986 * Matcher for detecting tuples t where <>eClassifier reference EGenericType(source,target)
28987 */
28988private pattern mayInRelationeClassifier_reference_EGenericType(
28989 problem:LogicProblem, interpretation:PartialInterpretation,
28990 source: DefinedElement, target:DefinedElement)
28991{
28992 find interpretation(problem,interpretation); 26090 find interpretation(problem,interpretation);
28993 // The two endpoint of the link have to exist 26091 PartialInterpretation.newElements(interpretation,element);
28994 find mayExist(problem, interpretation, source); 26092 find mayInstanceOfFAMTerminator_class(problem,interpretation,element);
28995 find mayExist(problem, interpretation, target); 26093 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
28996 // Type consistency 26094 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
28997 find mayInstanceOfEGenericType_class(problem,interpretation,source); 26095 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
28998 find mayInstanceOfEClassifier_class(problem,interpretation,target); 26096 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
28999 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 26097 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
29000 // the upper bound of the multiplicity should be considered. 26098 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
29001 numberOfExistingReferences == count find mustInRelationeClassifier_reference_EGenericType(problem,interpretation,source,_);
29002 check(numberOfExistingReferences < 1);
29003} or {
29004 find mustInRelationeClassifier_reference_EGenericType(problem,interpretation,source,target);
29005} 26099}
29006/** 26100pattern refineTypeTo_InformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
29007 * Matcher for detecting tuples t where []eBounds reference ETypeParameter(source,target) 26101 find interpretation(problem,interpretation);
29008 */ 26102 PartialInterpretation.newElements(interpretation,element);
29009private pattern mustInRelationeBounds_reference_ETypeParameter( 26103 find mayInstanceOfInformationLink_class(problem,interpretation,element);
26104 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
26105 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
26106 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
26107 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
26108 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
26109 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
26110}
26111
26112//////////
26113// 4.3 Relation refinement
26114//////////
26115pattern refineRelation_model_reference_FunctionalElement(
29010 problem:LogicProblem, interpretation:PartialInterpretation, 26116 problem:LogicProblem, interpretation:PartialInterpretation,
29011 source: DefinedElement, target:DefinedElement) 26117 relationIterpretation:PartialRelationInterpretation,
26118 from: DefinedElement, to: DefinedElement)
29012{ 26119{
29013 find interpretation(problem,interpretation); 26120 find interpretation(problem,interpretation);
29014 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 26121 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
29015 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eBounds reference ETypeParameter"); 26122 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement");
29016 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 26123 find mustExist(problem, interpretation, from);
29017 BinaryElementRelationLink.param1(link,source); 26124 find mustExist(problem, interpretation, to);
29018 BinaryElementRelationLink.param2(link,target); 26125 find mustInstanceOfFunctionalElement_class(problem,interpretation,from);
26126 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,to);
26127 find mayInRelationmodel_reference_FunctionalElement(problem,interpretation,from,to);
26128 neg find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,from,to);
29019} 26129}
29020/** 26130pattern refineRelation_IncomingLinks_reference_FunctionalInput_and_to_reference_InformationLink(
29021 * Matcher for detecting tuples t where <>eBounds reference ETypeParameter(source,target)
29022 */
29023private pattern mayInRelationeBounds_reference_ETypeParameter(
29024 problem:LogicProblem, interpretation:PartialInterpretation, 26131 problem:LogicProblem, interpretation:PartialInterpretation,
29025 source: DefinedElement, target:DefinedElement) 26132 relationIterpretation:PartialRelationInterpretation, oppositeInterpretation:PartialRelationInterpretation,
26133 from: DefinedElement, to: DefinedElement)
29026{ 26134{
29027 find interpretation(problem,interpretation); 26135 find interpretation(problem,interpretation);
29028 // The two endpoint of the link have to exist 26136 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
29029 find mayExist(problem, interpretation, source); 26137 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"IncomingLinks reference FunctionalInput");
29030 find mayExist(problem, interpretation, target); 26138 PartialInterpretation.partialrelationinterpretation(interpretation,oppositeInterpretation);
29031 // Type consistency 26139 PartialRelationInterpretation.interpretationOf.name(oppositeInterpretation,"to reference InformationLink");
29032 find mayInstanceOfETypeParameter_class(problem,interpretation,source); 26140 find mustExist(problem, interpretation, from);
29033 find mayInstanceOfEGenericType_class(problem,interpretation,target); 26141 find mustExist(problem, interpretation, to);
29034 // The reference is containment, then a new reference cannot be create if: 26142 find mustInstanceOfFunctionalInput_class(problem,interpretation,from);
29035 // 1. Multiple parents 26143 find mustInstanceOfInformationLink_class(problem,interpretation,to);
29036 neg find mustContains4(problem,interpretation,_,target); 26144 find mayInRelationIncomingLinks_reference_FunctionalInput(problem,interpretation,from,to);
29037 // 2. Circle in the containment hierarchy 26145 neg find mustInRelationIncomingLinks_reference_FunctionalInput(problem,interpretation,from,to);
29038 neg find mustTransitiveContains(source,target);
29039} or {
29040 find mustInRelationeBounds_reference_ETypeParameter(problem,interpretation,source,target);
29041} 26146}
29042/** 26147pattern refineRelation_type_attribute_Function(
29043 * Matcher for detecting tuples t where []iD attribute EAttribute(source,target)
29044 */
29045private pattern mustInRelationiD_attribute_EAttribute(
29046 problem:LogicProblem, interpretation:PartialInterpretation, 26148 problem:LogicProblem, interpretation:PartialInterpretation,
29047 source: DefinedElement, target:DefinedElement) 26149 relationIterpretation:PartialRelationInterpretation,
26150 from: DefinedElement, to: DefinedElement)
29048{ 26151{
29049 find interpretation(problem,interpretation); 26152 find interpretation(problem,interpretation);
29050 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 26153 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
29051 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"iD attribute EAttribute"); 26154 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function");
29052 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 26155 find mustExist(problem, interpretation, from);
29053 BinaryElementRelationLink.param1(link,source); 26156 find mustExist(problem, interpretation, to);
29054 BinaryElementRelationLink.param2(link,target); 26157 find mustInstanceOfFunction_class(problem,interpretation,from);
26158 find mustInstanceOfFunctionType_enum(problem,interpretation,to);
26159 find mayInRelationtype_attribute_Function(problem,interpretation,from,to);
26160 neg find mustInRelationtype_attribute_Function(problem,interpretation,from,to);
29055} 26161}
29056/** 26162import epackage "http://www.bme.hu/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage"
29057 * Matcher for detecting tuples t where <>iD attribute EAttribute(source,target) 26163import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem"
29058 */ 26164import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/language"
29059private pattern mayInRelationiD_attribute_EAttribute( 26165
29060 problem:LogicProblem, interpretation:PartialInterpretation, 26166//////////
29061 source: DefinedElement, target:DefinedElement) 26167// 0. Util
29062{ 26168//////////
26169private pattern interpretation(problem:LogicProblem, interpretation:PartialInterpretation) {
26170 PartialInterpretation.problem(interpretation,problem);
26171}
26172
26173/////////////////////////
26174// 0.1 Existence
26175/////////////////////////
26176private pattern mustExist(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
29063 find interpretation(problem,interpretation); 26177 find interpretation(problem,interpretation);
29064 // The two endpoint of the link have to exist 26178 LogicProblem.elements(problem,element);
29065 find mayExist(problem, interpretation, source);
29066 find mayExist(problem, interpretation, target);
29067 // Type consistency
29068 find mayInstanceOfEAttribute_class(problem,interpretation,source);
29069 BooleanElement(target);
29070 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
29071 // the upper bound of the multiplicity should be considered.
29072 numberOfExistingReferences == count find mustInRelationiD_attribute_EAttribute(problem,interpretation,source,_);
29073 check(numberOfExistingReferences < 1);
29074} or { 26179} or {
29075 find mustInRelationiD_attribute_EAttribute(problem,interpretation,source,target); 26180 find interpretation(problem,interpretation);
26181 PartialInterpretation.newElements(interpretation,element);
29076} 26182}
29077/** 26183
29078 * Matcher for detecting tuples t where []source attribute EAnnotation(source,target) 26184private pattern mayExist(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
29079 */ 26185 find mustExist(problem,interpretation,element);
29080private pattern mustInRelationsource_attribute_EAnnotation( 26186} or {
29081 problem:LogicProblem, interpretation:PartialInterpretation, 26187 find interpretation(problem,interpretation);
29082 source: DefinedElement, target:DefinedElement) 26188 neg find elementCloseWorld(element);
29083{ 26189 PartialInterpretation.openWorldElements(interpretation,element);
26190}
26191
26192private pattern elementCloseWorld(element:DefinedElement) {
26193 PartialInterpretation.openWorldElements(i,element);
26194 PartialInterpretation.maxNewElements(i,0);
26195} or {
26196 Scope.targetTypeInterpretation(scope,interpretation);
26197 PartialTypeInterpratation.elements(interpretation,element);
26198 Scope.maxNewElements(scope,0);
26199}
26200
26201////////////////////////
26202// 0.2 Equivalence
26203////////////////////////
26204pattern mayEquivalent(problem:LogicProblem, interpretation:PartialInterpretation, a: DefinedElement, b: DefinedElement) {
26205 find mayExist(problem,interpretation,a);
26206 find mayExist(problem,interpretation,b);
26207 a == b;
26208}
26209
26210////////////////////////
26211// 0.3 Required Patterns by TypeIndexer
26212////////////////////////
26213private pattern typeInterpretation(problem:LogicProblem, interpretation:PartialInterpretation, type:TypeDeclaration, typeInterpretation:PartialComplexTypeInterpretation) {
29084 find interpretation(problem,interpretation); 26214 find interpretation(problem,interpretation);
29085 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 26215 LogicProblem.types(problem,type);
29086 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"source attribute EAnnotation"); 26216 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
29087 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 26217 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
29088 BinaryElementRelationLink.param1(link,source);
29089 BinaryElementRelationLink.param2(link,target);
29090} 26218}
29091/** 26219
29092 * Matcher for detecting tuples t where <>source attribute EAnnotation(source,target) 26220private pattern directInstanceOf(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement, type:Type) {
29093 */
29094private pattern mayInRelationsource_attribute_EAnnotation(
29095 problem:LogicProblem, interpretation:PartialInterpretation,
29096 source: DefinedElement, target:DefinedElement)
29097{
29098 find interpretation(problem,interpretation); 26221 find interpretation(problem,interpretation);
29099 // The two endpoint of the link have to exist 26222 LogicProblem.types(problem,type);
29100 find mayExist(problem, interpretation, source); 26223 TypeDefinition.elements(type,element);
29101 find mayExist(problem, interpretation, target);
29102 // Type consistency
29103 find mayInstanceOfEAnnotation_class(problem,interpretation,source);
29104 StringElement(target);
29105 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
29106 // the upper bound of the multiplicity should be considered.
29107 numberOfExistingReferences == count find mustInRelationsource_attribute_EAnnotation(problem,interpretation,source,_);
29108 check(numberOfExistingReferences < 1);
29109} or { 26224} or {
29110 find mustInRelationsource_attribute_EAnnotation(problem,interpretation,source,target); 26225 find interpretation(problem,interpretation);
26226 find typeInterpretation(problem,interpretation,type,typeInterpretation);
26227 PartialComplexTypeInterpretation.elements(typeInterpretation,element);
29111} 26228}
26229
26230private pattern isPrimitive(element: PrimitiveElement) {
26231 PrimitiveElement(element);
26232}
26233
26234//////////
26235// 1. Problem-Specific Base Indexers
26236//////////
26237// 1.1 Type Indexers
26238//////////
26239// 1.1.1 primitive Type Indexers
26240//////////
26241
26242//////////
26243// 1.1.2 domain-specific Type Indexers
26244//////////
29112/** 26245/**
29113 * Matcher for detecting tuples t where []abstract attribute EClass(source,target) 26246 * An element must be an instance of type "FunctionalElement class".
29114 */ 26247 */
29115private pattern mustInRelationabstract_attribute_EClass( 26248private pattern mustInstanceOfFunctionalElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
29116 problem:LogicProblem, interpretation:PartialInterpretation, 26249 Type.name(type,"FunctionalElement class");
29117 source: DefinedElement, target:DefinedElement) 26250 find directInstanceOf(problem,interpretation,element,type);
29118{ 26251}
26252private pattern scopeDisallowsNewFunctionalElement_class(problem:LogicProblem, interpretation:PartialInterpretation) {
29119 find interpretation(problem,interpretation); 26253 find interpretation(problem,interpretation);
29120 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 26254 PartialInterpretation.scopes(interpretation,scope);
29121 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"abstract attribute EClass"); 26255 Scope.targetTypeInterpretation(scope,typeInterpretation);
29122 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 26256 Scope.maxNewElements(scope,0);
29123 BinaryElementRelationLink.param1(link,source); 26257 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
29124 BinaryElementRelationLink.param2(link,target); 26258 Type.name(type,"FunctionalElement class");
29125} 26259}
26260
29126/** 26261/**
29127 * Matcher for detecting tuples t where <>abstract attribute EClass(source,target) 26262 * An element may be an instance of type "FunctionalElement class".
29128 */ 26263 */
29129private pattern mayInRelationabstract_attribute_EClass( 26264private pattern mayInstanceOfFunctionalElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
29130 problem:LogicProblem, interpretation:PartialInterpretation,
29131 source: DefinedElement, target:DefinedElement)
29132{ 26265{
29133 find interpretation(problem,interpretation); 26266 find interpretation(problem,interpretation);
29134 // The two endpoint of the link have to exist 26267 PartialInterpretation.newElements(interpretation,element);
29135 find mayExist(problem, interpretation, source); 26268 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
29136 find mayExist(problem, interpretation, target); 26269 neg find mustInstanceOfFunction_class(problem,interpretation,element);
29137 // Type consistency 26270 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
29138 find mayInstanceOfEClass_class(problem,interpretation,source); 26271 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
29139 BooleanElement(target); 26272 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
29140 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 26273 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
29141 // the upper bound of the multiplicity should be considered. 26274 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
29142 numberOfExistingReferences == count find mustInRelationabstract_attribute_EClass(problem,interpretation,source,_); 26275 neg find isPrimitive(element);
29143 check(numberOfExistingReferences < 1);
29144} or { 26276} or {
29145 find mustInRelationabstract_attribute_EClass(problem,interpretation,source,target); 26277 find interpretation(problem,interpretation);
29146} 26278 PartialInterpretation.openWorldElements(interpretation,element);
26279 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
26280 neg find mustInstanceOfFunction_class(problem,interpretation,element);
26281 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
26282 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
26283 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
26284 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
26285 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
26286 neg find isPrimitive(element);
26287} or
26288{ find mustInstanceOfFunctionalElement_class(problem,interpretation,element); }
29147/** 26289/**
29148 * Matcher for detecting tuples t where []interface attribute EClass(source,target) 26290 * An element must be an instance of type "FunctionalArchitectureModel class".
29149 */ 26291 */
29150private pattern mustInRelationinterface_attribute_EClass( 26292private pattern mustInstanceOfFunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
29151 problem:LogicProblem, interpretation:PartialInterpretation, 26293 Type.name(type,"FunctionalArchitectureModel class");
29152 source: DefinedElement, target:DefinedElement) 26294 find directInstanceOf(problem,interpretation,element,type);
29153{ 26295}
26296private pattern scopeDisallowsNewFunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation) {
29154 find interpretation(problem,interpretation); 26297 find interpretation(problem,interpretation);
29155 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 26298 PartialInterpretation.scopes(interpretation,scope);
29156 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"interface attribute EClass"); 26299 Scope.targetTypeInterpretation(scope,typeInterpretation);
29157 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 26300 Scope.maxNewElements(scope,0);
29158 BinaryElementRelationLink.param1(link,source); 26301 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
29159 BinaryElementRelationLink.param2(link,target); 26302 Type.name(type,"FunctionalArchitectureModel class");
29160} 26303}
26304
29161/** 26305/**
29162 * Matcher for detecting tuples t where <>interface attribute EClass(source,target) 26306 * An element may be an instance of type "FunctionalArchitectureModel class".
29163 */ 26307 */
29164private pattern mayInRelationinterface_attribute_EClass( 26308private pattern mayInstanceOfFunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
29165 problem:LogicProblem, interpretation:PartialInterpretation,
29166 source: DefinedElement, target:DefinedElement)
29167{ 26309{
29168 find interpretation(problem,interpretation); 26310 find interpretation(problem,interpretation);
29169 // The two endpoint of the link have to exist 26311 PartialInterpretation.newElements(interpretation,element);
29170 find mayExist(problem, interpretation, source); 26312 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
29171 find mayExist(problem, interpretation, target); 26313 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
29172 // Type consistency 26314 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
29173 find mayInstanceOfEClass_class(problem,interpretation,source); 26315 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
29174 BooleanElement(target); 26316 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
29175 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 26317 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
29176 // the upper bound of the multiplicity should be considered. 26318 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
29177 numberOfExistingReferences == count find mustInRelationinterface_attribute_EClass(problem,interpretation,source,_); 26319 neg find isPrimitive(element);
29178 check(numberOfExistingReferences < 1);
29179} or { 26320} or {
29180 find mustInRelationinterface_attribute_EClass(problem,interpretation,source,target); 26321 find interpretation(problem,interpretation);
29181} 26322 PartialInterpretation.openWorldElements(interpretation,element);
26323 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
26324 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
26325 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
26326 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
26327 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
26328 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
26329 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
26330 neg find isPrimitive(element);
26331} or
26332{ find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); }
29182/** 26333/**
29183 * Matcher for detecting tuples t where []instanceClassName attribute EClassifier(source,target) 26334 * An element must be an instance of type "Function class".
29184 */ 26335 */
29185private pattern mustInRelationinstanceClassName_attribute_EClassifier( 26336private pattern mustInstanceOfFunction_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
29186 problem:LogicProblem, interpretation:PartialInterpretation, 26337 Type.name(type,"Function class");
29187 source: DefinedElement, target:DefinedElement) 26338 find directInstanceOf(problem,interpretation,element,type);
29188{ 26339}
26340private pattern scopeDisallowsNewFunction_class(problem:LogicProblem, interpretation:PartialInterpretation) {
29189 find interpretation(problem,interpretation); 26341 find interpretation(problem,interpretation);
29190 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 26342 PartialInterpretation.scopes(interpretation,scope);
29191 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"instanceClassName attribute EClassifier"); 26343 Scope.targetTypeInterpretation(scope,typeInterpretation);
29192 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 26344 Scope.maxNewElements(scope,0);
29193 BinaryElementRelationLink.param1(link,source); 26345 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
29194 BinaryElementRelationLink.param2(link,target); 26346 Type.name(type,"Function class");
29195} 26347}
26348
29196/** 26349/**
29197 * Matcher for detecting tuples t where <>instanceClassName attribute EClassifier(source,target) 26350 * An element may be an instance of type "Function class".
29198 */ 26351 */
29199private pattern mayInRelationinstanceClassName_attribute_EClassifier( 26352private pattern mayInstanceOfFunction_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
29200 problem:LogicProblem, interpretation:PartialInterpretation,
29201 source: DefinedElement, target:DefinedElement)
29202{ 26353{
29203 find interpretation(problem,interpretation); 26354 find interpretation(problem,interpretation);
29204 // The two endpoint of the link have to exist 26355 PartialInterpretation.newElements(interpretation,element);
29205 find mayExist(problem, interpretation, source); 26356 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
29206 find mayExist(problem, interpretation, target); 26357 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
29207 // Type consistency 26358 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
29208 find mayInstanceOfEClassifier_class(problem,interpretation,source); 26359 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
29209 StringElement(target); 26360 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
29210 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 26361 neg find scopeDisallowsNewFunction_class(problem, interpretation);
29211 // the upper bound of the multiplicity should be considered. 26362 neg find isPrimitive(element);
29212 numberOfExistingReferences == count find mustInRelationinstanceClassName_attribute_EClassifier(problem,interpretation,source,_);
29213 check(numberOfExistingReferences < 1);
29214} or { 26363} or {
29215 find mustInRelationinstanceClassName_attribute_EClassifier(problem,interpretation,source,target); 26364 find interpretation(problem,interpretation);
29216} 26365 PartialInterpretation.openWorldElements(interpretation,element);
26366 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
26367 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
26368 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
26369 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
26370 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
26371 neg find scopeDisallowsNewFunction_class(problem, interpretation);
26372 neg find isPrimitive(element);
26373} or
26374{ find mustInstanceOfFunction_class(problem,interpretation,element); }
29217/** 26375/**
29218 * Matcher for detecting tuples t where []instanceTypeName attribute EClassifier(source,target) 26376 * An element must be an instance of type "FAMTerminator class".
29219 */ 26377 */
29220private pattern mustInRelationinstanceTypeName_attribute_EClassifier( 26378private pattern mustInstanceOfFAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
29221 problem:LogicProblem, interpretation:PartialInterpretation, 26379 Type.name(type,"FAMTerminator class");
29222 source: DefinedElement, target:DefinedElement) 26380 find directInstanceOf(problem,interpretation,element,type);
29223{ 26381}
26382private pattern scopeDisallowsNewFAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation) {
29224 find interpretation(problem,interpretation); 26383 find interpretation(problem,interpretation);
29225 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 26384 PartialInterpretation.scopes(interpretation,scope);
29226 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"instanceTypeName attribute EClassifier"); 26385 Scope.targetTypeInterpretation(scope,typeInterpretation);
29227 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 26386 Scope.maxNewElements(scope,0);
29228 BinaryElementRelationLink.param1(link,source); 26387 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
29229 BinaryElementRelationLink.param2(link,target); 26388 Type.name(type,"FAMTerminator class");
29230} 26389}
26390
29231/** 26391/**
29232 * Matcher for detecting tuples t where <>instanceTypeName attribute EClassifier(source,target) 26392 * An element may be an instance of type "FAMTerminator class".
29233 */ 26393 */
29234private pattern mayInRelationinstanceTypeName_attribute_EClassifier( 26394private pattern mayInstanceOfFAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
29235 problem:LogicProblem, interpretation:PartialInterpretation,
29236 source: DefinedElement, target:DefinedElement)
29237{ 26395{
29238 find interpretation(problem,interpretation); 26396 find interpretation(problem,interpretation);
29239 // The two endpoint of the link have to exist 26397 PartialInterpretation.newElements(interpretation,element);
29240 find mayExist(problem, interpretation, source); 26398 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
29241 find mayExist(problem, interpretation, target); 26399 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
29242 // Type consistency 26400 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
29243 find mayInstanceOfEClassifier_class(problem,interpretation,source); 26401 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
29244 StringElement(target); 26402 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
29245 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 26403 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
29246 // the upper bound of the multiplicity should be considered. 26404 neg find isPrimitive(element);
29247 numberOfExistingReferences == count find mustInRelationinstanceTypeName_attribute_EClassifier(problem,interpretation,source,_);
29248 check(numberOfExistingReferences < 1);
29249} or { 26405} or {
29250 find mustInRelationinstanceTypeName_attribute_EClassifier(problem,interpretation,source,target); 26406 find interpretation(problem,interpretation);
29251} 26407 PartialInterpretation.openWorldElements(interpretation,element);
26408 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
26409 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
26410 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
26411 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
26412 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
26413 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
26414 neg find isPrimitive(element);
26415} or
26416{ find mustInstanceOfFAMTerminator_class(problem,interpretation,element); }
29252/** 26417/**
29253 * Matcher for detecting tuples t where []serializable attribute EDataType(source,target) 26418 * An element must be an instance of type "InformationLink class".
29254 */ 26419 */
29255private pattern mustInRelationserializable_attribute_EDataType( 26420private pattern mustInstanceOfInformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
29256 problem:LogicProblem, interpretation:PartialInterpretation, 26421 Type.name(type,"InformationLink class");
29257 source: DefinedElement, target:DefinedElement) 26422 find directInstanceOf(problem,interpretation,element,type);
29258{ 26423}
26424private pattern scopeDisallowsNewInformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation) {
29259 find interpretation(problem,interpretation); 26425 find interpretation(problem,interpretation);
29260 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 26426 PartialInterpretation.scopes(interpretation,scope);
29261 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"serializable attribute EDataType"); 26427 Scope.targetTypeInterpretation(scope,typeInterpretation);
29262 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 26428 Scope.maxNewElements(scope,0);
29263 BinaryElementRelationLink.param1(link,source); 26429 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
29264 BinaryElementRelationLink.param2(link,target); 26430 Type.name(type,"InformationLink class");
29265} 26431}
26432
29266/** 26433/**
29267 * Matcher for detecting tuples t where <>serializable attribute EDataType(source,target) 26434 * An element may be an instance of type "InformationLink class".
29268 */ 26435 */
29269private pattern mayInRelationserializable_attribute_EDataType( 26436private pattern mayInstanceOfInformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
29270 problem:LogicProblem, interpretation:PartialInterpretation,
29271 source: DefinedElement, target:DefinedElement)
29272{ 26437{
29273 find interpretation(problem,interpretation); 26438 find interpretation(problem,interpretation);
29274 // The two endpoint of the link have to exist 26439 PartialInterpretation.newElements(interpretation,element);
29275 find mayExist(problem, interpretation, source); 26440 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
29276 find mayExist(problem, interpretation, target); 26441 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
29277 // Type consistency 26442 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
29278 find mayInstanceOfEDataType_class(problem,interpretation,source); 26443 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
29279 BooleanElement(target); 26444 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
29280 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 26445 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
29281 // the upper bound of the multiplicity should be considered. 26446 neg find isPrimitive(element);
29282 numberOfExistingReferences == count find mustInRelationserializable_attribute_EDataType(problem,interpretation,source,_);
29283 check(numberOfExistingReferences < 1);
29284} or { 26447} or {
29285 find mustInRelationserializable_attribute_EDataType(problem,interpretation,source,target); 26448 find interpretation(problem,interpretation);
29286} 26449 PartialInterpretation.openWorldElements(interpretation,element);
26450 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
26451 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
26452 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
26453 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
26454 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
26455 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
26456 neg find isPrimitive(element);
26457} or
26458{ find mustInstanceOfInformationLink_class(problem,interpretation,element); }
29287/** 26459/**
29288 * Matcher for detecting tuples t where []value attribute EEnumLiteral(source,target) 26460 * An element must be an instance of type "FunctionalInterface class".
29289 */ 26461 */
29290private pattern mustInRelationvalue_attribute_EEnumLiteral( 26462private pattern mustInstanceOfFunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
29291 problem:LogicProblem, interpretation:PartialInterpretation, 26463 Type.name(type,"FunctionalInterface class");
29292 source: DefinedElement, target:DefinedElement) 26464 find directInstanceOf(problem,interpretation,element,type);
29293{ 26465}
26466private pattern scopeDisallowsNewFunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation) {
29294 find interpretation(problem,interpretation); 26467 find interpretation(problem,interpretation);
29295 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 26468 PartialInterpretation.scopes(interpretation,scope);
29296 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"value attribute EEnumLiteral"); 26469 Scope.targetTypeInterpretation(scope,typeInterpretation);
29297 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 26470 Scope.maxNewElements(scope,0);
29298 BinaryElementRelationLink.param1(link,source); 26471 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
29299 BinaryElementRelationLink.param2(link,target); 26472 Type.name(type,"FunctionalInterface class");
29300} 26473}
26474
29301/** 26475/**
29302 * Matcher for detecting tuples t where <>value attribute EEnumLiteral(source,target) 26476 * An element may be an instance of type "FunctionalInterface class".
29303 */ 26477 */
29304private pattern mayInRelationvalue_attribute_EEnumLiteral( 26478private pattern mayInstanceOfFunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
29305 problem:LogicProblem, interpretation:PartialInterpretation,
29306 source: DefinedElement, target:DefinedElement)
29307{ 26479{
29308 find interpretation(problem,interpretation); 26480 find interpretation(problem,interpretation);
29309 // The two endpoint of the link have to exist 26481 PartialInterpretation.newElements(interpretation,element);
29310 find mayExist(problem, interpretation, source); 26482 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
29311 find mayExist(problem, interpretation, target); 26483 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
29312 // Type consistency 26484 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
29313 find mayInstanceOfEEnumLiteral_class(problem,interpretation,source); 26485 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
29314 IntegerElement(target); 26486 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
29315 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 26487 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
29316 // the upper bound of the multiplicity should be considered. 26488 neg find isPrimitive(element);
29317 numberOfExistingReferences == count find mustInRelationvalue_attribute_EEnumLiteral(problem,interpretation,source,_);
29318 check(numberOfExistingReferences < 1);
29319} or { 26489} or {
29320 find mustInRelationvalue_attribute_EEnumLiteral(problem,interpretation,source,target); 26490 find interpretation(problem,interpretation);
29321} 26491 PartialInterpretation.openWorldElements(interpretation,element);
26492 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
26493 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
26494 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
26495 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
26496 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
26497 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
26498 neg find isPrimitive(element);
26499} or
26500{ find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); }
29322/** 26501/**
29323 * Matcher for detecting tuples t where []literal attribute EEnumLiteral(source,target) 26502 * An element must be an instance of type "FunctionalInput class".
29324 */ 26503 */
29325private pattern mustInRelationliteral_attribute_EEnumLiteral( 26504private pattern mustInstanceOfFunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
29326 problem:LogicProblem, interpretation:PartialInterpretation, 26505 Type.name(type,"FunctionalInput class");
29327 source: DefinedElement, target:DefinedElement) 26506 find directInstanceOf(problem,interpretation,element,type);
29328{ 26507}
26508private pattern scopeDisallowsNewFunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation) {
29329 find interpretation(problem,interpretation); 26509 find interpretation(problem,interpretation);
29330 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 26510 PartialInterpretation.scopes(interpretation,scope);
29331 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"literal attribute EEnumLiteral"); 26511 Scope.targetTypeInterpretation(scope,typeInterpretation);
29332 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 26512 Scope.maxNewElements(scope,0);
29333 BinaryElementRelationLink.param1(link,source); 26513 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
29334 BinaryElementRelationLink.param2(link,target); 26514 Type.name(type,"FunctionalInput class");
29335} 26515}
26516
29336/** 26517/**
29337 * Matcher for detecting tuples t where <>literal attribute EEnumLiteral(source,target) 26518 * An element may be an instance of type "FunctionalInput class".
29338 */ 26519 */
29339private pattern mayInRelationliteral_attribute_EEnumLiteral( 26520private pattern mayInstanceOfFunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
29340 problem:LogicProblem, interpretation:PartialInterpretation,
29341 source: DefinedElement, target:DefinedElement)
29342{ 26521{
29343 find interpretation(problem,interpretation); 26522 find interpretation(problem,interpretation);
29344 // The two endpoint of the link have to exist 26523 PartialInterpretation.newElements(interpretation,element);
29345 find mayExist(problem, interpretation, source); 26524 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
29346 find mayExist(problem, interpretation, target); 26525 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
29347 // Type consistency 26526 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
29348 find mayInstanceOfEEnumLiteral_class(problem,interpretation,source); 26527 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
29349 StringElement(target); 26528 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
29350 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 26529 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
29351 // the upper bound of the multiplicity should be considered. 26530 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
29352 numberOfExistingReferences == count find mustInRelationliteral_attribute_EEnumLiteral(problem,interpretation,source,_); 26531 neg find isPrimitive(element);
29353 check(numberOfExistingReferences < 1);
29354} or { 26532} or {
29355 find mustInRelationliteral_attribute_EEnumLiteral(problem,interpretation,source,target); 26533 find interpretation(problem,interpretation);
29356} 26534 PartialInterpretation.openWorldElements(interpretation,element);
26535 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
26536 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
26537 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
26538 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
26539 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
26540 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
26541 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
26542 neg find isPrimitive(element);
26543} or
26544{ find mustInstanceOfFunctionalInput_class(problem,interpretation,element); }
29357/** 26545/**
29358 * Matcher for detecting tuples t where []name attribute ENamedElement(source,target) 26546 * An element must be an instance of type "FunctionalOutput class".
29359 */ 26547 */
29360private pattern mustInRelationname_attribute_ENamedElement( 26548private pattern mustInstanceOfFunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
29361 problem:LogicProblem, interpretation:PartialInterpretation, 26549 Type.name(type,"FunctionalOutput class");
29362 source: DefinedElement, target:DefinedElement) 26550 find directInstanceOf(problem,interpretation,element,type);
29363{ 26551}
26552private pattern scopeDisallowsNewFunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation) {
29364 find interpretation(problem,interpretation); 26553 find interpretation(problem,interpretation);
29365 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 26554 PartialInterpretation.scopes(interpretation,scope);
29366 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"name attribute ENamedElement"); 26555 Scope.targetTypeInterpretation(scope,typeInterpretation);
29367 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 26556 Scope.maxNewElements(scope,0);
29368 BinaryElementRelationLink.param1(link,source); 26557 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
29369 BinaryElementRelationLink.param2(link,target); 26558 Type.name(type,"FunctionalOutput class");
29370} 26559}
26560
29371/** 26561/**
29372 * Matcher for detecting tuples t where <>name attribute ENamedElement(source,target) 26562 * An element may be an instance of type "FunctionalOutput class".
29373 */ 26563 */
29374private pattern mayInRelationname_attribute_ENamedElement( 26564private pattern mayInstanceOfFunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
29375 problem:LogicProblem, interpretation:PartialInterpretation,
29376 source: DefinedElement, target:DefinedElement)
29377{ 26565{
29378 find interpretation(problem,interpretation); 26566 find interpretation(problem,interpretation);
29379 // The two endpoint of the link have to exist 26567 PartialInterpretation.newElements(interpretation,element);
29380 find mayExist(problem, interpretation, source); 26568 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
29381 find mayExist(problem, interpretation, target); 26569 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
29382 // Type consistency 26570 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
29383 find mayInstanceOfENamedElement_class(problem,interpretation,source); 26571 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
29384 StringElement(target); 26572 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
29385 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 26573 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
29386 // the upper bound of the multiplicity should be considered. 26574 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
29387 numberOfExistingReferences == count find mustInRelationname_attribute_ENamedElement(problem,interpretation,source,_); 26575 neg find isPrimitive(element);
29388 check(numberOfExistingReferences < 1);
29389} or { 26576} or {
29390 find mustInRelationname_attribute_ENamedElement(problem,interpretation,source,target); 26577 find interpretation(problem,interpretation);
29391} 26578 PartialInterpretation.openWorldElements(interpretation,element);
26579 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
26580 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
26581 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
26582 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
26583 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
26584 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
26585 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
26586 neg find isPrimitive(element);
26587} or
26588{ find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); }
29392/** 26589/**
29393 * Matcher for detecting tuples t where []nsURI attribute EPackage(source,target) 26590 * An element must be an instance of type "FunctionalData class".
29394 */ 26591 */
29395private pattern mustInRelationnsURI_attribute_EPackage( 26592private pattern mustInstanceOfFunctionalData_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
29396 problem:LogicProblem, interpretation:PartialInterpretation, 26593 Type.name(type,"FunctionalData class");
29397 source: DefinedElement, target:DefinedElement) 26594 find directInstanceOf(problem,interpretation,element,type);
29398{ 26595}
26596private pattern scopeDisallowsNewFunctionalData_class(problem:LogicProblem, interpretation:PartialInterpretation) {
29399 find interpretation(problem,interpretation); 26597 find interpretation(problem,interpretation);
29400 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 26598 PartialInterpretation.scopes(interpretation,scope);
29401 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"nsURI attribute EPackage"); 26599 Scope.targetTypeInterpretation(scope,typeInterpretation);
29402 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 26600 Scope.maxNewElements(scope,0);
29403 BinaryElementRelationLink.param1(link,source); 26601 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
29404 BinaryElementRelationLink.param2(link,target); 26602 Type.name(type,"FunctionalData class");
29405} 26603}
26604
29406/** 26605/**
29407 * Matcher for detecting tuples t where <>nsURI attribute EPackage(source,target) 26606 * An element may be an instance of type "FunctionalData class".
29408 */ 26607 */
29409private pattern mayInRelationnsURI_attribute_EPackage( 26608private pattern mayInstanceOfFunctionalData_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
29410 problem:LogicProblem, interpretation:PartialInterpretation,
29411 source: DefinedElement, target:DefinedElement)
29412{ 26609{
29413 find interpretation(problem,interpretation); 26610 find interpretation(problem,interpretation);
29414 // The two endpoint of the link have to exist 26611 PartialInterpretation.newElements(interpretation,element);
29415 find mayExist(problem, interpretation, source); 26612 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
29416 find mayExist(problem, interpretation, target); 26613 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
29417 // Type consistency 26614 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
29418 find mayInstanceOfEPackage_class(problem,interpretation,source); 26615 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
29419 StringElement(target); 26616 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
29420 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 26617 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
29421 // the upper bound of the multiplicity should be considered. 26618 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
29422 numberOfExistingReferences == count find mustInRelationnsURI_attribute_EPackage(problem,interpretation,source,_); 26619 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
29423 check(numberOfExistingReferences < 1); 26620 neg find isPrimitive(element);
29424} or { 26621} or {
29425 find mustInRelationnsURI_attribute_EPackage(problem,interpretation,source,target); 26622 find interpretation(problem,interpretation);
29426} 26623 PartialInterpretation.openWorldElements(interpretation,element);
26624 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
26625 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
26626 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
26627 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
26628 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
26629 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
26630 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
26631 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
26632 neg find isPrimitive(element);
26633} or
26634{ find mustInstanceOfFunctionalData_class(problem,interpretation,element); }
29427/** 26635/**
29428 * Matcher for detecting tuples t where []nsPrefix attribute EPackage(source,target) 26636 * An element must be an instance of type "FunctionType enum".
29429 */ 26637 */
29430private pattern mustInRelationnsPrefix_attribute_EPackage( 26638private pattern mustInstanceOfFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
29431 problem:LogicProblem, interpretation:PartialInterpretation, 26639 Type.name(type,"FunctionType enum");
29432 source: DefinedElement, target:DefinedElement) 26640 find directInstanceOf(problem,interpretation,element,type);
29433{ 26641}
26642private pattern scopeDisallowsNewFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation) {
29434 find interpretation(problem,interpretation); 26643 find interpretation(problem,interpretation);
29435 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 26644 PartialInterpretation.scopes(interpretation,scope);
29436 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"nsPrefix attribute EPackage"); 26645 Scope.targetTypeInterpretation(scope,typeInterpretation);
29437 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 26646 Scope.maxNewElements(scope,0);
29438 BinaryElementRelationLink.param1(link,source); 26647 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
29439 BinaryElementRelationLink.param2(link,target); 26648 Type.name(type,"FunctionType enum");
29440} 26649}
26650
29441/** 26651/**
29442 * Matcher for detecting tuples t where <>nsPrefix attribute EPackage(source,target) 26652 * An element may be an instance of type "FunctionType enum".
29443 */ 26653 */
29444private pattern mayInRelationnsPrefix_attribute_EPackage( 26654private pattern mayInstanceOfFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
29445 problem:LogicProblem, interpretation:PartialInterpretation, 26655{ find mustInstanceOfFunctionType_enum(problem,interpretation,element); }
29446 source: DefinedElement, target:DefinedElement)
29447{
29448 find interpretation(problem,interpretation);
29449 // The two endpoint of the link have to exist
29450 find mayExist(problem, interpretation, source);
29451 find mayExist(problem, interpretation, target);
29452 // Type consistency
29453 find mayInstanceOfEPackage_class(problem,interpretation,source);
29454 StringElement(target);
29455 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
29456 // the upper bound of the multiplicity should be considered.
29457 numberOfExistingReferences == count find mustInRelationnsPrefix_attribute_EPackage(problem,interpretation,source,_);
29458 check(numberOfExistingReferences < 1);
29459} or {
29460 find mustInRelationnsPrefix_attribute_EPackage(problem,interpretation,source,target);
29461}
29462/** 26656/**
29463 * Matcher for detecting tuples t where []containment attribute EReference(source,target) 26657 * An element must be an instance of type "FunctionalArchitectureModel class DefinedPart".
29464 */ 26658 */
29465private pattern mustInRelationcontainment_attribute_EReference( 26659private pattern mustInstanceOfFunctionalArchitectureModel_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
29466 problem:LogicProblem, interpretation:PartialInterpretation, 26660 Type.name(type,"FunctionalArchitectureModel class DefinedPart");
29467 source: DefinedElement, target:DefinedElement) 26661 find directInstanceOf(problem,interpretation,element,type);
29468{ 26662}
26663private pattern scopeDisallowsNewFunctionalArchitectureModel_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
29469 find interpretation(problem,interpretation); 26664 find interpretation(problem,interpretation);
29470 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 26665 PartialInterpretation.scopes(interpretation,scope);
29471 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"containment attribute EReference"); 26666 Scope.targetTypeInterpretation(scope,typeInterpretation);
29472 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 26667 Scope.maxNewElements(scope,0);
29473 BinaryElementRelationLink.param1(link,source); 26668 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
29474 BinaryElementRelationLink.param2(link,target); 26669 Type.name(type,"FunctionalArchitectureModel class DefinedPart");
29475} 26670}
26671
29476/** 26672/**
29477 * Matcher for detecting tuples t where <>containment attribute EReference(source,target) 26673 * An element may be an instance of type "FunctionalArchitectureModel class DefinedPart".
29478 */ 26674 */
29479private pattern mayInRelationcontainment_attribute_EReference( 26675private pattern mayInstanceOfFunctionalArchitectureModel_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
29480 problem:LogicProblem, interpretation:PartialInterpretation, 26676{ find mustInstanceOfFunctionalArchitectureModel_class_DefinedPart(problem,interpretation,element); }
29481 source: DefinedElement, target:DefinedElement)
29482{
29483 find interpretation(problem,interpretation);
29484 // The two endpoint of the link have to exist
29485 find mayExist(problem, interpretation, source);
29486 find mayExist(problem, interpretation, target);
29487 // Type consistency
29488 find mayInstanceOfEReference_class(problem,interpretation,source);
29489 BooleanElement(target);
29490 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
29491 // the upper bound of the multiplicity should be considered.
29492 numberOfExistingReferences == count find mustInRelationcontainment_attribute_EReference(problem,interpretation,source,_);
29493 check(numberOfExistingReferences < 1);
29494} or {
29495 find mustInRelationcontainment_attribute_EReference(problem,interpretation,source,target);
29496}
29497/** 26677/**
29498 * Matcher for detecting tuples t where []container attribute EReference(source,target) 26678 * An element must be an instance of type "FunctionalArchitectureModel class UndefinedPart".
29499 */ 26679 */
29500private pattern mustInRelationcontainer_attribute_EReference( 26680private pattern mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
29501 problem:LogicProblem, interpretation:PartialInterpretation, 26681 Type.name(type,"FunctionalArchitectureModel class UndefinedPart");
29502 source: DefinedElement, target:DefinedElement) 26682 find directInstanceOf(problem,interpretation,element,type);
29503{ 26683}
26684private pattern scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
29504 find interpretation(problem,interpretation); 26685 find interpretation(problem,interpretation);
29505 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 26686 PartialInterpretation.scopes(interpretation,scope);
29506 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"container attribute EReference"); 26687 Scope.targetTypeInterpretation(scope,typeInterpretation);
29507 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 26688 Scope.maxNewElements(scope,0);
29508 BinaryElementRelationLink.param1(link,source); 26689 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
29509 BinaryElementRelationLink.param2(link,target); 26690 Type.name(type,"FunctionalArchitectureModel class UndefinedPart");
29510} 26691}
26692
29511/** 26693/**
29512 * Matcher for detecting tuples t where <>container attribute EReference(source,target) 26694 * An element may be an instance of type "FunctionalArchitectureModel class UndefinedPart".
29513 */ 26695 */
29514private pattern mayInRelationcontainer_attribute_EReference( 26696private pattern mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
29515 problem:LogicProblem, interpretation:PartialInterpretation,
29516 source: DefinedElement, target:DefinedElement)
29517{ 26697{
29518 find interpretation(problem,interpretation); 26698 find interpretation(problem,interpretation);
29519 // The two endpoint of the link have to exist 26699 PartialInterpretation.newElements(interpretation,element);
29520 find mayExist(problem, interpretation, source); 26700 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
29521 find mayExist(problem, interpretation, target); 26701 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
29522 // Type consistency 26702 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
29523 find mayInstanceOfEReference_class(problem,interpretation,source); 26703 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
29524 BooleanElement(target); 26704 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
29525 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 26705 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation);
29526 // the upper bound of the multiplicity should be considered. 26706 neg find isPrimitive(element);
29527 numberOfExistingReferences == count find mustInRelationcontainer_attribute_EReference(problem,interpretation,source,_);
29528 check(numberOfExistingReferences < 1);
29529} or { 26707} or {
29530 find mustInRelationcontainer_attribute_EReference(problem,interpretation,source,target); 26708 find interpretation(problem,interpretation);
29531} 26709 PartialInterpretation.openWorldElements(interpretation,element);
26710 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
26711 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
26712 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
26713 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
26714 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
26715 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation);
26716 neg find isPrimitive(element);
26717} or
26718{ find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); }
26719
26720//////////
26721// 1.2 Relation Declaration Indexers
26722//////////
29532/** 26723/**
29533 * Matcher for detecting tuples t where []resolveProxies attribute EReference(source,target) 26724 * Matcher for detecting tuples t where []interface reference FunctionalElement(source,target)
29534 */ 26725 */
29535private pattern mustInRelationresolveProxies_attribute_EReference( 26726private pattern mustInRelationinterface_reference_FunctionalElement(
29536 problem:LogicProblem, interpretation:PartialInterpretation, 26727 problem:LogicProblem, interpretation:PartialInterpretation,
29537 source: DefinedElement, target:DefinedElement) 26728 source: DefinedElement, target:DefinedElement)
29538{ 26729{
29539 find interpretation(problem,interpretation); 26730 find interpretation(problem,interpretation);
29540 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 26731 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
29541 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"resolveProxies attribute EReference"); 26732 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"interface reference FunctionalElement");
29542 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 26733 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
29543 BinaryElementRelationLink.param1(link,source); 26734 BinaryElementRelationLink.param1(link,source);
29544 BinaryElementRelationLink.param2(link,target); 26735 BinaryElementRelationLink.param2(link,target);
29545} 26736}
29546/** 26737/**
29547 * Matcher for detecting tuples t where <>resolveProxies attribute EReference(source,target) 26738 * Matcher for detecting tuples t where <>interface reference FunctionalElement(source,target)
29548 */ 26739 */
29549private pattern mayInRelationresolveProxies_attribute_EReference( 26740private pattern mayInRelationinterface_reference_FunctionalElement(
29550 problem:LogicProblem, interpretation:PartialInterpretation, 26741 problem:LogicProblem, interpretation:PartialInterpretation,
29551 source: DefinedElement, target:DefinedElement) 26742 source: DefinedElement, target:DefinedElement)
29552{ 26743{
@@ -29555,33 +26746,42 @@ private pattern mayInRelationresolveProxies_attribute_EReference(
29555 find mayExist(problem, interpretation, source); 26746 find mayExist(problem, interpretation, source);
29556 find mayExist(problem, interpretation, target); 26747 find mayExist(problem, interpretation, target);
29557 // Type consistency 26748 // Type consistency
29558 find mayInstanceOfEReference_class(problem,interpretation,source); 26749 find mayInstanceOfFunctionalElement_class(problem,interpretation,source);
29559 BooleanElement(target); 26750 find mayInstanceOfFunctionalInterface_class(problem,interpretation,target);
29560 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 26751 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
29561 // the upper bound of the multiplicity should be considered. 26752 // the upper bound of the multiplicity should be considered.
29562 numberOfExistingReferences == count find mustInRelationresolveProxies_attribute_EReference(problem,interpretation,source,_); 26753 numberOfExistingReferences == count find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,source,_);
29563 check(numberOfExistingReferences < 1); 26754 check(numberOfExistingReferences < 1);
26755 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
26756 // the upper bound of the opposite reference multiplicity should be considered.
26757 numberOfExistingOppositeReferences == count find mustInRelationelement_reference_FunctionalInterface(problem,interpretation,target,_);
26758 check(numberOfExistingOppositeReferences < 1);
26759 // The reference is containment, then a new reference cannot be create if:
26760 // 1. Multiple parents
26761 neg find mustContains4(problem,interpretation,_,target);
26762 // 2. Circle in the containment hierarchy
26763 neg find mustTransitiveContains(source,target);
29564} or { 26764} or {
29565 find mustInRelationresolveProxies_attribute_EReference(problem,interpretation,source,target); 26765 find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,source,target);
29566} 26766}
29567/** 26767/**
29568 * Matcher for detecting tuples t where []changeable attribute EStructuralFeature(source,target) 26768 * Matcher for detecting tuples t where []model reference FunctionalElement(source,target)
29569 */ 26769 */
29570private pattern mustInRelationchangeable_attribute_EStructuralFeature( 26770private pattern mustInRelationmodel_reference_FunctionalElement(
29571 problem:LogicProblem, interpretation:PartialInterpretation, 26771 problem:LogicProblem, interpretation:PartialInterpretation,
29572 source: DefinedElement, target:DefinedElement) 26772 source: DefinedElement, target:DefinedElement)
29573{ 26773{
29574 find interpretation(problem,interpretation); 26774 find interpretation(problem,interpretation);
29575 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 26775 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
29576 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"changeable attribute EStructuralFeature"); 26776 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement");
29577 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 26777 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
29578 BinaryElementRelationLink.param1(link,source); 26778 BinaryElementRelationLink.param1(link,source);
29579 BinaryElementRelationLink.param2(link,target); 26779 BinaryElementRelationLink.param2(link,target);
29580} 26780}
29581/** 26781/**
29582 * Matcher for detecting tuples t where <>changeable attribute EStructuralFeature(source,target) 26782 * Matcher for detecting tuples t where <>model reference FunctionalElement(source,target)
29583 */ 26783 */
29584private pattern mayInRelationchangeable_attribute_EStructuralFeature( 26784private pattern mayInRelationmodel_reference_FunctionalElement(
29585 problem:LogicProblem, interpretation:PartialInterpretation, 26785 problem:LogicProblem, interpretation:PartialInterpretation,
29586 source: DefinedElement, target:DefinedElement) 26786 source: DefinedElement, target:DefinedElement)
29587{ 26787{
@@ -29590,33 +26790,33 @@ private pattern mayInRelationchangeable_attribute_EStructuralFeature(
29590 find mayExist(problem, interpretation, source); 26790 find mayExist(problem, interpretation, source);
29591 find mayExist(problem, interpretation, target); 26791 find mayExist(problem, interpretation, target);
29592 // Type consistency 26792 // Type consistency
29593 find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); 26793 find mayInstanceOfFunctionalElement_class(problem,interpretation,source);
29594 BooleanElement(target); 26794 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,target);
29595 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 26795 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
29596 // the upper bound of the multiplicity should be considered. 26796 // the upper bound of the multiplicity should be considered.
29597 numberOfExistingReferences == count find mustInRelationchangeable_attribute_EStructuralFeature(problem,interpretation,source,_); 26797 numberOfExistingReferences == count find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,source,_);
29598 check(numberOfExistingReferences < 1); 26798 check(numberOfExistingReferences < 1);
29599} or { 26799} or {
29600 find mustInRelationchangeable_attribute_EStructuralFeature(problem,interpretation,source,target); 26800 find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,source,target);
29601} 26801}
29602/** 26802/**
29603 * Matcher for detecting tuples t where []volatile attribute EStructuralFeature(source,target) 26803 * Matcher for detecting tuples t where []parent reference FunctionalElement(source,target)
29604 */ 26804 */
29605private pattern mustInRelationvolatile_attribute_EStructuralFeature( 26805private pattern mustInRelationparent_reference_FunctionalElement(
29606 problem:LogicProblem, interpretation:PartialInterpretation, 26806 problem:LogicProblem, interpretation:PartialInterpretation,
29607 source: DefinedElement, target:DefinedElement) 26807 source: DefinedElement, target:DefinedElement)
29608{ 26808{
29609 find interpretation(problem,interpretation); 26809 find interpretation(problem,interpretation);
29610 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 26810 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
29611 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"volatile attribute EStructuralFeature"); 26811 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"parent reference FunctionalElement");
29612 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 26812 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
29613 BinaryElementRelationLink.param1(link,source); 26813 BinaryElementRelationLink.param1(link,source);
29614 BinaryElementRelationLink.param2(link,target); 26814 BinaryElementRelationLink.param2(link,target);
29615} 26815}
29616/** 26816/**
29617 * Matcher for detecting tuples t where <>volatile attribute EStructuralFeature(source,target) 26817 * Matcher for detecting tuples t where <>parent reference FunctionalElement(source,target)
29618 */ 26818 */
29619private pattern mayInRelationvolatile_attribute_EStructuralFeature( 26819private pattern mayInRelationparent_reference_FunctionalElement(
29620 problem:LogicProblem, interpretation:PartialInterpretation, 26820 problem:LogicProblem, interpretation:PartialInterpretation,
29621 source: DefinedElement, target:DefinedElement) 26821 source: DefinedElement, target:DefinedElement)
29622{ 26822{
@@ -29625,33 +26825,38 @@ private pattern mayInRelationvolatile_attribute_EStructuralFeature(
29625 find mayExist(problem, interpretation, source); 26825 find mayExist(problem, interpretation, source);
29626 find mayExist(problem, interpretation, target); 26826 find mayExist(problem, interpretation, target);
29627 // Type consistency 26827 // Type consistency
29628 find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); 26828 find mayInstanceOfFunctionalElement_class(problem,interpretation,source);
29629 BooleanElement(target); 26829 find mayInstanceOfFunction_class(problem,interpretation,target);
29630 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 26830 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
29631 // the upper bound of the multiplicity should be considered. 26831 // the upper bound of the multiplicity should be considered.
29632 numberOfExistingReferences == count find mustInRelationvolatile_attribute_EStructuralFeature(problem,interpretation,source,_); 26832 numberOfExistingReferences == count find mustInRelationparent_reference_FunctionalElement(problem,interpretation,source,_);
29633 check(numberOfExistingReferences < 1); 26833 check(numberOfExistingReferences < 1);
26834 // The eOpposite of the reference is containment, then a referene cannot be created if
26835 // 1. Multiple parents
26836 neg find mustContains4(problem,interpretation,source,_);
26837 // 2. Circle in the containment hierarchy
26838 neg find mustTransitiveContains(source,target);
29634} or { 26839} or {
29635 find mustInRelationvolatile_attribute_EStructuralFeature(problem,interpretation,source,target); 26840 find mustInRelationparent_reference_FunctionalElement(problem,interpretation,source,target);
29636} 26841}
29637/** 26842/**
29638 * Matcher for detecting tuples t where []transient attribute EStructuralFeature(source,target) 26843 * Matcher for detecting tuples t where []rootElements reference FunctionalArchitectureModel(source,target)
29639 */ 26844 */
29640private pattern mustInRelationtransient_attribute_EStructuralFeature( 26845private pattern mustInRelationrootElements_reference_FunctionalArchitectureModel(
29641 problem:LogicProblem, interpretation:PartialInterpretation, 26846 problem:LogicProblem, interpretation:PartialInterpretation,
29642 source: DefinedElement, target:DefinedElement) 26847 source: DefinedElement, target:DefinedElement)
29643{ 26848{
29644 find interpretation(problem,interpretation); 26849 find interpretation(problem,interpretation);
29645 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 26850 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
29646 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"transient attribute EStructuralFeature"); 26851 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"rootElements reference FunctionalArchitectureModel");
29647 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 26852 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
29648 BinaryElementRelationLink.param1(link,source); 26853 BinaryElementRelationLink.param1(link,source);
29649 BinaryElementRelationLink.param2(link,target); 26854 BinaryElementRelationLink.param2(link,target);
29650} 26855}
29651/** 26856/**
29652 * Matcher for detecting tuples t where <>transient attribute EStructuralFeature(source,target) 26857 * Matcher for detecting tuples t where <>rootElements reference FunctionalArchitectureModel(source,target)
29653 */ 26858 */
29654private pattern mayInRelationtransient_attribute_EStructuralFeature( 26859private pattern mayInRelationrootElements_reference_FunctionalArchitectureModel(
29655 problem:LogicProblem, interpretation:PartialInterpretation, 26860 problem:LogicProblem, interpretation:PartialInterpretation,
29656 source: DefinedElement, target:DefinedElement) 26861 source: DefinedElement, target:DefinedElement)
29657{ 26862{
@@ -29660,33 +26865,34 @@ private pattern mayInRelationtransient_attribute_EStructuralFeature(
29660 find mayExist(problem, interpretation, source); 26865 find mayExist(problem, interpretation, source);
29661 find mayExist(problem, interpretation, target); 26866 find mayExist(problem, interpretation, target);
29662 // Type consistency 26867 // Type consistency
29663 find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); 26868 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,source);
29664 BooleanElement(target); 26869 find mayInstanceOfFunctionalElement_class(problem,interpretation,target);
29665 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 26870 // The reference is containment, then a new reference cannot be create if:
29666 // the upper bound of the multiplicity should be considered. 26871 // 1. Multiple parents
29667 numberOfExistingReferences == count find mustInRelationtransient_attribute_EStructuralFeature(problem,interpretation,source,_); 26872 neg find mustContains4(problem,interpretation,_,target);
29668 check(numberOfExistingReferences < 1); 26873 // 2. Circle in the containment hierarchy
26874 neg find mustTransitiveContains(source,target);
29669} or { 26875} or {
29670 find mustInRelationtransient_attribute_EStructuralFeature(problem,interpretation,source,target); 26876 find mustInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,source,target);
29671} 26877}
29672/** 26878/**
29673 * Matcher for detecting tuples t where []defaultValueLiteral attribute EStructuralFeature(source,target) 26879 * Matcher for detecting tuples t where []subElements reference Function(source,target)
29674 */ 26880 */
29675private pattern mustInRelationdefaultValueLiteral_attribute_EStructuralFeature( 26881private pattern mustInRelationsubElements_reference_Function(
29676 problem:LogicProblem, interpretation:PartialInterpretation, 26882 problem:LogicProblem, interpretation:PartialInterpretation,
29677 source: DefinedElement, target:DefinedElement) 26883 source: DefinedElement, target:DefinedElement)
29678{ 26884{
29679 find interpretation(problem,interpretation); 26885 find interpretation(problem,interpretation);
29680 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 26886 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
29681 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"defaultValueLiteral attribute EStructuralFeature"); 26887 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"subElements reference Function");
29682 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 26888 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
29683 BinaryElementRelationLink.param1(link,source); 26889 BinaryElementRelationLink.param1(link,source);
29684 BinaryElementRelationLink.param2(link,target); 26890 BinaryElementRelationLink.param2(link,target);
29685} 26891}
29686/** 26892/**
29687 * Matcher for detecting tuples t where <>defaultValueLiteral attribute EStructuralFeature(source,target) 26893 * Matcher for detecting tuples t where <>subElements reference Function(source,target)
29688 */ 26894 */
29689private pattern mayInRelationdefaultValueLiteral_attribute_EStructuralFeature( 26895private pattern mayInRelationsubElements_reference_Function(
29690 problem:LogicProblem, interpretation:PartialInterpretation, 26896 problem:LogicProblem, interpretation:PartialInterpretation,
29691 source: DefinedElement, target:DefinedElement) 26897 source: DefinedElement, target:DefinedElement)
29692{ 26898{
@@ -29695,33 +26901,38 @@ private pattern mayInRelationdefaultValueLiteral_attribute_EStructuralFeature(
29695 find mayExist(problem, interpretation, source); 26901 find mayExist(problem, interpretation, source);
29696 find mayExist(problem, interpretation, target); 26902 find mayExist(problem, interpretation, target);
29697 // Type consistency 26903 // Type consistency
29698 find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); 26904 find mayInstanceOfFunction_class(problem,interpretation,source);
29699 StringElement(target); 26905 find mayInstanceOfFunctionalElement_class(problem,interpretation,target);
29700 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 26906 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
29701 // the upper bound of the multiplicity should be considered. 26907 // the upper bound of the opposite reference multiplicity should be considered.
29702 numberOfExistingReferences == count find mustInRelationdefaultValueLiteral_attribute_EStructuralFeature(problem,interpretation,source,_); 26908 numberOfExistingOppositeReferences == count find mustInRelationparent_reference_FunctionalElement(problem,interpretation,target,_);
29703 check(numberOfExistingReferences < 1); 26909 check(numberOfExistingOppositeReferences < 1);
26910 // The reference is containment, then a new reference cannot be create if:
26911 // 1. Multiple parents
26912 neg find mustContains4(problem,interpretation,_,target);
26913 // 2. Circle in the containment hierarchy
26914 neg find mustTransitiveContains(source,target);
29704} or { 26915} or {
29705 find mustInRelationdefaultValueLiteral_attribute_EStructuralFeature(problem,interpretation,source,target); 26916 find mustInRelationsubElements_reference_Function(problem,interpretation,source,target);
29706} 26917}
29707/** 26918/**
29708 * Matcher for detecting tuples t where []unsettable attribute EStructuralFeature(source,target) 26919 * Matcher for detecting tuples t where []data reference FAMTerminator(source,target)
29709 */ 26920 */
29710private pattern mustInRelationunsettable_attribute_EStructuralFeature( 26921private pattern mustInRelationdata_reference_FAMTerminator(
29711 problem:LogicProblem, interpretation:PartialInterpretation, 26922 problem:LogicProblem, interpretation:PartialInterpretation,
29712 source: DefinedElement, target:DefinedElement) 26923 source: DefinedElement, target:DefinedElement)
29713{ 26924{
29714 find interpretation(problem,interpretation); 26925 find interpretation(problem,interpretation);
29715 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 26926 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
29716 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"unsettable attribute EStructuralFeature"); 26927 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"data reference FAMTerminator");
29717 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 26928 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
29718 BinaryElementRelationLink.param1(link,source); 26929 BinaryElementRelationLink.param1(link,source);
29719 BinaryElementRelationLink.param2(link,target); 26930 BinaryElementRelationLink.param2(link,target);
29720} 26931}
29721/** 26932/**
29722 * Matcher for detecting tuples t where <>unsettable attribute EStructuralFeature(source,target) 26933 * Matcher for detecting tuples t where <>data reference FAMTerminator(source,target)
29723 */ 26934 */
29724private pattern mayInRelationunsettable_attribute_EStructuralFeature( 26935private pattern mayInRelationdata_reference_FAMTerminator(
29725 problem:LogicProblem, interpretation:PartialInterpretation, 26936 problem:LogicProblem, interpretation:PartialInterpretation,
29726 source: DefinedElement, target:DefinedElement) 26937 source: DefinedElement, target:DefinedElement)
29727{ 26938{
@@ -29730,33 +26941,42 @@ private pattern mayInRelationunsettable_attribute_EStructuralFeature(
29730 find mayExist(problem, interpretation, source); 26941 find mayExist(problem, interpretation, source);
29731 find mayExist(problem, interpretation, target); 26942 find mayExist(problem, interpretation, target);
29732 // Type consistency 26943 // Type consistency
29733 find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); 26944 find mayInstanceOfFAMTerminator_class(problem,interpretation,source);
29734 BooleanElement(target); 26945 find mayInstanceOfFunctionalData_class(problem,interpretation,target);
29735 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 26946 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
29736 // the upper bound of the multiplicity should be considered. 26947 // the upper bound of the multiplicity should be considered.
29737 numberOfExistingReferences == count find mustInRelationunsettable_attribute_EStructuralFeature(problem,interpretation,source,_); 26948 numberOfExistingReferences == count find mustInRelationdata_reference_FAMTerminator(problem,interpretation,source,_);
29738 check(numberOfExistingReferences < 1); 26949 check(numberOfExistingReferences < 1);
26950 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
26951 // the upper bound of the opposite reference multiplicity should be considered.
26952 numberOfExistingOppositeReferences == count find mustInRelationterminator_reference_FunctionalData(problem,interpretation,target,_);
26953 check(numberOfExistingOppositeReferences < 1);
26954 // The eOpposite of the reference is containment, then a referene cannot be created if
26955 // 1. Multiple parents
26956 neg find mustContains4(problem,interpretation,source,_);
26957 // 2. Circle in the containment hierarchy
26958 neg find mustTransitiveContains(source,target);
29739} or { 26959} or {
29740 find mustInRelationunsettable_attribute_EStructuralFeature(problem,interpretation,source,target); 26960 find mustInRelationdata_reference_FAMTerminator(problem,interpretation,source,target);
29741} 26961}
29742/** 26962/**
29743 * Matcher for detecting tuples t where []derived attribute EStructuralFeature(source,target) 26963 * Matcher for detecting tuples t where []from reference InformationLink(source,target)
29744 */ 26964 */
29745private pattern mustInRelationderived_attribute_EStructuralFeature( 26965private pattern mustInRelationfrom_reference_InformationLink(
29746 problem:LogicProblem, interpretation:PartialInterpretation, 26966 problem:LogicProblem, interpretation:PartialInterpretation,
29747 source: DefinedElement, target:DefinedElement) 26967 source: DefinedElement, target:DefinedElement)
29748{ 26968{
29749 find interpretation(problem,interpretation); 26969 find interpretation(problem,interpretation);
29750 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 26970 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
29751 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"derived attribute EStructuralFeature"); 26971 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"from reference InformationLink");
29752 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 26972 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
29753 BinaryElementRelationLink.param1(link,source); 26973 BinaryElementRelationLink.param1(link,source);
29754 BinaryElementRelationLink.param2(link,target); 26974 BinaryElementRelationLink.param2(link,target);
29755} 26975}
29756/** 26976/**
29757 * Matcher for detecting tuples t where <>derived attribute EStructuralFeature(source,target) 26977 * Matcher for detecting tuples t where <>from reference InformationLink(source,target)
29758 */ 26978 */
29759private pattern mayInRelationderived_attribute_EStructuralFeature( 26979private pattern mayInRelationfrom_reference_InformationLink(
29760 problem:LogicProblem, interpretation:PartialInterpretation, 26980 problem:LogicProblem, interpretation:PartialInterpretation,
29761 source: DefinedElement, target:DefinedElement) 26981 source: DefinedElement, target:DefinedElement)
29762{ 26982{
@@ -29765,33 +26985,38 @@ private pattern mayInRelationderived_attribute_EStructuralFeature(
29765 find mayExist(problem, interpretation, source); 26985 find mayExist(problem, interpretation, source);
29766 find mayExist(problem, interpretation, target); 26986 find mayExist(problem, interpretation, target);
29767 // Type consistency 26987 // Type consistency
29768 find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); 26988 find mayInstanceOfInformationLink_class(problem,interpretation,source);
29769 BooleanElement(target); 26989 find mayInstanceOfFunctionalOutput_class(problem,interpretation,target);
29770 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 26990 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
29771 // the upper bound of the multiplicity should be considered. 26991 // the upper bound of the multiplicity should be considered.
29772 numberOfExistingReferences == count find mustInRelationderived_attribute_EStructuralFeature(problem,interpretation,source,_); 26992 numberOfExistingReferences == count find mustInRelationfrom_reference_InformationLink(problem,interpretation,source,_);
29773 check(numberOfExistingReferences < 1); 26993 check(numberOfExistingReferences < 1);
26994 // The eOpposite of the reference is containment, then a referene cannot be created if
26995 // 1. Multiple parents
26996 neg find mustContains4(problem,interpretation,source,_);
26997 // 2. Circle in the containment hierarchy
26998 neg find mustTransitiveContains(source,target);
29774} or { 26999} or {
29775 find mustInRelationderived_attribute_EStructuralFeature(problem,interpretation,source,target); 27000 find mustInRelationfrom_reference_InformationLink(problem,interpretation,source,target);
29776} 27001}
29777/** 27002/**
29778 * Matcher for detecting tuples t where []ordered attribute ETypedElement(source,target) 27003 * Matcher for detecting tuples t where []to reference InformationLink(source,target)
29779 */ 27004 */
29780private pattern mustInRelationordered_attribute_ETypedElement( 27005private pattern mustInRelationto_reference_InformationLink(
29781 problem:LogicProblem, interpretation:PartialInterpretation, 27006 problem:LogicProblem, interpretation:PartialInterpretation,
29782 source: DefinedElement, target:DefinedElement) 27007 source: DefinedElement, target:DefinedElement)
29783{ 27008{
29784 find interpretation(problem,interpretation); 27009 find interpretation(problem,interpretation);
29785 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 27010 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
29786 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"ordered attribute ETypedElement"); 27011 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"to reference InformationLink");
29787 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 27012 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
29788 BinaryElementRelationLink.param1(link,source); 27013 BinaryElementRelationLink.param1(link,source);
29789 BinaryElementRelationLink.param2(link,target); 27014 BinaryElementRelationLink.param2(link,target);
29790} 27015}
29791/** 27016/**
29792 * Matcher for detecting tuples t where <>ordered attribute ETypedElement(source,target) 27017 * Matcher for detecting tuples t where <>to reference InformationLink(source,target)
29793 */ 27018 */
29794private pattern mayInRelationordered_attribute_ETypedElement( 27019private pattern mayInRelationto_reference_InformationLink(
29795 problem:LogicProblem, interpretation:PartialInterpretation, 27020 problem:LogicProblem, interpretation:PartialInterpretation,
29796 source: DefinedElement, target:DefinedElement) 27021 source: DefinedElement, target:DefinedElement)
29797{ 27022{
@@ -29800,33 +27025,33 @@ private pattern mayInRelationordered_attribute_ETypedElement(
29800 find mayExist(problem, interpretation, source); 27025 find mayExist(problem, interpretation, source);
29801 find mayExist(problem, interpretation, target); 27026 find mayExist(problem, interpretation, target);
29802 // Type consistency 27027 // Type consistency
29803 find mayInstanceOfETypedElement_class(problem,interpretation,source); 27028 find mayInstanceOfInformationLink_class(problem,interpretation,source);
29804 BooleanElement(target); 27029 find mayInstanceOfFunctionalInput_class(problem,interpretation,target);
29805 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 27030 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
29806 // the upper bound of the multiplicity should be considered. 27031 // the upper bound of the multiplicity should be considered.
29807 numberOfExistingReferences == count find mustInRelationordered_attribute_ETypedElement(problem,interpretation,source,_); 27032 numberOfExistingReferences == count find mustInRelationto_reference_InformationLink(problem,interpretation,source,_);
29808 check(numberOfExistingReferences < 1); 27033 check(numberOfExistingReferences < 1);
29809} or { 27034} or {
29810 find mustInRelationordered_attribute_ETypedElement(problem,interpretation,source,target); 27035 find mustInRelationto_reference_InformationLink(problem,interpretation,source,target);
29811} 27036}
29812/** 27037/**
29813 * Matcher for detecting tuples t where []unique attribute ETypedElement(source,target) 27038 * Matcher for detecting tuples t where []data reference FunctionalInterface(source,target)
29814 */ 27039 */
29815private pattern mustInRelationunique_attribute_ETypedElement( 27040private pattern mustInRelationdata_reference_FunctionalInterface(
29816 problem:LogicProblem, interpretation:PartialInterpretation, 27041 problem:LogicProblem, interpretation:PartialInterpretation,
29817 source: DefinedElement, target:DefinedElement) 27042 source: DefinedElement, target:DefinedElement)
29818{ 27043{
29819 find interpretation(problem,interpretation); 27044 find interpretation(problem,interpretation);
29820 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 27045 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
29821 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"unique attribute ETypedElement"); 27046 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"data reference FunctionalInterface");
29822 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 27047 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
29823 BinaryElementRelationLink.param1(link,source); 27048 BinaryElementRelationLink.param1(link,source);
29824 BinaryElementRelationLink.param2(link,target); 27049 BinaryElementRelationLink.param2(link,target);
29825} 27050}
29826/** 27051/**
29827 * Matcher for detecting tuples t where <>unique attribute ETypedElement(source,target) 27052 * Matcher for detecting tuples t where <>data reference FunctionalInterface(source,target)
29828 */ 27053 */
29829private pattern mayInRelationunique_attribute_ETypedElement( 27054private pattern mayInRelationdata_reference_FunctionalInterface(
29830 problem:LogicProblem, interpretation:PartialInterpretation, 27055 problem:LogicProblem, interpretation:PartialInterpretation,
29831 source: DefinedElement, target:DefinedElement) 27056 source: DefinedElement, target:DefinedElement)
29832{ 27057{
@@ -29835,33 +27060,38 @@ private pattern mayInRelationunique_attribute_ETypedElement(
29835 find mayExist(problem, interpretation, source); 27060 find mayExist(problem, interpretation, source);
29836 find mayExist(problem, interpretation, target); 27061 find mayExist(problem, interpretation, target);
29837 // Type consistency 27062 // Type consistency
29838 find mayInstanceOfETypedElement_class(problem,interpretation,source); 27063 find mayInstanceOfFunctionalInterface_class(problem,interpretation,source);
29839 BooleanElement(target); 27064 find mayInstanceOfFunctionalData_class(problem,interpretation,target);
29840 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 27065 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
29841 // the upper bound of the multiplicity should be considered. 27066 // the upper bound of the opposite reference multiplicity should be considered.
29842 numberOfExistingReferences == count find mustInRelationunique_attribute_ETypedElement(problem,interpretation,source,_); 27067 numberOfExistingOppositeReferences == count find mustInRelationinterface_reference_FunctionalData(problem,interpretation,target,_);
29843 check(numberOfExistingReferences < 1); 27068 check(numberOfExistingOppositeReferences < 1);
27069 // The reference is containment, then a new reference cannot be create if:
27070 // 1. Multiple parents
27071 neg find mustContains4(problem,interpretation,_,target);
27072 // 2. Circle in the containment hierarchy
27073 neg find mustTransitiveContains(source,target);
29844} or { 27074} or {
29845 find mustInRelationunique_attribute_ETypedElement(problem,interpretation,source,target); 27075 find mustInRelationdata_reference_FunctionalInterface(problem,interpretation,source,target);
29846} 27076}
29847/** 27077/**
29848 * Matcher for detecting tuples t where []lowerBound attribute ETypedElement(source,target) 27078 * Matcher for detecting tuples t where []element reference FunctionalInterface(source,target)
29849 */ 27079 */
29850private pattern mustInRelationlowerBound_attribute_ETypedElement( 27080private pattern mustInRelationelement_reference_FunctionalInterface(
29851 problem:LogicProblem, interpretation:PartialInterpretation, 27081 problem:LogicProblem, interpretation:PartialInterpretation,
29852 source: DefinedElement, target:DefinedElement) 27082 source: DefinedElement, target:DefinedElement)
29853{ 27083{
29854 find interpretation(problem,interpretation); 27084 find interpretation(problem,interpretation);
29855 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 27085 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
29856 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"lowerBound attribute ETypedElement"); 27086 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"element reference FunctionalInterface");
29857 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 27087 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
29858 BinaryElementRelationLink.param1(link,source); 27088 BinaryElementRelationLink.param1(link,source);
29859 BinaryElementRelationLink.param2(link,target); 27089 BinaryElementRelationLink.param2(link,target);
29860} 27090}
29861/** 27091/**
29862 * Matcher for detecting tuples t where <>lowerBound attribute ETypedElement(source,target) 27092 * Matcher for detecting tuples t where <>element reference FunctionalInterface(source,target)
29863 */ 27093 */
29864private pattern mayInRelationlowerBound_attribute_ETypedElement( 27094private pattern mayInRelationelement_reference_FunctionalInterface(
29865 problem:LogicProblem, interpretation:PartialInterpretation, 27095 problem:LogicProblem, interpretation:PartialInterpretation,
29866 source: DefinedElement, target:DefinedElement) 27096 source: DefinedElement, target:DefinedElement)
29867{ 27097{
@@ -29870,33 +27100,42 @@ private pattern mayInRelationlowerBound_attribute_ETypedElement(
29870 find mayExist(problem, interpretation, source); 27100 find mayExist(problem, interpretation, source);
29871 find mayExist(problem, interpretation, target); 27101 find mayExist(problem, interpretation, target);
29872 // Type consistency 27102 // Type consistency
29873 find mayInstanceOfETypedElement_class(problem,interpretation,source); 27103 find mayInstanceOfFunctionalInterface_class(problem,interpretation,source);
29874 IntegerElement(target); 27104 find mayInstanceOfFunctionalElement_class(problem,interpretation,target);
29875 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 27105 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
29876 // the upper bound of the multiplicity should be considered. 27106 // the upper bound of the multiplicity should be considered.
29877 numberOfExistingReferences == count find mustInRelationlowerBound_attribute_ETypedElement(problem,interpretation,source,_); 27107 numberOfExistingReferences == count find mustInRelationelement_reference_FunctionalInterface(problem,interpretation,source,_);
29878 check(numberOfExistingReferences < 1); 27108 check(numberOfExistingReferences < 1);
27109 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
27110 // the upper bound of the opposite reference multiplicity should be considered.
27111 numberOfExistingOppositeReferences == count find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,target,_);
27112 check(numberOfExistingOppositeReferences < 1);
27113 // The eOpposite of the reference is containment, then a referene cannot be created if
27114 // 1. Multiple parents
27115 neg find mustContains4(problem,interpretation,source,_);
27116 // 2. Circle in the containment hierarchy
27117 neg find mustTransitiveContains(source,target);
29879} or { 27118} or {
29880 find mustInRelationlowerBound_attribute_ETypedElement(problem,interpretation,source,target); 27119 find mustInRelationelement_reference_FunctionalInterface(problem,interpretation,source,target);
29881} 27120}
29882/** 27121/**
29883 * Matcher for detecting tuples t where []upperBound attribute ETypedElement(source,target) 27122 * Matcher for detecting tuples t where []IncomingLinks reference FunctionalInput(source,target)
29884 */ 27123 */
29885private pattern mustInRelationupperBound_attribute_ETypedElement( 27124private pattern mustInRelationIncomingLinks_reference_FunctionalInput(
29886 problem:LogicProblem, interpretation:PartialInterpretation, 27125 problem:LogicProblem, interpretation:PartialInterpretation,
29887 source: DefinedElement, target:DefinedElement) 27126 source: DefinedElement, target:DefinedElement)
29888{ 27127{
29889 find interpretation(problem,interpretation); 27128 find interpretation(problem,interpretation);
29890 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 27129 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
29891 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"upperBound attribute ETypedElement"); 27130 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"IncomingLinks reference FunctionalInput");
29892 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 27131 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
29893 BinaryElementRelationLink.param1(link,source); 27132 BinaryElementRelationLink.param1(link,source);
29894 BinaryElementRelationLink.param2(link,target); 27133 BinaryElementRelationLink.param2(link,target);
29895} 27134}
29896/** 27135/**
29897 * Matcher for detecting tuples t where <>upperBound attribute ETypedElement(source,target) 27136 * Matcher for detecting tuples t where <>IncomingLinks reference FunctionalInput(source,target)
29898 */ 27137 */
29899private pattern mayInRelationupperBound_attribute_ETypedElement( 27138private pattern mayInRelationIncomingLinks_reference_FunctionalInput(
29900 problem:LogicProblem, interpretation:PartialInterpretation, 27139 problem:LogicProblem, interpretation:PartialInterpretation,
29901 source: DefinedElement, target:DefinedElement) 27140 source: DefinedElement, target:DefinedElement)
29902{ 27141{
@@ -29905,33 +27144,33 @@ private pattern mayInRelationupperBound_attribute_ETypedElement(
29905 find mayExist(problem, interpretation, source); 27144 find mayExist(problem, interpretation, source);
29906 find mayExist(problem, interpretation, target); 27145 find mayExist(problem, interpretation, target);
29907 // Type consistency 27146 // Type consistency
29908 find mayInstanceOfETypedElement_class(problem,interpretation,source); 27147 find mayInstanceOfFunctionalInput_class(problem,interpretation,source);
29909 IntegerElement(target); 27148 find mayInstanceOfInformationLink_class(problem,interpretation,target);
29910 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 27149 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
29911 // the upper bound of the multiplicity should be considered. 27150 // the upper bound of the opposite reference multiplicity should be considered.
29912 numberOfExistingReferences == count find mustInRelationupperBound_attribute_ETypedElement(problem,interpretation,source,_); 27151 numberOfExistingOppositeReferences == count find mustInRelationto_reference_InformationLink(problem,interpretation,target,_);
29913 check(numberOfExistingReferences < 1); 27152 check(numberOfExistingOppositeReferences < 1);
29914} or { 27153} or {
29915 find mustInRelationupperBound_attribute_ETypedElement(problem,interpretation,source,target); 27154 find mustInRelationIncomingLinks_reference_FunctionalInput(problem,interpretation,source,target);
29916} 27155}
29917/** 27156/**
29918 * Matcher for detecting tuples t where []many attribute ETypedElement(source,target) 27157 * Matcher for detecting tuples t where []outgoingLinks reference FunctionalOutput(source,target)
29919 */ 27158 */
29920private pattern mustInRelationmany_attribute_ETypedElement( 27159private pattern mustInRelationoutgoingLinks_reference_FunctionalOutput(
29921 problem:LogicProblem, interpretation:PartialInterpretation, 27160 problem:LogicProblem, interpretation:PartialInterpretation,
29922 source: DefinedElement, target:DefinedElement) 27161 source: DefinedElement, target:DefinedElement)
29923{ 27162{
29924 find interpretation(problem,interpretation); 27163 find interpretation(problem,interpretation);
29925 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 27164 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
29926 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"many attribute ETypedElement"); 27165 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"outgoingLinks reference FunctionalOutput");
29927 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 27166 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
29928 BinaryElementRelationLink.param1(link,source); 27167 BinaryElementRelationLink.param1(link,source);
29929 BinaryElementRelationLink.param2(link,target); 27168 BinaryElementRelationLink.param2(link,target);
29930} 27169}
29931/** 27170/**
29932 * Matcher for detecting tuples t where <>many attribute ETypedElement(source,target) 27171 * Matcher for detecting tuples t where <>outgoingLinks reference FunctionalOutput(source,target)
29933 */ 27172 */
29934private pattern mayInRelationmany_attribute_ETypedElement( 27173private pattern mayInRelationoutgoingLinks_reference_FunctionalOutput(
29935 problem:LogicProblem, interpretation:PartialInterpretation, 27174 problem:LogicProblem, interpretation:PartialInterpretation,
29936 source: DefinedElement, target:DefinedElement) 27175 source: DefinedElement, target:DefinedElement)
29937{ 27176{
@@ -29940,33 +27179,38 @@ private pattern mayInRelationmany_attribute_ETypedElement(
29940 find mayExist(problem, interpretation, source); 27179 find mayExist(problem, interpretation, source);
29941 find mayExist(problem, interpretation, target); 27180 find mayExist(problem, interpretation, target);
29942 // Type consistency 27181 // Type consistency
29943 find mayInstanceOfETypedElement_class(problem,interpretation,source); 27182 find mayInstanceOfFunctionalOutput_class(problem,interpretation,source);
29944 BooleanElement(target); 27183 find mayInstanceOfInformationLink_class(problem,interpretation,target);
29945 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 27184 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
29946 // the upper bound of the multiplicity should be considered. 27185 // the upper bound of the opposite reference multiplicity should be considered.
29947 numberOfExistingReferences == count find mustInRelationmany_attribute_ETypedElement(problem,interpretation,source,_); 27186 numberOfExistingOppositeReferences == count find mustInRelationfrom_reference_InformationLink(problem,interpretation,target,_);
29948 check(numberOfExistingReferences < 1); 27187 check(numberOfExistingOppositeReferences < 1);
27188 // The reference is containment, then a new reference cannot be create if:
27189 // 1. Multiple parents
27190 neg find mustContains4(problem,interpretation,_,target);
27191 // 2. Circle in the containment hierarchy
27192 neg find mustTransitiveContains(source,target);
29949} or { 27193} or {
29950 find mustInRelationmany_attribute_ETypedElement(problem,interpretation,source,target); 27194 find mustInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,source,target);
29951} 27195}
29952/** 27196/**
29953 * Matcher for detecting tuples t where []required attribute ETypedElement(source,target) 27197 * Matcher for detecting tuples t where []terminator reference FunctionalData(source,target)
29954 */ 27198 */
29955private pattern mustInRelationrequired_attribute_ETypedElement( 27199private pattern mustInRelationterminator_reference_FunctionalData(
29956 problem:LogicProblem, interpretation:PartialInterpretation, 27200 problem:LogicProblem, interpretation:PartialInterpretation,
29957 source: DefinedElement, target:DefinedElement) 27201 source: DefinedElement, target:DefinedElement)
29958{ 27202{
29959 find interpretation(problem,interpretation); 27203 find interpretation(problem,interpretation);
29960 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 27204 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
29961 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"required attribute ETypedElement"); 27205 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"terminator reference FunctionalData");
29962 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 27206 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
29963 BinaryElementRelationLink.param1(link,source); 27207 BinaryElementRelationLink.param1(link,source);
29964 BinaryElementRelationLink.param2(link,target); 27208 BinaryElementRelationLink.param2(link,target);
29965} 27209}
29966/** 27210/**
29967 * Matcher for detecting tuples t where <>required attribute ETypedElement(source,target) 27211 * Matcher for detecting tuples t where <>terminator reference FunctionalData(source,target)
29968 */ 27212 */
29969private pattern mayInRelationrequired_attribute_ETypedElement( 27213private pattern mayInRelationterminator_reference_FunctionalData(
29970 problem:LogicProblem, interpretation:PartialInterpretation, 27214 problem:LogicProblem, interpretation:PartialInterpretation,
29971 source: DefinedElement, target:DefinedElement) 27215 source: DefinedElement, target:DefinedElement)
29972{ 27216{
@@ -29975,33 +27219,42 @@ private pattern mayInRelationrequired_attribute_ETypedElement(
29975 find mayExist(problem, interpretation, source); 27219 find mayExist(problem, interpretation, source);
29976 find mayExist(problem, interpretation, target); 27220 find mayExist(problem, interpretation, target);
29977 // Type consistency 27221 // Type consistency
29978 find mayInstanceOfETypedElement_class(problem,interpretation,source); 27222 find mayInstanceOfFunctionalData_class(problem,interpretation,source);
29979 BooleanElement(target); 27223 find mayInstanceOfFAMTerminator_class(problem,interpretation,target);
29980 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 27224 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
29981 // the upper bound of the multiplicity should be considered. 27225 // the upper bound of the multiplicity should be considered.
29982 numberOfExistingReferences == count find mustInRelationrequired_attribute_ETypedElement(problem,interpretation,source,_); 27226 numberOfExistingReferences == count find mustInRelationterminator_reference_FunctionalData(problem,interpretation,source,_);
29983 check(numberOfExistingReferences < 1); 27227 check(numberOfExistingReferences < 1);
27228 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
27229 // the upper bound of the opposite reference multiplicity should be considered.
27230 numberOfExistingOppositeReferences == count find mustInRelationdata_reference_FAMTerminator(problem,interpretation,target,_);
27231 check(numberOfExistingOppositeReferences < 1);
27232 // The reference is containment, then a new reference cannot be create if:
27233 // 1. Multiple parents
27234 neg find mustContains4(problem,interpretation,_,target);
27235 // 2. Circle in the containment hierarchy
27236 neg find mustTransitiveContains(source,target);
29984} or { 27237} or {
29985 find mustInRelationrequired_attribute_ETypedElement(problem,interpretation,source,target); 27238 find mustInRelationterminator_reference_FunctionalData(problem,interpretation,source,target);
29986} 27239}
29987/** 27240/**
29988 * Matcher for detecting tuples t where []key attribute EStringToStringMapEntry(source,target) 27241 * Matcher for detecting tuples t where []interface reference FunctionalData(source,target)
29989 */ 27242 */
29990private pattern mustInRelationkey_attribute_EStringToStringMapEntry( 27243private pattern mustInRelationinterface_reference_FunctionalData(
29991 problem:LogicProblem, interpretation:PartialInterpretation, 27244 problem:LogicProblem, interpretation:PartialInterpretation,
29992 source: DefinedElement, target:DefinedElement) 27245 source: DefinedElement, target:DefinedElement)
29993{ 27246{
29994 find interpretation(problem,interpretation); 27247 find interpretation(problem,interpretation);
29995 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 27248 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
29996 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"key attribute EStringToStringMapEntry"); 27249 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"interface reference FunctionalData");
29997 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 27250 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
29998 BinaryElementRelationLink.param1(link,source); 27251 BinaryElementRelationLink.param1(link,source);
29999 BinaryElementRelationLink.param2(link,target); 27252 BinaryElementRelationLink.param2(link,target);
30000} 27253}
30001/** 27254/**
30002 * Matcher for detecting tuples t where <>key attribute EStringToStringMapEntry(source,target) 27255 * Matcher for detecting tuples t where <>interface reference FunctionalData(source,target)
30003 */ 27256 */
30004private pattern mayInRelationkey_attribute_EStringToStringMapEntry( 27257private pattern mayInRelationinterface_reference_FunctionalData(
30005 problem:LogicProblem, interpretation:PartialInterpretation, 27258 problem:LogicProblem, interpretation:PartialInterpretation,
30006 source: DefinedElement, target:DefinedElement) 27259 source: DefinedElement, target:DefinedElement)
30007{ 27260{
@@ -30010,33 +27263,38 @@ private pattern mayInRelationkey_attribute_EStringToStringMapEntry(
30010 find mayExist(problem, interpretation, source); 27263 find mayExist(problem, interpretation, source);
30011 find mayExist(problem, interpretation, target); 27264 find mayExist(problem, interpretation, target);
30012 // Type consistency 27265 // Type consistency
30013 find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,source); 27266 find mayInstanceOfFunctionalData_class(problem,interpretation,source);
30014 StringElement(target); 27267 find mayInstanceOfFunctionalInterface_class(problem,interpretation,target);
30015 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 27268 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
30016 // the upper bound of the multiplicity should be considered. 27269 // the upper bound of the multiplicity should be considered.
30017 numberOfExistingReferences == count find mustInRelationkey_attribute_EStringToStringMapEntry(problem,interpretation,source,_); 27270 numberOfExistingReferences == count find mustInRelationinterface_reference_FunctionalData(problem,interpretation,source,_);
30018 check(numberOfExistingReferences < 1); 27271 check(numberOfExistingReferences < 1);
27272 // The eOpposite of the reference is containment, then a referene cannot be created if
27273 // 1. Multiple parents
27274 neg find mustContains4(problem,interpretation,source,_);
27275 // 2. Circle in the containment hierarchy
27276 neg find mustTransitiveContains(source,target);
30019} or { 27277} or {
30020 find mustInRelationkey_attribute_EStringToStringMapEntry(problem,interpretation,source,target); 27278 find mustInRelationinterface_reference_FunctionalData(problem,interpretation,source,target);
30021} 27279}
30022/** 27280/**
30023 * Matcher for detecting tuples t where []value attribute EStringToStringMapEntry(source,target) 27281 * Matcher for detecting tuples t where []type attribute Function(source,target)
30024 */ 27282 */
30025private pattern mustInRelationvalue_attribute_EStringToStringMapEntry( 27283private pattern mustInRelationtype_attribute_Function(
30026 problem:LogicProblem, interpretation:PartialInterpretation, 27284 problem:LogicProblem, interpretation:PartialInterpretation,
30027 source: DefinedElement, target:DefinedElement) 27285 source: DefinedElement, target:DefinedElement)
30028{ 27286{
30029 find interpretation(problem,interpretation); 27287 find interpretation(problem,interpretation);
30030 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 27288 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
30031 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"value attribute EStringToStringMapEntry"); 27289 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function");
30032 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 27290 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
30033 BinaryElementRelationLink.param1(link,source); 27291 BinaryElementRelationLink.param1(link,source);
30034 BinaryElementRelationLink.param2(link,target); 27292 BinaryElementRelationLink.param2(link,target);
30035} 27293}
30036/** 27294/**
30037 * Matcher for detecting tuples t where <>value attribute EStringToStringMapEntry(source,target) 27295 * Matcher for detecting tuples t where <>type attribute Function(source,target)
30038 */ 27296 */
30039private pattern mayInRelationvalue_attribute_EStringToStringMapEntry( 27297private pattern mayInRelationtype_attribute_Function(
30040 problem:LogicProblem, interpretation:PartialInterpretation, 27298 problem:LogicProblem, interpretation:PartialInterpretation,
30041 source: DefinedElement, target:DefinedElement) 27299 source: DefinedElement, target:DefinedElement)
30042{ 27300{
@@ -30045,14 +27303,14 @@ private pattern mayInRelationvalue_attribute_EStringToStringMapEntry(
30045 find mayExist(problem, interpretation, source); 27303 find mayExist(problem, interpretation, source);
30046 find mayExist(problem, interpretation, target); 27304 find mayExist(problem, interpretation, target);
30047 // Type consistency 27305 // Type consistency
30048 find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,source); 27306 find mayInstanceOfFunction_class(problem,interpretation,source);
30049 StringElement(target); 27307 find mayInstanceOfFunctionType_enum(problem,interpretation,target);
30050 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 27308 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
30051 // the upper bound of the multiplicity should be considered. 27309 // the upper bound of the multiplicity should be considered.
30052 numberOfExistingReferences == count find mustInRelationvalue_attribute_EStringToStringMapEntry(problem,interpretation,source,_); 27310 numberOfExistingReferences == count find mustInRelationtype_attribute_Function(problem,interpretation,source,_);
30053 check(numberOfExistingReferences < 1); 27311 check(numberOfExistingReferences < 1);
30054} or { 27312} or {
30055 find mustInRelationvalue_attribute_EStringToStringMapEntry(problem,interpretation,source,target); 27313 find mustInRelationtype_attribute_Function(problem,interpretation,source,target);
30056} 27314}
30057 27315
30058////////// 27316//////////
@@ -30068,41 +27326,17 @@ private pattern mustContains2(source: DefinedElement, target: DefinedElement) {
30068 27326
30069private pattern mustContains4(problem:LogicProblem, interpretation:PartialInterpretation, 27327private pattern mustContains4(problem:LogicProblem, interpretation:PartialInterpretation,
30070 source: DefinedElement, target: DefinedElement) 27328 source: DefinedElement, target: DefinedElement)
30071 { find mustInRelationdetails_reference_EAnnotation(problem,interpretation,source,target); }or 27329 { find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,source,target); }or
30072
30073 { find mustInRelationcontents_reference_EAnnotation(problem,interpretation,source,target); }or
30074
30075 { find mustInRelationeOperations_reference_EClass(problem,interpretation,source,target); }or
30076
30077 { find mustInRelationeStructuralFeatures_reference_EClass(problem,interpretation,source,target); }or
30078
30079 { find mustInRelationeGenericSuperTypes_reference_EClass(problem,interpretation,source,target); }or
30080
30081 { find mustInRelationeTypeParameters_reference_EClassifier(problem,interpretation,source,target); }or
30082
30083 { find mustInRelationeLiterals_reference_EEnum(problem,interpretation,source,target); }or
30084
30085 { find mustInRelationeAnnotations_reference_EModelElement(problem,interpretation,source,target); }or
30086
30087 { find mustInRelationeTypeParameters_reference_EOperation(problem,interpretation,source,target); }or
30088
30089 { find mustInRelationeParameters_reference_EOperation(problem,interpretation,source,target); }or
30090
30091 { find mustInRelationeGenericExceptions_reference_EOperation(problem,interpretation,source,target); }or
30092
30093 { find mustInRelationeClassifiers_reference_EPackage(problem,interpretation,source,target); }or
30094
30095 { find mustInRelationeSubpackages_reference_EPackage(problem,interpretation,source,target); }or
30096 27330
30097 { find mustInRelationeGenericType_reference_ETypedElement(problem,interpretation,source,target); }or 27331 { find mustInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,source,target); }or
30098 27332
30099 { find mustInRelationeUpperBound_reference_EGenericType(problem,interpretation,source,target); }or 27333 { find mustInRelationsubElements_reference_Function(problem,interpretation,source,target); }or
30100 27334
30101 { find mustInRelationeTypeArguments_reference_EGenericType(problem,interpretation,source,target); }or 27335 { find mustInRelationdata_reference_FunctionalInterface(problem,interpretation,source,target); }or
30102 27336
30103 { find mustInRelationeLowerBound_reference_EGenericType(problem,interpretation,source,target); }or 27337 { find mustInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,source,target); }or
30104 27338
30105 { find mustInRelationeBounds_reference_ETypeParameter(problem,interpretation,source,target); } 27339 { find mustInRelationterminator_reference_FunctionalData(problem,interpretation,source,target); }
30106 27340
30107private pattern mustTransitiveContains(source,target) { 27341private pattern mustTransitiveContains(source,target) {
30108 find mustContains2+(source,target); 27342 find mustContains2+(source,target);
@@ -30119,30 +27353,30 @@ private pattern mustTransitiveContains(source,target) {
30119////////// 27353//////////
30120// 3.1 Unfinishedness Measured by Multiplicity 27354// 3.1 Unfinishedness Measured by Multiplicity
30121////////// 27355//////////
30122pattern unfinishedLowerMultiplicity_eAttributeType_reference_EAttribute(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { 27356pattern unfinishedLowerMultiplicity_model_reference_FunctionalElement(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
30123 find interpretation(problem,interpretation); 27357 find interpretation(problem,interpretation);
30124 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 27358 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
30125 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAttributeType reference EAttribute"); 27359 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement");
30126 find mustInstanceOfEAttribute_class(problem,interpretation,object); 27360 find mustInstanceOfFunctionalElement_class(problem,interpretation,object);
30127 numberOfExistingReferences == count find mustInRelationeAttributeType_reference_EAttribute(problem,interpretation,object,_); 27361 numberOfExistingReferences == count find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,object,_);
30128 check(numberOfExistingReferences < 1); 27362 check(numberOfExistingReferences < 1);
30129 missingMultiplicity == eval(1-numberOfExistingReferences); 27363 missingMultiplicity == eval(1-numberOfExistingReferences);
30130} 27364}
30131pattern unfinishedLowerMultiplicity_eReferenceType_reference_EReference(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { 27365pattern unfinishedLowerMultiplicity_to_reference_InformationLink(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
30132 find interpretation(problem,interpretation); 27366 find interpretation(problem,interpretation);
30133 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 27367 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
30134 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eReferenceType reference EReference"); 27368 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"to reference InformationLink");
30135 find mustInstanceOfEReference_class(problem,interpretation,object); 27369 find mustInstanceOfInformationLink_class(problem,interpretation,object);
30136 numberOfExistingReferences == count find mustInRelationeReferenceType_reference_EReference(problem,interpretation,object,_); 27370 numberOfExistingReferences == count find mustInRelationto_reference_InformationLink(problem,interpretation,object,_);
30137 check(numberOfExistingReferences < 1); 27371 check(numberOfExistingReferences < 1);
30138 missingMultiplicity == eval(1-numberOfExistingReferences); 27372 missingMultiplicity == eval(1-numberOfExistingReferences);
30139} 27373}
30140pattern unfinishedLowerMultiplicity_eRawType_reference_EGenericType(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { 27374pattern unfinishedLowerMultiplicity_type_attribute_Function(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
30141 find interpretation(problem,interpretation); 27375 find interpretation(problem,interpretation);
30142 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 27376 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
30143 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eRawType reference EGenericType"); 27377 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function");
30144 find mustInstanceOfEGenericType_class(problem,interpretation,object); 27378 find mustInstanceOfFunction_class(problem,interpretation,object);
30145 numberOfExistingReferences == count find mustInRelationeRawType_reference_EGenericType(problem,interpretation,object,_); 27379 numberOfExistingReferences == count find mustInRelationtype_attribute_Function(problem,interpretation,object,_);
30146 check(numberOfExistingReferences < 1); 27380 check(numberOfExistingReferences < 1);
30147 missingMultiplicity == eval(1-numberOfExistingReferences); 27381 missingMultiplicity == eval(1-numberOfExistingReferences);
30148} 27382}
@@ -30159,626 +27393,254 @@ pattern unfinishedLowerMultiplicity_eRawType_reference_EGenericType(problem:Logi
30159private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation) 27393private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation)
30160{ 27394{
30161 find interpretation(problem,interpretation); 27395 find interpretation(problem,interpretation);
30162 find mustInstanceOfEModelElement_class(problem,interpretation,root); 27396 find mustInstanceOfFunctionalInterface_class(problem,interpretation,root);
30163 find mustExist(problem, interpretation, root);
30164}or{
30165 find interpretation(problem,interpretation);
30166 find mustInstanceOfEEnum_class(problem,interpretation,root);
30167 find mustExist(problem, interpretation, root);
30168}or{
30169 find interpretation(problem,interpretation);
30170 find mustInstanceOfEAttribute_class(problem,interpretation,root);
30171 find mustExist(problem, interpretation, root);
30172}or{
30173 find interpretation(problem,interpretation);
30174 find mustInstanceOfEObject_class(problem,interpretation,root);
30175 find mustExist(problem, interpretation, root);
30176}or{
30177 find interpretation(problem,interpretation);
30178 find mustInstanceOfEClass_class(problem,interpretation,root);
30179 find mustExist(problem, interpretation, root);
30180}or{
30181 find interpretation(problem,interpretation);
30182 find mustInstanceOfEClassifier_class(problem,interpretation,root);
30183 find mustExist(problem, interpretation, root);
30184}or{
30185 find interpretation(problem,interpretation);
30186 find mustInstanceOfEEnumLiteral_class(problem,interpretation,root);
30187 find mustExist(problem, interpretation, root);
30188}or{
30189 find interpretation(problem,interpretation);
30190 find mustInstanceOfEPackage_class(problem,interpretation,root);
30191 find mustExist(problem, interpretation, root);
30192}or{
30193 find interpretation(problem,interpretation);
30194 find mustInstanceOfEOperation_class(problem,interpretation,root);
30195 find mustExist(problem, interpretation, root);
30196}or{
30197 find interpretation(problem,interpretation);
30198 find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,root);
30199 find mustExist(problem, interpretation, root);
30200}or{
30201 find interpretation(problem,interpretation);
30202 find mustInstanceOfEReference_class(problem,interpretation,root);
30203 find mustExist(problem, interpretation, root);
30204}or{
30205 find interpretation(problem,interpretation);
30206 find mustInstanceOfEAnnotation_class(problem,interpretation,root);
30207 find mustExist(problem, interpretation, root);
30208}or{
30209 find interpretation(problem,interpretation);
30210 find mustInstanceOfETypedElement_class(problem,interpretation,root);
30211 find mustExist(problem, interpretation, root);
30212}or{
30213 find interpretation(problem,interpretation);
30214 find mustInstanceOfEStructuralFeature_class(problem,interpretation,root);
30215 find mustExist(problem, interpretation, root);
30216}or{
30217 find interpretation(problem,interpretation);
30218 find mustInstanceOfEDataType_class(problem,interpretation,root);
30219 find mustExist(problem, interpretation, root); 27397 find mustExist(problem, interpretation, root);
30220}or{ 27398}or{
30221 find interpretation(problem,interpretation); 27399 find interpretation(problem,interpretation);
30222 find mustInstanceOfEParameter_class(problem,interpretation,root); 27400 find mustInstanceOfInformationLink_class(problem,interpretation,root);
30223 find mustExist(problem, interpretation, root); 27401 find mustExist(problem, interpretation, root);
30224}or{ 27402}or{
30225 find interpretation(problem,interpretation); 27403 find interpretation(problem,interpretation);
30226 find mustInstanceOfENamedElement_class(problem,interpretation,root); 27404 find mustInstanceOfFunctionalElement_class(problem,interpretation,root);
30227 find mustExist(problem, interpretation, root); 27405 find mustExist(problem, interpretation, root);
30228}or{ 27406}or{
30229 find interpretation(problem,interpretation); 27407 find interpretation(problem,interpretation);
30230 find mustInstanceOfEGenericType_class(problem,interpretation,root); 27408 find mustInstanceOfFAMTerminator_class(problem,interpretation,root);
30231 find mustExist(problem, interpretation, root); 27409 find mustExist(problem, interpretation, root);
30232}or{ 27410}or{
30233 find interpretation(problem,interpretation); 27411 find interpretation(problem,interpretation);
30234 find mustInstanceOfETypeParameter_class(problem,interpretation,root); 27412 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,root);
30235 find mustExist(problem, interpretation, root); 27413 find mustExist(problem, interpretation, root);
30236}or{ 27414}or{
30237 find interpretation(problem,interpretation); 27415 find interpretation(problem,interpretation);
30238 find mustInstanceOfEModelElement_class_DefinedPart(problem,interpretation,root); 27416 find mustInstanceOfFunctionalInput_class(problem,interpretation,root);
30239 find mustExist(problem, interpretation, root); 27417 find mustExist(problem, interpretation, root);
30240}or{ 27418}or{
30241 find interpretation(problem,interpretation); 27419 find interpretation(problem,interpretation);
30242 find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,root); 27420 find mustInstanceOfFunction_class(problem,interpretation,root);
30243 find mustExist(problem, interpretation, root); 27421 find mustExist(problem, interpretation, root);
30244}or{ 27422}or{
30245 find interpretation(problem,interpretation); 27423 find interpretation(problem,interpretation);
30246 find mustInstanceOfENamedElement_class_DefinedPart(problem,interpretation,root); 27424 find mustInstanceOfFunctionalOutput_class(problem,interpretation,root);
30247 find mustExist(problem, interpretation, root); 27425 find mustExist(problem, interpretation, root);
30248}or{ 27426}or{
30249 find interpretation(problem,interpretation); 27427 find interpretation(problem,interpretation);
30250 find mustInstanceOfENamedElement_class_UndefinedPart(problem,interpretation,root); 27428 find mustInstanceOfFunctionalData_class(problem,interpretation,root);
30251 find mustExist(problem, interpretation, root); 27429 find mustExist(problem, interpretation, root);
30252}or{ 27430}or{
30253 find interpretation(problem,interpretation); 27431 find interpretation(problem,interpretation);
30254 find mustInstanceOfEPackage_class_DefinedPart(problem,interpretation,root); 27432 find mustInstanceOfFunctionalArchitectureModel_class_DefinedPart(problem,interpretation,root);
30255 find mustExist(problem, interpretation, root); 27433 find mustExist(problem, interpretation, root);
30256}or{ 27434}or{
30257 find interpretation(problem,interpretation); 27435 find interpretation(problem,interpretation);
30258 find mustInstanceOfEPackage_class_UndefinedPart(problem,interpretation,root); 27436 find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,root);
30259 find mustExist(problem, interpretation, root); 27437 find mustExist(problem, interpretation, root);
30260} 27438}
30261pattern createObject_EAttribute_class_by_eStructuralFeatures_reference_EClass_with_eContainingClass_reference_EStructuralFeature( 27439pattern createObject_Function_class_by_rootElements_reference_FunctionalArchitectureModel(
30262 problem:LogicProblem, interpretation:PartialInterpretation,
30263 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
30264 container:DefinedElement)
30265{
30266 find interpretation(problem,interpretation);
30267 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
30268 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EAttribute class");
30269 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
30270 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eStructuralFeatures reference EClass");
30271 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
30272 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eContainingClass reference EStructuralFeature");
30273 find mustInstanceOfEClass_class(problem,interpretation,container);
30274 find mayInstanceOfEAttribute_class(problem,interpretation,newObject);
30275 find mayInRelationeStructuralFeatures_reference_EClass(problem,interpretation,container,newObject);
30276 find mustExist(problem, interpretation, container);
30277 neg find mustExist(problem, interpretation, newObject);
30278}
30279pattern createObject_EAttribute_class(
30280 problem:LogicProblem, interpretation:PartialInterpretation,
30281 typeInterpretation:PartialComplexTypeInterpretation)
30282{
30283 find interpretation(problem,interpretation);
30284 neg find hasElementInContainment(problem,interpretation);
30285 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
30286 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EAttribute class");
30287 find mayInstanceOfEAttribute_class(problem,interpretation,newObject);
30288 find mayExist(problem, interpretation, newObject);
30289 neg find mustExist(problem, interpretation, newObject);
30290}
30291pattern createObject_EAnnotation_class_by_eAnnotations_reference_EModelElement_with_eModelElement_reference_EAnnotation(
30292 problem:LogicProblem, interpretation:PartialInterpretation,
30293 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
30294 container:DefinedElement)
30295{
30296 find interpretation(problem,interpretation);
30297 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
30298 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EAnnotation class");
30299 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
30300 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eAnnotations reference EModelElement");
30301 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
30302 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eModelElement reference EAnnotation");
30303 find mustInstanceOfEModelElement_class(problem,interpretation,container);
30304 find mayInstanceOfEAnnotation_class(problem,interpretation,newObject);
30305 find mayInRelationeAnnotations_reference_EModelElement(problem,interpretation,container,newObject);
30306 find mustExist(problem, interpretation, container);
30307 neg find mustExist(problem, interpretation, newObject);
30308}
30309pattern createObject_EAnnotation_class(
30310 problem:LogicProblem, interpretation:PartialInterpretation,
30311 typeInterpretation:PartialComplexTypeInterpretation)
30312{
30313 find interpretation(problem,interpretation);
30314 neg find hasElementInContainment(problem,interpretation);
30315 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
30316 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EAnnotation class");
30317 find mayInstanceOfEAnnotation_class(problem,interpretation,newObject);
30318 find mayExist(problem, interpretation, newObject);
30319 neg find mustExist(problem, interpretation, newObject);
30320}
30321pattern createObject_EReference_class_by_eStructuralFeatures_reference_EClass_with_eContainingClass_reference_EStructuralFeature(
30322 problem:LogicProblem, interpretation:PartialInterpretation,
30323 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
30324 container:DefinedElement)
30325{
30326 find interpretation(problem,interpretation);
30327 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
30328 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EReference class");
30329 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
30330 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eStructuralFeatures reference EClass");
30331 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
30332 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eContainingClass reference EStructuralFeature");
30333 find mustInstanceOfEClass_class(problem,interpretation,container);
30334 find mayInstanceOfEReference_class(problem,interpretation,newObject);
30335 find mayInRelationeStructuralFeatures_reference_EClass(problem,interpretation,container,newObject);
30336 find mustExist(problem, interpretation, container);
30337 neg find mustExist(problem, interpretation, newObject);
30338}
30339pattern createObject_EReference_class(
30340 problem:LogicProblem, interpretation:PartialInterpretation,
30341 typeInterpretation:PartialComplexTypeInterpretation)
30342{
30343 find interpretation(problem,interpretation);
30344 neg find hasElementInContainment(problem,interpretation);
30345 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
30346 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EReference class");
30347 find mayInstanceOfEReference_class(problem,interpretation,newObject);
30348 find mayExist(problem, interpretation, newObject);
30349 neg find mustExist(problem, interpretation, newObject);
30350}
30351pattern createObject_EObject_class_by_contents_reference_EAnnotation(
30352 problem:LogicProblem, interpretation:PartialInterpretation, 27440 problem:LogicProblem, interpretation:PartialInterpretation,
30353 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 27441 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
30354 container:DefinedElement) 27442 container:DefinedElement)
30355{ 27443{
30356 find interpretation(problem,interpretation); 27444 find interpretation(problem,interpretation);
30357 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 27445 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
30358 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EObject class"); 27446 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class");
30359 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 27447 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
30360 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"contents reference EAnnotation"); 27448 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"rootElements reference FunctionalArchitectureModel");
30361 find mustInstanceOfEAnnotation_class(problem,interpretation,container); 27449 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,container);
30362 find mayInstanceOfEObject_class(problem,interpretation,newObject); 27450 find mayInstanceOfFunction_class(problem,interpretation,newObject);
30363 find mayInRelationcontents_reference_EAnnotation(problem,interpretation,container,newObject); 27451 find mayInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,container,newObject);
30364 find mustExist(problem, interpretation, container); 27452 find mustExist(problem, interpretation, container);
30365 neg find mustExist(problem, interpretation, newObject); 27453 neg find mustExist(problem, interpretation, newObject);
30366} 27454}
30367pattern createObject_EObject_class( 27455pattern createObject_Function_class_by_subElements_reference_Function_with_parent_reference_FunctionalElement(
30368 problem:LogicProblem, interpretation:PartialInterpretation,
30369 typeInterpretation:PartialComplexTypeInterpretation)
30370{
30371 find interpretation(problem,interpretation);
30372 neg find hasElementInContainment(problem,interpretation);
30373 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
30374 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EObject class");
30375 find mayInstanceOfEObject_class(problem,interpretation,newObject);
30376 find mayExist(problem, interpretation, newObject);
30377 neg find mustExist(problem, interpretation, newObject);
30378}
30379pattern createObject_EParameter_class_by_eParameters_reference_EOperation_with_eOperation_reference_EParameter(
30380 problem:LogicProblem, interpretation:PartialInterpretation, 27456 problem:LogicProblem, interpretation:PartialInterpretation,
30381 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 27457 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
30382 container:DefinedElement) 27458 container:DefinedElement)
30383{ 27459{
30384 find interpretation(problem,interpretation); 27460 find interpretation(problem,interpretation);
30385 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 27461 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
30386 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EParameter class"); 27462 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class");
30387 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 27463 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
30388 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eParameters reference EOperation"); 27464 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"subElements reference Function");
30389 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 27465 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
30390 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eOperation reference EParameter"); 27466 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"parent reference FunctionalElement");
30391 find mustInstanceOfEOperation_class(problem,interpretation,container); 27467 find mustInstanceOfFunction_class(problem,interpretation,container);
30392 find mayInstanceOfEParameter_class(problem,interpretation,newObject); 27468 find mayInstanceOfFunction_class(problem,interpretation,newObject);
30393 find mayInRelationeParameters_reference_EOperation(problem,interpretation,container,newObject); 27469 find mayInRelationsubElements_reference_Function(problem,interpretation,container,newObject);
30394 find mustExist(problem, interpretation, container); 27470 find mustExist(problem, interpretation, container);
30395 neg find mustExist(problem, interpretation, newObject); 27471 neg find mustExist(problem, interpretation, newObject);
30396} 27472}
30397pattern createObject_EParameter_class( 27473pattern createObject_Function_class(
30398 problem:LogicProblem, interpretation:PartialInterpretation, 27474 problem:LogicProblem, interpretation:PartialInterpretation,
30399 typeInterpretation:PartialComplexTypeInterpretation) 27475 typeInterpretation:PartialComplexTypeInterpretation)
30400{ 27476{
30401 find interpretation(problem,interpretation); 27477 find interpretation(problem,interpretation);
30402 neg find hasElementInContainment(problem,interpretation); 27478 neg find hasElementInContainment(problem,interpretation);
30403 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 27479 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
30404 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EParameter class"); 27480 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class");
30405 find mayInstanceOfEParameter_class(problem,interpretation,newObject); 27481 find mayInstanceOfFunction_class(problem,interpretation,newObject);
30406 find mayExist(problem, interpretation, newObject); 27482 find mayExist(problem, interpretation, newObject);
30407 neg find mustExist(problem, interpretation, newObject); 27483 neg find mustExist(problem, interpretation, newObject);
30408} 27484}
30409pattern createObject_EPackage_class_UndefinedPart_by_eSubpackages_reference_EPackage_with_eSuperPackage_reference_EPackage( 27485pattern createObject_InformationLink_class_by_outgoingLinks_reference_FunctionalOutput_with_from_reference_InformationLink(
30410 problem:LogicProblem, interpretation:PartialInterpretation, 27486 problem:LogicProblem, interpretation:PartialInterpretation,
30411 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 27487 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
30412 container:DefinedElement) 27488 container:DefinedElement)
30413{ 27489{
30414 find interpretation(problem,interpretation); 27490 find interpretation(problem,interpretation);
30415 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 27491 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
30416 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EPackage class UndefinedPart"); 27492 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class");
30417 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 27493 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
30418 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eSubpackages reference EPackage"); 27494 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"outgoingLinks reference FunctionalOutput");
30419 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 27495 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
30420 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eSuperPackage reference EPackage"); 27496 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"from reference InformationLink");
30421 find mustInstanceOfEPackage_class(problem,interpretation,container); 27497 find mustInstanceOfFunctionalOutput_class(problem,interpretation,container);
30422 find mayInstanceOfEPackage_class_UndefinedPart(problem,interpretation,newObject); 27498 find mayInstanceOfInformationLink_class(problem,interpretation,newObject);
30423 find mayInRelationeSubpackages_reference_EPackage(problem,interpretation,container,newObject); 27499 find mayInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,container,newObject);
30424 find mustExist(problem, interpretation, container);
30425 neg find mustExist(problem, interpretation, newObject);
30426}
30427pattern createObject_EPackage_class_UndefinedPart(
30428 problem:LogicProblem, interpretation:PartialInterpretation,
30429 typeInterpretation:PartialComplexTypeInterpretation)
30430{
30431 find interpretation(problem,interpretation);
30432 neg find hasElementInContainment(problem,interpretation);
30433 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
30434 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EPackage class UndefinedPart");
30435 find mayInstanceOfEPackage_class_UndefinedPart(problem,interpretation,newObject);
30436 find mayExist(problem, interpretation, newObject);
30437 neg find mustExist(problem, interpretation, newObject);
30438}
30439pattern createObject_EStringToStringMapEntry_class_by_details_reference_EAnnotation(
30440 problem:LogicProblem, interpretation:PartialInterpretation,
30441 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
30442 container:DefinedElement)
30443{
30444 find interpretation(problem,interpretation);
30445 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
30446 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EStringToStringMapEntry class");
30447 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
30448 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"details reference EAnnotation");
30449 find mustInstanceOfEAnnotation_class(problem,interpretation,container);
30450 find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,newObject);
30451 find mayInRelationdetails_reference_EAnnotation(problem,interpretation,container,newObject);
30452 find mustExist(problem, interpretation, container); 27500 find mustExist(problem, interpretation, container);
30453 neg find mustExist(problem, interpretation, newObject); 27501 neg find mustExist(problem, interpretation, newObject);
30454} 27502}
30455pattern createObject_EStringToStringMapEntry_class( 27503pattern createObject_InformationLink_class(
30456 problem:LogicProblem, interpretation:PartialInterpretation, 27504 problem:LogicProblem, interpretation:PartialInterpretation,
30457 typeInterpretation:PartialComplexTypeInterpretation) 27505 typeInterpretation:PartialComplexTypeInterpretation)
30458{ 27506{
30459 find interpretation(problem,interpretation); 27507 find interpretation(problem,interpretation);
30460 neg find hasElementInContainment(problem,interpretation); 27508 neg find hasElementInContainment(problem,interpretation);
30461 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 27509 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
30462 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EStringToStringMapEntry class"); 27510 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class");
30463 find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,newObject); 27511 find mayInstanceOfInformationLink_class(problem,interpretation,newObject);
30464 find mayExist(problem, interpretation, newObject); 27512 find mayExist(problem, interpretation, newObject);
30465 neg find mustExist(problem, interpretation, newObject); 27513 neg find mustExist(problem, interpretation, newObject);
30466} 27514}
30467pattern createObject_EEnum_class_by_eClassifiers_reference_EPackage_with_ePackage_reference_EClassifier( 27515pattern createObject_FunctionalInput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData(
30468 problem:LogicProblem, interpretation:PartialInterpretation, 27516 problem:LogicProblem, interpretation:PartialInterpretation,
30469 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 27517 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
30470 container:DefinedElement) 27518 container:DefinedElement)
30471{ 27519{
30472 find interpretation(problem,interpretation); 27520 find interpretation(problem,interpretation);
30473 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 27521 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
30474 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EEnum class"); 27522 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class");
30475 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 27523 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
30476 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eClassifiers reference EPackage"); 27524 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface");
30477 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 27525 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
30478 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"ePackage reference EClassifier"); 27526 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData");
30479 find mustInstanceOfEPackage_class(problem,interpretation,container); 27527 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container);
30480 find mayInstanceOfEEnum_class(problem,interpretation,newObject); 27528 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
30481 find mayInRelationeClassifiers_reference_EPackage(problem,interpretation,container,newObject); 27529 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject);
30482 find mustExist(problem, interpretation, container); 27530 find mustExist(problem, interpretation, container);
30483 neg find mustExist(problem, interpretation, newObject); 27531 neg find mustExist(problem, interpretation, newObject);
30484} 27532}
30485pattern createObject_EEnum_class( 27533pattern createObject_FunctionalInput_class(
30486 problem:LogicProblem, interpretation:PartialInterpretation, 27534 problem:LogicProblem, interpretation:PartialInterpretation,
30487 typeInterpretation:PartialComplexTypeInterpretation) 27535 typeInterpretation:PartialComplexTypeInterpretation)
30488{ 27536{
30489 find interpretation(problem,interpretation); 27537 find interpretation(problem,interpretation);
30490 neg find hasElementInContainment(problem,interpretation); 27538 neg find hasElementInContainment(problem,interpretation);
30491 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 27539 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
30492 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EEnum class"); 27540 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class");
30493 find mayInstanceOfEEnum_class(problem,interpretation,newObject); 27541 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
30494 find mayExist(problem, interpretation, newObject); 27542 find mayExist(problem, interpretation, newObject);
30495 neg find mustExist(problem, interpretation, newObject); 27543 neg find mustExist(problem, interpretation, newObject);
30496} 27544}
30497pattern createObject_EEnumLiteral_class_by_eLiterals_reference_EEnum_with_eEnum_reference_EEnumLiteral( 27545pattern createObject_FunctionalInterface_class_by_interface_reference_FunctionalElement_with_element_reference_FunctionalInterface(
30498 problem:LogicProblem, interpretation:PartialInterpretation, 27546 problem:LogicProblem, interpretation:PartialInterpretation,
30499 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 27547 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
30500 container:DefinedElement) 27548 container:DefinedElement)
30501{ 27549{
30502 find interpretation(problem,interpretation); 27550 find interpretation(problem,interpretation);
30503 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 27551 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
30504 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EEnumLiteral class"); 27552 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
30505 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 27553 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
30506 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eLiterals reference EEnum"); 27554 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"interface reference FunctionalElement");
30507 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 27555 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
30508 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eEnum reference EEnumLiteral"); 27556 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"element reference FunctionalInterface");
30509 find mustInstanceOfEEnum_class(problem,interpretation,container); 27557 find mustInstanceOfFunctionalElement_class(problem,interpretation,container);
30510 find mayInstanceOfEEnumLiteral_class(problem,interpretation,newObject); 27558 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
30511 find mayInRelationeLiterals_reference_EEnum(problem,interpretation,container,newObject); 27559 find mayInRelationinterface_reference_FunctionalElement(problem,interpretation,container,newObject);
30512 find mustExist(problem, interpretation, container);
30513 neg find mustExist(problem, interpretation, newObject);
30514}
30515pattern createObject_EEnumLiteral_class(
30516 problem:LogicProblem, interpretation:PartialInterpretation,
30517 typeInterpretation:PartialComplexTypeInterpretation)
30518{
30519 find interpretation(problem,interpretation);
30520 neg find hasElementInContainment(problem,interpretation);
30521 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
30522 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EEnumLiteral class");
30523 find mayInstanceOfEEnumLiteral_class(problem,interpretation,newObject);
30524 find mayExist(problem, interpretation, newObject);
30525 neg find mustExist(problem, interpretation, newObject);
30526}
30527pattern createObject_EGenericType_class_by_eGenericSuperTypes_reference_EClass(
30528 problem:LogicProblem, interpretation:PartialInterpretation,
30529 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
30530 container:DefinedElement)
30531{
30532 find interpretation(problem,interpretation);
30533 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
30534 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class");
30535 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
30536 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eGenericSuperTypes reference EClass");
30537 find mustInstanceOfEClass_class(problem,interpretation,container);
30538 find mayInstanceOfEGenericType_class(problem,interpretation,newObject);
30539 find mayInRelationeGenericSuperTypes_reference_EClass(problem,interpretation,container,newObject);
30540 find mustExist(problem, interpretation, container);
30541 neg find mustExist(problem, interpretation, newObject);
30542}
30543pattern createObject_EGenericType_class_by_eGenericExceptions_reference_EOperation(
30544 problem:LogicProblem, interpretation:PartialInterpretation,
30545 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
30546 container:DefinedElement)
30547{
30548 find interpretation(problem,interpretation);
30549 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
30550 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class");
30551 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
30552 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eGenericExceptions reference EOperation");
30553 find mustInstanceOfEOperation_class(problem,interpretation,container);
30554 find mayInstanceOfEGenericType_class(problem,interpretation,newObject);
30555 find mayInRelationeGenericExceptions_reference_EOperation(problem,interpretation,container,newObject);
30556 find mustExist(problem, interpretation, container);
30557 neg find mustExist(problem, interpretation, newObject);
30558}
30559pattern createObject_EGenericType_class_by_eGenericType_reference_ETypedElement(
30560 problem:LogicProblem, interpretation:PartialInterpretation,
30561 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
30562 container:DefinedElement)
30563{
30564 find interpretation(problem,interpretation);
30565 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
30566 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class");
30567 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
30568 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eGenericType reference ETypedElement");
30569 find mustInstanceOfETypedElement_class(problem,interpretation,container);
30570 find mayInstanceOfEGenericType_class(problem,interpretation,newObject);
30571 find mayInRelationeGenericType_reference_ETypedElement(problem,interpretation,container,newObject);
30572 find mustExist(problem, interpretation, container);
30573 neg find mustExist(problem, interpretation, newObject);
30574}
30575pattern createObject_EGenericType_class_by_eUpperBound_reference_EGenericType(
30576 problem:LogicProblem, interpretation:PartialInterpretation,
30577 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
30578 container:DefinedElement)
30579{
30580 find interpretation(problem,interpretation);
30581 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
30582 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class");
30583 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
30584 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eUpperBound reference EGenericType");
30585 find mustInstanceOfEGenericType_class(problem,interpretation,container);
30586 find mayInstanceOfEGenericType_class(problem,interpretation,newObject);
30587 find mayInRelationeUpperBound_reference_EGenericType(problem,interpretation,container,newObject);
30588 find mustExist(problem, interpretation, container);
30589 neg find mustExist(problem, interpretation, newObject);
30590}
30591pattern createObject_EGenericType_class_by_eTypeArguments_reference_EGenericType(
30592 problem:LogicProblem, interpretation:PartialInterpretation,
30593 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
30594 container:DefinedElement)
30595{
30596 find interpretation(problem,interpretation);
30597 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
30598 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class");
30599 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
30600 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eTypeArguments reference EGenericType");
30601 find mustInstanceOfEGenericType_class(problem,interpretation,container);
30602 find mayInstanceOfEGenericType_class(problem,interpretation,newObject);
30603 find mayInRelationeTypeArguments_reference_EGenericType(problem,interpretation,container,newObject);
30604 find mustExist(problem, interpretation, container);
30605 neg find mustExist(problem, interpretation, newObject);
30606}
30607pattern createObject_EGenericType_class_by_eLowerBound_reference_EGenericType(
30608 problem:LogicProblem, interpretation:PartialInterpretation,
30609 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
30610 container:DefinedElement)
30611{
30612 find interpretation(problem,interpretation);
30613 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
30614 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class");
30615 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
30616 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eLowerBound reference EGenericType");
30617 find mustInstanceOfEGenericType_class(problem,interpretation,container);
30618 find mayInstanceOfEGenericType_class(problem,interpretation,newObject);
30619 find mayInRelationeLowerBound_reference_EGenericType(problem,interpretation,container,newObject);
30620 find mustExist(problem, interpretation, container);
30621 neg find mustExist(problem, interpretation, newObject);
30622}
30623pattern createObject_EGenericType_class_by_eBounds_reference_ETypeParameter(
30624 problem:LogicProblem, interpretation:PartialInterpretation,
30625 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
30626 container:DefinedElement)
30627{
30628 find interpretation(problem,interpretation);
30629 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
30630 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class");
30631 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
30632 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eBounds reference ETypeParameter");
30633 find mustInstanceOfETypeParameter_class(problem,interpretation,container);
30634 find mayInstanceOfEGenericType_class(problem,interpretation,newObject);
30635 find mayInRelationeBounds_reference_ETypeParameter(problem,interpretation,container,newObject);
30636 find mustExist(problem, interpretation, container); 27560 find mustExist(problem, interpretation, container);
30637 neg find mustExist(problem, interpretation, newObject); 27561 neg find mustExist(problem, interpretation, newObject);
30638} 27562}
30639pattern createObject_EGenericType_class( 27563pattern createObject_FunctionalInterface_class(
30640 problem:LogicProblem, interpretation:PartialInterpretation, 27564 problem:LogicProblem, interpretation:PartialInterpretation,
30641 typeInterpretation:PartialComplexTypeInterpretation) 27565 typeInterpretation:PartialComplexTypeInterpretation)
30642{ 27566{
30643 find interpretation(problem,interpretation); 27567 find interpretation(problem,interpretation);
30644 neg find hasElementInContainment(problem,interpretation); 27568 neg find hasElementInContainment(problem,interpretation);
30645 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 27569 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
30646 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class"); 27570 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
30647 find mayInstanceOfEGenericType_class(problem,interpretation,newObject); 27571 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
30648 find mayExist(problem, interpretation, newObject); 27572 find mayExist(problem, interpretation, newObject);
30649 neg find mustExist(problem, interpretation, newObject); 27573 neg find mustExist(problem, interpretation, newObject);
30650} 27574}
30651pattern createObject_EOperation_class_by_eOperations_reference_EClass_with_eContainingClass_reference_EOperation( 27575pattern createObject_FunctionalOutput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData(
30652 problem:LogicProblem, interpretation:PartialInterpretation, 27576 problem:LogicProblem, interpretation:PartialInterpretation,
30653 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 27577 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
30654 container:DefinedElement) 27578 container:DefinedElement)
30655{ 27579{
30656 find interpretation(problem,interpretation); 27580 find interpretation(problem,interpretation);
30657 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 27581 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
30658 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EOperation class"); 27582 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class");
30659 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 27583 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
30660 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eOperations reference EClass"); 27584 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface");
30661 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 27585 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
30662 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eContainingClass reference EOperation"); 27586 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData");
30663 find mustInstanceOfEClass_class(problem,interpretation,container); 27587 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container);
30664 find mayInstanceOfEOperation_class(problem,interpretation,newObject); 27588 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject);
30665 find mayInRelationeOperations_reference_EClass(problem,interpretation,container,newObject); 27589 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject);
30666 find mustExist(problem, interpretation, container); 27590 find mustExist(problem, interpretation, container);
30667 neg find mustExist(problem, interpretation, newObject); 27591 neg find mustExist(problem, interpretation, newObject);
30668} 27592}
30669pattern createObject_EOperation_class( 27593pattern createObject_FunctionalOutput_class(
30670 problem:LogicProblem, interpretation:PartialInterpretation, 27594 problem:LogicProblem, interpretation:PartialInterpretation,
30671 typeInterpretation:PartialComplexTypeInterpretation) 27595 typeInterpretation:PartialComplexTypeInterpretation)
30672{ 27596{
30673 find interpretation(problem,interpretation); 27597 find interpretation(problem,interpretation);
30674 neg find hasElementInContainment(problem,interpretation); 27598 neg find hasElementInContainment(problem,interpretation);
30675 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 27599 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
30676 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EOperation class"); 27600 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class");
30677 find mayInstanceOfEOperation_class(problem,interpretation,newObject); 27601 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject);
30678 find mayExist(problem, interpretation, newObject); 27602 find mayExist(problem, interpretation, newObject);
30679 neg find mustExist(problem, interpretation, newObject); 27603 neg find mustExist(problem, interpretation, newObject);
30680} 27604}
30681pattern createObject_EDataType_class_by_eClassifiers_reference_EPackage_with_ePackage_reference_EClassifier( 27605pattern createObject_FunctionalArchitectureModel_class_UndefinedPart(
30682 problem:LogicProblem, interpretation:PartialInterpretation,
30683 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
30684 container:DefinedElement)
30685{
30686 find interpretation(problem,interpretation);
30687 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
30688 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EDataType class");
30689 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
30690 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eClassifiers reference EPackage");
30691 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
30692 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"ePackage reference EClassifier");
30693 find mustInstanceOfEPackage_class(problem,interpretation,container);
30694 find mayInstanceOfEDataType_class(problem,interpretation,newObject);
30695 find mayInRelationeClassifiers_reference_EPackage(problem,interpretation,container,newObject);
30696 find mustExist(problem, interpretation, container);
30697 neg find mustExist(problem, interpretation, newObject);
30698}
30699pattern createObject_EDataType_class(
30700 problem:LogicProblem, interpretation:PartialInterpretation, 27606 problem:LogicProblem, interpretation:PartialInterpretation,
30701 typeInterpretation:PartialComplexTypeInterpretation) 27607 typeInterpretation:PartialComplexTypeInterpretation)
30702{ 27608{
30703 find interpretation(problem,interpretation); 27609 find interpretation(problem,interpretation);
30704 neg find hasElementInContainment(problem,interpretation); 27610 neg find hasElementInContainment(problem,interpretation);
30705 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 27611 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
30706 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EDataType class"); 27612 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalArchitectureModel class UndefinedPart");
30707 find mayInstanceOfEDataType_class(problem,interpretation,newObject); 27613 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,newObject);
30708 find mayExist(problem, interpretation, newObject); 27614 find mayExist(problem, interpretation, newObject);
30709 neg find mustExist(problem, interpretation, newObject); 27615 neg find mustExist(problem, interpretation, newObject);
30710} 27616}
30711pattern createObject_EClass_class_by_eClassifiers_reference_EPackage_with_ePackage_reference_EClassifier( 27617pattern createObject_FAMTerminator_class_by_terminator_reference_FunctionalData_with_data_reference_FAMTerminator(
30712 problem:LogicProblem, interpretation:PartialInterpretation, 27618 problem:LogicProblem, interpretation:PartialInterpretation,
30713 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 27619 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
30714 container:DefinedElement) 27620 container:DefinedElement)
30715{ 27621{
30716 find interpretation(problem,interpretation); 27622 find interpretation(problem,interpretation);
30717 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 27623 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
30718 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EClass class"); 27624 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class");
30719 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 27625 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
30720 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eClassifiers reference EPackage"); 27626 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"terminator reference FunctionalData");
30721 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 27627 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
30722 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"ePackage reference EClassifier"); 27628 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"data reference FAMTerminator");
30723 find mustInstanceOfEPackage_class(problem,interpretation,container); 27629 find mustInstanceOfFunctionalData_class(problem,interpretation,container);
30724 find mayInstanceOfEClass_class(problem,interpretation,newObject); 27630 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject);
30725 find mayInRelationeClassifiers_reference_EPackage(problem,interpretation,container,newObject); 27631 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,container,newObject);
30726 find mustExist(problem, interpretation, container);
30727 neg find mustExist(problem, interpretation, newObject);
30728}
30729pattern createObject_EClass_class(
30730 problem:LogicProblem, interpretation:PartialInterpretation,
30731 typeInterpretation:PartialComplexTypeInterpretation)
30732{
30733 find interpretation(problem,interpretation);
30734 neg find hasElementInContainment(problem,interpretation);
30735 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
30736 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EClass class");
30737 find mayInstanceOfEClass_class(problem,interpretation,newObject);
30738 find mayExist(problem, interpretation, newObject);
30739 neg find mustExist(problem, interpretation, newObject);
30740}
30741pattern createObject_ETypeParameter_class_by_eTypeParameters_reference_EClassifier(
30742 problem:LogicProblem, interpretation:PartialInterpretation,
30743 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
30744 container:DefinedElement)
30745{
30746 find interpretation(problem,interpretation);
30747 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
30748 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"ETypeParameter class");
30749 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
30750 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eTypeParameters reference EClassifier");
30751 find mustInstanceOfEClassifier_class(problem,interpretation,container);
30752 find mayInstanceOfETypeParameter_class(problem,interpretation,newObject);
30753 find mayInRelationeTypeParameters_reference_EClassifier(problem,interpretation,container,newObject);
30754 find mustExist(problem, interpretation, container);
30755 neg find mustExist(problem, interpretation, newObject);
30756}
30757pattern createObject_ETypeParameter_class_by_eTypeParameters_reference_EOperation(
30758 problem:LogicProblem, interpretation:PartialInterpretation,
30759 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
30760 container:DefinedElement)
30761{
30762 find interpretation(problem,interpretation);
30763 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
30764 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"ETypeParameter class");
30765 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
30766 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eTypeParameters reference EOperation");
30767 find mustInstanceOfEOperation_class(problem,interpretation,container);
30768 find mayInstanceOfETypeParameter_class(problem,interpretation,newObject);
30769 find mayInRelationeTypeParameters_reference_EOperation(problem,interpretation,container,newObject);
30770 find mustExist(problem, interpretation, container); 27632 find mustExist(problem, interpretation, container);
30771 neg find mustExist(problem, interpretation, newObject); 27633 neg find mustExist(problem, interpretation, newObject);
30772} 27634}
30773pattern createObject_ETypeParameter_class( 27635pattern createObject_FAMTerminator_class(
30774 problem:LogicProblem, interpretation:PartialInterpretation, 27636 problem:LogicProblem, interpretation:PartialInterpretation,
30775 typeInterpretation:PartialComplexTypeInterpretation) 27637 typeInterpretation:PartialComplexTypeInterpretation)
30776{ 27638{
30777 find interpretation(problem,interpretation); 27639 find interpretation(problem,interpretation);
30778 neg find hasElementInContainment(problem,interpretation); 27640 neg find hasElementInContainment(problem,interpretation);
30779 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 27641 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
30780 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"ETypeParameter class"); 27642 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class");
30781 find mayInstanceOfETypeParameter_class(problem,interpretation,newObject); 27643 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject);
30782 find mayExist(problem, interpretation, newObject); 27644 find mayExist(problem, interpretation, newObject);
30783 neg find mustExist(problem, interpretation, newObject); 27645 neg find mustExist(problem, interpretation, newObject);
30784} 27646}
@@ -30786,950 +27648,135 @@ pattern createObject_ETypeParameter_class(
30786////////// 27648//////////
30787// 4.2 Type refinement 27649// 4.2 Type refinement
30788////////// 27650//////////
30789pattern refineTypeTo_EAttribute_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 27651pattern refineTypeTo_Function_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
30790 find interpretation(problem,interpretation);
30791 PartialInterpretation.newElements(interpretation,element);
30792 find mayInstanceOfEAttribute_class(problem,interpretation,element);
30793 neg find mustInstanceOfEAttribute_class(problem,interpretation,element);
30794 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
30795 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
30796 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
30797 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
30798 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
30799 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
30800 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
30801 neg find mustInstanceOfEReference_class(problem,interpretation,element);
30802 neg find mustInstanceOfEObject_class(problem,interpretation,element);
30803 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
30804 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
30805}
30806pattern refineTypeTo_EAnnotation_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
30807 find interpretation(problem,interpretation);
30808 PartialInterpretation.newElements(interpretation,element);
30809 find mayInstanceOfEAnnotation_class(problem,interpretation,element);
30810 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
30811 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
30812 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
30813 neg find mustInstanceOfEObject_class(problem,interpretation,element);
30814 neg find mustInstanceOfENamedElement_class(problem,interpretation,element);
30815}
30816pattern refineTypeTo_EReference_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
30817 find interpretation(problem,interpretation);
30818 PartialInterpretation.newElements(interpretation,element);
30819 find mayInstanceOfEReference_class(problem,interpretation,element);
30820 neg find mustInstanceOfEAttribute_class(problem,interpretation,element);
30821 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
30822 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
30823 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
30824 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
30825 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
30826 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
30827 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
30828 neg find mustInstanceOfEReference_class(problem,interpretation,element);
30829 neg find mustInstanceOfEObject_class(problem,interpretation,element);
30830 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
30831 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
30832}
30833pattern refineTypeTo_EObject_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
30834 find interpretation(problem,interpretation);
30835 PartialInterpretation.newElements(interpretation,element);
30836 find mayInstanceOfEObject_class(problem,interpretation,element);
30837 neg find mustInstanceOfEModelElement_class(problem,interpretation,element);
30838 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
30839 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
30840 neg find mustInstanceOfEObject_class(problem,interpretation,element);
30841}
30842pattern refineTypeTo_EParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
30843 find interpretation(problem,interpretation);
30844 PartialInterpretation.newElements(interpretation,element);
30845 find mayInstanceOfEParameter_class(problem,interpretation,element);
30846 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
30847 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
30848 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
30849 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
30850 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
30851 neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element);
30852 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
30853 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
30854 neg find mustInstanceOfEObject_class(problem,interpretation,element);
30855 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
30856 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
30857}
30858pattern refineTypeTo_EPackage_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
30859 find interpretation(problem,interpretation);
30860 PartialInterpretation.newElements(interpretation,element);
30861 find mayInstanceOfEPackage_class_UndefinedPart(problem,interpretation,element);
30862 neg find mustInstanceOfEPackage_class_UndefinedPart(problem,interpretation,element);
30863 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
30864 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
30865 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
30866 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
30867 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
30868 neg find mustInstanceOfEObject_class(problem,interpretation,element);
30869 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
30870 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
30871}
30872pattern refineTypeTo_EStringToStringMapEntry_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
30873 find interpretation(problem,interpretation);
30874 PartialInterpretation.newElements(interpretation,element);
30875 find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
30876 neg find mustInstanceOfEModelElement_class(problem,interpretation,element);
30877 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
30878 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
30879 neg find mustInstanceOfEObject_class(problem,interpretation,element);
30880}
30881pattern refineTypeTo_EEnum_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
30882 find interpretation(problem,interpretation);
30883 PartialInterpretation.newElements(interpretation,element);
30884 find mayInstanceOfEEnum_class(problem,interpretation,element);
30885 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
30886 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
30887 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
30888 neg find mustInstanceOfEEnum_class(problem,interpretation,element);
30889 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
30890 neg find mustInstanceOfEClass_class(problem,interpretation,element);
30891 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
30892 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
30893 neg find mustInstanceOfEObject_class(problem,interpretation,element);
30894 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
30895}
30896pattern refineTypeTo_EEnumLiteral_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
30897 find interpretation(problem,interpretation);
30898 PartialInterpretation.newElements(interpretation,element);
30899 find mayInstanceOfEEnumLiteral_class(problem,interpretation,element);
30900 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
30901 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
30902 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
30903 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
30904 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
30905 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
30906 neg find mustInstanceOfEObject_class(problem,interpretation,element);
30907 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
30908 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
30909}
30910pattern refineTypeTo_EGenericType_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
30911 find interpretation(problem,interpretation);
30912 PartialInterpretation.newElements(interpretation,element);
30913 find mayInstanceOfEGenericType_class(problem,interpretation,element);
30914 neg find mustInstanceOfEModelElement_class(problem,interpretation,element);
30915 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
30916 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
30917 neg find mustInstanceOfEObject_class(problem,interpretation,element);
30918}
30919pattern refineTypeTo_EOperation_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
30920 find interpretation(problem,interpretation);
30921 PartialInterpretation.newElements(interpretation,element);
30922 find mayInstanceOfEOperation_class(problem,interpretation,element);
30923 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
30924 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
30925 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
30926 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
30927 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
30928 neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element);
30929 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
30930 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
30931 neg find mustInstanceOfEObject_class(problem,interpretation,element);
30932 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
30933 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
30934}
30935pattern refineTypeTo_EDataType_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
30936 find interpretation(problem,interpretation);
30937 PartialInterpretation.newElements(interpretation,element);
30938 find mayInstanceOfEDataType_class(problem,interpretation,element);
30939 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
30940 neg find mustInstanceOfEEnum_class(problem,interpretation,element);
30941 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
30942 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
30943 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
30944 neg find mustInstanceOfEDataType_class(problem,interpretation,element);
30945 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
30946 neg find mustInstanceOfEClass_class(problem,interpretation,element);
30947 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
30948 neg find mustInstanceOfEObject_class(problem,interpretation,element);
30949 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
30950}
30951pattern refineTypeTo_EClass_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
30952 find interpretation(problem,interpretation);
30953 PartialInterpretation.newElements(interpretation,element);
30954 find mayInstanceOfEClass_class(problem,interpretation,element);
30955 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
30956 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
30957 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
30958 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
30959 neg find mustInstanceOfEDataType_class(problem,interpretation,element);
30960 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
30961 neg find mustInstanceOfEClass_class(problem,interpretation,element);
30962 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
30963 neg find mustInstanceOfEObject_class(problem,interpretation,element);
30964 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
30965}
30966pattern refineTypeTo_ETypeParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
30967 find interpretation(problem,interpretation);
30968 PartialInterpretation.newElements(interpretation,element);
30969 find mayInstanceOfETypeParameter_class(problem,interpretation,element);
30970 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
30971 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
30972 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
30973 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
30974 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
30975 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
30976 neg find mustInstanceOfEObject_class(problem,interpretation,element);
30977 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
30978 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
30979}
30980
30981//////////
30982// 4.3 Relation refinement
30983//////////
30984pattern refineRelation_eAttributeType_reference_EAttribute(
30985 problem:LogicProblem, interpretation:PartialInterpretation,
30986 relationIterpretation:PartialRelationInterpretation,
30987 from: DefinedElement, to: DefinedElement)
30988{
30989 find interpretation(problem,interpretation);
30990 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
30991 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAttributeType reference EAttribute");
30992 find mustExist(problem, interpretation, from);
30993 find mustExist(problem, interpretation, to);
30994 find mustInstanceOfEAttribute_class(problem,interpretation,from);
30995 find mustInstanceOfEDataType_class(problem,interpretation,to);
30996 find mayInRelationeAttributeType_reference_EAttribute(problem,interpretation,from,to);
30997 neg find mustInRelationeAttributeType_reference_EAttribute(problem,interpretation,from,to);
30998}
30999pattern refineRelation_references_reference_EAnnotation(
31000 problem:LogicProblem, interpretation:PartialInterpretation,
31001 relationIterpretation:PartialRelationInterpretation,
31002 from: DefinedElement, to: DefinedElement)
31003{
31004 find interpretation(problem,interpretation);
31005 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
31006 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"references reference EAnnotation");
31007 find mustExist(problem, interpretation, from);
31008 find mustExist(problem, interpretation, to);
31009 find mustInstanceOfEAnnotation_class(problem,interpretation,from);
31010 find mustInstanceOfEObject_class(problem,interpretation,to);
31011 find mayInRelationreferences_reference_EAnnotation(problem,interpretation,from,to);
31012 neg find mustInRelationreferences_reference_EAnnotation(problem,interpretation,from,to);
31013}
31014pattern refineRelation_eSuperTypes_reference_EClass(
31015 problem:LogicProblem, interpretation:PartialInterpretation,
31016 relationIterpretation:PartialRelationInterpretation,
31017 from: DefinedElement, to: DefinedElement)
31018{
31019 find interpretation(problem,interpretation);
31020 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
31021 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eSuperTypes reference EClass");
31022 find mustExist(problem, interpretation, from);
31023 find mustExist(problem, interpretation, to);
31024 find mustInstanceOfEClass_class(problem,interpretation,from);
31025 find mustInstanceOfEClass_class(problem,interpretation,to);
31026 find mayInRelationeSuperTypes_reference_EClass(problem,interpretation,from,to);
31027 neg find mustInRelationeSuperTypes_reference_EClass(problem,interpretation,from,to);
31028}
31029pattern refineRelation_eAllAttributes_reference_EClass(
31030 problem:LogicProblem, interpretation:PartialInterpretation,
31031 relationIterpretation:PartialRelationInterpretation,
31032 from: DefinedElement, to: DefinedElement)
31033{
31034 find interpretation(problem,interpretation);
31035 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
31036 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllAttributes reference EClass");
31037 find mustExist(problem, interpretation, from);
31038 find mustExist(problem, interpretation, to);
31039 find mustInstanceOfEClass_class(problem,interpretation,from);
31040 find mustInstanceOfEAttribute_class(problem,interpretation,to);
31041 find mayInRelationeAllAttributes_reference_EClass(problem,interpretation,from,to);
31042 neg find mustInRelationeAllAttributes_reference_EClass(problem,interpretation,from,to);
31043}
31044pattern refineRelation_eAllReferences_reference_EClass(
31045 problem:LogicProblem, interpretation:PartialInterpretation,
31046 relationIterpretation:PartialRelationInterpretation,
31047 from: DefinedElement, to: DefinedElement)
31048{
31049 find interpretation(problem,interpretation);
31050 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
31051 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllReferences reference EClass");
31052 find mustExist(problem, interpretation, from);
31053 find mustExist(problem, interpretation, to);
31054 find mustInstanceOfEClass_class(problem,interpretation,from);
31055 find mustInstanceOfEReference_class(problem,interpretation,to);
31056 find mayInRelationeAllReferences_reference_EClass(problem,interpretation,from,to);
31057 neg find mustInRelationeAllReferences_reference_EClass(problem,interpretation,from,to);
31058}
31059pattern refineRelation_eReferences_reference_EClass(
31060 problem:LogicProblem, interpretation:PartialInterpretation,
31061 relationIterpretation:PartialRelationInterpretation,
31062 from: DefinedElement, to: DefinedElement)
31063{
31064 find interpretation(problem,interpretation);
31065 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
31066 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eReferences reference EClass");
31067 find mustExist(problem, interpretation, from);
31068 find mustExist(problem, interpretation, to);
31069 find mustInstanceOfEClass_class(problem,interpretation,from);
31070 find mustInstanceOfEReference_class(problem,interpretation,to);
31071 find mayInRelationeReferences_reference_EClass(problem,interpretation,from,to);
31072 neg find mustInRelationeReferences_reference_EClass(problem,interpretation,from,to);
31073}
31074pattern refineRelation_eAttributes_reference_EClass(
31075 problem:LogicProblem, interpretation:PartialInterpretation,
31076 relationIterpretation:PartialRelationInterpretation,
31077 from: DefinedElement, to: DefinedElement)
31078{
31079 find interpretation(problem,interpretation);
31080 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
31081 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAttributes reference EClass");
31082 find mustExist(problem, interpretation, from);
31083 find mustExist(problem, interpretation, to);
31084 find mustInstanceOfEClass_class(problem,interpretation,from);
31085 find mustInstanceOfEAttribute_class(problem,interpretation,to);
31086 find mayInRelationeAttributes_reference_EClass(problem,interpretation,from,to);
31087 neg find mustInRelationeAttributes_reference_EClass(problem,interpretation,from,to);
31088}
31089pattern refineRelation_eAllContainments_reference_EClass(
31090 problem:LogicProblem, interpretation:PartialInterpretation,
31091 relationIterpretation:PartialRelationInterpretation,
31092 from: DefinedElement, to: DefinedElement)
31093{
31094 find interpretation(problem,interpretation);
31095 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
31096 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllContainments reference EClass");
31097 find mustExist(problem, interpretation, from);
31098 find mustExist(problem, interpretation, to);
31099 find mustInstanceOfEClass_class(problem,interpretation,from);
31100 find mustInstanceOfEReference_class(problem,interpretation,to);
31101 find mayInRelationeAllContainments_reference_EClass(problem,interpretation,from,to);
31102 neg find mustInRelationeAllContainments_reference_EClass(problem,interpretation,from,to);
31103}
31104pattern refineRelation_eAllOperations_reference_EClass(
31105 problem:LogicProblem, interpretation:PartialInterpretation,
31106 relationIterpretation:PartialRelationInterpretation,
31107 from: DefinedElement, to: DefinedElement)
31108{
31109 find interpretation(problem,interpretation);
31110 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
31111 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllOperations reference EClass");
31112 find mustExist(problem, interpretation, from);
31113 find mustExist(problem, interpretation, to);
31114 find mustInstanceOfEClass_class(problem,interpretation,from);
31115 find mustInstanceOfEOperation_class(problem,interpretation,to);
31116 find mayInRelationeAllOperations_reference_EClass(problem,interpretation,from,to);
31117 neg find mustInRelationeAllOperations_reference_EClass(problem,interpretation,from,to);
31118}
31119pattern refineRelation_eAllStructuralFeatures_reference_EClass(
31120 problem:LogicProblem, interpretation:PartialInterpretation,
31121 relationIterpretation:PartialRelationInterpretation,
31122 from: DefinedElement, to: DefinedElement)
31123{
31124 find interpretation(problem,interpretation);
31125 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
31126 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllStructuralFeatures reference EClass");
31127 find mustExist(problem, interpretation, from);
31128 find mustExist(problem, interpretation, to);
31129 find mustInstanceOfEClass_class(problem,interpretation,from);
31130 find mustInstanceOfEStructuralFeature_class(problem,interpretation,to);
31131 find mayInRelationeAllStructuralFeatures_reference_EClass(problem,interpretation,from,to);
31132 neg find mustInRelationeAllStructuralFeatures_reference_EClass(problem,interpretation,from,to);
31133}
31134pattern refineRelation_eAllSuperTypes_reference_EClass(
31135 problem:LogicProblem, interpretation:PartialInterpretation,
31136 relationIterpretation:PartialRelationInterpretation,
31137 from: DefinedElement, to: DefinedElement)
31138{
31139 find interpretation(problem,interpretation);
31140 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
31141 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllSuperTypes reference EClass");
31142 find mustExist(problem, interpretation, from);
31143 find mustExist(problem, interpretation, to);
31144 find mustInstanceOfEClass_class(problem,interpretation,from);
31145 find mustInstanceOfEClass_class(problem,interpretation,to);
31146 find mayInRelationeAllSuperTypes_reference_EClass(problem,interpretation,from,to);
31147 neg find mustInRelationeAllSuperTypes_reference_EClass(problem,interpretation,from,to);
31148}
31149pattern refineRelation_eIDAttribute_reference_EClass(
31150 problem:LogicProblem, interpretation:PartialInterpretation,
31151 relationIterpretation:PartialRelationInterpretation,
31152 from: DefinedElement, to: DefinedElement)
31153{
31154 find interpretation(problem,interpretation);
31155 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
31156 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eIDAttribute reference EClass");
31157 find mustExist(problem, interpretation, from);
31158 find mustExist(problem, interpretation, to);
31159 find mustInstanceOfEClass_class(problem,interpretation,from);
31160 find mustInstanceOfEAttribute_class(problem,interpretation,to);
31161 find mayInRelationeIDAttribute_reference_EClass(problem,interpretation,from,to);
31162 neg find mustInRelationeIDAttribute_reference_EClass(problem,interpretation,from,to);
31163}
31164pattern refineRelation_eAllGenericSuperTypes_reference_EClass(
31165 problem:LogicProblem, interpretation:PartialInterpretation,
31166 relationIterpretation:PartialRelationInterpretation,
31167 from: DefinedElement, to: DefinedElement)
31168{
31169 find interpretation(problem,interpretation);
31170 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
31171 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllGenericSuperTypes reference EClass");
31172 find mustExist(problem, interpretation, from);
31173 find mustExist(problem, interpretation, to);
31174 find mustInstanceOfEClass_class(problem,interpretation,from);
31175 find mustInstanceOfEGenericType_class(problem,interpretation,to);
31176 find mayInRelationeAllGenericSuperTypes_reference_EClass(problem,interpretation,from,to);
31177 neg find mustInRelationeAllGenericSuperTypes_reference_EClass(problem,interpretation,from,to);
31178}
31179pattern refineRelation_eExceptions_reference_EOperation(
31180 problem:LogicProblem, interpretation:PartialInterpretation,
31181 relationIterpretation:PartialRelationInterpretation,
31182 from: DefinedElement, to: DefinedElement)
31183{
31184 find interpretation(problem,interpretation);
31185 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
31186 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eExceptions reference EOperation");
31187 find mustExist(problem, interpretation, from);
31188 find mustExist(problem, interpretation, to);
31189 find mustInstanceOfEOperation_class(problem,interpretation,from);
31190 find mustInstanceOfEClassifier_class(problem,interpretation,to);
31191 find mayInRelationeExceptions_reference_EOperation(problem,interpretation,from,to);
31192 neg find mustInRelationeExceptions_reference_EOperation(problem,interpretation,from,to);
31193}
31194pattern refineRelation_eOpposite_reference_EReference(
31195 problem:LogicProblem, interpretation:PartialInterpretation,
31196 relationIterpretation:PartialRelationInterpretation,
31197 from: DefinedElement, to: DefinedElement)
31198{
31199 find interpretation(problem,interpretation);
31200 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
31201 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eOpposite reference EReference");
31202 find mustExist(problem, interpretation, from);
31203 find mustExist(problem, interpretation, to);
31204 find mustInstanceOfEReference_class(problem,interpretation,from);
31205 find mustInstanceOfEReference_class(problem,interpretation,to);
31206 find mayInRelationeOpposite_reference_EReference(problem,interpretation,from,to);
31207 neg find mustInRelationeOpposite_reference_EReference(problem,interpretation,from,to);
31208}
31209pattern refineRelation_eReferenceType_reference_EReference(
31210 problem:LogicProblem, interpretation:PartialInterpretation,
31211 relationIterpretation:PartialRelationInterpretation,
31212 from: DefinedElement, to: DefinedElement)
31213{
31214 find interpretation(problem,interpretation);
31215 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
31216 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eReferenceType reference EReference");
31217 find mustExist(problem, interpretation, from);
31218 find mustExist(problem, interpretation, to);
31219 find mustInstanceOfEReference_class(problem,interpretation,from);
31220 find mustInstanceOfEClass_class(problem,interpretation,to);
31221 find mayInRelationeReferenceType_reference_EReference(problem,interpretation,from,to);
31222 neg find mustInRelationeReferenceType_reference_EReference(problem,interpretation,from,to);
31223}
31224pattern refineRelation_eKeys_reference_EReference(
31225 problem:LogicProblem, interpretation:PartialInterpretation,
31226 relationIterpretation:PartialRelationInterpretation,
31227 from: DefinedElement, to: DefinedElement)
31228{
31229 find interpretation(problem,interpretation);
31230 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
31231 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eKeys reference EReference");
31232 find mustExist(problem, interpretation, from);
31233 find mustExist(problem, interpretation, to);
31234 find mustInstanceOfEReference_class(problem,interpretation,from);
31235 find mustInstanceOfEAttribute_class(problem,interpretation,to);
31236 find mayInRelationeKeys_reference_EReference(problem,interpretation,from,to);
31237 neg find mustInRelationeKeys_reference_EReference(problem,interpretation,from,to);
31238}
31239pattern refineRelation_eType_reference_ETypedElement(
31240 problem:LogicProblem, interpretation:PartialInterpretation,
31241 relationIterpretation:PartialRelationInterpretation,
31242 from: DefinedElement, to: DefinedElement)
31243{
31244 find interpretation(problem,interpretation);
31245 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
31246 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eType reference ETypedElement");
31247 find mustExist(problem, interpretation, from);
31248 find mustExist(problem, interpretation, to);
31249 find mustInstanceOfETypedElement_class(problem,interpretation,from);
31250 find mustInstanceOfEClassifier_class(problem,interpretation,to);
31251 find mayInRelationeType_reference_ETypedElement(problem,interpretation,from,to);
31252 neg find mustInRelationeType_reference_ETypedElement(problem,interpretation,from,to);
31253}
31254pattern refineRelation_eRawType_reference_EGenericType(
31255 problem:LogicProblem, interpretation:PartialInterpretation,
31256 relationIterpretation:PartialRelationInterpretation,
31257 from: DefinedElement, to: DefinedElement)
31258{
31259 find interpretation(problem,interpretation);
31260 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
31261 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eRawType reference EGenericType");
31262 find mustExist(problem, interpretation, from);
31263 find mustExist(problem, interpretation, to);
31264 find mustInstanceOfEGenericType_class(problem,interpretation,from);
31265 find mustInstanceOfEClassifier_class(problem,interpretation,to);
31266 find mayInRelationeRawType_reference_EGenericType(problem,interpretation,from,to);
31267 neg find mustInRelationeRawType_reference_EGenericType(problem,interpretation,from,to);
31268}
31269pattern refineRelation_eTypeParameter_reference_EGenericType(
31270 problem:LogicProblem, interpretation:PartialInterpretation,
31271 relationIterpretation:PartialRelationInterpretation,
31272 from: DefinedElement, to: DefinedElement)
31273{
31274 find interpretation(problem,interpretation);
31275 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
31276 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eTypeParameter reference EGenericType");
31277 find mustExist(problem, interpretation, from);
31278 find mustExist(problem, interpretation, to);
31279 find mustInstanceOfEGenericType_class(problem,interpretation,from);
31280 find mustInstanceOfETypeParameter_class(problem,interpretation,to);
31281 find mayInRelationeTypeParameter_reference_EGenericType(problem,interpretation,from,to);
31282 neg find mustInRelationeTypeParameter_reference_EGenericType(problem,interpretation,from,to);
31283}
31284pattern refineRelation_eClassifier_reference_EGenericType(
31285 problem:LogicProblem, interpretation:PartialInterpretation,
31286 relationIterpretation:PartialRelationInterpretation,
31287 from: DefinedElement, to: DefinedElement)
31288{
31289 find interpretation(problem,interpretation);
31290 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
31291 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eClassifier reference EGenericType");
31292 find mustExist(problem, interpretation, from);
31293 find mustExist(problem, interpretation, to);
31294 find mustInstanceOfEGenericType_class(problem,interpretation,from);
31295 find mustInstanceOfEClassifier_class(problem,interpretation,to);
31296 find mayInRelationeClassifier_reference_EGenericType(problem,interpretation,from,to);
31297 neg find mustInRelationeClassifier_reference_EGenericType(problem,interpretation,from,to);
31298}
31299pattern refineRelation_iD_attribute_EAttribute(
31300 problem:LogicProblem, interpretation:PartialInterpretation,
31301 relationIterpretation:PartialRelationInterpretation,
31302 from: DefinedElement, to: DefinedElement)
31303{
31304 find interpretation(problem,interpretation);
31305 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
31306 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"iD attribute EAttribute");
31307 find mustExist(problem, interpretation, from);
31308 find mustExist(problem, interpretation, to);
31309 find mustInstanceOfEAttribute_class(problem,interpretation,from);
31310 BooleanElement(to);
31311 find mayInRelationiD_attribute_EAttribute(problem,interpretation,from,to);
31312 neg find mustInRelationiD_attribute_EAttribute(problem,interpretation,from,to);
31313}
31314pattern refineRelation_source_attribute_EAnnotation(
31315 problem:LogicProblem, interpretation:PartialInterpretation,
31316 relationIterpretation:PartialRelationInterpretation,
31317 from: DefinedElement, to: DefinedElement)
31318{
31319 find interpretation(problem,interpretation);
31320 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
31321 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"source attribute EAnnotation");
31322 find mustExist(problem, interpretation, from);
31323 find mustExist(problem, interpretation, to);
31324 find mustInstanceOfEAnnotation_class(problem,interpretation,from);
31325 StringElement(to);
31326 find mayInRelationsource_attribute_EAnnotation(problem,interpretation,from,to);
31327 neg find mustInRelationsource_attribute_EAnnotation(problem,interpretation,from,to);
31328}
31329pattern refineRelation_abstract_attribute_EClass(
31330 problem:LogicProblem, interpretation:PartialInterpretation,
31331 relationIterpretation:PartialRelationInterpretation,
31332 from: DefinedElement, to: DefinedElement)
31333{
31334 find interpretation(problem,interpretation);
31335 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
31336 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"abstract attribute EClass");
31337 find mustExist(problem, interpretation, from);
31338 find mustExist(problem, interpretation, to);
31339 find mustInstanceOfEClass_class(problem,interpretation,from);
31340 BooleanElement(to);
31341 find mayInRelationabstract_attribute_EClass(problem,interpretation,from,to);
31342 neg find mustInRelationabstract_attribute_EClass(problem,interpretation,from,to);
31343}
31344pattern refineRelation_interface_attribute_EClass(
31345 problem:LogicProblem, interpretation:PartialInterpretation,
31346 relationIterpretation:PartialRelationInterpretation,
31347 from: DefinedElement, to: DefinedElement)
31348{
31349 find interpretation(problem,interpretation);
31350 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
31351 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"interface attribute EClass");
31352 find mustExist(problem, interpretation, from);
31353 find mustExist(problem, interpretation, to);
31354 find mustInstanceOfEClass_class(problem,interpretation,from);
31355 BooleanElement(to);
31356 find mayInRelationinterface_attribute_EClass(problem,interpretation,from,to);
31357 neg find mustInRelationinterface_attribute_EClass(problem,interpretation,from,to);
31358}
31359pattern refineRelation_instanceClassName_attribute_EClassifier(
31360 problem:LogicProblem, interpretation:PartialInterpretation,
31361 relationIterpretation:PartialRelationInterpretation,
31362 from: DefinedElement, to: DefinedElement)
31363{
31364 find interpretation(problem,interpretation);
31365 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
31366 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"instanceClassName attribute EClassifier");
31367 find mustExist(problem, interpretation, from);
31368 find mustExist(problem, interpretation, to);
31369 find mustInstanceOfEClassifier_class(problem,interpretation,from);
31370 StringElement(to);
31371 find mayInRelationinstanceClassName_attribute_EClassifier(problem,interpretation,from,to);
31372 neg find mustInRelationinstanceClassName_attribute_EClassifier(problem,interpretation,from,to);
31373}
31374pattern refineRelation_instanceTypeName_attribute_EClassifier(
31375 problem:LogicProblem, interpretation:PartialInterpretation,
31376 relationIterpretation:PartialRelationInterpretation,
31377 from: DefinedElement, to: DefinedElement)
31378{
31379 find interpretation(problem,interpretation);
31380 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
31381 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"instanceTypeName attribute EClassifier");
31382 find mustExist(problem, interpretation, from);
31383 find mustExist(problem, interpretation, to);
31384 find mustInstanceOfEClassifier_class(problem,interpretation,from);
31385 StringElement(to);
31386 find mayInRelationinstanceTypeName_attribute_EClassifier(problem,interpretation,from,to);
31387 neg find mustInRelationinstanceTypeName_attribute_EClassifier(problem,interpretation,from,to);
31388}
31389pattern refineRelation_serializable_attribute_EDataType(
31390 problem:LogicProblem, interpretation:PartialInterpretation,
31391 relationIterpretation:PartialRelationInterpretation,
31392 from: DefinedElement, to: DefinedElement)
31393{
31394 find interpretation(problem,interpretation);
31395 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
31396 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"serializable attribute EDataType");
31397 find mustExist(problem, interpretation, from);
31398 find mustExist(problem, interpretation, to);
31399 find mustInstanceOfEDataType_class(problem,interpretation,from);
31400 BooleanElement(to);
31401 find mayInRelationserializable_attribute_EDataType(problem,interpretation,from,to);
31402 neg find mustInRelationserializable_attribute_EDataType(problem,interpretation,from,to);
31403}
31404pattern refineRelation_value_attribute_EEnumLiteral(
31405 problem:LogicProblem, interpretation:PartialInterpretation,
31406 relationIterpretation:PartialRelationInterpretation,
31407 from: DefinedElement, to: DefinedElement)
31408{
31409 find interpretation(problem,interpretation);
31410 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
31411 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"value attribute EEnumLiteral");
31412 find mustExist(problem, interpretation, from);
31413 find mustExist(problem, interpretation, to);
31414 find mustInstanceOfEEnumLiteral_class(problem,interpretation,from);
31415 IntegerElement(to);
31416 find mayInRelationvalue_attribute_EEnumLiteral(problem,interpretation,from,to);
31417 neg find mustInRelationvalue_attribute_EEnumLiteral(problem,interpretation,from,to);
31418}
31419pattern refineRelation_literal_attribute_EEnumLiteral(
31420 problem:LogicProblem, interpretation:PartialInterpretation,
31421 relationIterpretation:PartialRelationInterpretation,
31422 from: DefinedElement, to: DefinedElement)
31423{
31424 find interpretation(problem,interpretation);
31425 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
31426 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"literal attribute EEnumLiteral");
31427 find mustExist(problem, interpretation, from);
31428 find mustExist(problem, interpretation, to);
31429 find mustInstanceOfEEnumLiteral_class(problem,interpretation,from);
31430 StringElement(to);
31431 find mayInRelationliteral_attribute_EEnumLiteral(problem,interpretation,from,to);
31432 neg find mustInRelationliteral_attribute_EEnumLiteral(problem,interpretation,from,to);
31433}
31434pattern refineRelation_name_attribute_ENamedElement(
31435 problem:LogicProblem, interpretation:PartialInterpretation,
31436 relationIterpretation:PartialRelationInterpretation,
31437 from: DefinedElement, to: DefinedElement)
31438{
31439 find interpretation(problem,interpretation);
31440 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
31441 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"name attribute ENamedElement");
31442 find mustExist(problem, interpretation, from);
31443 find mustExist(problem, interpretation, to);
31444 find mustInstanceOfENamedElement_class(problem,interpretation,from);
31445 StringElement(to);
31446 find mayInRelationname_attribute_ENamedElement(problem,interpretation,from,to);
31447 neg find mustInRelationname_attribute_ENamedElement(problem,interpretation,from,to);
31448}
31449pattern refineRelation_nsURI_attribute_EPackage(
31450 problem:LogicProblem, interpretation:PartialInterpretation,
31451 relationIterpretation:PartialRelationInterpretation,
31452 from: DefinedElement, to: DefinedElement)
31453{
31454 find interpretation(problem,interpretation);
31455 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
31456 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"nsURI attribute EPackage");
31457 find mustExist(problem, interpretation, from);
31458 find mustExist(problem, interpretation, to);
31459 find mustInstanceOfEPackage_class(problem,interpretation,from);
31460 StringElement(to);
31461 find mayInRelationnsURI_attribute_EPackage(problem,interpretation,from,to);
31462 neg find mustInRelationnsURI_attribute_EPackage(problem,interpretation,from,to);
31463}
31464pattern refineRelation_nsPrefix_attribute_EPackage(
31465 problem:LogicProblem, interpretation:PartialInterpretation,
31466 relationIterpretation:PartialRelationInterpretation,
31467 from: DefinedElement, to: DefinedElement)
31468{
31469 find interpretation(problem,interpretation);
31470 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
31471 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"nsPrefix attribute EPackage");
31472 find mustExist(problem, interpretation, from);
31473 find mustExist(problem, interpretation, to);
31474 find mustInstanceOfEPackage_class(problem,interpretation,from);
31475 StringElement(to);
31476 find mayInRelationnsPrefix_attribute_EPackage(problem,interpretation,from,to);
31477 neg find mustInRelationnsPrefix_attribute_EPackage(problem,interpretation,from,to);
31478}
31479pattern refineRelation_containment_attribute_EReference(
31480 problem:LogicProblem, interpretation:PartialInterpretation,
31481 relationIterpretation:PartialRelationInterpretation,
31482 from: DefinedElement, to: DefinedElement)
31483{
31484 find interpretation(problem,interpretation);
31485 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
31486 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"containment attribute EReference");
31487 find mustExist(problem, interpretation, from);
31488 find mustExist(problem, interpretation, to);
31489 find mustInstanceOfEReference_class(problem,interpretation,from);
31490 BooleanElement(to);
31491 find mayInRelationcontainment_attribute_EReference(problem,interpretation,from,to);
31492 neg find mustInRelationcontainment_attribute_EReference(problem,interpretation,from,to);
31493}
31494pattern refineRelation_container_attribute_EReference(
31495 problem:LogicProblem, interpretation:PartialInterpretation,
31496 relationIterpretation:PartialRelationInterpretation,
31497 from: DefinedElement, to: DefinedElement)
31498{
31499 find interpretation(problem,interpretation);
31500 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
31501 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"container attribute EReference");
31502 find mustExist(problem, interpretation, from);
31503 find mustExist(problem, interpretation, to);
31504 find mustInstanceOfEReference_class(problem,interpretation,from);
31505 BooleanElement(to);
31506 find mayInRelationcontainer_attribute_EReference(problem,interpretation,from,to);
31507 neg find mustInRelationcontainer_attribute_EReference(problem,interpretation,from,to);
31508}
31509pattern refineRelation_resolveProxies_attribute_EReference(
31510 problem:LogicProblem, interpretation:PartialInterpretation,
31511 relationIterpretation:PartialRelationInterpretation,
31512 from: DefinedElement, to: DefinedElement)
31513{
31514 find interpretation(problem,interpretation);
31515 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
31516 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"resolveProxies attribute EReference");
31517 find mustExist(problem, interpretation, from);
31518 find mustExist(problem, interpretation, to);
31519 find mustInstanceOfEReference_class(problem,interpretation,from);
31520 BooleanElement(to);
31521 find mayInRelationresolveProxies_attribute_EReference(problem,interpretation,from,to);
31522 neg find mustInRelationresolveProxies_attribute_EReference(problem,interpretation,from,to);
31523}
31524pattern refineRelation_changeable_attribute_EStructuralFeature(
31525 problem:LogicProblem, interpretation:PartialInterpretation,
31526 relationIterpretation:PartialRelationInterpretation,
31527 from: DefinedElement, to: DefinedElement)
31528{
31529 find interpretation(problem,interpretation);
31530 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
31531 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"changeable attribute EStructuralFeature");
31532 find mustExist(problem, interpretation, from);
31533 find mustExist(problem, interpretation, to);
31534 find mustInstanceOfEStructuralFeature_class(problem,interpretation,from);
31535 BooleanElement(to);
31536 find mayInRelationchangeable_attribute_EStructuralFeature(problem,interpretation,from,to);
31537 neg find mustInRelationchangeable_attribute_EStructuralFeature(problem,interpretation,from,to);
31538}
31539pattern refineRelation_volatile_attribute_EStructuralFeature(
31540 problem:LogicProblem, interpretation:PartialInterpretation,
31541 relationIterpretation:PartialRelationInterpretation,
31542 from: DefinedElement, to: DefinedElement)
31543{
31544 find interpretation(problem,interpretation);
31545 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
31546 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"volatile attribute EStructuralFeature");
31547 find mustExist(problem, interpretation, from);
31548 find mustExist(problem, interpretation, to);
31549 find mustInstanceOfEStructuralFeature_class(problem,interpretation,from);
31550 BooleanElement(to);
31551 find mayInRelationvolatile_attribute_EStructuralFeature(problem,interpretation,from,to);
31552 neg find mustInRelationvolatile_attribute_EStructuralFeature(problem,interpretation,from,to);
31553}
31554pattern refineRelation_transient_attribute_EStructuralFeature(
31555 problem:LogicProblem, interpretation:PartialInterpretation,
31556 relationIterpretation:PartialRelationInterpretation,
31557 from: DefinedElement, to: DefinedElement)
31558{
31559 find interpretation(problem,interpretation);
31560 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
31561 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"transient attribute EStructuralFeature");
31562 find mustExist(problem, interpretation, from);
31563 find mustExist(problem, interpretation, to);
31564 find mustInstanceOfEStructuralFeature_class(problem,interpretation,from);
31565 BooleanElement(to);
31566 find mayInRelationtransient_attribute_EStructuralFeature(problem,interpretation,from,to);
31567 neg find mustInRelationtransient_attribute_EStructuralFeature(problem,interpretation,from,to);
31568}
31569pattern refineRelation_defaultValueLiteral_attribute_EStructuralFeature(
31570 problem:LogicProblem, interpretation:PartialInterpretation,
31571 relationIterpretation:PartialRelationInterpretation,
31572 from: DefinedElement, to: DefinedElement)
31573{
31574 find interpretation(problem,interpretation);
31575 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
31576 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"defaultValueLiteral attribute EStructuralFeature");
31577 find mustExist(problem, interpretation, from);
31578 find mustExist(problem, interpretation, to);
31579 find mustInstanceOfEStructuralFeature_class(problem,interpretation,from);
31580 StringElement(to);
31581 find mayInRelationdefaultValueLiteral_attribute_EStructuralFeature(problem,interpretation,from,to);
31582 neg find mustInRelationdefaultValueLiteral_attribute_EStructuralFeature(problem,interpretation,from,to);
31583}
31584pattern refineRelation_unsettable_attribute_EStructuralFeature(
31585 problem:LogicProblem, interpretation:PartialInterpretation,
31586 relationIterpretation:PartialRelationInterpretation,
31587 from: DefinedElement, to: DefinedElement)
31588{
31589 find interpretation(problem,interpretation); 27652 find interpretation(problem,interpretation);
31590 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 27653 PartialInterpretation.newElements(interpretation,element);
31591 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"unsettable attribute EStructuralFeature"); 27654 find mayInstanceOfFunction_class(problem,interpretation,element);
31592 find mustExist(problem, interpretation, from); 27655 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
31593 find mustExist(problem, interpretation, to); 27656 neg find mustInstanceOfFunction_class(problem,interpretation,element);
31594 find mustInstanceOfEStructuralFeature_class(problem,interpretation,from); 27657 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
31595 BooleanElement(to); 27658 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
31596 find mayInRelationunsettable_attribute_EStructuralFeature(problem,interpretation,from,to); 27659 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
31597 neg find mustInRelationunsettable_attribute_EStructuralFeature(problem,interpretation,from,to); 27660 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
31598} 27661}
31599pattern refineRelation_derived_attribute_EStructuralFeature( 27662pattern refineTypeTo_InformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
31600 problem:LogicProblem, interpretation:PartialInterpretation,
31601 relationIterpretation:PartialRelationInterpretation,
31602 from: DefinedElement, to: DefinedElement)
31603{
31604 find interpretation(problem,interpretation); 27663 find interpretation(problem,interpretation);
31605 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 27664 PartialInterpretation.newElements(interpretation,element);
31606 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"derived attribute EStructuralFeature"); 27665 find mayInstanceOfInformationLink_class(problem,interpretation,element);
31607 find mustExist(problem, interpretation, from); 27666 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
31608 find mustExist(problem, interpretation, to); 27667 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
31609 find mustInstanceOfEStructuralFeature_class(problem,interpretation,from); 27668 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
31610 BooleanElement(to); 27669 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
31611 find mayInRelationderived_attribute_EStructuralFeature(problem,interpretation,from,to); 27670 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
31612 neg find mustInRelationderived_attribute_EStructuralFeature(problem,interpretation,from,to); 27671 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
31613} 27672}
31614pattern refineRelation_ordered_attribute_ETypedElement( 27673pattern refineTypeTo_FunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
31615 problem:LogicProblem, interpretation:PartialInterpretation,
31616 relationIterpretation:PartialRelationInterpretation,
31617 from: DefinedElement, to: DefinedElement)
31618{
31619 find interpretation(problem,interpretation); 27674 find interpretation(problem,interpretation);
31620 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 27675 PartialInterpretation.newElements(interpretation,element);
31621 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"ordered attribute ETypedElement"); 27676 find mayInstanceOfFunctionalInput_class(problem,interpretation,element);
31622 find mustExist(problem, interpretation, from); 27677 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
31623 find mustExist(problem, interpretation, to); 27678 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
31624 find mustInstanceOfETypedElement_class(problem,interpretation,from); 27679 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
31625 BooleanElement(to); 27680 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
31626 find mayInRelationordered_attribute_ETypedElement(problem,interpretation,from,to); 27681 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
31627 neg find mustInRelationordered_attribute_ETypedElement(problem,interpretation,from,to); 27682 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
27683 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
31628} 27684}
31629pattern refineRelation_unique_attribute_ETypedElement( 27685pattern refineTypeTo_FunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
31630 problem:LogicProblem, interpretation:PartialInterpretation,
31631 relationIterpretation:PartialRelationInterpretation,
31632 from: DefinedElement, to: DefinedElement)
31633{
31634 find interpretation(problem,interpretation); 27686 find interpretation(problem,interpretation);
31635 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 27687 PartialInterpretation.newElements(interpretation,element);
31636 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"unique attribute ETypedElement"); 27688 find mayInstanceOfFunctionalInterface_class(problem,interpretation,element);
31637 find mustExist(problem, interpretation, from); 27689 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
31638 find mustExist(problem, interpretation, to); 27690 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
31639 find mustInstanceOfETypedElement_class(problem,interpretation,from); 27691 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
31640 BooleanElement(to); 27692 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
31641 find mayInRelationunique_attribute_ETypedElement(problem,interpretation,from,to); 27693 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
31642 neg find mustInRelationunique_attribute_ETypedElement(problem,interpretation,from,to); 27694 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
31643} 27695}
31644pattern refineRelation_lowerBound_attribute_ETypedElement( 27696pattern refineTypeTo_FunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
31645 problem:LogicProblem, interpretation:PartialInterpretation,
31646 relationIterpretation:PartialRelationInterpretation,
31647 from: DefinedElement, to: DefinedElement)
31648{
31649 find interpretation(problem,interpretation); 27697 find interpretation(problem,interpretation);
31650 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 27698 PartialInterpretation.newElements(interpretation,element);
31651 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"lowerBound attribute ETypedElement"); 27699 find mayInstanceOfFunctionalOutput_class(problem,interpretation,element);
31652 find mustExist(problem, interpretation, from); 27700 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
31653 find mustExist(problem, interpretation, to); 27701 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
31654 find mustInstanceOfETypedElement_class(problem,interpretation,from); 27702 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
31655 IntegerElement(to); 27703 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
31656 find mayInRelationlowerBound_attribute_ETypedElement(problem,interpretation,from,to); 27704 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
31657 neg find mustInRelationlowerBound_attribute_ETypedElement(problem,interpretation,from,to); 27705 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
27706 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
31658} 27707}
31659pattern refineRelation_upperBound_attribute_ETypedElement( 27708pattern refineTypeTo_FunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
31660 problem:LogicProblem, interpretation:PartialInterpretation,
31661 relationIterpretation:PartialRelationInterpretation,
31662 from: DefinedElement, to: DefinedElement)
31663{
31664 find interpretation(problem,interpretation); 27709 find interpretation(problem,interpretation);
31665 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 27710 PartialInterpretation.newElements(interpretation,element);
31666 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"upperBound attribute ETypedElement"); 27711 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
31667 find mustExist(problem, interpretation, from); 27712 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
31668 find mustExist(problem, interpretation, to); 27713 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
31669 find mustInstanceOfETypedElement_class(problem,interpretation,from); 27714 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
31670 IntegerElement(to); 27715 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
31671 find mayInRelationupperBound_attribute_ETypedElement(problem,interpretation,from,to); 27716 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
31672 neg find mustInRelationupperBound_attribute_ETypedElement(problem,interpretation,from,to); 27717 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
31673} 27718}
31674pattern refineRelation_many_attribute_ETypedElement( 27719pattern refineTypeTo_FAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
31675 problem:LogicProblem, interpretation:PartialInterpretation,
31676 relationIterpretation:PartialRelationInterpretation,
31677 from: DefinedElement, to: DefinedElement)
31678{
31679 find interpretation(problem,interpretation); 27720 find interpretation(problem,interpretation);
31680 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 27721 PartialInterpretation.newElements(interpretation,element);
31681 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"many attribute ETypedElement"); 27722 find mayInstanceOfFAMTerminator_class(problem,interpretation,element);
31682 find mustExist(problem, interpretation, from); 27723 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
31683 find mustExist(problem, interpretation, to); 27724 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
31684 find mustInstanceOfETypedElement_class(problem,interpretation,from); 27725 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
31685 BooleanElement(to); 27726 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
31686 find mayInRelationmany_attribute_ETypedElement(problem,interpretation,from,to); 27727 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
31687 neg find mustInRelationmany_attribute_ETypedElement(problem,interpretation,from,to); 27728 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
31688} 27729}
31689pattern refineRelation_required_attribute_ETypedElement( 27730
27731//////////
27732// 4.3 Relation refinement
27733//////////
27734pattern refineRelation_model_reference_FunctionalElement(
31690 problem:LogicProblem, interpretation:PartialInterpretation, 27735 problem:LogicProblem, interpretation:PartialInterpretation,
31691 relationIterpretation:PartialRelationInterpretation, 27736 relationIterpretation:PartialRelationInterpretation,
31692 from: DefinedElement, to: DefinedElement) 27737 from: DefinedElement, to: DefinedElement)
31693{ 27738{
31694 find interpretation(problem,interpretation); 27739 find interpretation(problem,interpretation);
31695 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 27740 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
31696 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"required attribute ETypedElement"); 27741 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement");
31697 find mustExist(problem, interpretation, from); 27742 find mustExist(problem, interpretation, from);
31698 find mustExist(problem, interpretation, to); 27743 find mustExist(problem, interpretation, to);
31699 find mustInstanceOfETypedElement_class(problem,interpretation,from); 27744 find mustInstanceOfFunctionalElement_class(problem,interpretation,from);
31700 BooleanElement(to); 27745 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,to);
31701 find mayInRelationrequired_attribute_ETypedElement(problem,interpretation,from,to); 27746 find mayInRelationmodel_reference_FunctionalElement(problem,interpretation,from,to);
31702 neg find mustInRelationrequired_attribute_ETypedElement(problem,interpretation,from,to); 27747 neg find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,from,to);
31703} 27748}
31704pattern refineRelation_key_attribute_EStringToStringMapEntry( 27749pattern refineRelation_IncomingLinks_reference_FunctionalInput_and_to_reference_InformationLink(
31705 problem:LogicProblem, interpretation:PartialInterpretation, 27750 problem:LogicProblem, interpretation:PartialInterpretation,
31706 relationIterpretation:PartialRelationInterpretation, 27751 relationIterpretation:PartialRelationInterpretation, oppositeInterpretation:PartialRelationInterpretation,
31707 from: DefinedElement, to: DefinedElement) 27752 from: DefinedElement, to: DefinedElement)
31708{ 27753{
31709 find interpretation(problem,interpretation); 27754 find interpretation(problem,interpretation);
31710 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 27755 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
31711 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"key attribute EStringToStringMapEntry"); 27756 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"IncomingLinks reference FunctionalInput");
27757 PartialInterpretation.partialrelationinterpretation(interpretation,oppositeInterpretation);
27758 PartialRelationInterpretation.interpretationOf.name(oppositeInterpretation,"to reference InformationLink");
31712 find mustExist(problem, interpretation, from); 27759 find mustExist(problem, interpretation, from);
31713 find mustExist(problem, interpretation, to); 27760 find mustExist(problem, interpretation, to);
31714 find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,from); 27761 find mustInstanceOfFunctionalInput_class(problem,interpretation,from);
31715 StringElement(to); 27762 find mustInstanceOfInformationLink_class(problem,interpretation,to);
31716 find mayInRelationkey_attribute_EStringToStringMapEntry(problem,interpretation,from,to); 27763 find mayInRelationIncomingLinks_reference_FunctionalInput(problem,interpretation,from,to);
31717 neg find mustInRelationkey_attribute_EStringToStringMapEntry(problem,interpretation,from,to); 27764 neg find mustInRelationIncomingLinks_reference_FunctionalInput(problem,interpretation,from,to);
31718} 27765}
31719pattern refineRelation_value_attribute_EStringToStringMapEntry( 27766pattern refineRelation_type_attribute_Function(
31720 problem:LogicProblem, interpretation:PartialInterpretation, 27767 problem:LogicProblem, interpretation:PartialInterpretation,
31721 relationIterpretation:PartialRelationInterpretation, 27768 relationIterpretation:PartialRelationInterpretation,
31722 from: DefinedElement, to: DefinedElement) 27769 from: DefinedElement, to: DefinedElement)
31723{ 27770{
31724 find interpretation(problem,interpretation); 27771 find interpretation(problem,interpretation);
31725 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 27772 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
31726 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"value attribute EStringToStringMapEntry"); 27773 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function");
31727 find mustExist(problem, interpretation, from); 27774 find mustExist(problem, interpretation, from);
31728 find mustExist(problem, interpretation, to); 27775 find mustExist(problem, interpretation, to);
31729 find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,from); 27776 find mustInstanceOfFunction_class(problem,interpretation,from);
31730 StringElement(to); 27777 find mustInstanceOfFunctionType_enum(problem,interpretation,to);
31731 find mayInRelationvalue_attribute_EStringToStringMapEntry(problem,interpretation,from,to); 27778 find mayInRelationtype_attribute_Function(problem,interpretation,from,to);
31732 neg find mustInRelationvalue_attribute_EStringToStringMapEntry(problem,interpretation,from,to); 27779 neg find mustInRelationtype_attribute_Function(problem,interpretation,from,to);
31733} 27780}
31734import epackage "http://www.bme.hu/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage" 27781import epackage "http://www.bme.hu/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage"
31735import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem" 27782import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem"
@@ -31837,23 +27884,23 @@ private pattern mayInstanceOfFunctionalElement_class(problem:LogicProblem, inter
31837{ 27884{
31838 find interpretation(problem,interpretation); 27885 find interpretation(problem,interpretation);
31839 PartialInterpretation.newElements(interpretation,element); 27886 PartialInterpretation.newElements(interpretation,element);
31840 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
31841 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
31842 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 27887 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
31843 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 27888 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
31844 neg find mustInstanceOfFunction_class(problem,interpretation,element);
31845 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 27889 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
27890 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
27891 neg find mustInstanceOfFunction_class(problem,interpretation,element);
27892 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
31846 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation); 27893 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
31847 neg find isPrimitive(element); 27894 neg find isPrimitive(element);
31848} or { 27895} or {
31849 find interpretation(problem,interpretation); 27896 find interpretation(problem,interpretation);
31850 PartialInterpretation.openWorldElements(interpretation,element); 27897 PartialInterpretation.openWorldElements(interpretation,element);
31851 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
31852 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
31853 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 27898 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
31854 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 27899 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
31855 neg find mustInstanceOfFunction_class(problem,interpretation,element);
31856 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 27900 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
27901 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
27902 neg find mustInstanceOfFunction_class(problem,interpretation,element);
27903 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
31857 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation); 27904 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
31858 neg find isPrimitive(element); 27905 neg find isPrimitive(element);
31859} or 27906} or
@@ -31881,23 +27928,21 @@ private pattern mayInstanceOfFunctionalArchitectureModel_class(problem:LogicProb
31881{ 27928{
31882 find interpretation(problem,interpretation); 27929 find interpretation(problem,interpretation);
31883 PartialInterpretation.newElements(interpretation,element); 27930 PartialInterpretation.newElements(interpretation,element);
31884 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
31885 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
31886 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 27931 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
31887 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 27932 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
31888 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); 27933 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
31889 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 27934 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
27935 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
31890 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation); 27936 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
31891 neg find isPrimitive(element); 27937 neg find isPrimitive(element);
31892} or { 27938} or {
31893 find interpretation(problem,interpretation); 27939 find interpretation(problem,interpretation);
31894 PartialInterpretation.openWorldElements(interpretation,element); 27940 PartialInterpretation.openWorldElements(interpretation,element);
31895 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
31896 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
31897 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 27941 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
31898 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 27942 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
31899 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); 27943 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
31900 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 27944 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
27945 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
31901 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation); 27946 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
31902 neg find isPrimitive(element); 27947 neg find isPrimitive(element);
31903} or 27948} or
@@ -31925,21 +27970,21 @@ private pattern mayInstanceOfFunction_class(problem:LogicProblem, interpretation
31925{ 27970{
31926 find interpretation(problem,interpretation); 27971 find interpretation(problem,interpretation);
31927 PartialInterpretation.newElements(interpretation,element); 27972 PartialInterpretation.newElements(interpretation,element);
31928 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
31929 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 27973 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
31930 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
31931 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 27974 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
27975 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
31932 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 27976 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
27977 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
31933 neg find scopeDisallowsNewFunction_class(problem, interpretation); 27978 neg find scopeDisallowsNewFunction_class(problem, interpretation);
31934 neg find isPrimitive(element); 27979 neg find isPrimitive(element);
31935} or { 27980} or {
31936 find interpretation(problem,interpretation); 27981 find interpretation(problem,interpretation);
31937 PartialInterpretation.openWorldElements(interpretation,element); 27982 PartialInterpretation.openWorldElements(interpretation,element);
31938 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
31939 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 27983 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
31940 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
31941 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 27984 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
27985 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
31942 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 27986 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
27987 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
31943 neg find scopeDisallowsNewFunction_class(problem, interpretation); 27988 neg find scopeDisallowsNewFunction_class(problem, interpretation);
31944 neg find isPrimitive(element); 27989 neg find isPrimitive(element);
31945} or 27990} or
@@ -31967,21 +28012,21 @@ private pattern mayInstanceOfFAMTerminator_class(problem:LogicProblem, interpret
31967{ 28012{
31968 find interpretation(problem,interpretation); 28013 find interpretation(problem,interpretation);
31969 PartialInterpretation.newElements(interpretation,element); 28014 PartialInterpretation.newElements(interpretation,element);
31970 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
31971 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 28015 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
31972 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 28016 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
31973 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 28017 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
31974 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 28018 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
28019 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
31975 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation); 28020 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
31976 neg find isPrimitive(element); 28021 neg find isPrimitive(element);
31977} or { 28022} or {
31978 find interpretation(problem,interpretation); 28023 find interpretation(problem,interpretation);
31979 PartialInterpretation.openWorldElements(interpretation,element); 28024 PartialInterpretation.openWorldElements(interpretation,element);
31980 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
31981 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 28025 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
31982 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 28026 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
31983 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 28027 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
31984 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 28028 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
28029 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
31985 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation); 28030 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
31986 neg find isPrimitive(element); 28031 neg find isPrimitive(element);
31987} or 28032} or
@@ -32009,21 +28054,21 @@ private pattern mayInstanceOfInformationLink_class(problem:LogicProblem, interpr
32009{ 28054{
32010 find interpretation(problem,interpretation); 28055 find interpretation(problem,interpretation);
32011 PartialInterpretation.newElements(interpretation,element); 28056 PartialInterpretation.newElements(interpretation,element);
32012 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
32013 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
32014 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
32015 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 28057 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
28058 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
28059 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
32016 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 28060 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
28061 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
32017 neg find scopeDisallowsNewInformationLink_class(problem, interpretation); 28062 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
32018 neg find isPrimitive(element); 28063 neg find isPrimitive(element);
32019} or { 28064} or {
32020 find interpretation(problem,interpretation); 28065 find interpretation(problem,interpretation);
32021 PartialInterpretation.openWorldElements(interpretation,element); 28066 PartialInterpretation.openWorldElements(interpretation,element);
32022 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
32023 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
32024 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
32025 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 28067 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
28068 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
28069 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
32026 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 28070 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
28071 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
32027 neg find scopeDisallowsNewInformationLink_class(problem, interpretation); 28072 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
32028 neg find isPrimitive(element); 28073 neg find isPrimitive(element);
32029} or 28074} or
@@ -32051,20 +28096,20 @@ private pattern mayInstanceOfFunctionalInterface_class(problem:LogicProblem, int
32051{ 28096{
32052 find interpretation(problem,interpretation); 28097 find interpretation(problem,interpretation);
32053 PartialInterpretation.newElements(interpretation,element); 28098 PartialInterpretation.newElements(interpretation,element);
32054 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
32055 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 28099 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
32056 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
32057 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 28100 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
28101 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
28102 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
32058 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 28103 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
32059 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation); 28104 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
32060 neg find isPrimitive(element); 28105 neg find isPrimitive(element);
32061} or { 28106} or {
32062 find interpretation(problem,interpretation); 28107 find interpretation(problem,interpretation);
32063 PartialInterpretation.openWorldElements(interpretation,element); 28108 PartialInterpretation.openWorldElements(interpretation,element);
32064 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
32065 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 28109 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
32066 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
32067 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 28110 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
28111 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
28112 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
32068 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 28113 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
32069 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation); 28114 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
32070 neg find isPrimitive(element); 28115 neg find isPrimitive(element);
@@ -32093,22 +28138,22 @@ private pattern mayInstanceOfFunctionalInput_class(problem:LogicProblem, interpr
32093{ 28138{
32094 find interpretation(problem,interpretation); 28139 find interpretation(problem,interpretation);
32095 PartialInterpretation.newElements(interpretation,element); 28140 PartialInterpretation.newElements(interpretation,element);
32096 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
32097 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 28141 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
32098 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
32099 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
32100 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 28142 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
28143 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
28144 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
28145 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
32101 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 28146 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
32102 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation); 28147 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
32103 neg find isPrimitive(element); 28148 neg find isPrimitive(element);
32104} or { 28149} or {
32105 find interpretation(problem,interpretation); 28150 find interpretation(problem,interpretation);
32106 PartialInterpretation.openWorldElements(interpretation,element); 28151 PartialInterpretation.openWorldElements(interpretation,element);
32107 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
32108 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 28152 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
32109 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
32110 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
32111 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 28153 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
28154 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
28155 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
28156 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
32112 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 28157 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
32113 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation); 28158 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
32114 neg find isPrimitive(element); 28159 neg find isPrimitive(element);
@@ -32137,23 +28182,23 @@ private pattern mayInstanceOfFunctionalOutput_class(problem:LogicProblem, interp
32137{ 28182{
32138 find interpretation(problem,interpretation); 28183 find interpretation(problem,interpretation);
32139 PartialInterpretation.newElements(interpretation,element); 28184 PartialInterpretation.newElements(interpretation,element);
32140 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
32141 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
32142 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 28185 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
32143 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
32144 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
32145 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 28186 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
28187 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
28188 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
28189 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
28190 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
32146 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation); 28191 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
32147 neg find isPrimitive(element); 28192 neg find isPrimitive(element);
32148} or { 28193} or {
32149 find interpretation(problem,interpretation); 28194 find interpretation(problem,interpretation);
32150 PartialInterpretation.openWorldElements(interpretation,element); 28195 PartialInterpretation.openWorldElements(interpretation,element);
32151 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
32152 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
32153 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 28196 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
32154 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
32155 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
32156 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 28197 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
28198 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
28199 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
28200 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
28201 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
32157 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation); 28202 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
32158 neg find isPrimitive(element); 28203 neg find isPrimitive(element);
32159} or 28204} or
@@ -32181,25 +28226,25 @@ private pattern mayInstanceOfFunctionalData_class(problem:LogicProblem, interpre
32181{ 28226{
32182 find interpretation(problem,interpretation); 28227 find interpretation(problem,interpretation);
32183 PartialInterpretation.newElements(interpretation,element); 28228 PartialInterpretation.newElements(interpretation,element);
32184 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
32185 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 28229 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
32186 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
32187 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
32188 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 28230 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
32189 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 28231 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
28232 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
28233 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
32190 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 28234 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
28235 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
32191 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation); 28236 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
32192 neg find isPrimitive(element); 28237 neg find isPrimitive(element);
32193} or { 28238} or {
32194 find interpretation(problem,interpretation); 28239 find interpretation(problem,interpretation);
32195 PartialInterpretation.openWorldElements(interpretation,element); 28240 PartialInterpretation.openWorldElements(interpretation,element);
32196 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
32197 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 28241 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
32198 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
32199 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
32200 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 28242 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
32201 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 28243 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
28244 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
28245 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
32202 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 28246 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
28247 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
32203 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation); 28248 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
32204 neg find isPrimitive(element); 28249 neg find isPrimitive(element);
32205} or 28250} or
@@ -32225,69 +28270,6 @@ private pattern scopeDisallowsNewFunctionType_enum(problem:LogicProblem, interpr
32225 */ 28270 */
32226private pattern mayInstanceOfFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 28271private pattern mayInstanceOfFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
32227{ find mustInstanceOfFunctionType_enum(problem,interpretation,element); } 28272{ find mustInstanceOfFunctionType_enum(problem,interpretation,element); }
32228/**
32229 * An element must be an instance of type "FunctionalArchitectureModel class DefinedPart".
32230 */
32231private pattern mustInstanceOfFunctionalArchitectureModel_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
32232 Type.name(type,"FunctionalArchitectureModel class DefinedPart");
32233 find directInstanceOf(problem,interpretation,element,type);
32234}
32235private pattern scopeDisallowsNewFunctionalArchitectureModel_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
32236 find interpretation(problem,interpretation);
32237 PartialInterpretation.scopes(interpretation,scope);
32238 Scope.targetTypeInterpretation(scope,typeInterpretation);
32239 Scope.maxNewElements(scope,0);
32240 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
32241 Type.name(type,"FunctionalArchitectureModel class DefinedPart");
32242}
32243
32244/**
32245 * An element may be an instance of type "FunctionalArchitectureModel class DefinedPart".
32246 */
32247private pattern mayInstanceOfFunctionalArchitectureModel_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
32248{ find mustInstanceOfFunctionalArchitectureModel_class_DefinedPart(problem,interpretation,element); }
32249/**
32250 * An element must be an instance of type "FunctionalArchitectureModel class UndefinedPart".
32251 */
32252private pattern mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
32253 Type.name(type,"FunctionalArchitectureModel class UndefinedPart");
32254 find directInstanceOf(problem,interpretation,element,type);
32255}
32256private pattern scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
32257 find interpretation(problem,interpretation);
32258 PartialInterpretation.scopes(interpretation,scope);
32259 Scope.targetTypeInterpretation(scope,typeInterpretation);
32260 Scope.maxNewElements(scope,0);
32261 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
32262 Type.name(type,"FunctionalArchitectureModel class UndefinedPart");
32263}
32264
32265/**
32266 * An element may be an instance of type "FunctionalArchitectureModel class UndefinedPart".
32267 */
32268private pattern mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
32269{
32270 find interpretation(problem,interpretation);
32271 PartialInterpretation.newElements(interpretation,element);
32272 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
32273 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
32274 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
32275 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
32276 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
32277 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation);
32278 neg find isPrimitive(element);
32279} or {
32280 find interpretation(problem,interpretation);
32281 PartialInterpretation.openWorldElements(interpretation,element);
32282 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
32283 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
32284 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
32285 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
32286 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
32287 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation);
32288 neg find isPrimitive(element);
32289} or
32290{ find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); }
32291 28273
32292////////// 28274//////////
32293// 1.2 Relation Declaration Indexers 28275// 1.2 Relation Declaration Indexers
@@ -32965,11 +28947,11 @@ pattern unfinishedLowerMultiplicity_type_attribute_Function(problem:LogicProblem
32965private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation) 28947private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation)
32966{ 28948{
32967 find interpretation(problem,interpretation); 28949 find interpretation(problem,interpretation);
32968 find mustInstanceOfFunctionalInput_class(problem,interpretation,root); 28950 find mustInstanceOfFunctionalData_class(problem,interpretation,root);
32969 find mustExist(problem, interpretation, root); 28951 find mustExist(problem, interpretation, root);
32970}or{ 28952}or{
32971 find interpretation(problem,interpretation); 28953 find interpretation(problem,interpretation);
32972 find mustInstanceOfFAMTerminator_class(problem,interpretation,root); 28954 find mustInstanceOfFunctionalOutput_class(problem,interpretation,root);
32973 find mustExist(problem, interpretation, root); 28955 find mustExist(problem, interpretation, root);
32974}or{ 28956}or{
32975 find interpretation(problem,interpretation); 28957 find interpretation(problem,interpretation);
@@ -32977,67 +28959,29 @@ private pattern hasElementInContainment(problem:LogicProblem, interpretation:Par
32977 find mustExist(problem, interpretation, root); 28959 find mustExist(problem, interpretation, root);
32978}or{ 28960}or{
32979 find interpretation(problem,interpretation); 28961 find interpretation(problem,interpretation);
32980 find mustInstanceOfInformationLink_class(problem,interpretation,root);
32981 find mustExist(problem, interpretation, root);
32982}or{
32983 find interpretation(problem,interpretation);
32984 find mustInstanceOfFunctionalElement_class(problem,interpretation,root);
32985 find mustExist(problem, interpretation, root);
32986}or{
32987 find interpretation(problem,interpretation);
32988 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,root); 28962 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,root);
32989 find mustExist(problem, interpretation, root); 28963 find mustExist(problem, interpretation, root);
32990}or{ 28964}or{
32991 find interpretation(problem,interpretation); 28965 find interpretation(problem,interpretation);
32992 find mustInstanceOfFunctionalOutput_class(problem,interpretation,root); 28966 find mustInstanceOfInformationLink_class(problem,interpretation,root);
32993 find mustExist(problem, interpretation, root); 28967 find mustExist(problem, interpretation, root);
32994}or{ 28968}or{
32995 find interpretation(problem,interpretation); 28969 find interpretation(problem,interpretation);
32996 find mustInstanceOfFunctionalData_class(problem,interpretation,root); 28970 find mustInstanceOfFunctionalElement_class(problem,interpretation,root);
32997 find mustExist(problem, interpretation, root); 28971 find mustExist(problem, interpretation, root);
32998}or{ 28972}or{
32999 find interpretation(problem,interpretation); 28973 find interpretation(problem,interpretation);
33000 find mustInstanceOfFunctionalInterface_class(problem,interpretation,root); 28974 find mustInstanceOfFAMTerminator_class(problem,interpretation,root);
33001 find mustExist(problem, interpretation, root); 28975 find mustExist(problem, interpretation, root);
33002}or{ 28976}or{
33003 find interpretation(problem,interpretation); 28977 find interpretation(problem,interpretation);
33004 find mustInstanceOfFunctionalArchitectureModel_class_DefinedPart(problem,interpretation,root); 28978 find mustInstanceOfFunctionalInput_class(problem,interpretation,root);
33005 find mustExist(problem, interpretation, root); 28979 find mustExist(problem, interpretation, root);
33006}or{ 28980}or{
33007 find interpretation(problem,interpretation); 28981 find interpretation(problem,interpretation);
33008 find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,root); 28982 find mustInstanceOfFunctionalInterface_class(problem,interpretation,root);
33009 find mustExist(problem, interpretation, root); 28983 find mustExist(problem, interpretation, root);
33010} 28984}
33011pattern createObject_FunctionalInterface_class_by_interface_reference_FunctionalElement_with_element_reference_FunctionalInterface(
33012 problem:LogicProblem, interpretation:PartialInterpretation,
33013 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
33014 container:DefinedElement)
33015{
33016 find interpretation(problem,interpretation);
33017 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
33018 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
33019 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
33020 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"interface reference FunctionalElement");
33021 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
33022 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"element reference FunctionalInterface");
33023 find mustInstanceOfFunctionalElement_class(problem,interpretation,container);
33024 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
33025 find mayInRelationinterface_reference_FunctionalElement(problem,interpretation,container,newObject);
33026 find mustExist(problem, interpretation, container);
33027 neg find mustExist(problem, interpretation, newObject);
33028}
33029pattern createObject_FunctionalInterface_class(
33030 problem:LogicProblem, interpretation:PartialInterpretation,
33031 typeInterpretation:PartialComplexTypeInterpretation)
33032{
33033 find interpretation(problem,interpretation);
33034 neg find hasElementInContainment(problem,interpretation);
33035 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
33036 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
33037 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
33038 find mayExist(problem, interpretation, newObject);
33039 neg find mustExist(problem, interpretation, newObject);
33040}
33041pattern createObject_InformationLink_class_by_outgoingLinks_reference_FunctionalOutput_with_from_reference_InformationLink( 28985pattern createObject_InformationLink_class_by_outgoingLinks_reference_FunctionalOutput_with_from_reference_InformationLink(
33042 problem:LogicProblem, interpretation:PartialInterpretation, 28986 problem:LogicProblem, interpretation:PartialInterpretation,
33043 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 28987 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
@@ -33068,33 +29012,15 @@ pattern createObject_InformationLink_class(
33068 find mayExist(problem, interpretation, newObject); 29012 find mayExist(problem, interpretation, newObject);
33069 neg find mustExist(problem, interpretation, newObject); 29013 neg find mustExist(problem, interpretation, newObject);
33070} 29014}
33071pattern createObject_FAMTerminator_class_by_terminator_reference_FunctionalData_with_data_reference_FAMTerminator( 29015pattern createObject_FunctionalArchitectureModel_class(
33072 problem:LogicProblem, interpretation:PartialInterpretation,
33073 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
33074 container:DefinedElement)
33075{
33076 find interpretation(problem,interpretation);
33077 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
33078 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class");
33079 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
33080 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"terminator reference FunctionalData");
33081 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
33082 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"data reference FAMTerminator");
33083 find mustInstanceOfFunctionalData_class(problem,interpretation,container);
33084 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject);
33085 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,container,newObject);
33086 find mustExist(problem, interpretation, container);
33087 neg find mustExist(problem, interpretation, newObject);
33088}
33089pattern createObject_FAMTerminator_class(
33090 problem:LogicProblem, interpretation:PartialInterpretation, 29016 problem:LogicProblem, interpretation:PartialInterpretation,
33091 typeInterpretation:PartialComplexTypeInterpretation) 29017 typeInterpretation:PartialComplexTypeInterpretation)
33092{ 29018{
33093 find interpretation(problem,interpretation); 29019 find interpretation(problem,interpretation);
33094 neg find hasElementInContainment(problem,interpretation); 29020 neg find hasElementInContainment(problem,interpretation);
33095 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 29021 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
33096 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class"); 29022 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalArchitectureModel class");
33097 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject); 29023 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,newObject);
33098 find mayExist(problem, interpretation, newObject); 29024 find mayExist(problem, interpretation, newObject);
33099 neg find mustExist(problem, interpretation, newObject); 29025 neg find mustExist(problem, interpretation, newObject);
33100} 29026}
@@ -33128,15 +29054,33 @@ pattern createObject_FunctionalInput_class(
33128 find mayExist(problem, interpretation, newObject); 29054 find mayExist(problem, interpretation, newObject);
33129 neg find mustExist(problem, interpretation, newObject); 29055 neg find mustExist(problem, interpretation, newObject);
33130} 29056}
33131pattern createObject_FunctionalArchitectureModel_class_UndefinedPart( 29057pattern createObject_FAMTerminator_class_by_terminator_reference_FunctionalData_with_data_reference_FAMTerminator(
29058 problem:LogicProblem, interpretation:PartialInterpretation,
29059 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
29060 container:DefinedElement)
29061{
29062 find interpretation(problem,interpretation);
29063 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
29064 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class");
29065 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
29066 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"terminator reference FunctionalData");
29067 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
29068 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"data reference FAMTerminator");
29069 find mustInstanceOfFunctionalData_class(problem,interpretation,container);
29070 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject);
29071 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,container,newObject);
29072 find mustExist(problem, interpretation, container);
29073 neg find mustExist(problem, interpretation, newObject);
29074}
29075pattern createObject_FAMTerminator_class(
33132 problem:LogicProblem, interpretation:PartialInterpretation, 29076 problem:LogicProblem, interpretation:PartialInterpretation,
33133 typeInterpretation:PartialComplexTypeInterpretation) 29077 typeInterpretation:PartialComplexTypeInterpretation)
33134{ 29078{
33135 find interpretation(problem,interpretation); 29079 find interpretation(problem,interpretation);
33136 neg find hasElementInContainment(problem,interpretation); 29080 neg find hasElementInContainment(problem,interpretation);
33137 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 29081 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
33138 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalArchitectureModel class UndefinedPart"); 29082 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class");
33139 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,newObject); 29083 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject);
33140 find mayExist(problem, interpretation, newObject); 29084 find mayExist(problem, interpretation, newObject);
33141 neg find mustExist(problem, interpretation, newObject); 29085 neg find mustExist(problem, interpretation, newObject);
33142} 29086}
@@ -33216,88 +29160,118 @@ pattern createObject_FunctionalOutput_class(
33216 find mayExist(problem, interpretation, newObject); 29160 find mayExist(problem, interpretation, newObject);
33217 neg find mustExist(problem, interpretation, newObject); 29161 neg find mustExist(problem, interpretation, newObject);
33218} 29162}
29163pattern createObject_FunctionalInterface_class_by_interface_reference_FunctionalElement_with_element_reference_FunctionalInterface(
29164 problem:LogicProblem, interpretation:PartialInterpretation,
29165 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
29166 container:DefinedElement)
29167{
29168 find interpretation(problem,interpretation);
29169 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
29170 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
29171 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
29172 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"interface reference FunctionalElement");
29173 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
29174 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"element reference FunctionalInterface");
29175 find mustInstanceOfFunctionalElement_class(problem,interpretation,container);
29176 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
29177 find mayInRelationinterface_reference_FunctionalElement(problem,interpretation,container,newObject);
29178 find mustExist(problem, interpretation, container);
29179 neg find mustExist(problem, interpretation, newObject);
29180}
29181pattern createObject_FunctionalInterface_class(
29182 problem:LogicProblem, interpretation:PartialInterpretation,
29183 typeInterpretation:PartialComplexTypeInterpretation)
29184{
29185 find interpretation(problem,interpretation);
29186 neg find hasElementInContainment(problem,interpretation);
29187 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
29188 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
29189 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
29190 find mayExist(problem, interpretation, newObject);
29191 neg find mustExist(problem, interpretation, newObject);
29192}
33219 29193
33220////////// 29194//////////
33221// 4.2 Type refinement 29195// 4.2 Type refinement
33222////////// 29196//////////
33223pattern refineTypeTo_FunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
33224 find interpretation(problem,interpretation);
33225 PartialInterpretation.newElements(interpretation,element);
33226 find mayInstanceOfFunctionalInterface_class(problem,interpretation,element);
33227 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
33228 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
33229 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
33230 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
33231 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
33232 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
33233}
33234pattern refineTypeTo_InformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 29197pattern refineTypeTo_InformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
33235 find interpretation(problem,interpretation); 29198 find interpretation(problem,interpretation);
33236 PartialInterpretation.newElements(interpretation,element); 29199 PartialInterpretation.newElements(interpretation,element);
33237 find mayInstanceOfInformationLink_class(problem,interpretation,element); 29200 find mayInstanceOfInformationLink_class(problem,interpretation,element);
33238 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
33239 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
33240 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 29201 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
33241 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
33242 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 29202 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
29203 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
29204 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
33243 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 29205 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
29206 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
33244} 29207}
33245pattern refineTypeTo_FAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 29208pattern refineTypeTo_FunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
33246 find interpretation(problem,interpretation); 29209 find interpretation(problem,interpretation);
33247 PartialInterpretation.newElements(interpretation,element); 29210 PartialInterpretation.newElements(interpretation,element);
33248 find mayInstanceOfFAMTerminator_class(problem,interpretation,element); 29211 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
33249 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
33250 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 29212 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
33251 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
33252 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
33253 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 29213 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
29214 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
29215 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
33254 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 29216 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
29217 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
33255} 29218}
33256pattern refineTypeTo_FunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 29219pattern refineTypeTo_FunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
33257 find interpretation(problem,interpretation); 29220 find interpretation(problem,interpretation);
33258 PartialInterpretation.newElements(interpretation,element); 29221 PartialInterpretation.newElements(interpretation,element);
33259 find mayInstanceOfFunctionalInput_class(problem,interpretation,element); 29222 find mayInstanceOfFunctionalInput_class(problem,interpretation,element);
33260 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
33261 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 29223 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
33262 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
33263 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
33264 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
33265 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 29224 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
29225 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
29226 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
29227 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
29228 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
33266 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 29229 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
33267} 29230}
33268pattern refineTypeTo_FunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 29231pattern refineTypeTo_FAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
33269 find interpretation(problem,interpretation); 29232 find interpretation(problem,interpretation);
33270 PartialInterpretation.newElements(interpretation,element); 29233 PartialInterpretation.newElements(interpretation,element);
33271 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); 29234 find mayInstanceOfFAMTerminator_class(problem,interpretation,element);
33272 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
33273 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
33274 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 29235 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
33275 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 29236 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
33276 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); 29237 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
29238 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
33277 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 29239 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
29240 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
33278} 29241}
33279pattern refineTypeTo_Function_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 29242pattern refineTypeTo_Function_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
33280 find interpretation(problem,interpretation); 29243 find interpretation(problem,interpretation);
33281 PartialInterpretation.newElements(interpretation,element); 29244 PartialInterpretation.newElements(interpretation,element);
33282 find mayInstanceOfFunction_class(problem,interpretation,element); 29245 find mayInstanceOfFunction_class(problem,interpretation,element);
33283 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
33284 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 29246 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
33285 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
33286 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 29247 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
33287 neg find mustInstanceOfFunction_class(problem,interpretation,element); 29248 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
33288 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 29249 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
29250 neg find mustInstanceOfFunction_class(problem,interpretation,element);
29251 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
33289} 29252}
33290pattern refineTypeTo_FunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 29253pattern refineTypeTo_FunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
33291 find interpretation(problem,interpretation); 29254 find interpretation(problem,interpretation);
33292 PartialInterpretation.newElements(interpretation,element); 29255 PartialInterpretation.newElements(interpretation,element);
33293 find mayInstanceOfFunctionalOutput_class(problem,interpretation,element); 29256 find mayInstanceOfFunctionalOutput_class(problem,interpretation,element);
33294 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
33295 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
33296 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 29257 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
33297 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
33298 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
33299 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 29258 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
29259 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
29260 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
29261 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
33300 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 29262 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
29263 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
29264}
29265pattern refineTypeTo_FunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
29266 find interpretation(problem,interpretation);
29267 PartialInterpretation.newElements(interpretation,element);
29268 find mayInstanceOfFunctionalInterface_class(problem,interpretation,element);
29269 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
29270 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
29271 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
29272 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
29273 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
29274 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
33301} 29275}
33302 29276
33303////////// 29277//////////
@@ -33456,23 +29430,23 @@ private pattern mayInstanceOfFunctionalElement_class(problem:LogicProblem, inter
33456{ 29430{
33457 find interpretation(problem,interpretation); 29431 find interpretation(problem,interpretation);
33458 PartialInterpretation.newElements(interpretation,element); 29432 PartialInterpretation.newElements(interpretation,element);
29433 neg find mustInstanceOfFunction_class(problem,interpretation,element);
33459 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 29434 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
33460 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
33461 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
33462 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 29435 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
33463 neg find mustInstanceOfFunction_class(problem,interpretation,element);
33464 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 29436 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
29437 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
29438 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
33465 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation); 29439 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
33466 neg find isPrimitive(element); 29440 neg find isPrimitive(element);
33467} or { 29441} or {
33468 find interpretation(problem,interpretation); 29442 find interpretation(problem,interpretation);
33469 PartialInterpretation.openWorldElements(interpretation,element); 29443 PartialInterpretation.openWorldElements(interpretation,element);
29444 neg find mustInstanceOfFunction_class(problem,interpretation,element);
33470 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 29445 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
33471 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
33472 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
33473 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 29446 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
33474 neg find mustInstanceOfFunction_class(problem,interpretation,element);
33475 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 29447 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
29448 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
29449 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
33476 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation); 29450 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
33477 neg find isPrimitive(element); 29451 neg find isPrimitive(element);
33478} or 29452} or
@@ -33500,23 +29474,21 @@ private pattern mayInstanceOfFunctionalArchitectureModel_class(problem:LogicProb
33500{ 29474{
33501 find interpretation(problem,interpretation); 29475 find interpretation(problem,interpretation);
33502 PartialInterpretation.newElements(interpretation,element); 29476 PartialInterpretation.newElements(interpretation,element);
29477 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
33503 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 29478 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
33504 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
33505 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
33506 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 29479 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
33507 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
33508 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 29480 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
29481 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
33509 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation); 29482 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
33510 neg find isPrimitive(element); 29483 neg find isPrimitive(element);
33511} or { 29484} or {
33512 find interpretation(problem,interpretation); 29485 find interpretation(problem,interpretation);
33513 PartialInterpretation.openWorldElements(interpretation,element); 29486 PartialInterpretation.openWorldElements(interpretation,element);
29487 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
33514 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 29488 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
33515 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
33516 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
33517 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 29489 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
33518 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
33519 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 29490 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
29491 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
33520 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation); 29492 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
33521 neg find isPrimitive(element); 29493 neg find isPrimitive(element);
33522} or 29494} or
@@ -33545,20 +29517,20 @@ private pattern mayInstanceOfFunction_class(problem:LogicProblem, interpretation
33545 find interpretation(problem,interpretation); 29517 find interpretation(problem,interpretation);
33546 PartialInterpretation.newElements(interpretation,element); 29518 PartialInterpretation.newElements(interpretation,element);
33547 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 29519 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
33548 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
33549 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
33550 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 29520 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
33551 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 29521 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
29522 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
29523 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
33552 neg find scopeDisallowsNewFunction_class(problem, interpretation); 29524 neg find scopeDisallowsNewFunction_class(problem, interpretation);
33553 neg find isPrimitive(element); 29525 neg find isPrimitive(element);
33554} or { 29526} or {
33555 find interpretation(problem,interpretation); 29527 find interpretation(problem,interpretation);
33556 PartialInterpretation.openWorldElements(interpretation,element); 29528 PartialInterpretation.openWorldElements(interpretation,element);
33557 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 29529 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
33558 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
33559 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
33560 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 29530 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
33561 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 29531 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
29532 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
29533 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
33562 neg find scopeDisallowsNewFunction_class(problem, interpretation); 29534 neg find scopeDisallowsNewFunction_class(problem, interpretation);
33563 neg find isPrimitive(element); 29535 neg find isPrimitive(element);
33564} or 29536} or
@@ -33587,20 +29559,20 @@ private pattern mayInstanceOfFAMTerminator_class(problem:LogicProblem, interpret
33587 find interpretation(problem,interpretation); 29559 find interpretation(problem,interpretation);
33588 PartialInterpretation.newElements(interpretation,element); 29560 PartialInterpretation.newElements(interpretation,element);
33589 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 29561 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
29562 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
29563 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
33590 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 29564 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
33591 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 29565 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
33592 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
33593 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
33594 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation); 29566 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
33595 neg find isPrimitive(element); 29567 neg find isPrimitive(element);
33596} or { 29568} or {
33597 find interpretation(problem,interpretation); 29569 find interpretation(problem,interpretation);
33598 PartialInterpretation.openWorldElements(interpretation,element); 29570 PartialInterpretation.openWorldElements(interpretation,element);
33599 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 29571 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
29572 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
29573 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
33600 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 29574 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
33601 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 29575 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
33602 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
33603 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
33604 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation); 29576 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
33605 neg find isPrimitive(element); 29577 neg find isPrimitive(element);
33606} or 29578} or
@@ -33629,20 +29601,20 @@ private pattern mayInstanceOfInformationLink_class(problem:LogicProblem, interpr
33629 find interpretation(problem,interpretation); 29601 find interpretation(problem,interpretation);
33630 PartialInterpretation.newElements(interpretation,element); 29602 PartialInterpretation.newElements(interpretation,element);
33631 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 29603 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
33632 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
33633 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
33634 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 29604 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
33635 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 29605 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
29606 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
29607 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
33636 neg find scopeDisallowsNewInformationLink_class(problem, interpretation); 29608 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
33637 neg find isPrimitive(element); 29609 neg find isPrimitive(element);
33638} or { 29610} or {
33639 find interpretation(problem,interpretation); 29611 find interpretation(problem,interpretation);
33640 PartialInterpretation.openWorldElements(interpretation,element); 29612 PartialInterpretation.openWorldElements(interpretation,element);
33641 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 29613 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
33642 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
33643 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
33644 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 29614 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
33645 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 29615 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
29616 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
29617 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
33646 neg find scopeDisallowsNewInformationLink_class(problem, interpretation); 29618 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
33647 neg find isPrimitive(element); 29619 neg find isPrimitive(element);
33648} or 29620} or
@@ -33670,21 +29642,21 @@ private pattern mayInstanceOfFunctionalInterface_class(problem:LogicProblem, int
33670{ 29642{
33671 find interpretation(problem,interpretation); 29643 find interpretation(problem,interpretation);
33672 PartialInterpretation.newElements(interpretation,element); 29644 PartialInterpretation.newElements(interpretation,element);
33673 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
33674 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
33675 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
33676 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 29645 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
29646 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
33677 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 29647 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
29648 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
29649 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
33678 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation); 29650 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
33679 neg find isPrimitive(element); 29651 neg find isPrimitive(element);
33680} or { 29652} or {
33681 find interpretation(problem,interpretation); 29653 find interpretation(problem,interpretation);
33682 PartialInterpretation.openWorldElements(interpretation,element); 29654 PartialInterpretation.openWorldElements(interpretation,element);
33683 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
33684 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
33685 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
33686 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 29655 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
29656 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
33687 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 29657 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
29658 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
29659 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
33688 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation); 29660 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
33689 neg find isPrimitive(element); 29661 neg find isPrimitive(element);
33690} or 29662} or
@@ -33713,22 +29685,22 @@ private pattern mayInstanceOfFunctionalInput_class(problem:LogicProblem, interpr
33713 find interpretation(problem,interpretation); 29685 find interpretation(problem,interpretation);
33714 PartialInterpretation.newElements(interpretation,element); 29686 PartialInterpretation.newElements(interpretation,element);
33715 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 29687 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
33716 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
33717 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
33718 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
33719 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 29688 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
29689 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
33720 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 29690 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
29691 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
29692 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
33721 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation); 29693 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
33722 neg find isPrimitive(element); 29694 neg find isPrimitive(element);
33723} or { 29695} or {
33724 find interpretation(problem,interpretation); 29696 find interpretation(problem,interpretation);
33725 PartialInterpretation.openWorldElements(interpretation,element); 29697 PartialInterpretation.openWorldElements(interpretation,element);
33726 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 29698 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
33727 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
33728 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
33729 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
33730 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 29699 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
29700 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
33731 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 29701 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
29702 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
29703 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
33732 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation); 29704 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
33733 neg find isPrimitive(element); 29705 neg find isPrimitive(element);
33734} or 29706} or
@@ -33756,23 +29728,23 @@ private pattern mayInstanceOfFunctionalOutput_class(problem:LogicProblem, interp
33756{ 29728{
33757 find interpretation(problem,interpretation); 29729 find interpretation(problem,interpretation);
33758 PartialInterpretation.newElements(interpretation,element); 29730 PartialInterpretation.newElements(interpretation,element);
29731 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
33759 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 29732 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
33760 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
33761 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 29733 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
33762 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
33763 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
33764 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 29734 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
29735 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
29736 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
33765 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation); 29737 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
33766 neg find isPrimitive(element); 29738 neg find isPrimitive(element);
33767} or { 29739} or {
33768 find interpretation(problem,interpretation); 29740 find interpretation(problem,interpretation);
33769 PartialInterpretation.openWorldElements(interpretation,element); 29741 PartialInterpretation.openWorldElements(interpretation,element);
29742 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
33770 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 29743 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
33771 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
33772 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 29744 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
33773 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
33774 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
33775 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 29745 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
29746 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
29747 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
33776 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation); 29748 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
33777 neg find isPrimitive(element); 29749 neg find isPrimitive(element);
33778} or 29750} or
@@ -33800,25 +29772,25 @@ private pattern mayInstanceOfFunctionalData_class(problem:LogicProblem, interpre
33800{ 29772{
33801 find interpretation(problem,interpretation); 29773 find interpretation(problem,interpretation);
33802 PartialInterpretation.newElements(interpretation,element); 29774 PartialInterpretation.newElements(interpretation,element);
29775 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
33803 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 29776 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
33804 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
33805 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
33806 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 29777 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
33807 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 29778 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
33808 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
33809 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 29779 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
29780 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
29781 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
33810 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation); 29782 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
33811 neg find isPrimitive(element); 29783 neg find isPrimitive(element);
33812} or { 29784} or {
33813 find interpretation(problem,interpretation); 29785 find interpretation(problem,interpretation);
33814 PartialInterpretation.openWorldElements(interpretation,element); 29786 PartialInterpretation.openWorldElements(interpretation,element);
29787 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
33815 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 29788 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
33816 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
33817 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
33818 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 29789 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
33819 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 29790 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
33820 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
33821 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 29791 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
29792 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
29793 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
33822 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation); 29794 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
33823 neg find isPrimitive(element); 29795 neg find isPrimitive(element);
33824} or 29796} or
@@ -33844,69 +29816,6 @@ private pattern scopeDisallowsNewFunctionType_enum(problem:LogicProblem, interpr
33844 */ 29816 */
33845private pattern mayInstanceOfFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 29817private pattern mayInstanceOfFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
33846{ find mustInstanceOfFunctionType_enum(problem,interpretation,element); } 29818{ find mustInstanceOfFunctionType_enum(problem,interpretation,element); }
33847/**
33848 * An element must be an instance of type "FunctionalArchitectureModel class DefinedPart".
33849 */
33850private pattern mustInstanceOfFunctionalArchitectureModel_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
33851 Type.name(type,"FunctionalArchitectureModel class DefinedPart");
33852 find directInstanceOf(problem,interpretation,element,type);
33853}
33854private pattern scopeDisallowsNewFunctionalArchitectureModel_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
33855 find interpretation(problem,interpretation);
33856 PartialInterpretation.scopes(interpretation,scope);
33857 Scope.targetTypeInterpretation(scope,typeInterpretation);
33858 Scope.maxNewElements(scope,0);
33859 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
33860 Type.name(type,"FunctionalArchitectureModel class DefinedPart");
33861}
33862
33863/**
33864 * An element may be an instance of type "FunctionalArchitectureModel class DefinedPart".
33865 */
33866private pattern mayInstanceOfFunctionalArchitectureModel_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
33867{ find mustInstanceOfFunctionalArchitectureModel_class_DefinedPart(problem,interpretation,element); }
33868/**
33869 * An element must be an instance of type "FunctionalArchitectureModel class UndefinedPart".
33870 */
33871private pattern mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
33872 Type.name(type,"FunctionalArchitectureModel class UndefinedPart");
33873 find directInstanceOf(problem,interpretation,element,type);
33874}
33875private pattern scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
33876 find interpretation(problem,interpretation);
33877 PartialInterpretation.scopes(interpretation,scope);
33878 Scope.targetTypeInterpretation(scope,typeInterpretation);
33879 Scope.maxNewElements(scope,0);
33880 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
33881 Type.name(type,"FunctionalArchitectureModel class UndefinedPart");
33882}
33883
33884/**
33885 * An element may be an instance of type "FunctionalArchitectureModel class UndefinedPart".
33886 */
33887private pattern mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
33888{
33889 find interpretation(problem,interpretation);
33890 PartialInterpretation.newElements(interpretation,element);
33891 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
33892 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
33893 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
33894 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
33895 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
33896 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation);
33897 neg find isPrimitive(element);
33898} or {
33899 find interpretation(problem,interpretation);
33900 PartialInterpretation.openWorldElements(interpretation,element);
33901 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
33902 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
33903 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
33904 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
33905 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
33906 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation);
33907 neg find isPrimitive(element);
33908} or
33909{ find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); }
33910 29819
33911////////// 29820//////////
33912// 1.2 Relation Declaration Indexers 29821// 1.2 Relation Declaration Indexers
@@ -34584,11 +30493,11 @@ pattern unfinishedLowerMultiplicity_type_attribute_Function(problem:LogicProblem
34584private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation) 30493private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation)
34585{ 30494{
34586 find interpretation(problem,interpretation); 30495 find interpretation(problem,interpretation);
34587 find mustInstanceOfFunctionalInput_class(problem,interpretation,root); 30496 find mustInstanceOfFunctionalData_class(problem,interpretation,root);
34588 find mustExist(problem, interpretation, root); 30497 find mustExist(problem, interpretation, root);
34589}or{ 30498}or{
34590 find interpretation(problem,interpretation); 30499 find interpretation(problem,interpretation);
34591 find mustInstanceOfFAMTerminator_class(problem,interpretation,root); 30500 find mustInstanceOfFunctionalOutput_class(problem,interpretation,root);
34592 find mustExist(problem, interpretation, root); 30501 find mustExist(problem, interpretation, root);
34593}or{ 30502}or{
34594 find interpretation(problem,interpretation); 30503 find interpretation(problem,interpretation);
@@ -34596,106 +30505,102 @@ private pattern hasElementInContainment(problem:LogicProblem, interpretation:Par
34596 find mustExist(problem, interpretation, root); 30505 find mustExist(problem, interpretation, root);
34597}or{ 30506}or{
34598 find interpretation(problem,interpretation); 30507 find interpretation(problem,interpretation);
34599 find mustInstanceOfInformationLink_class(problem,interpretation,root); 30508 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,root);
34600 find mustExist(problem, interpretation, root); 30509 find mustExist(problem, interpretation, root);
34601}or{ 30510}or{
34602 find interpretation(problem,interpretation); 30511 find interpretation(problem,interpretation);
34603 find mustInstanceOfFunctionalElement_class(problem,interpretation,root); 30512 find mustInstanceOfInformationLink_class(problem,interpretation,root);
34604 find mustExist(problem, interpretation, root); 30513 find mustExist(problem, interpretation, root);
34605}or{ 30514}or{
34606 find interpretation(problem,interpretation); 30515 find interpretation(problem,interpretation);
34607 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,root); 30516 find mustInstanceOfFunctionalElement_class(problem,interpretation,root);
34608 find mustExist(problem, interpretation, root); 30517 find mustExist(problem, interpretation, root);
34609}or{ 30518}or{
34610 find interpretation(problem,interpretation); 30519 find interpretation(problem,interpretation);
34611 find mustInstanceOfFunctionalOutput_class(problem,interpretation,root); 30520 find mustInstanceOfFAMTerminator_class(problem,interpretation,root);
34612 find mustExist(problem, interpretation, root); 30521 find mustExist(problem, interpretation, root);
34613}or{ 30522}or{
34614 find interpretation(problem,interpretation); 30523 find interpretation(problem,interpretation);
34615 find mustInstanceOfFunctionalData_class(problem,interpretation,root); 30524 find mustInstanceOfFunctionalInput_class(problem,interpretation,root);
34616 find mustExist(problem, interpretation, root); 30525 find mustExist(problem, interpretation, root);
34617}or{ 30526}or{
34618 find interpretation(problem,interpretation); 30527 find interpretation(problem,interpretation);
34619 find mustInstanceOfFunctionalInterface_class(problem,interpretation,root); 30528 find mustInstanceOfFunctionalInterface_class(problem,interpretation,root);
34620 find mustExist(problem, interpretation, root); 30529 find mustExist(problem, interpretation, root);
34621}or{ 30530}
34622 find interpretation(problem,interpretation); 30531pattern createObject_Function_class_by_rootElements_reference_FunctionalArchitectureModel(
34623 find mustInstanceOfFunctionalArchitectureModel_class_DefinedPart(problem,interpretation,root); 30532 problem:LogicProblem, interpretation:PartialInterpretation,
34624 find mustExist(problem, interpretation, root); 30533 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
34625}or{ 30534 container:DefinedElement)
30535{
34626 find interpretation(problem,interpretation); 30536 find interpretation(problem,interpretation);
34627 find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,root); 30537 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
34628 find mustExist(problem, interpretation, root); 30538 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class");
30539 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
30540 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"rootElements reference FunctionalArchitectureModel");
30541 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,container);
30542 find mayInstanceOfFunction_class(problem,interpretation,newObject);
30543 find mayInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,container,newObject);
30544 find mustExist(problem, interpretation, container);
30545 neg find mustExist(problem, interpretation, newObject);
34629} 30546}
34630pattern createObject_FunctionalInterface_class_by_interface_reference_FunctionalElement_with_element_reference_FunctionalInterface( 30547pattern createObject_Function_class_by_subElements_reference_Function_with_parent_reference_FunctionalElement(
34631 problem:LogicProblem, interpretation:PartialInterpretation, 30548 problem:LogicProblem, interpretation:PartialInterpretation,
34632 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 30549 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
34633 container:DefinedElement) 30550 container:DefinedElement)
34634{ 30551{
34635 find interpretation(problem,interpretation); 30552 find interpretation(problem,interpretation);
34636 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 30553 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
34637 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class"); 30554 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class");
34638 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 30555 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
34639 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"interface reference FunctionalElement"); 30556 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"subElements reference Function");
34640 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 30557 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
34641 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"element reference FunctionalInterface"); 30558 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"parent reference FunctionalElement");
34642 find mustInstanceOfFunctionalElement_class(problem,interpretation,container); 30559 find mustInstanceOfFunction_class(problem,interpretation,container);
34643 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject); 30560 find mayInstanceOfFunction_class(problem,interpretation,newObject);
34644 find mayInRelationinterface_reference_FunctionalElement(problem,interpretation,container,newObject); 30561 find mayInRelationsubElements_reference_Function(problem,interpretation,container,newObject);
34645 find mustExist(problem, interpretation, container); 30562 find mustExist(problem, interpretation, container);
34646 neg find mustExist(problem, interpretation, newObject); 30563 neg find mustExist(problem, interpretation, newObject);
34647} 30564}
34648pattern createObject_FunctionalInterface_class( 30565pattern createObject_Function_class(
34649 problem:LogicProblem, interpretation:PartialInterpretation, 30566 problem:LogicProblem, interpretation:PartialInterpretation,
34650 typeInterpretation:PartialComplexTypeInterpretation) 30567 typeInterpretation:PartialComplexTypeInterpretation)
34651{ 30568{
34652 find interpretation(problem,interpretation); 30569 find interpretation(problem,interpretation);
34653 neg find hasElementInContainment(problem,interpretation); 30570 neg find hasElementInContainment(problem,interpretation);
34654 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 30571 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
34655 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class"); 30572 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class");
34656 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject); 30573 find mayInstanceOfFunction_class(problem,interpretation,newObject);
34657 find mayExist(problem, interpretation, newObject); 30574 find mayExist(problem, interpretation, newObject);
34658 neg find mustExist(problem, interpretation, newObject); 30575 neg find mustExist(problem, interpretation, newObject);
34659} 30576}
34660pattern createObject_FunctionalOutput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData( 30577pattern createObject_FunctionalInterface_class_by_interface_reference_FunctionalElement_with_element_reference_FunctionalInterface(
34661 problem:LogicProblem, interpretation:PartialInterpretation, 30578 problem:LogicProblem, interpretation:PartialInterpretation,
34662 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 30579 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
34663 container:DefinedElement) 30580 container:DefinedElement)
34664{ 30581{
34665 find interpretation(problem,interpretation); 30582 find interpretation(problem,interpretation);
34666 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 30583 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
34667 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class"); 30584 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
34668 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 30585 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
34669 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface"); 30586 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"interface reference FunctionalElement");
34670 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 30587 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
34671 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData"); 30588 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"element reference FunctionalInterface");
34672 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container); 30589 find mustInstanceOfFunctionalElement_class(problem,interpretation,container);
34673 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject); 30590 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
34674 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject); 30591 find mayInRelationinterface_reference_FunctionalElement(problem,interpretation,container,newObject);
34675 find mustExist(problem, interpretation, container); 30592 find mustExist(problem, interpretation, container);
34676 neg find mustExist(problem, interpretation, newObject); 30593 neg find mustExist(problem, interpretation, newObject);
34677} 30594}
34678pattern createObject_FunctionalOutput_class( 30595pattern createObject_FunctionalInterface_class(
34679 problem:LogicProblem, interpretation:PartialInterpretation,
34680 typeInterpretation:PartialComplexTypeInterpretation)
34681{
34682 find interpretation(problem,interpretation);
34683 neg find hasElementInContainment(problem,interpretation);
34684 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
34685 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class");
34686 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject);
34687 find mayExist(problem, interpretation, newObject);
34688 neg find mustExist(problem, interpretation, newObject);
34689}
34690pattern createObject_FunctionalArchitectureModel_class_UndefinedPart(
34691 problem:LogicProblem, interpretation:PartialInterpretation, 30596 problem:LogicProblem, interpretation:PartialInterpretation,
34692 typeInterpretation:PartialComplexTypeInterpretation) 30597 typeInterpretation:PartialComplexTypeInterpretation)
34693{ 30598{
34694 find interpretation(problem,interpretation); 30599 find interpretation(problem,interpretation);
34695 neg find hasElementInContainment(problem,interpretation); 30600 neg find hasElementInContainment(problem,interpretation);
34696 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 30601 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
34697 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalArchitectureModel class UndefinedPart"); 30602 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
34698 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,newObject); 30603 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
34699 find mayExist(problem, interpretation, newObject); 30604 find mayExist(problem, interpretation, newObject);
34700 neg find mustExist(problem, interpretation, newObject); 30605 neg find mustExist(problem, interpretation, newObject);
34701} 30606}
@@ -34729,109 +30634,105 @@ pattern createObject_InformationLink_class(
34729 find mayExist(problem, interpretation, newObject); 30634 find mayExist(problem, interpretation, newObject);
34730 neg find mustExist(problem, interpretation, newObject); 30635 neg find mustExist(problem, interpretation, newObject);
34731} 30636}
34732pattern createObject_Function_class_by_rootElements_reference_FunctionalArchitectureModel( 30637pattern createObject_FAMTerminator_class_by_terminator_reference_FunctionalData_with_data_reference_FAMTerminator(
34733 problem:LogicProblem, interpretation:PartialInterpretation, 30638 problem:LogicProblem, interpretation:PartialInterpretation,
34734 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 30639 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
34735 container:DefinedElement) 30640 container:DefinedElement)
34736{ 30641{
34737 find interpretation(problem,interpretation); 30642 find interpretation(problem,interpretation);
34738 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 30643 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
34739 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class"); 30644 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class");
34740 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 30645 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
34741 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"rootElements reference FunctionalArchitectureModel"); 30646 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"terminator reference FunctionalData");
34742 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,container); 30647 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
34743 find mayInstanceOfFunction_class(problem,interpretation,newObject); 30648 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"data reference FAMTerminator");
34744 find mayInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,container,newObject); 30649 find mustInstanceOfFunctionalData_class(problem,interpretation,container);
30650 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject);
30651 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,container,newObject);
34745 find mustExist(problem, interpretation, container); 30652 find mustExist(problem, interpretation, container);
34746 neg find mustExist(problem, interpretation, newObject); 30653 neg find mustExist(problem, interpretation, newObject);
34747} 30654}
34748pattern createObject_Function_class_by_subElements_reference_Function_with_parent_reference_FunctionalElement( 30655pattern createObject_FAMTerminator_class(
34749 problem:LogicProblem, interpretation:PartialInterpretation, 30656 problem:LogicProblem, interpretation:PartialInterpretation,
34750 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 30657 typeInterpretation:PartialComplexTypeInterpretation)
34751 container:DefinedElement)
34752{ 30658{
34753 find interpretation(problem,interpretation); 30659 find interpretation(problem,interpretation);
30660 neg find hasElementInContainment(problem,interpretation);
34754 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 30661 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
34755 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class"); 30662 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class");
34756 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 30663 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject);
34757 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"subElements reference Function"); 30664 find mayExist(problem, interpretation, newObject);
34758 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
34759 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"parent reference FunctionalElement");
34760 find mustInstanceOfFunction_class(problem,interpretation,container);
34761 find mayInstanceOfFunction_class(problem,interpretation,newObject);
34762 find mayInRelationsubElements_reference_Function(problem,interpretation,container,newObject);
34763 find mustExist(problem, interpretation, container);
34764 neg find mustExist(problem, interpretation, newObject); 30665 neg find mustExist(problem, interpretation, newObject);
34765} 30666}
34766pattern createObject_Function_class( 30667pattern createObject_FunctionalArchitectureModel_class(
34767 problem:LogicProblem, interpretation:PartialInterpretation, 30668 problem:LogicProblem, interpretation:PartialInterpretation,
34768 typeInterpretation:PartialComplexTypeInterpretation) 30669 typeInterpretation:PartialComplexTypeInterpretation)
34769{ 30670{
34770 find interpretation(problem,interpretation); 30671 find interpretation(problem,interpretation);
34771 neg find hasElementInContainment(problem,interpretation); 30672 neg find hasElementInContainment(problem,interpretation);
34772 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 30673 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
34773 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class"); 30674 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalArchitectureModel class");
34774 find mayInstanceOfFunction_class(problem,interpretation,newObject); 30675 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,newObject);
34775 find mayExist(problem, interpretation, newObject); 30676 find mayExist(problem, interpretation, newObject);
34776 neg find mustExist(problem, interpretation, newObject); 30677 neg find mustExist(problem, interpretation, newObject);
34777} 30678}
34778pattern createObject_FunctionalInput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData( 30679pattern createObject_FunctionalOutput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData(
34779 problem:LogicProblem, interpretation:PartialInterpretation, 30680 problem:LogicProblem, interpretation:PartialInterpretation,
34780 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 30681 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
34781 container:DefinedElement) 30682 container:DefinedElement)
34782{ 30683{
34783 find interpretation(problem,interpretation); 30684 find interpretation(problem,interpretation);
34784 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 30685 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
34785 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class"); 30686 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class");
34786 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 30687 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
34787 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface"); 30688 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface");
34788 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 30689 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
34789 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData"); 30690 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData");
34790 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container); 30691 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container);
34791 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject); 30692 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject);
34792 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject); 30693 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject);
34793 find mustExist(problem, interpretation, container); 30694 find mustExist(problem, interpretation, container);
34794 neg find mustExist(problem, interpretation, newObject); 30695 neg find mustExist(problem, interpretation, newObject);
34795} 30696}
34796pattern createObject_FunctionalInput_class( 30697pattern createObject_FunctionalOutput_class(
34797 problem:LogicProblem, interpretation:PartialInterpretation, 30698 problem:LogicProblem, interpretation:PartialInterpretation,
34798 typeInterpretation:PartialComplexTypeInterpretation) 30699 typeInterpretation:PartialComplexTypeInterpretation)
34799{ 30700{
34800 find interpretation(problem,interpretation); 30701 find interpretation(problem,interpretation);
34801 neg find hasElementInContainment(problem,interpretation); 30702 neg find hasElementInContainment(problem,interpretation);
34802 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 30703 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
34803 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class"); 30704 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class");
34804 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject); 30705 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject);
34805 find mayExist(problem, interpretation, newObject); 30706 find mayExist(problem, interpretation, newObject);
34806 neg find mustExist(problem, interpretation, newObject); 30707 neg find mustExist(problem, interpretation, newObject);
34807} 30708}
34808pattern createObject_FAMTerminator_class_by_terminator_reference_FunctionalData_with_data_reference_FAMTerminator( 30709pattern createObject_FunctionalInput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData(
34809 problem:LogicProblem, interpretation:PartialInterpretation, 30710 problem:LogicProblem, interpretation:PartialInterpretation,
34810 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 30711 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
34811 container:DefinedElement) 30712 container:DefinedElement)
34812{ 30713{
34813 find interpretation(problem,interpretation); 30714 find interpretation(problem,interpretation);
34814 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 30715 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
34815 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class"); 30716 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class");
34816 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 30717 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
34817 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"terminator reference FunctionalData"); 30718 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface");
34818 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 30719 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
34819 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"data reference FAMTerminator"); 30720 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData");
34820 find mustInstanceOfFunctionalData_class(problem,interpretation,container); 30721 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container);
34821 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject); 30722 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
34822 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,container,newObject); 30723 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject);
34823 find mustExist(problem, interpretation, container); 30724 find mustExist(problem, interpretation, container);
34824 neg find mustExist(problem, interpretation, newObject); 30725 neg find mustExist(problem, interpretation, newObject);
34825} 30726}
34826pattern createObject_FAMTerminator_class( 30727pattern createObject_FunctionalInput_class(
34827 problem:LogicProblem, interpretation:PartialInterpretation, 30728 problem:LogicProblem, interpretation:PartialInterpretation,
34828 typeInterpretation:PartialComplexTypeInterpretation) 30729 typeInterpretation:PartialComplexTypeInterpretation)
34829{ 30730{
34830 find interpretation(problem,interpretation); 30731 find interpretation(problem,interpretation);
34831 neg find hasElementInContainment(problem,interpretation); 30732 neg find hasElementInContainment(problem,interpretation);
34832 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 30733 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
34833 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class"); 30734 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class");
34834 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject); 30735 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
34835 find mayExist(problem, interpretation, newObject); 30736 find mayExist(problem, interpretation, newObject);
34836 neg find mustExist(problem, interpretation, newObject); 30737 neg find mustExist(problem, interpretation, newObject);
34837} 30738}
@@ -34839,84 +30740,84 @@ pattern createObject_FAMTerminator_class(
34839////////// 30740//////////
34840// 4.2 Type refinement 30741// 4.2 Type refinement
34841////////// 30742//////////
34842pattern refineTypeTo_FunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 30743pattern refineTypeTo_Function_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
34843 find interpretation(problem,interpretation); 30744 find interpretation(problem,interpretation);
34844 PartialInterpretation.newElements(interpretation,element); 30745 PartialInterpretation.newElements(interpretation,element);
34845 find mayInstanceOfFunctionalInterface_class(problem,interpretation,element); 30746 find mayInstanceOfFunction_class(problem,interpretation,element);
30747 neg find mustInstanceOfFunction_class(problem,interpretation,element);
34846 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 30748 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
34847 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
34848 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
34849 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
34850 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 30749 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
34851 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 30750 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
30751 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
30752 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
34852} 30753}
34853pattern refineTypeTo_FunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 30754pattern refineTypeTo_FunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
34854 find interpretation(problem,interpretation); 30755 find interpretation(problem,interpretation);
34855 PartialInterpretation.newElements(interpretation,element); 30756 PartialInterpretation.newElements(interpretation,element);
34856 find mayInstanceOfFunctionalOutput_class(problem,interpretation,element); 30757 find mayInstanceOfFunctionalInterface_class(problem,interpretation,element);
30758 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
34857 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 30759 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
34858 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
34859 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
34860 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 30760 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
34861 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
34862 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
34863 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 30761 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
30762 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
30763 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
34864} 30764}
34865pattern refineTypeTo_FunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 30765pattern refineTypeTo_InformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
34866 find interpretation(problem,interpretation); 30766 find interpretation(problem,interpretation);
34867 PartialInterpretation.newElements(interpretation,element); 30767 PartialInterpretation.newElements(interpretation,element);
34868 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); 30768 find mayInstanceOfInformationLink_class(problem,interpretation,element);
30769 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
34869 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 30770 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
34870 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
34871 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
34872 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 30771 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
34873 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
34874 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 30772 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
30773 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
30774 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
34875} 30775}
34876pattern refineTypeTo_InformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 30776pattern refineTypeTo_FAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
34877 find interpretation(problem,interpretation); 30777 find interpretation(problem,interpretation);
34878 PartialInterpretation.newElements(interpretation,element); 30778 PartialInterpretation.newElements(interpretation,element);
34879 find mayInstanceOfInformationLink_class(problem,interpretation,element); 30779 find mayInstanceOfFAMTerminator_class(problem,interpretation,element);
34880 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 30780 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
34881 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
34882 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
34883 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
34884 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 30781 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
30782 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
34885 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 30783 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
30784 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
30785 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
34886} 30786}
34887pattern refineTypeTo_Function_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 30787pattern refineTypeTo_FunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
34888 find interpretation(problem,interpretation); 30788 find interpretation(problem,interpretation);
34889 PartialInterpretation.newElements(interpretation,element); 30789 PartialInterpretation.newElements(interpretation,element);
34890 find mayInstanceOfFunction_class(problem,interpretation,element); 30790 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
30791 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
34891 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 30792 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
30793 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
34892 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 30794 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
34893 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
34894 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
34895 neg find mustInstanceOfFunction_class(problem,interpretation,element);
34896 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 30795 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
30796 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
34897} 30797}
34898pattern refineTypeTo_FunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 30798pattern refineTypeTo_FunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
34899 find interpretation(problem,interpretation); 30799 find interpretation(problem,interpretation);
34900 PartialInterpretation.newElements(interpretation,element); 30800 PartialInterpretation.newElements(interpretation,element);
34901 find mayInstanceOfFunctionalInput_class(problem,interpretation,element); 30801 find mayInstanceOfFunctionalOutput_class(problem,interpretation,element);
30802 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
34902 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 30803 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
34903 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
34904 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
34905 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 30804 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
34906 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
34907 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
34908 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 30805 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
30806 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
30807 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
30808 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
34909} 30809}
34910pattern refineTypeTo_FAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 30810pattern refineTypeTo_FunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
34911 find interpretation(problem,interpretation); 30811 find interpretation(problem,interpretation);
34912 PartialInterpretation.newElements(interpretation,element); 30812 PartialInterpretation.newElements(interpretation,element);
34913 find mayInstanceOfFAMTerminator_class(problem,interpretation,element); 30813 find mayInstanceOfFunctionalInput_class(problem,interpretation,element);
34914 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 30814 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
34915 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
34916 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
34917 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
34918 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 30815 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
30816 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
34919 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 30817 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
30818 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
30819 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
30820 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
34920} 30821}
34921 30822
34922////////// 30823//////////
@@ -35053,1130 +30954,436 @@ private pattern isPrimitive(element: PrimitiveElement) {
35053// 1.1.2 domain-specific Type Indexers 30954// 1.1.2 domain-specific Type Indexers
35054////////// 30955//////////
35055/** 30956/**
35056 * An element must be an instance of type "EAttribute class". 30957 * An element must be an instance of type "FunctionalElement class".
35057 */
35058private pattern mustInstanceOfEAttribute_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
35059 Type.name(type,"EAttribute class");
35060 find directInstanceOf(problem,interpretation,element,type);
35061}
35062private pattern scopeDisallowsNewEAttribute_class(problem:LogicProblem, interpretation:PartialInterpretation) {
35063 find interpretation(problem,interpretation);
35064 PartialInterpretation.scopes(interpretation,scope);
35065 Scope.targetTypeInterpretation(scope,typeInterpretation);
35066 Scope.maxNewElements(scope,0);
35067 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
35068 Type.name(type,"EAttribute class");
35069}
35070
35071/**
35072 * An element may be an instance of type "EAttribute class".
35073 */
35074private pattern mayInstanceOfEAttribute_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
35075{
35076 find interpretation(problem,interpretation);
35077 PartialInterpretation.newElements(interpretation,element);
35078 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
35079 neg find mustInstanceOfEObject_class(problem,interpretation,element);
35080 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
35081 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
35082 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
35083 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
35084 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
35085 neg find mustInstanceOfEReference_class(problem,interpretation,element);
35086 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
35087 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
35088 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
35089 neg find scopeDisallowsNewEAttribute_class(problem, interpretation);
35090 neg find isPrimitive(element);
35091} or {
35092 find interpretation(problem,interpretation);
35093 PartialInterpretation.openWorldElements(interpretation,element);
35094 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
35095 neg find mustInstanceOfEObject_class(problem,interpretation,element);
35096 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
35097 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
35098 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
35099 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
35100 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
35101 neg find mustInstanceOfEReference_class(problem,interpretation,element);
35102 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
35103 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
35104 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
35105 neg find scopeDisallowsNewEAttribute_class(problem, interpretation);
35106 neg find isPrimitive(element);
35107} or
35108{ find mustInstanceOfEAttribute_class(problem,interpretation,element); }
35109/**
35110 * An element must be an instance of type "EAnnotation class".
35111 */
35112private pattern mustInstanceOfEAnnotation_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
35113 Type.name(type,"EAnnotation class");
35114 find directInstanceOf(problem,interpretation,element,type);
35115}
35116private pattern scopeDisallowsNewEAnnotation_class(problem:LogicProblem, interpretation:PartialInterpretation) {
35117 find interpretation(problem,interpretation);
35118 PartialInterpretation.scopes(interpretation,scope);
35119 Scope.targetTypeInterpretation(scope,typeInterpretation);
35120 Scope.maxNewElements(scope,0);
35121 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
35122 Type.name(type,"EAnnotation class");
35123}
35124
35125/**
35126 * An element may be an instance of type "EAnnotation class".
35127 */
35128private pattern mayInstanceOfEAnnotation_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
35129{
35130 find interpretation(problem,interpretation);
35131 PartialInterpretation.newElements(interpretation,element);
35132 neg find mustInstanceOfEObject_class(problem,interpretation,element);
35133 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
35134 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
35135 neg find mustInstanceOfENamedElement_class(problem,interpretation,element);
35136 neg find scopeDisallowsNewEAnnotation_class(problem, interpretation);
35137 neg find isPrimitive(element);
35138} or {
35139 find interpretation(problem,interpretation);
35140 PartialInterpretation.openWorldElements(interpretation,element);
35141 neg find mustInstanceOfEObject_class(problem,interpretation,element);
35142 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
35143 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
35144 neg find mustInstanceOfENamedElement_class(problem,interpretation,element);
35145 neg find scopeDisallowsNewEAnnotation_class(problem, interpretation);
35146 neg find isPrimitive(element);
35147} or
35148{ find mustInstanceOfEAnnotation_class(problem,interpretation,element); }
35149/**
35150 * An element must be an instance of type "EClass class".
35151 */
35152private pattern mustInstanceOfEClass_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
35153 Type.name(type,"EClass class");
35154 find directInstanceOf(problem,interpretation,element,type);
35155}
35156private pattern scopeDisallowsNewEClass_class(problem:LogicProblem, interpretation:PartialInterpretation) {
35157 find interpretation(problem,interpretation);
35158 PartialInterpretation.scopes(interpretation,scope);
35159 Scope.targetTypeInterpretation(scope,typeInterpretation);
35160 Scope.maxNewElements(scope,0);
35161 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
35162 Type.name(type,"EClass class");
35163}
35164
35165/**
35166 * An element may be an instance of type "EClass class".
35167 */
35168private pattern mayInstanceOfEClass_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
35169{
35170 find interpretation(problem,interpretation);
35171 PartialInterpretation.newElements(interpretation,element);
35172 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
35173 neg find mustInstanceOfEObject_class(problem,interpretation,element);
35174 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
35175 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
35176 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
35177 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
35178 neg find mustInstanceOfEDataType_class(problem,interpretation,element);
35179 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
35180 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
35181 neg find scopeDisallowsNewEClass_class(problem, interpretation);
35182 neg find isPrimitive(element);
35183} or {
35184 find interpretation(problem,interpretation);
35185 PartialInterpretation.openWorldElements(interpretation,element);
35186 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
35187 neg find mustInstanceOfEObject_class(problem,interpretation,element);
35188 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
35189 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
35190 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
35191 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
35192 neg find mustInstanceOfEDataType_class(problem,interpretation,element);
35193 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
35194 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
35195 neg find scopeDisallowsNewEClass_class(problem, interpretation);
35196 neg find isPrimitive(element);
35197} or
35198{ find mustInstanceOfEClass_class(problem,interpretation,element); }
35199/**
35200 * An element must be an instance of type "EClassifier class".
35201 */
35202private pattern mustInstanceOfEClassifier_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
35203 Type.name(type,"EClassifier class");
35204 find directInstanceOf(problem,interpretation,element,type);
35205}
35206private pattern scopeDisallowsNewEClassifier_class(problem:LogicProblem, interpretation:PartialInterpretation) {
35207 find interpretation(problem,interpretation);
35208 PartialInterpretation.scopes(interpretation,scope);
35209 Scope.targetTypeInterpretation(scope,typeInterpretation);
35210 Scope.maxNewElements(scope,0);
35211 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
35212 Type.name(type,"EClassifier class");
35213}
35214
35215/**
35216 * An element may be an instance of type "EClassifier class".
35217 */
35218private pattern mayInstanceOfEClassifier_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
35219{
35220 find interpretation(problem,interpretation);
35221 PartialInterpretation.newElements(interpretation,element);
35222 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
35223 neg find mustInstanceOfEObject_class(problem,interpretation,element);
35224 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
35225 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
35226 neg find mustInstanceOfEClass_class(problem,interpretation,element);
35227 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
35228 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
35229 neg find mustInstanceOfEDataType_class(problem,interpretation,element);
35230 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
35231 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
35232 neg find scopeDisallowsNewEClassifier_class(problem, interpretation);
35233 neg find isPrimitive(element);
35234} or {
35235 find interpretation(problem,interpretation);
35236 PartialInterpretation.openWorldElements(interpretation,element);
35237 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
35238 neg find mustInstanceOfEObject_class(problem,interpretation,element);
35239 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
35240 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
35241 neg find mustInstanceOfEClass_class(problem,interpretation,element);
35242 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
35243 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
35244 neg find mustInstanceOfEDataType_class(problem,interpretation,element);
35245 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
35246 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
35247 neg find scopeDisallowsNewEClassifier_class(problem, interpretation);
35248 neg find isPrimitive(element);
35249} or
35250{ find mustInstanceOfEClassifier_class(problem,interpretation,element); }
35251/**
35252 * An element must be an instance of type "EDataType class".
35253 */
35254private pattern mustInstanceOfEDataType_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
35255 Type.name(type,"EDataType class");
35256 find directInstanceOf(problem,interpretation,element,type);
35257}
35258private pattern scopeDisallowsNewEDataType_class(problem:LogicProblem, interpretation:PartialInterpretation) {
35259 find interpretation(problem,interpretation);
35260 PartialInterpretation.scopes(interpretation,scope);
35261 Scope.targetTypeInterpretation(scope,typeInterpretation);
35262 Scope.maxNewElements(scope,0);
35263 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
35264 Type.name(type,"EDataType class");
35265}
35266
35267/**
35268 * An element may be an instance of type "EDataType class".
35269 */
35270private pattern mayInstanceOfEDataType_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
35271{
35272 find interpretation(problem,interpretation);
35273 PartialInterpretation.newElements(interpretation,element);
35274 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
35275 neg find mustInstanceOfEObject_class(problem,interpretation,element);
35276 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
35277 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
35278 neg find mustInstanceOfEClass_class(problem,interpretation,element);
35279 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
35280 neg find mustInstanceOfEEnum_class(problem,interpretation,element);
35281 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
35282 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
35283 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
35284 neg find scopeDisallowsNewEDataType_class(problem, interpretation);
35285 neg find isPrimitive(element);
35286} or {
35287 find interpretation(problem,interpretation);
35288 PartialInterpretation.openWorldElements(interpretation,element);
35289 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
35290 neg find mustInstanceOfEObject_class(problem,interpretation,element);
35291 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
35292 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
35293 neg find mustInstanceOfEClass_class(problem,interpretation,element);
35294 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
35295 neg find mustInstanceOfEEnum_class(problem,interpretation,element);
35296 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
35297 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
35298 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
35299 neg find scopeDisallowsNewEDataType_class(problem, interpretation);
35300 neg find isPrimitive(element);
35301} or
35302{ find mustInstanceOfEDataType_class(problem,interpretation,element); }
35303/**
35304 * An element must be an instance of type "EEnum class".
35305 */
35306private pattern mustInstanceOfEEnum_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
35307 Type.name(type,"EEnum class");
35308 find directInstanceOf(problem,interpretation,element,type);
35309}
35310private pattern scopeDisallowsNewEEnum_class(problem:LogicProblem, interpretation:PartialInterpretation) {
35311 find interpretation(problem,interpretation);
35312 PartialInterpretation.scopes(interpretation,scope);
35313 Scope.targetTypeInterpretation(scope,typeInterpretation);
35314 Scope.maxNewElements(scope,0);
35315 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
35316 Type.name(type,"EEnum class");
35317}
35318
35319/**
35320 * An element may be an instance of type "EEnum class".
35321 */
35322private pattern mayInstanceOfEEnum_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
35323{
35324 find interpretation(problem,interpretation);
35325 PartialInterpretation.newElements(interpretation,element);
35326 neg find mustInstanceOfEObject_class(problem,interpretation,element);
35327 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
35328 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
35329 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
35330 neg find mustInstanceOfEClass_class(problem,interpretation,element);
35331 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
35332 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
35333 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
35334 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
35335 neg find scopeDisallowsNewEEnum_class(problem, interpretation);
35336 neg find isPrimitive(element);
35337} or {
35338 find interpretation(problem,interpretation);
35339 PartialInterpretation.openWorldElements(interpretation,element);
35340 neg find mustInstanceOfEObject_class(problem,interpretation,element);
35341 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
35342 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
35343 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
35344 neg find mustInstanceOfEClass_class(problem,interpretation,element);
35345 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
35346 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
35347 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
35348 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
35349 neg find scopeDisallowsNewEEnum_class(problem, interpretation);
35350 neg find isPrimitive(element);
35351} or
35352{ find mustInstanceOfEEnum_class(problem,interpretation,element); }
35353/**
35354 * An element must be an instance of type "EEnumLiteral class".
35355 */
35356private pattern mustInstanceOfEEnumLiteral_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
35357 Type.name(type,"EEnumLiteral class");
35358 find directInstanceOf(problem,interpretation,element,type);
35359}
35360private pattern scopeDisallowsNewEEnumLiteral_class(problem:LogicProblem, interpretation:PartialInterpretation) {
35361 find interpretation(problem,interpretation);
35362 PartialInterpretation.scopes(interpretation,scope);
35363 Scope.targetTypeInterpretation(scope,typeInterpretation);
35364 Scope.maxNewElements(scope,0);
35365 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
35366 Type.name(type,"EEnumLiteral class");
35367}
35368
35369/**
35370 * An element may be an instance of type "EEnumLiteral class".
35371 */
35372private pattern mayInstanceOfEEnumLiteral_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
35373{
35374 find interpretation(problem,interpretation);
35375 PartialInterpretation.newElements(interpretation,element);
35376 neg find mustInstanceOfEObject_class(problem,interpretation,element);
35377 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
35378 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
35379 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
35380 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
35381 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
35382 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
35383 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
35384 neg find scopeDisallowsNewEEnumLiteral_class(problem, interpretation);
35385 neg find isPrimitive(element);
35386} or {
35387 find interpretation(problem,interpretation);
35388 PartialInterpretation.openWorldElements(interpretation,element);
35389 neg find mustInstanceOfEObject_class(problem,interpretation,element);
35390 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
35391 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
35392 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
35393 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
35394 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
35395 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
35396 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
35397 neg find scopeDisallowsNewEEnumLiteral_class(problem, interpretation);
35398 neg find isPrimitive(element);
35399} or
35400{ find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); }
35401/**
35402 * An element must be an instance of type "EModelElement class".
35403 */
35404private pattern mustInstanceOfEModelElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
35405 Type.name(type,"EModelElement class");
35406 find directInstanceOf(problem,interpretation,element,type);
35407}
35408private pattern scopeDisallowsNewEModelElement_class(problem:LogicProblem, interpretation:PartialInterpretation) {
35409 find interpretation(problem,interpretation);
35410 PartialInterpretation.scopes(interpretation,scope);
35411 Scope.targetTypeInterpretation(scope,typeInterpretation);
35412 Scope.maxNewElements(scope,0);
35413 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
35414 Type.name(type,"EModelElement class");
35415}
35416
35417/**
35418 * An element may be an instance of type "EModelElement class".
35419 */
35420private pattern mayInstanceOfEModelElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
35421{
35422 find interpretation(problem,interpretation);
35423 PartialInterpretation.newElements(interpretation,element);
35424 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
35425 neg find mustInstanceOfEObject_class(problem,interpretation,element);
35426 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
35427 neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element);
35428 neg find mustInstanceOfENamedElement_class(problem,interpretation,element);
35429 neg find scopeDisallowsNewEModelElement_class(problem, interpretation);
35430 neg find isPrimitive(element);
35431} or {
35432 find interpretation(problem,interpretation);
35433 PartialInterpretation.openWorldElements(interpretation,element);
35434 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
35435 neg find mustInstanceOfEObject_class(problem,interpretation,element);
35436 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
35437 neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element);
35438 neg find mustInstanceOfENamedElement_class(problem,interpretation,element);
35439 neg find scopeDisallowsNewEModelElement_class(problem, interpretation);
35440 neg find isPrimitive(element);
35441} or
35442{ find mustInstanceOfEModelElement_class(problem,interpretation,element); }
35443/**
35444 * An element must be an instance of type "ENamedElement class".
35445 */
35446private pattern mustInstanceOfENamedElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
35447 Type.name(type,"ENamedElement class");
35448 find directInstanceOf(problem,interpretation,element,type);
35449}
35450private pattern scopeDisallowsNewENamedElement_class(problem:LogicProblem, interpretation:PartialInterpretation) {
35451 find interpretation(problem,interpretation);
35452 PartialInterpretation.scopes(interpretation,scope);
35453 Scope.targetTypeInterpretation(scope,typeInterpretation);
35454 Scope.maxNewElements(scope,0);
35455 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
35456 Type.name(type,"ENamedElement class");
35457}
35458
35459/**
35460 * An element may be an instance of type "ENamedElement class".
35461 */
35462private pattern mayInstanceOfENamedElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
35463{
35464 find interpretation(problem,interpretation);
35465 PartialInterpretation.newElements(interpretation,element);
35466 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
35467 neg find mustInstanceOfEObject_class(problem,interpretation,element);
35468 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
35469 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
35470 neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element);
35471 neg find scopeDisallowsNewENamedElement_class(problem, interpretation);
35472 neg find isPrimitive(element);
35473} or {
35474 find interpretation(problem,interpretation);
35475 PartialInterpretation.openWorldElements(interpretation,element);
35476 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
35477 neg find mustInstanceOfEObject_class(problem,interpretation,element);
35478 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
35479 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
35480 neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element);
35481 neg find scopeDisallowsNewENamedElement_class(problem, interpretation);
35482 neg find isPrimitive(element);
35483} or
35484{ find mustInstanceOfENamedElement_class(problem,interpretation,element); }
35485/**
35486 * An element must be an instance of type "EObject class".
35487 */
35488private pattern mustInstanceOfEObject_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
35489 Type.name(type,"EObject class");
35490 find directInstanceOf(problem,interpretation,element,type);
35491}
35492private pattern scopeDisallowsNewEObject_class(problem:LogicProblem, interpretation:PartialInterpretation) {
35493 find interpretation(problem,interpretation);
35494 PartialInterpretation.scopes(interpretation,scope);
35495 Scope.targetTypeInterpretation(scope,typeInterpretation);
35496 Scope.maxNewElements(scope,0);
35497 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
35498 Type.name(type,"EObject class");
35499}
35500
35501/**
35502 * An element may be an instance of type "EObject class".
35503 */
35504private pattern mayInstanceOfEObject_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
35505{
35506 find interpretation(problem,interpretation);
35507 PartialInterpretation.newElements(interpretation,element);
35508 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
35509 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
35510 neg find mustInstanceOfEModelElement_class(problem,interpretation,element);
35511 neg find scopeDisallowsNewEObject_class(problem, interpretation);
35512 neg find isPrimitive(element);
35513} or {
35514 find interpretation(problem,interpretation);
35515 PartialInterpretation.openWorldElements(interpretation,element);
35516 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
35517 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
35518 neg find mustInstanceOfEModelElement_class(problem,interpretation,element);
35519 neg find scopeDisallowsNewEObject_class(problem, interpretation);
35520 neg find isPrimitive(element);
35521} or
35522{ find mustInstanceOfEObject_class(problem,interpretation,element); }
35523/**
35524 * An element must be an instance of type "EOperation class".
35525 */
35526private pattern mustInstanceOfEOperation_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
35527 Type.name(type,"EOperation class");
35528 find directInstanceOf(problem,interpretation,element,type);
35529}
35530private pattern scopeDisallowsNewEOperation_class(problem:LogicProblem, interpretation:PartialInterpretation) {
35531 find interpretation(problem,interpretation);
35532 PartialInterpretation.scopes(interpretation,scope);
35533 Scope.targetTypeInterpretation(scope,typeInterpretation);
35534 Scope.maxNewElements(scope,0);
35535 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
35536 Type.name(type,"EOperation class");
35537}
35538
35539/**
35540 * An element may be an instance of type "EOperation class".
35541 */
35542private pattern mayInstanceOfEOperation_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
35543{
35544 find interpretation(problem,interpretation);
35545 PartialInterpretation.newElements(interpretation,element);
35546 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
35547 neg find mustInstanceOfEObject_class(problem,interpretation,element);
35548 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
35549 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
35550 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
35551 neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element);
35552 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
35553 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
35554 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
35555 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
35556 neg find scopeDisallowsNewEOperation_class(problem, interpretation);
35557 neg find isPrimitive(element);
35558} or {
35559 find interpretation(problem,interpretation);
35560 PartialInterpretation.openWorldElements(interpretation,element);
35561 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
35562 neg find mustInstanceOfEObject_class(problem,interpretation,element);
35563 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
35564 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
35565 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
35566 neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element);
35567 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
35568 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
35569 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
35570 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
35571 neg find scopeDisallowsNewEOperation_class(problem, interpretation);
35572 neg find isPrimitive(element);
35573} or
35574{ find mustInstanceOfEOperation_class(problem,interpretation,element); }
35575/**
35576 * An element must be an instance of type "EPackage class".
35577 */
35578private pattern mustInstanceOfEPackage_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
35579 Type.name(type,"EPackage class");
35580 find directInstanceOf(problem,interpretation,element,type);
35581}
35582private pattern scopeDisallowsNewEPackage_class(problem:LogicProblem, interpretation:PartialInterpretation) {
35583 find interpretation(problem,interpretation);
35584 PartialInterpretation.scopes(interpretation,scope);
35585 Scope.targetTypeInterpretation(scope,typeInterpretation);
35586 Scope.maxNewElements(scope,0);
35587 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
35588 Type.name(type,"EPackage class");
35589}
35590
35591/**
35592 * An element may be an instance of type "EPackage class".
35593 */
35594private pattern mayInstanceOfEPackage_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
35595{
35596 find interpretation(problem,interpretation);
35597 PartialInterpretation.newElements(interpretation,element);
35598 neg find mustInstanceOfEObject_class(problem,interpretation,element);
35599 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
35600 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
35601 neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element);
35602 neg find scopeDisallowsNewEPackage_class(problem, interpretation);
35603 neg find isPrimitive(element);
35604} or {
35605 find interpretation(problem,interpretation);
35606 PartialInterpretation.openWorldElements(interpretation,element);
35607 neg find mustInstanceOfEObject_class(problem,interpretation,element);
35608 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
35609 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
35610 neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element);
35611 neg find scopeDisallowsNewEPackage_class(problem, interpretation);
35612 neg find isPrimitive(element);
35613} or
35614{ find mustInstanceOfEPackage_class(problem,interpretation,element); }
35615/**
35616 * An element must be an instance of type "EParameter class".
35617 */ 30958 */
35618private pattern mustInstanceOfEParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 30959private pattern mustInstanceOfFunctionalElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
35619 Type.name(type,"EParameter class"); 30960 Type.name(type,"FunctionalElement class");
35620 find directInstanceOf(problem,interpretation,element,type); 30961 find directInstanceOf(problem,interpretation,element,type);
35621} 30962}
35622private pattern scopeDisallowsNewEParameter_class(problem:LogicProblem, interpretation:PartialInterpretation) { 30963private pattern scopeDisallowsNewFunctionalElement_class(problem:LogicProblem, interpretation:PartialInterpretation) {
35623 find interpretation(problem,interpretation); 30964 find interpretation(problem,interpretation);
35624 PartialInterpretation.scopes(interpretation,scope); 30965 PartialInterpretation.scopes(interpretation,scope);
35625 Scope.targetTypeInterpretation(scope,typeInterpretation); 30966 Scope.targetTypeInterpretation(scope,typeInterpretation);
35626 Scope.maxNewElements(scope,0); 30967 Scope.maxNewElements(scope,0);
35627 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 30968 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
35628 Type.name(type,"EParameter class"); 30969 Type.name(type,"FunctionalElement class");
35629} 30970}
35630 30971
35631/** 30972/**
35632 * An element may be an instance of type "EParameter class". 30973 * An element may be an instance of type "FunctionalElement class".
35633 */ 30974 */
35634private pattern mayInstanceOfEParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 30975private pattern mayInstanceOfFunctionalElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
35635{ 30976{
35636 find interpretation(problem,interpretation); 30977 find interpretation(problem,interpretation);
35637 PartialInterpretation.newElements(interpretation,element); 30978 PartialInterpretation.newElements(interpretation,element);
35638 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 30979 neg find mustInstanceOfFunction_class(problem,interpretation,element);
35639 neg find mustInstanceOfEObject_class(problem,interpretation,element); 30980 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
35640 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 30981 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
35641 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 30982 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
35642 neg find mustInstanceOfEPackage_class(problem,interpretation,element); 30983 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
35643 neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); 30984 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
35644 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); 30985 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
35645 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
35646 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
35647 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
35648 neg find scopeDisallowsNewEParameter_class(problem, interpretation);
35649 neg find isPrimitive(element); 30986 neg find isPrimitive(element);
35650} or { 30987} or {
35651 find interpretation(problem,interpretation); 30988 find interpretation(problem,interpretation);
35652 PartialInterpretation.openWorldElements(interpretation,element); 30989 PartialInterpretation.openWorldElements(interpretation,element);
35653 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 30990 neg find mustInstanceOfFunction_class(problem,interpretation,element);
35654 neg find mustInstanceOfEObject_class(problem,interpretation,element); 30991 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
35655 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 30992 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
35656 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 30993 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
35657 neg find mustInstanceOfEPackage_class(problem,interpretation,element); 30994 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
35658 neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); 30995 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
35659 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); 30996 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
35660 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
35661 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
35662 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
35663 neg find scopeDisallowsNewEParameter_class(problem, interpretation);
35664 neg find isPrimitive(element); 30997 neg find isPrimitive(element);
35665} or 30998} or
35666{ find mustInstanceOfEParameter_class(problem,interpretation,element); } 30999{ find mustInstanceOfFunctionalElement_class(problem,interpretation,element); }
35667/** 31000/**
35668 * An element must be an instance of type "EReference class". 31001 * An element must be an instance of type "FunctionalArchitectureModel class".
35669 */ 31002 */
35670private pattern mustInstanceOfEReference_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 31003private pattern mustInstanceOfFunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
35671 Type.name(type,"EReference class"); 31004 Type.name(type,"FunctionalArchitectureModel class");
35672 find directInstanceOf(problem,interpretation,element,type); 31005 find directInstanceOf(problem,interpretation,element,type);
35673} 31006}
35674private pattern scopeDisallowsNewEReference_class(problem:LogicProblem, interpretation:PartialInterpretation) { 31007private pattern scopeDisallowsNewFunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation) {
35675 find interpretation(problem,interpretation); 31008 find interpretation(problem,interpretation);
35676 PartialInterpretation.scopes(interpretation,scope); 31009 PartialInterpretation.scopes(interpretation,scope);
35677 Scope.targetTypeInterpretation(scope,typeInterpretation); 31010 Scope.targetTypeInterpretation(scope,typeInterpretation);
35678 Scope.maxNewElements(scope,0); 31011 Scope.maxNewElements(scope,0);
35679 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 31012 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
35680 Type.name(type,"EReference class"); 31013 Type.name(type,"FunctionalArchitectureModel class");
35681} 31014}
35682 31015
35683/** 31016/**
35684 * An element may be an instance of type "EReference class". 31017 * An element may be an instance of type "FunctionalArchitectureModel class".
35685 */ 31018 */
35686private pattern mayInstanceOfEReference_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 31019private pattern mayInstanceOfFunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
35687{ 31020{
35688 find interpretation(problem,interpretation); 31021 find interpretation(problem,interpretation);
35689 PartialInterpretation.newElements(interpretation,element); 31022 PartialInterpretation.newElements(interpretation,element);
35690 neg find mustInstanceOfEObject_class(problem,interpretation,element); 31023 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
35691 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 31024 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
35692 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 31025 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
35693 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 31026 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
35694 neg find mustInstanceOfEParameter_class(problem,interpretation,element); 31027 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
35695 neg find mustInstanceOfEAttribute_class(problem,interpretation,element); 31028 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
35696 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
35697 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
35698 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
35699 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
35700 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
35701 neg find scopeDisallowsNewEReference_class(problem, interpretation);
35702 neg find isPrimitive(element); 31029 neg find isPrimitive(element);
35703} or { 31030} or {
35704 find interpretation(problem,interpretation); 31031 find interpretation(problem,interpretation);
35705 PartialInterpretation.openWorldElements(interpretation,element); 31032 PartialInterpretation.openWorldElements(interpretation,element);
35706 neg find mustInstanceOfEObject_class(problem,interpretation,element); 31033 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
35707 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 31034 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
35708 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 31035 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
35709 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 31036 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
35710 neg find mustInstanceOfEParameter_class(problem,interpretation,element); 31037 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
35711 neg find mustInstanceOfEAttribute_class(problem,interpretation,element); 31038 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
35712 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
35713 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
35714 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
35715 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
35716 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
35717 neg find scopeDisallowsNewEReference_class(problem, interpretation);
35718 neg find isPrimitive(element); 31039 neg find isPrimitive(element);
35719} or 31040} or
35720{ find mustInstanceOfEReference_class(problem,interpretation,element); } 31041{ find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); }
35721/** 31042/**
35722 * An element must be an instance of type "EStructuralFeature class". 31043 * An element must be an instance of type "Function class".
35723 */ 31044 */
35724private pattern mustInstanceOfEStructuralFeature_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 31045private pattern mustInstanceOfFunction_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
35725 Type.name(type,"EStructuralFeature class"); 31046 Type.name(type,"Function class");
35726 find directInstanceOf(problem,interpretation,element,type); 31047 find directInstanceOf(problem,interpretation,element,type);
35727} 31048}
35728private pattern scopeDisallowsNewEStructuralFeature_class(problem:LogicProblem, interpretation:PartialInterpretation) { 31049private pattern scopeDisallowsNewFunction_class(problem:LogicProblem, interpretation:PartialInterpretation) {
35729 find interpretation(problem,interpretation); 31050 find interpretation(problem,interpretation);
35730 PartialInterpretation.scopes(interpretation,scope); 31051 PartialInterpretation.scopes(interpretation,scope);
35731 Scope.targetTypeInterpretation(scope,typeInterpretation); 31052 Scope.targetTypeInterpretation(scope,typeInterpretation);
35732 Scope.maxNewElements(scope,0); 31053 Scope.maxNewElements(scope,0);
35733 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 31054 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
35734 Type.name(type,"EStructuralFeature class"); 31055 Type.name(type,"Function class");
35735} 31056}
35736 31057
35737/** 31058/**
35738 * An element may be an instance of type "EStructuralFeature class". 31059 * An element may be an instance of type "Function class".
35739 */ 31060 */
35740private pattern mayInstanceOfEStructuralFeature_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 31061private pattern mayInstanceOfFunction_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
35741{ 31062{
35742 find interpretation(problem,interpretation); 31063 find interpretation(problem,interpretation);
35743 PartialInterpretation.newElements(interpretation,element); 31064 PartialInterpretation.newElements(interpretation,element);
35744 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 31065 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
35745 neg find mustInstanceOfEObject_class(problem,interpretation,element); 31066 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
35746 neg find mustInstanceOfEParameter_class(problem,interpretation,element); 31067 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
35747 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 31068 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
35748 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 31069 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
35749 neg find mustInstanceOfEAttribute_class(problem,interpretation,element); 31070 neg find scopeDisallowsNewFunction_class(problem, interpretation);
35750 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
35751 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
35752 neg find mustInstanceOfEReference_class(problem,interpretation,element);
35753 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
35754 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
35755 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
35756 neg find scopeDisallowsNewEStructuralFeature_class(problem, interpretation);
35757 neg find isPrimitive(element); 31071 neg find isPrimitive(element);
35758} or { 31072} or {
35759 find interpretation(problem,interpretation); 31073 find interpretation(problem,interpretation);
35760 PartialInterpretation.openWorldElements(interpretation,element); 31074 PartialInterpretation.openWorldElements(interpretation,element);
35761 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 31075 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
35762 neg find mustInstanceOfEObject_class(problem,interpretation,element); 31076 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
35763 neg find mustInstanceOfEParameter_class(problem,interpretation,element); 31077 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
35764 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 31078 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
35765 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 31079 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
35766 neg find mustInstanceOfEAttribute_class(problem,interpretation,element); 31080 neg find scopeDisallowsNewFunction_class(problem, interpretation);
35767 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
35768 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
35769 neg find mustInstanceOfEReference_class(problem,interpretation,element);
35770 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
35771 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
35772 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
35773 neg find scopeDisallowsNewEStructuralFeature_class(problem, interpretation);
35774 neg find isPrimitive(element); 31081 neg find isPrimitive(element);
35775} or 31082} or
35776{ find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); } 31083{ find mustInstanceOfFunction_class(problem,interpretation,element); }
35777/** 31084/**
35778 * An element must be an instance of type "ETypedElement class". 31085 * An element must be an instance of type "FAMTerminator class".
35779 */ 31086 */
35780private pattern mustInstanceOfETypedElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 31087private pattern mustInstanceOfFAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
35781 Type.name(type,"ETypedElement class"); 31088 Type.name(type,"FAMTerminator class");
35782 find directInstanceOf(problem,interpretation,element,type); 31089 find directInstanceOf(problem,interpretation,element,type);
35783} 31090}
35784private pattern scopeDisallowsNewETypedElement_class(problem:LogicProblem, interpretation:PartialInterpretation) { 31091private pattern scopeDisallowsNewFAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation) {
35785 find interpretation(problem,interpretation); 31092 find interpretation(problem,interpretation);
35786 PartialInterpretation.scopes(interpretation,scope); 31093 PartialInterpretation.scopes(interpretation,scope);
35787 Scope.targetTypeInterpretation(scope,typeInterpretation); 31094 Scope.targetTypeInterpretation(scope,typeInterpretation);
35788 Scope.maxNewElements(scope,0); 31095 Scope.maxNewElements(scope,0);
35789 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 31096 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
35790 Type.name(type,"ETypedElement class"); 31097 Type.name(type,"FAMTerminator class");
35791} 31098}
35792 31099
35793/** 31100/**
35794 * An element may be an instance of type "ETypedElement class". 31101 * An element may be an instance of type "FAMTerminator class".
35795 */ 31102 */
35796private pattern mayInstanceOfETypedElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 31103private pattern mayInstanceOfFAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
35797{ 31104{
35798 find interpretation(problem,interpretation); 31105 find interpretation(problem,interpretation);
35799 PartialInterpretation.newElements(interpretation,element); 31106 PartialInterpretation.newElements(interpretation,element);
35800 neg find mustInstanceOfEObject_class(problem,interpretation,element); 31107 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
35801 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 31108 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
35802 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 31109 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
35803 neg find mustInstanceOfEParameter_class(problem,interpretation,element); 31110 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
35804 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 31111 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
35805 neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); 31112 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
35806 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
35807 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
35808 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
35809 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
35810 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
35811 neg find scopeDisallowsNewETypedElement_class(problem, interpretation);
35812 neg find isPrimitive(element); 31113 neg find isPrimitive(element);
35813} or { 31114} or {
35814 find interpretation(problem,interpretation); 31115 find interpretation(problem,interpretation);
35815 PartialInterpretation.openWorldElements(interpretation,element); 31116 PartialInterpretation.openWorldElements(interpretation,element);
35816 neg find mustInstanceOfEObject_class(problem,interpretation,element); 31117 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
35817 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 31118 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
35818 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 31119 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
35819 neg find mustInstanceOfEParameter_class(problem,interpretation,element); 31120 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
35820 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 31121 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
35821 neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); 31122 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
35822 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
35823 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
35824 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
35825 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
35826 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
35827 neg find scopeDisallowsNewETypedElement_class(problem, interpretation);
35828 neg find isPrimitive(element); 31123 neg find isPrimitive(element);
35829} or 31124} or
35830{ find mustInstanceOfETypedElement_class(problem,interpretation,element); } 31125{ find mustInstanceOfFAMTerminator_class(problem,interpretation,element); }
35831/** 31126/**
35832 * An element must be an instance of type "EStringToStringMapEntry class". 31127 * An element must be an instance of type "InformationLink class".
35833 */ 31128 */
35834private pattern mustInstanceOfEStringToStringMapEntry_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 31129private pattern mustInstanceOfInformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
35835 Type.name(type,"EStringToStringMapEntry class"); 31130 Type.name(type,"InformationLink class");
35836 find directInstanceOf(problem,interpretation,element,type); 31131 find directInstanceOf(problem,interpretation,element,type);
35837} 31132}
35838private pattern scopeDisallowsNewEStringToStringMapEntry_class(problem:LogicProblem, interpretation:PartialInterpretation) { 31133private pattern scopeDisallowsNewInformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation) {
35839 find interpretation(problem,interpretation); 31134 find interpretation(problem,interpretation);
35840 PartialInterpretation.scopes(interpretation,scope); 31135 PartialInterpretation.scopes(interpretation,scope);
35841 Scope.targetTypeInterpretation(scope,typeInterpretation); 31136 Scope.targetTypeInterpretation(scope,typeInterpretation);
35842 Scope.maxNewElements(scope,0); 31137 Scope.maxNewElements(scope,0);
35843 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 31138 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
35844 Type.name(type,"EStringToStringMapEntry class"); 31139 Type.name(type,"InformationLink class");
35845} 31140}
35846 31141
35847/** 31142/**
35848 * An element may be an instance of type "EStringToStringMapEntry class". 31143 * An element may be an instance of type "InformationLink class".
35849 */ 31144 */
35850private pattern mayInstanceOfEStringToStringMapEntry_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 31145private pattern mayInstanceOfInformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
35851{ 31146{
35852 find interpretation(problem,interpretation); 31147 find interpretation(problem,interpretation);
35853 PartialInterpretation.newElements(interpretation,element); 31148 PartialInterpretation.newElements(interpretation,element);
35854 neg find mustInstanceOfEObject_class(problem,interpretation,element); 31149 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
35855 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 31150 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
35856 neg find mustInstanceOfEModelElement_class(problem,interpretation,element); 31151 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
35857 neg find scopeDisallowsNewEStringToStringMapEntry_class(problem, interpretation); 31152 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
31153 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
31154 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
35858 neg find isPrimitive(element); 31155 neg find isPrimitive(element);
35859} or { 31156} or {
35860 find interpretation(problem,interpretation); 31157 find interpretation(problem,interpretation);
35861 PartialInterpretation.openWorldElements(interpretation,element); 31158 PartialInterpretation.openWorldElements(interpretation,element);
35862 neg find mustInstanceOfEObject_class(problem,interpretation,element); 31159 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
35863 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 31160 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
35864 neg find mustInstanceOfEModelElement_class(problem,interpretation,element); 31161 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
35865 neg find scopeDisallowsNewEStringToStringMapEntry_class(problem, interpretation); 31162 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
31163 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
31164 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
35866 neg find isPrimitive(element); 31165 neg find isPrimitive(element);
35867} or 31166} or
35868{ find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); } 31167{ find mustInstanceOfInformationLink_class(problem,interpretation,element); }
35869/** 31168/**
35870 * An element must be an instance of type "EGenericType class". 31169 * An element must be an instance of type "FunctionalInterface class".
35871 */ 31170 */
35872private pattern mustInstanceOfEGenericType_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 31171private pattern mustInstanceOfFunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
35873 Type.name(type,"EGenericType class"); 31172 Type.name(type,"FunctionalInterface class");
35874 find directInstanceOf(problem,interpretation,element,type); 31173 find directInstanceOf(problem,interpretation,element,type);
35875} 31174}
35876private pattern scopeDisallowsNewEGenericType_class(problem:LogicProblem, interpretation:PartialInterpretation) { 31175private pattern scopeDisallowsNewFunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation) {
35877 find interpretation(problem,interpretation); 31176 find interpretation(problem,interpretation);
35878 PartialInterpretation.scopes(interpretation,scope); 31177 PartialInterpretation.scopes(interpretation,scope);
35879 Scope.targetTypeInterpretation(scope,typeInterpretation); 31178 Scope.targetTypeInterpretation(scope,typeInterpretation);
35880 Scope.maxNewElements(scope,0); 31179 Scope.maxNewElements(scope,0);
35881 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 31180 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
35882 Type.name(type,"EGenericType class"); 31181 Type.name(type,"FunctionalInterface class");
35883} 31182}
35884 31183
35885/** 31184/**
35886 * An element may be an instance of type "EGenericType class". 31185 * An element may be an instance of type "FunctionalInterface class".
35887 */ 31186 */
35888private pattern mayInstanceOfEGenericType_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 31187private pattern mayInstanceOfFunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
35889{ 31188{
35890 find interpretation(problem,interpretation); 31189 find interpretation(problem,interpretation);
35891 PartialInterpretation.newElements(interpretation,element); 31190 PartialInterpretation.newElements(interpretation,element);
35892 neg find mustInstanceOfEObject_class(problem,interpretation,element); 31191 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
35893 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 31192 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
35894 neg find mustInstanceOfEModelElement_class(problem,interpretation,element); 31193 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
35895 neg find scopeDisallowsNewEGenericType_class(problem, interpretation); 31194 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
31195 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
31196 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
35896 neg find isPrimitive(element); 31197 neg find isPrimitive(element);
35897} or { 31198} or {
35898 find interpretation(problem,interpretation); 31199 find interpretation(problem,interpretation);
35899 PartialInterpretation.openWorldElements(interpretation,element); 31200 PartialInterpretation.openWorldElements(interpretation,element);
35900 neg find mustInstanceOfEObject_class(problem,interpretation,element); 31201 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
35901 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 31202 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
35902 neg find mustInstanceOfEModelElement_class(problem,interpretation,element); 31203 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
35903 neg find scopeDisallowsNewEGenericType_class(problem, interpretation); 31204 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
31205 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
31206 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
35904 neg find isPrimitive(element); 31207 neg find isPrimitive(element);
35905} or 31208} or
35906{ find mustInstanceOfEGenericType_class(problem,interpretation,element); } 31209{ find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); }
35907/** 31210/**
35908 * An element must be an instance of type "ETypeParameter class". 31211 * An element must be an instance of type "FunctionalInput class".
35909 */ 31212 */
35910private pattern mustInstanceOfETypeParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 31213private pattern mustInstanceOfFunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
35911 Type.name(type,"ETypeParameter class"); 31214 Type.name(type,"FunctionalInput class");
35912 find directInstanceOf(problem,interpretation,element,type); 31215 find directInstanceOf(problem,interpretation,element,type);
35913} 31216}
35914private pattern scopeDisallowsNewETypeParameter_class(problem:LogicProblem, interpretation:PartialInterpretation) { 31217private pattern scopeDisallowsNewFunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation) {
35915 find interpretation(problem,interpretation); 31218 find interpretation(problem,interpretation);
35916 PartialInterpretation.scopes(interpretation,scope); 31219 PartialInterpretation.scopes(interpretation,scope);
35917 Scope.targetTypeInterpretation(scope,typeInterpretation); 31220 Scope.targetTypeInterpretation(scope,typeInterpretation);
35918 Scope.maxNewElements(scope,0); 31221 Scope.maxNewElements(scope,0);
35919 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 31222 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
35920 Type.name(type,"ETypeParameter class"); 31223 Type.name(type,"FunctionalInput class");
35921} 31224}
35922 31225
35923/** 31226/**
35924 * An element may be an instance of type "ETypeParameter class". 31227 * An element may be an instance of type "FunctionalInput class".
35925 */ 31228 */
35926private pattern mayInstanceOfETypeParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 31229private pattern mayInstanceOfFunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
35927{ 31230{
35928 find interpretation(problem,interpretation); 31231 find interpretation(problem,interpretation);
35929 PartialInterpretation.newElements(interpretation,element); 31232 PartialInterpretation.newElements(interpretation,element);
35930 neg find mustInstanceOfEObject_class(problem,interpretation,element); 31233 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
35931 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 31234 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
35932 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 31235 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
35933 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 31236 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
35934 neg find mustInstanceOfEPackage_class(problem,interpretation,element); 31237 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
35935 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); 31238 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
35936 neg find mustInstanceOfEClassifier_class(problem,interpretation,element); 31239 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
35937 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
35938 neg find scopeDisallowsNewETypeParameter_class(problem, interpretation);
35939 neg find isPrimitive(element); 31240 neg find isPrimitive(element);
35940} or { 31241} or {
35941 find interpretation(problem,interpretation); 31242 find interpretation(problem,interpretation);
35942 PartialInterpretation.openWorldElements(interpretation,element); 31243 PartialInterpretation.openWorldElements(interpretation,element);
35943 neg find mustInstanceOfEObject_class(problem,interpretation,element); 31244 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
35944 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 31245 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
35945 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 31246 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
35946 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 31247 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
35947 neg find mustInstanceOfEPackage_class(problem,interpretation,element); 31248 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
35948 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); 31249 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
35949 neg find mustInstanceOfEClassifier_class(problem,interpretation,element); 31250 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
35950 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
35951 neg find scopeDisallowsNewETypeParameter_class(problem, interpretation);
35952 neg find isPrimitive(element); 31251 neg find isPrimitive(element);
35953} or 31252} or
35954{ find mustInstanceOfETypeParameter_class(problem,interpretation,element); } 31253{ find mustInstanceOfFunctionalInput_class(problem,interpretation,element); }
35955/**
35956 * An element must be an instance of type "EModelElement class DefinedPart".
35957 */
35958private pattern mustInstanceOfEModelElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
35959 Type.name(type,"EModelElement class DefinedPart");
35960 find directInstanceOf(problem,interpretation,element,type);
35961}
35962private pattern scopeDisallowsNewEModelElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
35963 find interpretation(problem,interpretation);
35964 PartialInterpretation.scopes(interpretation,scope);
35965 Scope.targetTypeInterpretation(scope,typeInterpretation);
35966 Scope.maxNewElements(scope,0);
35967 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
35968 Type.name(type,"EModelElement class DefinedPart");
35969}
35970
35971/**
35972 * An element may be an instance of type "EModelElement class DefinedPart".
35973 */
35974private pattern mayInstanceOfEModelElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
35975{ find mustInstanceOfEModelElement_class_DefinedPart(problem,interpretation,element); }
35976/** 31254/**
35977 * An element must be an instance of type "EModelElement class UndefinedPart". 31255 * An element must be an instance of type "FunctionalOutput class".
35978 */ 31256 */
35979private pattern mustInstanceOfEModelElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 31257private pattern mustInstanceOfFunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
35980 Type.name(type,"EModelElement class UndefinedPart"); 31258 Type.name(type,"FunctionalOutput class");
35981 find directInstanceOf(problem,interpretation,element,type); 31259 find directInstanceOf(problem,interpretation,element,type);
35982} 31260}
35983private pattern scopeDisallowsNewEModelElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { 31261private pattern scopeDisallowsNewFunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation) {
35984 find interpretation(problem,interpretation); 31262 find interpretation(problem,interpretation);
35985 PartialInterpretation.scopes(interpretation,scope); 31263 PartialInterpretation.scopes(interpretation,scope);
35986 Scope.targetTypeInterpretation(scope,typeInterpretation); 31264 Scope.targetTypeInterpretation(scope,typeInterpretation);
35987 Scope.maxNewElements(scope,0); 31265 Scope.maxNewElements(scope,0);
35988 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 31266 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
35989 Type.name(type,"EModelElement class UndefinedPart"); 31267 Type.name(type,"FunctionalOutput class");
35990} 31268}
35991 31269
35992/** 31270/**
35993 * An element may be an instance of type "EModelElement class UndefinedPart". 31271 * An element may be an instance of type "FunctionalOutput class".
35994 */ 31272 */
35995private pattern mayInstanceOfEModelElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 31273private pattern mayInstanceOfFunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
35996{ 31274{
35997 find interpretation(problem,interpretation); 31275 find interpretation(problem,interpretation);
35998 PartialInterpretation.newElements(interpretation,element); 31276 PartialInterpretation.newElements(interpretation,element);
35999 neg find mustInstanceOfEObject_class(problem,interpretation,element); 31277 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
36000 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 31278 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
36001 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 31279 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
36002 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 31280 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
36003 neg find mustInstanceOfENamedElement_class(problem,interpretation,element); 31281 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
36004 neg find scopeDisallowsNewEModelElement_class_UndefinedPart(problem, interpretation); 31282 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
31283 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
36005 neg find isPrimitive(element); 31284 neg find isPrimitive(element);
36006} or { 31285} or {
36007 find interpretation(problem,interpretation); 31286 find interpretation(problem,interpretation);
36008 PartialInterpretation.openWorldElements(interpretation,element); 31287 PartialInterpretation.openWorldElements(interpretation,element);
36009 neg find mustInstanceOfEObject_class(problem,interpretation,element); 31288 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
36010 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 31289 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
36011 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 31290 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
36012 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 31291 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
36013 neg find mustInstanceOfENamedElement_class(problem,interpretation,element); 31292 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
36014 neg find scopeDisallowsNewEModelElement_class_UndefinedPart(problem, interpretation); 31293 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
31294 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
36015 neg find isPrimitive(element); 31295 neg find isPrimitive(element);
36016} or 31296} or
36017{ find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element); } 31297{ find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); }
36018/**
36019 * An element must be an instance of type "ENamedElement class DefinedPart".
36020 */
36021private pattern mustInstanceOfENamedElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
36022 Type.name(type,"ENamedElement class DefinedPart");
36023 find directInstanceOf(problem,interpretation,element,type);
36024}
36025private pattern scopeDisallowsNewENamedElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
36026 find interpretation(problem,interpretation);
36027 PartialInterpretation.scopes(interpretation,scope);
36028 Scope.targetTypeInterpretation(scope,typeInterpretation);
36029 Scope.maxNewElements(scope,0);
36030 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
36031 Type.name(type,"ENamedElement class DefinedPart");
36032}
36033
36034/**
36035 * An element may be an instance of type "ENamedElement class DefinedPart".
36036 */
36037private pattern mayInstanceOfENamedElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
36038{ find mustInstanceOfENamedElement_class_DefinedPart(problem,interpretation,element); }
36039/** 31298/**
36040 * An element must be an instance of type "ENamedElement class UndefinedPart". 31299 * An element must be an instance of type "FunctionalData class".
36041 */ 31300 */
36042private pattern mustInstanceOfENamedElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 31301private pattern mustInstanceOfFunctionalData_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
36043 Type.name(type,"ENamedElement class UndefinedPart"); 31302 Type.name(type,"FunctionalData class");
36044 find directInstanceOf(problem,interpretation,element,type); 31303 find directInstanceOf(problem,interpretation,element,type);
36045} 31304}
36046private pattern scopeDisallowsNewENamedElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { 31305private pattern scopeDisallowsNewFunctionalData_class(problem:LogicProblem, interpretation:PartialInterpretation) {
36047 find interpretation(problem,interpretation); 31306 find interpretation(problem,interpretation);
36048 PartialInterpretation.scopes(interpretation,scope); 31307 PartialInterpretation.scopes(interpretation,scope);
36049 Scope.targetTypeInterpretation(scope,typeInterpretation); 31308 Scope.targetTypeInterpretation(scope,typeInterpretation);
36050 Scope.maxNewElements(scope,0); 31309 Scope.maxNewElements(scope,0);
36051 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 31310 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
36052 Type.name(type,"ENamedElement class UndefinedPart"); 31311 Type.name(type,"FunctionalData class");
36053} 31312}
36054 31313
36055/** 31314/**
36056 * An element may be an instance of type "ENamedElement class UndefinedPart". 31315 * An element may be an instance of type "FunctionalData class".
36057 */ 31316 */
36058private pattern mayInstanceOfENamedElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 31317private pattern mayInstanceOfFunctionalData_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
36059{ 31318{
36060 find interpretation(problem,interpretation); 31319 find interpretation(problem,interpretation);
36061 PartialInterpretation.newElements(interpretation,element); 31320 PartialInterpretation.newElements(interpretation,element);
36062 neg find mustInstanceOfEObject_class(problem,interpretation,element); 31321 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
36063 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 31322 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
36064 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 31323 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
36065 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 31324 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
36066 neg find mustInstanceOfEPackage_class(problem,interpretation,element); 31325 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
36067 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); 31326 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
36068 neg find mustInstanceOfEClassifier_class(problem,interpretation,element); 31327 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
36069 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); 31328 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
36070 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
36071 neg find scopeDisallowsNewENamedElement_class_UndefinedPart(problem, interpretation);
36072 neg find isPrimitive(element); 31329 neg find isPrimitive(element);
36073} or { 31330} or {
36074 find interpretation(problem,interpretation); 31331 find interpretation(problem,interpretation);
36075 PartialInterpretation.openWorldElements(interpretation,element); 31332 PartialInterpretation.openWorldElements(interpretation,element);
36076 neg find mustInstanceOfEObject_class(problem,interpretation,element); 31333 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
36077 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 31334 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
36078 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 31335 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
36079 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 31336 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
36080 neg find mustInstanceOfEPackage_class(problem,interpretation,element); 31337 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
36081 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); 31338 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
36082 neg find mustInstanceOfEClassifier_class(problem,interpretation,element); 31339 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
36083 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); 31340 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
36084 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
36085 neg find scopeDisallowsNewENamedElement_class_UndefinedPart(problem, interpretation);
36086 neg find isPrimitive(element); 31341 neg find isPrimitive(element);
36087} or 31342} or
36088{ find mustInstanceOfENamedElement_class_UndefinedPart(problem,interpretation,element); } 31343{ find mustInstanceOfFunctionalData_class(problem,interpretation,element); }
36089/**
36090 * An element must be an instance of type "EPackage class DefinedPart".
36091 */
36092private pattern mustInstanceOfEPackage_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
36093 Type.name(type,"EPackage class DefinedPart");
36094 find directInstanceOf(problem,interpretation,element,type);
36095}
36096private pattern scopeDisallowsNewEPackage_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
36097 find interpretation(problem,interpretation);
36098 PartialInterpretation.scopes(interpretation,scope);
36099 Scope.targetTypeInterpretation(scope,typeInterpretation);
36100 Scope.maxNewElements(scope,0);
36101 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
36102 Type.name(type,"EPackage class DefinedPart");
36103}
36104
36105/**
36106 * An element may be an instance of type "EPackage class DefinedPart".
36107 */
36108private pattern mayInstanceOfEPackage_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
36109{ find mustInstanceOfEPackage_class_DefinedPart(problem,interpretation,element); }
36110/** 31344/**
36111 * An element must be an instance of type "EPackage class UndefinedPart". 31345 * An element must be an instance of type "FunctionType enum".
36112 */ 31346 */
36113private pattern mustInstanceOfEPackage_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 31347private pattern mustInstanceOfFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
36114 Type.name(type,"EPackage class UndefinedPart"); 31348 Type.name(type,"FunctionType enum");
36115 find directInstanceOf(problem,interpretation,element,type); 31349 find directInstanceOf(problem,interpretation,element,type);
36116} 31350}
36117private pattern scopeDisallowsNewEPackage_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { 31351private pattern scopeDisallowsNewFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation) {
36118 find interpretation(problem,interpretation); 31352 find interpretation(problem,interpretation);
36119 PartialInterpretation.scopes(interpretation,scope); 31353 PartialInterpretation.scopes(interpretation,scope);
36120 Scope.targetTypeInterpretation(scope,typeInterpretation); 31354 Scope.targetTypeInterpretation(scope,typeInterpretation);
36121 Scope.maxNewElements(scope,0); 31355 Scope.maxNewElements(scope,0);
36122 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 31356 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
36123 Type.name(type,"EPackage class UndefinedPart"); 31357 Type.name(type,"FunctionType enum");
36124} 31358}
36125 31359
36126/** 31360/**
36127 * An element may be an instance of type "EPackage class UndefinedPart". 31361 * An element may be an instance of type "FunctionType enum".
36128 */ 31362 */
36129private pattern mayInstanceOfEPackage_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 31363private pattern mayInstanceOfFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
36130{ 31364{ find mustInstanceOfFunctionType_enum(problem,interpretation,element); }
36131 find interpretation(problem,interpretation);
36132 PartialInterpretation.newElements(interpretation,element);
36133 neg find mustInstanceOfEObject_class(problem,interpretation,element);
36134 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
36135 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
36136 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
36137 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
36138 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
36139 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
36140 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
36141 neg find scopeDisallowsNewEPackage_class_UndefinedPart(problem, interpretation);
36142 neg find isPrimitive(element);
36143} or {
36144 find interpretation(problem,interpretation);
36145 PartialInterpretation.openWorldElements(interpretation,element);
36146 neg find mustInstanceOfEObject_class(problem,interpretation,element);
36147 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
36148 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
36149 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
36150 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
36151 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
36152 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
36153 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
36154 neg find scopeDisallowsNewEPackage_class_UndefinedPart(problem, interpretation);
36155 neg find isPrimitive(element);
36156} or
36157{ find mustInstanceOfEPackage_class_UndefinedPart(problem,interpretation,element); }
36158 31365
36159////////// 31366//////////
36160// 1.2 Relation Declaration Indexers 31367// 1.2 Relation Declaration Indexers
36161////////// 31368//////////
36162/** 31369/**
36163 * Matcher for detecting tuples t where []eAttributeType reference EAttribute(source,target) 31370 * Matcher for detecting tuples t where []interface reference FunctionalElement(source,target)
36164 */ 31371 */
36165private pattern mustInRelationeAttributeType_reference_EAttribute( 31372private pattern mustInRelationinterface_reference_FunctionalElement(
36166 problem:LogicProblem, interpretation:PartialInterpretation, 31373 problem:LogicProblem, interpretation:PartialInterpretation,
36167 source: DefinedElement, target:DefinedElement) 31374 source: DefinedElement, target:DefinedElement)
36168{ 31375{
36169 find interpretation(problem,interpretation); 31376 find interpretation(problem,interpretation);
36170 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 31377 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
36171 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAttributeType reference EAttribute"); 31378 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"interface reference FunctionalElement");
36172 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 31379 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
36173 BinaryElementRelationLink.param1(link,source); 31380 BinaryElementRelationLink.param1(link,source);
36174 BinaryElementRelationLink.param2(link,target); 31381 BinaryElementRelationLink.param2(link,target);
36175} 31382}
36176/** 31383/**
36177 * Matcher for detecting tuples t where <>eAttributeType reference EAttribute(source,target) 31384 * Matcher for detecting tuples t where <>interface reference FunctionalElement(source,target)
36178 */ 31385 */
36179private pattern mayInRelationeAttributeType_reference_EAttribute( 31386private pattern mayInRelationinterface_reference_FunctionalElement(
36180 problem:LogicProblem, interpretation:PartialInterpretation, 31387 problem:LogicProblem, interpretation:PartialInterpretation,
36181 source: DefinedElement, target:DefinedElement) 31388 source: DefinedElement, target:DefinedElement)
36182{ 31389{
@@ -36185,33 +31392,42 @@ private pattern mayInRelationeAttributeType_reference_EAttribute(
36185 find mayExist(problem, interpretation, source); 31392 find mayExist(problem, interpretation, source);
36186 find mayExist(problem, interpretation, target); 31393 find mayExist(problem, interpretation, target);
36187 // Type consistency 31394 // Type consistency
36188 find mayInstanceOfEAttribute_class(problem,interpretation,source); 31395 find mayInstanceOfFunctionalElement_class(problem,interpretation,source);
36189 find mayInstanceOfEDataType_class(problem,interpretation,target); 31396 find mayInstanceOfFunctionalInterface_class(problem,interpretation,target);
36190 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 31397 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
36191 // the upper bound of the multiplicity should be considered. 31398 // the upper bound of the multiplicity should be considered.
36192 numberOfExistingReferences == count find mustInRelationeAttributeType_reference_EAttribute(problem,interpretation,source,_); 31399 numberOfExistingReferences == count find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,source,_);
36193 check(numberOfExistingReferences < 1); 31400 check(numberOfExistingReferences < 1);
31401 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
31402 // the upper bound of the opposite reference multiplicity should be considered.
31403 numberOfExistingOppositeReferences == count find mustInRelationelement_reference_FunctionalInterface(problem,interpretation,target,_);
31404 check(numberOfExistingOppositeReferences < 1);
31405 // The reference is containment, then a new reference cannot be create if:
31406 // 1. Multiple parents
31407 neg find mustContains4(problem,interpretation,_,target);
31408 // 2. Circle in the containment hierarchy
31409 neg find mustTransitiveContains(source,target);
36194} or { 31410} or {
36195 find mustInRelationeAttributeType_reference_EAttribute(problem,interpretation,source,target); 31411 find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,source,target);
36196} 31412}
36197/** 31413/**
36198 * Matcher for detecting tuples t where []details reference EAnnotation(source,target) 31414 * Matcher for detecting tuples t where []model reference FunctionalElement(source,target)
36199 */ 31415 */
36200private pattern mustInRelationdetails_reference_EAnnotation( 31416private pattern mustInRelationmodel_reference_FunctionalElement(
36201 problem:LogicProblem, interpretation:PartialInterpretation, 31417 problem:LogicProblem, interpretation:PartialInterpretation,
36202 source: DefinedElement, target:DefinedElement) 31418 source: DefinedElement, target:DefinedElement)
36203{ 31419{
36204 find interpretation(problem,interpretation); 31420 find interpretation(problem,interpretation);
36205 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 31421 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
36206 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"details reference EAnnotation"); 31422 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement");
36207 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 31423 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
36208 BinaryElementRelationLink.param1(link,source); 31424 BinaryElementRelationLink.param1(link,source);
36209 BinaryElementRelationLink.param2(link,target); 31425 BinaryElementRelationLink.param2(link,target);
36210} 31426}
36211/** 31427/**
36212 * Matcher for detecting tuples t where <>details reference EAnnotation(source,target) 31428 * Matcher for detecting tuples t where <>model reference FunctionalElement(source,target)
36213 */ 31429 */
36214private pattern mayInRelationdetails_reference_EAnnotation( 31430private pattern mayInRelationmodel_reference_FunctionalElement(
36215 problem:LogicProblem, interpretation:PartialInterpretation, 31431 problem:LogicProblem, interpretation:PartialInterpretation,
36216 source: DefinedElement, target:DefinedElement) 31432 source: DefinedElement, target:DefinedElement)
36217{ 31433{
@@ -36220,34 +31436,33 @@ private pattern mayInRelationdetails_reference_EAnnotation(
36220 find mayExist(problem, interpretation, source); 31436 find mayExist(problem, interpretation, source);
36221 find mayExist(problem, interpretation, target); 31437 find mayExist(problem, interpretation, target);
36222 // Type consistency 31438 // Type consistency
36223 find mayInstanceOfEAnnotation_class(problem,interpretation,source); 31439 find mayInstanceOfFunctionalElement_class(problem,interpretation,source);
36224 find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,target); 31440 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,target);
36225 // The reference is containment, then a new reference cannot be create if: 31441 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
36226 // 1. Multiple parents 31442 // the upper bound of the multiplicity should be considered.
36227 neg find mustContains4(problem,interpretation,_,target); 31443 numberOfExistingReferences == count find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,source,_);
36228 // 2. Circle in the containment hierarchy 31444 check(numberOfExistingReferences < 1);
36229 neg find mustTransitiveContains(source,target);
36230} or { 31445} or {
36231 find mustInRelationdetails_reference_EAnnotation(problem,interpretation,source,target); 31446 find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,source,target);
36232} 31447}
36233/** 31448/**
36234 * Matcher for detecting tuples t where []eModelElement reference EAnnotation(source,target) 31449 * Matcher for detecting tuples t where []parent reference FunctionalElement(source,target)
36235 */ 31450 */
36236private pattern mustInRelationeModelElement_reference_EAnnotation( 31451private pattern mustInRelationparent_reference_FunctionalElement(
36237 problem:LogicProblem, interpretation:PartialInterpretation, 31452 problem:LogicProblem, interpretation:PartialInterpretation,
36238 source: DefinedElement, target:DefinedElement) 31453 source: DefinedElement, target:DefinedElement)
36239{ 31454{
36240 find interpretation(problem,interpretation); 31455 find interpretation(problem,interpretation);
36241 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 31456 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
36242 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eModelElement reference EAnnotation"); 31457 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"parent reference FunctionalElement");
36243 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 31458 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
36244 BinaryElementRelationLink.param1(link,source); 31459 BinaryElementRelationLink.param1(link,source);
36245 BinaryElementRelationLink.param2(link,target); 31460 BinaryElementRelationLink.param2(link,target);
36246} 31461}
36247/** 31462/**
36248 * Matcher for detecting tuples t where <>eModelElement reference EAnnotation(source,target) 31463 * Matcher for detecting tuples t where <>parent reference FunctionalElement(source,target)
36249 */ 31464 */
36250private pattern mayInRelationeModelElement_reference_EAnnotation( 31465private pattern mayInRelationparent_reference_FunctionalElement(
36251 problem:LogicProblem, interpretation:PartialInterpretation, 31466 problem:LogicProblem, interpretation:PartialInterpretation,
36252 source: DefinedElement, target:DefinedElement) 31467 source: DefinedElement, target:DefinedElement)
36253{ 31468{
@@ -36256,11 +31471,11 @@ private pattern mayInRelationeModelElement_reference_EAnnotation(
36256 find mayExist(problem, interpretation, source); 31471 find mayExist(problem, interpretation, source);
36257 find mayExist(problem, interpretation, target); 31472 find mayExist(problem, interpretation, target);
36258 // Type consistency 31473 // Type consistency
36259 find mayInstanceOfEAnnotation_class(problem,interpretation,source); 31474 find mayInstanceOfFunctionalElement_class(problem,interpretation,source);
36260 find mayInstanceOfEModelElement_class(problem,interpretation,target); 31475 find mayInstanceOfFunction_class(problem,interpretation,target);
36261 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 31476 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
36262 // the upper bound of the multiplicity should be considered. 31477 // the upper bound of the multiplicity should be considered.
36263 numberOfExistingReferences == count find mustInRelationeModelElement_reference_EAnnotation(problem,interpretation,source,_); 31478 numberOfExistingReferences == count find mustInRelationparent_reference_FunctionalElement(problem,interpretation,source,_);
36264 check(numberOfExistingReferences < 1); 31479 check(numberOfExistingReferences < 1);
36265 // The eOpposite of the reference is containment, then a referene cannot be created if 31480 // The eOpposite of the reference is containment, then a referene cannot be created if
36266 // 1. Multiple parents 31481 // 1. Multiple parents
@@ -36268,26 +31483,26 @@ private pattern mayInRelationeModelElement_reference_EAnnotation(
36268 // 2. Circle in the containment hierarchy 31483 // 2. Circle in the containment hierarchy
36269 neg find mustTransitiveContains(source,target); 31484 neg find mustTransitiveContains(source,target);
36270} or { 31485} or {
36271 find mustInRelationeModelElement_reference_EAnnotation(problem,interpretation,source,target); 31486 find mustInRelationparent_reference_FunctionalElement(problem,interpretation,source,target);
36272} 31487}
36273/** 31488/**
36274 * Matcher for detecting tuples t where []contents reference EAnnotation(source,target) 31489 * Matcher for detecting tuples t where []rootElements reference FunctionalArchitectureModel(source,target)
36275 */ 31490 */
36276private pattern mustInRelationcontents_reference_EAnnotation( 31491private pattern mustInRelationrootElements_reference_FunctionalArchitectureModel(
36277 problem:LogicProblem, interpretation:PartialInterpretation, 31492 problem:LogicProblem, interpretation:PartialInterpretation,
36278 source: DefinedElement, target:DefinedElement) 31493 source: DefinedElement, target:DefinedElement)
36279{ 31494{
36280 find interpretation(problem,interpretation); 31495 find interpretation(problem,interpretation);
36281 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 31496 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
36282 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"contents reference EAnnotation"); 31497 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"rootElements reference FunctionalArchitectureModel");
36283 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 31498 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
36284 BinaryElementRelationLink.param1(link,source); 31499 BinaryElementRelationLink.param1(link,source);
36285 BinaryElementRelationLink.param2(link,target); 31500 BinaryElementRelationLink.param2(link,target);
36286} 31501}
36287/** 31502/**
36288 * Matcher for detecting tuples t where <>contents reference EAnnotation(source,target) 31503 * Matcher for detecting tuples t where <>rootElements reference FunctionalArchitectureModel(source,target)
36289 */ 31504 */
36290private pattern mayInRelationcontents_reference_EAnnotation( 31505private pattern mayInRelationrootElements_reference_FunctionalArchitectureModel(
36291 problem:LogicProblem, interpretation:PartialInterpretation, 31506 problem:LogicProblem, interpretation:PartialInterpretation,
36292 source: DefinedElement, target:DefinedElement) 31507 source: DefinedElement, target:DefinedElement)
36293{ 31508{
@@ -36296,96 +31511,34 @@ private pattern mayInRelationcontents_reference_EAnnotation(
36296 find mayExist(problem, interpretation, source); 31511 find mayExist(problem, interpretation, source);
36297 find mayExist(problem, interpretation, target); 31512 find mayExist(problem, interpretation, target);
36298 // Type consistency 31513 // Type consistency
36299 find mayInstanceOfEAnnotation_class(problem,interpretation,source); 31514 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,source);
36300 find mayInstanceOfEObject_class(problem,interpretation,target); 31515 find mayInstanceOfFunctionalElement_class(problem,interpretation,target);
36301 // The reference is containment, then a new reference cannot be create if: 31516 // The reference is containment, then a new reference cannot be create if:
36302 // 1. Multiple parents 31517 // 1. Multiple parents
36303 neg find mustContains4(problem,interpretation,_,target); 31518 neg find mustContains4(problem,interpretation,_,target);
36304 // 2. Circle in the containment hierarchy 31519 // 2. Circle in the containment hierarchy
36305 neg find mustTransitiveContains(source,target); 31520 neg find mustTransitiveContains(source,target);
36306} or { 31521} or {
36307 find mustInRelationcontents_reference_EAnnotation(problem,interpretation,source,target); 31522 find mustInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,source,target);
36308}
36309/**
36310 * Matcher for detecting tuples t where []references reference EAnnotation(source,target)
36311 */
36312private pattern mustInRelationreferences_reference_EAnnotation(
36313 problem:LogicProblem, interpretation:PartialInterpretation,
36314 source: DefinedElement, target:DefinedElement)
36315{
36316 find interpretation(problem,interpretation);
36317 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
36318 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"references reference EAnnotation");
36319 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
36320 BinaryElementRelationLink.param1(link,source);
36321 BinaryElementRelationLink.param2(link,target);
36322}
36323/**
36324 * Matcher for detecting tuples t where <>references reference EAnnotation(source,target)
36325 */
36326private pattern mayInRelationreferences_reference_EAnnotation(
36327 problem:LogicProblem, interpretation:PartialInterpretation,
36328 source: DefinedElement, target:DefinedElement)
36329{
36330 find interpretation(problem,interpretation);
36331 // The two endpoint of the link have to exist
36332 find mayExist(problem, interpretation, source);
36333 find mayExist(problem, interpretation, target);
36334 // Type consistency
36335 find mayInstanceOfEAnnotation_class(problem,interpretation,source);
36336 find mayInstanceOfEObject_class(problem,interpretation,target);
36337} or {
36338 find mustInRelationreferences_reference_EAnnotation(problem,interpretation,source,target);
36339}
36340/**
36341 * Matcher for detecting tuples t where []eSuperTypes reference EClass(source,target)
36342 */
36343private pattern mustInRelationeSuperTypes_reference_EClass(
36344 problem:LogicProblem, interpretation:PartialInterpretation,
36345 source: DefinedElement, target:DefinedElement)
36346{
36347 find interpretation(problem,interpretation);
36348 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
36349 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eSuperTypes reference EClass");
36350 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
36351 BinaryElementRelationLink.param1(link,source);
36352 BinaryElementRelationLink.param2(link,target);
36353}
36354/**
36355 * Matcher for detecting tuples t where <>eSuperTypes reference EClass(source,target)
36356 */
36357private pattern mayInRelationeSuperTypes_reference_EClass(
36358 problem:LogicProblem, interpretation:PartialInterpretation,
36359 source: DefinedElement, target:DefinedElement)
36360{
36361 find interpretation(problem,interpretation);
36362 // The two endpoint of the link have to exist
36363 find mayExist(problem, interpretation, source);
36364 find mayExist(problem, interpretation, target);
36365 // Type consistency
36366 find mayInstanceOfEClass_class(problem,interpretation,source);
36367 find mayInstanceOfEClass_class(problem,interpretation,target);
36368} or {
36369 find mustInRelationeSuperTypes_reference_EClass(problem,interpretation,source,target);
36370} 31523}
36371/** 31524/**
36372 * Matcher for detecting tuples t where []eOperations reference EClass(source,target) 31525 * Matcher for detecting tuples t where []subElements reference Function(source,target)
36373 */ 31526 */
36374private pattern mustInRelationeOperations_reference_EClass( 31527private pattern mustInRelationsubElements_reference_Function(
36375 problem:LogicProblem, interpretation:PartialInterpretation, 31528 problem:LogicProblem, interpretation:PartialInterpretation,
36376 source: DefinedElement, target:DefinedElement) 31529 source: DefinedElement, target:DefinedElement)
36377{ 31530{
36378 find interpretation(problem,interpretation); 31531 find interpretation(problem,interpretation);
36379 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 31532 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
36380 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eOperations reference EClass"); 31533 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"subElements reference Function");
36381 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 31534 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
36382 BinaryElementRelationLink.param1(link,source); 31535 BinaryElementRelationLink.param1(link,source);
36383 BinaryElementRelationLink.param2(link,target); 31536 BinaryElementRelationLink.param2(link,target);
36384} 31537}
36385/** 31538/**
36386 * Matcher for detecting tuples t where <>eOperations reference EClass(source,target) 31539 * Matcher for detecting tuples t where <>subElements reference Function(source,target)
36387 */ 31540 */
36388private pattern mayInRelationeOperations_reference_EClass( 31541private pattern mayInRelationsubElements_reference_Function(
36389 problem:LogicProblem, interpretation:PartialInterpretation, 31542 problem:LogicProblem, interpretation:PartialInterpretation,
36390 source: DefinedElement, target:DefinedElement) 31543 source: DefinedElement, target:DefinedElement)
36391{ 31544{
@@ -36394,11 +31547,11 @@ private pattern mayInRelationeOperations_reference_EClass(
36394 find mayExist(problem, interpretation, source); 31547 find mayExist(problem, interpretation, source);
36395 find mayExist(problem, interpretation, target); 31548 find mayExist(problem, interpretation, target);
36396 // Type consistency 31549 // Type consistency
36397 find mayInstanceOfEClass_class(problem,interpretation,source); 31550 find mayInstanceOfFunction_class(problem,interpretation,source);
36398 find mayInstanceOfEOperation_class(problem,interpretation,target); 31551 find mayInstanceOfFunctionalElement_class(problem,interpretation,target);
36399 // There are "numberOfExistingReferences" currently existing instances of the reference to the target, 31552 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
36400 // the upper bound of the opposite reference multiplicity should be considered. 31553 // the upper bound of the opposite reference multiplicity should be considered.
36401 numberOfExistingOppositeReferences == count find mustInRelationeContainingClass_reference_EOperation(problem,interpretation,target,_); 31554 numberOfExistingOppositeReferences == count find mustInRelationparent_reference_FunctionalElement(problem,interpretation,target,_);
36402 check(numberOfExistingOppositeReferences < 1); 31555 check(numberOfExistingOppositeReferences < 1);
36403 // The reference is containment, then a new reference cannot be create if: 31556 // The reference is containment, then a new reference cannot be create if:
36404 // 1. Multiple parents 31557 // 1. Multiple parents
@@ -36406,274 +31559,26 @@ private pattern mayInRelationeOperations_reference_EClass(
36406 // 2. Circle in the containment hierarchy 31559 // 2. Circle in the containment hierarchy
36407 neg find mustTransitiveContains(source,target); 31560 neg find mustTransitiveContains(source,target);
36408} or { 31561} or {
36409 find mustInRelationeOperations_reference_EClass(problem,interpretation,source,target); 31562 find mustInRelationsubElements_reference_Function(problem,interpretation,source,target);
36410}
36411/**
36412 * Matcher for detecting tuples t where []eAllAttributes reference EClass(source,target)
36413 */
36414private pattern mustInRelationeAllAttributes_reference_EClass(
36415 problem:LogicProblem, interpretation:PartialInterpretation,
36416 source: DefinedElement, target:DefinedElement)
36417{
36418 find interpretation(problem,interpretation);
36419 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
36420 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllAttributes reference EClass");
36421 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
36422 BinaryElementRelationLink.param1(link,source);
36423 BinaryElementRelationLink.param2(link,target);
36424}
36425/**
36426 * Matcher for detecting tuples t where <>eAllAttributes reference EClass(source,target)
36427 */
36428private pattern mayInRelationeAllAttributes_reference_EClass(
36429 problem:LogicProblem, interpretation:PartialInterpretation,
36430 source: DefinedElement, target:DefinedElement)
36431{
36432 find interpretation(problem,interpretation);
36433 // The two endpoint of the link have to exist
36434 find mayExist(problem, interpretation, source);
36435 find mayExist(problem, interpretation, target);
36436 // Type consistency
36437 find mayInstanceOfEClass_class(problem,interpretation,source);
36438 find mayInstanceOfEAttribute_class(problem,interpretation,target);
36439} or {
36440 find mustInRelationeAllAttributes_reference_EClass(problem,interpretation,source,target);
36441}
36442/**
36443 * Matcher for detecting tuples t where []eAllReferences reference EClass(source,target)
36444 */
36445private pattern mustInRelationeAllReferences_reference_EClass(
36446 problem:LogicProblem, interpretation:PartialInterpretation,
36447 source: DefinedElement, target:DefinedElement)
36448{
36449 find interpretation(problem,interpretation);
36450 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
36451 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllReferences reference EClass");
36452 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
36453 BinaryElementRelationLink.param1(link,source);
36454 BinaryElementRelationLink.param2(link,target);
36455}
36456/**
36457 * Matcher for detecting tuples t where <>eAllReferences reference EClass(source,target)
36458 */
36459private pattern mayInRelationeAllReferences_reference_EClass(
36460 problem:LogicProblem, interpretation:PartialInterpretation,
36461 source: DefinedElement, target:DefinedElement)
36462{
36463 find interpretation(problem,interpretation);
36464 // The two endpoint of the link have to exist
36465 find mayExist(problem, interpretation, source);
36466 find mayExist(problem, interpretation, target);
36467 // Type consistency
36468 find mayInstanceOfEClass_class(problem,interpretation,source);
36469 find mayInstanceOfEReference_class(problem,interpretation,target);
36470} or {
36471 find mustInRelationeAllReferences_reference_EClass(problem,interpretation,source,target);
36472}
36473/**
36474 * Matcher for detecting tuples t where []eReferences reference EClass(source,target)
36475 */
36476private pattern mustInRelationeReferences_reference_EClass(
36477 problem:LogicProblem, interpretation:PartialInterpretation,
36478 source: DefinedElement, target:DefinedElement)
36479{
36480 find interpretation(problem,interpretation);
36481 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
36482 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eReferences reference EClass");
36483 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
36484 BinaryElementRelationLink.param1(link,source);
36485 BinaryElementRelationLink.param2(link,target);
36486}
36487/**
36488 * Matcher for detecting tuples t where <>eReferences reference EClass(source,target)
36489 */
36490private pattern mayInRelationeReferences_reference_EClass(
36491 problem:LogicProblem, interpretation:PartialInterpretation,
36492 source: DefinedElement, target:DefinedElement)
36493{
36494 find interpretation(problem,interpretation);
36495 // The two endpoint of the link have to exist
36496 find mayExist(problem, interpretation, source);
36497 find mayExist(problem, interpretation, target);
36498 // Type consistency
36499 find mayInstanceOfEClass_class(problem,interpretation,source);
36500 find mayInstanceOfEReference_class(problem,interpretation,target);
36501} or {
36502 find mustInRelationeReferences_reference_EClass(problem,interpretation,source,target);
36503}
36504/**
36505 * Matcher for detecting tuples t where []eAttributes reference EClass(source,target)
36506 */
36507private pattern mustInRelationeAttributes_reference_EClass(
36508 problem:LogicProblem, interpretation:PartialInterpretation,
36509 source: DefinedElement, target:DefinedElement)
36510{
36511 find interpretation(problem,interpretation);
36512 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
36513 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAttributes reference EClass");
36514 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
36515 BinaryElementRelationLink.param1(link,source);
36516 BinaryElementRelationLink.param2(link,target);
36517}
36518/**
36519 * Matcher for detecting tuples t where <>eAttributes reference EClass(source,target)
36520 */
36521private pattern mayInRelationeAttributes_reference_EClass(
36522 problem:LogicProblem, interpretation:PartialInterpretation,
36523 source: DefinedElement, target:DefinedElement)
36524{
36525 find interpretation(problem,interpretation);
36526 // The two endpoint of the link have to exist
36527 find mayExist(problem, interpretation, source);
36528 find mayExist(problem, interpretation, target);
36529 // Type consistency
36530 find mayInstanceOfEClass_class(problem,interpretation,source);
36531 find mayInstanceOfEAttribute_class(problem,interpretation,target);
36532} or {
36533 find mustInRelationeAttributes_reference_EClass(problem,interpretation,source,target);
36534}
36535/**
36536 * Matcher for detecting tuples t where []eAllContainments reference EClass(source,target)
36537 */
36538private pattern mustInRelationeAllContainments_reference_EClass(
36539 problem:LogicProblem, interpretation:PartialInterpretation,
36540 source: DefinedElement, target:DefinedElement)
36541{
36542 find interpretation(problem,interpretation);
36543 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
36544 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllContainments reference EClass");
36545 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
36546 BinaryElementRelationLink.param1(link,source);
36547 BinaryElementRelationLink.param2(link,target);
36548}
36549/**
36550 * Matcher for detecting tuples t where <>eAllContainments reference EClass(source,target)
36551 */
36552private pattern mayInRelationeAllContainments_reference_EClass(
36553 problem:LogicProblem, interpretation:PartialInterpretation,
36554 source: DefinedElement, target:DefinedElement)
36555{
36556 find interpretation(problem,interpretation);
36557 // The two endpoint of the link have to exist
36558 find mayExist(problem, interpretation, source);
36559 find mayExist(problem, interpretation, target);
36560 // Type consistency
36561 find mayInstanceOfEClass_class(problem,interpretation,source);
36562 find mayInstanceOfEReference_class(problem,interpretation,target);
36563} or {
36564 find mustInRelationeAllContainments_reference_EClass(problem,interpretation,source,target);
36565}
36566/**
36567 * Matcher for detecting tuples t where []eAllOperations reference EClass(source,target)
36568 */
36569private pattern mustInRelationeAllOperations_reference_EClass(
36570 problem:LogicProblem, interpretation:PartialInterpretation,
36571 source: DefinedElement, target:DefinedElement)
36572{
36573 find interpretation(problem,interpretation);
36574 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
36575 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllOperations reference EClass");
36576 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
36577 BinaryElementRelationLink.param1(link,source);
36578 BinaryElementRelationLink.param2(link,target);
36579}
36580/**
36581 * Matcher for detecting tuples t where <>eAllOperations reference EClass(source,target)
36582 */
36583private pattern mayInRelationeAllOperations_reference_EClass(
36584 problem:LogicProblem, interpretation:PartialInterpretation,
36585 source: DefinedElement, target:DefinedElement)
36586{
36587 find interpretation(problem,interpretation);
36588 // The two endpoint of the link have to exist
36589 find mayExist(problem, interpretation, source);
36590 find mayExist(problem, interpretation, target);
36591 // Type consistency
36592 find mayInstanceOfEClass_class(problem,interpretation,source);
36593 find mayInstanceOfEOperation_class(problem,interpretation,target);
36594} or {
36595 find mustInRelationeAllOperations_reference_EClass(problem,interpretation,source,target);
36596}
36597/**
36598 * Matcher for detecting tuples t where []eAllStructuralFeatures reference EClass(source,target)
36599 */
36600private pattern mustInRelationeAllStructuralFeatures_reference_EClass(
36601 problem:LogicProblem, interpretation:PartialInterpretation,
36602 source: DefinedElement, target:DefinedElement)
36603{
36604 find interpretation(problem,interpretation);
36605 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
36606 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllStructuralFeatures reference EClass");
36607 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
36608 BinaryElementRelationLink.param1(link,source);
36609 BinaryElementRelationLink.param2(link,target);
36610}
36611/**
36612 * Matcher for detecting tuples t where <>eAllStructuralFeatures reference EClass(source,target)
36613 */
36614private pattern mayInRelationeAllStructuralFeatures_reference_EClass(
36615 problem:LogicProblem, interpretation:PartialInterpretation,
36616 source: DefinedElement, target:DefinedElement)
36617{
36618 find interpretation(problem,interpretation);
36619 // The two endpoint of the link have to exist
36620 find mayExist(problem, interpretation, source);
36621 find mayExist(problem, interpretation, target);
36622 // Type consistency
36623 find mayInstanceOfEClass_class(problem,interpretation,source);
36624 find mayInstanceOfEStructuralFeature_class(problem,interpretation,target);
36625} or {
36626 find mustInRelationeAllStructuralFeatures_reference_EClass(problem,interpretation,source,target);
36627}
36628/**
36629 * Matcher for detecting tuples t where []eAllSuperTypes reference EClass(source,target)
36630 */
36631private pattern mustInRelationeAllSuperTypes_reference_EClass(
36632 problem:LogicProblem, interpretation:PartialInterpretation,
36633 source: DefinedElement, target:DefinedElement)
36634{
36635 find interpretation(problem,interpretation);
36636 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
36637 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllSuperTypes reference EClass");
36638 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
36639 BinaryElementRelationLink.param1(link,source);
36640 BinaryElementRelationLink.param2(link,target);
36641}
36642/**
36643 * Matcher for detecting tuples t where <>eAllSuperTypes reference EClass(source,target)
36644 */
36645private pattern mayInRelationeAllSuperTypes_reference_EClass(
36646 problem:LogicProblem, interpretation:PartialInterpretation,
36647 source: DefinedElement, target:DefinedElement)
36648{
36649 find interpretation(problem,interpretation);
36650 // The two endpoint of the link have to exist
36651 find mayExist(problem, interpretation, source);
36652 find mayExist(problem, interpretation, target);
36653 // Type consistency
36654 find mayInstanceOfEClass_class(problem,interpretation,source);
36655 find mayInstanceOfEClass_class(problem,interpretation,target);
36656} or {
36657 find mustInRelationeAllSuperTypes_reference_EClass(problem,interpretation,source,target);
36658} 31563}
36659/** 31564/**
36660 * Matcher for detecting tuples t where []eIDAttribute reference EClass(source,target) 31565 * Matcher for detecting tuples t where []data reference FAMTerminator(source,target)
36661 */ 31566 */
36662private pattern mustInRelationeIDAttribute_reference_EClass( 31567private pattern mustInRelationdata_reference_FAMTerminator(
36663 problem:LogicProblem, interpretation:PartialInterpretation, 31568 problem:LogicProblem, interpretation:PartialInterpretation,
36664 source: DefinedElement, target:DefinedElement) 31569 source: DefinedElement, target:DefinedElement)
36665{ 31570{
36666 find interpretation(problem,interpretation); 31571 find interpretation(problem,interpretation);
36667 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 31572 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
36668 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eIDAttribute reference EClass"); 31573 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"data reference FAMTerminator");
36669 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 31574 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
36670 BinaryElementRelationLink.param1(link,source); 31575 BinaryElementRelationLink.param1(link,source);
36671 BinaryElementRelationLink.param2(link,target); 31576 BinaryElementRelationLink.param2(link,target);
36672} 31577}
36673/** 31578/**
36674 * Matcher for detecting tuples t where <>eIDAttribute reference EClass(source,target) 31579 * Matcher for detecting tuples t where <>data reference FAMTerminator(source,target)
36675 */ 31580 */
36676private pattern mayInRelationeIDAttribute_reference_EClass( 31581private pattern mayInRelationdata_reference_FAMTerminator(
36677 problem:LogicProblem, interpretation:PartialInterpretation, 31582 problem:LogicProblem, interpretation:PartialInterpretation,
36678 source: DefinedElement, target:DefinedElement) 31583 source: DefinedElement, target:DefinedElement)
36679{ 31584{
@@ -36682,140 +31587,42 @@ private pattern mayInRelationeIDAttribute_reference_EClass(
36682 find mayExist(problem, interpretation, source); 31587 find mayExist(problem, interpretation, source);
36683 find mayExist(problem, interpretation, target); 31588 find mayExist(problem, interpretation, target);
36684 // Type consistency 31589 // Type consistency
36685 find mayInstanceOfEClass_class(problem,interpretation,source); 31590 find mayInstanceOfFAMTerminator_class(problem,interpretation,source);
36686 find mayInstanceOfEAttribute_class(problem,interpretation,target); 31591 find mayInstanceOfFunctionalData_class(problem,interpretation,target);
36687 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 31592 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
36688 // the upper bound of the multiplicity should be considered. 31593 // the upper bound of the multiplicity should be considered.
36689 numberOfExistingReferences == count find mustInRelationeIDAttribute_reference_EClass(problem,interpretation,source,_); 31594 numberOfExistingReferences == count find mustInRelationdata_reference_FAMTerminator(problem,interpretation,source,_);
36690 check(numberOfExistingReferences < 1); 31595 check(numberOfExistingReferences < 1);
36691} or {
36692 find mustInRelationeIDAttribute_reference_EClass(problem,interpretation,source,target);
36693}
36694/**
36695 * Matcher for detecting tuples t where []eStructuralFeatures reference EClass(source,target)
36696 */
36697private pattern mustInRelationeStructuralFeatures_reference_EClass(
36698 problem:LogicProblem, interpretation:PartialInterpretation,
36699 source: DefinedElement, target:DefinedElement)
36700{
36701 find interpretation(problem,interpretation);
36702 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
36703 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eStructuralFeatures reference EClass");
36704 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
36705 BinaryElementRelationLink.param1(link,source);
36706 BinaryElementRelationLink.param2(link,target);
36707}
36708/**
36709 * Matcher for detecting tuples t where <>eStructuralFeatures reference EClass(source,target)
36710 */
36711private pattern mayInRelationeStructuralFeatures_reference_EClass(
36712 problem:LogicProblem, interpretation:PartialInterpretation,
36713 source: DefinedElement, target:DefinedElement)
36714{
36715 find interpretation(problem,interpretation);
36716 // The two endpoint of the link have to exist
36717 find mayExist(problem, interpretation, source);
36718 find mayExist(problem, interpretation, target);
36719 // Type consistency
36720 find mayInstanceOfEClass_class(problem,interpretation,source);
36721 find mayInstanceOfEStructuralFeature_class(problem,interpretation,target);
36722 // There are "numberOfExistingReferences" currently existing instances of the reference to the target, 31596 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
36723 // the upper bound of the opposite reference multiplicity should be considered. 31597 // the upper bound of the opposite reference multiplicity should be considered.
36724 numberOfExistingOppositeReferences == count find mustInRelationeContainingClass_reference_EStructuralFeature(problem,interpretation,target,_); 31598 numberOfExistingOppositeReferences == count find mustInRelationterminator_reference_FunctionalData(problem,interpretation,target,_);
36725 check(numberOfExistingOppositeReferences < 1); 31599 check(numberOfExistingOppositeReferences < 1);
36726 // The reference is containment, then a new reference cannot be create if: 31600 // The eOpposite of the reference is containment, then a referene cannot be created if
36727 // 1. Multiple parents
36728 neg find mustContains4(problem,interpretation,_,target);
36729 // 2. Circle in the containment hierarchy
36730 neg find mustTransitiveContains(source,target);
36731} or {
36732 find mustInRelationeStructuralFeatures_reference_EClass(problem,interpretation,source,target);
36733}
36734/**
36735 * Matcher for detecting tuples t where []eGenericSuperTypes reference EClass(source,target)
36736 */
36737private pattern mustInRelationeGenericSuperTypes_reference_EClass(
36738 problem:LogicProblem, interpretation:PartialInterpretation,
36739 source: DefinedElement, target:DefinedElement)
36740{
36741 find interpretation(problem,interpretation);
36742 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
36743 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eGenericSuperTypes reference EClass");
36744 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
36745 BinaryElementRelationLink.param1(link,source);
36746 BinaryElementRelationLink.param2(link,target);
36747}
36748/**
36749 * Matcher for detecting tuples t where <>eGenericSuperTypes reference EClass(source,target)
36750 */
36751private pattern mayInRelationeGenericSuperTypes_reference_EClass(
36752 problem:LogicProblem, interpretation:PartialInterpretation,
36753 source: DefinedElement, target:DefinedElement)
36754{
36755 find interpretation(problem,interpretation);
36756 // The two endpoint of the link have to exist
36757 find mayExist(problem, interpretation, source);
36758 find mayExist(problem, interpretation, target);
36759 // Type consistency
36760 find mayInstanceOfEClass_class(problem,interpretation,source);
36761 find mayInstanceOfEGenericType_class(problem,interpretation,target);
36762 // The reference is containment, then a new reference cannot be create if:
36763 // 1. Multiple parents 31601 // 1. Multiple parents
36764 neg find mustContains4(problem,interpretation,_,target); 31602 neg find mustContains4(problem,interpretation,source,_);
36765 // 2. Circle in the containment hierarchy 31603 // 2. Circle in the containment hierarchy
36766 neg find mustTransitiveContains(source,target); 31604 neg find mustTransitiveContains(source,target);
36767} or { 31605} or {
36768 find mustInRelationeGenericSuperTypes_reference_EClass(problem,interpretation,source,target); 31606 find mustInRelationdata_reference_FAMTerminator(problem,interpretation,source,target);
36769}
36770/**
36771 * Matcher for detecting tuples t where []eAllGenericSuperTypes reference EClass(source,target)
36772 */
36773private pattern mustInRelationeAllGenericSuperTypes_reference_EClass(
36774 problem:LogicProblem, interpretation:PartialInterpretation,
36775 source: DefinedElement, target:DefinedElement)
36776{
36777 find interpretation(problem,interpretation);
36778 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
36779 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllGenericSuperTypes reference EClass");
36780 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
36781 BinaryElementRelationLink.param1(link,source);
36782 BinaryElementRelationLink.param2(link,target);
36783}
36784/**
36785 * Matcher for detecting tuples t where <>eAllGenericSuperTypes reference EClass(source,target)
36786 */
36787private pattern mayInRelationeAllGenericSuperTypes_reference_EClass(
36788 problem:LogicProblem, interpretation:PartialInterpretation,
36789 source: DefinedElement, target:DefinedElement)
36790{
36791 find interpretation(problem,interpretation);
36792 // The two endpoint of the link have to exist
36793 find mayExist(problem, interpretation, source);
36794 find mayExist(problem, interpretation, target);
36795 // Type consistency
36796 find mayInstanceOfEClass_class(problem,interpretation,source);
36797 find mayInstanceOfEGenericType_class(problem,interpretation,target);
36798} or {
36799 find mustInRelationeAllGenericSuperTypes_reference_EClass(problem,interpretation,source,target);
36800} 31607}
36801/** 31608/**
36802 * Matcher for detecting tuples t where []ePackage reference EClassifier(source,target) 31609 * Matcher for detecting tuples t where []from reference InformationLink(source,target)
36803 */ 31610 */
36804private pattern mustInRelationePackage_reference_EClassifier( 31611private pattern mustInRelationfrom_reference_InformationLink(
36805 problem:LogicProblem, interpretation:PartialInterpretation, 31612 problem:LogicProblem, interpretation:PartialInterpretation,
36806 source: DefinedElement, target:DefinedElement) 31613 source: DefinedElement, target:DefinedElement)
36807{ 31614{
36808 find interpretation(problem,interpretation); 31615 find interpretation(problem,interpretation);
36809 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 31616 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
36810 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"ePackage reference EClassifier"); 31617 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"from reference InformationLink");
36811 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 31618 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
36812 BinaryElementRelationLink.param1(link,source); 31619 BinaryElementRelationLink.param1(link,source);
36813 BinaryElementRelationLink.param2(link,target); 31620 BinaryElementRelationLink.param2(link,target);
36814} 31621}
36815/** 31622/**
36816 * Matcher for detecting tuples t where <>ePackage reference EClassifier(source,target) 31623 * Matcher for detecting tuples t where <>from reference InformationLink(source,target)
36817 */ 31624 */
36818private pattern mayInRelationePackage_reference_EClassifier( 31625private pattern mayInRelationfrom_reference_InformationLink(
36819 problem:LogicProblem, interpretation:PartialInterpretation, 31626 problem:LogicProblem, interpretation:PartialInterpretation,
36820 source: DefinedElement, target:DefinedElement) 31627 source: DefinedElement, target:DefinedElement)
36821{ 31628{
@@ -36824,11 +31631,11 @@ private pattern mayInRelationePackage_reference_EClassifier(
36824 find mayExist(problem, interpretation, source); 31631 find mayExist(problem, interpretation, source);
36825 find mayExist(problem, interpretation, target); 31632 find mayExist(problem, interpretation, target);
36826 // Type consistency 31633 // Type consistency
36827 find mayInstanceOfEClassifier_class(problem,interpretation,source); 31634 find mayInstanceOfInformationLink_class(problem,interpretation,source);
36828 find mayInstanceOfEPackage_class(problem,interpretation,target); 31635 find mayInstanceOfFunctionalOutput_class(problem,interpretation,target);
36829 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 31636 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
36830 // the upper bound of the multiplicity should be considered. 31637 // the upper bound of the multiplicity should be considered.
36831 numberOfExistingReferences == count find mustInRelationePackage_reference_EClassifier(problem,interpretation,source,_); 31638 numberOfExistingReferences == count find mustInRelationfrom_reference_InformationLink(problem,interpretation,source,_);
36832 check(numberOfExistingReferences < 1); 31639 check(numberOfExistingReferences < 1);
36833 // The eOpposite of the reference is containment, then a referene cannot be created if 31640 // The eOpposite of the reference is containment, then a referene cannot be created if
36834 // 1. Multiple parents 31641 // 1. Multiple parents
@@ -36836,102 +31643,26 @@ private pattern mayInRelationePackage_reference_EClassifier(
36836 // 2. Circle in the containment hierarchy 31643 // 2. Circle in the containment hierarchy
36837 neg find mustTransitiveContains(source,target); 31644 neg find mustTransitiveContains(source,target);
36838} or { 31645} or {
36839 find mustInRelationePackage_reference_EClassifier(problem,interpretation,source,target); 31646 find mustInRelationfrom_reference_InformationLink(problem,interpretation,source,target);
36840}
36841/**
36842 * Matcher for detecting tuples t where []eTypeParameters reference EClassifier(source,target)
36843 */
36844private pattern mustInRelationeTypeParameters_reference_EClassifier(
36845 problem:LogicProblem, interpretation:PartialInterpretation,
36846 source: DefinedElement, target:DefinedElement)
36847{
36848 find interpretation(problem,interpretation);
36849 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
36850 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eTypeParameters reference EClassifier");
36851 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
36852 BinaryElementRelationLink.param1(link,source);
36853 BinaryElementRelationLink.param2(link,target);
36854}
36855/**
36856 * Matcher for detecting tuples t where <>eTypeParameters reference EClassifier(source,target)
36857 */
36858private pattern mayInRelationeTypeParameters_reference_EClassifier(
36859 problem:LogicProblem, interpretation:PartialInterpretation,
36860 source: DefinedElement, target:DefinedElement)
36861{
36862 find interpretation(problem,interpretation);
36863 // The two endpoint of the link have to exist
36864 find mayExist(problem, interpretation, source);
36865 find mayExist(problem, interpretation, target);
36866 // Type consistency
36867 find mayInstanceOfEClassifier_class(problem,interpretation,source);
36868 find mayInstanceOfETypeParameter_class(problem,interpretation,target);
36869 // The reference is containment, then a new reference cannot be create if:
36870 // 1. Multiple parents
36871 neg find mustContains4(problem,interpretation,_,target);
36872 // 2. Circle in the containment hierarchy
36873 neg find mustTransitiveContains(source,target);
36874} or {
36875 find mustInRelationeTypeParameters_reference_EClassifier(problem,interpretation,source,target);
36876}
36877/**
36878 * Matcher for detecting tuples t where []eLiterals reference EEnum(source,target)
36879 */
36880private pattern mustInRelationeLiterals_reference_EEnum(
36881 problem:LogicProblem, interpretation:PartialInterpretation,
36882 source: DefinedElement, target:DefinedElement)
36883{
36884 find interpretation(problem,interpretation);
36885 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
36886 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eLiterals reference EEnum");
36887 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
36888 BinaryElementRelationLink.param1(link,source);
36889 BinaryElementRelationLink.param2(link,target);
36890}
36891/**
36892 * Matcher for detecting tuples t where <>eLiterals reference EEnum(source,target)
36893 */
36894private pattern mayInRelationeLiterals_reference_EEnum(
36895 problem:LogicProblem, interpretation:PartialInterpretation,
36896 source: DefinedElement, target:DefinedElement)
36897{
36898 find interpretation(problem,interpretation);
36899 // The two endpoint of the link have to exist
36900 find mayExist(problem, interpretation, source);
36901 find mayExist(problem, interpretation, target);
36902 // Type consistency
36903 find mayInstanceOfEEnum_class(problem,interpretation,source);
36904 find mayInstanceOfEEnumLiteral_class(problem,interpretation,target);
36905 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
36906 // the upper bound of the opposite reference multiplicity should be considered.
36907 numberOfExistingOppositeReferences == count find mustInRelationeEnum_reference_EEnumLiteral(problem,interpretation,target,_);
36908 check(numberOfExistingOppositeReferences < 1);
36909 // The reference is containment, then a new reference cannot be create if:
36910 // 1. Multiple parents
36911 neg find mustContains4(problem,interpretation,_,target);
36912 // 2. Circle in the containment hierarchy
36913 neg find mustTransitiveContains(source,target);
36914} or {
36915 find mustInRelationeLiterals_reference_EEnum(problem,interpretation,source,target);
36916} 31647}
36917/** 31648/**
36918 * Matcher for detecting tuples t where []eEnum reference EEnumLiteral(source,target) 31649 * Matcher for detecting tuples t where []to reference InformationLink(source,target)
36919 */ 31650 */
36920private pattern mustInRelationeEnum_reference_EEnumLiteral( 31651private pattern mustInRelationto_reference_InformationLink(
36921 problem:LogicProblem, interpretation:PartialInterpretation, 31652 problem:LogicProblem, interpretation:PartialInterpretation,
36922 source: DefinedElement, target:DefinedElement) 31653 source: DefinedElement, target:DefinedElement)
36923{ 31654{
36924 find interpretation(problem,interpretation); 31655 find interpretation(problem,interpretation);
36925 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 31656 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
36926 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eEnum reference EEnumLiteral"); 31657 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"to reference InformationLink");
36927 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 31658 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
36928 BinaryElementRelationLink.param1(link,source); 31659 BinaryElementRelationLink.param1(link,source);
36929 BinaryElementRelationLink.param2(link,target); 31660 BinaryElementRelationLink.param2(link,target);
36930} 31661}
36931/** 31662/**
36932 * Matcher for detecting tuples t where <>eEnum reference EEnumLiteral(source,target) 31663 * Matcher for detecting tuples t where <>to reference InformationLink(source,target)
36933 */ 31664 */
36934private pattern mayInRelationeEnum_reference_EEnumLiteral( 31665private pattern mayInRelationto_reference_InformationLink(
36935 problem:LogicProblem, interpretation:PartialInterpretation, 31666 problem:LogicProblem, interpretation:PartialInterpretation,
36936 source: DefinedElement, target:DefinedElement) 31667 source: DefinedElement, target:DefinedElement)
36937{ 31668{
@@ -36940,38 +31671,33 @@ private pattern mayInRelationeEnum_reference_EEnumLiteral(
36940 find mayExist(problem, interpretation, source); 31671 find mayExist(problem, interpretation, source);
36941 find mayExist(problem, interpretation, target); 31672 find mayExist(problem, interpretation, target);
36942 // Type consistency 31673 // Type consistency
36943 find mayInstanceOfEEnumLiteral_class(problem,interpretation,source); 31674 find mayInstanceOfInformationLink_class(problem,interpretation,source);
36944 find mayInstanceOfEEnum_class(problem,interpretation,target); 31675 find mayInstanceOfFunctionalInput_class(problem,interpretation,target);
36945 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 31676 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
36946 // the upper bound of the multiplicity should be considered. 31677 // the upper bound of the multiplicity should be considered.
36947 numberOfExistingReferences == count find mustInRelationeEnum_reference_EEnumLiteral(problem,interpretation,source,_); 31678 numberOfExistingReferences == count find mustInRelationto_reference_InformationLink(problem,interpretation,source,_);
36948 check(numberOfExistingReferences < 1); 31679 check(numberOfExistingReferences < 1);
36949 // The eOpposite of the reference is containment, then a referene cannot be created if
36950 // 1. Multiple parents
36951 neg find mustContains4(problem,interpretation,source,_);
36952 // 2. Circle in the containment hierarchy
36953 neg find mustTransitiveContains(source,target);
36954} or { 31680} or {
36955 find mustInRelationeEnum_reference_EEnumLiteral(problem,interpretation,source,target); 31681 find mustInRelationto_reference_InformationLink(problem,interpretation,source,target);
36956} 31682}
36957/** 31683/**
36958 * Matcher for detecting tuples t where []eAnnotations reference EModelElement(source,target) 31684 * Matcher for detecting tuples t where []data reference FunctionalInterface(source,target)
36959 */ 31685 */
36960private pattern mustInRelationeAnnotations_reference_EModelElement( 31686private pattern mustInRelationdata_reference_FunctionalInterface(
36961 problem:LogicProblem, interpretation:PartialInterpretation, 31687 problem:LogicProblem, interpretation:PartialInterpretation,
36962 source: DefinedElement, target:DefinedElement) 31688 source: DefinedElement, target:DefinedElement)
36963{ 31689{
36964 find interpretation(problem,interpretation); 31690 find interpretation(problem,interpretation);
36965 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 31691 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
36966 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAnnotations reference EModelElement"); 31692 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"data reference FunctionalInterface");
36967 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 31693 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
36968 BinaryElementRelationLink.param1(link,source); 31694 BinaryElementRelationLink.param1(link,source);
36969 BinaryElementRelationLink.param2(link,target); 31695 BinaryElementRelationLink.param2(link,target);
36970} 31696}
36971/** 31697/**
36972 * Matcher for detecting tuples t where <>eAnnotations reference EModelElement(source,target) 31698 * Matcher for detecting tuples t where <>data reference FunctionalInterface(source,target)
36973 */ 31699 */
36974private pattern mayInRelationeAnnotations_reference_EModelElement( 31700private pattern mayInRelationdata_reference_FunctionalInterface(
36975 problem:LogicProblem, interpretation:PartialInterpretation, 31701 problem:LogicProblem, interpretation:PartialInterpretation,
36976 source: DefinedElement, target:DefinedElement) 31702 source: DefinedElement, target:DefinedElement)
36977{ 31703{
@@ -36980,11 +31706,11 @@ private pattern mayInRelationeAnnotations_reference_EModelElement(
36980 find mayExist(problem, interpretation, source); 31706 find mayExist(problem, interpretation, source);
36981 find mayExist(problem, interpretation, target); 31707 find mayExist(problem, interpretation, target);
36982 // Type consistency 31708 // Type consistency
36983 find mayInstanceOfEModelElement_class(problem,interpretation,source); 31709 find mayInstanceOfFunctionalInterface_class(problem,interpretation,source);
36984 find mayInstanceOfEAnnotation_class(problem,interpretation,target); 31710 find mayInstanceOfFunctionalData_class(problem,interpretation,target);
36985 // There are "numberOfExistingReferences" currently existing instances of the reference to the target, 31711 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
36986 // the upper bound of the opposite reference multiplicity should be considered. 31712 // the upper bound of the opposite reference multiplicity should be considered.
36987 numberOfExistingOppositeReferences == count find mustInRelationeModelElement_reference_EAnnotation(problem,interpretation,target,_); 31713 numberOfExistingOppositeReferences == count find mustInRelationinterface_reference_FunctionalData(problem,interpretation,target,_);
36988 check(numberOfExistingOppositeReferences < 1); 31714 check(numberOfExistingOppositeReferences < 1);
36989 // The reference is containment, then a new reference cannot be create if: 31715 // The reference is containment, then a new reference cannot be create if:
36990 // 1. Multiple parents 31716 // 1. Multiple parents
@@ -36992,26 +31718,26 @@ private pattern mayInRelationeAnnotations_reference_EModelElement(
36992 // 2. Circle in the containment hierarchy 31718 // 2. Circle in the containment hierarchy
36993 neg find mustTransitiveContains(source,target); 31719 neg find mustTransitiveContains(source,target);
36994} or { 31720} or {
36995 find mustInRelationeAnnotations_reference_EModelElement(problem,interpretation,source,target); 31721 find mustInRelationdata_reference_FunctionalInterface(problem,interpretation,source,target);
36996} 31722}
36997/** 31723/**
36998 * Matcher for detecting tuples t where []eContainingClass reference EOperation(source,target) 31724 * Matcher for detecting tuples t where []element reference FunctionalInterface(source,target)
36999 */ 31725 */
37000private pattern mustInRelationeContainingClass_reference_EOperation( 31726private pattern mustInRelationelement_reference_FunctionalInterface(
37001 problem:LogicProblem, interpretation:PartialInterpretation, 31727 problem:LogicProblem, interpretation:PartialInterpretation,
37002 source: DefinedElement, target:DefinedElement) 31728 source: DefinedElement, target:DefinedElement)
37003{ 31729{
37004 find interpretation(problem,interpretation); 31730 find interpretation(problem,interpretation);
37005 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 31731 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
37006 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eContainingClass reference EOperation"); 31732 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"element reference FunctionalInterface");
37007 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 31733 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
37008 BinaryElementRelationLink.param1(link,source); 31734 BinaryElementRelationLink.param1(link,source);
37009 BinaryElementRelationLink.param2(link,target); 31735 BinaryElementRelationLink.param2(link,target);
37010} 31736}
37011/** 31737/**
37012 * Matcher for detecting tuples t where <>eContainingClass reference EOperation(source,target) 31738 * Matcher for detecting tuples t where <>element reference FunctionalInterface(source,target)
37013 */ 31739 */
37014private pattern mayInRelationeContainingClass_reference_EOperation( 31740private pattern mayInRelationelement_reference_FunctionalInterface(
37015 problem:LogicProblem, interpretation:PartialInterpretation, 31741 problem:LogicProblem, interpretation:PartialInterpretation,
37016 source: DefinedElement, target:DefinedElement) 31742 source: DefinedElement, target:DefinedElement)
37017{ 31743{
@@ -37020,74 +31746,42 @@ private pattern mayInRelationeContainingClass_reference_EOperation(
37020 find mayExist(problem, interpretation, source); 31746 find mayExist(problem, interpretation, source);
37021 find mayExist(problem, interpretation, target); 31747 find mayExist(problem, interpretation, target);
37022 // Type consistency 31748 // Type consistency
37023 find mayInstanceOfEOperation_class(problem,interpretation,source); 31749 find mayInstanceOfFunctionalInterface_class(problem,interpretation,source);
37024 find mayInstanceOfEClass_class(problem,interpretation,target); 31750 find mayInstanceOfFunctionalElement_class(problem,interpretation,target);
37025 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 31751 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
37026 // the upper bound of the multiplicity should be considered. 31752 // the upper bound of the multiplicity should be considered.
37027 numberOfExistingReferences == count find mustInRelationeContainingClass_reference_EOperation(problem,interpretation,source,_); 31753 numberOfExistingReferences == count find mustInRelationelement_reference_FunctionalInterface(problem,interpretation,source,_);
37028 check(numberOfExistingReferences < 1); 31754 check(numberOfExistingReferences < 1);
31755 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
31756 // the upper bound of the opposite reference multiplicity should be considered.
31757 numberOfExistingOppositeReferences == count find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,target,_);
31758 check(numberOfExistingOppositeReferences < 1);
37029 // The eOpposite of the reference is containment, then a referene cannot be created if 31759 // The eOpposite of the reference is containment, then a referene cannot be created if
37030 // 1. Multiple parents 31760 // 1. Multiple parents
37031 neg find mustContains4(problem,interpretation,source,_); 31761 neg find mustContains4(problem,interpretation,source,_);
37032 // 2. Circle in the containment hierarchy 31762 // 2. Circle in the containment hierarchy
37033 neg find mustTransitiveContains(source,target); 31763 neg find mustTransitiveContains(source,target);
37034} or { 31764} or {
37035 find mustInRelationeContainingClass_reference_EOperation(problem,interpretation,source,target); 31765 find mustInRelationelement_reference_FunctionalInterface(problem,interpretation,source,target);
37036}
37037/**
37038 * Matcher for detecting tuples t where []eTypeParameters reference EOperation(source,target)
37039 */
37040private pattern mustInRelationeTypeParameters_reference_EOperation(
37041 problem:LogicProblem, interpretation:PartialInterpretation,
37042 source: DefinedElement, target:DefinedElement)
37043{
37044 find interpretation(problem,interpretation);
37045 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
37046 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eTypeParameters reference EOperation");
37047 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
37048 BinaryElementRelationLink.param1(link,source);
37049 BinaryElementRelationLink.param2(link,target);
37050}
37051/**
37052 * Matcher for detecting tuples t where <>eTypeParameters reference EOperation(source,target)
37053 */
37054private pattern mayInRelationeTypeParameters_reference_EOperation(
37055 problem:LogicProblem, interpretation:PartialInterpretation,
37056 source: DefinedElement, target:DefinedElement)
37057{
37058 find interpretation(problem,interpretation);
37059 // The two endpoint of the link have to exist
37060 find mayExist(problem, interpretation, source);
37061 find mayExist(problem, interpretation, target);
37062 // Type consistency
37063 find mayInstanceOfEOperation_class(problem,interpretation,source);
37064 find mayInstanceOfETypeParameter_class(problem,interpretation,target);
37065 // The reference is containment, then a new reference cannot be create if:
37066 // 1. Multiple parents
37067 neg find mustContains4(problem,interpretation,_,target);
37068 // 2. Circle in the containment hierarchy
37069 neg find mustTransitiveContains(source,target);
37070} or {
37071 find mustInRelationeTypeParameters_reference_EOperation(problem,interpretation,source,target);
37072} 31766}
37073/** 31767/**
37074 * Matcher for detecting tuples t where []eParameters reference EOperation(source,target) 31768 * Matcher for detecting tuples t where []IncomingLinks reference FunctionalInput(source,target)
37075 */ 31769 */
37076private pattern mustInRelationeParameters_reference_EOperation( 31770private pattern mustInRelationIncomingLinks_reference_FunctionalInput(
37077 problem:LogicProblem, interpretation:PartialInterpretation, 31771 problem:LogicProblem, interpretation:PartialInterpretation,
37078 source: DefinedElement, target:DefinedElement) 31772 source: DefinedElement, target:DefinedElement)
37079{ 31773{
37080 find interpretation(problem,interpretation); 31774 find interpretation(problem,interpretation);
37081 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 31775 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
37082 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eParameters reference EOperation"); 31776 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"IncomingLinks reference FunctionalInput");
37083 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 31777 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
37084 BinaryElementRelationLink.param1(link,source); 31778 BinaryElementRelationLink.param1(link,source);
37085 BinaryElementRelationLink.param2(link,target); 31779 BinaryElementRelationLink.param2(link,target);
37086} 31780}
37087/** 31781/**
37088 * Matcher for detecting tuples t where <>eParameters reference EOperation(source,target) 31782 * Matcher for detecting tuples t where <>IncomingLinks reference FunctionalInput(source,target)
37089 */ 31783 */
37090private pattern mayInRelationeParameters_reference_EOperation( 31784private pattern mayInRelationIncomingLinks_reference_FunctionalInput(
37091 problem:LogicProblem, interpretation:PartialInterpretation, 31785 problem:LogicProblem, interpretation:PartialInterpretation,
37092 source: DefinedElement, target:DefinedElement) 31786 source: DefinedElement, target:DefinedElement)
37093{ 31787{
@@ -37096,105 +31790,33 @@ private pattern mayInRelationeParameters_reference_EOperation(
37096 find mayExist(problem, interpretation, source); 31790 find mayExist(problem, interpretation, source);
37097 find mayExist(problem, interpretation, target); 31791 find mayExist(problem, interpretation, target);
37098 // Type consistency 31792 // Type consistency
37099 find mayInstanceOfEOperation_class(problem,interpretation,source); 31793 find mayInstanceOfFunctionalInput_class(problem,interpretation,source);
37100 find mayInstanceOfEParameter_class(problem,interpretation,target); 31794 find mayInstanceOfInformationLink_class(problem,interpretation,target);
37101 // There are "numberOfExistingReferences" currently existing instances of the reference to the target, 31795 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
37102 // the upper bound of the opposite reference multiplicity should be considered. 31796 // the upper bound of the opposite reference multiplicity should be considered.
37103 numberOfExistingOppositeReferences == count find mustInRelationeOperation_reference_EParameter(problem,interpretation,target,_); 31797 numberOfExistingOppositeReferences == count find mustInRelationto_reference_InformationLink(problem,interpretation,target,_);
37104 check(numberOfExistingOppositeReferences < 1); 31798 check(numberOfExistingOppositeReferences < 1);
37105 // The reference is containment, then a new reference cannot be create if:
37106 // 1. Multiple parents
37107 neg find mustContains4(problem,interpretation,_,target);
37108 // 2. Circle in the containment hierarchy
37109 neg find mustTransitiveContains(source,target);
37110} or { 31799} or {
37111 find mustInRelationeParameters_reference_EOperation(problem,interpretation,source,target); 31800 find mustInRelationIncomingLinks_reference_FunctionalInput(problem,interpretation,source,target);
37112}
37113/**
37114 * Matcher for detecting tuples t where []eExceptions reference EOperation(source,target)
37115 */
37116private pattern mustInRelationeExceptions_reference_EOperation(
37117 problem:LogicProblem, interpretation:PartialInterpretation,
37118 source: DefinedElement, target:DefinedElement)
37119{
37120 find interpretation(problem,interpretation);
37121 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
37122 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eExceptions reference EOperation");
37123 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
37124 BinaryElementRelationLink.param1(link,source);
37125 BinaryElementRelationLink.param2(link,target);
37126}
37127/**
37128 * Matcher for detecting tuples t where <>eExceptions reference EOperation(source,target)
37129 */
37130private pattern mayInRelationeExceptions_reference_EOperation(
37131 problem:LogicProblem, interpretation:PartialInterpretation,
37132 source: DefinedElement, target:DefinedElement)
37133{
37134 find interpretation(problem,interpretation);
37135 // The two endpoint of the link have to exist
37136 find mayExist(problem, interpretation, source);
37137 find mayExist(problem, interpretation, target);
37138 // Type consistency
37139 find mayInstanceOfEOperation_class(problem,interpretation,source);
37140 find mayInstanceOfEClassifier_class(problem,interpretation,target);
37141} or {
37142 find mustInRelationeExceptions_reference_EOperation(problem,interpretation,source,target);
37143}
37144/**
37145 * Matcher for detecting tuples t where []eGenericExceptions reference EOperation(source,target)
37146 */
37147private pattern mustInRelationeGenericExceptions_reference_EOperation(
37148 problem:LogicProblem, interpretation:PartialInterpretation,
37149 source: DefinedElement, target:DefinedElement)
37150{
37151 find interpretation(problem,interpretation);
37152 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
37153 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eGenericExceptions reference EOperation");
37154 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
37155 BinaryElementRelationLink.param1(link,source);
37156 BinaryElementRelationLink.param2(link,target);
37157}
37158/**
37159 * Matcher for detecting tuples t where <>eGenericExceptions reference EOperation(source,target)
37160 */
37161private pattern mayInRelationeGenericExceptions_reference_EOperation(
37162 problem:LogicProblem, interpretation:PartialInterpretation,
37163 source: DefinedElement, target:DefinedElement)
37164{
37165 find interpretation(problem,interpretation);
37166 // The two endpoint of the link have to exist
37167 find mayExist(problem, interpretation, source);
37168 find mayExist(problem, interpretation, target);
37169 // Type consistency
37170 find mayInstanceOfEOperation_class(problem,interpretation,source);
37171 find mayInstanceOfEGenericType_class(problem,interpretation,target);
37172 // The reference is containment, then a new reference cannot be create if:
37173 // 1. Multiple parents
37174 neg find mustContains4(problem,interpretation,_,target);
37175 // 2. Circle in the containment hierarchy
37176 neg find mustTransitiveContains(source,target);
37177} or {
37178 find mustInRelationeGenericExceptions_reference_EOperation(problem,interpretation,source,target);
37179} 31801}
37180/** 31802/**
37181 * Matcher for detecting tuples t where []eClassifiers reference EPackage(source,target) 31803 * Matcher for detecting tuples t where []outgoingLinks reference FunctionalOutput(source,target)
37182 */ 31804 */
37183private pattern mustInRelationeClassifiers_reference_EPackage( 31805private pattern mustInRelationoutgoingLinks_reference_FunctionalOutput(
37184 problem:LogicProblem, interpretation:PartialInterpretation, 31806 problem:LogicProblem, interpretation:PartialInterpretation,
37185 source: DefinedElement, target:DefinedElement) 31807 source: DefinedElement, target:DefinedElement)
37186{ 31808{
37187 find interpretation(problem,interpretation); 31809 find interpretation(problem,interpretation);
37188 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 31810 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
37189 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eClassifiers reference EPackage"); 31811 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"outgoingLinks reference FunctionalOutput");
37190 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 31812 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
37191 BinaryElementRelationLink.param1(link,source); 31813 BinaryElementRelationLink.param1(link,source);
37192 BinaryElementRelationLink.param2(link,target); 31814 BinaryElementRelationLink.param2(link,target);
37193} 31815}
37194/** 31816/**
37195 * Matcher for detecting tuples t where <>eClassifiers reference EPackage(source,target) 31817 * Matcher for detecting tuples t where <>outgoingLinks reference FunctionalOutput(source,target)
37196 */ 31818 */
37197private pattern mayInRelationeClassifiers_reference_EPackage( 31819private pattern mayInRelationoutgoingLinks_reference_FunctionalOutput(
37198 problem:LogicProblem, interpretation:PartialInterpretation, 31820 problem:LogicProblem, interpretation:PartialInterpretation,
37199 source: DefinedElement, target:DefinedElement) 31821 source: DefinedElement, target:DefinedElement)
37200{ 31822{
@@ -37203,11 +31825,11 @@ private pattern mayInRelationeClassifiers_reference_EPackage(
37203 find mayExist(problem, interpretation, source); 31825 find mayExist(problem, interpretation, source);
37204 find mayExist(problem, interpretation, target); 31826 find mayExist(problem, interpretation, target);
37205 // Type consistency 31827 // Type consistency
37206 find mayInstanceOfEPackage_class(problem,interpretation,source); 31828 find mayInstanceOfFunctionalOutput_class(problem,interpretation,source);
37207 find mayInstanceOfEClassifier_class(problem,interpretation,target); 31829 find mayInstanceOfInformationLink_class(problem,interpretation,target);
37208 // There are "numberOfExistingReferences" currently existing instances of the reference to the target, 31830 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
37209 // the upper bound of the opposite reference multiplicity should be considered. 31831 // the upper bound of the opposite reference multiplicity should be considered.
37210 numberOfExistingOppositeReferences == count find mustInRelationePackage_reference_EClassifier(problem,interpretation,target,_); 31832 numberOfExistingOppositeReferences == count find mustInRelationfrom_reference_InformationLink(problem,interpretation,target,_);
37211 check(numberOfExistingOppositeReferences < 1); 31833 check(numberOfExistingOppositeReferences < 1);
37212 // The reference is containment, then a new reference cannot be create if: 31834 // The reference is containment, then a new reference cannot be create if:
37213 // 1. Multiple parents 31835 // 1. Multiple parents
@@ -37215,26 +31837,26 @@ private pattern mayInRelationeClassifiers_reference_EPackage(
37215 // 2. Circle in the containment hierarchy 31837 // 2. Circle in the containment hierarchy
37216 neg find mustTransitiveContains(source,target); 31838 neg find mustTransitiveContains(source,target);
37217} or { 31839} or {
37218 find mustInRelationeClassifiers_reference_EPackage(problem,interpretation,source,target); 31840 find mustInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,source,target);
37219} 31841}
37220/** 31842/**
37221 * Matcher for detecting tuples t where []eSubpackages reference EPackage(source,target) 31843 * Matcher for detecting tuples t where []terminator reference FunctionalData(source,target)
37222 */ 31844 */
37223private pattern mustInRelationeSubpackages_reference_EPackage( 31845private pattern mustInRelationterminator_reference_FunctionalData(
37224 problem:LogicProblem, interpretation:PartialInterpretation, 31846 problem:LogicProblem, interpretation:PartialInterpretation,
37225 source: DefinedElement, target:DefinedElement) 31847 source: DefinedElement, target:DefinedElement)
37226{ 31848{
37227 find interpretation(problem,interpretation); 31849 find interpretation(problem,interpretation);
37228 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 31850 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
37229 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eSubpackages reference EPackage"); 31851 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"terminator reference FunctionalData");
37230 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 31852 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
37231 BinaryElementRelationLink.param1(link,source); 31853 BinaryElementRelationLink.param1(link,source);
37232 BinaryElementRelationLink.param2(link,target); 31854 BinaryElementRelationLink.param2(link,target);
37233} 31855}
37234/** 31856/**
37235 * Matcher for detecting tuples t where <>eSubpackages reference EPackage(source,target) 31857 * Matcher for detecting tuples t where <>terminator reference FunctionalData(source,target)
37236 */ 31858 */
37237private pattern mayInRelationeSubpackages_reference_EPackage( 31859private pattern mayInRelationterminator_reference_FunctionalData(
37238 problem:LogicProblem, interpretation:PartialInterpretation, 31860 problem:LogicProblem, interpretation:PartialInterpretation,
37239 source: DefinedElement, target:DefinedElement) 31861 source: DefinedElement, target:DefinedElement)
37240{ 31862{
@@ -37243,11 +31865,15 @@ private pattern mayInRelationeSubpackages_reference_EPackage(
37243 find mayExist(problem, interpretation, source); 31865 find mayExist(problem, interpretation, source);
37244 find mayExist(problem, interpretation, target); 31866 find mayExist(problem, interpretation, target);
37245 // Type consistency 31867 // Type consistency
37246 find mayInstanceOfEPackage_class(problem,interpretation,source); 31868 find mayInstanceOfFunctionalData_class(problem,interpretation,source);
37247 find mayInstanceOfEPackage_class(problem,interpretation,target); 31869 find mayInstanceOfFAMTerminator_class(problem,interpretation,target);
31870 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
31871 // the upper bound of the multiplicity should be considered.
31872 numberOfExistingReferences == count find mustInRelationterminator_reference_FunctionalData(problem,interpretation,source,_);
31873 check(numberOfExistingReferences < 1);
37248 // There are "numberOfExistingReferences" currently existing instances of the reference to the target, 31874 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
37249 // the upper bound of the opposite reference multiplicity should be considered. 31875 // the upper bound of the opposite reference multiplicity should be considered.
37250 numberOfExistingOppositeReferences == count find mustInRelationeSuperPackage_reference_EPackage(problem,interpretation,target,_); 31876 numberOfExistingOppositeReferences == count find mustInRelationdata_reference_FAMTerminator(problem,interpretation,target,_);
37251 check(numberOfExistingOppositeReferences < 1); 31877 check(numberOfExistingOppositeReferences < 1);
37252 // The reference is containment, then a new reference cannot be create if: 31878 // The reference is containment, then a new reference cannot be create if:
37253 // 1. Multiple parents 31879 // 1. Multiple parents
@@ -37255,26 +31881,26 @@ private pattern mayInRelationeSubpackages_reference_EPackage(
37255 // 2. Circle in the containment hierarchy 31881 // 2. Circle in the containment hierarchy
37256 neg find mustTransitiveContains(source,target); 31882 neg find mustTransitiveContains(source,target);
37257} or { 31883} or {
37258 find mustInRelationeSubpackages_reference_EPackage(problem,interpretation,source,target); 31884 find mustInRelationterminator_reference_FunctionalData(problem,interpretation,source,target);
37259} 31885}
37260/** 31886/**
37261 * Matcher for detecting tuples t where []eSuperPackage reference EPackage(source,target) 31887 * Matcher for detecting tuples t where []interface reference FunctionalData(source,target)
37262 */ 31888 */
37263private pattern mustInRelationeSuperPackage_reference_EPackage( 31889private pattern mustInRelationinterface_reference_FunctionalData(
37264 problem:LogicProblem, interpretation:PartialInterpretation, 31890 problem:LogicProblem, interpretation:PartialInterpretation,
37265 source: DefinedElement, target:DefinedElement) 31891 source: DefinedElement, target:DefinedElement)
37266{ 31892{
37267 find interpretation(problem,interpretation); 31893 find interpretation(problem,interpretation);
37268 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 31894 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
37269 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eSuperPackage reference EPackage"); 31895 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"interface reference FunctionalData");
37270 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 31896 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
37271 BinaryElementRelationLink.param1(link,source); 31897 BinaryElementRelationLink.param1(link,source);
37272 BinaryElementRelationLink.param2(link,target); 31898 BinaryElementRelationLink.param2(link,target);
37273} 31899}
37274/** 31900/**
37275 * Matcher for detecting tuples t where <>eSuperPackage reference EPackage(source,target) 31901 * Matcher for detecting tuples t where <>interface reference FunctionalData(source,target)
37276 */ 31902 */
37277private pattern mayInRelationeSuperPackage_reference_EPackage( 31903private pattern mayInRelationinterface_reference_FunctionalData(
37278 problem:LogicProblem, interpretation:PartialInterpretation, 31904 problem:LogicProblem, interpretation:PartialInterpretation,
37279 source: DefinedElement, target:DefinedElement) 31905 source: DefinedElement, target:DefinedElement)
37280{ 31906{
@@ -37283,11 +31909,11 @@ private pattern mayInRelationeSuperPackage_reference_EPackage(
37283 find mayExist(problem, interpretation, source); 31909 find mayExist(problem, interpretation, source);
37284 find mayExist(problem, interpretation, target); 31910 find mayExist(problem, interpretation, target);
37285 // Type consistency 31911 // Type consistency
37286 find mayInstanceOfEPackage_class(problem,interpretation,source); 31912 find mayInstanceOfFunctionalData_class(problem,interpretation,source);
37287 find mayInstanceOfEPackage_class(problem,interpretation,target); 31913 find mayInstanceOfFunctionalInterface_class(problem,interpretation,target);
37288 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 31914 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
37289 // the upper bound of the multiplicity should be considered. 31915 // the upper bound of the multiplicity should be considered.
37290 numberOfExistingReferences == count find mustInRelationeSuperPackage_reference_EPackage(problem,interpretation,source,_); 31916 numberOfExistingReferences == count find mustInRelationinterface_reference_FunctionalData(problem,interpretation,source,_);
37291 check(numberOfExistingReferences < 1); 31917 check(numberOfExistingReferences < 1);
37292 // The eOpposite of the reference is containment, then a referene cannot be created if 31918 // The eOpposite of the reference is containment, then a referene cannot be created if
37293 // 1. Multiple parents 31919 // 1. Multiple parents
@@ -37295,26 +31921,26 @@ private pattern mayInRelationeSuperPackage_reference_EPackage(
37295 // 2. Circle in the containment hierarchy 31921 // 2. Circle in the containment hierarchy
37296 neg find mustTransitiveContains(source,target); 31922 neg find mustTransitiveContains(source,target);
37297} or { 31923} or {
37298 find mustInRelationeSuperPackage_reference_EPackage(problem,interpretation,source,target); 31924 find mustInRelationinterface_reference_FunctionalData(problem,interpretation,source,target);
37299} 31925}
37300/** 31926/**
37301 * Matcher for detecting tuples t where []eOperation reference EParameter(source,target) 31927 * Matcher for detecting tuples t where []type attribute Function(source,target)
37302 */ 31928 */
37303private pattern mustInRelationeOperation_reference_EParameter( 31929private pattern mustInRelationtype_attribute_Function(
37304 problem:LogicProblem, interpretation:PartialInterpretation, 31930 problem:LogicProblem, interpretation:PartialInterpretation,
37305 source: DefinedElement, target:DefinedElement) 31931 source: DefinedElement, target:DefinedElement)
37306{ 31932{
37307 find interpretation(problem,interpretation); 31933 find interpretation(problem,interpretation);
37308 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 31934 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
37309 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eOperation reference EParameter"); 31935 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function");
37310 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 31936 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
37311 BinaryElementRelationLink.param1(link,source); 31937 BinaryElementRelationLink.param1(link,source);
37312 BinaryElementRelationLink.param2(link,target); 31938 BinaryElementRelationLink.param2(link,target);
37313} 31939}
37314/** 31940/**
37315 * Matcher for detecting tuples t where <>eOperation reference EParameter(source,target) 31941 * Matcher for detecting tuples t where <>type attribute Function(source,target)
37316 */ 31942 */
37317private pattern mayInRelationeOperation_reference_EParameter( 31943private pattern mayInRelationtype_attribute_Function(
37318 problem:LogicProblem, interpretation:PartialInterpretation, 31944 problem:LogicProblem, interpretation:PartialInterpretation,
37319 source: DefinedElement, target:DefinedElement) 31945 source: DefinedElement, target:DefinedElement)
37320{ 31946{
@@ -37323,931 +31949,1094 @@ private pattern mayInRelationeOperation_reference_EParameter(
37323 find mayExist(problem, interpretation, source); 31949 find mayExist(problem, interpretation, source);
37324 find mayExist(problem, interpretation, target); 31950 find mayExist(problem, interpretation, target);
37325 // Type consistency 31951 // Type consistency
37326 find mayInstanceOfEParameter_class(problem,interpretation,source); 31952 find mayInstanceOfFunction_class(problem,interpretation,source);
37327 find mayInstanceOfEOperation_class(problem,interpretation,target); 31953 find mayInstanceOfFunctionType_enum(problem,interpretation,target);
37328 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 31954 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
37329 // the upper bound of the multiplicity should be considered. 31955 // the upper bound of the multiplicity should be considered.
37330 numberOfExistingReferences == count find mustInRelationeOperation_reference_EParameter(problem,interpretation,source,_); 31956 numberOfExistingReferences == count find mustInRelationtype_attribute_Function(problem,interpretation,source,_);
37331 check(numberOfExistingReferences < 1); 31957 check(numberOfExistingReferences < 1);
37332 // The eOpposite of the reference is containment, then a referene cannot be created if
37333 // 1. Multiple parents
37334 neg find mustContains4(problem,interpretation,source,_);
37335 // 2. Circle in the containment hierarchy
37336 neg find mustTransitiveContains(source,target);
37337} or { 31958} or {
37338 find mustInRelationeOperation_reference_EParameter(problem,interpretation,source,target); 31959 find mustInRelationtype_attribute_Function(problem,interpretation,source,target);
37339} 31960}
37340/** 31961
37341 * Matcher for detecting tuples t where []eOpposite reference EReference(source,target) 31962//////////
37342 */ 31963// 1.3 Relation Definition Indexers
37343private pattern mustInRelationeOpposite_reference_EReference( 31964//////////
31965// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test fam queries terminatorAndInformation
31966private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(
37344 problem:LogicProblem, interpretation:PartialInterpretation, 31967 problem:LogicProblem, interpretation:PartialInterpretation,
37345 source: DefinedElement, target:DefinedElement) 31968 var_T, var_I)
37346{ 31969{
37347 find interpretation(problem,interpretation); 31970 find interpretation(problem,interpretation);
37348 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 31971 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_T);
37349 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eOpposite reference EReference"); 31972 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
37350 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 31973 // T is exported
37351 BinaryElementRelationLink.param1(link,source); 31974 // I is exported
37352 BinaryElementRelationLink.param2(link,target); 31975 find mustInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
31976 find mustInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,var_Out,var_virtual0);
31977 find mustInstanceOfInformationLink_class(problem,interpretation,var_virtual0);
31978 var_virtual0 == var_I;
31979 find mustInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
31980 find mustInRelationterminator_reference_FunctionalData(problem,interpretation,var_Out,var_virtual1);
31981 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
31982 var_virtual1 == var_T;
31983}or{
31984 find interpretation(problem,interpretation);
31985 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_T);
31986 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
31987 // T is exported
31988 // I is exported
31989 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
31990 find mustInRelationto_reference_InformationLink(problem,interpretation,var_I,var_virtual0);
31991 find mustInstanceOfFunctionalInput_class(problem,interpretation,var_virtual0);
31992 var_virtual0 == var_In;
31993 find mustInstanceOfFunctionalInput_class(problem,interpretation,var_In);
31994 find mustInRelationterminator_reference_FunctionalData(problem,interpretation,var_In,var_virtual1);
31995 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
31996 var_virtual1 == var_T;
37353} 31997}
37354/** 31998private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(
37355 * Matcher for detecting tuples t where <>eOpposite reference EReference(source,target)
37356 */
37357private pattern mayInRelationeOpposite_reference_EReference(
37358 problem:LogicProblem, interpretation:PartialInterpretation, 31999 problem:LogicProblem, interpretation:PartialInterpretation,
37359 source: DefinedElement, target:DefinedElement) 32000 var_T, var_I)
37360{ 32001{
37361 find interpretation(problem,interpretation); 32002 find interpretation(problem,interpretation);
37362 // The two endpoint of the link have to exist 32003 find mayInstanceOfFAMTerminator_class(problem,interpretation,var_T);
37363 find mayExist(problem, interpretation, source); 32004 find mayInstanceOfInformationLink_class(problem,interpretation,var_I);
37364 find mayExist(problem, interpretation, target); 32005 // T is exported
37365 // Type consistency 32006 // I is exported
37366 find mayInstanceOfEReference_class(problem,interpretation,source); 32007 find mayInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
37367 find mayInstanceOfEReference_class(problem,interpretation,target); 32008 find mayInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,var_Out,var_virtual0);
37368 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 32009 find mayInstanceOfInformationLink_class(problem,interpretation,var_virtual0);
37369 // the upper bound of the multiplicity should be considered. 32010 find mayEquivalent(problem, interpretation, var_virtual0, var_I);
37370 numberOfExistingReferences == count find mustInRelationeOpposite_reference_EReference(problem,interpretation,source,_); 32011 find mayInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
37371 check(numberOfExistingReferences < 1); 32012 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,var_Out,var_virtual1);
37372} or { 32013 find mayInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
37373 find mustInRelationeOpposite_reference_EReference(problem,interpretation,source,target); 32014 find mayEquivalent(problem, interpretation, var_virtual1, var_T);
32015}or{
32016 find interpretation(problem,interpretation);
32017 find mayInstanceOfFAMTerminator_class(problem,interpretation,var_T);
32018 find mayInstanceOfInformationLink_class(problem,interpretation,var_I);
32019 // T is exported
32020 // I is exported
32021 find mayInstanceOfInformationLink_class(problem,interpretation,var_I);
32022 find mayInRelationto_reference_InformationLink(problem,interpretation,var_I,var_virtual0);
32023 find mayInstanceOfFunctionalInput_class(problem,interpretation,var_virtual0);
32024 find mayEquivalent(problem, interpretation, var_virtual0, var_In);
32025 find mayInstanceOfFunctionalInput_class(problem,interpretation,var_In);
32026 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,var_In,var_virtual1);
32027 find mayInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
32028 find mayEquivalent(problem, interpretation, var_virtual1, var_T);
37374} 32029}
37375/** 32030private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(
37376 * Matcher for detecting tuples t where []eReferenceType reference EReference(source,target)
37377 */
37378private pattern mustInRelationeReferenceType_reference_EReference(
37379 problem:LogicProblem, interpretation:PartialInterpretation, 32031 problem:LogicProblem, interpretation:PartialInterpretation,
37380 source: DefinedElement, target:DefinedElement) 32032 var_T, var_I)
37381{ 32033{
37382 find interpretation(problem,interpretation); 32034 find interpretation(problem,interpretation);
37383 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 32035 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_T);
37384 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eReferenceType reference EReference"); 32036 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
37385 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 32037 // T is exported
37386 BinaryElementRelationLink.param1(link,source); 32038 // I is exported
37387 BinaryElementRelationLink.param2(link,target); 32039 find mustInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
32040 find mustInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,var_Out,var_virtual0);
32041 find mustInstanceOfInformationLink_class(problem,interpretation,var_virtual0);
32042 var_virtual0 == var_I;
32043 find mustInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
32044 find mustInRelationterminator_reference_FunctionalData(problem,interpretation,var_Out,var_virtual1);
32045 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
32046 var_virtual1 == var_T;
32047}or{
32048 find interpretation(problem,interpretation);
32049 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_T);
32050 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
32051 // T is exported
32052 // I is exported
32053 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
32054 find mustInRelationto_reference_InformationLink(problem,interpretation,var_I,var_virtual0);
32055 find mustInstanceOfFunctionalInput_class(problem,interpretation,var_virtual0);
32056 var_virtual0 == var_In;
32057 find mustInstanceOfFunctionalInput_class(problem,interpretation,var_In);
32058 find mustInRelationterminator_reference_FunctionalData(problem,interpretation,var_In,var_virtual1);
32059 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
32060 var_virtual1 == var_T;
37388} 32061}
37389/** 32062
37390 * Matcher for detecting tuples t where <>eReferenceType reference EReference(source,target) 32063//////////
37391 */ 32064// 1.4 Containment Indexer
37392private pattern mayInRelationeReferenceType_reference_EReference( 32065//////////
37393 problem:LogicProblem, interpretation:PartialInterpretation, 32066private pattern mustContains2(source: DefinedElement, target: DefinedElement) {
37394 source: DefinedElement, target:DefinedElement) 32067 find mustContains4(_,_,source,target);
32068}
32069
32070private pattern mustContains4(problem:LogicProblem, interpretation:PartialInterpretation,
32071 source: DefinedElement, target: DefinedElement)
32072 { find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,source,target); }or
32073
32074 { find mustInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,source,target); }or
32075
32076 { find mustInRelationsubElements_reference_Function(problem,interpretation,source,target); }or
32077
32078 { find mustInRelationdata_reference_FunctionalInterface(problem,interpretation,source,target); }or
32079
32080 { find mustInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,source,target); }or
32081
32082 { find mustInRelationterminator_reference_FunctionalData(problem,interpretation,source,target); }
32083
32084private pattern mustTransitiveContains(source,target) {
32085 find mustContains2+(source,target);
32086}
32087
32088//////////
32089// 2. Invalidation Indexers
32090//////////
32091// 2.1 Invalidated by WF Queries
32092//////////
32093pattern invalidatedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(problem:LogicProblem, interpretation:PartialInterpretation,
32094 var_T, var_I)
37395{ 32095{
32096 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(problem,interpretation,var_T,var_I);
32097}
32098
32099//////////
32100// 3. Unfinishedness Indexers
32101//////////
32102// 3.1 Unfinishedness Measured by Multiplicity
32103//////////
32104pattern unfinishedLowerMultiplicity_model_reference_FunctionalElement(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
37396 find interpretation(problem,interpretation); 32105 find interpretation(problem,interpretation);
37397 // The two endpoint of the link have to exist 32106 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
37398 find mayExist(problem, interpretation, source); 32107 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement");
37399 find mayExist(problem, interpretation, target); 32108 find mustInstanceOfFunctionalElement_class(problem,interpretation,object);
37400 // Type consistency 32109 numberOfExistingReferences == count find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,object,_);
37401 find mayInstanceOfEReference_class(problem,interpretation,source);
37402 find mayInstanceOfEClass_class(problem,interpretation,target);
37403 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
37404 // the upper bound of the multiplicity should be considered.
37405 numberOfExistingReferences == count find mustInRelationeReferenceType_reference_EReference(problem,interpretation,source,_);
37406 check(numberOfExistingReferences < 1); 32110 check(numberOfExistingReferences < 1);
37407} or { 32111 missingMultiplicity == eval(1-numberOfExistingReferences);
37408 find mustInRelationeReferenceType_reference_EReference(problem,interpretation,source,target);
37409} 32112}
37410/** 32113pattern unfinishedLowerMultiplicity_to_reference_InformationLink(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
37411 * Matcher for detecting tuples t where []eKeys reference EReference(source,target)
37412 */
37413private pattern mustInRelationeKeys_reference_EReference(
37414 problem:LogicProblem, interpretation:PartialInterpretation,
37415 source: DefinedElement, target:DefinedElement)
37416{
37417 find interpretation(problem,interpretation); 32114 find interpretation(problem,interpretation);
37418 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 32115 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
37419 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eKeys reference EReference"); 32116 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"to reference InformationLink");
37420 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 32117 find mustInstanceOfInformationLink_class(problem,interpretation,object);
37421 BinaryElementRelationLink.param1(link,source); 32118 numberOfExistingReferences == count find mustInRelationto_reference_InformationLink(problem,interpretation,object,_);
37422 BinaryElementRelationLink.param2(link,target); 32119 check(numberOfExistingReferences < 1);
32120 missingMultiplicity == eval(1-numberOfExistingReferences);
37423} 32121}
37424/** 32122pattern unfinishedLowerMultiplicity_type_attribute_Function(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
37425 * Matcher for detecting tuples t where <>eKeys reference EReference(source,target)
37426 */
37427private pattern mayInRelationeKeys_reference_EReference(
37428 problem:LogicProblem, interpretation:PartialInterpretation,
37429 source: DefinedElement, target:DefinedElement)
37430{
37431 find interpretation(problem,interpretation); 32123 find interpretation(problem,interpretation);
37432 // The two endpoint of the link have to exist 32124 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
37433 find mayExist(problem, interpretation, source); 32125 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function");
37434 find mayExist(problem, interpretation, target); 32126 find mustInstanceOfFunction_class(problem,interpretation,object);
37435 // Type consistency 32127 numberOfExistingReferences == count find mustInRelationtype_attribute_Function(problem,interpretation,object,_);
37436 find mayInstanceOfEReference_class(problem,interpretation,source); 32128 check(numberOfExistingReferences < 1);
37437 find mayInstanceOfEAttribute_class(problem,interpretation,target); 32129 missingMultiplicity == eval(1-numberOfExistingReferences);
37438} or {
37439 find mustInRelationeKeys_reference_EReference(problem,interpretation,source,target);
37440} 32130}
37441/** 32131
37442 * Matcher for detecting tuples t where []eContainingClass reference EStructuralFeature(source,target) 32132//////////
37443 */ 32133// 3.2 Unfinishedness Measured by WF Queries
37444private pattern mustInRelationeContainingClass_reference_EStructuralFeature( 32134//////////
37445 problem:LogicProblem, interpretation:PartialInterpretation, 32135pattern unfinishedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(problem:LogicProblem, interpretation:PartialInterpretation,
37446 source: DefinedElement, target:DefinedElement) 32136 var_T, var_I)
37447{ 32137{
37448 find interpretation(problem,interpretation); 32138 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(problem,interpretation,var_T,var_I);
37449 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
37450 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eContainingClass reference EStructuralFeature");
37451 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
37452 BinaryElementRelationLink.param1(link,source);
37453 BinaryElementRelationLink.param2(link,target);
37454} 32139}
37455/** 32140
37456 * Matcher for detecting tuples t where <>eContainingClass reference EStructuralFeature(source,target) 32141//////////
37457 */ 32142// 4. Refinement Indexers
37458private pattern mayInRelationeContainingClass_reference_EStructuralFeature( 32143//////////
37459 problem:LogicProblem, interpretation:PartialInterpretation, 32144// 4.1 Object constructors
37460 source: DefinedElement, target:DefinedElement) 32145//////////
32146private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation)
37461{ 32147{
37462 find interpretation(problem,interpretation); 32148 find interpretation(problem,interpretation);
37463 // The two endpoint of the link have to exist 32149 find mustInstanceOfFunctionalData_class(problem,interpretation,root);
37464 find mayExist(problem, interpretation, source); 32150 find mustExist(problem, interpretation, root);
37465 find mayExist(problem, interpretation, target); 32151}or{
37466 // Type consistency 32152 find interpretation(problem,interpretation);
37467 find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); 32153 find mustInstanceOfFunctionalOutput_class(problem,interpretation,root);
37468 find mayInstanceOfEClass_class(problem,interpretation,target); 32154 find mustExist(problem, interpretation, root);
37469 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 32155}or{
37470 // the upper bound of the multiplicity should be considered. 32156 find interpretation(problem,interpretation);
37471 numberOfExistingReferences == count find mustInRelationeContainingClass_reference_EStructuralFeature(problem,interpretation,source,_); 32157 find mustInstanceOfFunction_class(problem,interpretation,root);
37472 check(numberOfExistingReferences < 1); 32158 find mustExist(problem, interpretation, root);
37473 // The eOpposite of the reference is containment, then a referene cannot be created if 32159}or{
37474 // 1. Multiple parents 32160 find interpretation(problem,interpretation);
37475 neg find mustContains4(problem,interpretation,source,_); 32161 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,root);
37476 // 2. Circle in the containment hierarchy 32162 find mustExist(problem, interpretation, root);
37477 neg find mustTransitiveContains(source,target); 32163}or{
37478} or { 32164 find interpretation(problem,interpretation);
37479 find mustInRelationeContainingClass_reference_EStructuralFeature(problem,interpretation,source,target); 32165 find mustInstanceOfInformationLink_class(problem,interpretation,root);
32166 find mustExist(problem, interpretation, root);
32167}or{
32168 find interpretation(problem,interpretation);
32169 find mustInstanceOfFunctionalElement_class(problem,interpretation,root);
32170 find mustExist(problem, interpretation, root);
32171}or{
32172 find interpretation(problem,interpretation);
32173 find mustInstanceOfFAMTerminator_class(problem,interpretation,root);
32174 find mustExist(problem, interpretation, root);
32175}or{
32176 find interpretation(problem,interpretation);
32177 find mustInstanceOfFunctionalInput_class(problem,interpretation,root);
32178 find mustExist(problem, interpretation, root);
32179}or{
32180 find interpretation(problem,interpretation);
32181 find mustInstanceOfFunctionalInterface_class(problem,interpretation,root);
32182 find mustExist(problem, interpretation, root);
37480} 32183}
37481/** 32184pattern createObject_Function_class_by_rootElements_reference_FunctionalArchitectureModel(
37482 * Matcher for detecting tuples t where []eType reference ETypedElement(source,target)
37483 */
37484private pattern mustInRelationeType_reference_ETypedElement(
37485 problem:LogicProblem, interpretation:PartialInterpretation, 32185 problem:LogicProblem, interpretation:PartialInterpretation,
37486 source: DefinedElement, target:DefinedElement) 32186 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
32187 container:DefinedElement)
37487{ 32188{
37488 find interpretation(problem,interpretation); 32189 find interpretation(problem,interpretation);
37489 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 32190 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
37490 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eType reference ETypedElement"); 32191 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class");
37491 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 32192 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
37492 BinaryElementRelationLink.param1(link,source); 32193 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"rootElements reference FunctionalArchitectureModel");
37493 BinaryElementRelationLink.param2(link,target); 32194 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,container);
32195 find mayInstanceOfFunction_class(problem,interpretation,newObject);
32196 find mayInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,container,newObject);
32197 find mustExist(problem, interpretation, container);
32198 neg find mustExist(problem, interpretation, newObject);
37494} 32199}
37495/** 32200pattern createObject_Function_class_by_subElements_reference_Function_with_parent_reference_FunctionalElement(
37496 * Matcher for detecting tuples t where <>eType reference ETypedElement(source,target)
37497 */
37498private pattern mayInRelationeType_reference_ETypedElement(
37499 problem:LogicProblem, interpretation:PartialInterpretation, 32201 problem:LogicProblem, interpretation:PartialInterpretation,
37500 source: DefinedElement, target:DefinedElement) 32202 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
32203 container:DefinedElement)
37501{ 32204{
37502 find interpretation(problem,interpretation); 32205 find interpretation(problem,interpretation);
37503 // The two endpoint of the link have to exist 32206 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
37504 find mayExist(problem, interpretation, source); 32207 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class");
37505 find mayExist(problem, interpretation, target); 32208 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
37506 // Type consistency 32209 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"subElements reference Function");
37507 find mayInstanceOfETypedElement_class(problem,interpretation,source); 32210 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
37508 find mayInstanceOfEClassifier_class(problem,interpretation,target); 32211 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"parent reference FunctionalElement");
37509 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 32212 find mustInstanceOfFunction_class(problem,interpretation,container);
37510 // the upper bound of the multiplicity should be considered. 32213 find mayInstanceOfFunction_class(problem,interpretation,newObject);
37511 numberOfExistingReferences == count find mustInRelationeType_reference_ETypedElement(problem,interpretation,source,_); 32214 find mayInRelationsubElements_reference_Function(problem,interpretation,container,newObject);
37512 check(numberOfExistingReferences < 1); 32215 find mustExist(problem, interpretation, container);
37513} or { 32216 neg find mustExist(problem, interpretation, newObject);
37514 find mustInRelationeType_reference_ETypedElement(problem,interpretation,source,target);
37515} 32217}
37516/** 32218pattern createObject_Function_class(
37517 * Matcher for detecting tuples t where []eGenericType reference ETypedElement(source,target)
37518 */
37519private pattern mustInRelationeGenericType_reference_ETypedElement(
37520 problem:LogicProblem, interpretation:PartialInterpretation, 32219 problem:LogicProblem, interpretation:PartialInterpretation,
37521 source: DefinedElement, target:DefinedElement) 32220 typeInterpretation:PartialComplexTypeInterpretation)
37522{ 32221{
37523 find interpretation(problem,interpretation); 32222 find interpretation(problem,interpretation);
37524 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 32223 neg find hasElementInContainment(problem,interpretation);
37525 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eGenericType reference ETypedElement"); 32224 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
37526 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 32225 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class");
37527 BinaryElementRelationLink.param1(link,source); 32226 find mayInstanceOfFunction_class(problem,interpretation,newObject);
37528 BinaryElementRelationLink.param2(link,target); 32227 find mayExist(problem, interpretation, newObject);
32228 neg find mustExist(problem, interpretation, newObject);
37529} 32229}
37530/** 32230pattern createObject_FunctionalOutput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData(
37531 * Matcher for detecting tuples t where <>eGenericType reference ETypedElement(source,target)
37532 */
37533private pattern mayInRelationeGenericType_reference_ETypedElement(
37534 problem:LogicProblem, interpretation:PartialInterpretation, 32231 problem:LogicProblem, interpretation:PartialInterpretation,
37535 source: DefinedElement, target:DefinedElement) 32232 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
32233 container:DefinedElement)
37536{ 32234{
37537 find interpretation(problem,interpretation); 32235 find interpretation(problem,interpretation);
37538 // The two endpoint of the link have to exist 32236 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
37539 find mayExist(problem, interpretation, source); 32237 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class");
37540 find mayExist(problem, interpretation, target); 32238 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
37541 // Type consistency 32239 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface");
37542 find mayInstanceOfETypedElement_class(problem,interpretation,source); 32240 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
37543 find mayInstanceOfEGenericType_class(problem,interpretation,target); 32241 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData");
37544 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 32242 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container);
37545 // the upper bound of the multiplicity should be considered. 32243 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject);
37546 numberOfExistingReferences == count find mustInRelationeGenericType_reference_ETypedElement(problem,interpretation,source,_); 32244 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject);
37547 check(numberOfExistingReferences < 1); 32245 find mustExist(problem, interpretation, container);
37548 // The reference is containment, then a new reference cannot be create if: 32246 neg find mustExist(problem, interpretation, newObject);
37549 // 1. Multiple parents
37550 neg find mustContains4(problem,interpretation,_,target);
37551 // 2. Circle in the containment hierarchy
37552 neg find mustTransitiveContains(source,target);
37553} or {
37554 find mustInRelationeGenericType_reference_ETypedElement(problem,interpretation,source,target);
37555} 32247}
37556/** 32248pattern createObject_FunctionalOutput_class(
37557 * Matcher for detecting tuples t where []eUpperBound reference EGenericType(source,target)
37558 */
37559private pattern mustInRelationeUpperBound_reference_EGenericType(
37560 problem:LogicProblem, interpretation:PartialInterpretation, 32249 problem:LogicProblem, interpretation:PartialInterpretation,
37561 source: DefinedElement, target:DefinedElement) 32250 typeInterpretation:PartialComplexTypeInterpretation)
37562{ 32251{
37563 find interpretation(problem,interpretation); 32252 find interpretation(problem,interpretation);
37564 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 32253 neg find hasElementInContainment(problem,interpretation);
37565 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eUpperBound reference EGenericType"); 32254 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
37566 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 32255 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class");
37567 BinaryElementRelationLink.param1(link,source); 32256 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject);
37568 BinaryElementRelationLink.param2(link,target); 32257 find mayExist(problem, interpretation, newObject);
32258 neg find mustExist(problem, interpretation, newObject);
37569} 32259}
37570/** 32260pattern createObject_FunctionalInterface_class_by_interface_reference_FunctionalElement_with_element_reference_FunctionalInterface(
37571 * Matcher for detecting tuples t where <>eUpperBound reference EGenericType(source,target)
37572 */
37573private pattern mayInRelationeUpperBound_reference_EGenericType(
37574 problem:LogicProblem, interpretation:PartialInterpretation, 32261 problem:LogicProblem, interpretation:PartialInterpretation,
37575 source: DefinedElement, target:DefinedElement) 32262 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
32263 container:DefinedElement)
37576{ 32264{
37577 find interpretation(problem,interpretation); 32265 find interpretation(problem,interpretation);
37578 // The two endpoint of the link have to exist 32266 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
37579 find mayExist(problem, interpretation, source); 32267 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
37580 find mayExist(problem, interpretation, target); 32268 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
37581 // Type consistency 32269 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"interface reference FunctionalElement");
37582 find mayInstanceOfEGenericType_class(problem,interpretation,source); 32270 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
37583 find mayInstanceOfEGenericType_class(problem,interpretation,target); 32271 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"element reference FunctionalInterface");
37584 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 32272 find mustInstanceOfFunctionalElement_class(problem,interpretation,container);
37585 // the upper bound of the multiplicity should be considered. 32273 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
37586 numberOfExistingReferences == count find mustInRelationeUpperBound_reference_EGenericType(problem,interpretation,source,_); 32274 find mayInRelationinterface_reference_FunctionalElement(problem,interpretation,container,newObject);
37587 check(numberOfExistingReferences < 1); 32275 find mustExist(problem, interpretation, container);
37588 // The reference is containment, then a new reference cannot be create if: 32276 neg find mustExist(problem, interpretation, newObject);
37589 // 1. Multiple parents
37590 neg find mustContains4(problem,interpretation,_,target);
37591 // 2. Circle in the containment hierarchy
37592 neg find mustTransitiveContains(source,target);
37593} or {
37594 find mustInRelationeUpperBound_reference_EGenericType(problem,interpretation,source,target);
37595} 32277}
37596/** 32278pattern createObject_FunctionalInterface_class(
37597 * Matcher for detecting tuples t where []eTypeArguments reference EGenericType(source,target)
37598 */
37599private pattern mustInRelationeTypeArguments_reference_EGenericType(
37600 problem:LogicProblem, interpretation:PartialInterpretation, 32279 problem:LogicProblem, interpretation:PartialInterpretation,
37601 source: DefinedElement, target:DefinedElement) 32280 typeInterpretation:PartialComplexTypeInterpretation)
37602{ 32281{
37603 find interpretation(problem,interpretation); 32282 find interpretation(problem,interpretation);
37604 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 32283 neg find hasElementInContainment(problem,interpretation);
37605 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eTypeArguments reference EGenericType"); 32284 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
37606 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 32285 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
37607 BinaryElementRelationLink.param1(link,source); 32286 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
37608 BinaryElementRelationLink.param2(link,target); 32287 find mayExist(problem, interpretation, newObject);
32288 neg find mustExist(problem, interpretation, newObject);
37609} 32289}
37610/** 32290pattern createObject_FAMTerminator_class_by_terminator_reference_FunctionalData_with_data_reference_FAMTerminator(
37611 * Matcher for detecting tuples t where <>eTypeArguments reference EGenericType(source,target)
37612 */
37613private pattern mayInRelationeTypeArguments_reference_EGenericType(
37614 problem:LogicProblem, interpretation:PartialInterpretation, 32291 problem:LogicProblem, interpretation:PartialInterpretation,
37615 source: DefinedElement, target:DefinedElement) 32292 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
32293 container:DefinedElement)
37616{ 32294{
37617 find interpretation(problem,interpretation); 32295 find interpretation(problem,interpretation);
37618 // The two endpoint of the link have to exist 32296 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
37619 find mayExist(problem, interpretation, source); 32297 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class");
37620 find mayExist(problem, interpretation, target); 32298 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
37621 // Type consistency 32299 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"terminator reference FunctionalData");
37622 find mayInstanceOfEGenericType_class(problem,interpretation,source); 32300 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
37623 find mayInstanceOfEGenericType_class(problem,interpretation,target); 32301 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"data reference FAMTerminator");
37624 // The reference is containment, then a new reference cannot be create if: 32302 find mustInstanceOfFunctionalData_class(problem,interpretation,container);
37625 // 1. Multiple parents 32303 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject);
37626 neg find mustContains4(problem,interpretation,_,target); 32304 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,container,newObject);
37627 // 2. Circle in the containment hierarchy 32305 find mustExist(problem, interpretation, container);
37628 neg find mustTransitiveContains(source,target); 32306 neg find mustExist(problem, interpretation, newObject);
37629} or {
37630 find mustInRelationeTypeArguments_reference_EGenericType(problem,interpretation,source,target);
37631} 32307}
37632/** 32308pattern createObject_FAMTerminator_class(
37633 * Matcher for detecting tuples t where []eRawType reference EGenericType(source,target)
37634 */
37635private pattern mustInRelationeRawType_reference_EGenericType(
37636 problem:LogicProblem, interpretation:PartialInterpretation, 32309 problem:LogicProblem, interpretation:PartialInterpretation,
37637 source: DefinedElement, target:DefinedElement) 32310 typeInterpretation:PartialComplexTypeInterpretation)
37638{ 32311{
37639 find interpretation(problem,interpretation); 32312 find interpretation(problem,interpretation);
37640 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 32313 neg find hasElementInContainment(problem,interpretation);
37641 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eRawType reference EGenericType"); 32314 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
37642 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 32315 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class");
37643 BinaryElementRelationLink.param1(link,source); 32316 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject);
37644 BinaryElementRelationLink.param2(link,target); 32317 find mayExist(problem, interpretation, newObject);
32318 neg find mustExist(problem, interpretation, newObject);
37645} 32319}
37646/** 32320pattern createObject_InformationLink_class_by_outgoingLinks_reference_FunctionalOutput_with_from_reference_InformationLink(
37647 * Matcher for detecting tuples t where <>eRawType reference EGenericType(source,target)
37648 */
37649private pattern mayInRelationeRawType_reference_EGenericType(
37650 problem:LogicProblem, interpretation:PartialInterpretation, 32321 problem:LogicProblem, interpretation:PartialInterpretation,
37651 source: DefinedElement, target:DefinedElement) 32322 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
32323 container:DefinedElement)
37652{ 32324{
37653 find interpretation(problem,interpretation); 32325 find interpretation(problem,interpretation);
37654 // The two endpoint of the link have to exist 32326 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
37655 find mayExist(problem, interpretation, source); 32327 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class");
37656 find mayExist(problem, interpretation, target); 32328 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
37657 // Type consistency 32329 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"outgoingLinks reference FunctionalOutput");
37658 find mayInstanceOfEGenericType_class(problem,interpretation,source); 32330 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
37659 find mayInstanceOfEClassifier_class(problem,interpretation,target); 32331 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"from reference InformationLink");
37660 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 32332 find mustInstanceOfFunctionalOutput_class(problem,interpretation,container);
37661 // the upper bound of the multiplicity should be considered. 32333 find mayInstanceOfInformationLink_class(problem,interpretation,newObject);
37662 numberOfExistingReferences == count find mustInRelationeRawType_reference_EGenericType(problem,interpretation,source,_); 32334 find mayInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,container,newObject);
37663 check(numberOfExistingReferences < 1); 32335 find mustExist(problem, interpretation, container);
37664} or { 32336 neg find mustExist(problem, interpretation, newObject);
37665 find mustInRelationeRawType_reference_EGenericType(problem,interpretation,source,target);
37666} 32337}
37667/** 32338pattern createObject_InformationLink_class(
37668 * Matcher for detecting tuples t where []eLowerBound reference EGenericType(source,target)
37669 */
37670private pattern mustInRelationeLowerBound_reference_EGenericType(
37671 problem:LogicProblem, interpretation:PartialInterpretation, 32339 problem:LogicProblem, interpretation:PartialInterpretation,
37672 source: DefinedElement, target:DefinedElement) 32340 typeInterpretation:PartialComplexTypeInterpretation)
37673{ 32341{
37674 find interpretation(problem,interpretation); 32342 find interpretation(problem,interpretation);
37675 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 32343 neg find hasElementInContainment(problem,interpretation);
37676 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eLowerBound reference EGenericType"); 32344 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
37677 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 32345 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class");
37678 BinaryElementRelationLink.param1(link,source); 32346 find mayInstanceOfInformationLink_class(problem,interpretation,newObject);
37679 BinaryElementRelationLink.param2(link,target); 32347 find mayExist(problem, interpretation, newObject);
32348 neg find mustExist(problem, interpretation, newObject);
37680} 32349}
37681/** 32350pattern createObject_FunctionalArchitectureModel_class(
37682 * Matcher for detecting tuples t where <>eLowerBound reference EGenericType(source,target)
37683 */
37684private pattern mayInRelationeLowerBound_reference_EGenericType(
37685 problem:LogicProblem, interpretation:PartialInterpretation, 32351 problem:LogicProblem, interpretation:PartialInterpretation,
37686 source: DefinedElement, target:DefinedElement) 32352 typeInterpretation:PartialComplexTypeInterpretation)
37687{ 32353{
37688 find interpretation(problem,interpretation); 32354 find interpretation(problem,interpretation);
37689 // The two endpoint of the link have to exist 32355 neg find hasElementInContainment(problem,interpretation);
37690 find mayExist(problem, interpretation, source); 32356 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
37691 find mayExist(problem, interpretation, target); 32357 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalArchitectureModel class");
37692 // Type consistency 32358 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,newObject);
37693 find mayInstanceOfEGenericType_class(problem,interpretation,source); 32359 find mayExist(problem, interpretation, newObject);
37694 find mayInstanceOfEGenericType_class(problem,interpretation,target); 32360 neg find mustExist(problem, interpretation, newObject);
37695 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
37696 // the upper bound of the multiplicity should be considered.
37697 numberOfExistingReferences == count find mustInRelationeLowerBound_reference_EGenericType(problem,interpretation,source,_);
37698 check(numberOfExistingReferences < 1);
37699 // The reference is containment, then a new reference cannot be create if:
37700 // 1. Multiple parents
37701 neg find mustContains4(problem,interpretation,_,target);
37702 // 2. Circle in the containment hierarchy
37703 neg find mustTransitiveContains(source,target);
37704} or {
37705 find mustInRelationeLowerBound_reference_EGenericType(problem,interpretation,source,target);
37706} 32361}
37707/** 32362pattern createObject_FunctionalInput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData(
37708 * Matcher for detecting tuples t where []eTypeParameter reference EGenericType(source,target)
37709 */
37710private pattern mustInRelationeTypeParameter_reference_EGenericType(
37711 problem:LogicProblem, interpretation:PartialInterpretation, 32363 problem:LogicProblem, interpretation:PartialInterpretation,
37712 source: DefinedElement, target:DefinedElement) 32364 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
32365 container:DefinedElement)
37713{ 32366{
37714 find interpretation(problem,interpretation); 32367 find interpretation(problem,interpretation);
37715 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 32368 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
37716 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eTypeParameter reference EGenericType"); 32369 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class");
37717 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 32370 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
37718 BinaryElementRelationLink.param1(link,source); 32371 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface");
37719 BinaryElementRelationLink.param2(link,target); 32372 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
32373 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData");
32374 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container);
32375 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
32376 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject);
32377 find mustExist(problem, interpretation, container);
32378 neg find mustExist(problem, interpretation, newObject);
37720} 32379}
37721/** 32380pattern createObject_FunctionalInput_class(
37722 * Matcher for detecting tuples t where <>eTypeParameter reference EGenericType(source,target)
37723 */
37724private pattern mayInRelationeTypeParameter_reference_EGenericType(
37725 problem:LogicProblem, interpretation:PartialInterpretation, 32381 problem:LogicProblem, interpretation:PartialInterpretation,
37726 source: DefinedElement, target:DefinedElement) 32382 typeInterpretation:PartialComplexTypeInterpretation)
37727{ 32383{
37728 find interpretation(problem,interpretation); 32384 find interpretation(problem,interpretation);
37729 // The two endpoint of the link have to exist 32385 neg find hasElementInContainment(problem,interpretation);
37730 find mayExist(problem, interpretation, source); 32386 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
37731 find mayExist(problem, interpretation, target); 32387 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class");
37732 // Type consistency 32388 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
37733 find mayInstanceOfEGenericType_class(problem,interpretation,source); 32389 find mayExist(problem, interpretation, newObject);
37734 find mayInstanceOfETypeParameter_class(problem,interpretation,target); 32390 neg find mustExist(problem, interpretation, newObject);
37735 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
37736 // the upper bound of the multiplicity should be considered.
37737 numberOfExistingReferences == count find mustInRelationeTypeParameter_reference_EGenericType(problem,interpretation,source,_);
37738 check(numberOfExistingReferences < 1);
37739} or {
37740 find mustInRelationeTypeParameter_reference_EGenericType(problem,interpretation,source,target);
37741} 32391}
37742/** 32392
37743 * Matcher for detecting tuples t where []eClassifier reference EGenericType(source,target) 32393//////////
37744 */ 32394// 4.2 Type refinement
37745private pattern mustInRelationeClassifier_reference_EGenericType( 32395//////////
37746 problem:LogicProblem, interpretation:PartialInterpretation, 32396pattern refineTypeTo_Function_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
37747 source: DefinedElement, target:DefinedElement)
37748{
37749 find interpretation(problem,interpretation); 32397 find interpretation(problem,interpretation);
37750 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 32398 PartialInterpretation.newElements(interpretation,element);
37751 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eClassifier reference EGenericType"); 32399 find mayInstanceOfFunction_class(problem,interpretation,element);
37752 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 32400 neg find mustInstanceOfFunction_class(problem,interpretation,element);
37753 BinaryElementRelationLink.param1(link,source); 32401 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
37754 BinaryElementRelationLink.param2(link,target); 32402 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
32403 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
32404 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
32405 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
37755} 32406}
37756/** 32407pattern refineTypeTo_FunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
37757 * Matcher for detecting tuples t where <>eClassifier reference EGenericType(source,target)
37758 */
37759private pattern mayInRelationeClassifier_reference_EGenericType(
37760 problem:LogicProblem, interpretation:PartialInterpretation,
37761 source: DefinedElement, target:DefinedElement)
37762{
37763 find interpretation(problem,interpretation); 32408 find interpretation(problem,interpretation);
37764 // The two endpoint of the link have to exist 32409 PartialInterpretation.newElements(interpretation,element);
37765 find mayExist(problem, interpretation, source); 32410 find mayInstanceOfFunctionalOutput_class(problem,interpretation,element);
37766 find mayExist(problem, interpretation, target); 32411 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
37767 // Type consistency 32412 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
37768 find mayInstanceOfEGenericType_class(problem,interpretation,source); 32413 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
37769 find mayInstanceOfEClassifier_class(problem,interpretation,target); 32414 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
37770 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 32415 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
37771 // the upper bound of the multiplicity should be considered. 32416 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
37772 numberOfExistingReferences == count find mustInRelationeClassifier_reference_EGenericType(problem,interpretation,source,_); 32417 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
37773 check(numberOfExistingReferences < 1);
37774} or {
37775 find mustInRelationeClassifier_reference_EGenericType(problem,interpretation,source,target);
37776} 32418}
37777/** 32419pattern refineTypeTo_FunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
37778 * Matcher for detecting tuples t where []eBounds reference ETypeParameter(source,target) 32420 find interpretation(problem,interpretation);
37779 */ 32421 PartialInterpretation.newElements(interpretation,element);
37780private pattern mustInRelationeBounds_reference_ETypeParameter( 32422 find mayInstanceOfFunctionalInterface_class(problem,interpretation,element);
32423 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
32424 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
32425 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
32426 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
32427 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
32428 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
32429}
32430pattern refineTypeTo_FAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
32431 find interpretation(problem,interpretation);
32432 PartialInterpretation.newElements(interpretation,element);
32433 find mayInstanceOfFAMTerminator_class(problem,interpretation,element);
32434 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
32435 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
32436 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
32437 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
32438 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
32439 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
32440}
32441pattern refineTypeTo_InformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
32442 find interpretation(problem,interpretation);
32443 PartialInterpretation.newElements(interpretation,element);
32444 find mayInstanceOfInformationLink_class(problem,interpretation,element);
32445 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
32446 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
32447 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
32448 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
32449 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
32450 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
32451}
32452pattern refineTypeTo_FunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
32453 find interpretation(problem,interpretation);
32454 PartialInterpretation.newElements(interpretation,element);
32455 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
32456 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
32457 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
32458 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
32459 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
32460 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
32461 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
32462}
32463pattern refineTypeTo_FunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
32464 find interpretation(problem,interpretation);
32465 PartialInterpretation.newElements(interpretation,element);
32466 find mayInstanceOfFunctionalInput_class(problem,interpretation,element);
32467 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
32468 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
32469 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
32470 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
32471 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
32472 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
32473 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
32474}
32475
32476//////////
32477// 4.3 Relation refinement
32478//////////
32479pattern refineRelation_model_reference_FunctionalElement(
37781 problem:LogicProblem, interpretation:PartialInterpretation, 32480 problem:LogicProblem, interpretation:PartialInterpretation,
37782 source: DefinedElement, target:DefinedElement) 32481 relationIterpretation:PartialRelationInterpretation,
32482 from: DefinedElement, to: DefinedElement)
37783{ 32483{
37784 find interpretation(problem,interpretation); 32484 find interpretation(problem,interpretation);
37785 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 32485 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
37786 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eBounds reference ETypeParameter"); 32486 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement");
37787 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 32487 find mustExist(problem, interpretation, from);
37788 BinaryElementRelationLink.param1(link,source); 32488 find mustExist(problem, interpretation, to);
37789 BinaryElementRelationLink.param2(link,target); 32489 find mustInstanceOfFunctionalElement_class(problem,interpretation,from);
32490 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,to);
32491 find mayInRelationmodel_reference_FunctionalElement(problem,interpretation,from,to);
32492 neg find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,from,to);
37790} 32493}
37791/** 32494pattern refineRelation_IncomingLinks_reference_FunctionalInput_and_to_reference_InformationLink(
37792 * Matcher for detecting tuples t where <>eBounds reference ETypeParameter(source,target)
37793 */
37794private pattern mayInRelationeBounds_reference_ETypeParameter(
37795 problem:LogicProblem, interpretation:PartialInterpretation, 32495 problem:LogicProblem, interpretation:PartialInterpretation,
37796 source: DefinedElement, target:DefinedElement) 32496 relationIterpretation:PartialRelationInterpretation, oppositeInterpretation:PartialRelationInterpretation,
32497 from: DefinedElement, to: DefinedElement)
37797{ 32498{
37798 find interpretation(problem,interpretation); 32499 find interpretation(problem,interpretation);
37799 // The two endpoint of the link have to exist 32500 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
37800 find mayExist(problem, interpretation, source); 32501 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"IncomingLinks reference FunctionalInput");
37801 find mayExist(problem, interpretation, target); 32502 PartialInterpretation.partialrelationinterpretation(interpretation,oppositeInterpretation);
37802 // Type consistency 32503 PartialRelationInterpretation.interpretationOf.name(oppositeInterpretation,"to reference InformationLink");
37803 find mayInstanceOfETypeParameter_class(problem,interpretation,source); 32504 find mustExist(problem, interpretation, from);
37804 find mayInstanceOfEGenericType_class(problem,interpretation,target); 32505 find mustExist(problem, interpretation, to);
37805 // The reference is containment, then a new reference cannot be create if: 32506 find mustInstanceOfFunctionalInput_class(problem,interpretation,from);
37806 // 1. Multiple parents 32507 find mustInstanceOfInformationLink_class(problem,interpretation,to);
37807 neg find mustContains4(problem,interpretation,_,target); 32508 find mayInRelationIncomingLinks_reference_FunctionalInput(problem,interpretation,from,to);
37808 // 2. Circle in the containment hierarchy 32509 neg find mustInRelationIncomingLinks_reference_FunctionalInput(problem,interpretation,from,to);
37809 neg find mustTransitiveContains(source,target);
37810} or {
37811 find mustInRelationeBounds_reference_ETypeParameter(problem,interpretation,source,target);
37812} 32510}
37813/** 32511pattern refineRelation_type_attribute_Function(
37814 * Matcher for detecting tuples t where []iD attribute EAttribute(source,target)
37815 */
37816private pattern mustInRelationiD_attribute_EAttribute(
37817 problem:LogicProblem, interpretation:PartialInterpretation, 32512 problem:LogicProblem, interpretation:PartialInterpretation,
37818 source: DefinedElement, target:DefinedElement) 32513 relationIterpretation:PartialRelationInterpretation,
32514 from: DefinedElement, to: DefinedElement)
37819{ 32515{
37820 find interpretation(problem,interpretation); 32516 find interpretation(problem,interpretation);
37821 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 32517 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
37822 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"iD attribute EAttribute"); 32518 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function");
37823 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 32519 find mustExist(problem, interpretation, from);
37824 BinaryElementRelationLink.param1(link,source); 32520 find mustExist(problem, interpretation, to);
37825 BinaryElementRelationLink.param2(link,target); 32521 find mustInstanceOfFunction_class(problem,interpretation,from);
32522 find mustInstanceOfFunctionType_enum(problem,interpretation,to);
32523 find mayInRelationtype_attribute_Function(problem,interpretation,from,to);
32524 neg find mustInRelationtype_attribute_Function(problem,interpretation,from,to);
37826} 32525}
37827/** 32526import epackage "http://www.bme.hu/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage"
37828 * Matcher for detecting tuples t where <>iD attribute EAttribute(source,target) 32527import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem"
37829 */ 32528import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/language"
37830private pattern mayInRelationiD_attribute_EAttribute( 32529
37831 problem:LogicProblem, interpretation:PartialInterpretation, 32530//////////
37832 source: DefinedElement, target:DefinedElement) 32531// 0. Util
37833{ 32532//////////
32533private pattern interpretation(problem:LogicProblem, interpretation:PartialInterpretation) {
32534 PartialInterpretation.problem(interpretation,problem);
32535}
32536
32537/////////////////////////
32538// 0.1 Existence
32539/////////////////////////
32540private pattern mustExist(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
37834 find interpretation(problem,interpretation); 32541 find interpretation(problem,interpretation);
37835 // The two endpoint of the link have to exist 32542 LogicProblem.elements(problem,element);
37836 find mayExist(problem, interpretation, source);
37837 find mayExist(problem, interpretation, target);
37838 // Type consistency
37839 find mayInstanceOfEAttribute_class(problem,interpretation,source);
37840 BooleanElement(target);
37841 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
37842 // the upper bound of the multiplicity should be considered.
37843 numberOfExistingReferences == count find mustInRelationiD_attribute_EAttribute(problem,interpretation,source,_);
37844 check(numberOfExistingReferences < 1);
37845} or { 32543} or {
37846 find mustInRelationiD_attribute_EAttribute(problem,interpretation,source,target); 32544 find interpretation(problem,interpretation);
32545 PartialInterpretation.newElements(interpretation,element);
37847} 32546}
37848/** 32547
37849 * Matcher for detecting tuples t where []source attribute EAnnotation(source,target) 32548private pattern mayExist(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
37850 */ 32549 find mustExist(problem,interpretation,element);
37851private pattern mustInRelationsource_attribute_EAnnotation( 32550} or {
37852 problem:LogicProblem, interpretation:PartialInterpretation, 32551 find interpretation(problem,interpretation);
37853 source: DefinedElement, target:DefinedElement) 32552 neg find elementCloseWorld(element);
37854{ 32553 PartialInterpretation.openWorldElements(interpretation,element);
32554}
32555
32556private pattern elementCloseWorld(element:DefinedElement) {
32557 PartialInterpretation.openWorldElements(i,element);
32558 PartialInterpretation.maxNewElements(i,0);
32559} or {
32560 Scope.targetTypeInterpretation(scope,interpretation);
32561 PartialTypeInterpratation.elements(interpretation,element);
32562 Scope.maxNewElements(scope,0);
32563}
32564
32565////////////////////////
32566// 0.2 Equivalence
32567////////////////////////
32568pattern mayEquivalent(problem:LogicProblem, interpretation:PartialInterpretation, a: DefinedElement, b: DefinedElement) {
32569 find mayExist(problem,interpretation,a);
32570 find mayExist(problem,interpretation,b);
32571 a == b;
32572}
32573
32574////////////////////////
32575// 0.3 Required Patterns by TypeIndexer
32576////////////////////////
32577private pattern typeInterpretation(problem:LogicProblem, interpretation:PartialInterpretation, type:TypeDeclaration, typeInterpretation:PartialComplexTypeInterpretation) {
37855 find interpretation(problem,interpretation); 32578 find interpretation(problem,interpretation);
37856 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 32579 LogicProblem.types(problem,type);
37857 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"source attribute EAnnotation"); 32580 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
37858 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 32581 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
37859 BinaryElementRelationLink.param1(link,source);
37860 BinaryElementRelationLink.param2(link,target);
37861} 32582}
37862/** 32583
37863 * Matcher for detecting tuples t where <>source attribute EAnnotation(source,target) 32584private pattern directInstanceOf(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement, type:Type) {
37864 */
37865private pattern mayInRelationsource_attribute_EAnnotation(
37866 problem:LogicProblem, interpretation:PartialInterpretation,
37867 source: DefinedElement, target:DefinedElement)
37868{
37869 find interpretation(problem,interpretation); 32585 find interpretation(problem,interpretation);
37870 // The two endpoint of the link have to exist 32586 LogicProblem.types(problem,type);
37871 find mayExist(problem, interpretation, source); 32587 TypeDefinition.elements(type,element);
37872 find mayExist(problem, interpretation, target);
37873 // Type consistency
37874 find mayInstanceOfEAnnotation_class(problem,interpretation,source);
37875 StringElement(target);
37876 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
37877 // the upper bound of the multiplicity should be considered.
37878 numberOfExistingReferences == count find mustInRelationsource_attribute_EAnnotation(problem,interpretation,source,_);
37879 check(numberOfExistingReferences < 1);
37880} or { 32588} or {
37881 find mustInRelationsource_attribute_EAnnotation(problem,interpretation,source,target); 32589 find interpretation(problem,interpretation);
32590 find typeInterpretation(problem,interpretation,type,typeInterpretation);
32591 PartialComplexTypeInterpretation.elements(typeInterpretation,element);
37882} 32592}
32593
32594private pattern isPrimitive(element: PrimitiveElement) {
32595 PrimitiveElement(element);
32596}
32597
32598//////////
32599// 1. Problem-Specific Base Indexers
32600//////////
32601// 1.1 Type Indexers
32602//////////
32603// 1.1.1 primitive Type Indexers
32604//////////
32605
32606//////////
32607// 1.1.2 domain-specific Type Indexers
32608//////////
37883/** 32609/**
37884 * Matcher for detecting tuples t where []abstract attribute EClass(source,target) 32610 * An element must be an instance of type "FunctionalElement class".
37885 */ 32611 */
37886private pattern mustInRelationabstract_attribute_EClass( 32612private pattern mustInstanceOfFunctionalElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
37887 problem:LogicProblem, interpretation:PartialInterpretation, 32613 Type.name(type,"FunctionalElement class");
37888 source: DefinedElement, target:DefinedElement) 32614 find directInstanceOf(problem,interpretation,element,type);
37889{ 32615}
32616private pattern scopeDisallowsNewFunctionalElement_class(problem:LogicProblem, interpretation:PartialInterpretation) {
37890 find interpretation(problem,interpretation); 32617 find interpretation(problem,interpretation);
37891 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 32618 PartialInterpretation.scopes(interpretation,scope);
37892 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"abstract attribute EClass"); 32619 Scope.targetTypeInterpretation(scope,typeInterpretation);
37893 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 32620 Scope.maxNewElements(scope,0);
37894 BinaryElementRelationLink.param1(link,source); 32621 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
37895 BinaryElementRelationLink.param2(link,target); 32622 Type.name(type,"FunctionalElement class");
37896} 32623}
32624
37897/** 32625/**
37898 * Matcher for detecting tuples t where <>abstract attribute EClass(source,target) 32626 * An element may be an instance of type "FunctionalElement class".
37899 */ 32627 */
37900private pattern mayInRelationabstract_attribute_EClass( 32628private pattern mayInstanceOfFunctionalElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
37901 problem:LogicProblem, interpretation:PartialInterpretation,
37902 source: DefinedElement, target:DefinedElement)
37903{ 32629{
37904 find interpretation(problem,interpretation); 32630 find interpretation(problem,interpretation);
37905 // The two endpoint of the link have to exist 32631 PartialInterpretation.newElements(interpretation,element);
37906 find mayExist(problem, interpretation, source); 32632 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
37907 find mayExist(problem, interpretation, target); 32633 neg find mustInstanceOfFunction_class(problem,interpretation,element);
37908 // Type consistency 32634 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
37909 find mayInstanceOfEClass_class(problem,interpretation,source); 32635 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
37910 BooleanElement(target); 32636 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
37911 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 32637 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
37912 // the upper bound of the multiplicity should be considered. 32638 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
37913 numberOfExistingReferences == count find mustInRelationabstract_attribute_EClass(problem,interpretation,source,_); 32639 neg find isPrimitive(element);
37914 check(numberOfExistingReferences < 1);
37915} or { 32640} or {
37916 find mustInRelationabstract_attribute_EClass(problem,interpretation,source,target); 32641 find interpretation(problem,interpretation);
37917} 32642 PartialInterpretation.openWorldElements(interpretation,element);
32643 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
32644 neg find mustInstanceOfFunction_class(problem,interpretation,element);
32645 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
32646 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
32647 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
32648 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
32649 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
32650 neg find isPrimitive(element);
32651} or
32652{ find mustInstanceOfFunctionalElement_class(problem,interpretation,element); }
37918/** 32653/**
37919 * Matcher for detecting tuples t where []interface attribute EClass(source,target) 32654 * An element must be an instance of type "FunctionalArchitectureModel class".
37920 */ 32655 */
37921private pattern mustInRelationinterface_attribute_EClass( 32656private pattern mustInstanceOfFunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
37922 problem:LogicProblem, interpretation:PartialInterpretation, 32657 Type.name(type,"FunctionalArchitectureModel class");
37923 source: DefinedElement, target:DefinedElement) 32658 find directInstanceOf(problem,interpretation,element,type);
37924{ 32659}
32660private pattern scopeDisallowsNewFunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation) {
37925 find interpretation(problem,interpretation); 32661 find interpretation(problem,interpretation);
37926 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 32662 PartialInterpretation.scopes(interpretation,scope);
37927 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"interface attribute EClass"); 32663 Scope.targetTypeInterpretation(scope,typeInterpretation);
37928 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 32664 Scope.maxNewElements(scope,0);
37929 BinaryElementRelationLink.param1(link,source); 32665 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
37930 BinaryElementRelationLink.param2(link,target); 32666 Type.name(type,"FunctionalArchitectureModel class");
37931} 32667}
32668
37932/** 32669/**
37933 * Matcher for detecting tuples t where <>interface attribute EClass(source,target) 32670 * An element may be an instance of type "FunctionalArchitectureModel class".
37934 */ 32671 */
37935private pattern mayInRelationinterface_attribute_EClass( 32672private pattern mayInstanceOfFunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
37936 problem:LogicProblem, interpretation:PartialInterpretation,
37937 source: DefinedElement, target:DefinedElement)
37938{ 32673{
37939 find interpretation(problem,interpretation); 32674 find interpretation(problem,interpretation);
37940 // The two endpoint of the link have to exist 32675 PartialInterpretation.newElements(interpretation,element);
37941 find mayExist(problem, interpretation, source); 32676 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
37942 find mayExist(problem, interpretation, target); 32677 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
37943 // Type consistency 32678 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
37944 find mayInstanceOfEClass_class(problem,interpretation,source); 32679 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
37945 BooleanElement(target); 32680 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
37946 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 32681 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
37947 // the upper bound of the multiplicity should be considered. 32682 neg find isPrimitive(element);
37948 numberOfExistingReferences == count find mustInRelationinterface_attribute_EClass(problem,interpretation,source,_);
37949 check(numberOfExistingReferences < 1);
37950} or { 32683} or {
37951 find mustInRelationinterface_attribute_EClass(problem,interpretation,source,target); 32684 find interpretation(problem,interpretation);
37952} 32685 PartialInterpretation.openWorldElements(interpretation,element);
32686 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
32687 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
32688 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
32689 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
32690 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
32691 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
32692 neg find isPrimitive(element);
32693} or
32694{ find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); }
37953/** 32695/**
37954 * Matcher for detecting tuples t where []instanceClassName attribute EClassifier(source,target) 32696 * An element must be an instance of type "Function class".
37955 */ 32697 */
37956private pattern mustInRelationinstanceClassName_attribute_EClassifier( 32698private pattern mustInstanceOfFunction_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
37957 problem:LogicProblem, interpretation:PartialInterpretation, 32699 Type.name(type,"Function class");
37958 source: DefinedElement, target:DefinedElement) 32700 find directInstanceOf(problem,interpretation,element,type);
37959{ 32701}
32702private pattern scopeDisallowsNewFunction_class(problem:LogicProblem, interpretation:PartialInterpretation) {
37960 find interpretation(problem,interpretation); 32703 find interpretation(problem,interpretation);
37961 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 32704 PartialInterpretation.scopes(interpretation,scope);
37962 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"instanceClassName attribute EClassifier"); 32705 Scope.targetTypeInterpretation(scope,typeInterpretation);
37963 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 32706 Scope.maxNewElements(scope,0);
37964 BinaryElementRelationLink.param1(link,source); 32707 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
37965 BinaryElementRelationLink.param2(link,target); 32708 Type.name(type,"Function class");
37966} 32709}
32710
37967/** 32711/**
37968 * Matcher for detecting tuples t where <>instanceClassName attribute EClassifier(source,target) 32712 * An element may be an instance of type "Function class".
37969 */ 32713 */
37970private pattern mayInRelationinstanceClassName_attribute_EClassifier( 32714private pattern mayInstanceOfFunction_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
37971 problem:LogicProblem, interpretation:PartialInterpretation,
37972 source: DefinedElement, target:DefinedElement)
37973{ 32715{
37974 find interpretation(problem,interpretation); 32716 find interpretation(problem,interpretation);
37975 // The two endpoint of the link have to exist 32717 PartialInterpretation.newElements(interpretation,element);
37976 find mayExist(problem, interpretation, source); 32718 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
37977 find mayExist(problem, interpretation, target); 32719 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
37978 // Type consistency 32720 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
37979 find mayInstanceOfEClassifier_class(problem,interpretation,source); 32721 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
37980 StringElement(target); 32722 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
37981 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 32723 neg find scopeDisallowsNewFunction_class(problem, interpretation);
37982 // the upper bound of the multiplicity should be considered. 32724 neg find isPrimitive(element);
37983 numberOfExistingReferences == count find mustInRelationinstanceClassName_attribute_EClassifier(problem,interpretation,source,_);
37984 check(numberOfExistingReferences < 1);
37985} or { 32725} or {
37986 find mustInRelationinstanceClassName_attribute_EClassifier(problem,interpretation,source,target); 32726 find interpretation(problem,interpretation);
37987} 32727 PartialInterpretation.openWorldElements(interpretation,element);
32728 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
32729 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
32730 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
32731 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
32732 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
32733 neg find scopeDisallowsNewFunction_class(problem, interpretation);
32734 neg find isPrimitive(element);
32735} or
32736{ find mustInstanceOfFunction_class(problem,interpretation,element); }
37988/** 32737/**
37989 * Matcher for detecting tuples t where []instanceTypeName attribute EClassifier(source,target) 32738 * An element must be an instance of type "FAMTerminator class".
37990 */ 32739 */
37991private pattern mustInRelationinstanceTypeName_attribute_EClassifier( 32740private pattern mustInstanceOfFAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
37992 problem:LogicProblem, interpretation:PartialInterpretation, 32741 Type.name(type,"FAMTerminator class");
37993 source: DefinedElement, target:DefinedElement) 32742 find directInstanceOf(problem,interpretation,element,type);
37994{ 32743}
32744private pattern scopeDisallowsNewFAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation) {
37995 find interpretation(problem,interpretation); 32745 find interpretation(problem,interpretation);
37996 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 32746 PartialInterpretation.scopes(interpretation,scope);
37997 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"instanceTypeName attribute EClassifier"); 32747 Scope.targetTypeInterpretation(scope,typeInterpretation);
37998 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 32748 Scope.maxNewElements(scope,0);
37999 BinaryElementRelationLink.param1(link,source); 32749 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
38000 BinaryElementRelationLink.param2(link,target); 32750 Type.name(type,"FAMTerminator class");
38001} 32751}
32752
38002/** 32753/**
38003 * Matcher for detecting tuples t where <>instanceTypeName attribute EClassifier(source,target) 32754 * An element may be an instance of type "FAMTerminator class".
38004 */ 32755 */
38005private pattern mayInRelationinstanceTypeName_attribute_EClassifier( 32756private pattern mayInstanceOfFAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
38006 problem:LogicProblem, interpretation:PartialInterpretation,
38007 source: DefinedElement, target:DefinedElement)
38008{ 32757{
38009 find interpretation(problem,interpretation); 32758 find interpretation(problem,interpretation);
38010 // The two endpoint of the link have to exist 32759 PartialInterpretation.newElements(interpretation,element);
38011 find mayExist(problem, interpretation, source); 32760 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
38012 find mayExist(problem, interpretation, target); 32761 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
38013 // Type consistency 32762 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
38014 find mayInstanceOfEClassifier_class(problem,interpretation,source); 32763 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
38015 StringElement(target); 32764 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
38016 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 32765 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
38017 // the upper bound of the multiplicity should be considered. 32766 neg find isPrimitive(element);
38018 numberOfExistingReferences == count find mustInRelationinstanceTypeName_attribute_EClassifier(problem,interpretation,source,_);
38019 check(numberOfExistingReferences < 1);
38020} or { 32767} or {
38021 find mustInRelationinstanceTypeName_attribute_EClassifier(problem,interpretation,source,target); 32768 find interpretation(problem,interpretation);
38022} 32769 PartialInterpretation.openWorldElements(interpretation,element);
32770 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
32771 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
32772 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
32773 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
32774 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
32775 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
32776 neg find isPrimitive(element);
32777} or
32778{ find mustInstanceOfFAMTerminator_class(problem,interpretation,element); }
38023/** 32779/**
38024 * Matcher for detecting tuples t where []serializable attribute EDataType(source,target) 32780 * An element must be an instance of type "InformationLink class".
38025 */ 32781 */
38026private pattern mustInRelationserializable_attribute_EDataType( 32782private pattern mustInstanceOfInformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
38027 problem:LogicProblem, interpretation:PartialInterpretation, 32783 Type.name(type,"InformationLink class");
38028 source: DefinedElement, target:DefinedElement) 32784 find directInstanceOf(problem,interpretation,element,type);
38029{ 32785}
32786private pattern scopeDisallowsNewInformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation) {
38030 find interpretation(problem,interpretation); 32787 find interpretation(problem,interpretation);
38031 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 32788 PartialInterpretation.scopes(interpretation,scope);
38032 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"serializable attribute EDataType"); 32789 Scope.targetTypeInterpretation(scope,typeInterpretation);
38033 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 32790 Scope.maxNewElements(scope,0);
38034 BinaryElementRelationLink.param1(link,source); 32791 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
38035 BinaryElementRelationLink.param2(link,target); 32792 Type.name(type,"InformationLink class");
38036} 32793}
32794
38037/** 32795/**
38038 * Matcher for detecting tuples t where <>serializable attribute EDataType(source,target) 32796 * An element may be an instance of type "InformationLink class".
38039 */ 32797 */
38040private pattern mayInRelationserializable_attribute_EDataType( 32798private pattern mayInstanceOfInformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
38041 problem:LogicProblem, interpretation:PartialInterpretation,
38042 source: DefinedElement, target:DefinedElement)
38043{ 32799{
38044 find interpretation(problem,interpretation); 32800 find interpretation(problem,interpretation);
38045 // The two endpoint of the link have to exist 32801 PartialInterpretation.newElements(interpretation,element);
38046 find mayExist(problem, interpretation, source); 32802 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
38047 find mayExist(problem, interpretation, target); 32803 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
38048 // Type consistency 32804 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
38049 find mayInstanceOfEDataType_class(problem,interpretation,source); 32805 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
38050 BooleanElement(target); 32806 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
38051 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 32807 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
38052 // the upper bound of the multiplicity should be considered. 32808 neg find isPrimitive(element);
38053 numberOfExistingReferences == count find mustInRelationserializable_attribute_EDataType(problem,interpretation,source,_);
38054 check(numberOfExistingReferences < 1);
38055} or { 32809} or {
38056 find mustInRelationserializable_attribute_EDataType(problem,interpretation,source,target); 32810 find interpretation(problem,interpretation);
38057} 32811 PartialInterpretation.openWorldElements(interpretation,element);
32812 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
32813 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
32814 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
32815 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
32816 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
32817 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
32818 neg find isPrimitive(element);
32819} or
32820{ find mustInstanceOfInformationLink_class(problem,interpretation,element); }
38058/** 32821/**
38059 * Matcher for detecting tuples t where []value attribute EEnumLiteral(source,target) 32822 * An element must be an instance of type "FunctionalInterface class".
38060 */ 32823 */
38061private pattern mustInRelationvalue_attribute_EEnumLiteral( 32824private pattern mustInstanceOfFunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
38062 problem:LogicProblem, interpretation:PartialInterpretation, 32825 Type.name(type,"FunctionalInterface class");
38063 source: DefinedElement, target:DefinedElement) 32826 find directInstanceOf(problem,interpretation,element,type);
38064{ 32827}
32828private pattern scopeDisallowsNewFunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation) {
38065 find interpretation(problem,interpretation); 32829 find interpretation(problem,interpretation);
38066 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 32830 PartialInterpretation.scopes(interpretation,scope);
38067 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"value attribute EEnumLiteral"); 32831 Scope.targetTypeInterpretation(scope,typeInterpretation);
38068 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 32832 Scope.maxNewElements(scope,0);
38069 BinaryElementRelationLink.param1(link,source); 32833 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
38070 BinaryElementRelationLink.param2(link,target); 32834 Type.name(type,"FunctionalInterface class");
38071} 32835}
32836
38072/** 32837/**
38073 * Matcher for detecting tuples t where <>value attribute EEnumLiteral(source,target) 32838 * An element may be an instance of type "FunctionalInterface class".
38074 */ 32839 */
38075private pattern mayInRelationvalue_attribute_EEnumLiteral( 32840private pattern mayInstanceOfFunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
38076 problem:LogicProblem, interpretation:PartialInterpretation,
38077 source: DefinedElement, target:DefinedElement)
38078{ 32841{
38079 find interpretation(problem,interpretation); 32842 find interpretation(problem,interpretation);
38080 // The two endpoint of the link have to exist 32843 PartialInterpretation.newElements(interpretation,element);
38081 find mayExist(problem, interpretation, source); 32844 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
38082 find mayExist(problem, interpretation, target); 32845 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
38083 // Type consistency 32846 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
38084 find mayInstanceOfEEnumLiteral_class(problem,interpretation,source); 32847 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
38085 IntegerElement(target); 32848 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
38086 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 32849 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
38087 // the upper bound of the multiplicity should be considered. 32850 neg find isPrimitive(element);
38088 numberOfExistingReferences == count find mustInRelationvalue_attribute_EEnumLiteral(problem,interpretation,source,_);
38089 check(numberOfExistingReferences < 1);
38090} or { 32851} or {
38091 find mustInRelationvalue_attribute_EEnumLiteral(problem,interpretation,source,target); 32852 find interpretation(problem,interpretation);
38092} 32853 PartialInterpretation.openWorldElements(interpretation,element);
32854 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
32855 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
32856 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
32857 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
32858 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
32859 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
32860 neg find isPrimitive(element);
32861} or
32862{ find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); }
38093/** 32863/**
38094 * Matcher for detecting tuples t where []literal attribute EEnumLiteral(source,target) 32864 * An element must be an instance of type "FunctionalInput class".
38095 */ 32865 */
38096private pattern mustInRelationliteral_attribute_EEnumLiteral( 32866private pattern mustInstanceOfFunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
38097 problem:LogicProblem, interpretation:PartialInterpretation, 32867 Type.name(type,"FunctionalInput class");
38098 source: DefinedElement, target:DefinedElement) 32868 find directInstanceOf(problem,interpretation,element,type);
38099{ 32869}
32870private pattern scopeDisallowsNewFunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation) {
38100 find interpretation(problem,interpretation); 32871 find interpretation(problem,interpretation);
38101 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 32872 PartialInterpretation.scopes(interpretation,scope);
38102 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"literal attribute EEnumLiteral"); 32873 Scope.targetTypeInterpretation(scope,typeInterpretation);
38103 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 32874 Scope.maxNewElements(scope,0);
38104 BinaryElementRelationLink.param1(link,source); 32875 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
38105 BinaryElementRelationLink.param2(link,target); 32876 Type.name(type,"FunctionalInput class");
38106} 32877}
32878
38107/** 32879/**
38108 * Matcher for detecting tuples t where <>literal attribute EEnumLiteral(source,target) 32880 * An element may be an instance of type "FunctionalInput class".
38109 */ 32881 */
38110private pattern mayInRelationliteral_attribute_EEnumLiteral( 32882private pattern mayInstanceOfFunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
38111 problem:LogicProblem, interpretation:PartialInterpretation,
38112 source: DefinedElement, target:DefinedElement)
38113{ 32883{
38114 find interpretation(problem,interpretation); 32884 find interpretation(problem,interpretation);
38115 // The two endpoint of the link have to exist 32885 PartialInterpretation.newElements(interpretation,element);
38116 find mayExist(problem, interpretation, source); 32886 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
38117 find mayExist(problem, interpretation, target); 32887 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
38118 // Type consistency 32888 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
38119 find mayInstanceOfEEnumLiteral_class(problem,interpretation,source); 32889 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
38120 StringElement(target); 32890 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
38121 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 32891 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
38122 // the upper bound of the multiplicity should be considered. 32892 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
38123 numberOfExistingReferences == count find mustInRelationliteral_attribute_EEnumLiteral(problem,interpretation,source,_); 32893 neg find isPrimitive(element);
38124 check(numberOfExistingReferences < 1);
38125} or { 32894} or {
38126 find mustInRelationliteral_attribute_EEnumLiteral(problem,interpretation,source,target); 32895 find interpretation(problem,interpretation);
38127} 32896 PartialInterpretation.openWorldElements(interpretation,element);
32897 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
32898 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
32899 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
32900 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
32901 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
32902 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
32903 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
32904 neg find isPrimitive(element);
32905} or
32906{ find mustInstanceOfFunctionalInput_class(problem,interpretation,element); }
38128/** 32907/**
38129 * Matcher for detecting tuples t where []name attribute ENamedElement(source,target) 32908 * An element must be an instance of type "FunctionalOutput class".
38130 */ 32909 */
38131private pattern mustInRelationname_attribute_ENamedElement( 32910private pattern mustInstanceOfFunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
38132 problem:LogicProblem, interpretation:PartialInterpretation, 32911 Type.name(type,"FunctionalOutput class");
38133 source: DefinedElement, target:DefinedElement) 32912 find directInstanceOf(problem,interpretation,element,type);
38134{ 32913}
32914private pattern scopeDisallowsNewFunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation) {
38135 find interpretation(problem,interpretation); 32915 find interpretation(problem,interpretation);
38136 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 32916 PartialInterpretation.scopes(interpretation,scope);
38137 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"name attribute ENamedElement"); 32917 Scope.targetTypeInterpretation(scope,typeInterpretation);
38138 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 32918 Scope.maxNewElements(scope,0);
38139 BinaryElementRelationLink.param1(link,source); 32919 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
38140 BinaryElementRelationLink.param2(link,target); 32920 Type.name(type,"FunctionalOutput class");
38141} 32921}
32922
38142/** 32923/**
38143 * Matcher for detecting tuples t where <>name attribute ENamedElement(source,target) 32924 * An element may be an instance of type "FunctionalOutput class".
38144 */ 32925 */
38145private pattern mayInRelationname_attribute_ENamedElement( 32926private pattern mayInstanceOfFunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
38146 problem:LogicProblem, interpretation:PartialInterpretation,
38147 source: DefinedElement, target:DefinedElement)
38148{ 32927{
38149 find interpretation(problem,interpretation); 32928 find interpretation(problem,interpretation);
38150 // The two endpoint of the link have to exist 32929 PartialInterpretation.newElements(interpretation,element);
38151 find mayExist(problem, interpretation, source); 32930 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
38152 find mayExist(problem, interpretation, target); 32931 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
38153 // Type consistency 32932 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
38154 find mayInstanceOfENamedElement_class(problem,interpretation,source); 32933 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
38155 StringElement(target); 32934 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
38156 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 32935 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
38157 // the upper bound of the multiplicity should be considered. 32936 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
38158 numberOfExistingReferences == count find mustInRelationname_attribute_ENamedElement(problem,interpretation,source,_); 32937 neg find isPrimitive(element);
38159 check(numberOfExistingReferences < 1);
38160} or { 32938} or {
38161 find mustInRelationname_attribute_ENamedElement(problem,interpretation,source,target); 32939 find interpretation(problem,interpretation);
38162} 32940 PartialInterpretation.openWorldElements(interpretation,element);
32941 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
32942 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
32943 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
32944 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
32945 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
32946 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
32947 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
32948 neg find isPrimitive(element);
32949} or
32950{ find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); }
38163/** 32951/**
38164 * Matcher for detecting tuples t where []nsURI attribute EPackage(source,target) 32952 * An element must be an instance of type "FunctionalData class".
38165 */ 32953 */
38166private pattern mustInRelationnsURI_attribute_EPackage( 32954private pattern mustInstanceOfFunctionalData_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
38167 problem:LogicProblem, interpretation:PartialInterpretation, 32955 Type.name(type,"FunctionalData class");
38168 source: DefinedElement, target:DefinedElement) 32956 find directInstanceOf(problem,interpretation,element,type);
38169{ 32957}
32958private pattern scopeDisallowsNewFunctionalData_class(problem:LogicProblem, interpretation:PartialInterpretation) {
38170 find interpretation(problem,interpretation); 32959 find interpretation(problem,interpretation);
38171 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 32960 PartialInterpretation.scopes(interpretation,scope);
38172 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"nsURI attribute EPackage"); 32961 Scope.targetTypeInterpretation(scope,typeInterpretation);
38173 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 32962 Scope.maxNewElements(scope,0);
38174 BinaryElementRelationLink.param1(link,source); 32963 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
38175 BinaryElementRelationLink.param2(link,target); 32964 Type.name(type,"FunctionalData class");
38176} 32965}
32966
38177/** 32967/**
38178 * Matcher for detecting tuples t where <>nsURI attribute EPackage(source,target) 32968 * An element may be an instance of type "FunctionalData class".
38179 */ 32969 */
38180private pattern mayInRelationnsURI_attribute_EPackage( 32970private pattern mayInstanceOfFunctionalData_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
38181 problem:LogicProblem, interpretation:PartialInterpretation,
38182 source: DefinedElement, target:DefinedElement)
38183{ 32971{
38184 find interpretation(problem,interpretation); 32972 find interpretation(problem,interpretation);
38185 // The two endpoint of the link have to exist 32973 PartialInterpretation.newElements(interpretation,element);
38186 find mayExist(problem, interpretation, source); 32974 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
38187 find mayExist(problem, interpretation, target); 32975 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
38188 // Type consistency 32976 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
38189 find mayInstanceOfEPackage_class(problem,interpretation,source); 32977 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
38190 StringElement(target); 32978 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
38191 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 32979 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
38192 // the upper bound of the multiplicity should be considered. 32980 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
38193 numberOfExistingReferences == count find mustInRelationnsURI_attribute_EPackage(problem,interpretation,source,_); 32981 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
38194 check(numberOfExistingReferences < 1); 32982 neg find isPrimitive(element);
38195} or { 32983} or {
38196 find mustInRelationnsURI_attribute_EPackage(problem,interpretation,source,target); 32984 find interpretation(problem,interpretation);
38197} 32985 PartialInterpretation.openWorldElements(interpretation,element);
32986 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
32987 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
32988 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
32989 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
32990 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
32991 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
32992 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
32993 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
32994 neg find isPrimitive(element);
32995} or
32996{ find mustInstanceOfFunctionalData_class(problem,interpretation,element); }
38198/** 32997/**
38199 * Matcher for detecting tuples t where []nsPrefix attribute EPackage(source,target) 32998 * An element must be an instance of type "FunctionType enum".
38200 */ 32999 */
38201private pattern mustInRelationnsPrefix_attribute_EPackage( 33000private pattern mustInstanceOfFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
38202 problem:LogicProblem, interpretation:PartialInterpretation, 33001 Type.name(type,"FunctionType enum");
38203 source: DefinedElement, target:DefinedElement) 33002 find directInstanceOf(problem,interpretation,element,type);
38204{ 33003}
33004private pattern scopeDisallowsNewFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation) {
38205 find interpretation(problem,interpretation); 33005 find interpretation(problem,interpretation);
38206 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 33006 PartialInterpretation.scopes(interpretation,scope);
38207 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"nsPrefix attribute EPackage"); 33007 Scope.targetTypeInterpretation(scope,typeInterpretation);
38208 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 33008 Scope.maxNewElements(scope,0);
38209 BinaryElementRelationLink.param1(link,source); 33009 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
38210 BinaryElementRelationLink.param2(link,target); 33010 Type.name(type,"FunctionType enum");
38211} 33011}
33012
38212/** 33013/**
38213 * Matcher for detecting tuples t where <>nsPrefix attribute EPackage(source,target) 33014 * An element may be an instance of type "FunctionType enum".
38214 */ 33015 */
38215private pattern mayInRelationnsPrefix_attribute_EPackage( 33016private pattern mayInstanceOfFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
38216 problem:LogicProblem, interpretation:PartialInterpretation, 33017{ find mustInstanceOfFunctionType_enum(problem,interpretation,element); }
38217 source: DefinedElement, target:DefinedElement) 33018
38218{ 33019//////////
38219 find interpretation(problem,interpretation); 33020// 1.2 Relation Declaration Indexers
38220 // The two endpoint of the link have to exist 33021//////////
38221 find mayExist(problem, interpretation, source);
38222 find mayExist(problem, interpretation, target);
38223 // Type consistency
38224 find mayInstanceOfEPackage_class(problem,interpretation,source);
38225 StringElement(target);
38226 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
38227 // the upper bound of the multiplicity should be considered.
38228 numberOfExistingReferences == count find mustInRelationnsPrefix_attribute_EPackage(problem,interpretation,source,_);
38229 check(numberOfExistingReferences < 1);
38230} or {
38231 find mustInRelationnsPrefix_attribute_EPackage(problem,interpretation,source,target);
38232}
38233/** 33022/**
38234 * Matcher for detecting tuples t where []containment attribute EReference(source,target) 33023 * Matcher for detecting tuples t where []interface reference FunctionalElement(source,target)
38235 */ 33024 */
38236private pattern mustInRelationcontainment_attribute_EReference( 33025private pattern mustInRelationinterface_reference_FunctionalElement(
38237 problem:LogicProblem, interpretation:PartialInterpretation, 33026 problem:LogicProblem, interpretation:PartialInterpretation,
38238 source: DefinedElement, target:DefinedElement) 33027 source: DefinedElement, target:DefinedElement)
38239{ 33028{
38240 find interpretation(problem,interpretation); 33029 find interpretation(problem,interpretation);
38241 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 33030 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
38242 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"containment attribute EReference"); 33031 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"interface reference FunctionalElement");
38243 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 33032 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
38244 BinaryElementRelationLink.param1(link,source); 33033 BinaryElementRelationLink.param1(link,source);
38245 BinaryElementRelationLink.param2(link,target); 33034 BinaryElementRelationLink.param2(link,target);
38246} 33035}
38247/** 33036/**
38248 * Matcher for detecting tuples t where <>containment attribute EReference(source,target) 33037 * Matcher for detecting tuples t where <>interface reference FunctionalElement(source,target)
38249 */ 33038 */
38250private pattern mayInRelationcontainment_attribute_EReference( 33039private pattern mayInRelationinterface_reference_FunctionalElement(
38251 problem:LogicProblem, interpretation:PartialInterpretation, 33040 problem:LogicProblem, interpretation:PartialInterpretation,
38252 source: DefinedElement, target:DefinedElement) 33041 source: DefinedElement, target:DefinedElement)
38253{ 33042{
@@ -38256,33 +33045,42 @@ private pattern mayInRelationcontainment_attribute_EReference(
38256 find mayExist(problem, interpretation, source); 33045 find mayExist(problem, interpretation, source);
38257 find mayExist(problem, interpretation, target); 33046 find mayExist(problem, interpretation, target);
38258 // Type consistency 33047 // Type consistency
38259 find mayInstanceOfEReference_class(problem,interpretation,source); 33048 find mayInstanceOfFunctionalElement_class(problem,interpretation,source);
38260 BooleanElement(target); 33049 find mayInstanceOfFunctionalInterface_class(problem,interpretation,target);
38261 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 33050 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
38262 // the upper bound of the multiplicity should be considered. 33051 // the upper bound of the multiplicity should be considered.
38263 numberOfExistingReferences == count find mustInRelationcontainment_attribute_EReference(problem,interpretation,source,_); 33052 numberOfExistingReferences == count find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,source,_);
38264 check(numberOfExistingReferences < 1); 33053 check(numberOfExistingReferences < 1);
33054 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
33055 // the upper bound of the opposite reference multiplicity should be considered.
33056 numberOfExistingOppositeReferences == count find mustInRelationelement_reference_FunctionalInterface(problem,interpretation,target,_);
33057 check(numberOfExistingOppositeReferences < 1);
33058 // The reference is containment, then a new reference cannot be create if:
33059 // 1. Multiple parents
33060 neg find mustContains4(problem,interpretation,_,target);
33061 // 2. Circle in the containment hierarchy
33062 neg find mustTransitiveContains(source,target);
38265} or { 33063} or {
38266 find mustInRelationcontainment_attribute_EReference(problem,interpretation,source,target); 33064 find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,source,target);
38267} 33065}
38268/** 33066/**
38269 * Matcher for detecting tuples t where []container attribute EReference(source,target) 33067 * Matcher for detecting tuples t where []model reference FunctionalElement(source,target)
38270 */ 33068 */
38271private pattern mustInRelationcontainer_attribute_EReference( 33069private pattern mustInRelationmodel_reference_FunctionalElement(
38272 problem:LogicProblem, interpretation:PartialInterpretation, 33070 problem:LogicProblem, interpretation:PartialInterpretation,
38273 source: DefinedElement, target:DefinedElement) 33071 source: DefinedElement, target:DefinedElement)
38274{ 33072{
38275 find interpretation(problem,interpretation); 33073 find interpretation(problem,interpretation);
38276 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 33074 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
38277 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"container attribute EReference"); 33075 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement");
38278 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 33076 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
38279 BinaryElementRelationLink.param1(link,source); 33077 BinaryElementRelationLink.param1(link,source);
38280 BinaryElementRelationLink.param2(link,target); 33078 BinaryElementRelationLink.param2(link,target);
38281} 33079}
38282/** 33080/**
38283 * Matcher for detecting tuples t where <>container attribute EReference(source,target) 33081 * Matcher for detecting tuples t where <>model reference FunctionalElement(source,target)
38284 */ 33082 */
38285private pattern mayInRelationcontainer_attribute_EReference( 33083private pattern mayInRelationmodel_reference_FunctionalElement(
38286 problem:LogicProblem, interpretation:PartialInterpretation, 33084 problem:LogicProblem, interpretation:PartialInterpretation,
38287 source: DefinedElement, target:DefinedElement) 33085 source: DefinedElement, target:DefinedElement)
38288{ 33086{
@@ -38291,33 +33089,33 @@ private pattern mayInRelationcontainer_attribute_EReference(
38291 find mayExist(problem, interpretation, source); 33089 find mayExist(problem, interpretation, source);
38292 find mayExist(problem, interpretation, target); 33090 find mayExist(problem, interpretation, target);
38293 // Type consistency 33091 // Type consistency
38294 find mayInstanceOfEReference_class(problem,interpretation,source); 33092 find mayInstanceOfFunctionalElement_class(problem,interpretation,source);
38295 BooleanElement(target); 33093 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,target);
38296 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 33094 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
38297 // the upper bound of the multiplicity should be considered. 33095 // the upper bound of the multiplicity should be considered.
38298 numberOfExistingReferences == count find mustInRelationcontainer_attribute_EReference(problem,interpretation,source,_); 33096 numberOfExistingReferences == count find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,source,_);
38299 check(numberOfExistingReferences < 1); 33097 check(numberOfExistingReferences < 1);
38300} or { 33098} or {
38301 find mustInRelationcontainer_attribute_EReference(problem,interpretation,source,target); 33099 find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,source,target);
38302} 33100}
38303/** 33101/**
38304 * Matcher for detecting tuples t where []resolveProxies attribute EReference(source,target) 33102 * Matcher for detecting tuples t where []parent reference FunctionalElement(source,target)
38305 */ 33103 */
38306private pattern mustInRelationresolveProxies_attribute_EReference( 33104private pattern mustInRelationparent_reference_FunctionalElement(
38307 problem:LogicProblem, interpretation:PartialInterpretation, 33105 problem:LogicProblem, interpretation:PartialInterpretation,
38308 source: DefinedElement, target:DefinedElement) 33106 source: DefinedElement, target:DefinedElement)
38309{ 33107{
38310 find interpretation(problem,interpretation); 33108 find interpretation(problem,interpretation);
38311 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 33109 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
38312 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"resolveProxies attribute EReference"); 33110 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"parent reference FunctionalElement");
38313 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 33111 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
38314 BinaryElementRelationLink.param1(link,source); 33112 BinaryElementRelationLink.param1(link,source);
38315 BinaryElementRelationLink.param2(link,target); 33113 BinaryElementRelationLink.param2(link,target);
38316} 33114}
38317/** 33115/**
38318 * Matcher for detecting tuples t where <>resolveProxies attribute EReference(source,target) 33116 * Matcher for detecting tuples t where <>parent reference FunctionalElement(source,target)
38319 */ 33117 */
38320private pattern mayInRelationresolveProxies_attribute_EReference( 33118private pattern mayInRelationparent_reference_FunctionalElement(
38321 problem:LogicProblem, interpretation:PartialInterpretation, 33119 problem:LogicProblem, interpretation:PartialInterpretation,
38322 source: DefinedElement, target:DefinedElement) 33120 source: DefinedElement, target:DefinedElement)
38323{ 33121{
@@ -38326,33 +33124,38 @@ private pattern mayInRelationresolveProxies_attribute_EReference(
38326 find mayExist(problem, interpretation, source); 33124 find mayExist(problem, interpretation, source);
38327 find mayExist(problem, interpretation, target); 33125 find mayExist(problem, interpretation, target);
38328 // Type consistency 33126 // Type consistency
38329 find mayInstanceOfEReference_class(problem,interpretation,source); 33127 find mayInstanceOfFunctionalElement_class(problem,interpretation,source);
38330 BooleanElement(target); 33128 find mayInstanceOfFunction_class(problem,interpretation,target);
38331 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 33129 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
38332 // the upper bound of the multiplicity should be considered. 33130 // the upper bound of the multiplicity should be considered.
38333 numberOfExistingReferences == count find mustInRelationresolveProxies_attribute_EReference(problem,interpretation,source,_); 33131 numberOfExistingReferences == count find mustInRelationparent_reference_FunctionalElement(problem,interpretation,source,_);
38334 check(numberOfExistingReferences < 1); 33132 check(numberOfExistingReferences < 1);
33133 // The eOpposite of the reference is containment, then a referene cannot be created if
33134 // 1. Multiple parents
33135 neg find mustContains4(problem,interpretation,source,_);
33136 // 2. Circle in the containment hierarchy
33137 neg find mustTransitiveContains(source,target);
38335} or { 33138} or {
38336 find mustInRelationresolveProxies_attribute_EReference(problem,interpretation,source,target); 33139 find mustInRelationparent_reference_FunctionalElement(problem,interpretation,source,target);
38337} 33140}
38338/** 33141/**
38339 * Matcher for detecting tuples t where []changeable attribute EStructuralFeature(source,target) 33142 * Matcher for detecting tuples t where []rootElements reference FunctionalArchitectureModel(source,target)
38340 */ 33143 */
38341private pattern mustInRelationchangeable_attribute_EStructuralFeature( 33144private pattern mustInRelationrootElements_reference_FunctionalArchitectureModel(
38342 problem:LogicProblem, interpretation:PartialInterpretation, 33145 problem:LogicProblem, interpretation:PartialInterpretation,
38343 source: DefinedElement, target:DefinedElement) 33146 source: DefinedElement, target:DefinedElement)
38344{ 33147{
38345 find interpretation(problem,interpretation); 33148 find interpretation(problem,interpretation);
38346 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 33149 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
38347 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"changeable attribute EStructuralFeature"); 33150 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"rootElements reference FunctionalArchitectureModel");
38348 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 33151 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
38349 BinaryElementRelationLink.param1(link,source); 33152 BinaryElementRelationLink.param1(link,source);
38350 BinaryElementRelationLink.param2(link,target); 33153 BinaryElementRelationLink.param2(link,target);
38351} 33154}
38352/** 33155/**
38353 * Matcher for detecting tuples t where <>changeable attribute EStructuralFeature(source,target) 33156 * Matcher for detecting tuples t where <>rootElements reference FunctionalArchitectureModel(source,target)
38354 */ 33157 */
38355private pattern mayInRelationchangeable_attribute_EStructuralFeature( 33158private pattern mayInRelationrootElements_reference_FunctionalArchitectureModel(
38356 problem:LogicProblem, interpretation:PartialInterpretation, 33159 problem:LogicProblem, interpretation:PartialInterpretation,
38357 source: DefinedElement, target:DefinedElement) 33160 source: DefinedElement, target:DefinedElement)
38358{ 33161{
@@ -38361,33 +33164,34 @@ private pattern mayInRelationchangeable_attribute_EStructuralFeature(
38361 find mayExist(problem, interpretation, source); 33164 find mayExist(problem, interpretation, source);
38362 find mayExist(problem, interpretation, target); 33165 find mayExist(problem, interpretation, target);
38363 // Type consistency 33166 // Type consistency
38364 find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); 33167 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,source);
38365 BooleanElement(target); 33168 find mayInstanceOfFunctionalElement_class(problem,interpretation,target);
38366 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 33169 // The reference is containment, then a new reference cannot be create if:
38367 // the upper bound of the multiplicity should be considered. 33170 // 1. Multiple parents
38368 numberOfExistingReferences == count find mustInRelationchangeable_attribute_EStructuralFeature(problem,interpretation,source,_); 33171 neg find mustContains4(problem,interpretation,_,target);
38369 check(numberOfExistingReferences < 1); 33172 // 2. Circle in the containment hierarchy
33173 neg find mustTransitiveContains(source,target);
38370} or { 33174} or {
38371 find mustInRelationchangeable_attribute_EStructuralFeature(problem,interpretation,source,target); 33175 find mustInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,source,target);
38372} 33176}
38373/** 33177/**
38374 * Matcher for detecting tuples t where []volatile attribute EStructuralFeature(source,target) 33178 * Matcher for detecting tuples t where []subElements reference Function(source,target)
38375 */ 33179 */
38376private pattern mustInRelationvolatile_attribute_EStructuralFeature( 33180private pattern mustInRelationsubElements_reference_Function(
38377 problem:LogicProblem, interpretation:PartialInterpretation, 33181 problem:LogicProblem, interpretation:PartialInterpretation,
38378 source: DefinedElement, target:DefinedElement) 33182 source: DefinedElement, target:DefinedElement)
38379{ 33183{
38380 find interpretation(problem,interpretation); 33184 find interpretation(problem,interpretation);
38381 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 33185 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
38382 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"volatile attribute EStructuralFeature"); 33186 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"subElements reference Function");
38383 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 33187 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
38384 BinaryElementRelationLink.param1(link,source); 33188 BinaryElementRelationLink.param1(link,source);
38385 BinaryElementRelationLink.param2(link,target); 33189 BinaryElementRelationLink.param2(link,target);
38386} 33190}
38387/** 33191/**
38388 * Matcher for detecting tuples t where <>volatile attribute EStructuralFeature(source,target) 33192 * Matcher for detecting tuples t where <>subElements reference Function(source,target)
38389 */ 33193 */
38390private pattern mayInRelationvolatile_attribute_EStructuralFeature( 33194private pattern mayInRelationsubElements_reference_Function(
38391 problem:LogicProblem, interpretation:PartialInterpretation, 33195 problem:LogicProblem, interpretation:PartialInterpretation,
38392 source: DefinedElement, target:DefinedElement) 33196 source: DefinedElement, target:DefinedElement)
38393{ 33197{
@@ -38396,33 +33200,38 @@ private pattern mayInRelationvolatile_attribute_EStructuralFeature(
38396 find mayExist(problem, interpretation, source); 33200 find mayExist(problem, interpretation, source);
38397 find mayExist(problem, interpretation, target); 33201 find mayExist(problem, interpretation, target);
38398 // Type consistency 33202 // Type consistency
38399 find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); 33203 find mayInstanceOfFunction_class(problem,interpretation,source);
38400 BooleanElement(target); 33204 find mayInstanceOfFunctionalElement_class(problem,interpretation,target);
38401 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 33205 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
38402 // the upper bound of the multiplicity should be considered. 33206 // the upper bound of the opposite reference multiplicity should be considered.
38403 numberOfExistingReferences == count find mustInRelationvolatile_attribute_EStructuralFeature(problem,interpretation,source,_); 33207 numberOfExistingOppositeReferences == count find mustInRelationparent_reference_FunctionalElement(problem,interpretation,target,_);
38404 check(numberOfExistingReferences < 1); 33208 check(numberOfExistingOppositeReferences < 1);
33209 // The reference is containment, then a new reference cannot be create if:
33210 // 1. Multiple parents
33211 neg find mustContains4(problem,interpretation,_,target);
33212 // 2. Circle in the containment hierarchy
33213 neg find mustTransitiveContains(source,target);
38405} or { 33214} or {
38406 find mustInRelationvolatile_attribute_EStructuralFeature(problem,interpretation,source,target); 33215 find mustInRelationsubElements_reference_Function(problem,interpretation,source,target);
38407} 33216}
38408/** 33217/**
38409 * Matcher for detecting tuples t where []transient attribute EStructuralFeature(source,target) 33218 * Matcher for detecting tuples t where []data reference FAMTerminator(source,target)
38410 */ 33219 */
38411private pattern mustInRelationtransient_attribute_EStructuralFeature( 33220private pattern mustInRelationdata_reference_FAMTerminator(
38412 problem:LogicProblem, interpretation:PartialInterpretation, 33221 problem:LogicProblem, interpretation:PartialInterpretation,
38413 source: DefinedElement, target:DefinedElement) 33222 source: DefinedElement, target:DefinedElement)
38414{ 33223{
38415 find interpretation(problem,interpretation); 33224 find interpretation(problem,interpretation);
38416 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 33225 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
38417 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"transient attribute EStructuralFeature"); 33226 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"data reference FAMTerminator");
38418 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 33227 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
38419 BinaryElementRelationLink.param1(link,source); 33228 BinaryElementRelationLink.param1(link,source);
38420 BinaryElementRelationLink.param2(link,target); 33229 BinaryElementRelationLink.param2(link,target);
38421} 33230}
38422/** 33231/**
38423 * Matcher for detecting tuples t where <>transient attribute EStructuralFeature(source,target) 33232 * Matcher for detecting tuples t where <>data reference FAMTerminator(source,target)
38424 */ 33233 */
38425private pattern mayInRelationtransient_attribute_EStructuralFeature( 33234private pattern mayInRelationdata_reference_FAMTerminator(
38426 problem:LogicProblem, interpretation:PartialInterpretation, 33235 problem:LogicProblem, interpretation:PartialInterpretation,
38427 source: DefinedElement, target:DefinedElement) 33236 source: DefinedElement, target:DefinedElement)
38428{ 33237{
@@ -38431,33 +33240,42 @@ private pattern mayInRelationtransient_attribute_EStructuralFeature(
38431 find mayExist(problem, interpretation, source); 33240 find mayExist(problem, interpretation, source);
38432 find mayExist(problem, interpretation, target); 33241 find mayExist(problem, interpretation, target);
38433 // Type consistency 33242 // Type consistency
38434 find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); 33243 find mayInstanceOfFAMTerminator_class(problem,interpretation,source);
38435 BooleanElement(target); 33244 find mayInstanceOfFunctionalData_class(problem,interpretation,target);
38436 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 33245 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
38437 // the upper bound of the multiplicity should be considered. 33246 // the upper bound of the multiplicity should be considered.
38438 numberOfExistingReferences == count find mustInRelationtransient_attribute_EStructuralFeature(problem,interpretation,source,_); 33247 numberOfExistingReferences == count find mustInRelationdata_reference_FAMTerminator(problem,interpretation,source,_);
38439 check(numberOfExistingReferences < 1); 33248 check(numberOfExistingReferences < 1);
33249 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
33250 // the upper bound of the opposite reference multiplicity should be considered.
33251 numberOfExistingOppositeReferences == count find mustInRelationterminator_reference_FunctionalData(problem,interpretation,target,_);
33252 check(numberOfExistingOppositeReferences < 1);
33253 // The eOpposite of the reference is containment, then a referene cannot be created if
33254 // 1. Multiple parents
33255 neg find mustContains4(problem,interpretation,source,_);
33256 // 2. Circle in the containment hierarchy
33257 neg find mustTransitiveContains(source,target);
38440} or { 33258} or {
38441 find mustInRelationtransient_attribute_EStructuralFeature(problem,interpretation,source,target); 33259 find mustInRelationdata_reference_FAMTerminator(problem,interpretation,source,target);
38442} 33260}
38443/** 33261/**
38444 * Matcher for detecting tuples t where []defaultValueLiteral attribute EStructuralFeature(source,target) 33262 * Matcher for detecting tuples t where []from reference InformationLink(source,target)
38445 */ 33263 */
38446private pattern mustInRelationdefaultValueLiteral_attribute_EStructuralFeature( 33264private pattern mustInRelationfrom_reference_InformationLink(
38447 problem:LogicProblem, interpretation:PartialInterpretation, 33265 problem:LogicProblem, interpretation:PartialInterpretation,
38448 source: DefinedElement, target:DefinedElement) 33266 source: DefinedElement, target:DefinedElement)
38449{ 33267{
38450 find interpretation(problem,interpretation); 33268 find interpretation(problem,interpretation);
38451 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 33269 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
38452 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"defaultValueLiteral attribute EStructuralFeature"); 33270 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"from reference InformationLink");
38453 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 33271 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
38454 BinaryElementRelationLink.param1(link,source); 33272 BinaryElementRelationLink.param1(link,source);
38455 BinaryElementRelationLink.param2(link,target); 33273 BinaryElementRelationLink.param2(link,target);
38456} 33274}
38457/** 33275/**
38458 * Matcher for detecting tuples t where <>defaultValueLiteral attribute EStructuralFeature(source,target) 33276 * Matcher for detecting tuples t where <>from reference InformationLink(source,target)
38459 */ 33277 */
38460private pattern mayInRelationdefaultValueLiteral_attribute_EStructuralFeature( 33278private pattern mayInRelationfrom_reference_InformationLink(
38461 problem:LogicProblem, interpretation:PartialInterpretation, 33279 problem:LogicProblem, interpretation:PartialInterpretation,
38462 source: DefinedElement, target:DefinedElement) 33280 source: DefinedElement, target:DefinedElement)
38463{ 33281{
@@ -38466,33 +33284,38 @@ private pattern mayInRelationdefaultValueLiteral_attribute_EStructuralFeature(
38466 find mayExist(problem, interpretation, source); 33284 find mayExist(problem, interpretation, source);
38467 find mayExist(problem, interpretation, target); 33285 find mayExist(problem, interpretation, target);
38468 // Type consistency 33286 // Type consistency
38469 find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); 33287 find mayInstanceOfInformationLink_class(problem,interpretation,source);
38470 StringElement(target); 33288 find mayInstanceOfFunctionalOutput_class(problem,interpretation,target);
38471 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 33289 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
38472 // the upper bound of the multiplicity should be considered. 33290 // the upper bound of the multiplicity should be considered.
38473 numberOfExistingReferences == count find mustInRelationdefaultValueLiteral_attribute_EStructuralFeature(problem,interpretation,source,_); 33291 numberOfExistingReferences == count find mustInRelationfrom_reference_InformationLink(problem,interpretation,source,_);
38474 check(numberOfExistingReferences < 1); 33292 check(numberOfExistingReferences < 1);
33293 // The eOpposite of the reference is containment, then a referene cannot be created if
33294 // 1. Multiple parents
33295 neg find mustContains4(problem,interpretation,source,_);
33296 // 2. Circle in the containment hierarchy
33297 neg find mustTransitiveContains(source,target);
38475} or { 33298} or {
38476 find mustInRelationdefaultValueLiteral_attribute_EStructuralFeature(problem,interpretation,source,target); 33299 find mustInRelationfrom_reference_InformationLink(problem,interpretation,source,target);
38477} 33300}
38478/** 33301/**
38479 * Matcher for detecting tuples t where []unsettable attribute EStructuralFeature(source,target) 33302 * Matcher for detecting tuples t where []to reference InformationLink(source,target)
38480 */ 33303 */
38481private pattern mustInRelationunsettable_attribute_EStructuralFeature( 33304private pattern mustInRelationto_reference_InformationLink(
38482 problem:LogicProblem, interpretation:PartialInterpretation, 33305 problem:LogicProblem, interpretation:PartialInterpretation,
38483 source: DefinedElement, target:DefinedElement) 33306 source: DefinedElement, target:DefinedElement)
38484{ 33307{
38485 find interpretation(problem,interpretation); 33308 find interpretation(problem,interpretation);
38486 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 33309 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
38487 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"unsettable attribute EStructuralFeature"); 33310 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"to reference InformationLink");
38488 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 33311 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
38489 BinaryElementRelationLink.param1(link,source); 33312 BinaryElementRelationLink.param1(link,source);
38490 BinaryElementRelationLink.param2(link,target); 33313 BinaryElementRelationLink.param2(link,target);
38491} 33314}
38492/** 33315/**
38493 * Matcher for detecting tuples t where <>unsettable attribute EStructuralFeature(source,target) 33316 * Matcher for detecting tuples t where <>to reference InformationLink(source,target)
38494 */ 33317 */
38495private pattern mayInRelationunsettable_attribute_EStructuralFeature( 33318private pattern mayInRelationto_reference_InformationLink(
38496 problem:LogicProblem, interpretation:PartialInterpretation, 33319 problem:LogicProblem, interpretation:PartialInterpretation,
38497 source: DefinedElement, target:DefinedElement) 33320 source: DefinedElement, target:DefinedElement)
38498{ 33321{
@@ -38501,33 +33324,33 @@ private pattern mayInRelationunsettable_attribute_EStructuralFeature(
38501 find mayExist(problem, interpretation, source); 33324 find mayExist(problem, interpretation, source);
38502 find mayExist(problem, interpretation, target); 33325 find mayExist(problem, interpretation, target);
38503 // Type consistency 33326 // Type consistency
38504 find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); 33327 find mayInstanceOfInformationLink_class(problem,interpretation,source);
38505 BooleanElement(target); 33328 find mayInstanceOfFunctionalInput_class(problem,interpretation,target);
38506 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 33329 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
38507 // the upper bound of the multiplicity should be considered. 33330 // the upper bound of the multiplicity should be considered.
38508 numberOfExistingReferences == count find mustInRelationunsettable_attribute_EStructuralFeature(problem,interpretation,source,_); 33331 numberOfExistingReferences == count find mustInRelationto_reference_InformationLink(problem,interpretation,source,_);
38509 check(numberOfExistingReferences < 1); 33332 check(numberOfExistingReferences < 1);
38510} or { 33333} or {
38511 find mustInRelationunsettable_attribute_EStructuralFeature(problem,interpretation,source,target); 33334 find mustInRelationto_reference_InformationLink(problem,interpretation,source,target);
38512} 33335}
38513/** 33336/**
38514 * Matcher for detecting tuples t where []derived attribute EStructuralFeature(source,target) 33337 * Matcher for detecting tuples t where []data reference FunctionalInterface(source,target)
38515 */ 33338 */
38516private pattern mustInRelationderived_attribute_EStructuralFeature( 33339private pattern mustInRelationdata_reference_FunctionalInterface(
38517 problem:LogicProblem, interpretation:PartialInterpretation, 33340 problem:LogicProblem, interpretation:PartialInterpretation,
38518 source: DefinedElement, target:DefinedElement) 33341 source: DefinedElement, target:DefinedElement)
38519{ 33342{
38520 find interpretation(problem,interpretation); 33343 find interpretation(problem,interpretation);
38521 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 33344 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
38522 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"derived attribute EStructuralFeature"); 33345 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"data reference FunctionalInterface");
38523 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 33346 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
38524 BinaryElementRelationLink.param1(link,source); 33347 BinaryElementRelationLink.param1(link,source);
38525 BinaryElementRelationLink.param2(link,target); 33348 BinaryElementRelationLink.param2(link,target);
38526} 33349}
38527/** 33350/**
38528 * Matcher for detecting tuples t where <>derived attribute EStructuralFeature(source,target) 33351 * Matcher for detecting tuples t where <>data reference FunctionalInterface(source,target)
38529 */ 33352 */
38530private pattern mayInRelationderived_attribute_EStructuralFeature( 33353private pattern mayInRelationdata_reference_FunctionalInterface(
38531 problem:LogicProblem, interpretation:PartialInterpretation, 33354 problem:LogicProblem, interpretation:PartialInterpretation,
38532 source: DefinedElement, target:DefinedElement) 33355 source: DefinedElement, target:DefinedElement)
38533{ 33356{
@@ -38536,33 +33359,38 @@ private pattern mayInRelationderived_attribute_EStructuralFeature(
38536 find mayExist(problem, interpretation, source); 33359 find mayExist(problem, interpretation, source);
38537 find mayExist(problem, interpretation, target); 33360 find mayExist(problem, interpretation, target);
38538 // Type consistency 33361 // Type consistency
38539 find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); 33362 find mayInstanceOfFunctionalInterface_class(problem,interpretation,source);
38540 BooleanElement(target); 33363 find mayInstanceOfFunctionalData_class(problem,interpretation,target);
38541 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 33364 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
38542 // the upper bound of the multiplicity should be considered. 33365 // the upper bound of the opposite reference multiplicity should be considered.
38543 numberOfExistingReferences == count find mustInRelationderived_attribute_EStructuralFeature(problem,interpretation,source,_); 33366 numberOfExistingOppositeReferences == count find mustInRelationinterface_reference_FunctionalData(problem,interpretation,target,_);
38544 check(numberOfExistingReferences < 1); 33367 check(numberOfExistingOppositeReferences < 1);
33368 // The reference is containment, then a new reference cannot be create if:
33369 // 1. Multiple parents
33370 neg find mustContains4(problem,interpretation,_,target);
33371 // 2. Circle in the containment hierarchy
33372 neg find mustTransitiveContains(source,target);
38545} or { 33373} or {
38546 find mustInRelationderived_attribute_EStructuralFeature(problem,interpretation,source,target); 33374 find mustInRelationdata_reference_FunctionalInterface(problem,interpretation,source,target);
38547} 33375}
38548/** 33376/**
38549 * Matcher for detecting tuples t where []ordered attribute ETypedElement(source,target) 33377 * Matcher for detecting tuples t where []element reference FunctionalInterface(source,target)
38550 */ 33378 */
38551private pattern mustInRelationordered_attribute_ETypedElement( 33379private pattern mustInRelationelement_reference_FunctionalInterface(
38552 problem:LogicProblem, interpretation:PartialInterpretation, 33380 problem:LogicProblem, interpretation:PartialInterpretation,
38553 source: DefinedElement, target:DefinedElement) 33381 source: DefinedElement, target:DefinedElement)
38554{ 33382{
38555 find interpretation(problem,interpretation); 33383 find interpretation(problem,interpretation);
38556 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 33384 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
38557 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"ordered attribute ETypedElement"); 33385 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"element reference FunctionalInterface");
38558 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 33386 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
38559 BinaryElementRelationLink.param1(link,source); 33387 BinaryElementRelationLink.param1(link,source);
38560 BinaryElementRelationLink.param2(link,target); 33388 BinaryElementRelationLink.param2(link,target);
38561} 33389}
38562/** 33390/**
38563 * Matcher for detecting tuples t where <>ordered attribute ETypedElement(source,target) 33391 * Matcher for detecting tuples t where <>element reference FunctionalInterface(source,target)
38564 */ 33392 */
38565private pattern mayInRelationordered_attribute_ETypedElement( 33393private pattern mayInRelationelement_reference_FunctionalInterface(
38566 problem:LogicProblem, interpretation:PartialInterpretation, 33394 problem:LogicProblem, interpretation:PartialInterpretation,
38567 source: DefinedElement, target:DefinedElement) 33395 source: DefinedElement, target:DefinedElement)
38568{ 33396{
@@ -38571,33 +33399,42 @@ private pattern mayInRelationordered_attribute_ETypedElement(
38571 find mayExist(problem, interpretation, source); 33399 find mayExist(problem, interpretation, source);
38572 find mayExist(problem, interpretation, target); 33400 find mayExist(problem, interpretation, target);
38573 // Type consistency 33401 // Type consistency
38574 find mayInstanceOfETypedElement_class(problem,interpretation,source); 33402 find mayInstanceOfFunctionalInterface_class(problem,interpretation,source);
38575 BooleanElement(target); 33403 find mayInstanceOfFunctionalElement_class(problem,interpretation,target);
38576 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 33404 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
38577 // the upper bound of the multiplicity should be considered. 33405 // the upper bound of the multiplicity should be considered.
38578 numberOfExistingReferences == count find mustInRelationordered_attribute_ETypedElement(problem,interpretation,source,_); 33406 numberOfExistingReferences == count find mustInRelationelement_reference_FunctionalInterface(problem,interpretation,source,_);
38579 check(numberOfExistingReferences < 1); 33407 check(numberOfExistingReferences < 1);
33408 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
33409 // the upper bound of the opposite reference multiplicity should be considered.
33410 numberOfExistingOppositeReferences == count find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,target,_);
33411 check(numberOfExistingOppositeReferences < 1);
33412 // The eOpposite of the reference is containment, then a referene cannot be created if
33413 // 1. Multiple parents
33414 neg find mustContains4(problem,interpretation,source,_);
33415 // 2. Circle in the containment hierarchy
33416 neg find mustTransitiveContains(source,target);
38580} or { 33417} or {
38581 find mustInRelationordered_attribute_ETypedElement(problem,interpretation,source,target); 33418 find mustInRelationelement_reference_FunctionalInterface(problem,interpretation,source,target);
38582} 33419}
38583/** 33420/**
38584 * Matcher for detecting tuples t where []unique attribute ETypedElement(source,target) 33421 * Matcher for detecting tuples t where []IncomingLinks reference FunctionalInput(source,target)
38585 */ 33422 */
38586private pattern mustInRelationunique_attribute_ETypedElement( 33423private pattern mustInRelationIncomingLinks_reference_FunctionalInput(
38587 problem:LogicProblem, interpretation:PartialInterpretation, 33424 problem:LogicProblem, interpretation:PartialInterpretation,
38588 source: DefinedElement, target:DefinedElement) 33425 source: DefinedElement, target:DefinedElement)
38589{ 33426{
38590 find interpretation(problem,interpretation); 33427 find interpretation(problem,interpretation);
38591 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 33428 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
38592 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"unique attribute ETypedElement"); 33429 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"IncomingLinks reference FunctionalInput");
38593 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 33430 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
38594 BinaryElementRelationLink.param1(link,source); 33431 BinaryElementRelationLink.param1(link,source);
38595 BinaryElementRelationLink.param2(link,target); 33432 BinaryElementRelationLink.param2(link,target);
38596} 33433}
38597/** 33434/**
38598 * Matcher for detecting tuples t where <>unique attribute ETypedElement(source,target) 33435 * Matcher for detecting tuples t where <>IncomingLinks reference FunctionalInput(source,target)
38599 */ 33436 */
38600private pattern mayInRelationunique_attribute_ETypedElement( 33437private pattern mayInRelationIncomingLinks_reference_FunctionalInput(
38601 problem:LogicProblem, interpretation:PartialInterpretation, 33438 problem:LogicProblem, interpretation:PartialInterpretation,
38602 source: DefinedElement, target:DefinedElement) 33439 source: DefinedElement, target:DefinedElement)
38603{ 33440{
@@ -38606,33 +33443,33 @@ private pattern mayInRelationunique_attribute_ETypedElement(
38606 find mayExist(problem, interpretation, source); 33443 find mayExist(problem, interpretation, source);
38607 find mayExist(problem, interpretation, target); 33444 find mayExist(problem, interpretation, target);
38608 // Type consistency 33445 // Type consistency
38609 find mayInstanceOfETypedElement_class(problem,interpretation,source); 33446 find mayInstanceOfFunctionalInput_class(problem,interpretation,source);
38610 BooleanElement(target); 33447 find mayInstanceOfInformationLink_class(problem,interpretation,target);
38611 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 33448 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
38612 // the upper bound of the multiplicity should be considered. 33449 // the upper bound of the opposite reference multiplicity should be considered.
38613 numberOfExistingReferences == count find mustInRelationunique_attribute_ETypedElement(problem,interpretation,source,_); 33450 numberOfExistingOppositeReferences == count find mustInRelationto_reference_InformationLink(problem,interpretation,target,_);
38614 check(numberOfExistingReferences < 1); 33451 check(numberOfExistingOppositeReferences < 1);
38615} or { 33452} or {
38616 find mustInRelationunique_attribute_ETypedElement(problem,interpretation,source,target); 33453 find mustInRelationIncomingLinks_reference_FunctionalInput(problem,interpretation,source,target);
38617} 33454}
38618/** 33455/**
38619 * Matcher for detecting tuples t where []lowerBound attribute ETypedElement(source,target) 33456 * Matcher for detecting tuples t where []outgoingLinks reference FunctionalOutput(source,target)
38620 */ 33457 */
38621private pattern mustInRelationlowerBound_attribute_ETypedElement( 33458private pattern mustInRelationoutgoingLinks_reference_FunctionalOutput(
38622 problem:LogicProblem, interpretation:PartialInterpretation, 33459 problem:LogicProblem, interpretation:PartialInterpretation,
38623 source: DefinedElement, target:DefinedElement) 33460 source: DefinedElement, target:DefinedElement)
38624{ 33461{
38625 find interpretation(problem,interpretation); 33462 find interpretation(problem,interpretation);
38626 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 33463 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
38627 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"lowerBound attribute ETypedElement"); 33464 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"outgoingLinks reference FunctionalOutput");
38628 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 33465 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
38629 BinaryElementRelationLink.param1(link,source); 33466 BinaryElementRelationLink.param1(link,source);
38630 BinaryElementRelationLink.param2(link,target); 33467 BinaryElementRelationLink.param2(link,target);
38631} 33468}
38632/** 33469/**
38633 * Matcher for detecting tuples t where <>lowerBound attribute ETypedElement(source,target) 33470 * Matcher for detecting tuples t where <>outgoingLinks reference FunctionalOutput(source,target)
38634 */ 33471 */
38635private pattern mayInRelationlowerBound_attribute_ETypedElement( 33472private pattern mayInRelationoutgoingLinks_reference_FunctionalOutput(
38636 problem:LogicProblem, interpretation:PartialInterpretation, 33473 problem:LogicProblem, interpretation:PartialInterpretation,
38637 source: DefinedElement, target:DefinedElement) 33474 source: DefinedElement, target:DefinedElement)
38638{ 33475{
@@ -38641,33 +33478,38 @@ private pattern mayInRelationlowerBound_attribute_ETypedElement(
38641 find mayExist(problem, interpretation, source); 33478 find mayExist(problem, interpretation, source);
38642 find mayExist(problem, interpretation, target); 33479 find mayExist(problem, interpretation, target);
38643 // Type consistency 33480 // Type consistency
38644 find mayInstanceOfETypedElement_class(problem,interpretation,source); 33481 find mayInstanceOfFunctionalOutput_class(problem,interpretation,source);
38645 IntegerElement(target); 33482 find mayInstanceOfInformationLink_class(problem,interpretation,target);
38646 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 33483 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
38647 // the upper bound of the multiplicity should be considered. 33484 // the upper bound of the opposite reference multiplicity should be considered.
38648 numberOfExistingReferences == count find mustInRelationlowerBound_attribute_ETypedElement(problem,interpretation,source,_); 33485 numberOfExistingOppositeReferences == count find mustInRelationfrom_reference_InformationLink(problem,interpretation,target,_);
38649 check(numberOfExistingReferences < 1); 33486 check(numberOfExistingOppositeReferences < 1);
33487 // The reference is containment, then a new reference cannot be create if:
33488 // 1. Multiple parents
33489 neg find mustContains4(problem,interpretation,_,target);
33490 // 2. Circle in the containment hierarchy
33491 neg find mustTransitiveContains(source,target);
38650} or { 33492} or {
38651 find mustInRelationlowerBound_attribute_ETypedElement(problem,interpretation,source,target); 33493 find mustInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,source,target);
38652} 33494}
38653/** 33495/**
38654 * Matcher for detecting tuples t where []upperBound attribute ETypedElement(source,target) 33496 * Matcher for detecting tuples t where []terminator reference FunctionalData(source,target)
38655 */ 33497 */
38656private pattern mustInRelationupperBound_attribute_ETypedElement( 33498private pattern mustInRelationterminator_reference_FunctionalData(
38657 problem:LogicProblem, interpretation:PartialInterpretation, 33499 problem:LogicProblem, interpretation:PartialInterpretation,
38658 source: DefinedElement, target:DefinedElement) 33500 source: DefinedElement, target:DefinedElement)
38659{ 33501{
38660 find interpretation(problem,interpretation); 33502 find interpretation(problem,interpretation);
38661 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 33503 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
38662 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"upperBound attribute ETypedElement"); 33504 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"terminator reference FunctionalData");
38663 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 33505 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
38664 BinaryElementRelationLink.param1(link,source); 33506 BinaryElementRelationLink.param1(link,source);
38665 BinaryElementRelationLink.param2(link,target); 33507 BinaryElementRelationLink.param2(link,target);
38666} 33508}
38667/** 33509/**
38668 * Matcher for detecting tuples t where <>upperBound attribute ETypedElement(source,target) 33510 * Matcher for detecting tuples t where <>terminator reference FunctionalData(source,target)
38669 */ 33511 */
38670private pattern mayInRelationupperBound_attribute_ETypedElement( 33512private pattern mayInRelationterminator_reference_FunctionalData(
38671 problem:LogicProblem, interpretation:PartialInterpretation, 33513 problem:LogicProblem, interpretation:PartialInterpretation,
38672 source: DefinedElement, target:DefinedElement) 33514 source: DefinedElement, target:DefinedElement)
38673{ 33515{
@@ -38676,33 +33518,42 @@ private pattern mayInRelationupperBound_attribute_ETypedElement(
38676 find mayExist(problem, interpretation, source); 33518 find mayExist(problem, interpretation, source);
38677 find mayExist(problem, interpretation, target); 33519 find mayExist(problem, interpretation, target);
38678 // Type consistency 33520 // Type consistency
38679 find mayInstanceOfETypedElement_class(problem,interpretation,source); 33521 find mayInstanceOfFunctionalData_class(problem,interpretation,source);
38680 IntegerElement(target); 33522 find mayInstanceOfFAMTerminator_class(problem,interpretation,target);
38681 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 33523 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
38682 // the upper bound of the multiplicity should be considered. 33524 // the upper bound of the multiplicity should be considered.
38683 numberOfExistingReferences == count find mustInRelationupperBound_attribute_ETypedElement(problem,interpretation,source,_); 33525 numberOfExistingReferences == count find mustInRelationterminator_reference_FunctionalData(problem,interpretation,source,_);
38684 check(numberOfExistingReferences < 1); 33526 check(numberOfExistingReferences < 1);
33527 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
33528 // the upper bound of the opposite reference multiplicity should be considered.
33529 numberOfExistingOppositeReferences == count find mustInRelationdata_reference_FAMTerminator(problem,interpretation,target,_);
33530 check(numberOfExistingOppositeReferences < 1);
33531 // The reference is containment, then a new reference cannot be create if:
33532 // 1. Multiple parents
33533 neg find mustContains4(problem,interpretation,_,target);
33534 // 2. Circle in the containment hierarchy
33535 neg find mustTransitiveContains(source,target);
38685} or { 33536} or {
38686 find mustInRelationupperBound_attribute_ETypedElement(problem,interpretation,source,target); 33537 find mustInRelationterminator_reference_FunctionalData(problem,interpretation,source,target);
38687} 33538}
38688/** 33539/**
38689 * Matcher for detecting tuples t where []many attribute ETypedElement(source,target) 33540 * Matcher for detecting tuples t where []interface reference FunctionalData(source,target)
38690 */ 33541 */
38691private pattern mustInRelationmany_attribute_ETypedElement( 33542private pattern mustInRelationinterface_reference_FunctionalData(
38692 problem:LogicProblem, interpretation:PartialInterpretation, 33543 problem:LogicProblem, interpretation:PartialInterpretation,
38693 source: DefinedElement, target:DefinedElement) 33544 source: DefinedElement, target:DefinedElement)
38694{ 33545{
38695 find interpretation(problem,interpretation); 33546 find interpretation(problem,interpretation);
38696 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 33547 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
38697 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"many attribute ETypedElement"); 33548 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"interface reference FunctionalData");
38698 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 33549 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
38699 BinaryElementRelationLink.param1(link,source); 33550 BinaryElementRelationLink.param1(link,source);
38700 BinaryElementRelationLink.param2(link,target); 33551 BinaryElementRelationLink.param2(link,target);
38701} 33552}
38702/** 33553/**
38703 * Matcher for detecting tuples t where <>many attribute ETypedElement(source,target) 33554 * Matcher for detecting tuples t where <>interface reference FunctionalData(source,target)
38704 */ 33555 */
38705private pattern mayInRelationmany_attribute_ETypedElement( 33556private pattern mayInRelationinterface_reference_FunctionalData(
38706 problem:LogicProblem, interpretation:PartialInterpretation, 33557 problem:LogicProblem, interpretation:PartialInterpretation,
38707 source: DefinedElement, target:DefinedElement) 33558 source: DefinedElement, target:DefinedElement)
38708{ 33559{
@@ -38711,33 +33562,38 @@ private pattern mayInRelationmany_attribute_ETypedElement(
38711 find mayExist(problem, interpretation, source); 33562 find mayExist(problem, interpretation, source);
38712 find mayExist(problem, interpretation, target); 33563 find mayExist(problem, interpretation, target);
38713 // Type consistency 33564 // Type consistency
38714 find mayInstanceOfETypedElement_class(problem,interpretation,source); 33565 find mayInstanceOfFunctionalData_class(problem,interpretation,source);
38715 BooleanElement(target); 33566 find mayInstanceOfFunctionalInterface_class(problem,interpretation,target);
38716 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 33567 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
38717 // the upper bound of the multiplicity should be considered. 33568 // the upper bound of the multiplicity should be considered.
38718 numberOfExistingReferences == count find mustInRelationmany_attribute_ETypedElement(problem,interpretation,source,_); 33569 numberOfExistingReferences == count find mustInRelationinterface_reference_FunctionalData(problem,interpretation,source,_);
38719 check(numberOfExistingReferences < 1); 33570 check(numberOfExistingReferences < 1);
33571 // The eOpposite of the reference is containment, then a referene cannot be created if
33572 // 1. Multiple parents
33573 neg find mustContains4(problem,interpretation,source,_);
33574 // 2. Circle in the containment hierarchy
33575 neg find mustTransitiveContains(source,target);
38720} or { 33576} or {
38721 find mustInRelationmany_attribute_ETypedElement(problem,interpretation,source,target); 33577 find mustInRelationinterface_reference_FunctionalData(problem,interpretation,source,target);
38722} 33578}
38723/** 33579/**
38724 * Matcher for detecting tuples t where []required attribute ETypedElement(source,target) 33580 * Matcher for detecting tuples t where []type attribute Function(source,target)
38725 */ 33581 */
38726private pattern mustInRelationrequired_attribute_ETypedElement( 33582private pattern mustInRelationtype_attribute_Function(
38727 problem:LogicProblem, interpretation:PartialInterpretation, 33583 problem:LogicProblem, interpretation:PartialInterpretation,
38728 source: DefinedElement, target:DefinedElement) 33584 source: DefinedElement, target:DefinedElement)
38729{ 33585{
38730 find interpretation(problem,interpretation); 33586 find interpretation(problem,interpretation);
38731 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 33587 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
38732 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"required attribute ETypedElement"); 33588 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function");
38733 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 33589 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
38734 BinaryElementRelationLink.param1(link,source); 33590 BinaryElementRelationLink.param1(link,source);
38735 BinaryElementRelationLink.param2(link,target); 33591 BinaryElementRelationLink.param2(link,target);
38736} 33592}
38737/** 33593/**
38738 * Matcher for detecting tuples t where <>required attribute ETypedElement(source,target) 33594 * Matcher for detecting tuples t where <>type attribute Function(source,target)
38739 */ 33595 */
38740private pattern mayInRelationrequired_attribute_ETypedElement( 33596private pattern mayInRelationtype_attribute_Function(
38741 problem:LogicProblem, interpretation:PartialInterpretation, 33597 problem:LogicProblem, interpretation:PartialInterpretation,
38742 source: DefinedElement, target:DefinedElement) 33598 source: DefinedElement, target:DefinedElement)
38743{ 33599{
@@ -38746,91 +33602,118 @@ private pattern mayInRelationrequired_attribute_ETypedElement(
38746 find mayExist(problem, interpretation, source); 33602 find mayExist(problem, interpretation, source);
38747 find mayExist(problem, interpretation, target); 33603 find mayExist(problem, interpretation, target);
38748 // Type consistency 33604 // Type consistency
38749 find mayInstanceOfETypedElement_class(problem,interpretation,source); 33605 find mayInstanceOfFunction_class(problem,interpretation,source);
38750 BooleanElement(target); 33606 find mayInstanceOfFunctionType_enum(problem,interpretation,target);
38751 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 33607 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
38752 // the upper bound of the multiplicity should be considered. 33608 // the upper bound of the multiplicity should be considered.
38753 numberOfExistingReferences == count find mustInRelationrequired_attribute_ETypedElement(problem,interpretation,source,_); 33609 numberOfExistingReferences == count find mustInRelationtype_attribute_Function(problem,interpretation,source,_);
38754 check(numberOfExistingReferences < 1); 33610 check(numberOfExistingReferences < 1);
38755} or { 33611} or {
38756 find mustInRelationrequired_attribute_ETypedElement(problem,interpretation,source,target); 33612 find mustInRelationtype_attribute_Function(problem,interpretation,source,target);
38757} 33613}
38758/** 33614
38759 * Matcher for detecting tuples t where []key attribute EStringToStringMapEntry(source,target) 33615//////////
38760 */ 33616// 1.3 Relation Definition Indexers
38761private pattern mustInRelationkey_attribute_EStringToStringMapEntry( 33617//////////
33618// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test fam queries terminatorAndInformation
33619private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(
38762 problem:LogicProblem, interpretation:PartialInterpretation, 33620 problem:LogicProblem, interpretation:PartialInterpretation,
38763 source: DefinedElement, target:DefinedElement) 33621 var_T, var_I)
38764{ 33622{
38765 find interpretation(problem,interpretation); 33623 find interpretation(problem,interpretation);
38766 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 33624 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_T);
38767 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"key attribute EStringToStringMapEntry"); 33625 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
38768 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 33626 // T is exported
38769 BinaryElementRelationLink.param1(link,source); 33627 // I is exported
38770 BinaryElementRelationLink.param2(link,target); 33628 find mustInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
38771} 33629 find mustInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,var_Out,var_virtual0);
38772/** 33630 find mustInstanceOfInformationLink_class(problem,interpretation,var_virtual0);
38773 * Matcher for detecting tuples t where <>key attribute EStringToStringMapEntry(source,target) 33631 var_virtual0 == var_I;
38774 */ 33632 find mustInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
38775private pattern mayInRelationkey_attribute_EStringToStringMapEntry( 33633 find mustInRelationterminator_reference_FunctionalData(problem,interpretation,var_Out,var_virtual1);
38776 problem:LogicProblem, interpretation:PartialInterpretation, 33634 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
38777 source: DefinedElement, target:DefinedElement) 33635 var_virtual1 == var_T;
38778{ 33636}or{
38779 find interpretation(problem,interpretation); 33637 find interpretation(problem,interpretation);
38780 // The two endpoint of the link have to exist 33638 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_T);
38781 find mayExist(problem, interpretation, source); 33639 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
38782 find mayExist(problem, interpretation, target); 33640 // T is exported
38783 // Type consistency 33641 // I is exported
38784 find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,source); 33642 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
38785 StringElement(target); 33643 find mustInRelationto_reference_InformationLink(problem,interpretation,var_I,var_virtual0);
38786 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 33644 find mustInstanceOfFunctionalInput_class(problem,interpretation,var_virtual0);
38787 // the upper bound of the multiplicity should be considered. 33645 var_virtual0 == var_In;
38788 numberOfExistingReferences == count find mustInRelationkey_attribute_EStringToStringMapEntry(problem,interpretation,source,_); 33646 find mustInstanceOfFunctionalInput_class(problem,interpretation,var_In);
38789 check(numberOfExistingReferences < 1); 33647 find mustInRelationterminator_reference_FunctionalData(problem,interpretation,var_In,var_virtual1);
38790} or { 33648 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
38791 find mustInRelationkey_attribute_EStringToStringMapEntry(problem,interpretation,source,target); 33649 var_virtual1 == var_T;
38792} 33650}
38793/** 33651private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(
38794 * Matcher for detecting tuples t where []value attribute EStringToStringMapEntry(source,target)
38795 */
38796private pattern mustInRelationvalue_attribute_EStringToStringMapEntry(
38797 problem:LogicProblem, interpretation:PartialInterpretation, 33652 problem:LogicProblem, interpretation:PartialInterpretation,
38798 source: DefinedElement, target:DefinedElement) 33653 var_T, var_I)
38799{ 33654{
38800 find interpretation(problem,interpretation); 33655 find interpretation(problem,interpretation);
38801 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 33656 find mayInstanceOfFAMTerminator_class(problem,interpretation,var_T);
38802 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"value attribute EStringToStringMapEntry"); 33657 find mayInstanceOfInformationLink_class(problem,interpretation,var_I);
38803 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 33658 // T is exported
38804 BinaryElementRelationLink.param1(link,source); 33659 // I is exported
38805 BinaryElementRelationLink.param2(link,target); 33660 find mayInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
33661 find mayInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,var_Out,var_virtual0);
33662 find mayInstanceOfInformationLink_class(problem,interpretation,var_virtual0);
33663 find mayEquivalent(problem, interpretation, var_virtual0, var_I);
33664 find mayInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
33665 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,var_Out,var_virtual1);
33666 find mayInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
33667 find mayEquivalent(problem, interpretation, var_virtual1, var_T);
33668}or{
33669 find interpretation(problem,interpretation);
33670 find mayInstanceOfFAMTerminator_class(problem,interpretation,var_T);
33671 find mayInstanceOfInformationLink_class(problem,interpretation,var_I);
33672 // T is exported
33673 // I is exported
33674 find mayInstanceOfInformationLink_class(problem,interpretation,var_I);
33675 find mayInRelationto_reference_InformationLink(problem,interpretation,var_I,var_virtual0);
33676 find mayInstanceOfFunctionalInput_class(problem,interpretation,var_virtual0);
33677 find mayEquivalent(problem, interpretation, var_virtual0, var_In);
33678 find mayInstanceOfFunctionalInput_class(problem,interpretation,var_In);
33679 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,var_In,var_virtual1);
33680 find mayInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
33681 find mayEquivalent(problem, interpretation, var_virtual1, var_T);
38806} 33682}
38807/** 33683private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(
38808 * Matcher for detecting tuples t where <>value attribute EStringToStringMapEntry(source,target)
38809 */
38810private pattern mayInRelationvalue_attribute_EStringToStringMapEntry(
38811 problem:LogicProblem, interpretation:PartialInterpretation, 33684 problem:LogicProblem, interpretation:PartialInterpretation,
38812 source: DefinedElement, target:DefinedElement) 33685 var_T, var_I)
38813{ 33686{
38814 find interpretation(problem,interpretation); 33687 find interpretation(problem,interpretation);
38815 // The two endpoint of the link have to exist 33688 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_T);
38816 find mayExist(problem, interpretation, source); 33689 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
38817 find mayExist(problem, interpretation, target); 33690 // T is exported
38818 // Type consistency 33691 // I is exported
38819 find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,source); 33692 find mustInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
38820 StringElement(target); 33693 find mustInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,var_Out,var_virtual0);
38821 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 33694 find mustInstanceOfInformationLink_class(problem,interpretation,var_virtual0);
38822 // the upper bound of the multiplicity should be considered. 33695 var_virtual0 == var_I;
38823 numberOfExistingReferences == count find mustInRelationvalue_attribute_EStringToStringMapEntry(problem,interpretation,source,_); 33696 find mustInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
38824 check(numberOfExistingReferences < 1); 33697 find mustInRelationterminator_reference_FunctionalData(problem,interpretation,var_Out,var_virtual1);
38825} or { 33698 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
38826 find mustInRelationvalue_attribute_EStringToStringMapEntry(problem,interpretation,source,target); 33699 var_virtual1 == var_T;
33700}or{
33701 find interpretation(problem,interpretation);
33702 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_T);
33703 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
33704 // T is exported
33705 // I is exported
33706 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
33707 find mustInRelationto_reference_InformationLink(problem,interpretation,var_I,var_virtual0);
33708 find mustInstanceOfFunctionalInput_class(problem,interpretation,var_virtual0);
33709 var_virtual0 == var_In;
33710 find mustInstanceOfFunctionalInput_class(problem,interpretation,var_In);
33711 find mustInRelationterminator_reference_FunctionalData(problem,interpretation,var_In,var_virtual1);
33712 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
33713 var_virtual1 == var_T;
38827} 33714}
38828 33715
38829////////// 33716//////////
38830// 1.3 Relation Definition Indexers
38831//////////
38832
38833//////////
38834// 1.4 Containment Indexer 33717// 1.4 Containment Indexer
38835////////// 33718//////////
38836private pattern mustContains2(source: DefinedElement, target: DefinedElement) { 33719private pattern mustContains2(source: DefinedElement, target: DefinedElement) {
@@ -38839,41 +33722,17 @@ private pattern mustContains2(source: DefinedElement, target: DefinedElement) {
38839 33722
38840private pattern mustContains4(problem:LogicProblem, interpretation:PartialInterpretation, 33723private pattern mustContains4(problem:LogicProblem, interpretation:PartialInterpretation,
38841 source: DefinedElement, target: DefinedElement) 33724 source: DefinedElement, target: DefinedElement)
38842 { find mustInRelationdetails_reference_EAnnotation(problem,interpretation,source,target); }or 33725 { find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,source,target); }or
38843
38844 { find mustInRelationcontents_reference_EAnnotation(problem,interpretation,source,target); }or
38845
38846 { find mustInRelationeOperations_reference_EClass(problem,interpretation,source,target); }or
38847
38848 { find mustInRelationeStructuralFeatures_reference_EClass(problem,interpretation,source,target); }or
38849
38850 { find mustInRelationeGenericSuperTypes_reference_EClass(problem,interpretation,source,target); }or
38851
38852 { find mustInRelationeTypeParameters_reference_EClassifier(problem,interpretation,source,target); }or
38853
38854 { find mustInRelationeLiterals_reference_EEnum(problem,interpretation,source,target); }or
38855
38856 { find mustInRelationeAnnotations_reference_EModelElement(problem,interpretation,source,target); }or
38857
38858 { find mustInRelationeTypeParameters_reference_EOperation(problem,interpretation,source,target); }or
38859
38860 { find mustInRelationeParameters_reference_EOperation(problem,interpretation,source,target); }or
38861
38862 { find mustInRelationeGenericExceptions_reference_EOperation(problem,interpretation,source,target); }or
38863
38864 { find mustInRelationeClassifiers_reference_EPackage(problem,interpretation,source,target); }or
38865
38866 { find mustInRelationeSubpackages_reference_EPackage(problem,interpretation,source,target); }or
38867 33726
38868 { find mustInRelationeGenericType_reference_ETypedElement(problem,interpretation,source,target); }or 33727 { find mustInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,source,target); }or
38869 33728
38870 { find mustInRelationeUpperBound_reference_EGenericType(problem,interpretation,source,target); }or 33729 { find mustInRelationsubElements_reference_Function(problem,interpretation,source,target); }or
38871 33730
38872 { find mustInRelationeTypeArguments_reference_EGenericType(problem,interpretation,source,target); }or 33731 { find mustInRelationdata_reference_FunctionalInterface(problem,interpretation,source,target); }or
38873 33732
38874 { find mustInRelationeLowerBound_reference_EGenericType(problem,interpretation,source,target); }or 33733 { find mustInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,source,target); }or
38875 33734
38876 { find mustInRelationeBounds_reference_ETypeParameter(problem,interpretation,source,target); } 33735 { find mustInRelationterminator_reference_FunctionalData(problem,interpretation,source,target); }
38877 33736
38878private pattern mustTransitiveContains(source,target) { 33737private pattern mustTransitiveContains(source,target) {
38879 find mustContains2+(source,target); 33738 find mustContains2+(source,target);
@@ -38884,36 +33743,41 @@ private pattern mustTransitiveContains(source,target) {
38884////////// 33743//////////
38885// 2.1 Invalidated by WF Queries 33744// 2.1 Invalidated by WF Queries
38886////////// 33745//////////
33746pattern invalidatedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(problem:LogicProblem, interpretation:PartialInterpretation,
33747 var_T, var_I)
33748{
33749 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(problem,interpretation,var_T,var_I);
33750}
38887 33751
38888////////// 33752//////////
38889// 3. Unfinishedness Indexers 33753// 3. Unfinishedness Indexers
38890////////// 33754//////////
38891// 3.1 Unfinishedness Measured by Multiplicity 33755// 3.1 Unfinishedness Measured by Multiplicity
38892////////// 33756//////////
38893pattern unfinishedLowerMultiplicity_eAttributeType_reference_EAttribute(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { 33757pattern unfinishedLowerMultiplicity_model_reference_FunctionalElement(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
38894 find interpretation(problem,interpretation); 33758 find interpretation(problem,interpretation);
38895 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 33759 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
38896 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAttributeType reference EAttribute"); 33760 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement");
38897 find mustInstanceOfEAttribute_class(problem,interpretation,object); 33761 find mustInstanceOfFunctionalElement_class(problem,interpretation,object);
38898 numberOfExistingReferences == count find mustInRelationeAttributeType_reference_EAttribute(problem,interpretation,object,_); 33762 numberOfExistingReferences == count find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,object,_);
38899 check(numberOfExistingReferences < 1); 33763 check(numberOfExistingReferences < 1);
38900 missingMultiplicity == eval(1-numberOfExistingReferences); 33764 missingMultiplicity == eval(1-numberOfExistingReferences);
38901} 33765}
38902pattern unfinishedLowerMultiplicity_eReferenceType_reference_EReference(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { 33766pattern unfinishedLowerMultiplicity_to_reference_InformationLink(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
38903 find interpretation(problem,interpretation); 33767 find interpretation(problem,interpretation);
38904 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 33768 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
38905 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eReferenceType reference EReference"); 33769 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"to reference InformationLink");
38906 find mustInstanceOfEReference_class(problem,interpretation,object); 33770 find mustInstanceOfInformationLink_class(problem,interpretation,object);
38907 numberOfExistingReferences == count find mustInRelationeReferenceType_reference_EReference(problem,interpretation,object,_); 33771 numberOfExistingReferences == count find mustInRelationto_reference_InformationLink(problem,interpretation,object,_);
38908 check(numberOfExistingReferences < 1); 33772 check(numberOfExistingReferences < 1);
38909 missingMultiplicity == eval(1-numberOfExistingReferences); 33773 missingMultiplicity == eval(1-numberOfExistingReferences);
38910} 33774}
38911pattern unfinishedLowerMultiplicity_eRawType_reference_EGenericType(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { 33775pattern unfinishedLowerMultiplicity_type_attribute_Function(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
38912 find interpretation(problem,interpretation); 33776 find interpretation(problem,interpretation);
38913 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 33777 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
38914 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eRawType reference EGenericType"); 33778 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function");
38915 find mustInstanceOfEGenericType_class(problem,interpretation,object); 33779 find mustInstanceOfFunction_class(problem,interpretation,object);
38916 numberOfExistingReferences == count find mustInRelationeRawType_reference_EGenericType(problem,interpretation,object,_); 33780 numberOfExistingReferences == count find mustInRelationtype_attribute_Function(problem,interpretation,object,_);
38917 check(numberOfExistingReferences < 1); 33781 check(numberOfExistingReferences < 1);
38918 missingMultiplicity == eval(1-numberOfExistingReferences); 33782 missingMultiplicity == eval(1-numberOfExistingReferences);
38919} 33783}
@@ -38921,6 +33785,11 @@ pattern unfinishedLowerMultiplicity_eRawType_reference_EGenericType(problem:Logi
38921////////// 33785//////////
38922// 3.2 Unfinishedness Measured by WF Queries 33786// 3.2 Unfinishedness Measured by WF Queries
38923////////// 33787//////////
33788pattern unfinishedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(problem:LogicProblem, interpretation:PartialInterpretation,
33789 var_T, var_I)
33790{
33791 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(problem,interpretation,var_T,var_I);
33792}
38924 33793
38925////////// 33794//////////
38926// 4. Refinement Indexers 33795// 4. Refinement Indexers
@@ -38930,626 +33799,246 @@ pattern unfinishedLowerMultiplicity_eRawType_reference_EGenericType(problem:Logi
38930private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation) 33799private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation)
38931{ 33800{
38932 find interpretation(problem,interpretation); 33801 find interpretation(problem,interpretation);
38933 find mustInstanceOfETypeParameter_class(problem,interpretation,root); 33802 find mustInstanceOfFunctionalData_class(problem,interpretation,root);
38934 find mustExist(problem, interpretation, root);
38935}or{
38936 find interpretation(problem,interpretation);
38937 find mustInstanceOfETypedElement_class(problem,interpretation,root);
38938 find mustExist(problem, interpretation, root);
38939}or{
38940 find interpretation(problem,interpretation);
38941 find mustInstanceOfEClass_class(problem,interpretation,root);
38942 find mustExist(problem, interpretation, root);
38943}or{
38944 find interpretation(problem,interpretation);
38945 find mustInstanceOfEStructuralFeature_class(problem,interpretation,root);
38946 find mustExist(problem, interpretation, root);
38947}or{
38948 find interpretation(problem,interpretation);
38949 find mustInstanceOfEAnnotation_class(problem,interpretation,root);
38950 find mustExist(problem, interpretation, root);
38951}or{
38952 find interpretation(problem,interpretation);
38953 find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,root);
38954 find mustExist(problem, interpretation, root);
38955}or{
38956 find interpretation(problem,interpretation);
38957 find mustInstanceOfEAttribute_class(problem,interpretation,root);
38958 find mustExist(problem, interpretation, root);
38959}or{
38960 find interpretation(problem,interpretation);
38961 find mustInstanceOfEObject_class(problem,interpretation,root);
38962 find mustExist(problem, interpretation, root);
38963}or{
38964 find interpretation(problem,interpretation);
38965 find mustInstanceOfEClassifier_class(problem,interpretation,root);
38966 find mustExist(problem, interpretation, root);
38967}or{
38968 find interpretation(problem,interpretation);
38969 find mustInstanceOfEGenericType_class(problem,interpretation,root);
38970 find mustExist(problem, interpretation, root);
38971}or{
38972 find interpretation(problem,interpretation);
38973 find mustInstanceOfEEnumLiteral_class(problem,interpretation,root);
38974 find mustExist(problem, interpretation, root);
38975}or{
38976 find interpretation(problem,interpretation);
38977 find mustInstanceOfEDataType_class(problem,interpretation,root);
38978 find mustExist(problem, interpretation, root);
38979}or{
38980 find interpretation(problem,interpretation);
38981 find mustInstanceOfEOperation_class(problem,interpretation,root);
38982 find mustExist(problem, interpretation, root);
38983}or{
38984 find interpretation(problem,interpretation);
38985 find mustInstanceOfEPackage_class(problem,interpretation,root);
38986 find mustExist(problem, interpretation, root);
38987}or{
38988 find interpretation(problem,interpretation);
38989 find mustInstanceOfEParameter_class(problem,interpretation,root);
38990 find mustExist(problem, interpretation, root);
38991}or{
38992 find interpretation(problem,interpretation);
38993 find mustInstanceOfEModelElement_class(problem,interpretation,root);
38994 find mustExist(problem, interpretation, root);
38995}or{
38996 find interpretation(problem,interpretation);
38997 find mustInstanceOfEReference_class(problem,interpretation,root);
38998 find mustExist(problem, interpretation, root); 33803 find mustExist(problem, interpretation, root);
38999}or{ 33804}or{
39000 find interpretation(problem,interpretation); 33805 find interpretation(problem,interpretation);
39001 find mustInstanceOfEEnum_class(problem,interpretation,root); 33806 find mustInstanceOfFunctionalOutput_class(problem,interpretation,root);
39002 find mustExist(problem, interpretation, root); 33807 find mustExist(problem, interpretation, root);
39003}or{ 33808}or{
39004 find interpretation(problem,interpretation); 33809 find interpretation(problem,interpretation);
39005 find mustInstanceOfENamedElement_class(problem,interpretation,root); 33810 find mustInstanceOfFunction_class(problem,interpretation,root);
39006 find mustExist(problem, interpretation, root); 33811 find mustExist(problem, interpretation, root);
39007}or{ 33812}or{
39008 find interpretation(problem,interpretation); 33813 find interpretation(problem,interpretation);
39009 find mustInstanceOfEModelElement_class_DefinedPart(problem,interpretation,root); 33814 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,root);
39010 find mustExist(problem, interpretation, root); 33815 find mustExist(problem, interpretation, root);
39011}or{ 33816}or{
39012 find interpretation(problem,interpretation); 33817 find interpretation(problem,interpretation);
39013 find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,root); 33818 find mustInstanceOfInformationLink_class(problem,interpretation,root);
39014 find mustExist(problem, interpretation, root); 33819 find mustExist(problem, interpretation, root);
39015}or{ 33820}or{
39016 find interpretation(problem,interpretation); 33821 find interpretation(problem,interpretation);
39017 find mustInstanceOfENamedElement_class_DefinedPart(problem,interpretation,root); 33822 find mustInstanceOfFunctionalElement_class(problem,interpretation,root);
39018 find mustExist(problem, interpretation, root); 33823 find mustExist(problem, interpretation, root);
39019}or{ 33824}or{
39020 find interpretation(problem,interpretation); 33825 find interpretation(problem,interpretation);
39021 find mustInstanceOfENamedElement_class_UndefinedPart(problem,interpretation,root); 33826 find mustInstanceOfFAMTerminator_class(problem,interpretation,root);
39022 find mustExist(problem, interpretation, root); 33827 find mustExist(problem, interpretation, root);
39023}or{ 33828}or{
39024 find interpretation(problem,interpretation); 33829 find interpretation(problem,interpretation);
39025 find mustInstanceOfEPackage_class_DefinedPart(problem,interpretation,root); 33830 find mustInstanceOfFunctionalInput_class(problem,interpretation,root);
39026 find mustExist(problem, interpretation, root); 33831 find mustExist(problem, interpretation, root);
39027}or{ 33832}or{
39028 find interpretation(problem,interpretation); 33833 find interpretation(problem,interpretation);
39029 find mustInstanceOfEPackage_class_UndefinedPart(problem,interpretation,root); 33834 find mustInstanceOfFunctionalInterface_class(problem,interpretation,root);
39030 find mustExist(problem, interpretation, root); 33835 find mustExist(problem, interpretation, root);
39031} 33836}
39032pattern createObject_EAnnotation_class_by_eAnnotations_reference_EModelElement_with_eModelElement_reference_EAnnotation( 33837pattern createObject_FAMTerminator_class_by_terminator_reference_FunctionalData_with_data_reference_FAMTerminator(
39033 problem:LogicProblem, interpretation:PartialInterpretation,
39034 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
39035 container:DefinedElement)
39036{
39037 find interpretation(problem,interpretation);
39038 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
39039 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EAnnotation class");
39040 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
39041 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eAnnotations reference EModelElement");
39042 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
39043 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eModelElement reference EAnnotation");
39044 find mustInstanceOfEModelElement_class(problem,interpretation,container);
39045 find mayInstanceOfEAnnotation_class(problem,interpretation,newObject);
39046 find mayInRelationeAnnotations_reference_EModelElement(problem,interpretation,container,newObject);
39047 find mustExist(problem, interpretation, container);
39048 neg find mustExist(problem, interpretation, newObject);
39049}
39050pattern createObject_EAnnotation_class(
39051 problem:LogicProblem, interpretation:PartialInterpretation,
39052 typeInterpretation:PartialComplexTypeInterpretation)
39053{
39054 find interpretation(problem,interpretation);
39055 neg find hasElementInContainment(problem,interpretation);
39056 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
39057 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EAnnotation class");
39058 find mayInstanceOfEAnnotation_class(problem,interpretation,newObject);
39059 find mayExist(problem, interpretation, newObject);
39060 neg find mustExist(problem, interpretation, newObject);
39061}
39062pattern createObject_EClass_class_by_eClassifiers_reference_EPackage_with_ePackage_reference_EClassifier(
39063 problem:LogicProblem, interpretation:PartialInterpretation,
39064 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
39065 container:DefinedElement)
39066{
39067 find interpretation(problem,interpretation);
39068 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
39069 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EClass class");
39070 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
39071 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eClassifiers reference EPackage");
39072 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
39073 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"ePackage reference EClassifier");
39074 find mustInstanceOfEPackage_class(problem,interpretation,container);
39075 find mayInstanceOfEClass_class(problem,interpretation,newObject);
39076 find mayInRelationeClassifiers_reference_EPackage(problem,interpretation,container,newObject);
39077 find mustExist(problem, interpretation, container);
39078 neg find mustExist(problem, interpretation, newObject);
39079}
39080pattern createObject_EClass_class(
39081 problem:LogicProblem, interpretation:PartialInterpretation,
39082 typeInterpretation:PartialComplexTypeInterpretation)
39083{
39084 find interpretation(problem,interpretation);
39085 neg find hasElementInContainment(problem,interpretation);
39086 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
39087 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EClass class");
39088 find mayInstanceOfEClass_class(problem,interpretation,newObject);
39089 find mayExist(problem, interpretation, newObject);
39090 neg find mustExist(problem, interpretation, newObject);
39091}
39092pattern createObject_EEnum_class_by_eClassifiers_reference_EPackage_with_ePackage_reference_EClassifier(
39093 problem:LogicProblem, interpretation:PartialInterpretation, 33838 problem:LogicProblem, interpretation:PartialInterpretation,
39094 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 33839 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
39095 container:DefinedElement) 33840 container:DefinedElement)
39096{ 33841{
39097 find interpretation(problem,interpretation); 33842 find interpretation(problem,interpretation);
39098 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 33843 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
39099 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EEnum class"); 33844 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class");
39100 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 33845 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
39101 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eClassifiers reference EPackage"); 33846 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"terminator reference FunctionalData");
39102 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 33847 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
39103 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"ePackage reference EClassifier"); 33848 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"data reference FAMTerminator");
39104 find mustInstanceOfEPackage_class(problem,interpretation,container); 33849 find mustInstanceOfFunctionalData_class(problem,interpretation,container);
39105 find mayInstanceOfEEnum_class(problem,interpretation,newObject); 33850 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject);
39106 find mayInRelationeClassifiers_reference_EPackage(problem,interpretation,container,newObject); 33851 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,container,newObject);
39107 find mustExist(problem, interpretation, container); 33852 find mustExist(problem, interpretation, container);
39108 neg find mustExist(problem, interpretation, newObject); 33853 neg find mustExist(problem, interpretation, newObject);
39109} 33854}
39110pattern createObject_EEnum_class( 33855pattern createObject_FAMTerminator_class(
39111 problem:LogicProblem, interpretation:PartialInterpretation, 33856 problem:LogicProblem, interpretation:PartialInterpretation,
39112 typeInterpretation:PartialComplexTypeInterpretation) 33857 typeInterpretation:PartialComplexTypeInterpretation)
39113{ 33858{
39114 find interpretation(problem,interpretation); 33859 find interpretation(problem,interpretation);
39115 neg find hasElementInContainment(problem,interpretation); 33860 neg find hasElementInContainment(problem,interpretation);
39116 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 33861 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
39117 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EEnum class"); 33862 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class");
39118 find mayInstanceOfEEnum_class(problem,interpretation,newObject); 33863 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject);
39119 find mayExist(problem, interpretation, newObject); 33864 find mayExist(problem, interpretation, newObject);
39120 neg find mustExist(problem, interpretation, newObject); 33865 neg find mustExist(problem, interpretation, newObject);
39121} 33866}
39122pattern createObject_EReference_class_by_eStructuralFeatures_reference_EClass_with_eContainingClass_reference_EStructuralFeature( 33867pattern createObject_Function_class_by_rootElements_reference_FunctionalArchitectureModel(
39123 problem:LogicProblem, interpretation:PartialInterpretation, 33868 problem:LogicProblem, interpretation:PartialInterpretation,
39124 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 33869 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
39125 container:DefinedElement) 33870 container:DefinedElement)
39126{ 33871{
39127 find interpretation(problem,interpretation); 33872 find interpretation(problem,interpretation);
39128 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 33873 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
39129 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EReference class"); 33874 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class");
39130 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 33875 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
39131 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eStructuralFeatures reference EClass"); 33876 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"rootElements reference FunctionalArchitectureModel");
39132 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 33877 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,container);
39133 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eContainingClass reference EStructuralFeature"); 33878 find mayInstanceOfFunction_class(problem,interpretation,newObject);
39134 find mustInstanceOfEClass_class(problem,interpretation,container); 33879 find mayInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,container,newObject);
39135 find mayInstanceOfEReference_class(problem,interpretation,newObject);
39136 find mayInRelationeStructuralFeatures_reference_EClass(problem,interpretation,container,newObject);
39137 find mustExist(problem, interpretation, container); 33880 find mustExist(problem, interpretation, container);
39138 neg find mustExist(problem, interpretation, newObject); 33881 neg find mustExist(problem, interpretation, newObject);
39139} 33882}
39140pattern createObject_EReference_class( 33883pattern createObject_Function_class_by_subElements_reference_Function_with_parent_reference_FunctionalElement(
39141 problem:LogicProblem, interpretation:PartialInterpretation,
39142 typeInterpretation:PartialComplexTypeInterpretation)
39143{
39144 find interpretation(problem,interpretation);
39145 neg find hasElementInContainment(problem,interpretation);
39146 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
39147 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EReference class");
39148 find mayInstanceOfEReference_class(problem,interpretation,newObject);
39149 find mayExist(problem, interpretation, newObject);
39150 neg find mustExist(problem, interpretation, newObject);
39151}
39152pattern createObject_EOperation_class_by_eOperations_reference_EClass_with_eContainingClass_reference_EOperation(
39153 problem:LogicProblem, interpretation:PartialInterpretation, 33884 problem:LogicProblem, interpretation:PartialInterpretation,
39154 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 33885 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
39155 container:DefinedElement) 33886 container:DefinedElement)
39156{ 33887{
39157 find interpretation(problem,interpretation); 33888 find interpretation(problem,interpretation);
39158 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 33889 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
39159 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EOperation class"); 33890 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class");
39160 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 33891 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
39161 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eOperations reference EClass"); 33892 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"subElements reference Function");
39162 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 33893 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
39163 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eContainingClass reference EOperation"); 33894 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"parent reference FunctionalElement");
39164 find mustInstanceOfEClass_class(problem,interpretation,container); 33895 find mustInstanceOfFunction_class(problem,interpretation,container);
39165 find mayInstanceOfEOperation_class(problem,interpretation,newObject); 33896 find mayInstanceOfFunction_class(problem,interpretation,newObject);
39166 find mayInRelationeOperations_reference_EClass(problem,interpretation,container,newObject); 33897 find mayInRelationsubElements_reference_Function(problem,interpretation,container,newObject);
39167 find mustExist(problem, interpretation, container);
39168 neg find mustExist(problem, interpretation, newObject);
39169}
39170pattern createObject_EOperation_class(
39171 problem:LogicProblem, interpretation:PartialInterpretation,
39172 typeInterpretation:PartialComplexTypeInterpretation)
39173{
39174 find interpretation(problem,interpretation);
39175 neg find hasElementInContainment(problem,interpretation);
39176 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
39177 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EOperation class");
39178 find mayInstanceOfEOperation_class(problem,interpretation,newObject);
39179 find mayExist(problem, interpretation, newObject);
39180 neg find mustExist(problem, interpretation, newObject);
39181}
39182pattern createObject_ETypeParameter_class_by_eTypeParameters_reference_EClassifier(
39183 problem:LogicProblem, interpretation:PartialInterpretation,
39184 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
39185 container:DefinedElement)
39186{
39187 find interpretation(problem,interpretation);
39188 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
39189 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"ETypeParameter class");
39190 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
39191 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eTypeParameters reference EClassifier");
39192 find mustInstanceOfEClassifier_class(problem,interpretation,container);
39193 find mayInstanceOfETypeParameter_class(problem,interpretation,newObject);
39194 find mayInRelationeTypeParameters_reference_EClassifier(problem,interpretation,container,newObject);
39195 find mustExist(problem, interpretation, container);
39196 neg find mustExist(problem, interpretation, newObject);
39197}
39198pattern createObject_ETypeParameter_class_by_eTypeParameters_reference_EOperation(
39199 problem:LogicProblem, interpretation:PartialInterpretation,
39200 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
39201 container:DefinedElement)
39202{
39203 find interpretation(problem,interpretation);
39204 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
39205 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"ETypeParameter class");
39206 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
39207 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eTypeParameters reference EOperation");
39208 find mustInstanceOfEOperation_class(problem,interpretation,container);
39209 find mayInstanceOfETypeParameter_class(problem,interpretation,newObject);
39210 find mayInRelationeTypeParameters_reference_EOperation(problem,interpretation,container,newObject);
39211 find mustExist(problem, interpretation, container); 33898 find mustExist(problem, interpretation, container);
39212 neg find mustExist(problem, interpretation, newObject); 33899 neg find mustExist(problem, interpretation, newObject);
39213} 33900}
39214pattern createObject_ETypeParameter_class( 33901pattern createObject_Function_class(
39215 problem:LogicProblem, interpretation:PartialInterpretation, 33902 problem:LogicProblem, interpretation:PartialInterpretation,
39216 typeInterpretation:PartialComplexTypeInterpretation) 33903 typeInterpretation:PartialComplexTypeInterpretation)
39217{ 33904{
39218 find interpretation(problem,interpretation); 33905 find interpretation(problem,interpretation);
39219 neg find hasElementInContainment(problem,interpretation); 33906 neg find hasElementInContainment(problem,interpretation);
39220 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 33907 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
39221 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"ETypeParameter class"); 33908 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class");
39222 find mayInstanceOfETypeParameter_class(problem,interpretation,newObject); 33909 find mayInstanceOfFunction_class(problem,interpretation,newObject);
39223 find mayExist(problem, interpretation, newObject); 33910 find mayExist(problem, interpretation, newObject);
39224 neg find mustExist(problem, interpretation, newObject); 33911 neg find mustExist(problem, interpretation, newObject);
39225} 33912}
39226pattern createObject_EPackage_class_UndefinedPart_by_eSubpackages_reference_EPackage_with_eSuperPackage_reference_EPackage( 33913pattern createObject_InformationLink_class_by_outgoingLinks_reference_FunctionalOutput_with_from_reference_InformationLink(
39227 problem:LogicProblem, interpretation:PartialInterpretation, 33914 problem:LogicProblem, interpretation:PartialInterpretation,
39228 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 33915 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
39229 container:DefinedElement) 33916 container:DefinedElement)
39230{ 33917{
39231 find interpretation(problem,interpretation); 33918 find interpretation(problem,interpretation);
39232 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 33919 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
39233 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EPackage class UndefinedPart"); 33920 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class");
39234 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 33921 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
39235 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eSubpackages reference EPackage"); 33922 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"outgoingLinks reference FunctionalOutput");
39236 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 33923 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
39237 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eSuperPackage reference EPackage"); 33924 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"from reference InformationLink");
39238 find mustInstanceOfEPackage_class(problem,interpretation,container); 33925 find mustInstanceOfFunctionalOutput_class(problem,interpretation,container);
39239 find mayInstanceOfEPackage_class_UndefinedPart(problem,interpretation,newObject); 33926 find mayInstanceOfInformationLink_class(problem,interpretation,newObject);
39240 find mayInRelationeSubpackages_reference_EPackage(problem,interpretation,container,newObject); 33927 find mayInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,container,newObject);
39241 find mustExist(problem, interpretation, container);
39242 neg find mustExist(problem, interpretation, newObject);
39243}
39244pattern createObject_EPackage_class_UndefinedPart(
39245 problem:LogicProblem, interpretation:PartialInterpretation,
39246 typeInterpretation:PartialComplexTypeInterpretation)
39247{
39248 find interpretation(problem,interpretation);
39249 neg find hasElementInContainment(problem,interpretation);
39250 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
39251 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EPackage class UndefinedPart");
39252 find mayInstanceOfEPackage_class_UndefinedPart(problem,interpretation,newObject);
39253 find mayExist(problem, interpretation, newObject);
39254 neg find mustExist(problem, interpretation, newObject);
39255}
39256pattern createObject_EStringToStringMapEntry_class_by_details_reference_EAnnotation(
39257 problem:LogicProblem, interpretation:PartialInterpretation,
39258 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
39259 container:DefinedElement)
39260{
39261 find interpretation(problem,interpretation);
39262 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
39263 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EStringToStringMapEntry class");
39264 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
39265 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"details reference EAnnotation");
39266 find mustInstanceOfEAnnotation_class(problem,interpretation,container);
39267 find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,newObject);
39268 find mayInRelationdetails_reference_EAnnotation(problem,interpretation,container,newObject);
39269 find mustExist(problem, interpretation, container);
39270 neg find mustExist(problem, interpretation, newObject);
39271}
39272pattern createObject_EStringToStringMapEntry_class(
39273 problem:LogicProblem, interpretation:PartialInterpretation,
39274 typeInterpretation:PartialComplexTypeInterpretation)
39275{
39276 find interpretation(problem,interpretation);
39277 neg find hasElementInContainment(problem,interpretation);
39278 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
39279 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EStringToStringMapEntry class");
39280 find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,newObject);
39281 find mayExist(problem, interpretation, newObject);
39282 neg find mustExist(problem, interpretation, newObject);
39283}
39284pattern createObject_EObject_class_by_contents_reference_EAnnotation(
39285 problem:LogicProblem, interpretation:PartialInterpretation,
39286 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
39287 container:DefinedElement)
39288{
39289 find interpretation(problem,interpretation);
39290 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
39291 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EObject class");
39292 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
39293 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"contents reference EAnnotation");
39294 find mustInstanceOfEAnnotation_class(problem,interpretation,container);
39295 find mayInstanceOfEObject_class(problem,interpretation,newObject);
39296 find mayInRelationcontents_reference_EAnnotation(problem,interpretation,container,newObject);
39297 find mustExist(problem, interpretation, container);
39298 neg find mustExist(problem, interpretation, newObject);
39299}
39300pattern createObject_EObject_class(
39301 problem:LogicProblem, interpretation:PartialInterpretation,
39302 typeInterpretation:PartialComplexTypeInterpretation)
39303{
39304 find interpretation(problem,interpretation);
39305 neg find hasElementInContainment(problem,interpretation);
39306 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
39307 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EObject class");
39308 find mayInstanceOfEObject_class(problem,interpretation,newObject);
39309 find mayExist(problem, interpretation, newObject);
39310 neg find mustExist(problem, interpretation, newObject);
39311}
39312pattern createObject_EGenericType_class_by_eGenericSuperTypes_reference_EClass(
39313 problem:LogicProblem, interpretation:PartialInterpretation,
39314 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
39315 container:DefinedElement)
39316{
39317 find interpretation(problem,interpretation);
39318 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
39319 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class");
39320 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
39321 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eGenericSuperTypes reference EClass");
39322 find mustInstanceOfEClass_class(problem,interpretation,container);
39323 find mayInstanceOfEGenericType_class(problem,interpretation,newObject);
39324 find mayInRelationeGenericSuperTypes_reference_EClass(problem,interpretation,container,newObject);
39325 find mustExist(problem, interpretation, container);
39326 neg find mustExist(problem, interpretation, newObject);
39327}
39328pattern createObject_EGenericType_class_by_eGenericExceptions_reference_EOperation(
39329 problem:LogicProblem, interpretation:PartialInterpretation,
39330 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
39331 container:DefinedElement)
39332{
39333 find interpretation(problem,interpretation);
39334 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
39335 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class");
39336 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
39337 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eGenericExceptions reference EOperation");
39338 find mustInstanceOfEOperation_class(problem,interpretation,container);
39339 find mayInstanceOfEGenericType_class(problem,interpretation,newObject);
39340 find mayInRelationeGenericExceptions_reference_EOperation(problem,interpretation,container,newObject);
39341 find mustExist(problem, interpretation, container);
39342 neg find mustExist(problem, interpretation, newObject);
39343}
39344pattern createObject_EGenericType_class_by_eGenericType_reference_ETypedElement(
39345 problem:LogicProblem, interpretation:PartialInterpretation,
39346 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
39347 container:DefinedElement)
39348{
39349 find interpretation(problem,interpretation);
39350 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
39351 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class");
39352 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
39353 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eGenericType reference ETypedElement");
39354 find mustInstanceOfETypedElement_class(problem,interpretation,container);
39355 find mayInstanceOfEGenericType_class(problem,interpretation,newObject);
39356 find mayInRelationeGenericType_reference_ETypedElement(problem,interpretation,container,newObject);
39357 find mustExist(problem, interpretation, container);
39358 neg find mustExist(problem, interpretation, newObject);
39359}
39360pattern createObject_EGenericType_class_by_eUpperBound_reference_EGenericType(
39361 problem:LogicProblem, interpretation:PartialInterpretation,
39362 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
39363 container:DefinedElement)
39364{
39365 find interpretation(problem,interpretation);
39366 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
39367 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class");
39368 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
39369 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eUpperBound reference EGenericType");
39370 find mustInstanceOfEGenericType_class(problem,interpretation,container);
39371 find mayInstanceOfEGenericType_class(problem,interpretation,newObject);
39372 find mayInRelationeUpperBound_reference_EGenericType(problem,interpretation,container,newObject);
39373 find mustExist(problem, interpretation, container);
39374 neg find mustExist(problem, interpretation, newObject);
39375}
39376pattern createObject_EGenericType_class_by_eTypeArguments_reference_EGenericType(
39377 problem:LogicProblem, interpretation:PartialInterpretation,
39378 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
39379 container:DefinedElement)
39380{
39381 find interpretation(problem,interpretation);
39382 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
39383 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class");
39384 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
39385 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eTypeArguments reference EGenericType");
39386 find mustInstanceOfEGenericType_class(problem,interpretation,container);
39387 find mayInstanceOfEGenericType_class(problem,interpretation,newObject);
39388 find mayInRelationeTypeArguments_reference_EGenericType(problem,interpretation,container,newObject);
39389 find mustExist(problem, interpretation, container);
39390 neg find mustExist(problem, interpretation, newObject);
39391}
39392pattern createObject_EGenericType_class_by_eLowerBound_reference_EGenericType(
39393 problem:LogicProblem, interpretation:PartialInterpretation,
39394 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
39395 container:DefinedElement)
39396{
39397 find interpretation(problem,interpretation);
39398 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
39399 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class");
39400 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
39401 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eLowerBound reference EGenericType");
39402 find mustInstanceOfEGenericType_class(problem,interpretation,container);
39403 find mayInstanceOfEGenericType_class(problem,interpretation,newObject);
39404 find mayInRelationeLowerBound_reference_EGenericType(problem,interpretation,container,newObject);
39405 find mustExist(problem, interpretation, container);
39406 neg find mustExist(problem, interpretation, newObject);
39407}
39408pattern createObject_EGenericType_class_by_eBounds_reference_ETypeParameter(
39409 problem:LogicProblem, interpretation:PartialInterpretation,
39410 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
39411 container:DefinedElement)
39412{
39413 find interpretation(problem,interpretation);
39414 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
39415 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class");
39416 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
39417 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eBounds reference ETypeParameter");
39418 find mustInstanceOfETypeParameter_class(problem,interpretation,container);
39419 find mayInstanceOfEGenericType_class(problem,interpretation,newObject);
39420 find mayInRelationeBounds_reference_ETypeParameter(problem,interpretation,container,newObject);
39421 find mustExist(problem, interpretation, container); 33928 find mustExist(problem, interpretation, container);
39422 neg find mustExist(problem, interpretation, newObject); 33929 neg find mustExist(problem, interpretation, newObject);
39423} 33930}
39424pattern createObject_EGenericType_class( 33931pattern createObject_InformationLink_class(
39425 problem:LogicProblem, interpretation:PartialInterpretation, 33932 problem:LogicProblem, interpretation:PartialInterpretation,
39426 typeInterpretation:PartialComplexTypeInterpretation) 33933 typeInterpretation:PartialComplexTypeInterpretation)
39427{ 33934{
39428 find interpretation(problem,interpretation); 33935 find interpretation(problem,interpretation);
39429 neg find hasElementInContainment(problem,interpretation); 33936 neg find hasElementInContainment(problem,interpretation);
39430 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 33937 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
39431 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class"); 33938 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class");
39432 find mayInstanceOfEGenericType_class(problem,interpretation,newObject); 33939 find mayInstanceOfInformationLink_class(problem,interpretation,newObject);
39433 find mayExist(problem, interpretation, newObject); 33940 find mayExist(problem, interpretation, newObject);
39434 neg find mustExist(problem, interpretation, newObject); 33941 neg find mustExist(problem, interpretation, newObject);
39435} 33942}
39436pattern createObject_EParameter_class_by_eParameters_reference_EOperation_with_eOperation_reference_EParameter( 33943pattern createObject_FunctionalInterface_class_by_interface_reference_FunctionalElement_with_element_reference_FunctionalInterface(
39437 problem:LogicProblem, interpretation:PartialInterpretation, 33944 problem:LogicProblem, interpretation:PartialInterpretation,
39438 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 33945 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
39439 container:DefinedElement) 33946 container:DefinedElement)
39440{ 33947{
39441 find interpretation(problem,interpretation); 33948 find interpretation(problem,interpretation);
39442 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 33949 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
39443 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EParameter class"); 33950 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
39444 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 33951 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
39445 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eParameters reference EOperation"); 33952 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"interface reference FunctionalElement");
39446 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 33953 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
39447 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eOperation reference EParameter"); 33954 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"element reference FunctionalInterface");
39448 find mustInstanceOfEOperation_class(problem,interpretation,container); 33955 find mustInstanceOfFunctionalElement_class(problem,interpretation,container);
39449 find mayInstanceOfEParameter_class(problem,interpretation,newObject); 33956 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
39450 find mayInRelationeParameters_reference_EOperation(problem,interpretation,container,newObject); 33957 find mayInRelationinterface_reference_FunctionalElement(problem,interpretation,container,newObject);
39451 find mustExist(problem, interpretation, container); 33958 find mustExist(problem, interpretation, container);
39452 neg find mustExist(problem, interpretation, newObject); 33959 neg find mustExist(problem, interpretation, newObject);
39453} 33960}
39454pattern createObject_EParameter_class( 33961pattern createObject_FunctionalInterface_class(
39455 problem:LogicProblem, interpretation:PartialInterpretation, 33962 problem:LogicProblem, interpretation:PartialInterpretation,
39456 typeInterpretation:PartialComplexTypeInterpretation) 33963 typeInterpretation:PartialComplexTypeInterpretation)
39457{ 33964{
39458 find interpretation(problem,interpretation); 33965 find interpretation(problem,interpretation);
39459 neg find hasElementInContainment(problem,interpretation); 33966 neg find hasElementInContainment(problem,interpretation);
39460 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 33967 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
39461 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EParameter class"); 33968 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
39462 find mayInstanceOfEParameter_class(problem,interpretation,newObject); 33969 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
39463 find mayExist(problem, interpretation, newObject); 33970 find mayExist(problem, interpretation, newObject);
39464 neg find mustExist(problem, interpretation, newObject); 33971 neg find mustExist(problem, interpretation, newObject);
39465} 33972}
39466pattern createObject_EAttribute_class_by_eStructuralFeatures_reference_EClass_with_eContainingClass_reference_EStructuralFeature( 33973pattern createObject_FunctionalOutput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData(
39467 problem:LogicProblem, interpretation:PartialInterpretation, 33974 problem:LogicProblem, interpretation:PartialInterpretation,
39468 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 33975 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
39469 container:DefinedElement) 33976 container:DefinedElement)
39470{ 33977{
39471 find interpretation(problem,interpretation); 33978 find interpretation(problem,interpretation);
39472 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 33979 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
39473 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EAttribute class"); 33980 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class");
39474 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 33981 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
39475 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eStructuralFeatures reference EClass"); 33982 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface");
39476 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 33983 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
39477 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eContainingClass reference EStructuralFeature"); 33984 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData");
39478 find mustInstanceOfEClass_class(problem,interpretation,container); 33985 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container);
39479 find mayInstanceOfEAttribute_class(problem,interpretation,newObject); 33986 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject);
39480 find mayInRelationeStructuralFeatures_reference_EClass(problem,interpretation,container,newObject); 33987 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject);
39481 find mustExist(problem, interpretation, container); 33988 find mustExist(problem, interpretation, container);
39482 neg find mustExist(problem, interpretation, newObject); 33989 neg find mustExist(problem, interpretation, newObject);
39483} 33990}
39484pattern createObject_EAttribute_class( 33991pattern createObject_FunctionalOutput_class(
39485 problem:LogicProblem, interpretation:PartialInterpretation, 33992 problem:LogicProblem, interpretation:PartialInterpretation,
39486 typeInterpretation:PartialComplexTypeInterpretation) 33993 typeInterpretation:PartialComplexTypeInterpretation)
39487{ 33994{
39488 find interpretation(problem,interpretation); 33995 find interpretation(problem,interpretation);
39489 neg find hasElementInContainment(problem,interpretation); 33996 neg find hasElementInContainment(problem,interpretation);
39490 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 33997 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
39491 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EAttribute class"); 33998 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class");
39492 find mayInstanceOfEAttribute_class(problem,interpretation,newObject); 33999 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject);
39493 find mayExist(problem, interpretation, newObject); 34000 find mayExist(problem, interpretation, newObject);
39494 neg find mustExist(problem, interpretation, newObject); 34001 neg find mustExist(problem, interpretation, newObject);
39495} 34002}
39496pattern createObject_EEnumLiteral_class_by_eLiterals_reference_EEnum_with_eEnum_reference_EEnumLiteral( 34003pattern createObject_FunctionalArchitectureModel_class(
39497 problem:LogicProblem, interpretation:PartialInterpretation,
39498 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
39499 container:DefinedElement)
39500{
39501 find interpretation(problem,interpretation);
39502 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
39503 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EEnumLiteral class");
39504 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
39505 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eLiterals reference EEnum");
39506 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
39507 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eEnum reference EEnumLiteral");
39508 find mustInstanceOfEEnum_class(problem,interpretation,container);
39509 find mayInstanceOfEEnumLiteral_class(problem,interpretation,newObject);
39510 find mayInRelationeLiterals_reference_EEnum(problem,interpretation,container,newObject);
39511 find mustExist(problem, interpretation, container);
39512 neg find mustExist(problem, interpretation, newObject);
39513}
39514pattern createObject_EEnumLiteral_class(
39515 problem:LogicProblem, interpretation:PartialInterpretation, 34004 problem:LogicProblem, interpretation:PartialInterpretation,
39516 typeInterpretation:PartialComplexTypeInterpretation) 34005 typeInterpretation:PartialComplexTypeInterpretation)
39517{ 34006{
39518 find interpretation(problem,interpretation); 34007 find interpretation(problem,interpretation);
39519 neg find hasElementInContainment(problem,interpretation); 34008 neg find hasElementInContainment(problem,interpretation);
39520 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 34009 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
39521 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EEnumLiteral class"); 34010 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalArchitectureModel class");
39522 find mayInstanceOfEEnumLiteral_class(problem,interpretation,newObject); 34011 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,newObject);
39523 find mayExist(problem, interpretation, newObject); 34012 find mayExist(problem, interpretation, newObject);
39524 neg find mustExist(problem, interpretation, newObject); 34013 neg find mustExist(problem, interpretation, newObject);
39525} 34014}
39526pattern createObject_EDataType_class_by_eClassifiers_reference_EPackage_with_ePackage_reference_EClassifier( 34015pattern createObject_FunctionalInput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData(
39527 problem:LogicProblem, interpretation:PartialInterpretation, 34016 problem:LogicProblem, interpretation:PartialInterpretation,
39528 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 34017 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
39529 container:DefinedElement) 34018 container:DefinedElement)
39530{ 34019{
39531 find interpretation(problem,interpretation); 34020 find interpretation(problem,interpretation);
39532 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 34021 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
39533 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EDataType class"); 34022 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class");
39534 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 34023 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
39535 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eClassifiers reference EPackage"); 34024 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface");
39536 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 34025 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
39537 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"ePackage reference EClassifier"); 34026 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData");
39538 find mustInstanceOfEPackage_class(problem,interpretation,container); 34027 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container);
39539 find mayInstanceOfEDataType_class(problem,interpretation,newObject); 34028 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
39540 find mayInRelationeClassifiers_reference_EPackage(problem,interpretation,container,newObject); 34029 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject);
39541 find mustExist(problem, interpretation, container); 34030 find mustExist(problem, interpretation, container);
39542 neg find mustExist(problem, interpretation, newObject); 34031 neg find mustExist(problem, interpretation, newObject);
39543} 34032}
39544pattern createObject_EDataType_class( 34033pattern createObject_FunctionalInput_class(
39545 problem:LogicProblem, interpretation:PartialInterpretation, 34034 problem:LogicProblem, interpretation:PartialInterpretation,
39546 typeInterpretation:PartialComplexTypeInterpretation) 34035 typeInterpretation:PartialComplexTypeInterpretation)
39547{ 34036{
39548 find interpretation(problem,interpretation); 34037 find interpretation(problem,interpretation);
39549 neg find hasElementInContainment(problem,interpretation); 34038 neg find hasElementInContainment(problem,interpretation);
39550 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 34039 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
39551 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EDataType class"); 34040 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class");
39552 find mayInstanceOfEDataType_class(problem,interpretation,newObject); 34041 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
39553 find mayExist(problem, interpretation, newObject); 34042 find mayExist(problem, interpretation, newObject);
39554 neg find mustExist(problem, interpretation, newObject); 34043 neg find mustExist(problem, interpretation, newObject);
39555} 34044}
@@ -39557,950 +34046,135 @@ pattern createObject_EDataType_class(
39557////////// 34046//////////
39558// 4.2 Type refinement 34047// 4.2 Type refinement
39559////////// 34048//////////
39560pattern refineTypeTo_EAnnotation_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 34049pattern refineTypeTo_FAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
39561 find interpretation(problem,interpretation);
39562 PartialInterpretation.newElements(interpretation,element);
39563 find mayInstanceOfEAnnotation_class(problem,interpretation,element);
39564 neg find mustInstanceOfEObject_class(problem,interpretation,element);
39565 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
39566 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
39567 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
39568 neg find mustInstanceOfENamedElement_class(problem,interpretation,element);
39569}
39570pattern refineTypeTo_EClass_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
39571 find interpretation(problem,interpretation);
39572 PartialInterpretation.newElements(interpretation,element);
39573 find mayInstanceOfEClass_class(problem,interpretation,element);
39574 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
39575 neg find mustInstanceOfEObject_class(problem,interpretation,element);
39576 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
39577 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
39578 neg find mustInstanceOfEClass_class(problem,interpretation,element);
39579 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
39580 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
39581 neg find mustInstanceOfEDataType_class(problem,interpretation,element);
39582 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
39583 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
39584}
39585pattern refineTypeTo_EEnum_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
39586 find interpretation(problem,interpretation);
39587 PartialInterpretation.newElements(interpretation,element);
39588 find mayInstanceOfEEnum_class(problem,interpretation,element);
39589 neg find mustInstanceOfEObject_class(problem,interpretation,element);
39590 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
39591 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
39592 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
39593 neg find mustInstanceOfEClass_class(problem,interpretation,element);
39594 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
39595 neg find mustInstanceOfEEnum_class(problem,interpretation,element);
39596 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
39597 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
39598 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
39599}
39600pattern refineTypeTo_EReference_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
39601 find interpretation(problem,interpretation);
39602 PartialInterpretation.newElements(interpretation,element);
39603 find mayInstanceOfEReference_class(problem,interpretation,element);
39604 neg find mustInstanceOfEObject_class(problem,interpretation,element);
39605 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
39606 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
39607 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
39608 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
39609 neg find mustInstanceOfEAttribute_class(problem,interpretation,element);
39610 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
39611 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
39612 neg find mustInstanceOfEReference_class(problem,interpretation,element);
39613 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
39614 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
39615 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
39616}
39617pattern refineTypeTo_EOperation_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
39618 find interpretation(problem,interpretation);
39619 PartialInterpretation.newElements(interpretation,element);
39620 find mayInstanceOfEOperation_class(problem,interpretation,element);
39621 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
39622 neg find mustInstanceOfEObject_class(problem,interpretation,element);
39623 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
39624 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
39625 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
39626 neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element);
39627 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
39628 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
39629 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
39630 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
39631 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
39632}
39633pattern refineTypeTo_ETypeParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
39634 find interpretation(problem,interpretation);
39635 PartialInterpretation.newElements(interpretation,element);
39636 find mayInstanceOfETypeParameter_class(problem,interpretation,element);
39637 neg find mustInstanceOfEObject_class(problem,interpretation,element);
39638 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
39639 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
39640 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
39641 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
39642 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
39643 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
39644 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
39645 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
39646}
39647pattern refineTypeTo_EPackage_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
39648 find interpretation(problem,interpretation);
39649 PartialInterpretation.newElements(interpretation,element);
39650 find mayInstanceOfEPackage_class_UndefinedPart(problem,interpretation,element);
39651 neg find mustInstanceOfEPackage_class_UndefinedPart(problem,interpretation,element);
39652 neg find mustInstanceOfEObject_class(problem,interpretation,element);
39653 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
39654 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
39655 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
39656 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
39657 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
39658 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
39659 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
39660}
39661pattern refineTypeTo_EStringToStringMapEntry_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
39662 find interpretation(problem,interpretation);
39663 PartialInterpretation.newElements(interpretation,element);
39664 find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
39665 neg find mustInstanceOfEObject_class(problem,interpretation,element);
39666 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
39667 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
39668 neg find mustInstanceOfEModelElement_class(problem,interpretation,element);
39669}
39670pattern refineTypeTo_EObject_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
39671 find interpretation(problem,interpretation);
39672 PartialInterpretation.newElements(interpretation,element);
39673 find mayInstanceOfEObject_class(problem,interpretation,element);
39674 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
39675 neg find mustInstanceOfEObject_class(problem,interpretation,element);
39676 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
39677 neg find mustInstanceOfEModelElement_class(problem,interpretation,element);
39678}
39679pattern refineTypeTo_EGenericType_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
39680 find interpretation(problem,interpretation);
39681 PartialInterpretation.newElements(interpretation,element);
39682 find mayInstanceOfEGenericType_class(problem,interpretation,element);
39683 neg find mustInstanceOfEObject_class(problem,interpretation,element);
39684 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
39685 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
39686 neg find mustInstanceOfEModelElement_class(problem,interpretation,element);
39687}
39688pattern refineTypeTo_EParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
39689 find interpretation(problem,interpretation);
39690 PartialInterpretation.newElements(interpretation,element);
39691 find mayInstanceOfEParameter_class(problem,interpretation,element);
39692 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
39693 neg find mustInstanceOfEObject_class(problem,interpretation,element);
39694 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
39695 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
39696 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
39697 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
39698 neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element);
39699 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
39700 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
39701 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
39702 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
39703}
39704pattern refineTypeTo_EAttribute_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
39705 find interpretation(problem,interpretation);
39706 PartialInterpretation.newElements(interpretation,element);
39707 find mayInstanceOfEAttribute_class(problem,interpretation,element);
39708 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
39709 neg find mustInstanceOfEObject_class(problem,interpretation,element);
39710 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
39711 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
39712 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
39713 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
39714 neg find mustInstanceOfEAttribute_class(problem,interpretation,element);
39715 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
39716 neg find mustInstanceOfEReference_class(problem,interpretation,element);
39717 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
39718 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
39719 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
39720}
39721pattern refineTypeTo_EEnumLiteral_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
39722 find interpretation(problem,interpretation);
39723 PartialInterpretation.newElements(interpretation,element);
39724 find mayInstanceOfEEnumLiteral_class(problem,interpretation,element);
39725 neg find mustInstanceOfEObject_class(problem,interpretation,element);
39726 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
39727 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
39728 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
39729 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
39730 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
39731 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
39732 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
39733 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
39734}
39735pattern refineTypeTo_EDataType_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
39736 find interpretation(problem,interpretation);
39737 PartialInterpretation.newElements(interpretation,element);
39738 find mayInstanceOfEDataType_class(problem,interpretation,element);
39739 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
39740 neg find mustInstanceOfEObject_class(problem,interpretation,element);
39741 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
39742 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
39743 neg find mustInstanceOfEClass_class(problem,interpretation,element);
39744 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
39745 neg find mustInstanceOfEEnum_class(problem,interpretation,element);
39746 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
39747 neg find mustInstanceOfEDataType_class(problem,interpretation,element);
39748 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
39749 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
39750}
39751
39752//////////
39753// 4.3 Relation refinement
39754//////////
39755pattern refineRelation_eAttributeType_reference_EAttribute(
39756 problem:LogicProblem, interpretation:PartialInterpretation,
39757 relationIterpretation:PartialRelationInterpretation,
39758 from: DefinedElement, to: DefinedElement)
39759{
39760 find interpretation(problem,interpretation);
39761 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
39762 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAttributeType reference EAttribute");
39763 find mustExist(problem, interpretation, from);
39764 find mustExist(problem, interpretation, to);
39765 find mustInstanceOfEAttribute_class(problem,interpretation,from);
39766 find mustInstanceOfEDataType_class(problem,interpretation,to);
39767 find mayInRelationeAttributeType_reference_EAttribute(problem,interpretation,from,to);
39768 neg find mustInRelationeAttributeType_reference_EAttribute(problem,interpretation,from,to);
39769}
39770pattern refineRelation_references_reference_EAnnotation(
39771 problem:LogicProblem, interpretation:PartialInterpretation,
39772 relationIterpretation:PartialRelationInterpretation,
39773 from: DefinedElement, to: DefinedElement)
39774{
39775 find interpretation(problem,interpretation);
39776 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
39777 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"references reference EAnnotation");
39778 find mustExist(problem, interpretation, from);
39779 find mustExist(problem, interpretation, to);
39780 find mustInstanceOfEAnnotation_class(problem,interpretation,from);
39781 find mustInstanceOfEObject_class(problem,interpretation,to);
39782 find mayInRelationreferences_reference_EAnnotation(problem,interpretation,from,to);
39783 neg find mustInRelationreferences_reference_EAnnotation(problem,interpretation,from,to);
39784}
39785pattern refineRelation_eSuperTypes_reference_EClass(
39786 problem:LogicProblem, interpretation:PartialInterpretation,
39787 relationIterpretation:PartialRelationInterpretation,
39788 from: DefinedElement, to: DefinedElement)
39789{
39790 find interpretation(problem,interpretation);
39791 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
39792 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eSuperTypes reference EClass");
39793 find mustExist(problem, interpretation, from);
39794 find mustExist(problem, interpretation, to);
39795 find mustInstanceOfEClass_class(problem,interpretation,from);
39796 find mustInstanceOfEClass_class(problem,interpretation,to);
39797 find mayInRelationeSuperTypes_reference_EClass(problem,interpretation,from,to);
39798 neg find mustInRelationeSuperTypes_reference_EClass(problem,interpretation,from,to);
39799}
39800pattern refineRelation_eAllAttributes_reference_EClass(
39801 problem:LogicProblem, interpretation:PartialInterpretation,
39802 relationIterpretation:PartialRelationInterpretation,
39803 from: DefinedElement, to: DefinedElement)
39804{
39805 find interpretation(problem,interpretation);
39806 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
39807 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllAttributes reference EClass");
39808 find mustExist(problem, interpretation, from);
39809 find mustExist(problem, interpretation, to);
39810 find mustInstanceOfEClass_class(problem,interpretation,from);
39811 find mustInstanceOfEAttribute_class(problem,interpretation,to);
39812 find mayInRelationeAllAttributes_reference_EClass(problem,interpretation,from,to);
39813 neg find mustInRelationeAllAttributes_reference_EClass(problem,interpretation,from,to);
39814}
39815pattern refineRelation_eAllReferences_reference_EClass(
39816 problem:LogicProblem, interpretation:PartialInterpretation,
39817 relationIterpretation:PartialRelationInterpretation,
39818 from: DefinedElement, to: DefinedElement)
39819{
39820 find interpretation(problem,interpretation);
39821 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
39822 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllReferences reference EClass");
39823 find mustExist(problem, interpretation, from);
39824 find mustExist(problem, interpretation, to);
39825 find mustInstanceOfEClass_class(problem,interpretation,from);
39826 find mustInstanceOfEReference_class(problem,interpretation,to);
39827 find mayInRelationeAllReferences_reference_EClass(problem,interpretation,from,to);
39828 neg find mustInRelationeAllReferences_reference_EClass(problem,interpretation,from,to);
39829}
39830pattern refineRelation_eReferences_reference_EClass(
39831 problem:LogicProblem, interpretation:PartialInterpretation,
39832 relationIterpretation:PartialRelationInterpretation,
39833 from: DefinedElement, to: DefinedElement)
39834{
39835 find interpretation(problem,interpretation);
39836 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
39837 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eReferences reference EClass");
39838 find mustExist(problem, interpretation, from);
39839 find mustExist(problem, interpretation, to);
39840 find mustInstanceOfEClass_class(problem,interpretation,from);
39841 find mustInstanceOfEReference_class(problem,interpretation,to);
39842 find mayInRelationeReferences_reference_EClass(problem,interpretation,from,to);
39843 neg find mustInRelationeReferences_reference_EClass(problem,interpretation,from,to);
39844}
39845pattern refineRelation_eAttributes_reference_EClass(
39846 problem:LogicProblem, interpretation:PartialInterpretation,
39847 relationIterpretation:PartialRelationInterpretation,
39848 from: DefinedElement, to: DefinedElement)
39849{
39850 find interpretation(problem,interpretation);
39851 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
39852 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAttributes reference EClass");
39853 find mustExist(problem, interpretation, from);
39854 find mustExist(problem, interpretation, to);
39855 find mustInstanceOfEClass_class(problem,interpretation,from);
39856 find mustInstanceOfEAttribute_class(problem,interpretation,to);
39857 find mayInRelationeAttributes_reference_EClass(problem,interpretation,from,to);
39858 neg find mustInRelationeAttributes_reference_EClass(problem,interpretation,from,to);
39859}
39860pattern refineRelation_eAllContainments_reference_EClass(
39861 problem:LogicProblem, interpretation:PartialInterpretation,
39862 relationIterpretation:PartialRelationInterpretation,
39863 from: DefinedElement, to: DefinedElement)
39864{
39865 find interpretation(problem,interpretation);
39866 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
39867 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllContainments reference EClass");
39868 find mustExist(problem, interpretation, from);
39869 find mustExist(problem, interpretation, to);
39870 find mustInstanceOfEClass_class(problem,interpretation,from);
39871 find mustInstanceOfEReference_class(problem,interpretation,to);
39872 find mayInRelationeAllContainments_reference_EClass(problem,interpretation,from,to);
39873 neg find mustInRelationeAllContainments_reference_EClass(problem,interpretation,from,to);
39874}
39875pattern refineRelation_eAllOperations_reference_EClass(
39876 problem:LogicProblem, interpretation:PartialInterpretation,
39877 relationIterpretation:PartialRelationInterpretation,
39878 from: DefinedElement, to: DefinedElement)
39879{
39880 find interpretation(problem,interpretation);
39881 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
39882 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllOperations reference EClass");
39883 find mustExist(problem, interpretation, from);
39884 find mustExist(problem, interpretation, to);
39885 find mustInstanceOfEClass_class(problem,interpretation,from);
39886 find mustInstanceOfEOperation_class(problem,interpretation,to);
39887 find mayInRelationeAllOperations_reference_EClass(problem,interpretation,from,to);
39888 neg find mustInRelationeAllOperations_reference_EClass(problem,interpretation,from,to);
39889}
39890pattern refineRelation_eAllStructuralFeatures_reference_EClass(
39891 problem:LogicProblem, interpretation:PartialInterpretation,
39892 relationIterpretation:PartialRelationInterpretation,
39893 from: DefinedElement, to: DefinedElement)
39894{
39895 find interpretation(problem,interpretation);
39896 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
39897 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllStructuralFeatures reference EClass");
39898 find mustExist(problem, interpretation, from);
39899 find mustExist(problem, interpretation, to);
39900 find mustInstanceOfEClass_class(problem,interpretation,from);
39901 find mustInstanceOfEStructuralFeature_class(problem,interpretation,to);
39902 find mayInRelationeAllStructuralFeatures_reference_EClass(problem,interpretation,from,to);
39903 neg find mustInRelationeAllStructuralFeatures_reference_EClass(problem,interpretation,from,to);
39904}
39905pattern refineRelation_eAllSuperTypes_reference_EClass(
39906 problem:LogicProblem, interpretation:PartialInterpretation,
39907 relationIterpretation:PartialRelationInterpretation,
39908 from: DefinedElement, to: DefinedElement)
39909{
39910 find interpretation(problem,interpretation);
39911 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
39912 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllSuperTypes reference EClass");
39913 find mustExist(problem, interpretation, from);
39914 find mustExist(problem, interpretation, to);
39915 find mustInstanceOfEClass_class(problem,interpretation,from);
39916 find mustInstanceOfEClass_class(problem,interpretation,to);
39917 find mayInRelationeAllSuperTypes_reference_EClass(problem,interpretation,from,to);
39918 neg find mustInRelationeAllSuperTypes_reference_EClass(problem,interpretation,from,to);
39919}
39920pattern refineRelation_eIDAttribute_reference_EClass(
39921 problem:LogicProblem, interpretation:PartialInterpretation,
39922 relationIterpretation:PartialRelationInterpretation,
39923 from: DefinedElement, to: DefinedElement)
39924{
39925 find interpretation(problem,interpretation);
39926 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
39927 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eIDAttribute reference EClass");
39928 find mustExist(problem, interpretation, from);
39929 find mustExist(problem, interpretation, to);
39930 find mustInstanceOfEClass_class(problem,interpretation,from);
39931 find mustInstanceOfEAttribute_class(problem,interpretation,to);
39932 find mayInRelationeIDAttribute_reference_EClass(problem,interpretation,from,to);
39933 neg find mustInRelationeIDAttribute_reference_EClass(problem,interpretation,from,to);
39934}
39935pattern refineRelation_eAllGenericSuperTypes_reference_EClass(
39936 problem:LogicProblem, interpretation:PartialInterpretation,
39937 relationIterpretation:PartialRelationInterpretation,
39938 from: DefinedElement, to: DefinedElement)
39939{
39940 find interpretation(problem,interpretation);
39941 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
39942 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllGenericSuperTypes reference EClass");
39943 find mustExist(problem, interpretation, from);
39944 find mustExist(problem, interpretation, to);
39945 find mustInstanceOfEClass_class(problem,interpretation,from);
39946 find mustInstanceOfEGenericType_class(problem,interpretation,to);
39947 find mayInRelationeAllGenericSuperTypes_reference_EClass(problem,interpretation,from,to);
39948 neg find mustInRelationeAllGenericSuperTypes_reference_EClass(problem,interpretation,from,to);
39949}
39950pattern refineRelation_eExceptions_reference_EOperation(
39951 problem:LogicProblem, interpretation:PartialInterpretation,
39952 relationIterpretation:PartialRelationInterpretation,
39953 from: DefinedElement, to: DefinedElement)
39954{
39955 find interpretation(problem,interpretation);
39956 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
39957 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eExceptions reference EOperation");
39958 find mustExist(problem, interpretation, from);
39959 find mustExist(problem, interpretation, to);
39960 find mustInstanceOfEOperation_class(problem,interpretation,from);
39961 find mustInstanceOfEClassifier_class(problem,interpretation,to);
39962 find mayInRelationeExceptions_reference_EOperation(problem,interpretation,from,to);
39963 neg find mustInRelationeExceptions_reference_EOperation(problem,interpretation,from,to);
39964}
39965pattern refineRelation_eOpposite_reference_EReference(
39966 problem:LogicProblem, interpretation:PartialInterpretation,
39967 relationIterpretation:PartialRelationInterpretation,
39968 from: DefinedElement, to: DefinedElement)
39969{
39970 find interpretation(problem,interpretation);
39971 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
39972 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eOpposite reference EReference");
39973 find mustExist(problem, interpretation, from);
39974 find mustExist(problem, interpretation, to);
39975 find mustInstanceOfEReference_class(problem,interpretation,from);
39976 find mustInstanceOfEReference_class(problem,interpretation,to);
39977 find mayInRelationeOpposite_reference_EReference(problem,interpretation,from,to);
39978 neg find mustInRelationeOpposite_reference_EReference(problem,interpretation,from,to);
39979}
39980pattern refineRelation_eReferenceType_reference_EReference(
39981 problem:LogicProblem, interpretation:PartialInterpretation,
39982 relationIterpretation:PartialRelationInterpretation,
39983 from: DefinedElement, to: DefinedElement)
39984{
39985 find interpretation(problem,interpretation);
39986 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
39987 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eReferenceType reference EReference");
39988 find mustExist(problem, interpretation, from);
39989 find mustExist(problem, interpretation, to);
39990 find mustInstanceOfEReference_class(problem,interpretation,from);
39991 find mustInstanceOfEClass_class(problem,interpretation,to);
39992 find mayInRelationeReferenceType_reference_EReference(problem,interpretation,from,to);
39993 neg find mustInRelationeReferenceType_reference_EReference(problem,interpretation,from,to);
39994}
39995pattern refineRelation_eKeys_reference_EReference(
39996 problem:LogicProblem, interpretation:PartialInterpretation,
39997 relationIterpretation:PartialRelationInterpretation,
39998 from: DefinedElement, to: DefinedElement)
39999{
40000 find interpretation(problem,interpretation);
40001 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
40002 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eKeys reference EReference");
40003 find mustExist(problem, interpretation, from);
40004 find mustExist(problem, interpretation, to);
40005 find mustInstanceOfEReference_class(problem,interpretation,from);
40006 find mustInstanceOfEAttribute_class(problem,interpretation,to);
40007 find mayInRelationeKeys_reference_EReference(problem,interpretation,from,to);
40008 neg find mustInRelationeKeys_reference_EReference(problem,interpretation,from,to);
40009}
40010pattern refineRelation_eType_reference_ETypedElement(
40011 problem:LogicProblem, interpretation:PartialInterpretation,
40012 relationIterpretation:PartialRelationInterpretation,
40013 from: DefinedElement, to: DefinedElement)
40014{
40015 find interpretation(problem,interpretation);
40016 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
40017 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eType reference ETypedElement");
40018 find mustExist(problem, interpretation, from);
40019 find mustExist(problem, interpretation, to);
40020 find mustInstanceOfETypedElement_class(problem,interpretation,from);
40021 find mustInstanceOfEClassifier_class(problem,interpretation,to);
40022 find mayInRelationeType_reference_ETypedElement(problem,interpretation,from,to);
40023 neg find mustInRelationeType_reference_ETypedElement(problem,interpretation,from,to);
40024}
40025pattern refineRelation_eRawType_reference_EGenericType(
40026 problem:LogicProblem, interpretation:PartialInterpretation,
40027 relationIterpretation:PartialRelationInterpretation,
40028 from: DefinedElement, to: DefinedElement)
40029{
40030 find interpretation(problem,interpretation);
40031 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
40032 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eRawType reference EGenericType");
40033 find mustExist(problem, interpretation, from);
40034 find mustExist(problem, interpretation, to);
40035 find mustInstanceOfEGenericType_class(problem,interpretation,from);
40036 find mustInstanceOfEClassifier_class(problem,interpretation,to);
40037 find mayInRelationeRawType_reference_EGenericType(problem,interpretation,from,to);
40038 neg find mustInRelationeRawType_reference_EGenericType(problem,interpretation,from,to);
40039}
40040pattern refineRelation_eTypeParameter_reference_EGenericType(
40041 problem:LogicProblem, interpretation:PartialInterpretation,
40042 relationIterpretation:PartialRelationInterpretation,
40043 from: DefinedElement, to: DefinedElement)
40044{
40045 find interpretation(problem,interpretation);
40046 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
40047 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eTypeParameter reference EGenericType");
40048 find mustExist(problem, interpretation, from);
40049 find mustExist(problem, interpretation, to);
40050 find mustInstanceOfEGenericType_class(problem,interpretation,from);
40051 find mustInstanceOfETypeParameter_class(problem,interpretation,to);
40052 find mayInRelationeTypeParameter_reference_EGenericType(problem,interpretation,from,to);
40053 neg find mustInRelationeTypeParameter_reference_EGenericType(problem,interpretation,from,to);
40054}
40055pattern refineRelation_eClassifier_reference_EGenericType(
40056 problem:LogicProblem, interpretation:PartialInterpretation,
40057 relationIterpretation:PartialRelationInterpretation,
40058 from: DefinedElement, to: DefinedElement)
40059{
40060 find interpretation(problem,interpretation);
40061 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
40062 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eClassifier reference EGenericType");
40063 find mustExist(problem, interpretation, from);
40064 find mustExist(problem, interpretation, to);
40065 find mustInstanceOfEGenericType_class(problem,interpretation,from);
40066 find mustInstanceOfEClassifier_class(problem,interpretation,to);
40067 find mayInRelationeClassifier_reference_EGenericType(problem,interpretation,from,to);
40068 neg find mustInRelationeClassifier_reference_EGenericType(problem,interpretation,from,to);
40069}
40070pattern refineRelation_iD_attribute_EAttribute(
40071 problem:LogicProblem, interpretation:PartialInterpretation,
40072 relationIterpretation:PartialRelationInterpretation,
40073 from: DefinedElement, to: DefinedElement)
40074{
40075 find interpretation(problem,interpretation);
40076 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
40077 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"iD attribute EAttribute");
40078 find mustExist(problem, interpretation, from);
40079 find mustExist(problem, interpretation, to);
40080 find mustInstanceOfEAttribute_class(problem,interpretation,from);
40081 BooleanElement(to);
40082 find mayInRelationiD_attribute_EAttribute(problem,interpretation,from,to);
40083 neg find mustInRelationiD_attribute_EAttribute(problem,interpretation,from,to);
40084}
40085pattern refineRelation_source_attribute_EAnnotation(
40086 problem:LogicProblem, interpretation:PartialInterpretation,
40087 relationIterpretation:PartialRelationInterpretation,
40088 from: DefinedElement, to: DefinedElement)
40089{
40090 find interpretation(problem,interpretation);
40091 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
40092 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"source attribute EAnnotation");
40093 find mustExist(problem, interpretation, from);
40094 find mustExist(problem, interpretation, to);
40095 find mustInstanceOfEAnnotation_class(problem,interpretation,from);
40096 StringElement(to);
40097 find mayInRelationsource_attribute_EAnnotation(problem,interpretation,from,to);
40098 neg find mustInRelationsource_attribute_EAnnotation(problem,interpretation,from,to);
40099}
40100pattern refineRelation_abstract_attribute_EClass(
40101 problem:LogicProblem, interpretation:PartialInterpretation,
40102 relationIterpretation:PartialRelationInterpretation,
40103 from: DefinedElement, to: DefinedElement)
40104{
40105 find interpretation(problem,interpretation);
40106 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
40107 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"abstract attribute EClass");
40108 find mustExist(problem, interpretation, from);
40109 find mustExist(problem, interpretation, to);
40110 find mustInstanceOfEClass_class(problem,interpretation,from);
40111 BooleanElement(to);
40112 find mayInRelationabstract_attribute_EClass(problem,interpretation,from,to);
40113 neg find mustInRelationabstract_attribute_EClass(problem,interpretation,from,to);
40114}
40115pattern refineRelation_interface_attribute_EClass(
40116 problem:LogicProblem, interpretation:PartialInterpretation,
40117 relationIterpretation:PartialRelationInterpretation,
40118 from: DefinedElement, to: DefinedElement)
40119{
40120 find interpretation(problem,interpretation);
40121 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
40122 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"interface attribute EClass");
40123 find mustExist(problem, interpretation, from);
40124 find mustExist(problem, interpretation, to);
40125 find mustInstanceOfEClass_class(problem,interpretation,from);
40126 BooleanElement(to);
40127 find mayInRelationinterface_attribute_EClass(problem,interpretation,from,to);
40128 neg find mustInRelationinterface_attribute_EClass(problem,interpretation,from,to);
40129}
40130pattern refineRelation_instanceClassName_attribute_EClassifier(
40131 problem:LogicProblem, interpretation:PartialInterpretation,
40132 relationIterpretation:PartialRelationInterpretation,
40133 from: DefinedElement, to: DefinedElement)
40134{
40135 find interpretation(problem,interpretation);
40136 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
40137 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"instanceClassName attribute EClassifier");
40138 find mustExist(problem, interpretation, from);
40139 find mustExist(problem, interpretation, to);
40140 find mustInstanceOfEClassifier_class(problem,interpretation,from);
40141 StringElement(to);
40142 find mayInRelationinstanceClassName_attribute_EClassifier(problem,interpretation,from,to);
40143 neg find mustInRelationinstanceClassName_attribute_EClassifier(problem,interpretation,from,to);
40144}
40145pattern refineRelation_instanceTypeName_attribute_EClassifier(
40146 problem:LogicProblem, interpretation:PartialInterpretation,
40147 relationIterpretation:PartialRelationInterpretation,
40148 from: DefinedElement, to: DefinedElement)
40149{
40150 find interpretation(problem,interpretation);
40151 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
40152 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"instanceTypeName attribute EClassifier");
40153 find mustExist(problem, interpretation, from);
40154 find mustExist(problem, interpretation, to);
40155 find mustInstanceOfEClassifier_class(problem,interpretation,from);
40156 StringElement(to);
40157 find mayInRelationinstanceTypeName_attribute_EClassifier(problem,interpretation,from,to);
40158 neg find mustInRelationinstanceTypeName_attribute_EClassifier(problem,interpretation,from,to);
40159}
40160pattern refineRelation_serializable_attribute_EDataType(
40161 problem:LogicProblem, interpretation:PartialInterpretation,
40162 relationIterpretation:PartialRelationInterpretation,
40163 from: DefinedElement, to: DefinedElement)
40164{
40165 find interpretation(problem,interpretation);
40166 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
40167 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"serializable attribute EDataType");
40168 find mustExist(problem, interpretation, from);
40169 find mustExist(problem, interpretation, to);
40170 find mustInstanceOfEDataType_class(problem,interpretation,from);
40171 BooleanElement(to);
40172 find mayInRelationserializable_attribute_EDataType(problem,interpretation,from,to);
40173 neg find mustInRelationserializable_attribute_EDataType(problem,interpretation,from,to);
40174}
40175pattern refineRelation_value_attribute_EEnumLiteral(
40176 problem:LogicProblem, interpretation:PartialInterpretation,
40177 relationIterpretation:PartialRelationInterpretation,
40178 from: DefinedElement, to: DefinedElement)
40179{
40180 find interpretation(problem,interpretation);
40181 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
40182 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"value attribute EEnumLiteral");
40183 find mustExist(problem, interpretation, from);
40184 find mustExist(problem, interpretation, to);
40185 find mustInstanceOfEEnumLiteral_class(problem,interpretation,from);
40186 IntegerElement(to);
40187 find mayInRelationvalue_attribute_EEnumLiteral(problem,interpretation,from,to);
40188 neg find mustInRelationvalue_attribute_EEnumLiteral(problem,interpretation,from,to);
40189}
40190pattern refineRelation_literal_attribute_EEnumLiteral(
40191 problem:LogicProblem, interpretation:PartialInterpretation,
40192 relationIterpretation:PartialRelationInterpretation,
40193 from: DefinedElement, to: DefinedElement)
40194{
40195 find interpretation(problem,interpretation);
40196 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
40197 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"literal attribute EEnumLiteral");
40198 find mustExist(problem, interpretation, from);
40199 find mustExist(problem, interpretation, to);
40200 find mustInstanceOfEEnumLiteral_class(problem,interpretation,from);
40201 StringElement(to);
40202 find mayInRelationliteral_attribute_EEnumLiteral(problem,interpretation,from,to);
40203 neg find mustInRelationliteral_attribute_EEnumLiteral(problem,interpretation,from,to);
40204}
40205pattern refineRelation_name_attribute_ENamedElement(
40206 problem:LogicProblem, interpretation:PartialInterpretation,
40207 relationIterpretation:PartialRelationInterpretation,
40208 from: DefinedElement, to: DefinedElement)
40209{
40210 find interpretation(problem,interpretation);
40211 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
40212 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"name attribute ENamedElement");
40213 find mustExist(problem, interpretation, from);
40214 find mustExist(problem, interpretation, to);
40215 find mustInstanceOfENamedElement_class(problem,interpretation,from);
40216 StringElement(to);
40217 find mayInRelationname_attribute_ENamedElement(problem,interpretation,from,to);
40218 neg find mustInRelationname_attribute_ENamedElement(problem,interpretation,from,to);
40219}
40220pattern refineRelation_nsURI_attribute_EPackage(
40221 problem:LogicProblem, interpretation:PartialInterpretation,
40222 relationIterpretation:PartialRelationInterpretation,
40223 from: DefinedElement, to: DefinedElement)
40224{
40225 find interpretation(problem,interpretation);
40226 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
40227 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"nsURI attribute EPackage");
40228 find mustExist(problem, interpretation, from);
40229 find mustExist(problem, interpretation, to);
40230 find mustInstanceOfEPackage_class(problem,interpretation,from);
40231 StringElement(to);
40232 find mayInRelationnsURI_attribute_EPackage(problem,interpretation,from,to);
40233 neg find mustInRelationnsURI_attribute_EPackage(problem,interpretation,from,to);
40234}
40235pattern refineRelation_nsPrefix_attribute_EPackage(
40236 problem:LogicProblem, interpretation:PartialInterpretation,
40237 relationIterpretation:PartialRelationInterpretation,
40238 from: DefinedElement, to: DefinedElement)
40239{
40240 find interpretation(problem,interpretation);
40241 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
40242 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"nsPrefix attribute EPackage");
40243 find mustExist(problem, interpretation, from);
40244 find mustExist(problem, interpretation, to);
40245 find mustInstanceOfEPackage_class(problem,interpretation,from);
40246 StringElement(to);
40247 find mayInRelationnsPrefix_attribute_EPackage(problem,interpretation,from,to);
40248 neg find mustInRelationnsPrefix_attribute_EPackage(problem,interpretation,from,to);
40249}
40250pattern refineRelation_containment_attribute_EReference(
40251 problem:LogicProblem, interpretation:PartialInterpretation,
40252 relationIterpretation:PartialRelationInterpretation,
40253 from: DefinedElement, to: DefinedElement)
40254{
40255 find interpretation(problem,interpretation);
40256 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
40257 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"containment attribute EReference");
40258 find mustExist(problem, interpretation, from);
40259 find mustExist(problem, interpretation, to);
40260 find mustInstanceOfEReference_class(problem,interpretation,from);
40261 BooleanElement(to);
40262 find mayInRelationcontainment_attribute_EReference(problem,interpretation,from,to);
40263 neg find mustInRelationcontainment_attribute_EReference(problem,interpretation,from,to);
40264}
40265pattern refineRelation_container_attribute_EReference(
40266 problem:LogicProblem, interpretation:PartialInterpretation,
40267 relationIterpretation:PartialRelationInterpretation,
40268 from: DefinedElement, to: DefinedElement)
40269{
40270 find interpretation(problem,interpretation);
40271 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
40272 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"container attribute EReference");
40273 find mustExist(problem, interpretation, from);
40274 find mustExist(problem, interpretation, to);
40275 find mustInstanceOfEReference_class(problem,interpretation,from);
40276 BooleanElement(to);
40277 find mayInRelationcontainer_attribute_EReference(problem,interpretation,from,to);
40278 neg find mustInRelationcontainer_attribute_EReference(problem,interpretation,from,to);
40279}
40280pattern refineRelation_resolveProxies_attribute_EReference(
40281 problem:LogicProblem, interpretation:PartialInterpretation,
40282 relationIterpretation:PartialRelationInterpretation,
40283 from: DefinedElement, to: DefinedElement)
40284{
40285 find interpretation(problem,interpretation);
40286 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
40287 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"resolveProxies attribute EReference");
40288 find mustExist(problem, interpretation, from);
40289 find mustExist(problem, interpretation, to);
40290 find mustInstanceOfEReference_class(problem,interpretation,from);
40291 BooleanElement(to);
40292 find mayInRelationresolveProxies_attribute_EReference(problem,interpretation,from,to);
40293 neg find mustInRelationresolveProxies_attribute_EReference(problem,interpretation,from,to);
40294}
40295pattern refineRelation_changeable_attribute_EStructuralFeature(
40296 problem:LogicProblem, interpretation:PartialInterpretation,
40297 relationIterpretation:PartialRelationInterpretation,
40298 from: DefinedElement, to: DefinedElement)
40299{
40300 find interpretation(problem,interpretation);
40301 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
40302 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"changeable attribute EStructuralFeature");
40303 find mustExist(problem, interpretation, from);
40304 find mustExist(problem, interpretation, to);
40305 find mustInstanceOfEStructuralFeature_class(problem,interpretation,from);
40306 BooleanElement(to);
40307 find mayInRelationchangeable_attribute_EStructuralFeature(problem,interpretation,from,to);
40308 neg find mustInRelationchangeable_attribute_EStructuralFeature(problem,interpretation,from,to);
40309}
40310pattern refineRelation_volatile_attribute_EStructuralFeature(
40311 problem:LogicProblem, interpretation:PartialInterpretation,
40312 relationIterpretation:PartialRelationInterpretation,
40313 from: DefinedElement, to: DefinedElement)
40314{
40315 find interpretation(problem,interpretation);
40316 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
40317 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"volatile attribute EStructuralFeature");
40318 find mustExist(problem, interpretation, from);
40319 find mustExist(problem, interpretation, to);
40320 find mustInstanceOfEStructuralFeature_class(problem,interpretation,from);
40321 BooleanElement(to);
40322 find mayInRelationvolatile_attribute_EStructuralFeature(problem,interpretation,from,to);
40323 neg find mustInRelationvolatile_attribute_EStructuralFeature(problem,interpretation,from,to);
40324}
40325pattern refineRelation_transient_attribute_EStructuralFeature(
40326 problem:LogicProblem, interpretation:PartialInterpretation,
40327 relationIterpretation:PartialRelationInterpretation,
40328 from: DefinedElement, to: DefinedElement)
40329{
40330 find interpretation(problem,interpretation);
40331 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
40332 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"transient attribute EStructuralFeature");
40333 find mustExist(problem, interpretation, from);
40334 find mustExist(problem, interpretation, to);
40335 find mustInstanceOfEStructuralFeature_class(problem,interpretation,from);
40336 BooleanElement(to);
40337 find mayInRelationtransient_attribute_EStructuralFeature(problem,interpretation,from,to);
40338 neg find mustInRelationtransient_attribute_EStructuralFeature(problem,interpretation,from,to);
40339}
40340pattern refineRelation_defaultValueLiteral_attribute_EStructuralFeature(
40341 problem:LogicProblem, interpretation:PartialInterpretation,
40342 relationIterpretation:PartialRelationInterpretation,
40343 from: DefinedElement, to: DefinedElement)
40344{
40345 find interpretation(problem,interpretation);
40346 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
40347 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"defaultValueLiteral attribute EStructuralFeature");
40348 find mustExist(problem, interpretation, from);
40349 find mustExist(problem, interpretation, to);
40350 find mustInstanceOfEStructuralFeature_class(problem,interpretation,from);
40351 StringElement(to);
40352 find mayInRelationdefaultValueLiteral_attribute_EStructuralFeature(problem,interpretation,from,to);
40353 neg find mustInRelationdefaultValueLiteral_attribute_EStructuralFeature(problem,interpretation,from,to);
40354}
40355pattern refineRelation_unsettable_attribute_EStructuralFeature(
40356 problem:LogicProblem, interpretation:PartialInterpretation,
40357 relationIterpretation:PartialRelationInterpretation,
40358 from: DefinedElement, to: DefinedElement)
40359{
40360 find interpretation(problem,interpretation); 34050 find interpretation(problem,interpretation);
40361 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 34051 PartialInterpretation.newElements(interpretation,element);
40362 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"unsettable attribute EStructuralFeature"); 34052 find mayInstanceOfFAMTerminator_class(problem,interpretation,element);
40363 find mustExist(problem, interpretation, from); 34053 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
40364 find mustExist(problem, interpretation, to); 34054 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
40365 find mustInstanceOfEStructuralFeature_class(problem,interpretation,from); 34055 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
40366 BooleanElement(to); 34056 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
40367 find mayInRelationunsettable_attribute_EStructuralFeature(problem,interpretation,from,to); 34057 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
40368 neg find mustInRelationunsettable_attribute_EStructuralFeature(problem,interpretation,from,to); 34058 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
40369} 34059}
40370pattern refineRelation_derived_attribute_EStructuralFeature( 34060pattern refineTypeTo_Function_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
40371 problem:LogicProblem, interpretation:PartialInterpretation,
40372 relationIterpretation:PartialRelationInterpretation,
40373 from: DefinedElement, to: DefinedElement)
40374{
40375 find interpretation(problem,interpretation); 34061 find interpretation(problem,interpretation);
40376 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 34062 PartialInterpretation.newElements(interpretation,element);
40377 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"derived attribute EStructuralFeature"); 34063 find mayInstanceOfFunction_class(problem,interpretation,element);
40378 find mustExist(problem, interpretation, from); 34064 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
40379 find mustExist(problem, interpretation, to); 34065 neg find mustInstanceOfFunction_class(problem,interpretation,element);
40380 find mustInstanceOfEStructuralFeature_class(problem,interpretation,from); 34066 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
40381 BooleanElement(to); 34067 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
40382 find mayInRelationderived_attribute_EStructuralFeature(problem,interpretation,from,to); 34068 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
40383 neg find mustInRelationderived_attribute_EStructuralFeature(problem,interpretation,from,to); 34069 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
40384} 34070}
40385pattern refineRelation_ordered_attribute_ETypedElement( 34071pattern refineTypeTo_InformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
40386 problem:LogicProblem, interpretation:PartialInterpretation,
40387 relationIterpretation:PartialRelationInterpretation,
40388 from: DefinedElement, to: DefinedElement)
40389{
40390 find interpretation(problem,interpretation); 34072 find interpretation(problem,interpretation);
40391 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 34073 PartialInterpretation.newElements(interpretation,element);
40392 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"ordered attribute ETypedElement"); 34074 find mayInstanceOfInformationLink_class(problem,interpretation,element);
40393 find mustExist(problem, interpretation, from); 34075 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
40394 find mustExist(problem, interpretation, to); 34076 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
40395 find mustInstanceOfETypedElement_class(problem,interpretation,from); 34077 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
40396 BooleanElement(to); 34078 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
40397 find mayInRelationordered_attribute_ETypedElement(problem,interpretation,from,to); 34079 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
40398 neg find mustInRelationordered_attribute_ETypedElement(problem,interpretation,from,to); 34080 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
40399} 34081}
40400pattern refineRelation_unique_attribute_ETypedElement( 34082pattern refineTypeTo_FunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
40401 problem:LogicProblem, interpretation:PartialInterpretation,
40402 relationIterpretation:PartialRelationInterpretation,
40403 from: DefinedElement, to: DefinedElement)
40404{
40405 find interpretation(problem,interpretation); 34083 find interpretation(problem,interpretation);
40406 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 34084 PartialInterpretation.newElements(interpretation,element);
40407 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"unique attribute ETypedElement"); 34085 find mayInstanceOfFunctionalInterface_class(problem,interpretation,element);
40408 find mustExist(problem, interpretation, from); 34086 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
40409 find mustExist(problem, interpretation, to); 34087 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
40410 find mustInstanceOfETypedElement_class(problem,interpretation,from); 34088 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
40411 BooleanElement(to); 34089 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
40412 find mayInRelationunique_attribute_ETypedElement(problem,interpretation,from,to); 34090 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
40413 neg find mustInRelationunique_attribute_ETypedElement(problem,interpretation,from,to); 34091 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
40414} 34092}
40415pattern refineRelation_lowerBound_attribute_ETypedElement( 34093pattern refineTypeTo_FunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
40416 problem:LogicProblem, interpretation:PartialInterpretation,
40417 relationIterpretation:PartialRelationInterpretation,
40418 from: DefinedElement, to: DefinedElement)
40419{
40420 find interpretation(problem,interpretation); 34094 find interpretation(problem,interpretation);
40421 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 34095 PartialInterpretation.newElements(interpretation,element);
40422 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"lowerBound attribute ETypedElement"); 34096 find mayInstanceOfFunctionalOutput_class(problem,interpretation,element);
40423 find mustExist(problem, interpretation, from); 34097 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
40424 find mustExist(problem, interpretation, to); 34098 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
40425 find mustInstanceOfETypedElement_class(problem,interpretation,from); 34099 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
40426 IntegerElement(to); 34100 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
40427 find mayInRelationlowerBound_attribute_ETypedElement(problem,interpretation,from,to); 34101 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
40428 neg find mustInRelationlowerBound_attribute_ETypedElement(problem,interpretation,from,to); 34102 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
34103 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
40429} 34104}
40430pattern refineRelation_upperBound_attribute_ETypedElement( 34105pattern refineTypeTo_FunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
40431 problem:LogicProblem, interpretation:PartialInterpretation,
40432 relationIterpretation:PartialRelationInterpretation,
40433 from: DefinedElement, to: DefinedElement)
40434{
40435 find interpretation(problem,interpretation); 34106 find interpretation(problem,interpretation);
40436 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 34107 PartialInterpretation.newElements(interpretation,element);
40437 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"upperBound attribute ETypedElement"); 34108 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
40438 find mustExist(problem, interpretation, from); 34109 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
40439 find mustExist(problem, interpretation, to); 34110 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
40440 find mustInstanceOfETypedElement_class(problem,interpretation,from); 34111 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
40441 IntegerElement(to); 34112 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
40442 find mayInRelationupperBound_attribute_ETypedElement(problem,interpretation,from,to); 34113 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
40443 neg find mustInRelationupperBound_attribute_ETypedElement(problem,interpretation,from,to); 34114 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
40444} 34115}
40445pattern refineRelation_many_attribute_ETypedElement( 34116pattern refineTypeTo_FunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
40446 problem:LogicProblem, interpretation:PartialInterpretation,
40447 relationIterpretation:PartialRelationInterpretation,
40448 from: DefinedElement, to: DefinedElement)
40449{
40450 find interpretation(problem,interpretation); 34117 find interpretation(problem,interpretation);
40451 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 34118 PartialInterpretation.newElements(interpretation,element);
40452 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"many attribute ETypedElement"); 34119 find mayInstanceOfFunctionalInput_class(problem,interpretation,element);
40453 find mustExist(problem, interpretation, from); 34120 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
40454 find mustExist(problem, interpretation, to); 34121 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
40455 find mustInstanceOfETypedElement_class(problem,interpretation,from); 34122 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
40456 BooleanElement(to); 34123 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
40457 find mayInRelationmany_attribute_ETypedElement(problem,interpretation,from,to); 34124 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
40458 neg find mustInRelationmany_attribute_ETypedElement(problem,interpretation,from,to); 34125 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
34126 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
40459} 34127}
40460pattern refineRelation_required_attribute_ETypedElement( 34128
34129//////////
34130// 4.3 Relation refinement
34131//////////
34132pattern refineRelation_model_reference_FunctionalElement(
40461 problem:LogicProblem, interpretation:PartialInterpretation, 34133 problem:LogicProblem, interpretation:PartialInterpretation,
40462 relationIterpretation:PartialRelationInterpretation, 34134 relationIterpretation:PartialRelationInterpretation,
40463 from: DefinedElement, to: DefinedElement) 34135 from: DefinedElement, to: DefinedElement)
40464{ 34136{
40465 find interpretation(problem,interpretation); 34137 find interpretation(problem,interpretation);
40466 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 34138 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
40467 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"required attribute ETypedElement"); 34139 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement");
40468 find mustExist(problem, interpretation, from); 34140 find mustExist(problem, interpretation, from);
40469 find mustExist(problem, interpretation, to); 34141 find mustExist(problem, interpretation, to);
40470 find mustInstanceOfETypedElement_class(problem,interpretation,from); 34142 find mustInstanceOfFunctionalElement_class(problem,interpretation,from);
40471 BooleanElement(to); 34143 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,to);
40472 find mayInRelationrequired_attribute_ETypedElement(problem,interpretation,from,to); 34144 find mayInRelationmodel_reference_FunctionalElement(problem,interpretation,from,to);
40473 neg find mustInRelationrequired_attribute_ETypedElement(problem,interpretation,from,to); 34145 neg find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,from,to);
40474} 34146}
40475pattern refineRelation_key_attribute_EStringToStringMapEntry( 34147pattern refineRelation_IncomingLinks_reference_FunctionalInput_and_to_reference_InformationLink(
40476 problem:LogicProblem, interpretation:PartialInterpretation, 34148 problem:LogicProblem, interpretation:PartialInterpretation,
40477 relationIterpretation:PartialRelationInterpretation, 34149 relationIterpretation:PartialRelationInterpretation, oppositeInterpretation:PartialRelationInterpretation,
40478 from: DefinedElement, to: DefinedElement) 34150 from: DefinedElement, to: DefinedElement)
40479{ 34151{
40480 find interpretation(problem,interpretation); 34152 find interpretation(problem,interpretation);
40481 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 34153 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
40482 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"key attribute EStringToStringMapEntry"); 34154 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"IncomingLinks reference FunctionalInput");
34155 PartialInterpretation.partialrelationinterpretation(interpretation,oppositeInterpretation);
34156 PartialRelationInterpretation.interpretationOf.name(oppositeInterpretation,"to reference InformationLink");
40483 find mustExist(problem, interpretation, from); 34157 find mustExist(problem, interpretation, from);
40484 find mustExist(problem, interpretation, to); 34158 find mustExist(problem, interpretation, to);
40485 find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,from); 34159 find mustInstanceOfFunctionalInput_class(problem,interpretation,from);
40486 StringElement(to); 34160 find mustInstanceOfInformationLink_class(problem,interpretation,to);
40487 find mayInRelationkey_attribute_EStringToStringMapEntry(problem,interpretation,from,to); 34161 find mayInRelationIncomingLinks_reference_FunctionalInput(problem,interpretation,from,to);
40488 neg find mustInRelationkey_attribute_EStringToStringMapEntry(problem,interpretation,from,to); 34162 neg find mustInRelationIncomingLinks_reference_FunctionalInput(problem,interpretation,from,to);
40489} 34163}
40490pattern refineRelation_value_attribute_EStringToStringMapEntry( 34164pattern refineRelation_type_attribute_Function(
40491 problem:LogicProblem, interpretation:PartialInterpretation, 34165 problem:LogicProblem, interpretation:PartialInterpretation,
40492 relationIterpretation:PartialRelationInterpretation, 34166 relationIterpretation:PartialRelationInterpretation,
40493 from: DefinedElement, to: DefinedElement) 34167 from: DefinedElement, to: DefinedElement)
40494{ 34168{
40495 find interpretation(problem,interpretation); 34169 find interpretation(problem,interpretation);
40496 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 34170 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
40497 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"value attribute EStringToStringMapEntry"); 34171 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function");
40498 find mustExist(problem, interpretation, from); 34172 find mustExist(problem, interpretation, from);
40499 find mustExist(problem, interpretation, to); 34173 find mustExist(problem, interpretation, to);
40500 find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,from); 34174 find mustInstanceOfFunction_class(problem,interpretation,from);
40501 StringElement(to); 34175 find mustInstanceOfFunctionType_enum(problem,interpretation,to);
40502 find mayInRelationvalue_attribute_EStringToStringMapEntry(problem,interpretation,from,to); 34176 find mayInRelationtype_attribute_Function(problem,interpretation,from,to);
40503 neg find mustInRelationvalue_attribute_EStringToStringMapEntry(problem,interpretation,from,to); 34177 neg find mustInRelationtype_attribute_Function(problem,interpretation,from,to);
40504} 34178}
40505import epackage "http://www.bme.hu/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage" 34179import epackage "http://www.bme.hu/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage"
40506import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem" 34180import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem"
@@ -40586,1130 +34260,436 @@ private pattern isPrimitive(element: PrimitiveElement) {
40586// 1.1.2 domain-specific Type Indexers 34260// 1.1.2 domain-specific Type Indexers
40587////////// 34261//////////
40588/** 34262/**
40589 * An element must be an instance of type "EAttribute class". 34263 * An element must be an instance of type "FunctionalElement class".
40590 */
40591private pattern mustInstanceOfEAttribute_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
40592 Type.name(type,"EAttribute class");
40593 find directInstanceOf(problem,interpretation,element,type);
40594}
40595private pattern scopeDisallowsNewEAttribute_class(problem:LogicProblem, interpretation:PartialInterpretation) {
40596 find interpretation(problem,interpretation);
40597 PartialInterpretation.scopes(interpretation,scope);
40598 Scope.targetTypeInterpretation(scope,typeInterpretation);
40599 Scope.maxNewElements(scope,0);
40600 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
40601 Type.name(type,"EAttribute class");
40602}
40603
40604/**
40605 * An element may be an instance of type "EAttribute class".
40606 */
40607private pattern mayInstanceOfEAttribute_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
40608{
40609 find interpretation(problem,interpretation);
40610 PartialInterpretation.newElements(interpretation,element);
40611 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
40612 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
40613 neg find mustInstanceOfEObject_class(problem,interpretation,element);
40614 neg find mustInstanceOfEReference_class(problem,interpretation,element);
40615 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
40616 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
40617 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
40618 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
40619 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
40620 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
40621 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
40622 neg find scopeDisallowsNewEAttribute_class(problem, interpretation);
40623 neg find isPrimitive(element);
40624} or {
40625 find interpretation(problem,interpretation);
40626 PartialInterpretation.openWorldElements(interpretation,element);
40627 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
40628 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
40629 neg find mustInstanceOfEObject_class(problem,interpretation,element);
40630 neg find mustInstanceOfEReference_class(problem,interpretation,element);
40631 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
40632 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
40633 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
40634 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
40635 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
40636 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
40637 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
40638 neg find scopeDisallowsNewEAttribute_class(problem, interpretation);
40639 neg find isPrimitive(element);
40640} or
40641{ find mustInstanceOfEAttribute_class(problem,interpretation,element); }
40642/**
40643 * An element must be an instance of type "EAnnotation class".
40644 */
40645private pattern mustInstanceOfEAnnotation_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
40646 Type.name(type,"EAnnotation class");
40647 find directInstanceOf(problem,interpretation,element,type);
40648}
40649private pattern scopeDisallowsNewEAnnotation_class(problem:LogicProblem, interpretation:PartialInterpretation) {
40650 find interpretation(problem,interpretation);
40651 PartialInterpretation.scopes(interpretation,scope);
40652 Scope.targetTypeInterpretation(scope,typeInterpretation);
40653 Scope.maxNewElements(scope,0);
40654 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
40655 Type.name(type,"EAnnotation class");
40656}
40657
40658/**
40659 * An element may be an instance of type "EAnnotation class".
40660 */
40661private pattern mayInstanceOfEAnnotation_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
40662{
40663 find interpretation(problem,interpretation);
40664 PartialInterpretation.newElements(interpretation,element);
40665 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
40666 neg find mustInstanceOfEObject_class(problem,interpretation,element);
40667 neg find mustInstanceOfENamedElement_class(problem,interpretation,element);
40668 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
40669 neg find scopeDisallowsNewEAnnotation_class(problem, interpretation);
40670 neg find isPrimitive(element);
40671} or {
40672 find interpretation(problem,interpretation);
40673 PartialInterpretation.openWorldElements(interpretation,element);
40674 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
40675 neg find mustInstanceOfEObject_class(problem,interpretation,element);
40676 neg find mustInstanceOfENamedElement_class(problem,interpretation,element);
40677 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
40678 neg find scopeDisallowsNewEAnnotation_class(problem, interpretation);
40679 neg find isPrimitive(element);
40680} or
40681{ find mustInstanceOfEAnnotation_class(problem,interpretation,element); }
40682/**
40683 * An element must be an instance of type "EClass class".
40684 */
40685private pattern mustInstanceOfEClass_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
40686 Type.name(type,"EClass class");
40687 find directInstanceOf(problem,interpretation,element,type);
40688}
40689private pattern scopeDisallowsNewEClass_class(problem:LogicProblem, interpretation:PartialInterpretation) {
40690 find interpretation(problem,interpretation);
40691 PartialInterpretation.scopes(interpretation,scope);
40692 Scope.targetTypeInterpretation(scope,typeInterpretation);
40693 Scope.maxNewElements(scope,0);
40694 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
40695 Type.name(type,"EClass class");
40696}
40697
40698/**
40699 * An element may be an instance of type "EClass class".
40700 */
40701private pattern mayInstanceOfEClass_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
40702{
40703 find interpretation(problem,interpretation);
40704 PartialInterpretation.newElements(interpretation,element);
40705 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
40706 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
40707 neg find mustInstanceOfEObject_class(problem,interpretation,element);
40708 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
40709 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
40710 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
40711 neg find mustInstanceOfEDataType_class(problem,interpretation,element);
40712 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
40713 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
40714 neg find scopeDisallowsNewEClass_class(problem, interpretation);
40715 neg find isPrimitive(element);
40716} or {
40717 find interpretation(problem,interpretation);
40718 PartialInterpretation.openWorldElements(interpretation,element);
40719 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
40720 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
40721 neg find mustInstanceOfEObject_class(problem,interpretation,element);
40722 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
40723 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
40724 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
40725 neg find mustInstanceOfEDataType_class(problem,interpretation,element);
40726 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
40727 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
40728 neg find scopeDisallowsNewEClass_class(problem, interpretation);
40729 neg find isPrimitive(element);
40730} or
40731{ find mustInstanceOfEClass_class(problem,interpretation,element); }
40732/**
40733 * An element must be an instance of type "EClassifier class".
40734 */
40735private pattern mustInstanceOfEClassifier_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
40736 Type.name(type,"EClassifier class");
40737 find directInstanceOf(problem,interpretation,element,type);
40738}
40739private pattern scopeDisallowsNewEClassifier_class(problem:LogicProblem, interpretation:PartialInterpretation) {
40740 find interpretation(problem,interpretation);
40741 PartialInterpretation.scopes(interpretation,scope);
40742 Scope.targetTypeInterpretation(scope,typeInterpretation);
40743 Scope.maxNewElements(scope,0);
40744 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
40745 Type.name(type,"EClassifier class");
40746}
40747
40748/**
40749 * An element may be an instance of type "EClassifier class".
40750 */
40751private pattern mayInstanceOfEClassifier_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
40752{
40753 find interpretation(problem,interpretation);
40754 PartialInterpretation.newElements(interpretation,element);
40755 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
40756 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
40757 neg find mustInstanceOfEObject_class(problem,interpretation,element);
40758 neg find mustInstanceOfEClass_class(problem,interpretation,element);
40759 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
40760 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
40761 neg find mustInstanceOfEDataType_class(problem,interpretation,element);
40762 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
40763 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
40764 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
40765 neg find scopeDisallowsNewEClassifier_class(problem, interpretation);
40766 neg find isPrimitive(element);
40767} or {
40768 find interpretation(problem,interpretation);
40769 PartialInterpretation.openWorldElements(interpretation,element);
40770 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
40771 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
40772 neg find mustInstanceOfEObject_class(problem,interpretation,element);
40773 neg find mustInstanceOfEClass_class(problem,interpretation,element);
40774 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
40775 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
40776 neg find mustInstanceOfEDataType_class(problem,interpretation,element);
40777 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
40778 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
40779 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
40780 neg find scopeDisallowsNewEClassifier_class(problem, interpretation);
40781 neg find isPrimitive(element);
40782} or
40783{ find mustInstanceOfEClassifier_class(problem,interpretation,element); }
40784/**
40785 * An element must be an instance of type "EDataType class".
40786 */
40787private pattern mustInstanceOfEDataType_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
40788 Type.name(type,"EDataType class");
40789 find directInstanceOf(problem,interpretation,element,type);
40790}
40791private pattern scopeDisallowsNewEDataType_class(problem:LogicProblem, interpretation:PartialInterpretation) {
40792 find interpretation(problem,interpretation);
40793 PartialInterpretation.scopes(interpretation,scope);
40794 Scope.targetTypeInterpretation(scope,typeInterpretation);
40795 Scope.maxNewElements(scope,0);
40796 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
40797 Type.name(type,"EDataType class");
40798}
40799
40800/**
40801 * An element may be an instance of type "EDataType class".
40802 */
40803private pattern mayInstanceOfEDataType_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
40804{
40805 find interpretation(problem,interpretation);
40806 PartialInterpretation.newElements(interpretation,element);
40807 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
40808 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
40809 neg find mustInstanceOfEEnum_class(problem,interpretation,element);
40810 neg find mustInstanceOfEObject_class(problem,interpretation,element);
40811 neg find mustInstanceOfEClass_class(problem,interpretation,element);
40812 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
40813 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
40814 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
40815 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
40816 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
40817 neg find scopeDisallowsNewEDataType_class(problem, interpretation);
40818 neg find isPrimitive(element);
40819} or {
40820 find interpretation(problem,interpretation);
40821 PartialInterpretation.openWorldElements(interpretation,element);
40822 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
40823 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
40824 neg find mustInstanceOfEEnum_class(problem,interpretation,element);
40825 neg find mustInstanceOfEObject_class(problem,interpretation,element);
40826 neg find mustInstanceOfEClass_class(problem,interpretation,element);
40827 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
40828 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
40829 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
40830 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
40831 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
40832 neg find scopeDisallowsNewEDataType_class(problem, interpretation);
40833 neg find isPrimitive(element);
40834} or
40835{ find mustInstanceOfEDataType_class(problem,interpretation,element); }
40836/**
40837 * An element must be an instance of type "EEnum class".
40838 */
40839private pattern mustInstanceOfEEnum_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
40840 Type.name(type,"EEnum class");
40841 find directInstanceOf(problem,interpretation,element,type);
40842}
40843private pattern scopeDisallowsNewEEnum_class(problem:LogicProblem, interpretation:PartialInterpretation) {
40844 find interpretation(problem,interpretation);
40845 PartialInterpretation.scopes(interpretation,scope);
40846 Scope.targetTypeInterpretation(scope,typeInterpretation);
40847 Scope.maxNewElements(scope,0);
40848 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
40849 Type.name(type,"EEnum class");
40850}
40851
40852/**
40853 * An element may be an instance of type "EEnum class".
40854 */
40855private pattern mayInstanceOfEEnum_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
40856{
40857 find interpretation(problem,interpretation);
40858 PartialInterpretation.newElements(interpretation,element);
40859 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
40860 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
40861 neg find mustInstanceOfEObject_class(problem,interpretation,element);
40862 neg find mustInstanceOfEClass_class(problem,interpretation,element);
40863 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
40864 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
40865 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
40866 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
40867 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
40868 neg find scopeDisallowsNewEEnum_class(problem, interpretation);
40869 neg find isPrimitive(element);
40870} or {
40871 find interpretation(problem,interpretation);
40872 PartialInterpretation.openWorldElements(interpretation,element);
40873 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
40874 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
40875 neg find mustInstanceOfEObject_class(problem,interpretation,element);
40876 neg find mustInstanceOfEClass_class(problem,interpretation,element);
40877 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
40878 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
40879 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
40880 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
40881 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
40882 neg find scopeDisallowsNewEEnum_class(problem, interpretation);
40883 neg find isPrimitive(element);
40884} or
40885{ find mustInstanceOfEEnum_class(problem,interpretation,element); }
40886/**
40887 * An element must be an instance of type "EEnumLiteral class".
40888 */
40889private pattern mustInstanceOfEEnumLiteral_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
40890 Type.name(type,"EEnumLiteral class");
40891 find directInstanceOf(problem,interpretation,element,type);
40892}
40893private pattern scopeDisallowsNewEEnumLiteral_class(problem:LogicProblem, interpretation:PartialInterpretation) {
40894 find interpretation(problem,interpretation);
40895 PartialInterpretation.scopes(interpretation,scope);
40896 Scope.targetTypeInterpretation(scope,typeInterpretation);
40897 Scope.maxNewElements(scope,0);
40898 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
40899 Type.name(type,"EEnumLiteral class");
40900}
40901
40902/**
40903 * An element may be an instance of type "EEnumLiteral class".
40904 */
40905private pattern mayInstanceOfEEnumLiteral_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
40906{
40907 find interpretation(problem,interpretation);
40908 PartialInterpretation.newElements(interpretation,element);
40909 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
40910 neg find mustInstanceOfEObject_class(problem,interpretation,element);
40911 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
40912 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
40913 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
40914 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
40915 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
40916 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
40917 neg find scopeDisallowsNewEEnumLiteral_class(problem, interpretation);
40918 neg find isPrimitive(element);
40919} or {
40920 find interpretation(problem,interpretation);
40921 PartialInterpretation.openWorldElements(interpretation,element);
40922 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
40923 neg find mustInstanceOfEObject_class(problem,interpretation,element);
40924 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
40925 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
40926 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
40927 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
40928 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
40929 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
40930 neg find scopeDisallowsNewEEnumLiteral_class(problem, interpretation);
40931 neg find isPrimitive(element);
40932} or
40933{ find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); }
40934/**
40935 * An element must be an instance of type "EModelElement class".
40936 */
40937private pattern mustInstanceOfEModelElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
40938 Type.name(type,"EModelElement class");
40939 find directInstanceOf(problem,interpretation,element,type);
40940}
40941private pattern scopeDisallowsNewEModelElement_class(problem:LogicProblem, interpretation:PartialInterpretation) {
40942 find interpretation(problem,interpretation);
40943 PartialInterpretation.scopes(interpretation,scope);
40944 Scope.targetTypeInterpretation(scope,typeInterpretation);
40945 Scope.maxNewElements(scope,0);
40946 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
40947 Type.name(type,"EModelElement class");
40948}
40949
40950/**
40951 * An element may be an instance of type "EModelElement class".
40952 */
40953private pattern mayInstanceOfEModelElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
40954{
40955 find interpretation(problem,interpretation);
40956 PartialInterpretation.newElements(interpretation,element);
40957 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
40958 neg find mustInstanceOfEObject_class(problem,interpretation,element);
40959 neg find mustInstanceOfENamedElement_class(problem,interpretation,element);
40960 neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element);
40961 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
40962 neg find scopeDisallowsNewEModelElement_class(problem, interpretation);
40963 neg find isPrimitive(element);
40964} or {
40965 find interpretation(problem,interpretation);
40966 PartialInterpretation.openWorldElements(interpretation,element);
40967 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
40968 neg find mustInstanceOfEObject_class(problem,interpretation,element);
40969 neg find mustInstanceOfENamedElement_class(problem,interpretation,element);
40970 neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element);
40971 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
40972 neg find scopeDisallowsNewEModelElement_class(problem, interpretation);
40973 neg find isPrimitive(element);
40974} or
40975{ find mustInstanceOfEModelElement_class(problem,interpretation,element); }
40976/**
40977 * An element must be an instance of type "ENamedElement class".
40978 */
40979private pattern mustInstanceOfENamedElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
40980 Type.name(type,"ENamedElement class");
40981 find directInstanceOf(problem,interpretation,element,type);
40982}
40983private pattern scopeDisallowsNewENamedElement_class(problem:LogicProblem, interpretation:PartialInterpretation) {
40984 find interpretation(problem,interpretation);
40985 PartialInterpretation.scopes(interpretation,scope);
40986 Scope.targetTypeInterpretation(scope,typeInterpretation);
40987 Scope.maxNewElements(scope,0);
40988 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
40989 Type.name(type,"ENamedElement class");
40990}
40991
40992/**
40993 * An element may be an instance of type "ENamedElement class".
40994 */
40995private pattern mayInstanceOfENamedElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
40996{
40997 find interpretation(problem,interpretation);
40998 PartialInterpretation.newElements(interpretation,element);
40999 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
41000 neg find mustInstanceOfEObject_class(problem,interpretation,element);
41001 neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element);
41002 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
41003 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
41004 neg find scopeDisallowsNewENamedElement_class(problem, interpretation);
41005 neg find isPrimitive(element);
41006} or {
41007 find interpretation(problem,interpretation);
41008 PartialInterpretation.openWorldElements(interpretation,element);
41009 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
41010 neg find mustInstanceOfEObject_class(problem,interpretation,element);
41011 neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element);
41012 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
41013 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
41014 neg find scopeDisallowsNewENamedElement_class(problem, interpretation);
41015 neg find isPrimitive(element);
41016} or
41017{ find mustInstanceOfENamedElement_class(problem,interpretation,element); }
41018/**
41019 * An element must be an instance of type "EObject class".
41020 */
41021private pattern mustInstanceOfEObject_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
41022 Type.name(type,"EObject class");
41023 find directInstanceOf(problem,interpretation,element,type);
41024}
41025private pattern scopeDisallowsNewEObject_class(problem:LogicProblem, interpretation:PartialInterpretation) {
41026 find interpretation(problem,interpretation);
41027 PartialInterpretation.scopes(interpretation,scope);
41028 Scope.targetTypeInterpretation(scope,typeInterpretation);
41029 Scope.maxNewElements(scope,0);
41030 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
41031 Type.name(type,"EObject class");
41032}
41033
41034/**
41035 * An element may be an instance of type "EObject class".
41036 */
41037private pattern mayInstanceOfEObject_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
41038{
41039 find interpretation(problem,interpretation);
41040 PartialInterpretation.newElements(interpretation,element);
41041 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
41042 neg find mustInstanceOfEModelElement_class(problem,interpretation,element);
41043 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
41044 neg find scopeDisallowsNewEObject_class(problem, interpretation);
41045 neg find isPrimitive(element);
41046} or {
41047 find interpretation(problem,interpretation);
41048 PartialInterpretation.openWorldElements(interpretation,element);
41049 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
41050 neg find mustInstanceOfEModelElement_class(problem,interpretation,element);
41051 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
41052 neg find scopeDisallowsNewEObject_class(problem, interpretation);
41053 neg find isPrimitive(element);
41054} or
41055{ find mustInstanceOfEObject_class(problem,interpretation,element); }
41056/**
41057 * An element must be an instance of type "EOperation class".
41058 */
41059private pattern mustInstanceOfEOperation_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
41060 Type.name(type,"EOperation class");
41061 find directInstanceOf(problem,interpretation,element,type);
41062}
41063private pattern scopeDisallowsNewEOperation_class(problem:LogicProblem, interpretation:PartialInterpretation) {
41064 find interpretation(problem,interpretation);
41065 PartialInterpretation.scopes(interpretation,scope);
41066 Scope.targetTypeInterpretation(scope,typeInterpretation);
41067 Scope.maxNewElements(scope,0);
41068 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
41069 Type.name(type,"EOperation class");
41070}
41071
41072/**
41073 * An element may be an instance of type "EOperation class".
41074 */
41075private pattern mayInstanceOfEOperation_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
41076{
41077 find interpretation(problem,interpretation);
41078 PartialInterpretation.newElements(interpretation,element);
41079 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
41080 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
41081 neg find mustInstanceOfEObject_class(problem,interpretation,element);
41082 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
41083 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
41084 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
41085 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
41086 neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element);
41087 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
41088 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
41089 neg find scopeDisallowsNewEOperation_class(problem, interpretation);
41090 neg find isPrimitive(element);
41091} or {
41092 find interpretation(problem,interpretation);
41093 PartialInterpretation.openWorldElements(interpretation,element);
41094 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
41095 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
41096 neg find mustInstanceOfEObject_class(problem,interpretation,element);
41097 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
41098 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
41099 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
41100 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
41101 neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element);
41102 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
41103 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
41104 neg find scopeDisallowsNewEOperation_class(problem, interpretation);
41105 neg find isPrimitive(element);
41106} or
41107{ find mustInstanceOfEOperation_class(problem,interpretation,element); }
41108/**
41109 * An element must be an instance of type "EPackage class".
41110 */
41111private pattern mustInstanceOfEPackage_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
41112 Type.name(type,"EPackage class");
41113 find directInstanceOf(problem,interpretation,element,type);
41114}
41115private pattern scopeDisallowsNewEPackage_class(problem:LogicProblem, interpretation:PartialInterpretation) {
41116 find interpretation(problem,interpretation);
41117 PartialInterpretation.scopes(interpretation,scope);
41118 Scope.targetTypeInterpretation(scope,typeInterpretation);
41119 Scope.maxNewElements(scope,0);
41120 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
41121 Type.name(type,"EPackage class");
41122}
41123
41124/**
41125 * An element may be an instance of type "EPackage class".
41126 */
41127private pattern mayInstanceOfEPackage_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
41128{
41129 find interpretation(problem,interpretation);
41130 PartialInterpretation.newElements(interpretation,element);
41131 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
41132 neg find mustInstanceOfEObject_class(problem,interpretation,element);
41133 neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element);
41134 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
41135 neg find scopeDisallowsNewEPackage_class(problem, interpretation);
41136 neg find isPrimitive(element);
41137} or {
41138 find interpretation(problem,interpretation);
41139 PartialInterpretation.openWorldElements(interpretation,element);
41140 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
41141 neg find mustInstanceOfEObject_class(problem,interpretation,element);
41142 neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element);
41143 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
41144 neg find scopeDisallowsNewEPackage_class(problem, interpretation);
41145 neg find isPrimitive(element);
41146} or
41147{ find mustInstanceOfEPackage_class(problem,interpretation,element); }
41148/**
41149 * An element must be an instance of type "EParameter class".
41150 */ 34264 */
41151private pattern mustInstanceOfEParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 34265private pattern mustInstanceOfFunctionalElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
41152 Type.name(type,"EParameter class"); 34266 Type.name(type,"FunctionalElement class");
41153 find directInstanceOf(problem,interpretation,element,type); 34267 find directInstanceOf(problem,interpretation,element,type);
41154} 34268}
41155private pattern scopeDisallowsNewEParameter_class(problem:LogicProblem, interpretation:PartialInterpretation) { 34269private pattern scopeDisallowsNewFunctionalElement_class(problem:LogicProblem, interpretation:PartialInterpretation) {
41156 find interpretation(problem,interpretation); 34270 find interpretation(problem,interpretation);
41157 PartialInterpretation.scopes(interpretation,scope); 34271 PartialInterpretation.scopes(interpretation,scope);
41158 Scope.targetTypeInterpretation(scope,typeInterpretation); 34272 Scope.targetTypeInterpretation(scope,typeInterpretation);
41159 Scope.maxNewElements(scope,0); 34273 Scope.maxNewElements(scope,0);
41160 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 34274 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
41161 Type.name(type,"EParameter class"); 34275 Type.name(type,"FunctionalElement class");
41162} 34276}
41163 34277
41164/** 34278/**
41165 * An element may be an instance of type "EParameter class". 34279 * An element may be an instance of type "FunctionalElement class".
41166 */ 34280 */
41167private pattern mayInstanceOfEParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 34281private pattern mayInstanceOfFunctionalElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
41168{ 34282{
41169 find interpretation(problem,interpretation); 34283 find interpretation(problem,interpretation);
41170 PartialInterpretation.newElements(interpretation,element); 34284 PartialInterpretation.newElements(interpretation,element);
41171 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 34285 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
41172 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); 34286 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
41173 neg find mustInstanceOfEObject_class(problem,interpretation,element); 34287 neg find mustInstanceOfFunction_class(problem,interpretation,element);
41174 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); 34288 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
41175 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 34289 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
41176 neg find mustInstanceOfEClassifier_class(problem,interpretation,element); 34290 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
41177 neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); 34291 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
41178 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
41179 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
41180 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
41181 neg find scopeDisallowsNewEParameter_class(problem, interpretation);
41182 neg find isPrimitive(element); 34292 neg find isPrimitive(element);
41183} or { 34293} or {
41184 find interpretation(problem,interpretation); 34294 find interpretation(problem,interpretation);
41185 PartialInterpretation.openWorldElements(interpretation,element); 34295 PartialInterpretation.openWorldElements(interpretation,element);
41186 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 34296 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
41187 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); 34297 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
41188 neg find mustInstanceOfEObject_class(problem,interpretation,element); 34298 neg find mustInstanceOfFunction_class(problem,interpretation,element);
41189 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); 34299 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
41190 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 34300 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
41191 neg find mustInstanceOfEClassifier_class(problem,interpretation,element); 34301 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
41192 neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); 34302 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
41193 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
41194 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
41195 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
41196 neg find scopeDisallowsNewEParameter_class(problem, interpretation);
41197 neg find isPrimitive(element); 34303 neg find isPrimitive(element);
41198} or 34304} or
41199{ find mustInstanceOfEParameter_class(problem,interpretation,element); } 34305{ find mustInstanceOfFunctionalElement_class(problem,interpretation,element); }
41200/** 34306/**
41201 * An element must be an instance of type "EReference class". 34307 * An element must be an instance of type "FunctionalArchitectureModel class".
41202 */ 34308 */
41203private pattern mustInstanceOfEReference_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 34309private pattern mustInstanceOfFunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
41204 Type.name(type,"EReference class"); 34310 Type.name(type,"FunctionalArchitectureModel class");
41205 find directInstanceOf(problem,interpretation,element,type); 34311 find directInstanceOf(problem,interpretation,element,type);
41206} 34312}
41207private pattern scopeDisallowsNewEReference_class(problem:LogicProblem, interpretation:PartialInterpretation) { 34313private pattern scopeDisallowsNewFunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation) {
41208 find interpretation(problem,interpretation); 34314 find interpretation(problem,interpretation);
41209 PartialInterpretation.scopes(interpretation,scope); 34315 PartialInterpretation.scopes(interpretation,scope);
41210 Scope.targetTypeInterpretation(scope,typeInterpretation); 34316 Scope.targetTypeInterpretation(scope,typeInterpretation);
41211 Scope.maxNewElements(scope,0); 34317 Scope.maxNewElements(scope,0);
41212 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 34318 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
41213 Type.name(type,"EReference class"); 34319 Type.name(type,"FunctionalArchitectureModel class");
41214} 34320}
41215 34321
41216/** 34322/**
41217 * An element may be an instance of type "EReference class". 34323 * An element may be an instance of type "FunctionalArchitectureModel class".
41218 */ 34324 */
41219private pattern mayInstanceOfEReference_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 34325private pattern mayInstanceOfFunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
41220{ 34326{
41221 find interpretation(problem,interpretation); 34327 find interpretation(problem,interpretation);
41222 PartialInterpretation.newElements(interpretation,element); 34328 PartialInterpretation.newElements(interpretation,element);
41223 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 34329 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
41224 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); 34330 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
41225 neg find mustInstanceOfEAttribute_class(problem,interpretation,element); 34331 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
41226 neg find mustInstanceOfEObject_class(problem,interpretation,element); 34332 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
41227 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); 34333 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
41228 neg find mustInstanceOfEParameter_class(problem,interpretation,element); 34334 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
41229 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
41230 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
41231 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
41232 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
41233 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
41234 neg find scopeDisallowsNewEReference_class(problem, interpretation);
41235 neg find isPrimitive(element); 34335 neg find isPrimitive(element);
41236} or { 34336} or {
41237 find interpretation(problem,interpretation); 34337 find interpretation(problem,interpretation);
41238 PartialInterpretation.openWorldElements(interpretation,element); 34338 PartialInterpretation.openWorldElements(interpretation,element);
41239 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 34339 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
41240 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); 34340 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
41241 neg find mustInstanceOfEAttribute_class(problem,interpretation,element); 34341 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
41242 neg find mustInstanceOfEObject_class(problem,interpretation,element); 34342 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
41243 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); 34343 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
41244 neg find mustInstanceOfEParameter_class(problem,interpretation,element); 34344 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
41245 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
41246 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
41247 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
41248 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
41249 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
41250 neg find scopeDisallowsNewEReference_class(problem, interpretation);
41251 neg find isPrimitive(element); 34345 neg find isPrimitive(element);
41252} or 34346} or
41253{ find mustInstanceOfEReference_class(problem,interpretation,element); } 34347{ find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); }
41254/** 34348/**
41255 * An element must be an instance of type "EStructuralFeature class". 34349 * An element must be an instance of type "Function class".
41256 */ 34350 */
41257private pattern mustInstanceOfEStructuralFeature_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 34351private pattern mustInstanceOfFunction_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
41258 Type.name(type,"EStructuralFeature class"); 34352 Type.name(type,"Function class");
41259 find directInstanceOf(problem,interpretation,element,type); 34353 find directInstanceOf(problem,interpretation,element,type);
41260} 34354}
41261private pattern scopeDisallowsNewEStructuralFeature_class(problem:LogicProblem, interpretation:PartialInterpretation) { 34355private pattern scopeDisallowsNewFunction_class(problem:LogicProblem, interpretation:PartialInterpretation) {
41262 find interpretation(problem,interpretation); 34356 find interpretation(problem,interpretation);
41263 PartialInterpretation.scopes(interpretation,scope); 34357 PartialInterpretation.scopes(interpretation,scope);
41264 Scope.targetTypeInterpretation(scope,typeInterpretation); 34358 Scope.targetTypeInterpretation(scope,typeInterpretation);
41265 Scope.maxNewElements(scope,0); 34359 Scope.maxNewElements(scope,0);
41266 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 34360 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
41267 Type.name(type,"EStructuralFeature class"); 34361 Type.name(type,"Function class");
41268} 34362}
41269 34363
41270/** 34364/**
41271 * An element may be an instance of type "EStructuralFeature class". 34365 * An element may be an instance of type "Function class".
41272 */ 34366 */
41273private pattern mayInstanceOfEStructuralFeature_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 34367private pattern mayInstanceOfFunction_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
41274{ 34368{
41275 find interpretation(problem,interpretation); 34369 find interpretation(problem,interpretation);
41276 PartialInterpretation.newElements(interpretation,element); 34370 PartialInterpretation.newElements(interpretation,element);
41277 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); 34371 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
41278 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 34372 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
41279 neg find mustInstanceOfEAttribute_class(problem,interpretation,element); 34373 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
41280 neg find mustInstanceOfEObject_class(problem,interpretation,element); 34374 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
41281 neg find mustInstanceOfEReference_class(problem,interpretation,element); 34375 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
41282 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); 34376 neg find scopeDisallowsNewFunction_class(problem, interpretation);
41283 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
41284 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
41285 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
41286 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
41287 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
41288 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
41289 neg find scopeDisallowsNewEStructuralFeature_class(problem, interpretation);
41290 neg find isPrimitive(element); 34377 neg find isPrimitive(element);
41291} or { 34378} or {
41292 find interpretation(problem,interpretation); 34379 find interpretation(problem,interpretation);
41293 PartialInterpretation.openWorldElements(interpretation,element); 34380 PartialInterpretation.openWorldElements(interpretation,element);
41294 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); 34381 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
41295 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 34382 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
41296 neg find mustInstanceOfEAttribute_class(problem,interpretation,element); 34383 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
41297 neg find mustInstanceOfEObject_class(problem,interpretation,element); 34384 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
41298 neg find mustInstanceOfEReference_class(problem,interpretation,element); 34385 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
41299 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); 34386 neg find scopeDisallowsNewFunction_class(problem, interpretation);
41300 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
41301 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
41302 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
41303 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
41304 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
41305 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
41306 neg find scopeDisallowsNewEStructuralFeature_class(problem, interpretation);
41307 neg find isPrimitive(element); 34387 neg find isPrimitive(element);
41308} or 34388} or
41309{ find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); } 34389{ find mustInstanceOfFunction_class(problem,interpretation,element); }
41310/** 34390/**
41311 * An element must be an instance of type "ETypedElement class". 34391 * An element must be an instance of type "FAMTerminator class".
41312 */ 34392 */
41313private pattern mustInstanceOfETypedElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 34393private pattern mustInstanceOfFAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
41314 Type.name(type,"ETypedElement class"); 34394 Type.name(type,"FAMTerminator class");
41315 find directInstanceOf(problem,interpretation,element,type); 34395 find directInstanceOf(problem,interpretation,element,type);
41316} 34396}
41317private pattern scopeDisallowsNewETypedElement_class(problem:LogicProblem, interpretation:PartialInterpretation) { 34397private pattern scopeDisallowsNewFAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation) {
41318 find interpretation(problem,interpretation); 34398 find interpretation(problem,interpretation);
41319 PartialInterpretation.scopes(interpretation,scope); 34399 PartialInterpretation.scopes(interpretation,scope);
41320 Scope.targetTypeInterpretation(scope,typeInterpretation); 34400 Scope.targetTypeInterpretation(scope,typeInterpretation);
41321 Scope.maxNewElements(scope,0); 34401 Scope.maxNewElements(scope,0);
41322 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 34402 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
41323 Type.name(type,"ETypedElement class"); 34403 Type.name(type,"FAMTerminator class");
41324} 34404}
41325 34405
41326/** 34406/**
41327 * An element may be an instance of type "ETypedElement class". 34407 * An element may be an instance of type "FAMTerminator class".
41328 */ 34408 */
41329private pattern mayInstanceOfETypedElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 34409private pattern mayInstanceOfFAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
41330{ 34410{
41331 find interpretation(problem,interpretation); 34411 find interpretation(problem,interpretation);
41332 PartialInterpretation.newElements(interpretation,element); 34412 PartialInterpretation.newElements(interpretation,element);
41333 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 34413 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
41334 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); 34414 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
41335 neg find mustInstanceOfEObject_class(problem,interpretation,element); 34415 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
41336 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); 34416 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
41337 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 34417 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
41338 neg find mustInstanceOfEParameter_class(problem,interpretation,element); 34418 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
41339 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
41340 neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element);
41341 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
41342 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
41343 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
41344 neg find scopeDisallowsNewETypedElement_class(problem, interpretation);
41345 neg find isPrimitive(element); 34419 neg find isPrimitive(element);
41346} or { 34420} or {
41347 find interpretation(problem,interpretation); 34421 find interpretation(problem,interpretation);
41348 PartialInterpretation.openWorldElements(interpretation,element); 34422 PartialInterpretation.openWorldElements(interpretation,element);
41349 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 34423 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
41350 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); 34424 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
41351 neg find mustInstanceOfEObject_class(problem,interpretation,element); 34425 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
41352 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); 34426 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
41353 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 34427 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
41354 neg find mustInstanceOfEParameter_class(problem,interpretation,element); 34428 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
41355 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
41356 neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element);
41357 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
41358 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
41359 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
41360 neg find scopeDisallowsNewETypedElement_class(problem, interpretation);
41361 neg find isPrimitive(element); 34429 neg find isPrimitive(element);
41362} or 34430} or
41363{ find mustInstanceOfETypedElement_class(problem,interpretation,element); } 34431{ find mustInstanceOfFAMTerminator_class(problem,interpretation,element); }
41364/** 34432/**
41365 * An element must be an instance of type "EStringToStringMapEntry class". 34433 * An element must be an instance of type "InformationLink class".
41366 */ 34434 */
41367private pattern mustInstanceOfEStringToStringMapEntry_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 34435private pattern mustInstanceOfInformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
41368 Type.name(type,"EStringToStringMapEntry class"); 34436 Type.name(type,"InformationLink class");
41369 find directInstanceOf(problem,interpretation,element,type); 34437 find directInstanceOf(problem,interpretation,element,type);
41370} 34438}
41371private pattern scopeDisallowsNewEStringToStringMapEntry_class(problem:LogicProblem, interpretation:PartialInterpretation) { 34439private pattern scopeDisallowsNewInformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation) {
41372 find interpretation(problem,interpretation); 34440 find interpretation(problem,interpretation);
41373 PartialInterpretation.scopes(interpretation,scope); 34441 PartialInterpretation.scopes(interpretation,scope);
41374 Scope.targetTypeInterpretation(scope,typeInterpretation); 34442 Scope.targetTypeInterpretation(scope,typeInterpretation);
41375 Scope.maxNewElements(scope,0); 34443 Scope.maxNewElements(scope,0);
41376 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 34444 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
41377 Type.name(type,"EStringToStringMapEntry class"); 34445 Type.name(type,"InformationLink class");
41378} 34446}
41379 34447
41380/** 34448/**
41381 * An element may be an instance of type "EStringToStringMapEntry class". 34449 * An element may be an instance of type "InformationLink class".
41382 */ 34450 */
41383private pattern mayInstanceOfEStringToStringMapEntry_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 34451private pattern mayInstanceOfInformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
41384{ 34452{
41385 find interpretation(problem,interpretation); 34453 find interpretation(problem,interpretation);
41386 PartialInterpretation.newElements(interpretation,element); 34454 PartialInterpretation.newElements(interpretation,element);
41387 neg find mustInstanceOfEObject_class(problem,interpretation,element); 34455 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
41388 neg find mustInstanceOfEModelElement_class(problem,interpretation,element); 34456 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
41389 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 34457 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
41390 neg find scopeDisallowsNewEStringToStringMapEntry_class(problem, interpretation); 34458 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
34459 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
34460 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
41391 neg find isPrimitive(element); 34461 neg find isPrimitive(element);
41392} or { 34462} or {
41393 find interpretation(problem,interpretation); 34463 find interpretation(problem,interpretation);
41394 PartialInterpretation.openWorldElements(interpretation,element); 34464 PartialInterpretation.openWorldElements(interpretation,element);
41395 neg find mustInstanceOfEObject_class(problem,interpretation,element); 34465 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
41396 neg find mustInstanceOfEModelElement_class(problem,interpretation,element); 34466 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
41397 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 34467 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
41398 neg find scopeDisallowsNewEStringToStringMapEntry_class(problem, interpretation); 34468 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
34469 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
34470 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
41399 neg find isPrimitive(element); 34471 neg find isPrimitive(element);
41400} or 34472} or
41401{ find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); } 34473{ find mustInstanceOfInformationLink_class(problem,interpretation,element); }
41402/** 34474/**
41403 * An element must be an instance of type "EGenericType class". 34475 * An element must be an instance of type "FunctionalInterface class".
41404 */ 34476 */
41405private pattern mustInstanceOfEGenericType_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 34477private pattern mustInstanceOfFunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
41406 Type.name(type,"EGenericType class"); 34478 Type.name(type,"FunctionalInterface class");
41407 find directInstanceOf(problem,interpretation,element,type); 34479 find directInstanceOf(problem,interpretation,element,type);
41408} 34480}
41409private pattern scopeDisallowsNewEGenericType_class(problem:LogicProblem, interpretation:PartialInterpretation) { 34481private pattern scopeDisallowsNewFunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation) {
41410 find interpretation(problem,interpretation); 34482 find interpretation(problem,interpretation);
41411 PartialInterpretation.scopes(interpretation,scope); 34483 PartialInterpretation.scopes(interpretation,scope);
41412 Scope.targetTypeInterpretation(scope,typeInterpretation); 34484 Scope.targetTypeInterpretation(scope,typeInterpretation);
41413 Scope.maxNewElements(scope,0); 34485 Scope.maxNewElements(scope,0);
41414 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 34486 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
41415 Type.name(type,"EGenericType class"); 34487 Type.name(type,"FunctionalInterface class");
41416} 34488}
41417 34489
41418/** 34490/**
41419 * An element may be an instance of type "EGenericType class". 34491 * An element may be an instance of type "FunctionalInterface class".
41420 */ 34492 */
41421private pattern mayInstanceOfEGenericType_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 34493private pattern mayInstanceOfFunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
41422{ 34494{
41423 find interpretation(problem,interpretation); 34495 find interpretation(problem,interpretation);
41424 PartialInterpretation.newElements(interpretation,element); 34496 PartialInterpretation.newElements(interpretation,element);
41425 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 34497 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
41426 neg find mustInstanceOfEObject_class(problem,interpretation,element); 34498 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
41427 neg find mustInstanceOfEModelElement_class(problem,interpretation,element); 34499 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
41428 neg find scopeDisallowsNewEGenericType_class(problem, interpretation); 34500 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
34501 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
34502 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
41429 neg find isPrimitive(element); 34503 neg find isPrimitive(element);
41430} or { 34504} or {
41431 find interpretation(problem,interpretation); 34505 find interpretation(problem,interpretation);
41432 PartialInterpretation.openWorldElements(interpretation,element); 34506 PartialInterpretation.openWorldElements(interpretation,element);
41433 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 34507 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
41434 neg find mustInstanceOfEObject_class(problem,interpretation,element); 34508 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
41435 neg find mustInstanceOfEModelElement_class(problem,interpretation,element); 34509 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
41436 neg find scopeDisallowsNewEGenericType_class(problem, interpretation); 34510 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
34511 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
34512 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
41437 neg find isPrimitive(element); 34513 neg find isPrimitive(element);
41438} or 34514} or
41439{ find mustInstanceOfEGenericType_class(problem,interpretation,element); } 34515{ find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); }
41440/** 34516/**
41441 * An element must be an instance of type "ETypeParameter class". 34517 * An element must be an instance of type "FunctionalInput class".
41442 */ 34518 */
41443private pattern mustInstanceOfETypeParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 34519private pattern mustInstanceOfFunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
41444 Type.name(type,"ETypeParameter class"); 34520 Type.name(type,"FunctionalInput class");
41445 find directInstanceOf(problem,interpretation,element,type); 34521 find directInstanceOf(problem,interpretation,element,type);
41446} 34522}
41447private pattern scopeDisallowsNewETypeParameter_class(problem:LogicProblem, interpretation:PartialInterpretation) { 34523private pattern scopeDisallowsNewFunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation) {
41448 find interpretation(problem,interpretation); 34524 find interpretation(problem,interpretation);
41449 PartialInterpretation.scopes(interpretation,scope); 34525 PartialInterpretation.scopes(interpretation,scope);
41450 Scope.targetTypeInterpretation(scope,typeInterpretation); 34526 Scope.targetTypeInterpretation(scope,typeInterpretation);
41451 Scope.maxNewElements(scope,0); 34527 Scope.maxNewElements(scope,0);
41452 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 34528 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
41453 Type.name(type,"ETypeParameter class"); 34529 Type.name(type,"FunctionalInput class");
41454} 34530}
41455 34531
41456/** 34532/**
41457 * An element may be an instance of type "ETypeParameter class". 34533 * An element may be an instance of type "FunctionalInput class".
41458 */ 34534 */
41459private pattern mayInstanceOfETypeParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 34535private pattern mayInstanceOfFunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
41460{ 34536{
41461 find interpretation(problem,interpretation); 34537 find interpretation(problem,interpretation);
41462 PartialInterpretation.newElements(interpretation,element); 34538 PartialInterpretation.newElements(interpretation,element);
41463 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 34539 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
41464 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); 34540 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
41465 neg find mustInstanceOfEObject_class(problem,interpretation,element); 34541 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
41466 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 34542 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
41467 neg find mustInstanceOfETypedElement_class(problem,interpretation,element); 34543 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
41468 neg find mustInstanceOfEClassifier_class(problem,interpretation,element); 34544 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
41469 neg find mustInstanceOfEPackage_class(problem,interpretation,element); 34545 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
41470 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
41471 neg find scopeDisallowsNewETypeParameter_class(problem, interpretation);
41472 neg find isPrimitive(element); 34546 neg find isPrimitive(element);
41473} or { 34547} or {
41474 find interpretation(problem,interpretation); 34548 find interpretation(problem,interpretation);
41475 PartialInterpretation.openWorldElements(interpretation,element); 34549 PartialInterpretation.openWorldElements(interpretation,element);
41476 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 34550 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
41477 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); 34551 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
41478 neg find mustInstanceOfEObject_class(problem,interpretation,element); 34552 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
41479 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 34553 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
41480 neg find mustInstanceOfETypedElement_class(problem,interpretation,element); 34554 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
41481 neg find mustInstanceOfEClassifier_class(problem,interpretation,element); 34555 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
41482 neg find mustInstanceOfEPackage_class(problem,interpretation,element); 34556 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
41483 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
41484 neg find scopeDisallowsNewETypeParameter_class(problem, interpretation);
41485 neg find isPrimitive(element); 34557 neg find isPrimitive(element);
41486} or 34558} or
41487{ find mustInstanceOfETypeParameter_class(problem,interpretation,element); } 34559{ find mustInstanceOfFunctionalInput_class(problem,interpretation,element); }
41488/**
41489 * An element must be an instance of type "EModelElement class DefinedPart".
41490 */
41491private pattern mustInstanceOfEModelElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
41492 Type.name(type,"EModelElement class DefinedPart");
41493 find directInstanceOf(problem,interpretation,element,type);
41494}
41495private pattern scopeDisallowsNewEModelElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
41496 find interpretation(problem,interpretation);
41497 PartialInterpretation.scopes(interpretation,scope);
41498 Scope.targetTypeInterpretation(scope,typeInterpretation);
41499 Scope.maxNewElements(scope,0);
41500 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
41501 Type.name(type,"EModelElement class DefinedPart");
41502}
41503
41504/**
41505 * An element may be an instance of type "EModelElement class DefinedPart".
41506 */
41507private pattern mayInstanceOfEModelElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
41508{ find mustInstanceOfEModelElement_class_DefinedPart(problem,interpretation,element); }
41509/** 34560/**
41510 * An element must be an instance of type "EModelElement class UndefinedPart". 34561 * An element must be an instance of type "FunctionalOutput class".
41511 */ 34562 */
41512private pattern mustInstanceOfEModelElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 34563private pattern mustInstanceOfFunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
41513 Type.name(type,"EModelElement class UndefinedPart"); 34564 Type.name(type,"FunctionalOutput class");
41514 find directInstanceOf(problem,interpretation,element,type); 34565 find directInstanceOf(problem,interpretation,element,type);
41515} 34566}
41516private pattern scopeDisallowsNewEModelElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { 34567private pattern scopeDisallowsNewFunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation) {
41517 find interpretation(problem,interpretation); 34568 find interpretation(problem,interpretation);
41518 PartialInterpretation.scopes(interpretation,scope); 34569 PartialInterpretation.scopes(interpretation,scope);
41519 Scope.targetTypeInterpretation(scope,typeInterpretation); 34570 Scope.targetTypeInterpretation(scope,typeInterpretation);
41520 Scope.maxNewElements(scope,0); 34571 Scope.maxNewElements(scope,0);
41521 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 34572 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
41522 Type.name(type,"EModelElement class UndefinedPart"); 34573 Type.name(type,"FunctionalOutput class");
41523} 34574}
41524 34575
41525/** 34576/**
41526 * An element may be an instance of type "EModelElement class UndefinedPart". 34577 * An element may be an instance of type "FunctionalOutput class".
41527 */ 34578 */
41528private pattern mayInstanceOfEModelElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 34579private pattern mayInstanceOfFunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
41529{ 34580{
41530 find interpretation(problem,interpretation); 34581 find interpretation(problem,interpretation);
41531 PartialInterpretation.newElements(interpretation,element); 34582 PartialInterpretation.newElements(interpretation,element);
41532 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 34583 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
41533 neg find mustInstanceOfEObject_class(problem,interpretation,element); 34584 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
41534 neg find mustInstanceOfENamedElement_class(problem,interpretation,element); 34585 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
41535 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 34586 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
41536 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 34587 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
41537 neg find scopeDisallowsNewEModelElement_class_UndefinedPart(problem, interpretation); 34588 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
34589 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
41538 neg find isPrimitive(element); 34590 neg find isPrimitive(element);
41539} or { 34591} or {
41540 find interpretation(problem,interpretation); 34592 find interpretation(problem,interpretation);
41541 PartialInterpretation.openWorldElements(interpretation,element); 34593 PartialInterpretation.openWorldElements(interpretation,element);
41542 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 34594 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
41543 neg find mustInstanceOfEObject_class(problem,interpretation,element); 34595 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
41544 neg find mustInstanceOfENamedElement_class(problem,interpretation,element); 34596 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
41545 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 34597 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
41546 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 34598 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
41547 neg find scopeDisallowsNewEModelElement_class_UndefinedPart(problem, interpretation); 34599 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
34600 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
41548 neg find isPrimitive(element); 34601 neg find isPrimitive(element);
41549} or 34602} or
41550{ find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element); } 34603{ find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); }
41551/**
41552 * An element must be an instance of type "ENamedElement class DefinedPart".
41553 */
41554private pattern mustInstanceOfENamedElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
41555 Type.name(type,"ENamedElement class DefinedPart");
41556 find directInstanceOf(problem,interpretation,element,type);
41557}
41558private pattern scopeDisallowsNewENamedElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
41559 find interpretation(problem,interpretation);
41560 PartialInterpretation.scopes(interpretation,scope);
41561 Scope.targetTypeInterpretation(scope,typeInterpretation);
41562 Scope.maxNewElements(scope,0);
41563 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
41564 Type.name(type,"ENamedElement class DefinedPart");
41565}
41566
41567/**
41568 * An element may be an instance of type "ENamedElement class DefinedPart".
41569 */
41570private pattern mayInstanceOfENamedElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
41571{ find mustInstanceOfENamedElement_class_DefinedPart(problem,interpretation,element); }
41572/** 34604/**
41573 * An element must be an instance of type "ENamedElement class UndefinedPart". 34605 * An element must be an instance of type "FunctionalData class".
41574 */ 34606 */
41575private pattern mustInstanceOfENamedElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 34607private pattern mustInstanceOfFunctionalData_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
41576 Type.name(type,"ENamedElement class UndefinedPart"); 34608 Type.name(type,"FunctionalData class");
41577 find directInstanceOf(problem,interpretation,element,type); 34609 find directInstanceOf(problem,interpretation,element,type);
41578} 34610}
41579private pattern scopeDisallowsNewENamedElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { 34611private pattern scopeDisallowsNewFunctionalData_class(problem:LogicProblem, interpretation:PartialInterpretation) {
41580 find interpretation(problem,interpretation); 34612 find interpretation(problem,interpretation);
41581 PartialInterpretation.scopes(interpretation,scope); 34613 PartialInterpretation.scopes(interpretation,scope);
41582 Scope.targetTypeInterpretation(scope,typeInterpretation); 34614 Scope.targetTypeInterpretation(scope,typeInterpretation);
41583 Scope.maxNewElements(scope,0); 34615 Scope.maxNewElements(scope,0);
41584 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 34616 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
41585 Type.name(type,"ENamedElement class UndefinedPart"); 34617 Type.name(type,"FunctionalData class");
41586} 34618}
41587 34619
41588/** 34620/**
41589 * An element may be an instance of type "ENamedElement class UndefinedPart". 34621 * An element may be an instance of type "FunctionalData class".
41590 */ 34622 */
41591private pattern mayInstanceOfENamedElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 34623private pattern mayInstanceOfFunctionalData_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
41592{ 34624{
41593 find interpretation(problem,interpretation); 34625 find interpretation(problem,interpretation);
41594 PartialInterpretation.newElements(interpretation,element); 34626 PartialInterpretation.newElements(interpretation,element);
41595 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 34627 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
41596 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); 34628 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
41597 neg find mustInstanceOfEObject_class(problem,interpretation,element); 34629 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
41598 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); 34630 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
41599 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 34631 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
41600 neg find mustInstanceOfETypedElement_class(problem,interpretation,element); 34632 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
41601 neg find mustInstanceOfEClassifier_class(problem,interpretation,element); 34633 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
41602 neg find mustInstanceOfEPackage_class(problem,interpretation,element); 34634 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
41603 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
41604 neg find scopeDisallowsNewENamedElement_class_UndefinedPart(problem, interpretation);
41605 neg find isPrimitive(element); 34635 neg find isPrimitive(element);
41606} or { 34636} or {
41607 find interpretation(problem,interpretation); 34637 find interpretation(problem,interpretation);
41608 PartialInterpretation.openWorldElements(interpretation,element); 34638 PartialInterpretation.openWorldElements(interpretation,element);
41609 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 34639 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
41610 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); 34640 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
41611 neg find mustInstanceOfEObject_class(problem,interpretation,element); 34641 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
41612 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); 34642 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
41613 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 34643 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
41614 neg find mustInstanceOfETypedElement_class(problem,interpretation,element); 34644 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
41615 neg find mustInstanceOfEClassifier_class(problem,interpretation,element); 34645 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
41616 neg find mustInstanceOfEPackage_class(problem,interpretation,element); 34646 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
41617 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
41618 neg find scopeDisallowsNewENamedElement_class_UndefinedPart(problem, interpretation);
41619 neg find isPrimitive(element); 34647 neg find isPrimitive(element);
41620} or 34648} or
41621{ find mustInstanceOfENamedElement_class_UndefinedPart(problem,interpretation,element); } 34649{ find mustInstanceOfFunctionalData_class(problem,interpretation,element); }
41622/**
41623 * An element must be an instance of type "EPackage class DefinedPart".
41624 */
41625private pattern mustInstanceOfEPackage_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
41626 Type.name(type,"EPackage class DefinedPart");
41627 find directInstanceOf(problem,interpretation,element,type);
41628}
41629private pattern scopeDisallowsNewEPackage_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
41630 find interpretation(problem,interpretation);
41631 PartialInterpretation.scopes(interpretation,scope);
41632 Scope.targetTypeInterpretation(scope,typeInterpretation);
41633 Scope.maxNewElements(scope,0);
41634 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
41635 Type.name(type,"EPackage class DefinedPart");
41636}
41637
41638/**
41639 * An element may be an instance of type "EPackage class DefinedPart".
41640 */
41641private pattern mayInstanceOfEPackage_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
41642{ find mustInstanceOfEPackage_class_DefinedPart(problem,interpretation,element); }
41643/** 34650/**
41644 * An element must be an instance of type "EPackage class UndefinedPart". 34651 * An element must be an instance of type "FunctionType enum".
41645 */ 34652 */
41646private pattern mustInstanceOfEPackage_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 34653private pattern mustInstanceOfFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
41647 Type.name(type,"EPackage class UndefinedPart"); 34654 Type.name(type,"FunctionType enum");
41648 find directInstanceOf(problem,interpretation,element,type); 34655 find directInstanceOf(problem,interpretation,element,type);
41649} 34656}
41650private pattern scopeDisallowsNewEPackage_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { 34657private pattern scopeDisallowsNewFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation) {
41651 find interpretation(problem,interpretation); 34658 find interpretation(problem,interpretation);
41652 PartialInterpretation.scopes(interpretation,scope); 34659 PartialInterpretation.scopes(interpretation,scope);
41653 Scope.targetTypeInterpretation(scope,typeInterpretation); 34660 Scope.targetTypeInterpretation(scope,typeInterpretation);
41654 Scope.maxNewElements(scope,0); 34661 Scope.maxNewElements(scope,0);
41655 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 34662 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
41656 Type.name(type,"EPackage class UndefinedPart"); 34663 Type.name(type,"FunctionType enum");
41657} 34664}
41658 34665
41659/** 34666/**
41660 * An element may be an instance of type "EPackage class UndefinedPart". 34667 * An element may be an instance of type "FunctionType enum".
41661 */ 34668 */
41662private pattern mayInstanceOfEPackage_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 34669private pattern mayInstanceOfFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
41663{ 34670{ find mustInstanceOfFunctionType_enum(problem,interpretation,element); }
41664 find interpretation(problem,interpretation);
41665 PartialInterpretation.newElements(interpretation,element);
41666 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
41667 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
41668 neg find mustInstanceOfEObject_class(problem,interpretation,element);
41669 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
41670 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
41671 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
41672 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
41673 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
41674 neg find scopeDisallowsNewEPackage_class_UndefinedPart(problem, interpretation);
41675 neg find isPrimitive(element);
41676} or {
41677 find interpretation(problem,interpretation);
41678 PartialInterpretation.openWorldElements(interpretation,element);
41679 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
41680 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
41681 neg find mustInstanceOfEObject_class(problem,interpretation,element);
41682 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
41683 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
41684 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
41685 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
41686 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
41687 neg find scopeDisallowsNewEPackage_class_UndefinedPart(problem, interpretation);
41688 neg find isPrimitive(element);
41689} or
41690{ find mustInstanceOfEPackage_class_UndefinedPart(problem,interpretation,element); }
41691 34671
41692////////// 34672//////////
41693// 1.2 Relation Declaration Indexers 34673// 1.2 Relation Declaration Indexers
41694////////// 34674//////////
41695/** 34675/**
41696 * Matcher for detecting tuples t where []eAttributeType reference EAttribute(source,target) 34676 * Matcher for detecting tuples t where []interface reference FunctionalElement(source,target)
41697 */ 34677 */
41698private pattern mustInRelationeAttributeType_reference_EAttribute( 34678private pattern mustInRelationinterface_reference_FunctionalElement(
41699 problem:LogicProblem, interpretation:PartialInterpretation, 34679 problem:LogicProblem, interpretation:PartialInterpretation,
41700 source: DefinedElement, target:DefinedElement) 34680 source: DefinedElement, target:DefinedElement)
41701{ 34681{
41702 find interpretation(problem,interpretation); 34682 find interpretation(problem,interpretation);
41703 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 34683 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
41704 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAttributeType reference EAttribute"); 34684 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"interface reference FunctionalElement");
41705 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 34685 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
41706 BinaryElementRelationLink.param1(link,source); 34686 BinaryElementRelationLink.param1(link,source);
41707 BinaryElementRelationLink.param2(link,target); 34687 BinaryElementRelationLink.param2(link,target);
41708} 34688}
41709/** 34689/**
41710 * Matcher for detecting tuples t where <>eAttributeType reference EAttribute(source,target) 34690 * Matcher for detecting tuples t where <>interface reference FunctionalElement(source,target)
41711 */ 34691 */
41712private pattern mayInRelationeAttributeType_reference_EAttribute( 34692private pattern mayInRelationinterface_reference_FunctionalElement(
41713 problem:LogicProblem, interpretation:PartialInterpretation, 34693 problem:LogicProblem, interpretation:PartialInterpretation,
41714 source: DefinedElement, target:DefinedElement) 34694 source: DefinedElement, target:DefinedElement)
41715{ 34695{
@@ -41718,33 +34698,42 @@ private pattern mayInRelationeAttributeType_reference_EAttribute(
41718 find mayExist(problem, interpretation, source); 34698 find mayExist(problem, interpretation, source);
41719 find mayExist(problem, interpretation, target); 34699 find mayExist(problem, interpretation, target);
41720 // Type consistency 34700 // Type consistency
41721 find mayInstanceOfEAttribute_class(problem,interpretation,source); 34701 find mayInstanceOfFunctionalElement_class(problem,interpretation,source);
41722 find mayInstanceOfEDataType_class(problem,interpretation,target); 34702 find mayInstanceOfFunctionalInterface_class(problem,interpretation,target);
41723 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 34703 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
41724 // the upper bound of the multiplicity should be considered. 34704 // the upper bound of the multiplicity should be considered.
41725 numberOfExistingReferences == count find mustInRelationeAttributeType_reference_EAttribute(problem,interpretation,source,_); 34705 numberOfExistingReferences == count find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,source,_);
41726 check(numberOfExistingReferences < 1); 34706 check(numberOfExistingReferences < 1);
34707 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
34708 // the upper bound of the opposite reference multiplicity should be considered.
34709 numberOfExistingOppositeReferences == count find mustInRelationelement_reference_FunctionalInterface(problem,interpretation,target,_);
34710 check(numberOfExistingOppositeReferences < 1);
34711 // The reference is containment, then a new reference cannot be create if:
34712 // 1. Multiple parents
34713 neg find mustContains4(problem,interpretation,_,target);
34714 // 2. Circle in the containment hierarchy
34715 neg find mustTransitiveContains(source,target);
41727} or { 34716} or {
41728 find mustInRelationeAttributeType_reference_EAttribute(problem,interpretation,source,target); 34717 find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,source,target);
41729} 34718}
41730/** 34719/**
41731 * Matcher for detecting tuples t where []details reference EAnnotation(source,target) 34720 * Matcher for detecting tuples t where []model reference FunctionalElement(source,target)
41732 */ 34721 */
41733private pattern mustInRelationdetails_reference_EAnnotation( 34722private pattern mustInRelationmodel_reference_FunctionalElement(
41734 problem:LogicProblem, interpretation:PartialInterpretation, 34723 problem:LogicProblem, interpretation:PartialInterpretation,
41735 source: DefinedElement, target:DefinedElement) 34724 source: DefinedElement, target:DefinedElement)
41736{ 34725{
41737 find interpretation(problem,interpretation); 34726 find interpretation(problem,interpretation);
41738 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 34727 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
41739 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"details reference EAnnotation"); 34728 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement");
41740 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 34729 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
41741 BinaryElementRelationLink.param1(link,source); 34730 BinaryElementRelationLink.param1(link,source);
41742 BinaryElementRelationLink.param2(link,target); 34731 BinaryElementRelationLink.param2(link,target);
41743} 34732}
41744/** 34733/**
41745 * Matcher for detecting tuples t where <>details reference EAnnotation(source,target) 34734 * Matcher for detecting tuples t where <>model reference FunctionalElement(source,target)
41746 */ 34735 */
41747private pattern mayInRelationdetails_reference_EAnnotation( 34736private pattern mayInRelationmodel_reference_FunctionalElement(
41748 problem:LogicProblem, interpretation:PartialInterpretation, 34737 problem:LogicProblem, interpretation:PartialInterpretation,
41749 source: DefinedElement, target:DefinedElement) 34738 source: DefinedElement, target:DefinedElement)
41750{ 34739{
@@ -41753,34 +34742,33 @@ private pattern mayInRelationdetails_reference_EAnnotation(
41753 find mayExist(problem, interpretation, source); 34742 find mayExist(problem, interpretation, source);
41754 find mayExist(problem, interpretation, target); 34743 find mayExist(problem, interpretation, target);
41755 // Type consistency 34744 // Type consistency
41756 find mayInstanceOfEAnnotation_class(problem,interpretation,source); 34745 find mayInstanceOfFunctionalElement_class(problem,interpretation,source);
41757 find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,target); 34746 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,target);
41758 // The reference is containment, then a new reference cannot be create if: 34747 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
41759 // 1. Multiple parents 34748 // the upper bound of the multiplicity should be considered.
41760 neg find mustContains4(problem,interpretation,_,target); 34749 numberOfExistingReferences == count find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,source,_);
41761 // 2. Circle in the containment hierarchy 34750 check(numberOfExistingReferences < 1);
41762 neg find mustTransitiveContains(source,target);
41763} or { 34751} or {
41764 find mustInRelationdetails_reference_EAnnotation(problem,interpretation,source,target); 34752 find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,source,target);
41765} 34753}
41766/** 34754/**
41767 * Matcher for detecting tuples t where []eModelElement reference EAnnotation(source,target) 34755 * Matcher for detecting tuples t where []parent reference FunctionalElement(source,target)
41768 */ 34756 */
41769private pattern mustInRelationeModelElement_reference_EAnnotation( 34757private pattern mustInRelationparent_reference_FunctionalElement(
41770 problem:LogicProblem, interpretation:PartialInterpretation, 34758 problem:LogicProblem, interpretation:PartialInterpretation,
41771 source: DefinedElement, target:DefinedElement) 34759 source: DefinedElement, target:DefinedElement)
41772{ 34760{
41773 find interpretation(problem,interpretation); 34761 find interpretation(problem,interpretation);
41774 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 34762 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
41775 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eModelElement reference EAnnotation"); 34763 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"parent reference FunctionalElement");
41776 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 34764 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
41777 BinaryElementRelationLink.param1(link,source); 34765 BinaryElementRelationLink.param1(link,source);
41778 BinaryElementRelationLink.param2(link,target); 34766 BinaryElementRelationLink.param2(link,target);
41779} 34767}
41780/** 34768/**
41781 * Matcher for detecting tuples t where <>eModelElement reference EAnnotation(source,target) 34769 * Matcher for detecting tuples t where <>parent reference FunctionalElement(source,target)
41782 */ 34770 */
41783private pattern mayInRelationeModelElement_reference_EAnnotation( 34771private pattern mayInRelationparent_reference_FunctionalElement(
41784 problem:LogicProblem, interpretation:PartialInterpretation, 34772 problem:LogicProblem, interpretation:PartialInterpretation,
41785 source: DefinedElement, target:DefinedElement) 34773 source: DefinedElement, target:DefinedElement)
41786{ 34774{
@@ -41789,11 +34777,11 @@ private pattern mayInRelationeModelElement_reference_EAnnotation(
41789 find mayExist(problem, interpretation, source); 34777 find mayExist(problem, interpretation, source);
41790 find mayExist(problem, interpretation, target); 34778 find mayExist(problem, interpretation, target);
41791 // Type consistency 34779 // Type consistency
41792 find mayInstanceOfEAnnotation_class(problem,interpretation,source); 34780 find mayInstanceOfFunctionalElement_class(problem,interpretation,source);
41793 find mayInstanceOfEModelElement_class(problem,interpretation,target); 34781 find mayInstanceOfFunction_class(problem,interpretation,target);
41794 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 34782 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
41795 // the upper bound of the multiplicity should be considered. 34783 // the upper bound of the multiplicity should be considered.
41796 numberOfExistingReferences == count find mustInRelationeModelElement_reference_EAnnotation(problem,interpretation,source,_); 34784 numberOfExistingReferences == count find mustInRelationparent_reference_FunctionalElement(problem,interpretation,source,_);
41797 check(numberOfExistingReferences < 1); 34785 check(numberOfExistingReferences < 1);
41798 // The eOpposite of the reference is containment, then a referene cannot be created if 34786 // The eOpposite of the reference is containment, then a referene cannot be created if
41799 // 1. Multiple parents 34787 // 1. Multiple parents
@@ -41801,26 +34789,26 @@ private pattern mayInRelationeModelElement_reference_EAnnotation(
41801 // 2. Circle in the containment hierarchy 34789 // 2. Circle in the containment hierarchy
41802 neg find mustTransitiveContains(source,target); 34790 neg find mustTransitiveContains(source,target);
41803} or { 34791} or {
41804 find mustInRelationeModelElement_reference_EAnnotation(problem,interpretation,source,target); 34792 find mustInRelationparent_reference_FunctionalElement(problem,interpretation,source,target);
41805} 34793}
41806/** 34794/**
41807 * Matcher for detecting tuples t where []contents reference EAnnotation(source,target) 34795 * Matcher for detecting tuples t where []rootElements reference FunctionalArchitectureModel(source,target)
41808 */ 34796 */
41809private pattern mustInRelationcontents_reference_EAnnotation( 34797private pattern mustInRelationrootElements_reference_FunctionalArchitectureModel(
41810 problem:LogicProblem, interpretation:PartialInterpretation, 34798 problem:LogicProblem, interpretation:PartialInterpretation,
41811 source: DefinedElement, target:DefinedElement) 34799 source: DefinedElement, target:DefinedElement)
41812{ 34800{
41813 find interpretation(problem,interpretation); 34801 find interpretation(problem,interpretation);
41814 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 34802 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
41815 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"contents reference EAnnotation"); 34803 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"rootElements reference FunctionalArchitectureModel");
41816 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 34804 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
41817 BinaryElementRelationLink.param1(link,source); 34805 BinaryElementRelationLink.param1(link,source);
41818 BinaryElementRelationLink.param2(link,target); 34806 BinaryElementRelationLink.param2(link,target);
41819} 34807}
41820/** 34808/**
41821 * Matcher for detecting tuples t where <>contents reference EAnnotation(source,target) 34809 * Matcher for detecting tuples t where <>rootElements reference FunctionalArchitectureModel(source,target)
41822 */ 34810 */
41823private pattern mayInRelationcontents_reference_EAnnotation( 34811private pattern mayInRelationrootElements_reference_FunctionalArchitectureModel(
41824 problem:LogicProblem, interpretation:PartialInterpretation, 34812 problem:LogicProblem, interpretation:PartialInterpretation,
41825 source: DefinedElement, target:DefinedElement) 34813 source: DefinedElement, target:DefinedElement)
41826{ 34814{
@@ -41829,96 +34817,34 @@ private pattern mayInRelationcontents_reference_EAnnotation(
41829 find mayExist(problem, interpretation, source); 34817 find mayExist(problem, interpretation, source);
41830 find mayExist(problem, interpretation, target); 34818 find mayExist(problem, interpretation, target);
41831 // Type consistency 34819 // Type consistency
41832 find mayInstanceOfEAnnotation_class(problem,interpretation,source); 34820 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,source);
41833 find mayInstanceOfEObject_class(problem,interpretation,target); 34821 find mayInstanceOfFunctionalElement_class(problem,interpretation,target);
41834 // The reference is containment, then a new reference cannot be create if: 34822 // The reference is containment, then a new reference cannot be create if:
41835 // 1. Multiple parents 34823 // 1. Multiple parents
41836 neg find mustContains4(problem,interpretation,_,target); 34824 neg find mustContains4(problem,interpretation,_,target);
41837 // 2. Circle in the containment hierarchy 34825 // 2. Circle in the containment hierarchy
41838 neg find mustTransitiveContains(source,target); 34826 neg find mustTransitiveContains(source,target);
41839} or { 34827} or {
41840 find mustInRelationcontents_reference_EAnnotation(problem,interpretation,source,target); 34828 find mustInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,source,target);
41841}
41842/**
41843 * Matcher for detecting tuples t where []references reference EAnnotation(source,target)
41844 */
41845private pattern mustInRelationreferences_reference_EAnnotation(
41846 problem:LogicProblem, interpretation:PartialInterpretation,
41847 source: DefinedElement, target:DefinedElement)
41848{
41849 find interpretation(problem,interpretation);
41850 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
41851 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"references reference EAnnotation");
41852 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
41853 BinaryElementRelationLink.param1(link,source);
41854 BinaryElementRelationLink.param2(link,target);
41855}
41856/**
41857 * Matcher for detecting tuples t where <>references reference EAnnotation(source,target)
41858 */
41859private pattern mayInRelationreferences_reference_EAnnotation(
41860 problem:LogicProblem, interpretation:PartialInterpretation,
41861 source: DefinedElement, target:DefinedElement)
41862{
41863 find interpretation(problem,interpretation);
41864 // The two endpoint of the link have to exist
41865 find mayExist(problem, interpretation, source);
41866 find mayExist(problem, interpretation, target);
41867 // Type consistency
41868 find mayInstanceOfEAnnotation_class(problem,interpretation,source);
41869 find mayInstanceOfEObject_class(problem,interpretation,target);
41870} or {
41871 find mustInRelationreferences_reference_EAnnotation(problem,interpretation,source,target);
41872}
41873/**
41874 * Matcher for detecting tuples t where []eSuperTypes reference EClass(source,target)
41875 */
41876private pattern mustInRelationeSuperTypes_reference_EClass(
41877 problem:LogicProblem, interpretation:PartialInterpretation,
41878 source: DefinedElement, target:DefinedElement)
41879{
41880 find interpretation(problem,interpretation);
41881 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
41882 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eSuperTypes reference EClass");
41883 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
41884 BinaryElementRelationLink.param1(link,source);
41885 BinaryElementRelationLink.param2(link,target);
41886}
41887/**
41888 * Matcher for detecting tuples t where <>eSuperTypes reference EClass(source,target)
41889 */
41890private pattern mayInRelationeSuperTypes_reference_EClass(
41891 problem:LogicProblem, interpretation:PartialInterpretation,
41892 source: DefinedElement, target:DefinedElement)
41893{
41894 find interpretation(problem,interpretation);
41895 // The two endpoint of the link have to exist
41896 find mayExist(problem, interpretation, source);
41897 find mayExist(problem, interpretation, target);
41898 // Type consistency
41899 find mayInstanceOfEClass_class(problem,interpretation,source);
41900 find mayInstanceOfEClass_class(problem,interpretation,target);
41901} or {
41902 find mustInRelationeSuperTypes_reference_EClass(problem,interpretation,source,target);
41903} 34829}
41904/** 34830/**
41905 * Matcher for detecting tuples t where []eOperations reference EClass(source,target) 34831 * Matcher for detecting tuples t where []subElements reference Function(source,target)
41906 */ 34832 */
41907private pattern mustInRelationeOperations_reference_EClass( 34833private pattern mustInRelationsubElements_reference_Function(
41908 problem:LogicProblem, interpretation:PartialInterpretation, 34834 problem:LogicProblem, interpretation:PartialInterpretation,
41909 source: DefinedElement, target:DefinedElement) 34835 source: DefinedElement, target:DefinedElement)
41910{ 34836{
41911 find interpretation(problem,interpretation); 34837 find interpretation(problem,interpretation);
41912 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 34838 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
41913 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eOperations reference EClass"); 34839 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"subElements reference Function");
41914 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 34840 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
41915 BinaryElementRelationLink.param1(link,source); 34841 BinaryElementRelationLink.param1(link,source);
41916 BinaryElementRelationLink.param2(link,target); 34842 BinaryElementRelationLink.param2(link,target);
41917} 34843}
41918/** 34844/**
41919 * Matcher for detecting tuples t where <>eOperations reference EClass(source,target) 34845 * Matcher for detecting tuples t where <>subElements reference Function(source,target)
41920 */ 34846 */
41921private pattern mayInRelationeOperations_reference_EClass( 34847private pattern mayInRelationsubElements_reference_Function(
41922 problem:LogicProblem, interpretation:PartialInterpretation, 34848 problem:LogicProblem, interpretation:PartialInterpretation,
41923 source: DefinedElement, target:DefinedElement) 34849 source: DefinedElement, target:DefinedElement)
41924{ 34850{
@@ -41927,11 +34853,11 @@ private pattern mayInRelationeOperations_reference_EClass(
41927 find mayExist(problem, interpretation, source); 34853 find mayExist(problem, interpretation, source);
41928 find mayExist(problem, interpretation, target); 34854 find mayExist(problem, interpretation, target);
41929 // Type consistency 34855 // Type consistency
41930 find mayInstanceOfEClass_class(problem,interpretation,source); 34856 find mayInstanceOfFunction_class(problem,interpretation,source);
41931 find mayInstanceOfEOperation_class(problem,interpretation,target); 34857 find mayInstanceOfFunctionalElement_class(problem,interpretation,target);
41932 // There are "numberOfExistingReferences" currently existing instances of the reference to the target, 34858 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
41933 // the upper bound of the opposite reference multiplicity should be considered. 34859 // the upper bound of the opposite reference multiplicity should be considered.
41934 numberOfExistingOppositeReferences == count find mustInRelationeContainingClass_reference_EOperation(problem,interpretation,target,_); 34860 numberOfExistingOppositeReferences == count find mustInRelationparent_reference_FunctionalElement(problem,interpretation,target,_);
41935 check(numberOfExistingOppositeReferences < 1); 34861 check(numberOfExistingOppositeReferences < 1);
41936 // The reference is containment, then a new reference cannot be create if: 34862 // The reference is containment, then a new reference cannot be create if:
41937 // 1. Multiple parents 34863 // 1. Multiple parents
@@ -41939,274 +34865,26 @@ private pattern mayInRelationeOperations_reference_EClass(
41939 // 2. Circle in the containment hierarchy 34865 // 2. Circle in the containment hierarchy
41940 neg find mustTransitiveContains(source,target); 34866 neg find mustTransitiveContains(source,target);
41941} or { 34867} or {
41942 find mustInRelationeOperations_reference_EClass(problem,interpretation,source,target); 34868 find mustInRelationsubElements_reference_Function(problem,interpretation,source,target);
41943}
41944/**
41945 * Matcher for detecting tuples t where []eAllAttributes reference EClass(source,target)
41946 */
41947private pattern mustInRelationeAllAttributes_reference_EClass(
41948 problem:LogicProblem, interpretation:PartialInterpretation,
41949 source: DefinedElement, target:DefinedElement)
41950{
41951 find interpretation(problem,interpretation);
41952 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
41953 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllAttributes reference EClass");
41954 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
41955 BinaryElementRelationLink.param1(link,source);
41956 BinaryElementRelationLink.param2(link,target);
41957}
41958/**
41959 * Matcher for detecting tuples t where <>eAllAttributes reference EClass(source,target)
41960 */
41961private pattern mayInRelationeAllAttributes_reference_EClass(
41962 problem:LogicProblem, interpretation:PartialInterpretation,
41963 source: DefinedElement, target:DefinedElement)
41964{
41965 find interpretation(problem,interpretation);
41966 // The two endpoint of the link have to exist
41967 find mayExist(problem, interpretation, source);
41968 find mayExist(problem, interpretation, target);
41969 // Type consistency
41970 find mayInstanceOfEClass_class(problem,interpretation,source);
41971 find mayInstanceOfEAttribute_class(problem,interpretation,target);
41972} or {
41973 find mustInRelationeAllAttributes_reference_EClass(problem,interpretation,source,target);
41974}
41975/**
41976 * Matcher for detecting tuples t where []eAllReferences reference EClass(source,target)
41977 */
41978private pattern mustInRelationeAllReferences_reference_EClass(
41979 problem:LogicProblem, interpretation:PartialInterpretation,
41980 source: DefinedElement, target:DefinedElement)
41981{
41982 find interpretation(problem,interpretation);
41983 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
41984 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllReferences reference EClass");
41985 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
41986 BinaryElementRelationLink.param1(link,source);
41987 BinaryElementRelationLink.param2(link,target);
41988}
41989/**
41990 * Matcher for detecting tuples t where <>eAllReferences reference EClass(source,target)
41991 */
41992private pattern mayInRelationeAllReferences_reference_EClass(
41993 problem:LogicProblem, interpretation:PartialInterpretation,
41994 source: DefinedElement, target:DefinedElement)
41995{
41996 find interpretation(problem,interpretation);
41997 // The two endpoint of the link have to exist
41998 find mayExist(problem, interpretation, source);
41999 find mayExist(problem, interpretation, target);
42000 // Type consistency
42001 find mayInstanceOfEClass_class(problem,interpretation,source);
42002 find mayInstanceOfEReference_class(problem,interpretation,target);
42003} or {
42004 find mustInRelationeAllReferences_reference_EClass(problem,interpretation,source,target);
42005}
42006/**
42007 * Matcher for detecting tuples t where []eReferences reference EClass(source,target)
42008 */
42009private pattern mustInRelationeReferences_reference_EClass(
42010 problem:LogicProblem, interpretation:PartialInterpretation,
42011 source: DefinedElement, target:DefinedElement)
42012{
42013 find interpretation(problem,interpretation);
42014 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
42015 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eReferences reference EClass");
42016 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
42017 BinaryElementRelationLink.param1(link,source);
42018 BinaryElementRelationLink.param2(link,target);
42019}
42020/**
42021 * Matcher for detecting tuples t where <>eReferences reference EClass(source,target)
42022 */
42023private pattern mayInRelationeReferences_reference_EClass(
42024 problem:LogicProblem, interpretation:PartialInterpretation,
42025 source: DefinedElement, target:DefinedElement)
42026{
42027 find interpretation(problem,interpretation);
42028 // The two endpoint of the link have to exist
42029 find mayExist(problem, interpretation, source);
42030 find mayExist(problem, interpretation, target);
42031 // Type consistency
42032 find mayInstanceOfEClass_class(problem,interpretation,source);
42033 find mayInstanceOfEReference_class(problem,interpretation,target);
42034} or {
42035 find mustInRelationeReferences_reference_EClass(problem,interpretation,source,target);
42036}
42037/**
42038 * Matcher for detecting tuples t where []eAttributes reference EClass(source,target)
42039 */
42040private pattern mustInRelationeAttributes_reference_EClass(
42041 problem:LogicProblem, interpretation:PartialInterpretation,
42042 source: DefinedElement, target:DefinedElement)
42043{
42044 find interpretation(problem,interpretation);
42045 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
42046 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAttributes reference EClass");
42047 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
42048 BinaryElementRelationLink.param1(link,source);
42049 BinaryElementRelationLink.param2(link,target);
42050}
42051/**
42052 * Matcher for detecting tuples t where <>eAttributes reference EClass(source,target)
42053 */
42054private pattern mayInRelationeAttributes_reference_EClass(
42055 problem:LogicProblem, interpretation:PartialInterpretation,
42056 source: DefinedElement, target:DefinedElement)
42057{
42058 find interpretation(problem,interpretation);
42059 // The two endpoint of the link have to exist
42060 find mayExist(problem, interpretation, source);
42061 find mayExist(problem, interpretation, target);
42062 // Type consistency
42063 find mayInstanceOfEClass_class(problem,interpretation,source);
42064 find mayInstanceOfEAttribute_class(problem,interpretation,target);
42065} or {
42066 find mustInRelationeAttributes_reference_EClass(problem,interpretation,source,target);
42067}
42068/**
42069 * Matcher for detecting tuples t where []eAllContainments reference EClass(source,target)
42070 */
42071private pattern mustInRelationeAllContainments_reference_EClass(
42072 problem:LogicProblem, interpretation:PartialInterpretation,
42073 source: DefinedElement, target:DefinedElement)
42074{
42075 find interpretation(problem,interpretation);
42076 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
42077 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllContainments reference EClass");
42078 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
42079 BinaryElementRelationLink.param1(link,source);
42080 BinaryElementRelationLink.param2(link,target);
42081}
42082/**
42083 * Matcher for detecting tuples t where <>eAllContainments reference EClass(source,target)
42084 */
42085private pattern mayInRelationeAllContainments_reference_EClass(
42086 problem:LogicProblem, interpretation:PartialInterpretation,
42087 source: DefinedElement, target:DefinedElement)
42088{
42089 find interpretation(problem,interpretation);
42090 // The two endpoint of the link have to exist
42091 find mayExist(problem, interpretation, source);
42092 find mayExist(problem, interpretation, target);
42093 // Type consistency
42094 find mayInstanceOfEClass_class(problem,interpretation,source);
42095 find mayInstanceOfEReference_class(problem,interpretation,target);
42096} or {
42097 find mustInRelationeAllContainments_reference_EClass(problem,interpretation,source,target);
42098}
42099/**
42100 * Matcher for detecting tuples t where []eAllOperations reference EClass(source,target)
42101 */
42102private pattern mustInRelationeAllOperations_reference_EClass(
42103 problem:LogicProblem, interpretation:PartialInterpretation,
42104 source: DefinedElement, target:DefinedElement)
42105{
42106 find interpretation(problem,interpretation);
42107 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
42108 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllOperations reference EClass");
42109 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
42110 BinaryElementRelationLink.param1(link,source);
42111 BinaryElementRelationLink.param2(link,target);
42112}
42113/**
42114 * Matcher for detecting tuples t where <>eAllOperations reference EClass(source,target)
42115 */
42116private pattern mayInRelationeAllOperations_reference_EClass(
42117 problem:LogicProblem, interpretation:PartialInterpretation,
42118 source: DefinedElement, target:DefinedElement)
42119{
42120 find interpretation(problem,interpretation);
42121 // The two endpoint of the link have to exist
42122 find mayExist(problem, interpretation, source);
42123 find mayExist(problem, interpretation, target);
42124 // Type consistency
42125 find mayInstanceOfEClass_class(problem,interpretation,source);
42126 find mayInstanceOfEOperation_class(problem,interpretation,target);
42127} or {
42128 find mustInRelationeAllOperations_reference_EClass(problem,interpretation,source,target);
42129}
42130/**
42131 * Matcher for detecting tuples t where []eAllStructuralFeatures reference EClass(source,target)
42132 */
42133private pattern mustInRelationeAllStructuralFeatures_reference_EClass(
42134 problem:LogicProblem, interpretation:PartialInterpretation,
42135 source: DefinedElement, target:DefinedElement)
42136{
42137 find interpretation(problem,interpretation);
42138 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
42139 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllStructuralFeatures reference EClass");
42140 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
42141 BinaryElementRelationLink.param1(link,source);
42142 BinaryElementRelationLink.param2(link,target);
42143}
42144/**
42145 * Matcher for detecting tuples t where <>eAllStructuralFeatures reference EClass(source,target)
42146 */
42147private pattern mayInRelationeAllStructuralFeatures_reference_EClass(
42148 problem:LogicProblem, interpretation:PartialInterpretation,
42149 source: DefinedElement, target:DefinedElement)
42150{
42151 find interpretation(problem,interpretation);
42152 // The two endpoint of the link have to exist
42153 find mayExist(problem, interpretation, source);
42154 find mayExist(problem, interpretation, target);
42155 // Type consistency
42156 find mayInstanceOfEClass_class(problem,interpretation,source);
42157 find mayInstanceOfEStructuralFeature_class(problem,interpretation,target);
42158} or {
42159 find mustInRelationeAllStructuralFeatures_reference_EClass(problem,interpretation,source,target);
42160}
42161/**
42162 * Matcher for detecting tuples t where []eAllSuperTypes reference EClass(source,target)
42163 */
42164private pattern mustInRelationeAllSuperTypes_reference_EClass(
42165 problem:LogicProblem, interpretation:PartialInterpretation,
42166 source: DefinedElement, target:DefinedElement)
42167{
42168 find interpretation(problem,interpretation);
42169 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
42170 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllSuperTypes reference EClass");
42171 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
42172 BinaryElementRelationLink.param1(link,source);
42173 BinaryElementRelationLink.param2(link,target);
42174}
42175/**
42176 * Matcher for detecting tuples t where <>eAllSuperTypes reference EClass(source,target)
42177 */
42178private pattern mayInRelationeAllSuperTypes_reference_EClass(
42179 problem:LogicProblem, interpretation:PartialInterpretation,
42180 source: DefinedElement, target:DefinedElement)
42181{
42182 find interpretation(problem,interpretation);
42183 // The two endpoint of the link have to exist
42184 find mayExist(problem, interpretation, source);
42185 find mayExist(problem, interpretation, target);
42186 // Type consistency
42187 find mayInstanceOfEClass_class(problem,interpretation,source);
42188 find mayInstanceOfEClass_class(problem,interpretation,target);
42189} or {
42190 find mustInRelationeAllSuperTypes_reference_EClass(problem,interpretation,source,target);
42191} 34869}
42192/** 34870/**
42193 * Matcher for detecting tuples t where []eIDAttribute reference EClass(source,target) 34871 * Matcher for detecting tuples t where []data reference FAMTerminator(source,target)
42194 */ 34872 */
42195private pattern mustInRelationeIDAttribute_reference_EClass( 34873private pattern mustInRelationdata_reference_FAMTerminator(
42196 problem:LogicProblem, interpretation:PartialInterpretation, 34874 problem:LogicProblem, interpretation:PartialInterpretation,
42197 source: DefinedElement, target:DefinedElement) 34875 source: DefinedElement, target:DefinedElement)
42198{ 34876{
42199 find interpretation(problem,interpretation); 34877 find interpretation(problem,interpretation);
42200 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 34878 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
42201 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eIDAttribute reference EClass"); 34879 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"data reference FAMTerminator");
42202 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 34880 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
42203 BinaryElementRelationLink.param1(link,source); 34881 BinaryElementRelationLink.param1(link,source);
42204 BinaryElementRelationLink.param2(link,target); 34882 BinaryElementRelationLink.param2(link,target);
42205} 34883}
42206/** 34884/**
42207 * Matcher for detecting tuples t where <>eIDAttribute reference EClass(source,target) 34885 * Matcher for detecting tuples t where <>data reference FAMTerminator(source,target)
42208 */ 34886 */
42209private pattern mayInRelationeIDAttribute_reference_EClass( 34887private pattern mayInRelationdata_reference_FAMTerminator(
42210 problem:LogicProblem, interpretation:PartialInterpretation, 34888 problem:LogicProblem, interpretation:PartialInterpretation,
42211 source: DefinedElement, target:DefinedElement) 34889 source: DefinedElement, target:DefinedElement)
42212{ 34890{
@@ -42215,140 +34893,42 @@ private pattern mayInRelationeIDAttribute_reference_EClass(
42215 find mayExist(problem, interpretation, source); 34893 find mayExist(problem, interpretation, source);
42216 find mayExist(problem, interpretation, target); 34894 find mayExist(problem, interpretation, target);
42217 // Type consistency 34895 // Type consistency
42218 find mayInstanceOfEClass_class(problem,interpretation,source); 34896 find mayInstanceOfFAMTerminator_class(problem,interpretation,source);
42219 find mayInstanceOfEAttribute_class(problem,interpretation,target); 34897 find mayInstanceOfFunctionalData_class(problem,interpretation,target);
42220 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 34898 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
42221 // the upper bound of the multiplicity should be considered. 34899 // the upper bound of the multiplicity should be considered.
42222 numberOfExistingReferences == count find mustInRelationeIDAttribute_reference_EClass(problem,interpretation,source,_); 34900 numberOfExistingReferences == count find mustInRelationdata_reference_FAMTerminator(problem,interpretation,source,_);
42223 check(numberOfExistingReferences < 1); 34901 check(numberOfExistingReferences < 1);
42224} or {
42225 find mustInRelationeIDAttribute_reference_EClass(problem,interpretation,source,target);
42226}
42227/**
42228 * Matcher for detecting tuples t where []eStructuralFeatures reference EClass(source,target)
42229 */
42230private pattern mustInRelationeStructuralFeatures_reference_EClass(
42231 problem:LogicProblem, interpretation:PartialInterpretation,
42232 source: DefinedElement, target:DefinedElement)
42233{
42234 find interpretation(problem,interpretation);
42235 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
42236 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eStructuralFeatures reference EClass");
42237 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
42238 BinaryElementRelationLink.param1(link,source);
42239 BinaryElementRelationLink.param2(link,target);
42240}
42241/**
42242 * Matcher for detecting tuples t where <>eStructuralFeatures reference EClass(source,target)
42243 */
42244private pattern mayInRelationeStructuralFeatures_reference_EClass(
42245 problem:LogicProblem, interpretation:PartialInterpretation,
42246 source: DefinedElement, target:DefinedElement)
42247{
42248 find interpretation(problem,interpretation);
42249 // The two endpoint of the link have to exist
42250 find mayExist(problem, interpretation, source);
42251 find mayExist(problem, interpretation, target);
42252 // Type consistency
42253 find mayInstanceOfEClass_class(problem,interpretation,source);
42254 find mayInstanceOfEStructuralFeature_class(problem,interpretation,target);
42255 // There are "numberOfExistingReferences" currently existing instances of the reference to the target, 34902 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
42256 // the upper bound of the opposite reference multiplicity should be considered. 34903 // the upper bound of the opposite reference multiplicity should be considered.
42257 numberOfExistingOppositeReferences == count find mustInRelationeContainingClass_reference_EStructuralFeature(problem,interpretation,target,_); 34904 numberOfExistingOppositeReferences == count find mustInRelationterminator_reference_FunctionalData(problem,interpretation,target,_);
42258 check(numberOfExistingOppositeReferences < 1); 34905 check(numberOfExistingOppositeReferences < 1);
42259 // The reference is containment, then a new reference cannot be create if: 34906 // The eOpposite of the reference is containment, then a referene cannot be created if
42260 // 1. Multiple parents
42261 neg find mustContains4(problem,interpretation,_,target);
42262 // 2. Circle in the containment hierarchy
42263 neg find mustTransitiveContains(source,target);
42264} or {
42265 find mustInRelationeStructuralFeatures_reference_EClass(problem,interpretation,source,target);
42266}
42267/**
42268 * Matcher for detecting tuples t where []eGenericSuperTypes reference EClass(source,target)
42269 */
42270private pattern mustInRelationeGenericSuperTypes_reference_EClass(
42271 problem:LogicProblem, interpretation:PartialInterpretation,
42272 source: DefinedElement, target:DefinedElement)
42273{
42274 find interpretation(problem,interpretation);
42275 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
42276 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eGenericSuperTypes reference EClass");
42277 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
42278 BinaryElementRelationLink.param1(link,source);
42279 BinaryElementRelationLink.param2(link,target);
42280}
42281/**
42282 * Matcher for detecting tuples t where <>eGenericSuperTypes reference EClass(source,target)
42283 */
42284private pattern mayInRelationeGenericSuperTypes_reference_EClass(
42285 problem:LogicProblem, interpretation:PartialInterpretation,
42286 source: DefinedElement, target:DefinedElement)
42287{
42288 find interpretation(problem,interpretation);
42289 // The two endpoint of the link have to exist
42290 find mayExist(problem, interpretation, source);
42291 find mayExist(problem, interpretation, target);
42292 // Type consistency
42293 find mayInstanceOfEClass_class(problem,interpretation,source);
42294 find mayInstanceOfEGenericType_class(problem,interpretation,target);
42295 // The reference is containment, then a new reference cannot be create if:
42296 // 1. Multiple parents 34907 // 1. Multiple parents
42297 neg find mustContains4(problem,interpretation,_,target); 34908 neg find mustContains4(problem,interpretation,source,_);
42298 // 2. Circle in the containment hierarchy 34909 // 2. Circle in the containment hierarchy
42299 neg find mustTransitiveContains(source,target); 34910 neg find mustTransitiveContains(source,target);
42300} or { 34911} or {
42301 find mustInRelationeGenericSuperTypes_reference_EClass(problem,interpretation,source,target); 34912 find mustInRelationdata_reference_FAMTerminator(problem,interpretation,source,target);
42302}
42303/**
42304 * Matcher for detecting tuples t where []eAllGenericSuperTypes reference EClass(source,target)
42305 */
42306private pattern mustInRelationeAllGenericSuperTypes_reference_EClass(
42307 problem:LogicProblem, interpretation:PartialInterpretation,
42308 source: DefinedElement, target:DefinedElement)
42309{
42310 find interpretation(problem,interpretation);
42311 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
42312 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllGenericSuperTypes reference EClass");
42313 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
42314 BinaryElementRelationLink.param1(link,source);
42315 BinaryElementRelationLink.param2(link,target);
42316}
42317/**
42318 * Matcher for detecting tuples t where <>eAllGenericSuperTypes reference EClass(source,target)
42319 */
42320private pattern mayInRelationeAllGenericSuperTypes_reference_EClass(
42321 problem:LogicProblem, interpretation:PartialInterpretation,
42322 source: DefinedElement, target:DefinedElement)
42323{
42324 find interpretation(problem,interpretation);
42325 // The two endpoint of the link have to exist
42326 find mayExist(problem, interpretation, source);
42327 find mayExist(problem, interpretation, target);
42328 // Type consistency
42329 find mayInstanceOfEClass_class(problem,interpretation,source);
42330 find mayInstanceOfEGenericType_class(problem,interpretation,target);
42331} or {
42332 find mustInRelationeAllGenericSuperTypes_reference_EClass(problem,interpretation,source,target);
42333} 34913}
42334/** 34914/**
42335 * Matcher for detecting tuples t where []ePackage reference EClassifier(source,target) 34915 * Matcher for detecting tuples t where []from reference InformationLink(source,target)
42336 */ 34916 */
42337private pattern mustInRelationePackage_reference_EClassifier( 34917private pattern mustInRelationfrom_reference_InformationLink(
42338 problem:LogicProblem, interpretation:PartialInterpretation, 34918 problem:LogicProblem, interpretation:PartialInterpretation,
42339 source: DefinedElement, target:DefinedElement) 34919 source: DefinedElement, target:DefinedElement)
42340{ 34920{
42341 find interpretation(problem,interpretation); 34921 find interpretation(problem,interpretation);
42342 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 34922 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
42343 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"ePackage reference EClassifier"); 34923 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"from reference InformationLink");
42344 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 34924 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
42345 BinaryElementRelationLink.param1(link,source); 34925 BinaryElementRelationLink.param1(link,source);
42346 BinaryElementRelationLink.param2(link,target); 34926 BinaryElementRelationLink.param2(link,target);
42347} 34927}
42348/** 34928/**
42349 * Matcher for detecting tuples t where <>ePackage reference EClassifier(source,target) 34929 * Matcher for detecting tuples t where <>from reference InformationLink(source,target)
42350 */ 34930 */
42351private pattern mayInRelationePackage_reference_EClassifier( 34931private pattern mayInRelationfrom_reference_InformationLink(
42352 problem:LogicProblem, interpretation:PartialInterpretation, 34932 problem:LogicProblem, interpretation:PartialInterpretation,
42353 source: DefinedElement, target:DefinedElement) 34933 source: DefinedElement, target:DefinedElement)
42354{ 34934{
@@ -42357,11 +34937,11 @@ private pattern mayInRelationePackage_reference_EClassifier(
42357 find mayExist(problem, interpretation, source); 34937 find mayExist(problem, interpretation, source);
42358 find mayExist(problem, interpretation, target); 34938 find mayExist(problem, interpretation, target);
42359 // Type consistency 34939 // Type consistency
42360 find mayInstanceOfEClassifier_class(problem,interpretation,source); 34940 find mayInstanceOfInformationLink_class(problem,interpretation,source);
42361 find mayInstanceOfEPackage_class(problem,interpretation,target); 34941 find mayInstanceOfFunctionalOutput_class(problem,interpretation,target);
42362 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 34942 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
42363 // the upper bound of the multiplicity should be considered. 34943 // the upper bound of the multiplicity should be considered.
42364 numberOfExistingReferences == count find mustInRelationePackage_reference_EClassifier(problem,interpretation,source,_); 34944 numberOfExistingReferences == count find mustInRelationfrom_reference_InformationLink(problem,interpretation,source,_);
42365 check(numberOfExistingReferences < 1); 34945 check(numberOfExistingReferences < 1);
42366 // The eOpposite of the reference is containment, then a referene cannot be created if 34946 // The eOpposite of the reference is containment, then a referene cannot be created if
42367 // 1. Multiple parents 34947 // 1. Multiple parents
@@ -42369,102 +34949,26 @@ private pattern mayInRelationePackage_reference_EClassifier(
42369 // 2. Circle in the containment hierarchy 34949 // 2. Circle in the containment hierarchy
42370 neg find mustTransitiveContains(source,target); 34950 neg find mustTransitiveContains(source,target);
42371} or { 34951} or {
42372 find mustInRelationePackage_reference_EClassifier(problem,interpretation,source,target); 34952 find mustInRelationfrom_reference_InformationLink(problem,interpretation,source,target);
42373}
42374/**
42375 * Matcher for detecting tuples t where []eTypeParameters reference EClassifier(source,target)
42376 */
42377private pattern mustInRelationeTypeParameters_reference_EClassifier(
42378 problem:LogicProblem, interpretation:PartialInterpretation,
42379 source: DefinedElement, target:DefinedElement)
42380{
42381 find interpretation(problem,interpretation);
42382 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
42383 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eTypeParameters reference EClassifier");
42384 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
42385 BinaryElementRelationLink.param1(link,source);
42386 BinaryElementRelationLink.param2(link,target);
42387}
42388/**
42389 * Matcher for detecting tuples t where <>eTypeParameters reference EClassifier(source,target)
42390 */
42391private pattern mayInRelationeTypeParameters_reference_EClassifier(
42392 problem:LogicProblem, interpretation:PartialInterpretation,
42393 source: DefinedElement, target:DefinedElement)
42394{
42395 find interpretation(problem,interpretation);
42396 // The two endpoint of the link have to exist
42397 find mayExist(problem, interpretation, source);
42398 find mayExist(problem, interpretation, target);
42399 // Type consistency
42400 find mayInstanceOfEClassifier_class(problem,interpretation,source);
42401 find mayInstanceOfETypeParameter_class(problem,interpretation,target);
42402 // The reference is containment, then a new reference cannot be create if:
42403 // 1. Multiple parents
42404 neg find mustContains4(problem,interpretation,_,target);
42405 // 2. Circle in the containment hierarchy
42406 neg find mustTransitiveContains(source,target);
42407} or {
42408 find mustInRelationeTypeParameters_reference_EClassifier(problem,interpretation,source,target);
42409}
42410/**
42411 * Matcher for detecting tuples t where []eLiterals reference EEnum(source,target)
42412 */
42413private pattern mustInRelationeLiterals_reference_EEnum(
42414 problem:LogicProblem, interpretation:PartialInterpretation,
42415 source: DefinedElement, target:DefinedElement)
42416{
42417 find interpretation(problem,interpretation);
42418 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
42419 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eLiterals reference EEnum");
42420 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
42421 BinaryElementRelationLink.param1(link,source);
42422 BinaryElementRelationLink.param2(link,target);
42423}
42424/**
42425 * Matcher for detecting tuples t where <>eLiterals reference EEnum(source,target)
42426 */
42427private pattern mayInRelationeLiterals_reference_EEnum(
42428 problem:LogicProblem, interpretation:PartialInterpretation,
42429 source: DefinedElement, target:DefinedElement)
42430{
42431 find interpretation(problem,interpretation);
42432 // The two endpoint of the link have to exist
42433 find mayExist(problem, interpretation, source);
42434 find mayExist(problem, interpretation, target);
42435 // Type consistency
42436 find mayInstanceOfEEnum_class(problem,interpretation,source);
42437 find mayInstanceOfEEnumLiteral_class(problem,interpretation,target);
42438 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
42439 // the upper bound of the opposite reference multiplicity should be considered.
42440 numberOfExistingOppositeReferences == count find mustInRelationeEnum_reference_EEnumLiteral(problem,interpretation,target,_);
42441 check(numberOfExistingOppositeReferences < 1);
42442 // The reference is containment, then a new reference cannot be create if:
42443 // 1. Multiple parents
42444 neg find mustContains4(problem,interpretation,_,target);
42445 // 2. Circle in the containment hierarchy
42446 neg find mustTransitiveContains(source,target);
42447} or {
42448 find mustInRelationeLiterals_reference_EEnum(problem,interpretation,source,target);
42449} 34953}
42450/** 34954/**
42451 * Matcher for detecting tuples t where []eEnum reference EEnumLiteral(source,target) 34955 * Matcher for detecting tuples t where []to reference InformationLink(source,target)
42452 */ 34956 */
42453private pattern mustInRelationeEnum_reference_EEnumLiteral( 34957private pattern mustInRelationto_reference_InformationLink(
42454 problem:LogicProblem, interpretation:PartialInterpretation, 34958 problem:LogicProblem, interpretation:PartialInterpretation,
42455 source: DefinedElement, target:DefinedElement) 34959 source: DefinedElement, target:DefinedElement)
42456{ 34960{
42457 find interpretation(problem,interpretation); 34961 find interpretation(problem,interpretation);
42458 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 34962 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
42459 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eEnum reference EEnumLiteral"); 34963 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"to reference InformationLink");
42460 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 34964 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
42461 BinaryElementRelationLink.param1(link,source); 34965 BinaryElementRelationLink.param1(link,source);
42462 BinaryElementRelationLink.param2(link,target); 34966 BinaryElementRelationLink.param2(link,target);
42463} 34967}
42464/** 34968/**
42465 * Matcher for detecting tuples t where <>eEnum reference EEnumLiteral(source,target) 34969 * Matcher for detecting tuples t where <>to reference InformationLink(source,target)
42466 */ 34970 */
42467private pattern mayInRelationeEnum_reference_EEnumLiteral( 34971private pattern mayInRelationto_reference_InformationLink(
42468 problem:LogicProblem, interpretation:PartialInterpretation, 34972 problem:LogicProblem, interpretation:PartialInterpretation,
42469 source: DefinedElement, target:DefinedElement) 34973 source: DefinedElement, target:DefinedElement)
42470{ 34974{
@@ -42473,38 +34977,33 @@ private pattern mayInRelationeEnum_reference_EEnumLiteral(
42473 find mayExist(problem, interpretation, source); 34977 find mayExist(problem, interpretation, source);
42474 find mayExist(problem, interpretation, target); 34978 find mayExist(problem, interpretation, target);
42475 // Type consistency 34979 // Type consistency
42476 find mayInstanceOfEEnumLiteral_class(problem,interpretation,source); 34980 find mayInstanceOfInformationLink_class(problem,interpretation,source);
42477 find mayInstanceOfEEnum_class(problem,interpretation,target); 34981 find mayInstanceOfFunctionalInput_class(problem,interpretation,target);
42478 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 34982 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
42479 // the upper bound of the multiplicity should be considered. 34983 // the upper bound of the multiplicity should be considered.
42480 numberOfExistingReferences == count find mustInRelationeEnum_reference_EEnumLiteral(problem,interpretation,source,_); 34984 numberOfExistingReferences == count find mustInRelationto_reference_InformationLink(problem,interpretation,source,_);
42481 check(numberOfExistingReferences < 1); 34985 check(numberOfExistingReferences < 1);
42482 // The eOpposite of the reference is containment, then a referene cannot be created if
42483 // 1. Multiple parents
42484 neg find mustContains4(problem,interpretation,source,_);
42485 // 2. Circle in the containment hierarchy
42486 neg find mustTransitiveContains(source,target);
42487} or { 34986} or {
42488 find mustInRelationeEnum_reference_EEnumLiteral(problem,interpretation,source,target); 34987 find mustInRelationto_reference_InformationLink(problem,interpretation,source,target);
42489} 34988}
42490/** 34989/**
42491 * Matcher for detecting tuples t where []eAnnotations reference EModelElement(source,target) 34990 * Matcher for detecting tuples t where []data reference FunctionalInterface(source,target)
42492 */ 34991 */
42493private pattern mustInRelationeAnnotations_reference_EModelElement( 34992private pattern mustInRelationdata_reference_FunctionalInterface(
42494 problem:LogicProblem, interpretation:PartialInterpretation, 34993 problem:LogicProblem, interpretation:PartialInterpretation,
42495 source: DefinedElement, target:DefinedElement) 34994 source: DefinedElement, target:DefinedElement)
42496{ 34995{
42497 find interpretation(problem,interpretation); 34996 find interpretation(problem,interpretation);
42498 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 34997 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
42499 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAnnotations reference EModelElement"); 34998 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"data reference FunctionalInterface");
42500 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 34999 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
42501 BinaryElementRelationLink.param1(link,source); 35000 BinaryElementRelationLink.param1(link,source);
42502 BinaryElementRelationLink.param2(link,target); 35001 BinaryElementRelationLink.param2(link,target);
42503} 35002}
42504/** 35003/**
42505 * Matcher for detecting tuples t where <>eAnnotations reference EModelElement(source,target) 35004 * Matcher for detecting tuples t where <>data reference FunctionalInterface(source,target)
42506 */ 35005 */
42507private pattern mayInRelationeAnnotations_reference_EModelElement( 35006private pattern mayInRelationdata_reference_FunctionalInterface(
42508 problem:LogicProblem, interpretation:PartialInterpretation, 35007 problem:LogicProblem, interpretation:PartialInterpretation,
42509 source: DefinedElement, target:DefinedElement) 35008 source: DefinedElement, target:DefinedElement)
42510{ 35009{
@@ -42513,11 +35012,11 @@ private pattern mayInRelationeAnnotations_reference_EModelElement(
42513 find mayExist(problem, interpretation, source); 35012 find mayExist(problem, interpretation, source);
42514 find mayExist(problem, interpretation, target); 35013 find mayExist(problem, interpretation, target);
42515 // Type consistency 35014 // Type consistency
42516 find mayInstanceOfEModelElement_class(problem,interpretation,source); 35015 find mayInstanceOfFunctionalInterface_class(problem,interpretation,source);
42517 find mayInstanceOfEAnnotation_class(problem,interpretation,target); 35016 find mayInstanceOfFunctionalData_class(problem,interpretation,target);
42518 // There are "numberOfExistingReferences" currently existing instances of the reference to the target, 35017 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
42519 // the upper bound of the opposite reference multiplicity should be considered. 35018 // the upper bound of the opposite reference multiplicity should be considered.
42520 numberOfExistingOppositeReferences == count find mustInRelationeModelElement_reference_EAnnotation(problem,interpretation,target,_); 35019 numberOfExistingOppositeReferences == count find mustInRelationinterface_reference_FunctionalData(problem,interpretation,target,_);
42521 check(numberOfExistingOppositeReferences < 1); 35020 check(numberOfExistingOppositeReferences < 1);
42522 // The reference is containment, then a new reference cannot be create if: 35021 // The reference is containment, then a new reference cannot be create if:
42523 // 1. Multiple parents 35022 // 1. Multiple parents
@@ -42525,26 +35024,26 @@ private pattern mayInRelationeAnnotations_reference_EModelElement(
42525 // 2. Circle in the containment hierarchy 35024 // 2. Circle in the containment hierarchy
42526 neg find mustTransitiveContains(source,target); 35025 neg find mustTransitiveContains(source,target);
42527} or { 35026} or {
42528 find mustInRelationeAnnotations_reference_EModelElement(problem,interpretation,source,target); 35027 find mustInRelationdata_reference_FunctionalInterface(problem,interpretation,source,target);
42529} 35028}
42530/** 35029/**
42531 * Matcher for detecting tuples t where []eContainingClass reference EOperation(source,target) 35030 * Matcher for detecting tuples t where []element reference FunctionalInterface(source,target)
42532 */ 35031 */
42533private pattern mustInRelationeContainingClass_reference_EOperation( 35032private pattern mustInRelationelement_reference_FunctionalInterface(
42534 problem:LogicProblem, interpretation:PartialInterpretation, 35033 problem:LogicProblem, interpretation:PartialInterpretation,
42535 source: DefinedElement, target:DefinedElement) 35034 source: DefinedElement, target:DefinedElement)
42536{ 35035{
42537 find interpretation(problem,interpretation); 35036 find interpretation(problem,interpretation);
42538 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 35037 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
42539 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eContainingClass reference EOperation"); 35038 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"element reference FunctionalInterface");
42540 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 35039 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
42541 BinaryElementRelationLink.param1(link,source); 35040 BinaryElementRelationLink.param1(link,source);
42542 BinaryElementRelationLink.param2(link,target); 35041 BinaryElementRelationLink.param2(link,target);
42543} 35042}
42544/** 35043/**
42545 * Matcher for detecting tuples t where <>eContainingClass reference EOperation(source,target) 35044 * Matcher for detecting tuples t where <>element reference FunctionalInterface(source,target)
42546 */ 35045 */
42547private pattern mayInRelationeContainingClass_reference_EOperation( 35046private pattern mayInRelationelement_reference_FunctionalInterface(
42548 problem:LogicProblem, interpretation:PartialInterpretation, 35047 problem:LogicProblem, interpretation:PartialInterpretation,
42549 source: DefinedElement, target:DefinedElement) 35048 source: DefinedElement, target:DefinedElement)
42550{ 35049{
@@ -42553,74 +35052,42 @@ private pattern mayInRelationeContainingClass_reference_EOperation(
42553 find mayExist(problem, interpretation, source); 35052 find mayExist(problem, interpretation, source);
42554 find mayExist(problem, interpretation, target); 35053 find mayExist(problem, interpretation, target);
42555 // Type consistency 35054 // Type consistency
42556 find mayInstanceOfEOperation_class(problem,interpretation,source); 35055 find mayInstanceOfFunctionalInterface_class(problem,interpretation,source);
42557 find mayInstanceOfEClass_class(problem,interpretation,target); 35056 find mayInstanceOfFunctionalElement_class(problem,interpretation,target);
42558 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 35057 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
42559 // the upper bound of the multiplicity should be considered. 35058 // the upper bound of the multiplicity should be considered.
42560 numberOfExistingReferences == count find mustInRelationeContainingClass_reference_EOperation(problem,interpretation,source,_); 35059 numberOfExistingReferences == count find mustInRelationelement_reference_FunctionalInterface(problem,interpretation,source,_);
42561 check(numberOfExistingReferences < 1); 35060 check(numberOfExistingReferences < 1);
35061 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
35062 // the upper bound of the opposite reference multiplicity should be considered.
35063 numberOfExistingOppositeReferences == count find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,target,_);
35064 check(numberOfExistingOppositeReferences < 1);
42562 // The eOpposite of the reference is containment, then a referene cannot be created if 35065 // The eOpposite of the reference is containment, then a referene cannot be created if
42563 // 1. Multiple parents 35066 // 1. Multiple parents
42564 neg find mustContains4(problem,interpretation,source,_); 35067 neg find mustContains4(problem,interpretation,source,_);
42565 // 2. Circle in the containment hierarchy 35068 // 2. Circle in the containment hierarchy
42566 neg find mustTransitiveContains(source,target); 35069 neg find mustTransitiveContains(source,target);
42567} or { 35070} or {
42568 find mustInRelationeContainingClass_reference_EOperation(problem,interpretation,source,target); 35071 find mustInRelationelement_reference_FunctionalInterface(problem,interpretation,source,target);
42569}
42570/**
42571 * Matcher for detecting tuples t where []eTypeParameters reference EOperation(source,target)
42572 */
42573private pattern mustInRelationeTypeParameters_reference_EOperation(
42574 problem:LogicProblem, interpretation:PartialInterpretation,
42575 source: DefinedElement, target:DefinedElement)
42576{
42577 find interpretation(problem,interpretation);
42578 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
42579 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eTypeParameters reference EOperation");
42580 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
42581 BinaryElementRelationLink.param1(link,source);
42582 BinaryElementRelationLink.param2(link,target);
42583}
42584/**
42585 * Matcher for detecting tuples t where <>eTypeParameters reference EOperation(source,target)
42586 */
42587private pattern mayInRelationeTypeParameters_reference_EOperation(
42588 problem:LogicProblem, interpretation:PartialInterpretation,
42589 source: DefinedElement, target:DefinedElement)
42590{
42591 find interpretation(problem,interpretation);
42592 // The two endpoint of the link have to exist
42593 find mayExist(problem, interpretation, source);
42594 find mayExist(problem, interpretation, target);
42595 // Type consistency
42596 find mayInstanceOfEOperation_class(problem,interpretation,source);
42597 find mayInstanceOfETypeParameter_class(problem,interpretation,target);
42598 // The reference is containment, then a new reference cannot be create if:
42599 // 1. Multiple parents
42600 neg find mustContains4(problem,interpretation,_,target);
42601 // 2. Circle in the containment hierarchy
42602 neg find mustTransitiveContains(source,target);
42603} or {
42604 find mustInRelationeTypeParameters_reference_EOperation(problem,interpretation,source,target);
42605} 35072}
42606/** 35073/**
42607 * Matcher for detecting tuples t where []eParameters reference EOperation(source,target) 35074 * Matcher for detecting tuples t where []IncomingLinks reference FunctionalInput(source,target)
42608 */ 35075 */
42609private pattern mustInRelationeParameters_reference_EOperation( 35076private pattern mustInRelationIncomingLinks_reference_FunctionalInput(
42610 problem:LogicProblem, interpretation:PartialInterpretation, 35077 problem:LogicProblem, interpretation:PartialInterpretation,
42611 source: DefinedElement, target:DefinedElement) 35078 source: DefinedElement, target:DefinedElement)
42612{ 35079{
42613 find interpretation(problem,interpretation); 35080 find interpretation(problem,interpretation);
42614 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 35081 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
42615 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eParameters reference EOperation"); 35082 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"IncomingLinks reference FunctionalInput");
42616 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 35083 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
42617 BinaryElementRelationLink.param1(link,source); 35084 BinaryElementRelationLink.param1(link,source);
42618 BinaryElementRelationLink.param2(link,target); 35085 BinaryElementRelationLink.param2(link,target);
42619} 35086}
42620/** 35087/**
42621 * Matcher for detecting tuples t where <>eParameters reference EOperation(source,target) 35088 * Matcher for detecting tuples t where <>IncomingLinks reference FunctionalInput(source,target)
42622 */ 35089 */
42623private pattern mayInRelationeParameters_reference_EOperation( 35090private pattern mayInRelationIncomingLinks_reference_FunctionalInput(
42624 problem:LogicProblem, interpretation:PartialInterpretation, 35091 problem:LogicProblem, interpretation:PartialInterpretation,
42625 source: DefinedElement, target:DefinedElement) 35092 source: DefinedElement, target:DefinedElement)
42626{ 35093{
@@ -42629,105 +35096,33 @@ private pattern mayInRelationeParameters_reference_EOperation(
42629 find mayExist(problem, interpretation, source); 35096 find mayExist(problem, interpretation, source);
42630 find mayExist(problem, interpretation, target); 35097 find mayExist(problem, interpretation, target);
42631 // Type consistency 35098 // Type consistency
42632 find mayInstanceOfEOperation_class(problem,interpretation,source); 35099 find mayInstanceOfFunctionalInput_class(problem,interpretation,source);
42633 find mayInstanceOfEParameter_class(problem,interpretation,target); 35100 find mayInstanceOfInformationLink_class(problem,interpretation,target);
42634 // There are "numberOfExistingReferences" currently existing instances of the reference to the target, 35101 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
42635 // the upper bound of the opposite reference multiplicity should be considered. 35102 // the upper bound of the opposite reference multiplicity should be considered.
42636 numberOfExistingOppositeReferences == count find mustInRelationeOperation_reference_EParameter(problem,interpretation,target,_); 35103 numberOfExistingOppositeReferences == count find mustInRelationto_reference_InformationLink(problem,interpretation,target,_);
42637 check(numberOfExistingOppositeReferences < 1); 35104 check(numberOfExistingOppositeReferences < 1);
42638 // The reference is containment, then a new reference cannot be create if:
42639 // 1. Multiple parents
42640 neg find mustContains4(problem,interpretation,_,target);
42641 // 2. Circle in the containment hierarchy
42642 neg find mustTransitiveContains(source,target);
42643} or { 35105} or {
42644 find mustInRelationeParameters_reference_EOperation(problem,interpretation,source,target); 35106 find mustInRelationIncomingLinks_reference_FunctionalInput(problem,interpretation,source,target);
42645}
42646/**
42647 * Matcher for detecting tuples t where []eExceptions reference EOperation(source,target)
42648 */
42649private pattern mustInRelationeExceptions_reference_EOperation(
42650 problem:LogicProblem, interpretation:PartialInterpretation,
42651 source: DefinedElement, target:DefinedElement)
42652{
42653 find interpretation(problem,interpretation);
42654 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
42655 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eExceptions reference EOperation");
42656 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
42657 BinaryElementRelationLink.param1(link,source);
42658 BinaryElementRelationLink.param2(link,target);
42659}
42660/**
42661 * Matcher for detecting tuples t where <>eExceptions reference EOperation(source,target)
42662 */
42663private pattern mayInRelationeExceptions_reference_EOperation(
42664 problem:LogicProblem, interpretation:PartialInterpretation,
42665 source: DefinedElement, target:DefinedElement)
42666{
42667 find interpretation(problem,interpretation);
42668 // The two endpoint of the link have to exist
42669 find mayExist(problem, interpretation, source);
42670 find mayExist(problem, interpretation, target);
42671 // Type consistency
42672 find mayInstanceOfEOperation_class(problem,interpretation,source);
42673 find mayInstanceOfEClassifier_class(problem,interpretation,target);
42674} or {
42675 find mustInRelationeExceptions_reference_EOperation(problem,interpretation,source,target);
42676}
42677/**
42678 * Matcher for detecting tuples t where []eGenericExceptions reference EOperation(source,target)
42679 */
42680private pattern mustInRelationeGenericExceptions_reference_EOperation(
42681 problem:LogicProblem, interpretation:PartialInterpretation,
42682 source: DefinedElement, target:DefinedElement)
42683{
42684 find interpretation(problem,interpretation);
42685 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
42686 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eGenericExceptions reference EOperation");
42687 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
42688 BinaryElementRelationLink.param1(link,source);
42689 BinaryElementRelationLink.param2(link,target);
42690}
42691/**
42692 * Matcher for detecting tuples t where <>eGenericExceptions reference EOperation(source,target)
42693 */
42694private pattern mayInRelationeGenericExceptions_reference_EOperation(
42695 problem:LogicProblem, interpretation:PartialInterpretation,
42696 source: DefinedElement, target:DefinedElement)
42697{
42698 find interpretation(problem,interpretation);
42699 // The two endpoint of the link have to exist
42700 find mayExist(problem, interpretation, source);
42701 find mayExist(problem, interpretation, target);
42702 // Type consistency
42703 find mayInstanceOfEOperation_class(problem,interpretation,source);
42704 find mayInstanceOfEGenericType_class(problem,interpretation,target);
42705 // The reference is containment, then a new reference cannot be create if:
42706 // 1. Multiple parents
42707 neg find mustContains4(problem,interpretation,_,target);
42708 // 2. Circle in the containment hierarchy
42709 neg find mustTransitiveContains(source,target);
42710} or {
42711 find mustInRelationeGenericExceptions_reference_EOperation(problem,interpretation,source,target);
42712} 35107}
42713/** 35108/**
42714 * Matcher for detecting tuples t where []eClassifiers reference EPackage(source,target) 35109 * Matcher for detecting tuples t where []outgoingLinks reference FunctionalOutput(source,target)
42715 */ 35110 */
42716private pattern mustInRelationeClassifiers_reference_EPackage( 35111private pattern mustInRelationoutgoingLinks_reference_FunctionalOutput(
42717 problem:LogicProblem, interpretation:PartialInterpretation, 35112 problem:LogicProblem, interpretation:PartialInterpretation,
42718 source: DefinedElement, target:DefinedElement) 35113 source: DefinedElement, target:DefinedElement)
42719{ 35114{
42720 find interpretation(problem,interpretation); 35115 find interpretation(problem,interpretation);
42721 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 35116 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
42722 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eClassifiers reference EPackage"); 35117 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"outgoingLinks reference FunctionalOutput");
42723 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 35118 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
42724 BinaryElementRelationLink.param1(link,source); 35119 BinaryElementRelationLink.param1(link,source);
42725 BinaryElementRelationLink.param2(link,target); 35120 BinaryElementRelationLink.param2(link,target);
42726} 35121}
42727/** 35122/**
42728 * Matcher for detecting tuples t where <>eClassifiers reference EPackage(source,target) 35123 * Matcher for detecting tuples t where <>outgoingLinks reference FunctionalOutput(source,target)
42729 */ 35124 */
42730private pattern mayInRelationeClassifiers_reference_EPackage( 35125private pattern mayInRelationoutgoingLinks_reference_FunctionalOutput(
42731 problem:LogicProblem, interpretation:PartialInterpretation, 35126 problem:LogicProblem, interpretation:PartialInterpretation,
42732 source: DefinedElement, target:DefinedElement) 35127 source: DefinedElement, target:DefinedElement)
42733{ 35128{
@@ -42736,11 +35131,11 @@ private pattern mayInRelationeClassifiers_reference_EPackage(
42736 find mayExist(problem, interpretation, source); 35131 find mayExist(problem, interpretation, source);
42737 find mayExist(problem, interpretation, target); 35132 find mayExist(problem, interpretation, target);
42738 // Type consistency 35133 // Type consistency
42739 find mayInstanceOfEPackage_class(problem,interpretation,source); 35134 find mayInstanceOfFunctionalOutput_class(problem,interpretation,source);
42740 find mayInstanceOfEClassifier_class(problem,interpretation,target); 35135 find mayInstanceOfInformationLink_class(problem,interpretation,target);
42741 // There are "numberOfExistingReferences" currently existing instances of the reference to the target, 35136 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
42742 // the upper bound of the opposite reference multiplicity should be considered. 35137 // the upper bound of the opposite reference multiplicity should be considered.
42743 numberOfExistingOppositeReferences == count find mustInRelationePackage_reference_EClassifier(problem,interpretation,target,_); 35138 numberOfExistingOppositeReferences == count find mustInRelationfrom_reference_InformationLink(problem,interpretation,target,_);
42744 check(numberOfExistingOppositeReferences < 1); 35139 check(numberOfExistingOppositeReferences < 1);
42745 // The reference is containment, then a new reference cannot be create if: 35140 // The reference is containment, then a new reference cannot be create if:
42746 // 1. Multiple parents 35141 // 1. Multiple parents
@@ -42748,26 +35143,26 @@ private pattern mayInRelationeClassifiers_reference_EPackage(
42748 // 2. Circle in the containment hierarchy 35143 // 2. Circle in the containment hierarchy
42749 neg find mustTransitiveContains(source,target); 35144 neg find mustTransitiveContains(source,target);
42750} or { 35145} or {
42751 find mustInRelationeClassifiers_reference_EPackage(problem,interpretation,source,target); 35146 find mustInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,source,target);
42752} 35147}
42753/** 35148/**
42754 * Matcher for detecting tuples t where []eSubpackages reference EPackage(source,target) 35149 * Matcher for detecting tuples t where []terminator reference FunctionalData(source,target)
42755 */ 35150 */
42756private pattern mustInRelationeSubpackages_reference_EPackage( 35151private pattern mustInRelationterminator_reference_FunctionalData(
42757 problem:LogicProblem, interpretation:PartialInterpretation, 35152 problem:LogicProblem, interpretation:PartialInterpretation,
42758 source: DefinedElement, target:DefinedElement) 35153 source: DefinedElement, target:DefinedElement)
42759{ 35154{
42760 find interpretation(problem,interpretation); 35155 find interpretation(problem,interpretation);
42761 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 35156 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
42762 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eSubpackages reference EPackage"); 35157 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"terminator reference FunctionalData");
42763 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 35158 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
42764 BinaryElementRelationLink.param1(link,source); 35159 BinaryElementRelationLink.param1(link,source);
42765 BinaryElementRelationLink.param2(link,target); 35160 BinaryElementRelationLink.param2(link,target);
42766} 35161}
42767/** 35162/**
42768 * Matcher for detecting tuples t where <>eSubpackages reference EPackage(source,target) 35163 * Matcher for detecting tuples t where <>terminator reference FunctionalData(source,target)
42769 */ 35164 */
42770private pattern mayInRelationeSubpackages_reference_EPackage( 35165private pattern mayInRelationterminator_reference_FunctionalData(
42771 problem:LogicProblem, interpretation:PartialInterpretation, 35166 problem:LogicProblem, interpretation:PartialInterpretation,
42772 source: DefinedElement, target:DefinedElement) 35167 source: DefinedElement, target:DefinedElement)
42773{ 35168{
@@ -42776,11 +35171,15 @@ private pattern mayInRelationeSubpackages_reference_EPackage(
42776 find mayExist(problem, interpretation, source); 35171 find mayExist(problem, interpretation, source);
42777 find mayExist(problem, interpretation, target); 35172 find mayExist(problem, interpretation, target);
42778 // Type consistency 35173 // Type consistency
42779 find mayInstanceOfEPackage_class(problem,interpretation,source); 35174 find mayInstanceOfFunctionalData_class(problem,interpretation,source);
42780 find mayInstanceOfEPackage_class(problem,interpretation,target); 35175 find mayInstanceOfFAMTerminator_class(problem,interpretation,target);
35176 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
35177 // the upper bound of the multiplicity should be considered.
35178 numberOfExistingReferences == count find mustInRelationterminator_reference_FunctionalData(problem,interpretation,source,_);
35179 check(numberOfExistingReferences < 1);
42781 // There are "numberOfExistingReferences" currently existing instances of the reference to the target, 35180 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
42782 // the upper bound of the opposite reference multiplicity should be considered. 35181 // the upper bound of the opposite reference multiplicity should be considered.
42783 numberOfExistingOppositeReferences == count find mustInRelationeSuperPackage_reference_EPackage(problem,interpretation,target,_); 35182 numberOfExistingOppositeReferences == count find mustInRelationdata_reference_FAMTerminator(problem,interpretation,target,_);
42784 check(numberOfExistingOppositeReferences < 1); 35183 check(numberOfExistingOppositeReferences < 1);
42785 // The reference is containment, then a new reference cannot be create if: 35184 // The reference is containment, then a new reference cannot be create if:
42786 // 1. Multiple parents 35185 // 1. Multiple parents
@@ -42788,26 +35187,26 @@ private pattern mayInRelationeSubpackages_reference_EPackage(
42788 // 2. Circle in the containment hierarchy 35187 // 2. Circle in the containment hierarchy
42789 neg find mustTransitiveContains(source,target); 35188 neg find mustTransitiveContains(source,target);
42790} or { 35189} or {
42791 find mustInRelationeSubpackages_reference_EPackage(problem,interpretation,source,target); 35190 find mustInRelationterminator_reference_FunctionalData(problem,interpretation,source,target);
42792} 35191}
42793/** 35192/**
42794 * Matcher for detecting tuples t where []eSuperPackage reference EPackage(source,target) 35193 * Matcher for detecting tuples t where []interface reference FunctionalData(source,target)
42795 */ 35194 */
42796private pattern mustInRelationeSuperPackage_reference_EPackage( 35195private pattern mustInRelationinterface_reference_FunctionalData(
42797 problem:LogicProblem, interpretation:PartialInterpretation, 35196 problem:LogicProblem, interpretation:PartialInterpretation,
42798 source: DefinedElement, target:DefinedElement) 35197 source: DefinedElement, target:DefinedElement)
42799{ 35198{
42800 find interpretation(problem,interpretation); 35199 find interpretation(problem,interpretation);
42801 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 35200 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
42802 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eSuperPackage reference EPackage"); 35201 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"interface reference FunctionalData");
42803 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 35202 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
42804 BinaryElementRelationLink.param1(link,source); 35203 BinaryElementRelationLink.param1(link,source);
42805 BinaryElementRelationLink.param2(link,target); 35204 BinaryElementRelationLink.param2(link,target);
42806} 35205}
42807/** 35206/**
42808 * Matcher for detecting tuples t where <>eSuperPackage reference EPackage(source,target) 35207 * Matcher for detecting tuples t where <>interface reference FunctionalData(source,target)
42809 */ 35208 */
42810private pattern mayInRelationeSuperPackage_reference_EPackage( 35209private pattern mayInRelationinterface_reference_FunctionalData(
42811 problem:LogicProblem, interpretation:PartialInterpretation, 35210 problem:LogicProblem, interpretation:PartialInterpretation,
42812 source: DefinedElement, target:DefinedElement) 35211 source: DefinedElement, target:DefinedElement)
42813{ 35212{
@@ -42816,11 +35215,11 @@ private pattern mayInRelationeSuperPackage_reference_EPackage(
42816 find mayExist(problem, interpretation, source); 35215 find mayExist(problem, interpretation, source);
42817 find mayExist(problem, interpretation, target); 35216 find mayExist(problem, interpretation, target);
42818 // Type consistency 35217 // Type consistency
42819 find mayInstanceOfEPackage_class(problem,interpretation,source); 35218 find mayInstanceOfFunctionalData_class(problem,interpretation,source);
42820 find mayInstanceOfEPackage_class(problem,interpretation,target); 35219 find mayInstanceOfFunctionalInterface_class(problem,interpretation,target);
42821 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 35220 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
42822 // the upper bound of the multiplicity should be considered. 35221 // the upper bound of the multiplicity should be considered.
42823 numberOfExistingReferences == count find mustInRelationeSuperPackage_reference_EPackage(problem,interpretation,source,_); 35222 numberOfExistingReferences == count find mustInRelationinterface_reference_FunctionalData(problem,interpretation,source,_);
42824 check(numberOfExistingReferences < 1); 35223 check(numberOfExistingReferences < 1);
42825 // The eOpposite of the reference is containment, then a referene cannot be created if 35224 // The eOpposite of the reference is containment, then a referene cannot be created if
42826 // 1. Multiple parents 35225 // 1. Multiple parents
@@ -42828,26 +35227,26 @@ private pattern mayInRelationeSuperPackage_reference_EPackage(
42828 // 2. Circle in the containment hierarchy 35227 // 2. Circle in the containment hierarchy
42829 neg find mustTransitiveContains(source,target); 35228 neg find mustTransitiveContains(source,target);
42830} or { 35229} or {
42831 find mustInRelationeSuperPackage_reference_EPackage(problem,interpretation,source,target); 35230 find mustInRelationinterface_reference_FunctionalData(problem,interpretation,source,target);
42832} 35231}
42833/** 35232/**
42834 * Matcher for detecting tuples t where []eOperation reference EParameter(source,target) 35233 * Matcher for detecting tuples t where []type attribute Function(source,target)
42835 */ 35234 */
42836private pattern mustInRelationeOperation_reference_EParameter( 35235private pattern mustInRelationtype_attribute_Function(
42837 problem:LogicProblem, interpretation:PartialInterpretation, 35236 problem:LogicProblem, interpretation:PartialInterpretation,
42838 source: DefinedElement, target:DefinedElement) 35237 source: DefinedElement, target:DefinedElement)
42839{ 35238{
42840 find interpretation(problem,interpretation); 35239 find interpretation(problem,interpretation);
42841 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 35240 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
42842 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eOperation reference EParameter"); 35241 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function");
42843 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 35242 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
42844 BinaryElementRelationLink.param1(link,source); 35243 BinaryElementRelationLink.param1(link,source);
42845 BinaryElementRelationLink.param2(link,target); 35244 BinaryElementRelationLink.param2(link,target);
42846} 35245}
42847/** 35246/**
42848 * Matcher for detecting tuples t where <>eOperation reference EParameter(source,target) 35247 * Matcher for detecting tuples t where <>type attribute Function(source,target)
42849 */ 35248 */
42850private pattern mayInRelationeOperation_reference_EParameter( 35249private pattern mayInRelationtype_attribute_Function(
42851 problem:LogicProblem, interpretation:PartialInterpretation, 35250 problem:LogicProblem, interpretation:PartialInterpretation,
42852 source: DefinedElement, target:DefinedElement) 35251 source: DefinedElement, target:DefinedElement)
42853{ 35252{
@@ -42856,1001 +35255,1094 @@ private pattern mayInRelationeOperation_reference_EParameter(
42856 find mayExist(problem, interpretation, source); 35255 find mayExist(problem, interpretation, source);
42857 find mayExist(problem, interpretation, target); 35256 find mayExist(problem, interpretation, target);
42858 // Type consistency 35257 // Type consistency
42859 find mayInstanceOfEParameter_class(problem,interpretation,source); 35258 find mayInstanceOfFunction_class(problem,interpretation,source);
42860 find mayInstanceOfEOperation_class(problem,interpretation,target); 35259 find mayInstanceOfFunctionType_enum(problem,interpretation,target);
42861 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 35260 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
42862 // the upper bound of the multiplicity should be considered. 35261 // the upper bound of the multiplicity should be considered.
42863 numberOfExistingReferences == count find mustInRelationeOperation_reference_EParameter(problem,interpretation,source,_); 35262 numberOfExistingReferences == count find mustInRelationtype_attribute_Function(problem,interpretation,source,_);
42864 check(numberOfExistingReferences < 1); 35263 check(numberOfExistingReferences < 1);
42865 // The eOpposite of the reference is containment, then a referene cannot be created if
42866 // 1. Multiple parents
42867 neg find mustContains4(problem,interpretation,source,_);
42868 // 2. Circle in the containment hierarchy
42869 neg find mustTransitiveContains(source,target);
42870} or { 35264} or {
42871 find mustInRelationeOperation_reference_EParameter(problem,interpretation,source,target); 35265 find mustInRelationtype_attribute_Function(problem,interpretation,source,target);
42872} 35266}
42873/** 35267
42874 * Matcher for detecting tuples t where []eOpposite reference EReference(source,target) 35268//////////
42875 */ 35269// 1.3 Relation Definition Indexers
42876private pattern mustInRelationeOpposite_reference_EReference( 35270//////////
35271// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test fam queries terminatorAndInformation
35272private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(
42877 problem:LogicProblem, interpretation:PartialInterpretation, 35273 problem:LogicProblem, interpretation:PartialInterpretation,
42878 source: DefinedElement, target:DefinedElement) 35274 var_T, var_I)
42879{ 35275{
42880 find interpretation(problem,interpretation); 35276 find interpretation(problem,interpretation);
42881 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 35277 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_T);
42882 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eOpposite reference EReference"); 35278 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
42883 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 35279 // T is exported
42884 BinaryElementRelationLink.param1(link,source); 35280 // I is exported
42885 BinaryElementRelationLink.param2(link,target); 35281 find mustInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
35282 find mustInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,var_Out,var_virtual0);
35283 find mustInstanceOfInformationLink_class(problem,interpretation,var_virtual0);
35284 var_virtual0 == var_I;
35285 find mustInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
35286 find mustInRelationterminator_reference_FunctionalData(problem,interpretation,var_Out,var_virtual1);
35287 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
35288 var_virtual1 == var_T;
35289}or{
35290 find interpretation(problem,interpretation);
35291 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_T);
35292 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
35293 // T is exported
35294 // I is exported
35295 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
35296 find mustInRelationto_reference_InformationLink(problem,interpretation,var_I,var_virtual0);
35297 find mustInstanceOfFunctionalInput_class(problem,interpretation,var_virtual0);
35298 var_virtual0 == var_In;
35299 find mustInstanceOfFunctionalInput_class(problem,interpretation,var_In);
35300 find mustInRelationterminator_reference_FunctionalData(problem,interpretation,var_In,var_virtual1);
35301 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
35302 var_virtual1 == var_T;
42886} 35303}
42887/** 35304private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(
42888 * Matcher for detecting tuples t where <>eOpposite reference EReference(source,target)
42889 */
42890private pattern mayInRelationeOpposite_reference_EReference(
42891 problem:LogicProblem, interpretation:PartialInterpretation, 35305 problem:LogicProblem, interpretation:PartialInterpretation,
42892 source: DefinedElement, target:DefinedElement) 35306 var_T, var_I)
42893{ 35307{
42894 find interpretation(problem,interpretation); 35308 find interpretation(problem,interpretation);
42895 // The two endpoint of the link have to exist 35309 find mayInstanceOfFAMTerminator_class(problem,interpretation,var_T);
42896 find mayExist(problem, interpretation, source); 35310 find mayInstanceOfInformationLink_class(problem,interpretation,var_I);
42897 find mayExist(problem, interpretation, target); 35311 // T is exported
42898 // Type consistency 35312 // I is exported
42899 find mayInstanceOfEReference_class(problem,interpretation,source); 35313 find mayInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
42900 find mayInstanceOfEReference_class(problem,interpretation,target); 35314 find mayInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,var_Out,var_virtual0);
42901 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 35315 find mayInstanceOfInformationLink_class(problem,interpretation,var_virtual0);
42902 // the upper bound of the multiplicity should be considered. 35316 find mayEquivalent(problem, interpretation, var_virtual0, var_I);
42903 numberOfExistingReferences == count find mustInRelationeOpposite_reference_EReference(problem,interpretation,source,_); 35317 find mayInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
42904 check(numberOfExistingReferences < 1); 35318 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,var_Out,var_virtual1);
42905} or { 35319 find mayInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
42906 find mustInRelationeOpposite_reference_EReference(problem,interpretation,source,target); 35320 find mayEquivalent(problem, interpretation, var_virtual1, var_T);
35321}or{
35322 find interpretation(problem,interpretation);
35323 find mayInstanceOfFAMTerminator_class(problem,interpretation,var_T);
35324 find mayInstanceOfInformationLink_class(problem,interpretation,var_I);
35325 // T is exported
35326 // I is exported
35327 find mayInstanceOfInformationLink_class(problem,interpretation,var_I);
35328 find mayInRelationto_reference_InformationLink(problem,interpretation,var_I,var_virtual0);
35329 find mayInstanceOfFunctionalInput_class(problem,interpretation,var_virtual0);
35330 find mayEquivalent(problem, interpretation, var_virtual0, var_In);
35331 find mayInstanceOfFunctionalInput_class(problem,interpretation,var_In);
35332 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,var_In,var_virtual1);
35333 find mayInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
35334 find mayEquivalent(problem, interpretation, var_virtual1, var_T);
42907} 35335}
42908/** 35336private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(
42909 * Matcher for detecting tuples t where []eReferenceType reference EReference(source,target)
42910 */
42911private pattern mustInRelationeReferenceType_reference_EReference(
42912 problem:LogicProblem, interpretation:PartialInterpretation, 35337 problem:LogicProblem, interpretation:PartialInterpretation,
42913 source: DefinedElement, target:DefinedElement) 35338 var_T, var_I)
42914{ 35339{
42915 find interpretation(problem,interpretation); 35340 find interpretation(problem,interpretation);
42916 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 35341 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_T);
42917 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eReferenceType reference EReference"); 35342 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
42918 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 35343 // T is exported
42919 BinaryElementRelationLink.param1(link,source); 35344 // I is exported
42920 BinaryElementRelationLink.param2(link,target); 35345 find mustInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
35346 find mustInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,var_Out,var_virtual0);
35347 find mustInstanceOfInformationLink_class(problem,interpretation,var_virtual0);
35348 var_virtual0 == var_I;
35349 find mustInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
35350 find mustInRelationterminator_reference_FunctionalData(problem,interpretation,var_Out,var_virtual1);
35351 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
35352 var_virtual1 == var_T;
35353}or{
35354 find interpretation(problem,interpretation);
35355 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_T);
35356 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
35357 // T is exported
35358 // I is exported
35359 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
35360 find mustInRelationto_reference_InformationLink(problem,interpretation,var_I,var_virtual0);
35361 find mustInstanceOfFunctionalInput_class(problem,interpretation,var_virtual0);
35362 var_virtual0 == var_In;
35363 find mustInstanceOfFunctionalInput_class(problem,interpretation,var_In);
35364 find mustInRelationterminator_reference_FunctionalData(problem,interpretation,var_In,var_virtual1);
35365 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
35366 var_virtual1 == var_T;
42921} 35367}
42922/** 35368
42923 * Matcher for detecting tuples t where <>eReferenceType reference EReference(source,target) 35369//////////
42924 */ 35370// 1.4 Containment Indexer
42925private pattern mayInRelationeReferenceType_reference_EReference( 35371//////////
42926 problem:LogicProblem, interpretation:PartialInterpretation, 35372private pattern mustContains2(source: DefinedElement, target: DefinedElement) {
42927 source: DefinedElement, target:DefinedElement) 35373 find mustContains4(_,_,source,target);
35374}
35375
35376private pattern mustContains4(problem:LogicProblem, interpretation:PartialInterpretation,
35377 source: DefinedElement, target: DefinedElement)
35378 { find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,source,target); }or
35379
35380 { find mustInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,source,target); }or
35381
35382 { find mustInRelationsubElements_reference_Function(problem,interpretation,source,target); }or
35383
35384 { find mustInRelationdata_reference_FunctionalInterface(problem,interpretation,source,target); }or
35385
35386 { find mustInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,source,target); }or
35387
35388 { find mustInRelationterminator_reference_FunctionalData(problem,interpretation,source,target); }
35389
35390private pattern mustTransitiveContains(source,target) {
35391 find mustContains2+(source,target);
35392}
35393
35394//////////
35395// 2. Invalidation Indexers
35396//////////
35397// 2.1 Invalidated by WF Queries
35398//////////
35399pattern invalidatedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(problem:LogicProblem, interpretation:PartialInterpretation,
35400 var_T, var_I)
42928{ 35401{
35402 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(problem,interpretation,var_T,var_I);
35403}
35404
35405//////////
35406// 3. Unfinishedness Indexers
35407//////////
35408// 3.1 Unfinishedness Measured by Multiplicity
35409//////////
35410pattern unfinishedLowerMultiplicity_model_reference_FunctionalElement(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
42929 find interpretation(problem,interpretation); 35411 find interpretation(problem,interpretation);
42930 // The two endpoint of the link have to exist 35412 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
42931 find mayExist(problem, interpretation, source); 35413 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement");
42932 find mayExist(problem, interpretation, target); 35414 find mustInstanceOfFunctionalElement_class(problem,interpretation,object);
42933 // Type consistency 35415 numberOfExistingReferences == count find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,object,_);
42934 find mayInstanceOfEReference_class(problem,interpretation,source);
42935 find mayInstanceOfEClass_class(problem,interpretation,target);
42936 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
42937 // the upper bound of the multiplicity should be considered.
42938 numberOfExistingReferences == count find mustInRelationeReferenceType_reference_EReference(problem,interpretation,source,_);
42939 check(numberOfExistingReferences < 1); 35416 check(numberOfExistingReferences < 1);
42940} or { 35417 missingMultiplicity == eval(1-numberOfExistingReferences);
42941 find mustInRelationeReferenceType_reference_EReference(problem,interpretation,source,target);
42942} 35418}
42943/** 35419pattern unfinishedLowerMultiplicity_to_reference_InformationLink(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
42944 * Matcher for detecting tuples t where []eKeys reference EReference(source,target)
42945 */
42946private pattern mustInRelationeKeys_reference_EReference(
42947 problem:LogicProblem, interpretation:PartialInterpretation,
42948 source: DefinedElement, target:DefinedElement)
42949{
42950 find interpretation(problem,interpretation); 35420 find interpretation(problem,interpretation);
42951 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 35421 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
42952 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eKeys reference EReference"); 35422 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"to reference InformationLink");
42953 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 35423 find mustInstanceOfInformationLink_class(problem,interpretation,object);
42954 BinaryElementRelationLink.param1(link,source); 35424 numberOfExistingReferences == count find mustInRelationto_reference_InformationLink(problem,interpretation,object,_);
42955 BinaryElementRelationLink.param2(link,target); 35425 check(numberOfExistingReferences < 1);
35426 missingMultiplicity == eval(1-numberOfExistingReferences);
42956} 35427}
42957/** 35428pattern unfinishedLowerMultiplicity_type_attribute_Function(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
42958 * Matcher for detecting tuples t where <>eKeys reference EReference(source,target)
42959 */
42960private pattern mayInRelationeKeys_reference_EReference(
42961 problem:LogicProblem, interpretation:PartialInterpretation,
42962 source: DefinedElement, target:DefinedElement)
42963{
42964 find interpretation(problem,interpretation); 35429 find interpretation(problem,interpretation);
42965 // The two endpoint of the link have to exist 35430 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
42966 find mayExist(problem, interpretation, source); 35431 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function");
42967 find mayExist(problem, interpretation, target); 35432 find mustInstanceOfFunction_class(problem,interpretation,object);
42968 // Type consistency 35433 numberOfExistingReferences == count find mustInRelationtype_attribute_Function(problem,interpretation,object,_);
42969 find mayInstanceOfEReference_class(problem,interpretation,source); 35434 check(numberOfExistingReferences < 1);
42970 find mayInstanceOfEAttribute_class(problem,interpretation,target); 35435 missingMultiplicity == eval(1-numberOfExistingReferences);
42971} or {
42972 find mustInRelationeKeys_reference_EReference(problem,interpretation,source,target);
42973} 35436}
42974/** 35437
42975 * Matcher for detecting tuples t where []eContainingClass reference EStructuralFeature(source,target) 35438//////////
42976 */ 35439// 3.2 Unfinishedness Measured by WF Queries
42977private pattern mustInRelationeContainingClass_reference_EStructuralFeature( 35440//////////
42978 problem:LogicProblem, interpretation:PartialInterpretation, 35441pattern unfinishedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(problem:LogicProblem, interpretation:PartialInterpretation,
42979 source: DefinedElement, target:DefinedElement) 35442 var_T, var_I)
42980{ 35443{
42981 find interpretation(problem,interpretation); 35444 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(problem,interpretation,var_T,var_I);
42982 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
42983 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eContainingClass reference EStructuralFeature");
42984 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
42985 BinaryElementRelationLink.param1(link,source);
42986 BinaryElementRelationLink.param2(link,target);
42987} 35445}
42988/** 35446
42989 * Matcher for detecting tuples t where <>eContainingClass reference EStructuralFeature(source,target) 35447//////////
42990 */ 35448// 4. Refinement Indexers
42991private pattern mayInRelationeContainingClass_reference_EStructuralFeature( 35449//////////
42992 problem:LogicProblem, interpretation:PartialInterpretation, 35450// 4.1 Object constructors
42993 source: DefinedElement, target:DefinedElement) 35451//////////
35452private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation)
42994{ 35453{
42995 find interpretation(problem,interpretation); 35454 find interpretation(problem,interpretation);
42996 // The two endpoint of the link have to exist 35455 find mustInstanceOfFunctionalInterface_class(problem,interpretation,root);
42997 find mayExist(problem, interpretation, source); 35456 find mustExist(problem, interpretation, root);
42998 find mayExist(problem, interpretation, target); 35457}or{
42999 // Type consistency 35458 find interpretation(problem,interpretation);
43000 find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); 35459 find mustInstanceOfInformationLink_class(problem,interpretation,root);
43001 find mayInstanceOfEClass_class(problem,interpretation,target); 35460 find mustExist(problem, interpretation, root);
43002 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 35461}or{
43003 // the upper bound of the multiplicity should be considered. 35462 find interpretation(problem,interpretation);
43004 numberOfExistingReferences == count find mustInRelationeContainingClass_reference_EStructuralFeature(problem,interpretation,source,_); 35463 find mustInstanceOfFunctionalElement_class(problem,interpretation,root);
43005 check(numberOfExistingReferences < 1); 35464 find mustExist(problem, interpretation, root);
43006 // The eOpposite of the reference is containment, then a referene cannot be created if 35465}or{
43007 // 1. Multiple parents 35466 find interpretation(problem,interpretation);
43008 neg find mustContains4(problem,interpretation,source,_); 35467 find mustInstanceOfFAMTerminator_class(problem,interpretation,root);
43009 // 2. Circle in the containment hierarchy 35468 find mustExist(problem, interpretation, root);
43010 neg find mustTransitiveContains(source,target); 35469}or{
43011} or { 35470 find interpretation(problem,interpretation);
43012 find mustInRelationeContainingClass_reference_EStructuralFeature(problem,interpretation,source,target); 35471 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,root);
35472 find mustExist(problem, interpretation, root);
35473}or{
35474 find interpretation(problem,interpretation);
35475 find mustInstanceOfFunctionalInput_class(problem,interpretation,root);
35476 find mustExist(problem, interpretation, root);
35477}or{
35478 find interpretation(problem,interpretation);
35479 find mustInstanceOfFunction_class(problem,interpretation,root);
35480 find mustExist(problem, interpretation, root);
35481}or{
35482 find interpretation(problem,interpretation);
35483 find mustInstanceOfFunctionalOutput_class(problem,interpretation,root);
35484 find mustExist(problem, interpretation, root);
35485}or{
35486 find interpretation(problem,interpretation);
35487 find mustInstanceOfFunctionalData_class(problem,interpretation,root);
35488 find mustExist(problem, interpretation, root);
43013} 35489}
43014/** 35490pattern createObject_InformationLink_class_by_outgoingLinks_reference_FunctionalOutput_with_from_reference_InformationLink(
43015 * Matcher for detecting tuples t where []eType reference ETypedElement(source,target)
43016 */
43017private pattern mustInRelationeType_reference_ETypedElement(
43018 problem:LogicProblem, interpretation:PartialInterpretation, 35491 problem:LogicProblem, interpretation:PartialInterpretation,
43019 source: DefinedElement, target:DefinedElement) 35492 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
35493 container:DefinedElement)
43020{ 35494{
43021 find interpretation(problem,interpretation); 35495 find interpretation(problem,interpretation);
43022 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 35496 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
43023 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eType reference ETypedElement"); 35497 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class");
43024 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 35498 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
43025 BinaryElementRelationLink.param1(link,source); 35499 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"outgoingLinks reference FunctionalOutput");
43026 BinaryElementRelationLink.param2(link,target); 35500 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
35501 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"from reference InformationLink");
35502 find mustInstanceOfFunctionalOutput_class(problem,interpretation,container);
35503 find mayInstanceOfInformationLink_class(problem,interpretation,newObject);
35504 find mayInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,container,newObject);
35505 find mustExist(problem, interpretation, container);
35506 neg find mustExist(problem, interpretation, newObject);
43027} 35507}
43028/** 35508pattern createObject_InformationLink_class(
43029 * Matcher for detecting tuples t where <>eType reference ETypedElement(source,target)
43030 */
43031private pattern mayInRelationeType_reference_ETypedElement(
43032 problem:LogicProblem, interpretation:PartialInterpretation, 35509 problem:LogicProblem, interpretation:PartialInterpretation,
43033 source: DefinedElement, target:DefinedElement) 35510 typeInterpretation:PartialComplexTypeInterpretation)
43034{ 35511{
43035 find interpretation(problem,interpretation); 35512 find interpretation(problem,interpretation);
43036 // The two endpoint of the link have to exist 35513 neg find hasElementInContainment(problem,interpretation);
43037 find mayExist(problem, interpretation, source); 35514 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
43038 find mayExist(problem, interpretation, target); 35515 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class");
43039 // Type consistency 35516 find mayInstanceOfInformationLink_class(problem,interpretation,newObject);
43040 find mayInstanceOfETypedElement_class(problem,interpretation,source); 35517 find mayExist(problem, interpretation, newObject);
43041 find mayInstanceOfEClassifier_class(problem,interpretation,target); 35518 neg find mustExist(problem, interpretation, newObject);
43042 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
43043 // the upper bound of the multiplicity should be considered.
43044 numberOfExistingReferences == count find mustInRelationeType_reference_ETypedElement(problem,interpretation,source,_);
43045 check(numberOfExistingReferences < 1);
43046} or {
43047 find mustInRelationeType_reference_ETypedElement(problem,interpretation,source,target);
43048} 35519}
43049/** 35520pattern createObject_FunctionalInterface_class_by_interface_reference_FunctionalElement_with_element_reference_FunctionalInterface(
43050 * Matcher for detecting tuples t where []eGenericType reference ETypedElement(source,target)
43051 */
43052private pattern mustInRelationeGenericType_reference_ETypedElement(
43053 problem:LogicProblem, interpretation:PartialInterpretation, 35521 problem:LogicProblem, interpretation:PartialInterpretation,
43054 source: DefinedElement, target:DefinedElement) 35522 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
35523 container:DefinedElement)
43055{ 35524{
43056 find interpretation(problem,interpretation); 35525 find interpretation(problem,interpretation);
43057 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 35526 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
43058 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eGenericType reference ETypedElement"); 35527 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
43059 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 35528 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
43060 BinaryElementRelationLink.param1(link,source); 35529 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"interface reference FunctionalElement");
43061 BinaryElementRelationLink.param2(link,target); 35530 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
35531 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"element reference FunctionalInterface");
35532 find mustInstanceOfFunctionalElement_class(problem,interpretation,container);
35533 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
35534 find mayInRelationinterface_reference_FunctionalElement(problem,interpretation,container,newObject);
35535 find mustExist(problem, interpretation, container);
35536 neg find mustExist(problem, interpretation, newObject);
43062} 35537}
43063/** 35538pattern createObject_FunctionalInterface_class(
43064 * Matcher for detecting tuples t where <>eGenericType reference ETypedElement(source,target)
43065 */
43066private pattern mayInRelationeGenericType_reference_ETypedElement(
43067 problem:LogicProblem, interpretation:PartialInterpretation, 35539 problem:LogicProblem, interpretation:PartialInterpretation,
43068 source: DefinedElement, target:DefinedElement) 35540 typeInterpretation:PartialComplexTypeInterpretation)
43069{ 35541{
43070 find interpretation(problem,interpretation); 35542 find interpretation(problem,interpretation);
43071 // The two endpoint of the link have to exist 35543 neg find hasElementInContainment(problem,interpretation);
43072 find mayExist(problem, interpretation, source); 35544 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
43073 find mayExist(problem, interpretation, target); 35545 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
43074 // Type consistency 35546 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
43075 find mayInstanceOfETypedElement_class(problem,interpretation,source); 35547 find mayExist(problem, interpretation, newObject);
43076 find mayInstanceOfEGenericType_class(problem,interpretation,target); 35548 neg find mustExist(problem, interpretation, newObject);
43077 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
43078 // the upper bound of the multiplicity should be considered.
43079 numberOfExistingReferences == count find mustInRelationeGenericType_reference_ETypedElement(problem,interpretation,source,_);
43080 check(numberOfExistingReferences < 1);
43081 // The reference is containment, then a new reference cannot be create if:
43082 // 1. Multiple parents
43083 neg find mustContains4(problem,interpretation,_,target);
43084 // 2. Circle in the containment hierarchy
43085 neg find mustTransitiveContains(source,target);
43086} or {
43087 find mustInRelationeGenericType_reference_ETypedElement(problem,interpretation,source,target);
43088} 35549}
43089/** 35550pattern createObject_Function_class_by_rootElements_reference_FunctionalArchitectureModel(
43090 * Matcher for detecting tuples t where []eUpperBound reference EGenericType(source,target)
43091 */
43092private pattern mustInRelationeUpperBound_reference_EGenericType(
43093 problem:LogicProblem, interpretation:PartialInterpretation, 35551 problem:LogicProblem, interpretation:PartialInterpretation,
43094 source: DefinedElement, target:DefinedElement) 35552 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
35553 container:DefinedElement)
43095{ 35554{
43096 find interpretation(problem,interpretation); 35555 find interpretation(problem,interpretation);
43097 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 35556 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
43098 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eUpperBound reference EGenericType"); 35557 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class");
43099 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 35558 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
43100 BinaryElementRelationLink.param1(link,source); 35559 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"rootElements reference FunctionalArchitectureModel");
43101 BinaryElementRelationLink.param2(link,target); 35560 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,container);
35561 find mayInstanceOfFunction_class(problem,interpretation,newObject);
35562 find mayInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,container,newObject);
35563 find mustExist(problem, interpretation, container);
35564 neg find mustExist(problem, interpretation, newObject);
43102} 35565}
43103/** 35566pattern createObject_Function_class_by_subElements_reference_Function_with_parent_reference_FunctionalElement(
43104 * Matcher for detecting tuples t where <>eUpperBound reference EGenericType(source,target)
43105 */
43106private pattern mayInRelationeUpperBound_reference_EGenericType(
43107 problem:LogicProblem, interpretation:PartialInterpretation, 35567 problem:LogicProblem, interpretation:PartialInterpretation,
43108 source: DefinedElement, target:DefinedElement) 35568 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
35569 container:DefinedElement)
43109{ 35570{
43110 find interpretation(problem,interpretation); 35571 find interpretation(problem,interpretation);
43111 // The two endpoint of the link have to exist 35572 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
43112 find mayExist(problem, interpretation, source); 35573 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class");
43113 find mayExist(problem, interpretation, target); 35574 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
43114 // Type consistency 35575 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"subElements reference Function");
43115 find mayInstanceOfEGenericType_class(problem,interpretation,source); 35576 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
43116 find mayInstanceOfEGenericType_class(problem,interpretation,target); 35577 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"parent reference FunctionalElement");
43117 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 35578 find mustInstanceOfFunction_class(problem,interpretation,container);
43118 // the upper bound of the multiplicity should be considered. 35579 find mayInstanceOfFunction_class(problem,interpretation,newObject);
43119 numberOfExistingReferences == count find mustInRelationeUpperBound_reference_EGenericType(problem,interpretation,source,_); 35580 find mayInRelationsubElements_reference_Function(problem,interpretation,container,newObject);
43120 check(numberOfExistingReferences < 1); 35581 find mustExist(problem, interpretation, container);
43121 // The reference is containment, then a new reference cannot be create if: 35582 neg find mustExist(problem, interpretation, newObject);
43122 // 1. Multiple parents
43123 neg find mustContains4(problem,interpretation,_,target);
43124 // 2. Circle in the containment hierarchy
43125 neg find mustTransitiveContains(source,target);
43126} or {
43127 find mustInRelationeUpperBound_reference_EGenericType(problem,interpretation,source,target);
43128} 35583}
43129/** 35584pattern createObject_Function_class(
43130 * Matcher for detecting tuples t where []eTypeArguments reference EGenericType(source,target)
43131 */
43132private pattern mustInRelationeTypeArguments_reference_EGenericType(
43133 problem:LogicProblem, interpretation:PartialInterpretation, 35585 problem:LogicProblem, interpretation:PartialInterpretation,
43134 source: DefinedElement, target:DefinedElement) 35586 typeInterpretation:PartialComplexTypeInterpretation)
43135{ 35587{
43136 find interpretation(problem,interpretation); 35588 find interpretation(problem,interpretation);
43137 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 35589 neg find hasElementInContainment(problem,interpretation);
43138 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eTypeArguments reference EGenericType"); 35590 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
43139 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 35591 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class");
43140 BinaryElementRelationLink.param1(link,source); 35592 find mayInstanceOfFunction_class(problem,interpretation,newObject);
43141 BinaryElementRelationLink.param2(link,target); 35593 find mayExist(problem, interpretation, newObject);
35594 neg find mustExist(problem, interpretation, newObject);
43142} 35595}
43143/** 35596pattern createObject_FunctionalOutput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData(
43144 * Matcher for detecting tuples t where <>eTypeArguments reference EGenericType(source,target)
43145 */
43146private pattern mayInRelationeTypeArguments_reference_EGenericType(
43147 problem:LogicProblem, interpretation:PartialInterpretation, 35597 problem:LogicProblem, interpretation:PartialInterpretation,
43148 source: DefinedElement, target:DefinedElement) 35598 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
35599 container:DefinedElement)
43149{ 35600{
43150 find interpretation(problem,interpretation); 35601 find interpretation(problem,interpretation);
43151 // The two endpoint of the link have to exist 35602 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
43152 find mayExist(problem, interpretation, source); 35603 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class");
43153 find mayExist(problem, interpretation, target); 35604 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
43154 // Type consistency 35605 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface");
43155 find mayInstanceOfEGenericType_class(problem,interpretation,source); 35606 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
43156 find mayInstanceOfEGenericType_class(problem,interpretation,target); 35607 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData");
43157 // The reference is containment, then a new reference cannot be create if: 35608 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container);
43158 // 1. Multiple parents 35609 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject);
43159 neg find mustContains4(problem,interpretation,_,target); 35610 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject);
43160 // 2. Circle in the containment hierarchy 35611 find mustExist(problem, interpretation, container);
43161 neg find mustTransitiveContains(source,target); 35612 neg find mustExist(problem, interpretation, newObject);
43162} or {
43163 find mustInRelationeTypeArguments_reference_EGenericType(problem,interpretation,source,target);
43164} 35613}
43165/** 35614pattern createObject_FunctionalOutput_class(
43166 * Matcher for detecting tuples t where []eRawType reference EGenericType(source,target)
43167 */
43168private pattern mustInRelationeRawType_reference_EGenericType(
43169 problem:LogicProblem, interpretation:PartialInterpretation, 35615 problem:LogicProblem, interpretation:PartialInterpretation,
43170 source: DefinedElement, target:DefinedElement) 35616 typeInterpretation:PartialComplexTypeInterpretation)
43171{ 35617{
43172 find interpretation(problem,interpretation); 35618 find interpretation(problem,interpretation);
43173 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 35619 neg find hasElementInContainment(problem,interpretation);
43174 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eRawType reference EGenericType"); 35620 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
43175 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 35621 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class");
43176 BinaryElementRelationLink.param1(link,source); 35622 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject);
43177 BinaryElementRelationLink.param2(link,target); 35623 find mayExist(problem, interpretation, newObject);
35624 neg find mustExist(problem, interpretation, newObject);
43178} 35625}
43179/** 35626pattern createObject_FAMTerminator_class_by_terminator_reference_FunctionalData_with_data_reference_FAMTerminator(
43180 * Matcher for detecting tuples t where <>eRawType reference EGenericType(source,target)
43181 */
43182private pattern mayInRelationeRawType_reference_EGenericType(
43183 problem:LogicProblem, interpretation:PartialInterpretation, 35627 problem:LogicProblem, interpretation:PartialInterpretation,
43184 source: DefinedElement, target:DefinedElement) 35628 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
35629 container:DefinedElement)
43185{ 35630{
43186 find interpretation(problem,interpretation); 35631 find interpretation(problem,interpretation);
43187 // The two endpoint of the link have to exist 35632 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
43188 find mayExist(problem, interpretation, source); 35633 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class");
43189 find mayExist(problem, interpretation, target); 35634 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
43190 // Type consistency 35635 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"terminator reference FunctionalData");
43191 find mayInstanceOfEGenericType_class(problem,interpretation,source); 35636 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
43192 find mayInstanceOfEClassifier_class(problem,interpretation,target); 35637 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"data reference FAMTerminator");
43193 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 35638 find mustInstanceOfFunctionalData_class(problem,interpretation,container);
43194 // the upper bound of the multiplicity should be considered. 35639 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject);
43195 numberOfExistingReferences == count find mustInRelationeRawType_reference_EGenericType(problem,interpretation,source,_); 35640 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,container,newObject);
43196 check(numberOfExistingReferences < 1); 35641 find mustExist(problem, interpretation, container);
43197} or { 35642 neg find mustExist(problem, interpretation, newObject);
43198 find mustInRelationeRawType_reference_EGenericType(problem,interpretation,source,target);
43199} 35643}
43200/** 35644pattern createObject_FAMTerminator_class(
43201 * Matcher for detecting tuples t where []eLowerBound reference EGenericType(source,target)
43202 */
43203private pattern mustInRelationeLowerBound_reference_EGenericType(
43204 problem:LogicProblem, interpretation:PartialInterpretation, 35645 problem:LogicProblem, interpretation:PartialInterpretation,
43205 source: DefinedElement, target:DefinedElement) 35646 typeInterpretation:PartialComplexTypeInterpretation)
43206{ 35647{
43207 find interpretation(problem,interpretation); 35648 find interpretation(problem,interpretation);
43208 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 35649 neg find hasElementInContainment(problem,interpretation);
43209 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eLowerBound reference EGenericType"); 35650 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
43210 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 35651 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class");
43211 BinaryElementRelationLink.param1(link,source); 35652 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject);
43212 BinaryElementRelationLink.param2(link,target); 35653 find mayExist(problem, interpretation, newObject);
35654 neg find mustExist(problem, interpretation, newObject);
43213} 35655}
43214/** 35656pattern createObject_FunctionalArchitectureModel_class(
43215 * Matcher for detecting tuples t where <>eLowerBound reference EGenericType(source,target)
43216 */
43217private pattern mayInRelationeLowerBound_reference_EGenericType(
43218 problem:LogicProblem, interpretation:PartialInterpretation, 35657 problem:LogicProblem, interpretation:PartialInterpretation,
43219 source: DefinedElement, target:DefinedElement) 35658 typeInterpretation:PartialComplexTypeInterpretation)
43220{ 35659{
43221 find interpretation(problem,interpretation); 35660 find interpretation(problem,interpretation);
43222 // The two endpoint of the link have to exist 35661 neg find hasElementInContainment(problem,interpretation);
43223 find mayExist(problem, interpretation, source); 35662 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
43224 find mayExist(problem, interpretation, target); 35663 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalArchitectureModel class");
43225 // Type consistency 35664 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,newObject);
43226 find mayInstanceOfEGenericType_class(problem,interpretation,source); 35665 find mayExist(problem, interpretation, newObject);
43227 find mayInstanceOfEGenericType_class(problem,interpretation,target); 35666 neg find mustExist(problem, interpretation, newObject);
43228 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
43229 // the upper bound of the multiplicity should be considered.
43230 numberOfExistingReferences == count find mustInRelationeLowerBound_reference_EGenericType(problem,interpretation,source,_);
43231 check(numberOfExistingReferences < 1);
43232 // The reference is containment, then a new reference cannot be create if:
43233 // 1. Multiple parents
43234 neg find mustContains4(problem,interpretation,_,target);
43235 // 2. Circle in the containment hierarchy
43236 neg find mustTransitiveContains(source,target);
43237} or {
43238 find mustInRelationeLowerBound_reference_EGenericType(problem,interpretation,source,target);
43239} 35667}
43240/** 35668pattern createObject_FunctionalInput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData(
43241 * Matcher for detecting tuples t where []eTypeParameter reference EGenericType(source,target)
43242 */
43243private pattern mustInRelationeTypeParameter_reference_EGenericType(
43244 problem:LogicProblem, interpretation:PartialInterpretation, 35669 problem:LogicProblem, interpretation:PartialInterpretation,
43245 source: DefinedElement, target:DefinedElement) 35670 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
35671 container:DefinedElement)
43246{ 35672{
43247 find interpretation(problem,interpretation); 35673 find interpretation(problem,interpretation);
43248 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 35674 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
43249 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eTypeParameter reference EGenericType"); 35675 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class");
43250 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 35676 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
43251 BinaryElementRelationLink.param1(link,source); 35677 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface");
43252 BinaryElementRelationLink.param2(link,target); 35678 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
35679 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData");
35680 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container);
35681 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
35682 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject);
35683 find mustExist(problem, interpretation, container);
35684 neg find mustExist(problem, interpretation, newObject);
43253} 35685}
43254/** 35686pattern createObject_FunctionalInput_class(
43255 * Matcher for detecting tuples t where <>eTypeParameter reference EGenericType(source,target)
43256 */
43257private pattern mayInRelationeTypeParameter_reference_EGenericType(
43258 problem:LogicProblem, interpretation:PartialInterpretation, 35687 problem:LogicProblem, interpretation:PartialInterpretation,
43259 source: DefinedElement, target:DefinedElement) 35688 typeInterpretation:PartialComplexTypeInterpretation)
43260{ 35689{
43261 find interpretation(problem,interpretation); 35690 find interpretation(problem,interpretation);
43262 // The two endpoint of the link have to exist 35691 neg find hasElementInContainment(problem,interpretation);
43263 find mayExist(problem, interpretation, source); 35692 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
43264 find mayExist(problem, interpretation, target); 35693 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class");
43265 // Type consistency 35694 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
43266 find mayInstanceOfEGenericType_class(problem,interpretation,source); 35695 find mayExist(problem, interpretation, newObject);
43267 find mayInstanceOfETypeParameter_class(problem,interpretation,target); 35696 neg find mustExist(problem, interpretation, newObject);
43268 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
43269 // the upper bound of the multiplicity should be considered.
43270 numberOfExistingReferences == count find mustInRelationeTypeParameter_reference_EGenericType(problem,interpretation,source,_);
43271 check(numberOfExistingReferences < 1);
43272} or {
43273 find mustInRelationeTypeParameter_reference_EGenericType(problem,interpretation,source,target);
43274} 35697}
43275/** 35698
43276 * Matcher for detecting tuples t where []eClassifier reference EGenericType(source,target) 35699//////////
43277 */ 35700// 4.2 Type refinement
43278private pattern mustInRelationeClassifier_reference_EGenericType( 35701//////////
43279 problem:LogicProblem, interpretation:PartialInterpretation, 35702pattern refineTypeTo_InformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
43280 source: DefinedElement, target:DefinedElement)
43281{
43282 find interpretation(problem,interpretation); 35703 find interpretation(problem,interpretation);
43283 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 35704 PartialInterpretation.newElements(interpretation,element);
43284 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eClassifier reference EGenericType"); 35705 find mayInstanceOfInformationLink_class(problem,interpretation,element);
43285 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 35706 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
43286 BinaryElementRelationLink.param1(link,source); 35707 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
43287 BinaryElementRelationLink.param2(link,target); 35708 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
35709 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
35710 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
35711 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
43288} 35712}
43289/** 35713pattern refineTypeTo_FunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
43290 * Matcher for detecting tuples t where <>eClassifier reference EGenericType(source,target)
43291 */
43292private pattern mayInRelationeClassifier_reference_EGenericType(
43293 problem:LogicProblem, interpretation:PartialInterpretation,
43294 source: DefinedElement, target:DefinedElement)
43295{
43296 find interpretation(problem,interpretation); 35714 find interpretation(problem,interpretation);
43297 // The two endpoint of the link have to exist 35715 PartialInterpretation.newElements(interpretation,element);
43298 find mayExist(problem, interpretation, source); 35716 find mayInstanceOfFunctionalInterface_class(problem,interpretation,element);
43299 find mayExist(problem, interpretation, target); 35717 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
43300 // Type consistency 35718 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
43301 find mayInstanceOfEGenericType_class(problem,interpretation,source); 35719 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
43302 find mayInstanceOfEClassifier_class(problem,interpretation,target); 35720 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
43303 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 35721 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
43304 // the upper bound of the multiplicity should be considered. 35722 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
43305 numberOfExistingReferences == count find mustInRelationeClassifier_reference_EGenericType(problem,interpretation,source,_);
43306 check(numberOfExistingReferences < 1);
43307} or {
43308 find mustInRelationeClassifier_reference_EGenericType(problem,interpretation,source,target);
43309} 35723}
43310/** 35724pattern refineTypeTo_Function_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
43311 * Matcher for detecting tuples t where []eBounds reference ETypeParameter(source,target)
43312 */
43313private pattern mustInRelationeBounds_reference_ETypeParameter(
43314 problem:LogicProblem, interpretation:PartialInterpretation,
43315 source: DefinedElement, target:DefinedElement)
43316{
43317 find interpretation(problem,interpretation); 35725 find interpretation(problem,interpretation);
43318 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 35726 PartialInterpretation.newElements(interpretation,element);
43319 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eBounds reference ETypeParameter"); 35727 find mayInstanceOfFunction_class(problem,interpretation,element);
43320 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 35728 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
43321 BinaryElementRelationLink.param1(link,source); 35729 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
43322 BinaryElementRelationLink.param2(link,target); 35730 neg find mustInstanceOfFunction_class(problem,interpretation,element);
35731 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
35732 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
35733 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
43323} 35734}
43324/** 35735pattern refineTypeTo_FunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
43325 * Matcher for detecting tuples t where <>eBounds reference ETypeParameter(source,target)
43326 */
43327private pattern mayInRelationeBounds_reference_ETypeParameter(
43328 problem:LogicProblem, interpretation:PartialInterpretation,
43329 source: DefinedElement, target:DefinedElement)
43330{
43331 find interpretation(problem,interpretation); 35736 find interpretation(problem,interpretation);
43332 // The two endpoint of the link have to exist 35737 PartialInterpretation.newElements(interpretation,element);
43333 find mayExist(problem, interpretation, source); 35738 find mayInstanceOfFunctionalOutput_class(problem,interpretation,element);
43334 find mayExist(problem, interpretation, target); 35739 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
43335 // Type consistency 35740 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
43336 find mayInstanceOfETypeParameter_class(problem,interpretation,source); 35741 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
43337 find mayInstanceOfEGenericType_class(problem,interpretation,target); 35742 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
43338 // The reference is containment, then a new reference cannot be create if: 35743 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
43339 // 1. Multiple parents 35744 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
43340 neg find mustContains4(problem,interpretation,_,target); 35745 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
43341 // 2. Circle in the containment hierarchy
43342 neg find mustTransitiveContains(source,target);
43343} or {
43344 find mustInRelationeBounds_reference_ETypeParameter(problem,interpretation,source,target);
43345} 35746}
43346/** 35747pattern refineTypeTo_FAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
43347 * Matcher for detecting tuples t where []iD attribute EAttribute(source,target)
43348 */
43349private pattern mustInRelationiD_attribute_EAttribute(
43350 problem:LogicProblem, interpretation:PartialInterpretation,
43351 source: DefinedElement, target:DefinedElement)
43352{
43353 find interpretation(problem,interpretation); 35748 find interpretation(problem,interpretation);
43354 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 35749 PartialInterpretation.newElements(interpretation,element);
43355 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"iD attribute EAttribute"); 35750 find mayInstanceOfFAMTerminator_class(problem,interpretation,element);
43356 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 35751 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
43357 BinaryElementRelationLink.param1(link,source); 35752 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
43358 BinaryElementRelationLink.param2(link,target); 35753 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
35754 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
35755 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
35756 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
43359} 35757}
43360/** 35758pattern refineTypeTo_FunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
43361 * Matcher for detecting tuples t where <>iD attribute EAttribute(source,target)
43362 */
43363private pattern mayInRelationiD_attribute_EAttribute(
43364 problem:LogicProblem, interpretation:PartialInterpretation,
43365 source: DefinedElement, target:DefinedElement)
43366{
43367 find interpretation(problem,interpretation); 35759 find interpretation(problem,interpretation);
43368 // The two endpoint of the link have to exist 35760 PartialInterpretation.newElements(interpretation,element);
43369 find mayExist(problem, interpretation, source); 35761 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
43370 find mayExist(problem, interpretation, target); 35762 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
43371 // Type consistency 35763 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
43372 find mayInstanceOfEAttribute_class(problem,interpretation,source); 35764 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
43373 BooleanElement(target); 35765 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
43374 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 35766 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
43375 // the upper bound of the multiplicity should be considered. 35767 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
43376 numberOfExistingReferences == count find mustInRelationiD_attribute_EAttribute(problem,interpretation,source,_);
43377 check(numberOfExistingReferences < 1);
43378} or {
43379 find mustInRelationiD_attribute_EAttribute(problem,interpretation,source,target);
43380} 35768}
43381/** 35769pattern refineTypeTo_FunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
43382 * Matcher for detecting tuples t where []source attribute EAnnotation(source,target) 35770 find interpretation(problem,interpretation);
43383 */ 35771 PartialInterpretation.newElements(interpretation,element);
43384private pattern mustInRelationsource_attribute_EAnnotation( 35772 find mayInstanceOfFunctionalInput_class(problem,interpretation,element);
35773 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
35774 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
35775 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
35776 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
35777 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
35778 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
35779 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
35780}
35781
35782//////////
35783// 4.3 Relation refinement
35784//////////
35785pattern refineRelation_model_reference_FunctionalElement(
43385 problem:LogicProblem, interpretation:PartialInterpretation, 35786 problem:LogicProblem, interpretation:PartialInterpretation,
43386 source: DefinedElement, target:DefinedElement) 35787 relationIterpretation:PartialRelationInterpretation,
35788 from: DefinedElement, to: DefinedElement)
43387{ 35789{
43388 find interpretation(problem,interpretation); 35790 find interpretation(problem,interpretation);
43389 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 35791 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
43390 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"source attribute EAnnotation"); 35792 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement");
43391 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 35793 find mustExist(problem, interpretation, from);
43392 BinaryElementRelationLink.param1(link,source); 35794 find mustExist(problem, interpretation, to);
43393 BinaryElementRelationLink.param2(link,target); 35795 find mustInstanceOfFunctionalElement_class(problem,interpretation,from);
35796 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,to);
35797 find mayInRelationmodel_reference_FunctionalElement(problem,interpretation,from,to);
35798 neg find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,from,to);
43394} 35799}
43395/** 35800pattern refineRelation_IncomingLinks_reference_FunctionalInput_and_to_reference_InformationLink(
43396 * Matcher for detecting tuples t where <>source attribute EAnnotation(source,target)
43397 */
43398private pattern mayInRelationsource_attribute_EAnnotation(
43399 problem:LogicProblem, interpretation:PartialInterpretation, 35801 problem:LogicProblem, interpretation:PartialInterpretation,
43400 source: DefinedElement, target:DefinedElement) 35802 relationIterpretation:PartialRelationInterpretation, oppositeInterpretation:PartialRelationInterpretation,
35803 from: DefinedElement, to: DefinedElement)
43401{ 35804{
43402 find interpretation(problem,interpretation); 35805 find interpretation(problem,interpretation);
43403 // The two endpoint of the link have to exist 35806 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
43404 find mayExist(problem, interpretation, source); 35807 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"IncomingLinks reference FunctionalInput");
43405 find mayExist(problem, interpretation, target); 35808 PartialInterpretation.partialrelationinterpretation(interpretation,oppositeInterpretation);
43406 // Type consistency 35809 PartialRelationInterpretation.interpretationOf.name(oppositeInterpretation,"to reference InformationLink");
43407 find mayInstanceOfEAnnotation_class(problem,interpretation,source); 35810 find mustExist(problem, interpretation, from);
43408 StringElement(target); 35811 find mustExist(problem, interpretation, to);
43409 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 35812 find mustInstanceOfFunctionalInput_class(problem,interpretation,from);
43410 // the upper bound of the multiplicity should be considered. 35813 find mustInstanceOfInformationLink_class(problem,interpretation,to);
43411 numberOfExistingReferences == count find mustInRelationsource_attribute_EAnnotation(problem,interpretation,source,_); 35814 find mayInRelationIncomingLinks_reference_FunctionalInput(problem,interpretation,from,to);
43412 check(numberOfExistingReferences < 1); 35815 neg find mustInRelationIncomingLinks_reference_FunctionalInput(problem,interpretation,from,to);
43413} or {
43414 find mustInRelationsource_attribute_EAnnotation(problem,interpretation,source,target);
43415} 35816}
43416/** 35817pattern refineRelation_type_attribute_Function(
43417 * Matcher for detecting tuples t where []abstract attribute EClass(source,target)
43418 */
43419private pattern mustInRelationabstract_attribute_EClass(
43420 problem:LogicProblem, interpretation:PartialInterpretation, 35818 problem:LogicProblem, interpretation:PartialInterpretation,
43421 source: DefinedElement, target:DefinedElement) 35819 relationIterpretation:PartialRelationInterpretation,
35820 from: DefinedElement, to: DefinedElement)
43422{ 35821{
43423 find interpretation(problem,interpretation); 35822 find interpretation(problem,interpretation);
43424 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 35823 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
43425 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"abstract attribute EClass"); 35824 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function");
43426 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 35825 find mustExist(problem, interpretation, from);
43427 BinaryElementRelationLink.param1(link,source); 35826 find mustExist(problem, interpretation, to);
43428 BinaryElementRelationLink.param2(link,target); 35827 find mustInstanceOfFunction_class(problem,interpretation,from);
35828 find mustInstanceOfFunctionType_enum(problem,interpretation,to);
35829 find mayInRelationtype_attribute_Function(problem,interpretation,from,to);
35830 neg find mustInRelationtype_attribute_Function(problem,interpretation,from,to);
43429} 35831}
43430/** 35832import epackage "http://www.bme.hu/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage"
43431 * Matcher for detecting tuples t where <>abstract attribute EClass(source,target) 35833import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem"
43432 */ 35834import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/language"
43433private pattern mayInRelationabstract_attribute_EClass( 35835
43434 problem:LogicProblem, interpretation:PartialInterpretation, 35836//////////
43435 source: DefinedElement, target:DefinedElement) 35837// 0. Util
43436{ 35838//////////
35839private pattern interpretation(problem:LogicProblem, interpretation:PartialInterpretation) {
35840 PartialInterpretation.problem(interpretation,problem);
35841}
35842
35843/////////////////////////
35844// 0.1 Existence
35845/////////////////////////
35846private pattern mustExist(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
43437 find interpretation(problem,interpretation); 35847 find interpretation(problem,interpretation);
43438 // The two endpoint of the link have to exist 35848 LogicProblem.elements(problem,element);
43439 find mayExist(problem, interpretation, source);
43440 find mayExist(problem, interpretation, target);
43441 // Type consistency
43442 find mayInstanceOfEClass_class(problem,interpretation,source);
43443 BooleanElement(target);
43444 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
43445 // the upper bound of the multiplicity should be considered.
43446 numberOfExistingReferences == count find mustInRelationabstract_attribute_EClass(problem,interpretation,source,_);
43447 check(numberOfExistingReferences < 1);
43448} or { 35849} or {
43449 find mustInRelationabstract_attribute_EClass(problem,interpretation,source,target); 35850 find interpretation(problem,interpretation);
35851 PartialInterpretation.newElements(interpretation,element);
43450} 35852}
43451/** 35853
43452 * Matcher for detecting tuples t where []interface attribute EClass(source,target) 35854private pattern mayExist(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
43453 */ 35855 find mustExist(problem,interpretation,element);
43454private pattern mustInRelationinterface_attribute_EClass( 35856} or {
43455 problem:LogicProblem, interpretation:PartialInterpretation, 35857 find interpretation(problem,interpretation);
43456 source: DefinedElement, target:DefinedElement) 35858 neg find elementCloseWorld(element);
43457{ 35859 PartialInterpretation.openWorldElements(interpretation,element);
35860}
35861
35862private pattern elementCloseWorld(element:DefinedElement) {
35863 PartialInterpretation.openWorldElements(i,element);
35864 PartialInterpretation.maxNewElements(i,0);
35865} or {
35866 Scope.targetTypeInterpretation(scope,interpretation);
35867 PartialTypeInterpratation.elements(interpretation,element);
35868 Scope.maxNewElements(scope,0);
35869}
35870
35871////////////////////////
35872// 0.2 Equivalence
35873////////////////////////
35874pattern mayEquivalent(problem:LogicProblem, interpretation:PartialInterpretation, a: DefinedElement, b: DefinedElement) {
35875 find mayExist(problem,interpretation,a);
35876 find mayExist(problem,interpretation,b);
35877 a == b;
35878}
35879
35880////////////////////////
35881// 0.3 Required Patterns by TypeIndexer
35882////////////////////////
35883private pattern typeInterpretation(problem:LogicProblem, interpretation:PartialInterpretation, type:TypeDeclaration, typeInterpretation:PartialComplexTypeInterpretation) {
43458 find interpretation(problem,interpretation); 35884 find interpretation(problem,interpretation);
43459 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 35885 LogicProblem.types(problem,type);
43460 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"interface attribute EClass"); 35886 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
43461 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 35887 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
43462 BinaryElementRelationLink.param1(link,source);
43463 BinaryElementRelationLink.param2(link,target);
43464} 35888}
43465/** 35889
43466 * Matcher for detecting tuples t where <>interface attribute EClass(source,target) 35890private pattern directInstanceOf(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement, type:Type) {
43467 */
43468private pattern mayInRelationinterface_attribute_EClass(
43469 problem:LogicProblem, interpretation:PartialInterpretation,
43470 source: DefinedElement, target:DefinedElement)
43471{
43472 find interpretation(problem,interpretation); 35891 find interpretation(problem,interpretation);
43473 // The two endpoint of the link have to exist 35892 LogicProblem.types(problem,type);
43474 find mayExist(problem, interpretation, source); 35893 TypeDefinition.elements(type,element);
43475 find mayExist(problem, interpretation, target);
43476 // Type consistency
43477 find mayInstanceOfEClass_class(problem,interpretation,source);
43478 BooleanElement(target);
43479 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
43480 // the upper bound of the multiplicity should be considered.
43481 numberOfExistingReferences == count find mustInRelationinterface_attribute_EClass(problem,interpretation,source,_);
43482 check(numberOfExistingReferences < 1);
43483} or { 35894} or {
43484 find mustInRelationinterface_attribute_EClass(problem,interpretation,source,target); 35895 find interpretation(problem,interpretation);
35896 find typeInterpretation(problem,interpretation,type,typeInterpretation);
35897 PartialComplexTypeInterpretation.elements(typeInterpretation,element);
43485} 35898}
35899
35900private pattern isPrimitive(element: PrimitiveElement) {
35901 PrimitiveElement(element);
35902}
35903
35904//////////
35905// 1. Problem-Specific Base Indexers
35906//////////
35907// 1.1 Type Indexers
35908//////////
35909// 1.1.1 primitive Type Indexers
35910//////////
35911
35912//////////
35913// 1.1.2 domain-specific Type Indexers
35914//////////
43486/** 35915/**
43487 * Matcher for detecting tuples t where []instanceClassName attribute EClassifier(source,target) 35916 * An element must be an instance of type "FunctionalElement class".
43488 */ 35917 */
43489private pattern mustInRelationinstanceClassName_attribute_EClassifier( 35918private pattern mustInstanceOfFunctionalElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
43490 problem:LogicProblem, interpretation:PartialInterpretation, 35919 Type.name(type,"FunctionalElement class");
43491 source: DefinedElement, target:DefinedElement) 35920 find directInstanceOf(problem,interpretation,element,type);
43492{ 35921}
35922private pattern scopeDisallowsNewFunctionalElement_class(problem:LogicProblem, interpretation:PartialInterpretation) {
43493 find interpretation(problem,interpretation); 35923 find interpretation(problem,interpretation);
43494 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 35924 PartialInterpretation.scopes(interpretation,scope);
43495 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"instanceClassName attribute EClassifier"); 35925 Scope.targetTypeInterpretation(scope,typeInterpretation);
43496 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 35926 Scope.maxNewElements(scope,0);
43497 BinaryElementRelationLink.param1(link,source); 35927 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
43498 BinaryElementRelationLink.param2(link,target); 35928 Type.name(type,"FunctionalElement class");
43499} 35929}
35930
43500/** 35931/**
43501 * Matcher for detecting tuples t where <>instanceClassName attribute EClassifier(source,target) 35932 * An element may be an instance of type "FunctionalElement class".
43502 */ 35933 */
43503private pattern mayInRelationinstanceClassName_attribute_EClassifier( 35934private pattern mayInstanceOfFunctionalElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
43504 problem:LogicProblem, interpretation:PartialInterpretation,
43505 source: DefinedElement, target:DefinedElement)
43506{ 35935{
43507 find interpretation(problem,interpretation); 35936 find interpretation(problem,interpretation);
43508 // The two endpoint of the link have to exist 35937 PartialInterpretation.newElements(interpretation,element);
43509 find mayExist(problem, interpretation, source); 35938 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
43510 find mayExist(problem, interpretation, target); 35939 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
43511 // Type consistency 35940 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
43512 find mayInstanceOfEClassifier_class(problem,interpretation,source); 35941 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
43513 StringElement(target); 35942 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
43514 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 35943 neg find mustInstanceOfFunction_class(problem,interpretation,element);
43515 // the upper bound of the multiplicity should be considered. 35944 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
43516 numberOfExistingReferences == count find mustInRelationinstanceClassName_attribute_EClassifier(problem,interpretation,source,_); 35945 neg find isPrimitive(element);
43517 check(numberOfExistingReferences < 1);
43518} or { 35946} or {
43519 find mustInRelationinstanceClassName_attribute_EClassifier(problem,interpretation,source,target); 35947 find interpretation(problem,interpretation);
43520} 35948 PartialInterpretation.openWorldElements(interpretation,element);
35949 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
35950 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
35951 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
35952 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
35953 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
35954 neg find mustInstanceOfFunction_class(problem,interpretation,element);
35955 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
35956 neg find isPrimitive(element);
35957} or
35958{ find mustInstanceOfFunctionalElement_class(problem,interpretation,element); }
43521/** 35959/**
43522 * Matcher for detecting tuples t where []instanceTypeName attribute EClassifier(source,target) 35960 * An element must be an instance of type "FunctionalArchitectureModel class".
43523 */ 35961 */
43524private pattern mustInRelationinstanceTypeName_attribute_EClassifier( 35962private pattern mustInstanceOfFunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
43525 problem:LogicProblem, interpretation:PartialInterpretation, 35963 Type.name(type,"FunctionalArchitectureModel class");
43526 source: DefinedElement, target:DefinedElement) 35964 find directInstanceOf(problem,interpretation,element,type);
43527{ 35965}
35966private pattern scopeDisallowsNewFunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation) {
43528 find interpretation(problem,interpretation); 35967 find interpretation(problem,interpretation);
43529 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 35968 PartialInterpretation.scopes(interpretation,scope);
43530 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"instanceTypeName attribute EClassifier"); 35969 Scope.targetTypeInterpretation(scope,typeInterpretation);
43531 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 35970 Scope.maxNewElements(scope,0);
43532 BinaryElementRelationLink.param1(link,source); 35971 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
43533 BinaryElementRelationLink.param2(link,target); 35972 Type.name(type,"FunctionalArchitectureModel class");
43534} 35973}
35974
43535/** 35975/**
43536 * Matcher for detecting tuples t where <>instanceTypeName attribute EClassifier(source,target) 35976 * An element may be an instance of type "FunctionalArchitectureModel class".
43537 */ 35977 */
43538private pattern mayInRelationinstanceTypeName_attribute_EClassifier( 35978private pattern mayInstanceOfFunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
43539 problem:LogicProblem, interpretation:PartialInterpretation,
43540 source: DefinedElement, target:DefinedElement)
43541{ 35979{
43542 find interpretation(problem,interpretation); 35980 find interpretation(problem,interpretation);
43543 // The two endpoint of the link have to exist 35981 PartialInterpretation.newElements(interpretation,element);
43544 find mayExist(problem, interpretation, source); 35982 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
43545 find mayExist(problem, interpretation, target); 35983 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
43546 // Type consistency 35984 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
43547 find mayInstanceOfEClassifier_class(problem,interpretation,source); 35985 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
43548 StringElement(target); 35986 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
43549 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 35987 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
43550 // the upper bound of the multiplicity should be considered. 35988 neg find isPrimitive(element);
43551 numberOfExistingReferences == count find mustInRelationinstanceTypeName_attribute_EClassifier(problem,interpretation,source,_);
43552 check(numberOfExistingReferences < 1);
43553} or { 35989} or {
43554 find mustInRelationinstanceTypeName_attribute_EClassifier(problem,interpretation,source,target); 35990 find interpretation(problem,interpretation);
43555} 35991 PartialInterpretation.openWorldElements(interpretation,element);
35992 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
35993 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
35994 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
35995 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
35996 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
35997 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
35998 neg find isPrimitive(element);
35999} or
36000{ find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); }
43556/** 36001/**
43557 * Matcher for detecting tuples t where []serializable attribute EDataType(source,target) 36002 * An element must be an instance of type "Function class".
43558 */ 36003 */
43559private pattern mustInRelationserializable_attribute_EDataType( 36004private pattern mustInstanceOfFunction_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
43560 problem:LogicProblem, interpretation:PartialInterpretation, 36005 Type.name(type,"Function class");
43561 source: DefinedElement, target:DefinedElement) 36006 find directInstanceOf(problem,interpretation,element,type);
43562{ 36007}
36008private pattern scopeDisallowsNewFunction_class(problem:LogicProblem, interpretation:PartialInterpretation) {
43563 find interpretation(problem,interpretation); 36009 find interpretation(problem,interpretation);
43564 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 36010 PartialInterpretation.scopes(interpretation,scope);
43565 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"serializable attribute EDataType"); 36011 Scope.targetTypeInterpretation(scope,typeInterpretation);
43566 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 36012 Scope.maxNewElements(scope,0);
43567 BinaryElementRelationLink.param1(link,source); 36013 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
43568 BinaryElementRelationLink.param2(link,target); 36014 Type.name(type,"Function class");
43569} 36015}
36016
43570/** 36017/**
43571 * Matcher for detecting tuples t where <>serializable attribute EDataType(source,target) 36018 * An element may be an instance of type "Function class".
43572 */ 36019 */
43573private pattern mayInRelationserializable_attribute_EDataType( 36020private pattern mayInstanceOfFunction_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
43574 problem:LogicProblem, interpretation:PartialInterpretation,
43575 source: DefinedElement, target:DefinedElement)
43576{ 36021{
43577 find interpretation(problem,interpretation); 36022 find interpretation(problem,interpretation);
43578 // The two endpoint of the link have to exist 36023 PartialInterpretation.newElements(interpretation,element);
43579 find mayExist(problem, interpretation, source); 36024 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
43580 find mayExist(problem, interpretation, target); 36025 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
43581 // Type consistency 36026 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
43582 find mayInstanceOfEDataType_class(problem,interpretation,source); 36027 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
43583 BooleanElement(target); 36028 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
43584 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 36029 neg find scopeDisallowsNewFunction_class(problem, interpretation);
43585 // the upper bound of the multiplicity should be considered. 36030 neg find isPrimitive(element);
43586 numberOfExistingReferences == count find mustInRelationserializable_attribute_EDataType(problem,interpretation,source,_);
43587 check(numberOfExistingReferences < 1);
43588} or { 36031} or {
43589 find mustInRelationserializable_attribute_EDataType(problem,interpretation,source,target); 36032 find interpretation(problem,interpretation);
43590} 36033 PartialInterpretation.openWorldElements(interpretation,element);
36034 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
36035 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
36036 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
36037 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
36038 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
36039 neg find scopeDisallowsNewFunction_class(problem, interpretation);
36040 neg find isPrimitive(element);
36041} or
36042{ find mustInstanceOfFunction_class(problem,interpretation,element); }
43591/** 36043/**
43592 * Matcher for detecting tuples t where []value attribute EEnumLiteral(source,target) 36044 * An element must be an instance of type "FAMTerminator class".
43593 */ 36045 */
43594private pattern mustInRelationvalue_attribute_EEnumLiteral( 36046private pattern mustInstanceOfFAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
43595 problem:LogicProblem, interpretation:PartialInterpretation, 36047 Type.name(type,"FAMTerminator class");
43596 source: DefinedElement, target:DefinedElement) 36048 find directInstanceOf(problem,interpretation,element,type);
43597{ 36049}
36050private pattern scopeDisallowsNewFAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation) {
43598 find interpretation(problem,interpretation); 36051 find interpretation(problem,interpretation);
43599 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 36052 PartialInterpretation.scopes(interpretation,scope);
43600 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"value attribute EEnumLiteral"); 36053 Scope.targetTypeInterpretation(scope,typeInterpretation);
43601 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 36054 Scope.maxNewElements(scope,0);
43602 BinaryElementRelationLink.param1(link,source); 36055 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
43603 BinaryElementRelationLink.param2(link,target); 36056 Type.name(type,"FAMTerminator class");
43604} 36057}
36058
43605/** 36059/**
43606 * Matcher for detecting tuples t where <>value attribute EEnumLiteral(source,target) 36060 * An element may be an instance of type "FAMTerminator class".
43607 */ 36061 */
43608private pattern mayInRelationvalue_attribute_EEnumLiteral( 36062private pattern mayInstanceOfFAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
43609 problem:LogicProblem, interpretation:PartialInterpretation,
43610 source: DefinedElement, target:DefinedElement)
43611{ 36063{
43612 find interpretation(problem,interpretation); 36064 find interpretation(problem,interpretation);
43613 // The two endpoint of the link have to exist 36065 PartialInterpretation.newElements(interpretation,element);
43614 find mayExist(problem, interpretation, source); 36066 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
43615 find mayExist(problem, interpretation, target); 36067 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
43616 // Type consistency 36068 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
43617 find mayInstanceOfEEnumLiteral_class(problem,interpretation,source); 36069 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
43618 IntegerElement(target); 36070 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
43619 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 36071 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
43620 // the upper bound of the multiplicity should be considered. 36072 neg find isPrimitive(element);
43621 numberOfExistingReferences == count find mustInRelationvalue_attribute_EEnumLiteral(problem,interpretation,source,_);
43622 check(numberOfExistingReferences < 1);
43623} or { 36073} or {
43624 find mustInRelationvalue_attribute_EEnumLiteral(problem,interpretation,source,target); 36074 find interpretation(problem,interpretation);
43625} 36075 PartialInterpretation.openWorldElements(interpretation,element);
36076 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
36077 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
36078 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
36079 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
36080 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
36081 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
36082 neg find isPrimitive(element);
36083} or
36084{ find mustInstanceOfFAMTerminator_class(problem,interpretation,element); }
43626/** 36085/**
43627 * Matcher for detecting tuples t where []literal attribute EEnumLiteral(source,target) 36086 * An element must be an instance of type "InformationLink class".
43628 */ 36087 */
43629private pattern mustInRelationliteral_attribute_EEnumLiteral( 36088private pattern mustInstanceOfInformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
43630 problem:LogicProblem, interpretation:PartialInterpretation, 36089 Type.name(type,"InformationLink class");
43631 source: DefinedElement, target:DefinedElement) 36090 find directInstanceOf(problem,interpretation,element,type);
43632{ 36091}
36092private pattern scopeDisallowsNewInformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation) {
43633 find interpretation(problem,interpretation); 36093 find interpretation(problem,interpretation);
43634 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 36094 PartialInterpretation.scopes(interpretation,scope);
43635 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"literal attribute EEnumLiteral"); 36095 Scope.targetTypeInterpretation(scope,typeInterpretation);
43636 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 36096 Scope.maxNewElements(scope,0);
43637 BinaryElementRelationLink.param1(link,source); 36097 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
43638 BinaryElementRelationLink.param2(link,target); 36098 Type.name(type,"InformationLink class");
43639} 36099}
36100
43640/** 36101/**
43641 * Matcher for detecting tuples t where <>literal attribute EEnumLiteral(source,target) 36102 * An element may be an instance of type "InformationLink class".
43642 */ 36103 */
43643private pattern mayInRelationliteral_attribute_EEnumLiteral( 36104private pattern mayInstanceOfInformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
43644 problem:LogicProblem, interpretation:PartialInterpretation,
43645 source: DefinedElement, target:DefinedElement)
43646{ 36105{
43647 find interpretation(problem,interpretation); 36106 find interpretation(problem,interpretation);
43648 // The two endpoint of the link have to exist 36107 PartialInterpretation.newElements(interpretation,element);
43649 find mayExist(problem, interpretation, source); 36108 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
43650 find mayExist(problem, interpretation, target); 36109 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
43651 // Type consistency 36110 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
43652 find mayInstanceOfEEnumLiteral_class(problem,interpretation,source); 36111 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
43653 StringElement(target); 36112 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
43654 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 36113 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
43655 // the upper bound of the multiplicity should be considered. 36114 neg find isPrimitive(element);
43656 numberOfExistingReferences == count find mustInRelationliteral_attribute_EEnumLiteral(problem,interpretation,source,_);
43657 check(numberOfExistingReferences < 1);
43658} or { 36115} or {
43659 find mustInRelationliteral_attribute_EEnumLiteral(problem,interpretation,source,target); 36116 find interpretation(problem,interpretation);
43660} 36117 PartialInterpretation.openWorldElements(interpretation,element);
36118 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
36119 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
36120 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
36121 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
36122 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
36123 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
36124 neg find isPrimitive(element);
36125} or
36126{ find mustInstanceOfInformationLink_class(problem,interpretation,element); }
43661/** 36127/**
43662 * Matcher for detecting tuples t where []name attribute ENamedElement(source,target) 36128 * An element must be an instance of type "FunctionalInterface class".
43663 */ 36129 */
43664private pattern mustInRelationname_attribute_ENamedElement( 36130private pattern mustInstanceOfFunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
43665 problem:LogicProblem, interpretation:PartialInterpretation, 36131 Type.name(type,"FunctionalInterface class");
43666 source: DefinedElement, target:DefinedElement) 36132 find directInstanceOf(problem,interpretation,element,type);
43667{ 36133}
36134private pattern scopeDisallowsNewFunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation) {
43668 find interpretation(problem,interpretation); 36135 find interpretation(problem,interpretation);
43669 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 36136 PartialInterpretation.scopes(interpretation,scope);
43670 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"name attribute ENamedElement"); 36137 Scope.targetTypeInterpretation(scope,typeInterpretation);
43671 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 36138 Scope.maxNewElements(scope,0);
43672 BinaryElementRelationLink.param1(link,source); 36139 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
43673 BinaryElementRelationLink.param2(link,target); 36140 Type.name(type,"FunctionalInterface class");
43674} 36141}
36142
43675/** 36143/**
43676 * Matcher for detecting tuples t where <>name attribute ENamedElement(source,target) 36144 * An element may be an instance of type "FunctionalInterface class".
43677 */ 36145 */
43678private pattern mayInRelationname_attribute_ENamedElement( 36146private pattern mayInstanceOfFunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
43679 problem:LogicProblem, interpretation:PartialInterpretation,
43680 source: DefinedElement, target:DefinedElement)
43681{ 36147{
43682 find interpretation(problem,interpretation); 36148 find interpretation(problem,interpretation);
43683 // The two endpoint of the link have to exist 36149 PartialInterpretation.newElements(interpretation,element);
43684 find mayExist(problem, interpretation, source); 36150 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
43685 find mayExist(problem, interpretation, target); 36151 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
43686 // Type consistency 36152 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
43687 find mayInstanceOfENamedElement_class(problem,interpretation,source); 36153 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
43688 StringElement(target); 36154 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
43689 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 36155 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
43690 // the upper bound of the multiplicity should be considered. 36156 neg find isPrimitive(element);
43691 numberOfExistingReferences == count find mustInRelationname_attribute_ENamedElement(problem,interpretation,source,_);
43692 check(numberOfExistingReferences < 1);
43693} or { 36157} or {
43694 find mustInRelationname_attribute_ENamedElement(problem,interpretation,source,target); 36158 find interpretation(problem,interpretation);
43695} 36159 PartialInterpretation.openWorldElements(interpretation,element);
36160 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
36161 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
36162 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
36163 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
36164 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
36165 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
36166 neg find isPrimitive(element);
36167} or
36168{ find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); }
43696/** 36169/**
43697 * Matcher for detecting tuples t where []nsURI attribute EPackage(source,target) 36170 * An element must be an instance of type "FunctionalInput class".
43698 */ 36171 */
43699private pattern mustInRelationnsURI_attribute_EPackage( 36172private pattern mustInstanceOfFunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
43700 problem:LogicProblem, interpretation:PartialInterpretation, 36173 Type.name(type,"FunctionalInput class");
43701 source: DefinedElement, target:DefinedElement) 36174 find directInstanceOf(problem,interpretation,element,type);
43702{ 36175}
36176private pattern scopeDisallowsNewFunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation) {
43703 find interpretation(problem,interpretation); 36177 find interpretation(problem,interpretation);
43704 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 36178 PartialInterpretation.scopes(interpretation,scope);
43705 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"nsURI attribute EPackage"); 36179 Scope.targetTypeInterpretation(scope,typeInterpretation);
43706 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 36180 Scope.maxNewElements(scope,0);
43707 BinaryElementRelationLink.param1(link,source); 36181 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
43708 BinaryElementRelationLink.param2(link,target); 36182 Type.name(type,"FunctionalInput class");
43709} 36183}
36184
43710/** 36185/**
43711 * Matcher for detecting tuples t where <>nsURI attribute EPackage(source,target) 36186 * An element may be an instance of type "FunctionalInput class".
43712 */ 36187 */
43713private pattern mayInRelationnsURI_attribute_EPackage( 36188private pattern mayInstanceOfFunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
43714 problem:LogicProblem, interpretation:PartialInterpretation,
43715 source: DefinedElement, target:DefinedElement)
43716{ 36189{
43717 find interpretation(problem,interpretation); 36190 find interpretation(problem,interpretation);
43718 // The two endpoint of the link have to exist 36191 PartialInterpretation.newElements(interpretation,element);
43719 find mayExist(problem, interpretation, source); 36192 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
43720 find mayExist(problem, interpretation, target); 36193 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
43721 // Type consistency 36194 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
43722 find mayInstanceOfEPackage_class(problem,interpretation,source); 36195 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
43723 StringElement(target); 36196 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
43724 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 36197 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
43725 // the upper bound of the multiplicity should be considered. 36198 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
43726 numberOfExistingReferences == count find mustInRelationnsURI_attribute_EPackage(problem,interpretation,source,_); 36199 neg find isPrimitive(element);
43727 check(numberOfExistingReferences < 1);
43728} or { 36200} or {
43729 find mustInRelationnsURI_attribute_EPackage(problem,interpretation,source,target); 36201 find interpretation(problem,interpretation);
43730} 36202 PartialInterpretation.openWorldElements(interpretation,element);
36203 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
36204 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
36205 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
36206 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
36207 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
36208 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
36209 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
36210 neg find isPrimitive(element);
36211} or
36212{ find mustInstanceOfFunctionalInput_class(problem,interpretation,element); }
43731/** 36213/**
43732 * Matcher for detecting tuples t where []nsPrefix attribute EPackage(source,target) 36214 * An element must be an instance of type "FunctionalOutput class".
43733 */ 36215 */
43734private pattern mustInRelationnsPrefix_attribute_EPackage( 36216private pattern mustInstanceOfFunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
43735 problem:LogicProblem, interpretation:PartialInterpretation, 36217 Type.name(type,"FunctionalOutput class");
43736 source: DefinedElement, target:DefinedElement) 36218 find directInstanceOf(problem,interpretation,element,type);
43737{ 36219}
36220private pattern scopeDisallowsNewFunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation) {
43738 find interpretation(problem,interpretation); 36221 find interpretation(problem,interpretation);
43739 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 36222 PartialInterpretation.scopes(interpretation,scope);
43740 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"nsPrefix attribute EPackage"); 36223 Scope.targetTypeInterpretation(scope,typeInterpretation);
43741 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 36224 Scope.maxNewElements(scope,0);
43742 BinaryElementRelationLink.param1(link,source); 36225 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
43743 BinaryElementRelationLink.param2(link,target); 36226 Type.name(type,"FunctionalOutput class");
43744} 36227}
36228
43745/** 36229/**
43746 * Matcher for detecting tuples t where <>nsPrefix attribute EPackage(source,target) 36230 * An element may be an instance of type "FunctionalOutput class".
43747 */ 36231 */
43748private pattern mayInRelationnsPrefix_attribute_EPackage( 36232private pattern mayInstanceOfFunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
43749 problem:LogicProblem, interpretation:PartialInterpretation,
43750 source: DefinedElement, target:DefinedElement)
43751{ 36233{
43752 find interpretation(problem,interpretation); 36234 find interpretation(problem,interpretation);
43753 // The two endpoint of the link have to exist 36235 PartialInterpretation.newElements(interpretation,element);
43754 find mayExist(problem, interpretation, source); 36236 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
43755 find mayExist(problem, interpretation, target); 36237 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
43756 // Type consistency 36238 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
43757 find mayInstanceOfEPackage_class(problem,interpretation,source); 36239 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
43758 StringElement(target); 36240 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
43759 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 36241 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
43760 // the upper bound of the multiplicity should be considered. 36242 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
43761 numberOfExistingReferences == count find mustInRelationnsPrefix_attribute_EPackage(problem,interpretation,source,_); 36243 neg find isPrimitive(element);
43762 check(numberOfExistingReferences < 1);
43763} or { 36244} or {
43764 find mustInRelationnsPrefix_attribute_EPackage(problem,interpretation,source,target); 36245 find interpretation(problem,interpretation);
43765} 36246 PartialInterpretation.openWorldElements(interpretation,element);
36247 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
36248 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
36249 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
36250 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
36251 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
36252 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
36253 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
36254 neg find isPrimitive(element);
36255} or
36256{ find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); }
43766/** 36257/**
43767 * Matcher for detecting tuples t where []containment attribute EReference(source,target) 36258 * An element must be an instance of type "FunctionalData class".
43768 */ 36259 */
43769private pattern mustInRelationcontainment_attribute_EReference( 36260private pattern mustInstanceOfFunctionalData_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
43770 problem:LogicProblem, interpretation:PartialInterpretation, 36261 Type.name(type,"FunctionalData class");
43771 source: DefinedElement, target:DefinedElement) 36262 find directInstanceOf(problem,interpretation,element,type);
43772{ 36263}
36264private pattern scopeDisallowsNewFunctionalData_class(problem:LogicProblem, interpretation:PartialInterpretation) {
43773 find interpretation(problem,interpretation); 36265 find interpretation(problem,interpretation);
43774 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 36266 PartialInterpretation.scopes(interpretation,scope);
43775 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"containment attribute EReference"); 36267 Scope.targetTypeInterpretation(scope,typeInterpretation);
43776 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 36268 Scope.maxNewElements(scope,0);
43777 BinaryElementRelationLink.param1(link,source); 36269 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
43778 BinaryElementRelationLink.param2(link,target); 36270 Type.name(type,"FunctionalData class");
43779} 36271}
36272
43780/** 36273/**
43781 * Matcher for detecting tuples t where <>containment attribute EReference(source,target) 36274 * An element may be an instance of type "FunctionalData class".
43782 */ 36275 */
43783private pattern mayInRelationcontainment_attribute_EReference( 36276private pattern mayInstanceOfFunctionalData_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
43784 problem:LogicProblem, interpretation:PartialInterpretation,
43785 source: DefinedElement, target:DefinedElement)
43786{ 36277{
43787 find interpretation(problem,interpretation); 36278 find interpretation(problem,interpretation);
43788 // The two endpoint of the link have to exist 36279 PartialInterpretation.newElements(interpretation,element);
43789 find mayExist(problem, interpretation, source); 36280 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
43790 find mayExist(problem, interpretation, target); 36281 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
43791 // Type consistency 36282 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
43792 find mayInstanceOfEReference_class(problem,interpretation,source); 36283 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
43793 BooleanElement(target); 36284 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
43794 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 36285 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
43795 // the upper bound of the multiplicity should be considered. 36286 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
43796 numberOfExistingReferences == count find mustInRelationcontainment_attribute_EReference(problem,interpretation,source,_); 36287 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
43797 check(numberOfExistingReferences < 1); 36288 neg find isPrimitive(element);
43798} or { 36289} or {
43799 find mustInRelationcontainment_attribute_EReference(problem,interpretation,source,target); 36290 find interpretation(problem,interpretation);
43800} 36291 PartialInterpretation.openWorldElements(interpretation,element);
36292 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
36293 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
36294 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
36295 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
36296 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
36297 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
36298 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
36299 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
36300 neg find isPrimitive(element);
36301} or
36302{ find mustInstanceOfFunctionalData_class(problem,interpretation,element); }
43801/** 36303/**
43802 * Matcher for detecting tuples t where []container attribute EReference(source,target) 36304 * An element must be an instance of type "FunctionType enum".
43803 */ 36305 */
43804private pattern mustInRelationcontainer_attribute_EReference( 36306private pattern mustInstanceOfFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
43805 problem:LogicProblem, interpretation:PartialInterpretation, 36307 Type.name(type,"FunctionType enum");
43806 source: DefinedElement, target:DefinedElement) 36308 find directInstanceOf(problem,interpretation,element,type);
43807{ 36309}
36310private pattern scopeDisallowsNewFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation) {
43808 find interpretation(problem,interpretation); 36311 find interpretation(problem,interpretation);
43809 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 36312 PartialInterpretation.scopes(interpretation,scope);
43810 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"container attribute EReference"); 36313 Scope.targetTypeInterpretation(scope,typeInterpretation);
43811 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 36314 Scope.maxNewElements(scope,0);
43812 BinaryElementRelationLink.param1(link,source); 36315 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
43813 BinaryElementRelationLink.param2(link,target); 36316 Type.name(type,"FunctionType enum");
43814} 36317}
36318
43815/** 36319/**
43816 * Matcher for detecting tuples t where <>container attribute EReference(source,target) 36320 * An element may be an instance of type "FunctionType enum".
43817 */ 36321 */
43818private pattern mayInRelationcontainer_attribute_EReference( 36322private pattern mayInstanceOfFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
43819 problem:LogicProblem, interpretation:PartialInterpretation, 36323{ find mustInstanceOfFunctionType_enum(problem,interpretation,element); }
43820 source: DefinedElement, target:DefinedElement) 36324
43821{ 36325//////////
43822 find interpretation(problem,interpretation); 36326// 1.2 Relation Declaration Indexers
43823 // The two endpoint of the link have to exist 36327//////////
43824 find mayExist(problem, interpretation, source);
43825 find mayExist(problem, interpretation, target);
43826 // Type consistency
43827 find mayInstanceOfEReference_class(problem,interpretation,source);
43828 BooleanElement(target);
43829 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
43830 // the upper bound of the multiplicity should be considered.
43831 numberOfExistingReferences == count find mustInRelationcontainer_attribute_EReference(problem,interpretation,source,_);
43832 check(numberOfExistingReferences < 1);
43833} or {
43834 find mustInRelationcontainer_attribute_EReference(problem,interpretation,source,target);
43835}
43836/** 36328/**
43837 * Matcher for detecting tuples t where []resolveProxies attribute EReference(source,target) 36329 * Matcher for detecting tuples t where []interface reference FunctionalElement(source,target)
43838 */ 36330 */
43839private pattern mustInRelationresolveProxies_attribute_EReference( 36331private pattern mustInRelationinterface_reference_FunctionalElement(
43840 problem:LogicProblem, interpretation:PartialInterpretation, 36332 problem:LogicProblem, interpretation:PartialInterpretation,
43841 source: DefinedElement, target:DefinedElement) 36333 source: DefinedElement, target:DefinedElement)
43842{ 36334{
43843 find interpretation(problem,interpretation); 36335 find interpretation(problem,interpretation);
43844 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 36336 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
43845 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"resolveProxies attribute EReference"); 36337 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"interface reference FunctionalElement");
43846 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 36338 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
43847 BinaryElementRelationLink.param1(link,source); 36339 BinaryElementRelationLink.param1(link,source);
43848 BinaryElementRelationLink.param2(link,target); 36340 BinaryElementRelationLink.param2(link,target);
43849} 36341}
43850/** 36342/**
43851 * Matcher for detecting tuples t where <>resolveProxies attribute EReference(source,target) 36343 * Matcher for detecting tuples t where <>interface reference FunctionalElement(source,target)
43852 */ 36344 */
43853private pattern mayInRelationresolveProxies_attribute_EReference( 36345private pattern mayInRelationinterface_reference_FunctionalElement(
43854 problem:LogicProblem, interpretation:PartialInterpretation, 36346 problem:LogicProblem, interpretation:PartialInterpretation,
43855 source: DefinedElement, target:DefinedElement) 36347 source: DefinedElement, target:DefinedElement)
43856{ 36348{
@@ -43859,33 +36351,42 @@ private pattern mayInRelationresolveProxies_attribute_EReference(
43859 find mayExist(problem, interpretation, source); 36351 find mayExist(problem, interpretation, source);
43860 find mayExist(problem, interpretation, target); 36352 find mayExist(problem, interpretation, target);
43861 // Type consistency 36353 // Type consistency
43862 find mayInstanceOfEReference_class(problem,interpretation,source); 36354 find mayInstanceOfFunctionalElement_class(problem,interpretation,source);
43863 BooleanElement(target); 36355 find mayInstanceOfFunctionalInterface_class(problem,interpretation,target);
43864 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 36356 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
43865 // the upper bound of the multiplicity should be considered. 36357 // the upper bound of the multiplicity should be considered.
43866 numberOfExistingReferences == count find mustInRelationresolveProxies_attribute_EReference(problem,interpretation,source,_); 36358 numberOfExistingReferences == count find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,source,_);
43867 check(numberOfExistingReferences < 1); 36359 check(numberOfExistingReferences < 1);
36360 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
36361 // the upper bound of the opposite reference multiplicity should be considered.
36362 numberOfExistingOppositeReferences == count find mustInRelationelement_reference_FunctionalInterface(problem,interpretation,target,_);
36363 check(numberOfExistingOppositeReferences < 1);
36364 // The reference is containment, then a new reference cannot be create if:
36365 // 1. Multiple parents
36366 neg find mustContains4(problem,interpretation,_,target);
36367 // 2. Circle in the containment hierarchy
36368 neg find mustTransitiveContains(source,target);
43868} or { 36369} or {
43869 find mustInRelationresolveProxies_attribute_EReference(problem,interpretation,source,target); 36370 find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,source,target);
43870} 36371}
43871/** 36372/**
43872 * Matcher for detecting tuples t where []changeable attribute EStructuralFeature(source,target) 36373 * Matcher for detecting tuples t where []model reference FunctionalElement(source,target)
43873 */ 36374 */
43874private pattern mustInRelationchangeable_attribute_EStructuralFeature( 36375private pattern mustInRelationmodel_reference_FunctionalElement(
43875 problem:LogicProblem, interpretation:PartialInterpretation, 36376 problem:LogicProblem, interpretation:PartialInterpretation,
43876 source: DefinedElement, target:DefinedElement) 36377 source: DefinedElement, target:DefinedElement)
43877{ 36378{
43878 find interpretation(problem,interpretation); 36379 find interpretation(problem,interpretation);
43879 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 36380 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
43880 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"changeable attribute EStructuralFeature"); 36381 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement");
43881 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 36382 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
43882 BinaryElementRelationLink.param1(link,source); 36383 BinaryElementRelationLink.param1(link,source);
43883 BinaryElementRelationLink.param2(link,target); 36384 BinaryElementRelationLink.param2(link,target);
43884} 36385}
43885/** 36386/**
43886 * Matcher for detecting tuples t where <>changeable attribute EStructuralFeature(source,target) 36387 * Matcher for detecting tuples t where <>model reference FunctionalElement(source,target)
43887 */ 36388 */
43888private pattern mayInRelationchangeable_attribute_EStructuralFeature( 36389private pattern mayInRelationmodel_reference_FunctionalElement(
43889 problem:LogicProblem, interpretation:PartialInterpretation, 36390 problem:LogicProblem, interpretation:PartialInterpretation,
43890 source: DefinedElement, target:DefinedElement) 36391 source: DefinedElement, target:DefinedElement)
43891{ 36392{
@@ -43894,33 +36395,33 @@ private pattern mayInRelationchangeable_attribute_EStructuralFeature(
43894 find mayExist(problem, interpretation, source); 36395 find mayExist(problem, interpretation, source);
43895 find mayExist(problem, interpretation, target); 36396 find mayExist(problem, interpretation, target);
43896 // Type consistency 36397 // Type consistency
43897 find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); 36398 find mayInstanceOfFunctionalElement_class(problem,interpretation,source);
43898 BooleanElement(target); 36399 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,target);
43899 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 36400 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
43900 // the upper bound of the multiplicity should be considered. 36401 // the upper bound of the multiplicity should be considered.
43901 numberOfExistingReferences == count find mustInRelationchangeable_attribute_EStructuralFeature(problem,interpretation,source,_); 36402 numberOfExistingReferences == count find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,source,_);
43902 check(numberOfExistingReferences < 1); 36403 check(numberOfExistingReferences < 1);
43903} or { 36404} or {
43904 find mustInRelationchangeable_attribute_EStructuralFeature(problem,interpretation,source,target); 36405 find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,source,target);
43905} 36406}
43906/** 36407/**
43907 * Matcher for detecting tuples t where []volatile attribute EStructuralFeature(source,target) 36408 * Matcher for detecting tuples t where []parent reference FunctionalElement(source,target)
43908 */ 36409 */
43909private pattern mustInRelationvolatile_attribute_EStructuralFeature( 36410private pattern mustInRelationparent_reference_FunctionalElement(
43910 problem:LogicProblem, interpretation:PartialInterpretation, 36411 problem:LogicProblem, interpretation:PartialInterpretation,
43911 source: DefinedElement, target:DefinedElement) 36412 source: DefinedElement, target:DefinedElement)
43912{ 36413{
43913 find interpretation(problem,interpretation); 36414 find interpretation(problem,interpretation);
43914 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 36415 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
43915 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"volatile attribute EStructuralFeature"); 36416 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"parent reference FunctionalElement");
43916 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 36417 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
43917 BinaryElementRelationLink.param1(link,source); 36418 BinaryElementRelationLink.param1(link,source);
43918 BinaryElementRelationLink.param2(link,target); 36419 BinaryElementRelationLink.param2(link,target);
43919} 36420}
43920/** 36421/**
43921 * Matcher for detecting tuples t where <>volatile attribute EStructuralFeature(source,target) 36422 * Matcher for detecting tuples t where <>parent reference FunctionalElement(source,target)
43922 */ 36423 */
43923private pattern mayInRelationvolatile_attribute_EStructuralFeature( 36424private pattern mayInRelationparent_reference_FunctionalElement(
43924 problem:LogicProblem, interpretation:PartialInterpretation, 36425 problem:LogicProblem, interpretation:PartialInterpretation,
43925 source: DefinedElement, target:DefinedElement) 36426 source: DefinedElement, target:DefinedElement)
43926{ 36427{
@@ -43929,33 +36430,38 @@ private pattern mayInRelationvolatile_attribute_EStructuralFeature(
43929 find mayExist(problem, interpretation, source); 36430 find mayExist(problem, interpretation, source);
43930 find mayExist(problem, interpretation, target); 36431 find mayExist(problem, interpretation, target);
43931 // Type consistency 36432 // Type consistency
43932 find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); 36433 find mayInstanceOfFunctionalElement_class(problem,interpretation,source);
43933 BooleanElement(target); 36434 find mayInstanceOfFunction_class(problem,interpretation,target);
43934 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 36435 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
43935 // the upper bound of the multiplicity should be considered. 36436 // the upper bound of the multiplicity should be considered.
43936 numberOfExistingReferences == count find mustInRelationvolatile_attribute_EStructuralFeature(problem,interpretation,source,_); 36437 numberOfExistingReferences == count find mustInRelationparent_reference_FunctionalElement(problem,interpretation,source,_);
43937 check(numberOfExistingReferences < 1); 36438 check(numberOfExistingReferences < 1);
36439 // The eOpposite of the reference is containment, then a referene cannot be created if
36440 // 1. Multiple parents
36441 neg find mustContains4(problem,interpretation,source,_);
36442 // 2. Circle in the containment hierarchy
36443 neg find mustTransitiveContains(source,target);
43938} or { 36444} or {
43939 find mustInRelationvolatile_attribute_EStructuralFeature(problem,interpretation,source,target); 36445 find mustInRelationparent_reference_FunctionalElement(problem,interpretation,source,target);
43940} 36446}
43941/** 36447/**
43942 * Matcher for detecting tuples t where []transient attribute EStructuralFeature(source,target) 36448 * Matcher for detecting tuples t where []rootElements reference FunctionalArchitectureModel(source,target)
43943 */ 36449 */
43944private pattern mustInRelationtransient_attribute_EStructuralFeature( 36450private pattern mustInRelationrootElements_reference_FunctionalArchitectureModel(
43945 problem:LogicProblem, interpretation:PartialInterpretation, 36451 problem:LogicProblem, interpretation:PartialInterpretation,
43946 source: DefinedElement, target:DefinedElement) 36452 source: DefinedElement, target:DefinedElement)
43947{ 36453{
43948 find interpretation(problem,interpretation); 36454 find interpretation(problem,interpretation);
43949 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 36455 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
43950 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"transient attribute EStructuralFeature"); 36456 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"rootElements reference FunctionalArchitectureModel");
43951 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 36457 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
43952 BinaryElementRelationLink.param1(link,source); 36458 BinaryElementRelationLink.param1(link,source);
43953 BinaryElementRelationLink.param2(link,target); 36459 BinaryElementRelationLink.param2(link,target);
43954} 36460}
43955/** 36461/**
43956 * Matcher for detecting tuples t where <>transient attribute EStructuralFeature(source,target) 36462 * Matcher for detecting tuples t where <>rootElements reference FunctionalArchitectureModel(source,target)
43957 */ 36463 */
43958private pattern mayInRelationtransient_attribute_EStructuralFeature( 36464private pattern mayInRelationrootElements_reference_FunctionalArchitectureModel(
43959 problem:LogicProblem, interpretation:PartialInterpretation, 36465 problem:LogicProblem, interpretation:PartialInterpretation,
43960 source: DefinedElement, target:DefinedElement) 36466 source: DefinedElement, target:DefinedElement)
43961{ 36467{
@@ -43964,33 +36470,34 @@ private pattern mayInRelationtransient_attribute_EStructuralFeature(
43964 find mayExist(problem, interpretation, source); 36470 find mayExist(problem, interpretation, source);
43965 find mayExist(problem, interpretation, target); 36471 find mayExist(problem, interpretation, target);
43966 // Type consistency 36472 // Type consistency
43967 find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); 36473 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,source);
43968 BooleanElement(target); 36474 find mayInstanceOfFunctionalElement_class(problem,interpretation,target);
43969 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 36475 // The reference is containment, then a new reference cannot be create if:
43970 // the upper bound of the multiplicity should be considered. 36476 // 1. Multiple parents
43971 numberOfExistingReferences == count find mustInRelationtransient_attribute_EStructuralFeature(problem,interpretation,source,_); 36477 neg find mustContains4(problem,interpretation,_,target);
43972 check(numberOfExistingReferences < 1); 36478 // 2. Circle in the containment hierarchy
36479 neg find mustTransitiveContains(source,target);
43973} or { 36480} or {
43974 find mustInRelationtransient_attribute_EStructuralFeature(problem,interpretation,source,target); 36481 find mustInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,source,target);
43975} 36482}
43976/** 36483/**
43977 * Matcher for detecting tuples t where []defaultValueLiteral attribute EStructuralFeature(source,target) 36484 * Matcher for detecting tuples t where []subElements reference Function(source,target)
43978 */ 36485 */
43979private pattern mustInRelationdefaultValueLiteral_attribute_EStructuralFeature( 36486private pattern mustInRelationsubElements_reference_Function(
43980 problem:LogicProblem, interpretation:PartialInterpretation, 36487 problem:LogicProblem, interpretation:PartialInterpretation,
43981 source: DefinedElement, target:DefinedElement) 36488 source: DefinedElement, target:DefinedElement)
43982{ 36489{
43983 find interpretation(problem,interpretation); 36490 find interpretation(problem,interpretation);
43984 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 36491 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
43985 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"defaultValueLiteral attribute EStructuralFeature"); 36492 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"subElements reference Function");
43986 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 36493 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
43987 BinaryElementRelationLink.param1(link,source); 36494 BinaryElementRelationLink.param1(link,source);
43988 BinaryElementRelationLink.param2(link,target); 36495 BinaryElementRelationLink.param2(link,target);
43989} 36496}
43990/** 36497/**
43991 * Matcher for detecting tuples t where <>defaultValueLiteral attribute EStructuralFeature(source,target) 36498 * Matcher for detecting tuples t where <>subElements reference Function(source,target)
43992 */ 36499 */
43993private pattern mayInRelationdefaultValueLiteral_attribute_EStructuralFeature( 36500private pattern mayInRelationsubElements_reference_Function(
43994 problem:LogicProblem, interpretation:PartialInterpretation, 36501 problem:LogicProblem, interpretation:PartialInterpretation,
43995 source: DefinedElement, target:DefinedElement) 36502 source: DefinedElement, target:DefinedElement)
43996{ 36503{
@@ -43999,33 +36506,38 @@ private pattern mayInRelationdefaultValueLiteral_attribute_EStructuralFeature(
43999 find mayExist(problem, interpretation, source); 36506 find mayExist(problem, interpretation, source);
44000 find mayExist(problem, interpretation, target); 36507 find mayExist(problem, interpretation, target);
44001 // Type consistency 36508 // Type consistency
44002 find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); 36509 find mayInstanceOfFunction_class(problem,interpretation,source);
44003 StringElement(target); 36510 find mayInstanceOfFunctionalElement_class(problem,interpretation,target);
44004 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 36511 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
44005 // the upper bound of the multiplicity should be considered. 36512 // the upper bound of the opposite reference multiplicity should be considered.
44006 numberOfExistingReferences == count find mustInRelationdefaultValueLiteral_attribute_EStructuralFeature(problem,interpretation,source,_); 36513 numberOfExistingOppositeReferences == count find mustInRelationparent_reference_FunctionalElement(problem,interpretation,target,_);
44007 check(numberOfExistingReferences < 1); 36514 check(numberOfExistingOppositeReferences < 1);
36515 // The reference is containment, then a new reference cannot be create if:
36516 // 1. Multiple parents
36517 neg find mustContains4(problem,interpretation,_,target);
36518 // 2. Circle in the containment hierarchy
36519 neg find mustTransitiveContains(source,target);
44008} or { 36520} or {
44009 find mustInRelationdefaultValueLiteral_attribute_EStructuralFeature(problem,interpretation,source,target); 36521 find mustInRelationsubElements_reference_Function(problem,interpretation,source,target);
44010} 36522}
44011/** 36523/**
44012 * Matcher for detecting tuples t where []unsettable attribute EStructuralFeature(source,target) 36524 * Matcher for detecting tuples t where []data reference FAMTerminator(source,target)
44013 */ 36525 */
44014private pattern mustInRelationunsettable_attribute_EStructuralFeature( 36526private pattern mustInRelationdata_reference_FAMTerminator(
44015 problem:LogicProblem, interpretation:PartialInterpretation, 36527 problem:LogicProblem, interpretation:PartialInterpretation,
44016 source: DefinedElement, target:DefinedElement) 36528 source: DefinedElement, target:DefinedElement)
44017{ 36529{
44018 find interpretation(problem,interpretation); 36530 find interpretation(problem,interpretation);
44019 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 36531 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
44020 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"unsettable attribute EStructuralFeature"); 36532 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"data reference FAMTerminator");
44021 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 36533 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
44022 BinaryElementRelationLink.param1(link,source); 36534 BinaryElementRelationLink.param1(link,source);
44023 BinaryElementRelationLink.param2(link,target); 36535 BinaryElementRelationLink.param2(link,target);
44024} 36536}
44025/** 36537/**
44026 * Matcher for detecting tuples t where <>unsettable attribute EStructuralFeature(source,target) 36538 * Matcher for detecting tuples t where <>data reference FAMTerminator(source,target)
44027 */ 36539 */
44028private pattern mayInRelationunsettable_attribute_EStructuralFeature( 36540private pattern mayInRelationdata_reference_FAMTerminator(
44029 problem:LogicProblem, interpretation:PartialInterpretation, 36541 problem:LogicProblem, interpretation:PartialInterpretation,
44030 source: DefinedElement, target:DefinedElement) 36542 source: DefinedElement, target:DefinedElement)
44031{ 36543{
@@ -44034,33 +36546,42 @@ private pattern mayInRelationunsettable_attribute_EStructuralFeature(
44034 find mayExist(problem, interpretation, source); 36546 find mayExist(problem, interpretation, source);
44035 find mayExist(problem, interpretation, target); 36547 find mayExist(problem, interpretation, target);
44036 // Type consistency 36548 // Type consistency
44037 find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); 36549 find mayInstanceOfFAMTerminator_class(problem,interpretation,source);
44038 BooleanElement(target); 36550 find mayInstanceOfFunctionalData_class(problem,interpretation,target);
44039 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 36551 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
44040 // the upper bound of the multiplicity should be considered. 36552 // the upper bound of the multiplicity should be considered.
44041 numberOfExistingReferences == count find mustInRelationunsettable_attribute_EStructuralFeature(problem,interpretation,source,_); 36553 numberOfExistingReferences == count find mustInRelationdata_reference_FAMTerminator(problem,interpretation,source,_);
44042 check(numberOfExistingReferences < 1); 36554 check(numberOfExistingReferences < 1);
36555 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
36556 // the upper bound of the opposite reference multiplicity should be considered.
36557 numberOfExistingOppositeReferences == count find mustInRelationterminator_reference_FunctionalData(problem,interpretation,target,_);
36558 check(numberOfExistingOppositeReferences < 1);
36559 // The eOpposite of the reference is containment, then a referene cannot be created if
36560 // 1. Multiple parents
36561 neg find mustContains4(problem,interpretation,source,_);
36562 // 2. Circle in the containment hierarchy
36563 neg find mustTransitiveContains(source,target);
44043} or { 36564} or {
44044 find mustInRelationunsettable_attribute_EStructuralFeature(problem,interpretation,source,target); 36565 find mustInRelationdata_reference_FAMTerminator(problem,interpretation,source,target);
44045} 36566}
44046/** 36567/**
44047 * Matcher for detecting tuples t where []derived attribute EStructuralFeature(source,target) 36568 * Matcher for detecting tuples t where []from reference InformationLink(source,target)
44048 */ 36569 */
44049private pattern mustInRelationderived_attribute_EStructuralFeature( 36570private pattern mustInRelationfrom_reference_InformationLink(
44050 problem:LogicProblem, interpretation:PartialInterpretation, 36571 problem:LogicProblem, interpretation:PartialInterpretation,
44051 source: DefinedElement, target:DefinedElement) 36572 source: DefinedElement, target:DefinedElement)
44052{ 36573{
44053 find interpretation(problem,interpretation); 36574 find interpretation(problem,interpretation);
44054 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 36575 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
44055 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"derived attribute EStructuralFeature"); 36576 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"from reference InformationLink");
44056 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 36577 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
44057 BinaryElementRelationLink.param1(link,source); 36578 BinaryElementRelationLink.param1(link,source);
44058 BinaryElementRelationLink.param2(link,target); 36579 BinaryElementRelationLink.param2(link,target);
44059} 36580}
44060/** 36581/**
44061 * Matcher for detecting tuples t where <>derived attribute EStructuralFeature(source,target) 36582 * Matcher for detecting tuples t where <>from reference InformationLink(source,target)
44062 */ 36583 */
44063private pattern mayInRelationderived_attribute_EStructuralFeature( 36584private pattern mayInRelationfrom_reference_InformationLink(
44064 problem:LogicProblem, interpretation:PartialInterpretation, 36585 problem:LogicProblem, interpretation:PartialInterpretation,
44065 source: DefinedElement, target:DefinedElement) 36586 source: DefinedElement, target:DefinedElement)
44066{ 36587{
@@ -44069,33 +36590,38 @@ private pattern mayInRelationderived_attribute_EStructuralFeature(
44069 find mayExist(problem, interpretation, source); 36590 find mayExist(problem, interpretation, source);
44070 find mayExist(problem, interpretation, target); 36591 find mayExist(problem, interpretation, target);
44071 // Type consistency 36592 // Type consistency
44072 find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); 36593 find mayInstanceOfInformationLink_class(problem,interpretation,source);
44073 BooleanElement(target); 36594 find mayInstanceOfFunctionalOutput_class(problem,interpretation,target);
44074 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 36595 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
44075 // the upper bound of the multiplicity should be considered. 36596 // the upper bound of the multiplicity should be considered.
44076 numberOfExistingReferences == count find mustInRelationderived_attribute_EStructuralFeature(problem,interpretation,source,_); 36597 numberOfExistingReferences == count find mustInRelationfrom_reference_InformationLink(problem,interpretation,source,_);
44077 check(numberOfExistingReferences < 1); 36598 check(numberOfExistingReferences < 1);
36599 // The eOpposite of the reference is containment, then a referene cannot be created if
36600 // 1. Multiple parents
36601 neg find mustContains4(problem,interpretation,source,_);
36602 // 2. Circle in the containment hierarchy
36603 neg find mustTransitiveContains(source,target);
44078} or { 36604} or {
44079 find mustInRelationderived_attribute_EStructuralFeature(problem,interpretation,source,target); 36605 find mustInRelationfrom_reference_InformationLink(problem,interpretation,source,target);
44080} 36606}
44081/** 36607/**
44082 * Matcher for detecting tuples t where []ordered attribute ETypedElement(source,target) 36608 * Matcher for detecting tuples t where []to reference InformationLink(source,target)
44083 */ 36609 */
44084private pattern mustInRelationordered_attribute_ETypedElement( 36610private pattern mustInRelationto_reference_InformationLink(
44085 problem:LogicProblem, interpretation:PartialInterpretation, 36611 problem:LogicProblem, interpretation:PartialInterpretation,
44086 source: DefinedElement, target:DefinedElement) 36612 source: DefinedElement, target:DefinedElement)
44087{ 36613{
44088 find interpretation(problem,interpretation); 36614 find interpretation(problem,interpretation);
44089 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 36615 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
44090 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"ordered attribute ETypedElement"); 36616 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"to reference InformationLink");
44091 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 36617 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
44092 BinaryElementRelationLink.param1(link,source); 36618 BinaryElementRelationLink.param1(link,source);
44093 BinaryElementRelationLink.param2(link,target); 36619 BinaryElementRelationLink.param2(link,target);
44094} 36620}
44095/** 36621/**
44096 * Matcher for detecting tuples t where <>ordered attribute ETypedElement(source,target) 36622 * Matcher for detecting tuples t where <>to reference InformationLink(source,target)
44097 */ 36623 */
44098private pattern mayInRelationordered_attribute_ETypedElement( 36624private pattern mayInRelationto_reference_InformationLink(
44099 problem:LogicProblem, interpretation:PartialInterpretation, 36625 problem:LogicProblem, interpretation:PartialInterpretation,
44100 source: DefinedElement, target:DefinedElement) 36626 source: DefinedElement, target:DefinedElement)
44101{ 36627{
@@ -44104,33 +36630,33 @@ private pattern mayInRelationordered_attribute_ETypedElement(
44104 find mayExist(problem, interpretation, source); 36630 find mayExist(problem, interpretation, source);
44105 find mayExist(problem, interpretation, target); 36631 find mayExist(problem, interpretation, target);
44106 // Type consistency 36632 // Type consistency
44107 find mayInstanceOfETypedElement_class(problem,interpretation,source); 36633 find mayInstanceOfInformationLink_class(problem,interpretation,source);
44108 BooleanElement(target); 36634 find mayInstanceOfFunctionalInput_class(problem,interpretation,target);
44109 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 36635 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
44110 // the upper bound of the multiplicity should be considered. 36636 // the upper bound of the multiplicity should be considered.
44111 numberOfExistingReferences == count find mustInRelationordered_attribute_ETypedElement(problem,interpretation,source,_); 36637 numberOfExistingReferences == count find mustInRelationto_reference_InformationLink(problem,interpretation,source,_);
44112 check(numberOfExistingReferences < 1); 36638 check(numberOfExistingReferences < 1);
44113} or { 36639} or {
44114 find mustInRelationordered_attribute_ETypedElement(problem,interpretation,source,target); 36640 find mustInRelationto_reference_InformationLink(problem,interpretation,source,target);
44115} 36641}
44116/** 36642/**
44117 * Matcher for detecting tuples t where []unique attribute ETypedElement(source,target) 36643 * Matcher for detecting tuples t where []data reference FunctionalInterface(source,target)
44118 */ 36644 */
44119private pattern mustInRelationunique_attribute_ETypedElement( 36645private pattern mustInRelationdata_reference_FunctionalInterface(
44120 problem:LogicProblem, interpretation:PartialInterpretation, 36646 problem:LogicProblem, interpretation:PartialInterpretation,
44121 source: DefinedElement, target:DefinedElement) 36647 source: DefinedElement, target:DefinedElement)
44122{ 36648{
44123 find interpretation(problem,interpretation); 36649 find interpretation(problem,interpretation);
44124 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 36650 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
44125 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"unique attribute ETypedElement"); 36651 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"data reference FunctionalInterface");
44126 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 36652 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
44127 BinaryElementRelationLink.param1(link,source); 36653 BinaryElementRelationLink.param1(link,source);
44128 BinaryElementRelationLink.param2(link,target); 36654 BinaryElementRelationLink.param2(link,target);
44129} 36655}
44130/** 36656/**
44131 * Matcher for detecting tuples t where <>unique attribute ETypedElement(source,target) 36657 * Matcher for detecting tuples t where <>data reference FunctionalInterface(source,target)
44132 */ 36658 */
44133private pattern mayInRelationunique_attribute_ETypedElement( 36659private pattern mayInRelationdata_reference_FunctionalInterface(
44134 problem:LogicProblem, interpretation:PartialInterpretation, 36660 problem:LogicProblem, interpretation:PartialInterpretation,
44135 source: DefinedElement, target:DefinedElement) 36661 source: DefinedElement, target:DefinedElement)
44136{ 36662{
@@ -44139,33 +36665,38 @@ private pattern mayInRelationunique_attribute_ETypedElement(
44139 find mayExist(problem, interpretation, source); 36665 find mayExist(problem, interpretation, source);
44140 find mayExist(problem, interpretation, target); 36666 find mayExist(problem, interpretation, target);
44141 // Type consistency 36667 // Type consistency
44142 find mayInstanceOfETypedElement_class(problem,interpretation,source); 36668 find mayInstanceOfFunctionalInterface_class(problem,interpretation,source);
44143 BooleanElement(target); 36669 find mayInstanceOfFunctionalData_class(problem,interpretation,target);
44144 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 36670 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
44145 // the upper bound of the multiplicity should be considered. 36671 // the upper bound of the opposite reference multiplicity should be considered.
44146 numberOfExistingReferences == count find mustInRelationunique_attribute_ETypedElement(problem,interpretation,source,_); 36672 numberOfExistingOppositeReferences == count find mustInRelationinterface_reference_FunctionalData(problem,interpretation,target,_);
44147 check(numberOfExistingReferences < 1); 36673 check(numberOfExistingOppositeReferences < 1);
36674 // The reference is containment, then a new reference cannot be create if:
36675 // 1. Multiple parents
36676 neg find mustContains4(problem,interpretation,_,target);
36677 // 2. Circle in the containment hierarchy
36678 neg find mustTransitiveContains(source,target);
44148} or { 36679} or {
44149 find mustInRelationunique_attribute_ETypedElement(problem,interpretation,source,target); 36680 find mustInRelationdata_reference_FunctionalInterface(problem,interpretation,source,target);
44150} 36681}
44151/** 36682/**
44152 * Matcher for detecting tuples t where []lowerBound attribute ETypedElement(source,target) 36683 * Matcher for detecting tuples t where []element reference FunctionalInterface(source,target)
44153 */ 36684 */
44154private pattern mustInRelationlowerBound_attribute_ETypedElement( 36685private pattern mustInRelationelement_reference_FunctionalInterface(
44155 problem:LogicProblem, interpretation:PartialInterpretation, 36686 problem:LogicProblem, interpretation:PartialInterpretation,
44156 source: DefinedElement, target:DefinedElement) 36687 source: DefinedElement, target:DefinedElement)
44157{ 36688{
44158 find interpretation(problem,interpretation); 36689 find interpretation(problem,interpretation);
44159 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 36690 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
44160 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"lowerBound attribute ETypedElement"); 36691 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"element reference FunctionalInterface");
44161 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 36692 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
44162 BinaryElementRelationLink.param1(link,source); 36693 BinaryElementRelationLink.param1(link,source);
44163 BinaryElementRelationLink.param2(link,target); 36694 BinaryElementRelationLink.param2(link,target);
44164} 36695}
44165/** 36696/**
44166 * Matcher for detecting tuples t where <>lowerBound attribute ETypedElement(source,target) 36697 * Matcher for detecting tuples t where <>element reference FunctionalInterface(source,target)
44167 */ 36698 */
44168private pattern mayInRelationlowerBound_attribute_ETypedElement( 36699private pattern mayInRelationelement_reference_FunctionalInterface(
44169 problem:LogicProblem, interpretation:PartialInterpretation, 36700 problem:LogicProblem, interpretation:PartialInterpretation,
44170 source: DefinedElement, target:DefinedElement) 36701 source: DefinedElement, target:DefinedElement)
44171{ 36702{
@@ -44174,33 +36705,42 @@ private pattern mayInRelationlowerBound_attribute_ETypedElement(
44174 find mayExist(problem, interpretation, source); 36705 find mayExist(problem, interpretation, source);
44175 find mayExist(problem, interpretation, target); 36706 find mayExist(problem, interpretation, target);
44176 // Type consistency 36707 // Type consistency
44177 find mayInstanceOfETypedElement_class(problem,interpretation,source); 36708 find mayInstanceOfFunctionalInterface_class(problem,interpretation,source);
44178 IntegerElement(target); 36709 find mayInstanceOfFunctionalElement_class(problem,interpretation,target);
44179 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 36710 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
44180 // the upper bound of the multiplicity should be considered. 36711 // the upper bound of the multiplicity should be considered.
44181 numberOfExistingReferences == count find mustInRelationlowerBound_attribute_ETypedElement(problem,interpretation,source,_); 36712 numberOfExistingReferences == count find mustInRelationelement_reference_FunctionalInterface(problem,interpretation,source,_);
44182 check(numberOfExistingReferences < 1); 36713 check(numberOfExistingReferences < 1);
36714 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
36715 // the upper bound of the opposite reference multiplicity should be considered.
36716 numberOfExistingOppositeReferences == count find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,target,_);
36717 check(numberOfExistingOppositeReferences < 1);
36718 // The eOpposite of the reference is containment, then a referene cannot be created if
36719 // 1. Multiple parents
36720 neg find mustContains4(problem,interpretation,source,_);
36721 // 2. Circle in the containment hierarchy
36722 neg find mustTransitiveContains(source,target);
44183} or { 36723} or {
44184 find mustInRelationlowerBound_attribute_ETypedElement(problem,interpretation,source,target); 36724 find mustInRelationelement_reference_FunctionalInterface(problem,interpretation,source,target);
44185} 36725}
44186/** 36726/**
44187 * Matcher for detecting tuples t where []upperBound attribute ETypedElement(source,target) 36727 * Matcher for detecting tuples t where []IncomingLinks reference FunctionalInput(source,target)
44188 */ 36728 */
44189private pattern mustInRelationupperBound_attribute_ETypedElement( 36729private pattern mustInRelationIncomingLinks_reference_FunctionalInput(
44190 problem:LogicProblem, interpretation:PartialInterpretation, 36730 problem:LogicProblem, interpretation:PartialInterpretation,
44191 source: DefinedElement, target:DefinedElement) 36731 source: DefinedElement, target:DefinedElement)
44192{ 36732{
44193 find interpretation(problem,interpretation); 36733 find interpretation(problem,interpretation);
44194 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 36734 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
44195 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"upperBound attribute ETypedElement"); 36735 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"IncomingLinks reference FunctionalInput");
44196 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 36736 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
44197 BinaryElementRelationLink.param1(link,source); 36737 BinaryElementRelationLink.param1(link,source);
44198 BinaryElementRelationLink.param2(link,target); 36738 BinaryElementRelationLink.param2(link,target);
44199} 36739}
44200/** 36740/**
44201 * Matcher for detecting tuples t where <>upperBound attribute ETypedElement(source,target) 36741 * Matcher for detecting tuples t where <>IncomingLinks reference FunctionalInput(source,target)
44202 */ 36742 */
44203private pattern mayInRelationupperBound_attribute_ETypedElement( 36743private pattern mayInRelationIncomingLinks_reference_FunctionalInput(
44204 problem:LogicProblem, interpretation:PartialInterpretation, 36744 problem:LogicProblem, interpretation:PartialInterpretation,
44205 source: DefinedElement, target:DefinedElement) 36745 source: DefinedElement, target:DefinedElement)
44206{ 36746{
@@ -44209,33 +36749,33 @@ private pattern mayInRelationupperBound_attribute_ETypedElement(
44209 find mayExist(problem, interpretation, source); 36749 find mayExist(problem, interpretation, source);
44210 find mayExist(problem, interpretation, target); 36750 find mayExist(problem, interpretation, target);
44211 // Type consistency 36751 // Type consistency
44212 find mayInstanceOfETypedElement_class(problem,interpretation,source); 36752 find mayInstanceOfFunctionalInput_class(problem,interpretation,source);
44213 IntegerElement(target); 36753 find mayInstanceOfInformationLink_class(problem,interpretation,target);
44214 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 36754 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
44215 // the upper bound of the multiplicity should be considered. 36755 // the upper bound of the opposite reference multiplicity should be considered.
44216 numberOfExistingReferences == count find mustInRelationupperBound_attribute_ETypedElement(problem,interpretation,source,_); 36756 numberOfExistingOppositeReferences == count find mustInRelationto_reference_InformationLink(problem,interpretation,target,_);
44217 check(numberOfExistingReferences < 1); 36757 check(numberOfExistingOppositeReferences < 1);
44218} or { 36758} or {
44219 find mustInRelationupperBound_attribute_ETypedElement(problem,interpretation,source,target); 36759 find mustInRelationIncomingLinks_reference_FunctionalInput(problem,interpretation,source,target);
44220} 36760}
44221/** 36761/**
44222 * Matcher for detecting tuples t where []many attribute ETypedElement(source,target) 36762 * Matcher for detecting tuples t where []outgoingLinks reference FunctionalOutput(source,target)
44223 */ 36763 */
44224private pattern mustInRelationmany_attribute_ETypedElement( 36764private pattern mustInRelationoutgoingLinks_reference_FunctionalOutput(
44225 problem:LogicProblem, interpretation:PartialInterpretation, 36765 problem:LogicProblem, interpretation:PartialInterpretation,
44226 source: DefinedElement, target:DefinedElement) 36766 source: DefinedElement, target:DefinedElement)
44227{ 36767{
44228 find interpretation(problem,interpretation); 36768 find interpretation(problem,interpretation);
44229 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 36769 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
44230 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"many attribute ETypedElement"); 36770 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"outgoingLinks reference FunctionalOutput");
44231 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 36771 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
44232 BinaryElementRelationLink.param1(link,source); 36772 BinaryElementRelationLink.param1(link,source);
44233 BinaryElementRelationLink.param2(link,target); 36773 BinaryElementRelationLink.param2(link,target);
44234} 36774}
44235/** 36775/**
44236 * Matcher for detecting tuples t where <>many attribute ETypedElement(source,target) 36776 * Matcher for detecting tuples t where <>outgoingLinks reference FunctionalOutput(source,target)
44237 */ 36777 */
44238private pattern mayInRelationmany_attribute_ETypedElement( 36778private pattern mayInRelationoutgoingLinks_reference_FunctionalOutput(
44239 problem:LogicProblem, interpretation:PartialInterpretation, 36779 problem:LogicProblem, interpretation:PartialInterpretation,
44240 source: DefinedElement, target:DefinedElement) 36780 source: DefinedElement, target:DefinedElement)
44241{ 36781{
@@ -44244,33 +36784,38 @@ private pattern mayInRelationmany_attribute_ETypedElement(
44244 find mayExist(problem, interpretation, source); 36784 find mayExist(problem, interpretation, source);
44245 find mayExist(problem, interpretation, target); 36785 find mayExist(problem, interpretation, target);
44246 // Type consistency 36786 // Type consistency
44247 find mayInstanceOfETypedElement_class(problem,interpretation,source); 36787 find mayInstanceOfFunctionalOutput_class(problem,interpretation,source);
44248 BooleanElement(target); 36788 find mayInstanceOfInformationLink_class(problem,interpretation,target);
44249 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 36789 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
44250 // the upper bound of the multiplicity should be considered. 36790 // the upper bound of the opposite reference multiplicity should be considered.
44251 numberOfExistingReferences == count find mustInRelationmany_attribute_ETypedElement(problem,interpretation,source,_); 36791 numberOfExistingOppositeReferences == count find mustInRelationfrom_reference_InformationLink(problem,interpretation,target,_);
44252 check(numberOfExistingReferences < 1); 36792 check(numberOfExistingOppositeReferences < 1);
36793 // The reference is containment, then a new reference cannot be create if:
36794 // 1. Multiple parents
36795 neg find mustContains4(problem,interpretation,_,target);
36796 // 2. Circle in the containment hierarchy
36797 neg find mustTransitiveContains(source,target);
44253} or { 36798} or {
44254 find mustInRelationmany_attribute_ETypedElement(problem,interpretation,source,target); 36799 find mustInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,source,target);
44255} 36800}
44256/** 36801/**
44257 * Matcher for detecting tuples t where []required attribute ETypedElement(source,target) 36802 * Matcher for detecting tuples t where []terminator reference FunctionalData(source,target)
44258 */ 36803 */
44259private pattern mustInRelationrequired_attribute_ETypedElement( 36804private pattern mustInRelationterminator_reference_FunctionalData(
44260 problem:LogicProblem, interpretation:PartialInterpretation, 36805 problem:LogicProblem, interpretation:PartialInterpretation,
44261 source: DefinedElement, target:DefinedElement) 36806 source: DefinedElement, target:DefinedElement)
44262{ 36807{
44263 find interpretation(problem,interpretation); 36808 find interpretation(problem,interpretation);
44264 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 36809 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
44265 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"required attribute ETypedElement"); 36810 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"terminator reference FunctionalData");
44266 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 36811 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
44267 BinaryElementRelationLink.param1(link,source); 36812 BinaryElementRelationLink.param1(link,source);
44268 BinaryElementRelationLink.param2(link,target); 36813 BinaryElementRelationLink.param2(link,target);
44269} 36814}
44270/** 36815/**
44271 * Matcher for detecting tuples t where <>required attribute ETypedElement(source,target) 36816 * Matcher for detecting tuples t where <>terminator reference FunctionalData(source,target)
44272 */ 36817 */
44273private pattern mayInRelationrequired_attribute_ETypedElement( 36818private pattern mayInRelationterminator_reference_FunctionalData(
44274 problem:LogicProblem, interpretation:PartialInterpretation, 36819 problem:LogicProblem, interpretation:PartialInterpretation,
44275 source: DefinedElement, target:DefinedElement) 36820 source: DefinedElement, target:DefinedElement)
44276{ 36821{
@@ -44279,33 +36824,42 @@ private pattern mayInRelationrequired_attribute_ETypedElement(
44279 find mayExist(problem, interpretation, source); 36824 find mayExist(problem, interpretation, source);
44280 find mayExist(problem, interpretation, target); 36825 find mayExist(problem, interpretation, target);
44281 // Type consistency 36826 // Type consistency
44282 find mayInstanceOfETypedElement_class(problem,interpretation,source); 36827 find mayInstanceOfFunctionalData_class(problem,interpretation,source);
44283 BooleanElement(target); 36828 find mayInstanceOfFAMTerminator_class(problem,interpretation,target);
44284 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 36829 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
44285 // the upper bound of the multiplicity should be considered. 36830 // the upper bound of the multiplicity should be considered.
44286 numberOfExistingReferences == count find mustInRelationrequired_attribute_ETypedElement(problem,interpretation,source,_); 36831 numberOfExistingReferences == count find mustInRelationterminator_reference_FunctionalData(problem,interpretation,source,_);
44287 check(numberOfExistingReferences < 1); 36832 check(numberOfExistingReferences < 1);
36833 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
36834 // the upper bound of the opposite reference multiplicity should be considered.
36835 numberOfExistingOppositeReferences == count find mustInRelationdata_reference_FAMTerminator(problem,interpretation,target,_);
36836 check(numberOfExistingOppositeReferences < 1);
36837 // The reference is containment, then a new reference cannot be create if:
36838 // 1. Multiple parents
36839 neg find mustContains4(problem,interpretation,_,target);
36840 // 2. Circle in the containment hierarchy
36841 neg find mustTransitiveContains(source,target);
44288} or { 36842} or {
44289 find mustInRelationrequired_attribute_ETypedElement(problem,interpretation,source,target); 36843 find mustInRelationterminator_reference_FunctionalData(problem,interpretation,source,target);
44290} 36844}
44291/** 36845/**
44292 * Matcher for detecting tuples t where []key attribute EStringToStringMapEntry(source,target) 36846 * Matcher for detecting tuples t where []interface reference FunctionalData(source,target)
44293 */ 36847 */
44294private pattern mustInRelationkey_attribute_EStringToStringMapEntry( 36848private pattern mustInRelationinterface_reference_FunctionalData(
44295 problem:LogicProblem, interpretation:PartialInterpretation, 36849 problem:LogicProblem, interpretation:PartialInterpretation,
44296 source: DefinedElement, target:DefinedElement) 36850 source: DefinedElement, target:DefinedElement)
44297{ 36851{
44298 find interpretation(problem,interpretation); 36852 find interpretation(problem,interpretation);
44299 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 36853 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
44300 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"key attribute EStringToStringMapEntry"); 36854 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"interface reference FunctionalData");
44301 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 36855 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
44302 BinaryElementRelationLink.param1(link,source); 36856 BinaryElementRelationLink.param1(link,source);
44303 BinaryElementRelationLink.param2(link,target); 36857 BinaryElementRelationLink.param2(link,target);
44304} 36858}
44305/** 36859/**
44306 * Matcher for detecting tuples t where <>key attribute EStringToStringMapEntry(source,target) 36860 * Matcher for detecting tuples t where <>interface reference FunctionalData(source,target)
44307 */ 36861 */
44308private pattern mayInRelationkey_attribute_EStringToStringMapEntry( 36862private pattern mayInRelationinterface_reference_FunctionalData(
44309 problem:LogicProblem, interpretation:PartialInterpretation, 36863 problem:LogicProblem, interpretation:PartialInterpretation,
44310 source: DefinedElement, target:DefinedElement) 36864 source: DefinedElement, target:DefinedElement)
44311{ 36865{
@@ -44314,33 +36868,38 @@ private pattern mayInRelationkey_attribute_EStringToStringMapEntry(
44314 find mayExist(problem, interpretation, source); 36868 find mayExist(problem, interpretation, source);
44315 find mayExist(problem, interpretation, target); 36869 find mayExist(problem, interpretation, target);
44316 // Type consistency 36870 // Type consistency
44317 find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,source); 36871 find mayInstanceOfFunctionalData_class(problem,interpretation,source);
44318 StringElement(target); 36872 find mayInstanceOfFunctionalInterface_class(problem,interpretation,target);
44319 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 36873 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
44320 // the upper bound of the multiplicity should be considered. 36874 // the upper bound of the multiplicity should be considered.
44321 numberOfExistingReferences == count find mustInRelationkey_attribute_EStringToStringMapEntry(problem,interpretation,source,_); 36875 numberOfExistingReferences == count find mustInRelationinterface_reference_FunctionalData(problem,interpretation,source,_);
44322 check(numberOfExistingReferences < 1); 36876 check(numberOfExistingReferences < 1);
36877 // The eOpposite of the reference is containment, then a referene cannot be created if
36878 // 1. Multiple parents
36879 neg find mustContains4(problem,interpretation,source,_);
36880 // 2. Circle in the containment hierarchy
36881 neg find mustTransitiveContains(source,target);
44323} or { 36882} or {
44324 find mustInRelationkey_attribute_EStringToStringMapEntry(problem,interpretation,source,target); 36883 find mustInRelationinterface_reference_FunctionalData(problem,interpretation,source,target);
44325} 36884}
44326/** 36885/**
44327 * Matcher for detecting tuples t where []value attribute EStringToStringMapEntry(source,target) 36886 * Matcher for detecting tuples t where []type attribute Function(source,target)
44328 */ 36887 */
44329private pattern mustInRelationvalue_attribute_EStringToStringMapEntry( 36888private pattern mustInRelationtype_attribute_Function(
44330 problem:LogicProblem, interpretation:PartialInterpretation, 36889 problem:LogicProblem, interpretation:PartialInterpretation,
44331 source: DefinedElement, target:DefinedElement) 36890 source: DefinedElement, target:DefinedElement)
44332{ 36891{
44333 find interpretation(problem,interpretation); 36892 find interpretation(problem,interpretation);
44334 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 36893 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
44335 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"value attribute EStringToStringMapEntry"); 36894 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function");
44336 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 36895 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
44337 BinaryElementRelationLink.param1(link,source); 36896 BinaryElementRelationLink.param1(link,source);
44338 BinaryElementRelationLink.param2(link,target); 36897 BinaryElementRelationLink.param2(link,target);
44339} 36898}
44340/** 36899/**
44341 * Matcher for detecting tuples t where <>value attribute EStringToStringMapEntry(source,target) 36900 * Matcher for detecting tuples t where <>type attribute Function(source,target)
44342 */ 36901 */
44343private pattern mayInRelationvalue_attribute_EStringToStringMapEntry( 36902private pattern mayInRelationtype_attribute_Function(
44344 problem:LogicProblem, interpretation:PartialInterpretation, 36903 problem:LogicProblem, interpretation:PartialInterpretation,
44345 source: DefinedElement, target:DefinedElement) 36904 source: DefinedElement, target:DefinedElement)
44346{ 36905{
@@ -44349,14 +36908,14 @@ private pattern mayInRelationvalue_attribute_EStringToStringMapEntry(
44349 find mayExist(problem, interpretation, source); 36908 find mayExist(problem, interpretation, source);
44350 find mayExist(problem, interpretation, target); 36909 find mayExist(problem, interpretation, target);
44351 // Type consistency 36910 // Type consistency
44352 find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,source); 36911 find mayInstanceOfFunction_class(problem,interpretation,source);
44353 StringElement(target); 36912 find mayInstanceOfFunctionType_enum(problem,interpretation,target);
44354 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 36913 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
44355 // the upper bound of the multiplicity should be considered. 36914 // the upper bound of the multiplicity should be considered.
44356 numberOfExistingReferences == count find mustInRelationvalue_attribute_EStringToStringMapEntry(problem,interpretation,source,_); 36915 numberOfExistingReferences == count find mustInRelationtype_attribute_Function(problem,interpretation,source,_);
44357 check(numberOfExistingReferences < 1); 36916 check(numberOfExistingReferences < 1);
44358} or { 36917} or {
44359 find mustInRelationvalue_attribute_EStringToStringMapEntry(problem,interpretation,source,target); 36918 find mustInRelationtype_attribute_Function(problem,interpretation,source,target);
44360} 36919}
44361 36920
44362////////// 36921//////////
@@ -44372,41 +36931,17 @@ private pattern mustContains2(source: DefinedElement, target: DefinedElement) {
44372 36931
44373private pattern mustContains4(problem:LogicProblem, interpretation:PartialInterpretation, 36932private pattern mustContains4(problem:LogicProblem, interpretation:PartialInterpretation,
44374 source: DefinedElement, target: DefinedElement) 36933 source: DefinedElement, target: DefinedElement)
44375 { find mustInRelationdetails_reference_EAnnotation(problem,interpretation,source,target); }or 36934 { find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,source,target); }or
44376
44377 { find mustInRelationcontents_reference_EAnnotation(problem,interpretation,source,target); }or
44378
44379 { find mustInRelationeOperations_reference_EClass(problem,interpretation,source,target); }or
44380
44381 { find mustInRelationeStructuralFeatures_reference_EClass(problem,interpretation,source,target); }or
44382
44383 { find mustInRelationeGenericSuperTypes_reference_EClass(problem,interpretation,source,target); }or
44384
44385 { find mustInRelationeTypeParameters_reference_EClassifier(problem,interpretation,source,target); }or
44386
44387 { find mustInRelationeLiterals_reference_EEnum(problem,interpretation,source,target); }or
44388
44389 { find mustInRelationeAnnotations_reference_EModelElement(problem,interpretation,source,target); }or
44390
44391 { find mustInRelationeTypeParameters_reference_EOperation(problem,interpretation,source,target); }or
44392
44393 { find mustInRelationeParameters_reference_EOperation(problem,interpretation,source,target); }or
44394
44395 { find mustInRelationeGenericExceptions_reference_EOperation(problem,interpretation,source,target); }or
44396
44397 { find mustInRelationeClassifiers_reference_EPackage(problem,interpretation,source,target); }or
44398
44399 { find mustInRelationeSubpackages_reference_EPackage(problem,interpretation,source,target); }or
44400 36935
44401 { find mustInRelationeGenericType_reference_ETypedElement(problem,interpretation,source,target); }or 36936 { find mustInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,source,target); }or
44402 36937
44403 { find mustInRelationeUpperBound_reference_EGenericType(problem,interpretation,source,target); }or 36938 { find mustInRelationsubElements_reference_Function(problem,interpretation,source,target); }or
44404 36939
44405 { find mustInRelationeTypeArguments_reference_EGenericType(problem,interpretation,source,target); }or 36940 { find mustInRelationdata_reference_FunctionalInterface(problem,interpretation,source,target); }or
44406 36941
44407 { find mustInRelationeLowerBound_reference_EGenericType(problem,interpretation,source,target); }or 36942 { find mustInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,source,target); }or
44408 36943
44409 { find mustInRelationeBounds_reference_ETypeParameter(problem,interpretation,source,target); } 36944 { find mustInRelationterminator_reference_FunctionalData(problem,interpretation,source,target); }
44410 36945
44411private pattern mustTransitiveContains(source,target) { 36946private pattern mustTransitiveContains(source,target) {
44412 find mustContains2+(source,target); 36947 find mustContains2+(source,target);
@@ -44423,30 +36958,30 @@ private pattern mustTransitiveContains(source,target) {
44423////////// 36958//////////
44424// 3.1 Unfinishedness Measured by Multiplicity 36959// 3.1 Unfinishedness Measured by Multiplicity
44425////////// 36960//////////
44426pattern unfinishedLowerMultiplicity_eAttributeType_reference_EAttribute(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { 36961pattern unfinishedLowerMultiplicity_model_reference_FunctionalElement(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
44427 find interpretation(problem,interpretation); 36962 find interpretation(problem,interpretation);
44428 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 36963 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
44429 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAttributeType reference EAttribute"); 36964 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement");
44430 find mustInstanceOfEAttribute_class(problem,interpretation,object); 36965 find mustInstanceOfFunctionalElement_class(problem,interpretation,object);
44431 numberOfExistingReferences == count find mustInRelationeAttributeType_reference_EAttribute(problem,interpretation,object,_); 36966 numberOfExistingReferences == count find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,object,_);
44432 check(numberOfExistingReferences < 1); 36967 check(numberOfExistingReferences < 1);
44433 missingMultiplicity == eval(1-numberOfExistingReferences); 36968 missingMultiplicity == eval(1-numberOfExistingReferences);
44434} 36969}
44435pattern unfinishedLowerMultiplicity_eReferenceType_reference_EReference(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { 36970pattern unfinishedLowerMultiplicity_to_reference_InformationLink(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
44436 find interpretation(problem,interpretation); 36971 find interpretation(problem,interpretation);
44437 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 36972 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
44438 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eReferenceType reference EReference"); 36973 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"to reference InformationLink");
44439 find mustInstanceOfEReference_class(problem,interpretation,object); 36974 find mustInstanceOfInformationLink_class(problem,interpretation,object);
44440 numberOfExistingReferences == count find mustInRelationeReferenceType_reference_EReference(problem,interpretation,object,_); 36975 numberOfExistingReferences == count find mustInRelationto_reference_InformationLink(problem,interpretation,object,_);
44441 check(numberOfExistingReferences < 1); 36976 check(numberOfExistingReferences < 1);
44442 missingMultiplicity == eval(1-numberOfExistingReferences); 36977 missingMultiplicity == eval(1-numberOfExistingReferences);
44443} 36978}
44444pattern unfinishedLowerMultiplicity_eRawType_reference_EGenericType(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { 36979pattern unfinishedLowerMultiplicity_type_attribute_Function(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
44445 find interpretation(problem,interpretation); 36980 find interpretation(problem,interpretation);
44446 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 36981 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
44447 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eRawType reference EGenericType"); 36982 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function");
44448 find mustInstanceOfEGenericType_class(problem,interpretation,object); 36983 find mustInstanceOfFunction_class(problem,interpretation,object);
44449 numberOfExistingReferences == count find mustInRelationeRawType_reference_EGenericType(problem,interpretation,object,_); 36984 numberOfExistingReferences == count find mustInRelationtype_attribute_Function(problem,interpretation,object,_);
44450 check(numberOfExistingReferences < 1); 36985 check(numberOfExistingReferences < 1);
44451 missingMultiplicity == eval(1-numberOfExistingReferences); 36986 missingMultiplicity == eval(1-numberOfExistingReferences);
44452} 36987}
@@ -44463,1577 +36998,382 @@ pattern unfinishedLowerMultiplicity_eRawType_reference_EGenericType(problem:Logi
44463private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation) 36998private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation)
44464{ 36999{
44465 find interpretation(problem,interpretation); 37000 find interpretation(problem,interpretation);
44466 find mustInstanceOfETypeParameter_class(problem,interpretation,root); 37001 find mustInstanceOfFunctionalInterface_class(problem,interpretation,root);
44467 find mustExist(problem, interpretation, root);
44468}or{
44469 find interpretation(problem,interpretation);
44470 find mustInstanceOfETypedElement_class(problem,interpretation,root);
44471 find mustExist(problem, interpretation, root);
44472}or{
44473 find interpretation(problem,interpretation);
44474 find mustInstanceOfEClass_class(problem,interpretation,root);
44475 find mustExist(problem, interpretation, root);
44476}or{
44477 find interpretation(problem,interpretation);
44478 find mustInstanceOfEStructuralFeature_class(problem,interpretation,root);
44479 find mustExist(problem, interpretation, root);
44480}or{
44481 find interpretation(problem,interpretation);
44482 find mustInstanceOfEAnnotation_class(problem,interpretation,root);
44483 find mustExist(problem, interpretation, root);
44484}or{
44485 find interpretation(problem,interpretation);
44486 find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,root);
44487 find mustExist(problem, interpretation, root);
44488}or{
44489 find interpretation(problem,interpretation);
44490 find mustInstanceOfEAttribute_class(problem,interpretation,root);
44491 find mustExist(problem, interpretation, root);
44492}or{
44493 find interpretation(problem,interpretation);
44494 find mustInstanceOfEObject_class(problem,interpretation,root);
44495 find mustExist(problem, interpretation, root);
44496}or{
44497 find interpretation(problem,interpretation);
44498 find mustInstanceOfEClassifier_class(problem,interpretation,root);
44499 find mustExist(problem, interpretation, root);
44500}or{
44501 find interpretation(problem,interpretation);
44502 find mustInstanceOfEGenericType_class(problem,interpretation,root);
44503 find mustExist(problem, interpretation, root);
44504}or{
44505 find interpretation(problem,interpretation);
44506 find mustInstanceOfEEnumLiteral_class(problem,interpretation,root);
44507 find mustExist(problem, interpretation, root);
44508}or{
44509 find interpretation(problem,interpretation);
44510 find mustInstanceOfEDataType_class(problem,interpretation,root);
44511 find mustExist(problem, interpretation, root);
44512}or{
44513 find interpretation(problem,interpretation);
44514 find mustInstanceOfEOperation_class(problem,interpretation,root);
44515 find mustExist(problem, interpretation, root);
44516}or{
44517 find interpretation(problem,interpretation);
44518 find mustInstanceOfEPackage_class(problem,interpretation,root);
44519 find mustExist(problem, interpretation, root);
44520}or{
44521 find interpretation(problem,interpretation);
44522 find mustInstanceOfEParameter_class(problem,interpretation,root);
44523 find mustExist(problem, interpretation, root);
44524}or{
44525 find interpretation(problem,interpretation);
44526 find mustInstanceOfEModelElement_class(problem,interpretation,root);
44527 find mustExist(problem, interpretation, root);
44528}or{
44529 find interpretation(problem,interpretation);
44530 find mustInstanceOfEReference_class(problem,interpretation,root);
44531 find mustExist(problem, interpretation, root); 37002 find mustExist(problem, interpretation, root);
44532}or{ 37003}or{
44533 find interpretation(problem,interpretation); 37004 find interpretation(problem,interpretation);
44534 find mustInstanceOfEEnum_class(problem,interpretation,root); 37005 find mustInstanceOfInformationLink_class(problem,interpretation,root);
44535 find mustExist(problem, interpretation, root); 37006 find mustExist(problem, interpretation, root);
44536}or{ 37007}or{
44537 find interpretation(problem,interpretation); 37008 find interpretation(problem,interpretation);
44538 find mustInstanceOfENamedElement_class(problem,interpretation,root); 37009 find mustInstanceOfFunctionalElement_class(problem,interpretation,root);
44539 find mustExist(problem, interpretation, root); 37010 find mustExist(problem, interpretation, root);
44540}or{ 37011}or{
44541 find interpretation(problem,interpretation); 37012 find interpretation(problem,interpretation);
44542 find mustInstanceOfEModelElement_class_DefinedPart(problem,interpretation,root); 37013 find mustInstanceOfFAMTerminator_class(problem,interpretation,root);
44543 find mustExist(problem, interpretation, root); 37014 find mustExist(problem, interpretation, root);
44544}or{ 37015}or{
44545 find interpretation(problem,interpretation); 37016 find interpretation(problem,interpretation);
44546 find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,root); 37017 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,root);
44547 find mustExist(problem, interpretation, root); 37018 find mustExist(problem, interpretation, root);
44548}or{ 37019}or{
44549 find interpretation(problem,interpretation); 37020 find interpretation(problem,interpretation);
44550 find mustInstanceOfENamedElement_class_DefinedPart(problem,interpretation,root); 37021 find mustInstanceOfFunctionalInput_class(problem,interpretation,root);
44551 find mustExist(problem, interpretation, root); 37022 find mustExist(problem, interpretation, root);
44552}or{ 37023}or{
44553 find interpretation(problem,interpretation); 37024 find interpretation(problem,interpretation);
44554 find mustInstanceOfENamedElement_class_UndefinedPart(problem,interpretation,root); 37025 find mustInstanceOfFunction_class(problem,interpretation,root);
44555 find mustExist(problem, interpretation, root); 37026 find mustExist(problem, interpretation, root);
44556}or{ 37027}or{
44557 find interpretation(problem,interpretation); 37028 find interpretation(problem,interpretation);
44558 find mustInstanceOfEPackage_class_DefinedPart(problem,interpretation,root); 37029 find mustInstanceOfFunctionalOutput_class(problem,interpretation,root);
44559 find mustExist(problem, interpretation, root); 37030 find mustExist(problem, interpretation, root);
44560}or{ 37031}or{
44561 find interpretation(problem,interpretation); 37032 find interpretation(problem,interpretation);
44562 find mustInstanceOfEPackage_class_UndefinedPart(problem,interpretation,root); 37033 find mustInstanceOfFunctionalData_class(problem,interpretation,root);
44563 find mustExist(problem, interpretation, root); 37034 find mustExist(problem, interpretation, root);
44564} 37035}
44565pattern createObject_EEnum_class_by_eClassifiers_reference_EPackage_with_ePackage_reference_EClassifier( 37036pattern createObject_FunctionalInterface_class_by_interface_reference_FunctionalElement_with_element_reference_FunctionalInterface(
44566 problem:LogicProblem, interpretation:PartialInterpretation,
44567 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
44568 container:DefinedElement)
44569{
44570 find interpretation(problem,interpretation);
44571 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
44572 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EEnum class");
44573 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
44574 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eClassifiers reference EPackage");
44575 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
44576 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"ePackage reference EClassifier");
44577 find mustInstanceOfEPackage_class(problem,interpretation,container);
44578 find mayInstanceOfEEnum_class(problem,interpretation,newObject);
44579 find mayInRelationeClassifiers_reference_EPackage(problem,interpretation,container,newObject);
44580 find mustExist(problem, interpretation, container);
44581 neg find mustExist(problem, interpretation, newObject);
44582}
44583pattern createObject_EEnum_class(
44584 problem:LogicProblem, interpretation:PartialInterpretation,
44585 typeInterpretation:PartialComplexTypeInterpretation)
44586{
44587 find interpretation(problem,interpretation);
44588 neg find hasElementInContainment(problem,interpretation);
44589 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
44590 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EEnum class");
44591 find mayInstanceOfEEnum_class(problem,interpretation,newObject);
44592 find mayExist(problem, interpretation, newObject);
44593 neg find mustExist(problem, interpretation, newObject);
44594}
44595pattern createObject_EAttribute_class_by_eStructuralFeatures_reference_EClass_with_eContainingClass_reference_EStructuralFeature(
44596 problem:LogicProblem, interpretation:PartialInterpretation, 37037 problem:LogicProblem, interpretation:PartialInterpretation,
44597 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 37038 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
44598 container:DefinedElement) 37039 container:DefinedElement)
44599{ 37040{
44600 find interpretation(problem,interpretation); 37041 find interpretation(problem,interpretation);
44601 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 37042 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
44602 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EAttribute class"); 37043 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
44603 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 37044 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
44604 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eStructuralFeatures reference EClass"); 37045 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"interface reference FunctionalElement");
44605 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 37046 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
44606 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eContainingClass reference EStructuralFeature"); 37047 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"element reference FunctionalInterface");
44607 find mustInstanceOfEClass_class(problem,interpretation,container); 37048 find mustInstanceOfFunctionalElement_class(problem,interpretation,container);
44608 find mayInstanceOfEAttribute_class(problem,interpretation,newObject); 37049 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
44609 find mayInRelationeStructuralFeatures_reference_EClass(problem,interpretation,container,newObject); 37050 find mayInRelationinterface_reference_FunctionalElement(problem,interpretation,container,newObject);
44610 find mustExist(problem, interpretation, container);
44611 neg find mustExist(problem, interpretation, newObject);
44612}
44613pattern createObject_EAttribute_class(
44614 problem:LogicProblem, interpretation:PartialInterpretation,
44615 typeInterpretation:PartialComplexTypeInterpretation)
44616{
44617 find interpretation(problem,interpretation);
44618 neg find hasElementInContainment(problem,interpretation);
44619 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
44620 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EAttribute class");
44621 find mayInstanceOfEAttribute_class(problem,interpretation,newObject);
44622 find mayExist(problem, interpretation, newObject);
44623 neg find mustExist(problem, interpretation, newObject);
44624}
44625pattern createObject_EObject_class_by_contents_reference_EAnnotation(
44626 problem:LogicProblem, interpretation:PartialInterpretation,
44627 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
44628 container:DefinedElement)
44629{
44630 find interpretation(problem,interpretation);
44631 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
44632 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EObject class");
44633 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
44634 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"contents reference EAnnotation");
44635 find mustInstanceOfEAnnotation_class(problem,interpretation,container);
44636 find mayInstanceOfEObject_class(problem,interpretation,newObject);
44637 find mayInRelationcontents_reference_EAnnotation(problem,interpretation,container,newObject);
44638 find mustExist(problem, interpretation, container); 37051 find mustExist(problem, interpretation, container);
44639 neg find mustExist(problem, interpretation, newObject); 37052 neg find mustExist(problem, interpretation, newObject);
44640} 37053}
44641pattern createObject_EObject_class( 37054pattern createObject_FunctionalInterface_class(
44642 problem:LogicProblem, interpretation:PartialInterpretation, 37055 problem:LogicProblem, interpretation:PartialInterpretation,
44643 typeInterpretation:PartialComplexTypeInterpretation) 37056 typeInterpretation:PartialComplexTypeInterpretation)
44644{ 37057{
44645 find interpretation(problem,interpretation); 37058 find interpretation(problem,interpretation);
44646 neg find hasElementInContainment(problem,interpretation); 37059 neg find hasElementInContainment(problem,interpretation);
44647 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 37060 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
44648 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EObject class"); 37061 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
44649 find mayInstanceOfEObject_class(problem,interpretation,newObject); 37062 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
44650 find mayExist(problem, interpretation, newObject); 37063 find mayExist(problem, interpretation, newObject);
44651 neg find mustExist(problem, interpretation, newObject); 37064 neg find mustExist(problem, interpretation, newObject);
44652} 37065}
44653pattern createObject_EReference_class_by_eStructuralFeatures_reference_EClass_with_eContainingClass_reference_EStructuralFeature( 37066pattern createObject_InformationLink_class_by_outgoingLinks_reference_FunctionalOutput_with_from_reference_InformationLink(
44654 problem:LogicProblem, interpretation:PartialInterpretation, 37067 problem:LogicProblem, interpretation:PartialInterpretation,
44655 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 37068 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
44656 container:DefinedElement) 37069 container:DefinedElement)
44657{ 37070{
44658 find interpretation(problem,interpretation); 37071 find interpretation(problem,interpretation);
44659 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 37072 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
44660 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EReference class"); 37073 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class");
44661 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 37074 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
44662 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eStructuralFeatures reference EClass"); 37075 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"outgoingLinks reference FunctionalOutput");
44663 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 37076 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
44664 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eContainingClass reference EStructuralFeature"); 37077 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"from reference InformationLink");
44665 find mustInstanceOfEClass_class(problem,interpretation,container); 37078 find mustInstanceOfFunctionalOutput_class(problem,interpretation,container);
44666 find mayInstanceOfEReference_class(problem,interpretation,newObject); 37079 find mayInstanceOfInformationLink_class(problem,interpretation,newObject);
44667 find mayInRelationeStructuralFeatures_reference_EClass(problem,interpretation,container,newObject); 37080 find mayInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,container,newObject);
44668 find mustExist(problem, interpretation, container); 37081 find mustExist(problem, interpretation, container);
44669 neg find mustExist(problem, interpretation, newObject); 37082 neg find mustExist(problem, interpretation, newObject);
44670} 37083}
44671pattern createObject_EReference_class( 37084pattern createObject_InformationLink_class(
44672 problem:LogicProblem, interpretation:PartialInterpretation, 37085 problem:LogicProblem, interpretation:PartialInterpretation,
44673 typeInterpretation:PartialComplexTypeInterpretation) 37086 typeInterpretation:PartialComplexTypeInterpretation)
44674{ 37087{
44675 find interpretation(problem,interpretation); 37088 find interpretation(problem,interpretation);
44676 neg find hasElementInContainment(problem,interpretation); 37089 neg find hasElementInContainment(problem,interpretation);
44677 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 37090 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
44678 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EReference class"); 37091 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class");
44679 find mayInstanceOfEReference_class(problem,interpretation,newObject); 37092 find mayInstanceOfInformationLink_class(problem,interpretation,newObject);
44680 find mayExist(problem, interpretation, newObject); 37093 find mayExist(problem, interpretation, newObject);
44681 neg find mustExist(problem, interpretation, newObject); 37094 neg find mustExist(problem, interpretation, newObject);
44682} 37095}
44683pattern createObject_EPackage_class_UndefinedPart_by_eSubpackages_reference_EPackage_with_eSuperPackage_reference_EPackage( 37096pattern createObject_FunctionalArchitectureModel_class(
44684 problem:LogicProblem, interpretation:PartialInterpretation,
44685 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
44686 container:DefinedElement)
44687{
44688 find interpretation(problem,interpretation);
44689 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
44690 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EPackage class UndefinedPart");
44691 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
44692 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eSubpackages reference EPackage");
44693 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
44694 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eSuperPackage reference EPackage");
44695 find mustInstanceOfEPackage_class(problem,interpretation,container);
44696 find mayInstanceOfEPackage_class_UndefinedPart(problem,interpretation,newObject);
44697 find mayInRelationeSubpackages_reference_EPackage(problem,interpretation,container,newObject);
44698 find mustExist(problem, interpretation, container);
44699 neg find mustExist(problem, interpretation, newObject);
44700}
44701pattern createObject_EPackage_class_UndefinedPart(
44702 problem:LogicProblem, interpretation:PartialInterpretation, 37097 problem:LogicProblem, interpretation:PartialInterpretation,
44703 typeInterpretation:PartialComplexTypeInterpretation) 37098 typeInterpretation:PartialComplexTypeInterpretation)
44704{ 37099{
44705 find interpretation(problem,interpretation); 37100 find interpretation(problem,interpretation);
44706 neg find hasElementInContainment(problem,interpretation); 37101 neg find hasElementInContainment(problem,interpretation);
44707 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 37102 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
44708 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EPackage class UndefinedPart"); 37103 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalArchitectureModel class");
44709 find mayInstanceOfEPackage_class_UndefinedPart(problem,interpretation,newObject); 37104 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,newObject);
44710 find mayExist(problem, interpretation, newObject); 37105 find mayExist(problem, interpretation, newObject);
44711 neg find mustExist(problem, interpretation, newObject); 37106 neg find mustExist(problem, interpretation, newObject);
44712} 37107}
44713pattern createObject_EAnnotation_class_by_eAnnotations_reference_EModelElement_with_eModelElement_reference_EAnnotation( 37108pattern createObject_FunctionalInput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData(
44714 problem:LogicProblem, interpretation:PartialInterpretation,
44715 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
44716 container:DefinedElement)
44717{
44718 find interpretation(problem,interpretation);
44719 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
44720 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EAnnotation class");
44721 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
44722 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eAnnotations reference EModelElement");
44723 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
44724 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eModelElement reference EAnnotation");
44725 find mustInstanceOfEModelElement_class(problem,interpretation,container);
44726 find mayInstanceOfEAnnotation_class(problem,interpretation,newObject);
44727 find mayInRelationeAnnotations_reference_EModelElement(problem,interpretation,container,newObject);
44728 find mustExist(problem, interpretation, container);
44729 neg find mustExist(problem, interpretation, newObject);
44730}
44731pattern createObject_EAnnotation_class(
44732 problem:LogicProblem, interpretation:PartialInterpretation,
44733 typeInterpretation:PartialComplexTypeInterpretation)
44734{
44735 find interpretation(problem,interpretation);
44736 neg find hasElementInContainment(problem,interpretation);
44737 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
44738 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EAnnotation class");
44739 find mayInstanceOfEAnnotation_class(problem,interpretation,newObject);
44740 find mayExist(problem, interpretation, newObject);
44741 neg find mustExist(problem, interpretation, newObject);
44742}
44743pattern createObject_EParameter_class_by_eParameters_reference_EOperation_with_eOperation_reference_EParameter(
44744 problem:LogicProblem, interpretation:PartialInterpretation, 37109 problem:LogicProblem, interpretation:PartialInterpretation,
44745 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 37110 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
44746 container:DefinedElement) 37111 container:DefinedElement)
44747{ 37112{
44748 find interpretation(problem,interpretation); 37113 find interpretation(problem,interpretation);
44749 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 37114 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
44750 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EParameter class"); 37115 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class");
44751 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 37116 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
44752 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eParameters reference EOperation"); 37117 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface");
44753 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 37118 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
44754 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eOperation reference EParameter"); 37119 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData");
44755 find mustInstanceOfEOperation_class(problem,interpretation,container); 37120 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container);
44756 find mayInstanceOfEParameter_class(problem,interpretation,newObject); 37121 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
44757 find mayInRelationeParameters_reference_EOperation(problem,interpretation,container,newObject); 37122 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject);
44758 find mustExist(problem, interpretation, container); 37123 find mustExist(problem, interpretation, container);
44759 neg find mustExist(problem, interpretation, newObject); 37124 neg find mustExist(problem, interpretation, newObject);
44760} 37125}
44761pattern createObject_EParameter_class( 37126pattern createObject_FunctionalInput_class(
44762 problem:LogicProblem, interpretation:PartialInterpretation, 37127 problem:LogicProblem, interpretation:PartialInterpretation,
44763 typeInterpretation:PartialComplexTypeInterpretation) 37128 typeInterpretation:PartialComplexTypeInterpretation)
44764{ 37129{
44765 find interpretation(problem,interpretation); 37130 find interpretation(problem,interpretation);
44766 neg find hasElementInContainment(problem,interpretation); 37131 neg find hasElementInContainment(problem,interpretation);
44767 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 37132 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
44768 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EParameter class"); 37133 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class");
44769 find mayInstanceOfEParameter_class(problem,interpretation,newObject); 37134 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
44770 find mayExist(problem, interpretation, newObject); 37135 find mayExist(problem, interpretation, newObject);
44771 neg find mustExist(problem, interpretation, newObject); 37136 neg find mustExist(problem, interpretation, newObject);
44772} 37137}
44773pattern createObject_EDataType_class_by_eClassifiers_reference_EPackage_with_ePackage_reference_EClassifier( 37138pattern createObject_FAMTerminator_class_by_terminator_reference_FunctionalData_with_data_reference_FAMTerminator(
44774 problem:LogicProblem, interpretation:PartialInterpretation, 37139 problem:LogicProblem, interpretation:PartialInterpretation,
44775 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 37140 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
44776 container:DefinedElement) 37141 container:DefinedElement)
44777{ 37142{
44778 find interpretation(problem,interpretation); 37143 find interpretation(problem,interpretation);
44779 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 37144 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
44780 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EDataType class"); 37145 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class");
44781 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 37146 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
44782 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eClassifiers reference EPackage"); 37147 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"terminator reference FunctionalData");
44783 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 37148 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
44784 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"ePackage reference EClassifier"); 37149 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"data reference FAMTerminator");
44785 find mustInstanceOfEPackage_class(problem,interpretation,container); 37150 find mustInstanceOfFunctionalData_class(problem,interpretation,container);
44786 find mayInstanceOfEDataType_class(problem,interpretation,newObject); 37151 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject);
44787 find mayInRelationeClassifiers_reference_EPackage(problem,interpretation,container,newObject); 37152 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,container,newObject);
44788 find mustExist(problem, interpretation, container); 37153 find mustExist(problem, interpretation, container);
44789 neg find mustExist(problem, interpretation, newObject); 37154 neg find mustExist(problem, interpretation, newObject);
44790} 37155}
44791pattern createObject_EDataType_class( 37156pattern createObject_FAMTerminator_class(
44792 problem:LogicProblem, interpretation:PartialInterpretation, 37157 problem:LogicProblem, interpretation:PartialInterpretation,
44793 typeInterpretation:PartialComplexTypeInterpretation) 37158 typeInterpretation:PartialComplexTypeInterpretation)
44794{ 37159{
44795 find interpretation(problem,interpretation); 37160 find interpretation(problem,interpretation);
44796 neg find hasElementInContainment(problem,interpretation); 37161 neg find hasElementInContainment(problem,interpretation);
44797 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 37162 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
44798 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EDataType class"); 37163 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class");
44799 find mayInstanceOfEDataType_class(problem,interpretation,newObject); 37164 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject);
44800 find mayExist(problem, interpretation, newObject); 37165 find mayExist(problem, interpretation, newObject);
44801 neg find mustExist(problem, interpretation, newObject); 37166 neg find mustExist(problem, interpretation, newObject);
44802} 37167}
44803pattern createObject_EOperation_class_by_eOperations_reference_EClass_with_eContainingClass_reference_EOperation( 37168pattern createObject_FunctionalOutput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData(
44804 problem:LogicProblem, interpretation:PartialInterpretation, 37169 problem:LogicProblem, interpretation:PartialInterpretation,
44805 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 37170 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
44806 container:DefinedElement) 37171 container:DefinedElement)
44807{ 37172{
44808 find interpretation(problem,interpretation); 37173 find interpretation(problem,interpretation);
44809 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 37174 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
44810 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EOperation class"); 37175 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class");
44811 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 37176 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
44812 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eOperations reference EClass"); 37177 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface");
44813 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 37178 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
44814 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eContainingClass reference EOperation"); 37179 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData");
44815 find mustInstanceOfEClass_class(problem,interpretation,container); 37180 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container);
44816 find mayInstanceOfEOperation_class(problem,interpretation,newObject); 37181 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject);
44817 find mayInRelationeOperations_reference_EClass(problem,interpretation,container,newObject); 37182 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject);
44818 find mustExist(problem, interpretation, container); 37183 find mustExist(problem, interpretation, container);
44819 neg find mustExist(problem, interpretation, newObject); 37184 neg find mustExist(problem, interpretation, newObject);
44820} 37185}
44821pattern createObject_EOperation_class( 37186pattern createObject_FunctionalOutput_class(
44822 problem:LogicProblem, interpretation:PartialInterpretation, 37187 problem:LogicProblem, interpretation:PartialInterpretation,
44823 typeInterpretation:PartialComplexTypeInterpretation) 37188 typeInterpretation:PartialComplexTypeInterpretation)
44824{ 37189{
44825 find interpretation(problem,interpretation); 37190 find interpretation(problem,interpretation);
44826 neg find hasElementInContainment(problem,interpretation); 37191 neg find hasElementInContainment(problem,interpretation);
44827 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 37192 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
44828 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EOperation class"); 37193 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class");
44829 find mayInstanceOfEOperation_class(problem,interpretation,newObject); 37194 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject);
44830 find mayExist(problem, interpretation, newObject); 37195 find mayExist(problem, interpretation, newObject);
44831 neg find mustExist(problem, interpretation, newObject); 37196 neg find mustExist(problem, interpretation, newObject);
44832} 37197}
44833pattern createObject_EStringToStringMapEntry_class_by_details_reference_EAnnotation( 37198pattern createObject_Function_class_by_rootElements_reference_FunctionalArchitectureModel(
44834 problem:LogicProblem, interpretation:PartialInterpretation, 37199 problem:LogicProblem, interpretation:PartialInterpretation,
44835 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 37200 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
44836 container:DefinedElement) 37201 container:DefinedElement)
44837{ 37202{
44838 find interpretation(problem,interpretation); 37203 find interpretation(problem,interpretation);
44839 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 37204 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
44840 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EStringToStringMapEntry class"); 37205 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class");
44841 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
44842 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"details reference EAnnotation");
44843 find mustInstanceOfEAnnotation_class(problem,interpretation,container);
44844 find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,newObject);
44845 find mayInRelationdetails_reference_EAnnotation(problem,interpretation,container,newObject);
44846 find mustExist(problem, interpretation, container);
44847 neg find mustExist(problem, interpretation, newObject);
44848}
44849pattern createObject_EStringToStringMapEntry_class(
44850 problem:LogicProblem, interpretation:PartialInterpretation,
44851 typeInterpretation:PartialComplexTypeInterpretation)
44852{
44853 find interpretation(problem,interpretation);
44854 neg find hasElementInContainment(problem,interpretation);
44855 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
44856 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EStringToStringMapEntry class");
44857 find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,newObject);
44858 find mayExist(problem, interpretation, newObject);
44859 neg find mustExist(problem, interpretation, newObject);
44860}
44861pattern createObject_EEnumLiteral_class_by_eLiterals_reference_EEnum_with_eEnum_reference_EEnumLiteral(
44862 problem:LogicProblem, interpretation:PartialInterpretation,
44863 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
44864 container:DefinedElement)
44865{
44866 find interpretation(problem,interpretation);
44867 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
44868 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EEnumLiteral class");
44869 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 37206 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
44870 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eLiterals reference EEnum"); 37207 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"rootElements reference FunctionalArchitectureModel");
44871 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 37208 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,container);
44872 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eEnum reference EEnumLiteral"); 37209 find mayInstanceOfFunction_class(problem,interpretation,newObject);
44873 find mustInstanceOfEEnum_class(problem,interpretation,container); 37210 find mayInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,container,newObject);
44874 find mayInstanceOfEEnumLiteral_class(problem,interpretation,newObject);
44875 find mayInRelationeLiterals_reference_EEnum(problem,interpretation,container,newObject);
44876 find mustExist(problem, interpretation, container); 37211 find mustExist(problem, interpretation, container);
44877 neg find mustExist(problem, interpretation, newObject); 37212 neg find mustExist(problem, interpretation, newObject);
44878} 37213}
44879pattern createObject_EEnumLiteral_class( 37214pattern createObject_Function_class_by_subElements_reference_Function_with_parent_reference_FunctionalElement(
44880 problem:LogicProblem, interpretation:PartialInterpretation,
44881 typeInterpretation:PartialComplexTypeInterpretation)
44882{
44883 find interpretation(problem,interpretation);
44884 neg find hasElementInContainment(problem,interpretation);
44885 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
44886 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EEnumLiteral class");
44887 find mayInstanceOfEEnumLiteral_class(problem,interpretation,newObject);
44888 find mayExist(problem, interpretation, newObject);
44889 neg find mustExist(problem, interpretation, newObject);
44890}
44891pattern createObject_EClass_class_by_eClassifiers_reference_EPackage_with_ePackage_reference_EClassifier(
44892 problem:LogicProblem, interpretation:PartialInterpretation, 37215 problem:LogicProblem, interpretation:PartialInterpretation,
44893 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 37216 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
44894 container:DefinedElement) 37217 container:DefinedElement)
44895{ 37218{
44896 find interpretation(problem,interpretation); 37219 find interpretation(problem,interpretation);
44897 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 37220 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
44898 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EClass class"); 37221 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class");
44899 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 37222 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
44900 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eClassifiers reference EPackage"); 37223 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"subElements reference Function");
44901 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 37224 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
44902 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"ePackage reference EClassifier"); 37225 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"parent reference FunctionalElement");
44903 find mustInstanceOfEPackage_class(problem,interpretation,container); 37226 find mustInstanceOfFunction_class(problem,interpretation,container);
44904 find mayInstanceOfEClass_class(problem,interpretation,newObject); 37227 find mayInstanceOfFunction_class(problem,interpretation,newObject);
44905 find mayInRelationeClassifiers_reference_EPackage(problem,interpretation,container,newObject); 37228 find mayInRelationsubElements_reference_Function(problem,interpretation,container,newObject);
44906 find mustExist(problem, interpretation, container);
44907 neg find mustExist(problem, interpretation, newObject);
44908}
44909pattern createObject_EClass_class(
44910 problem:LogicProblem, interpretation:PartialInterpretation,
44911 typeInterpretation:PartialComplexTypeInterpretation)
44912{
44913 find interpretation(problem,interpretation);
44914 neg find hasElementInContainment(problem,interpretation);
44915 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
44916 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EClass class");
44917 find mayInstanceOfEClass_class(problem,interpretation,newObject);
44918 find mayExist(problem, interpretation, newObject);
44919 neg find mustExist(problem, interpretation, newObject);
44920}
44921pattern createObject_ETypeParameter_class_by_eTypeParameters_reference_EClassifier(
44922 problem:LogicProblem, interpretation:PartialInterpretation,
44923 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
44924 container:DefinedElement)
44925{
44926 find interpretation(problem,interpretation);
44927 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
44928 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"ETypeParameter class");
44929 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
44930 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eTypeParameters reference EClassifier");
44931 find mustInstanceOfEClassifier_class(problem,interpretation,container);
44932 find mayInstanceOfETypeParameter_class(problem,interpretation,newObject);
44933 find mayInRelationeTypeParameters_reference_EClassifier(problem,interpretation,container,newObject);
44934 find mustExist(problem, interpretation, container);
44935 neg find mustExist(problem, interpretation, newObject);
44936}
44937pattern createObject_ETypeParameter_class_by_eTypeParameters_reference_EOperation(
44938 problem:LogicProblem, interpretation:PartialInterpretation,
44939 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
44940 container:DefinedElement)
44941{
44942 find interpretation(problem,interpretation);
44943 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
44944 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"ETypeParameter class");
44945 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
44946 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eTypeParameters reference EOperation");
44947 find mustInstanceOfEOperation_class(problem,interpretation,container);
44948 find mayInstanceOfETypeParameter_class(problem,interpretation,newObject);
44949 find mayInRelationeTypeParameters_reference_EOperation(problem,interpretation,container,newObject);
44950 find mustExist(problem, interpretation, container); 37229 find mustExist(problem, interpretation, container);
44951 neg find mustExist(problem, interpretation, newObject); 37230 neg find mustExist(problem, interpretation, newObject);
44952} 37231}
44953pattern createObject_ETypeParameter_class( 37232pattern createObject_Function_class(
44954 problem:LogicProblem, interpretation:PartialInterpretation, 37233 problem:LogicProblem, interpretation:PartialInterpretation,
44955 typeInterpretation:PartialComplexTypeInterpretation) 37234 typeInterpretation:PartialComplexTypeInterpretation)
44956{ 37235{
44957 find interpretation(problem,interpretation); 37236 find interpretation(problem,interpretation);
44958 neg find hasElementInContainment(problem,interpretation); 37237 neg find hasElementInContainment(problem,interpretation);
44959 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 37238 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
44960 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"ETypeParameter class"); 37239 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class");
44961 find mayInstanceOfETypeParameter_class(problem,interpretation,newObject); 37240 find mayInstanceOfFunction_class(problem,interpretation,newObject);
44962 find mayExist(problem, interpretation, newObject); 37241 find mayExist(problem, interpretation, newObject);
44963 neg find mustExist(problem, interpretation, newObject); 37242 neg find mustExist(problem, interpretation, newObject);
44964} 37243}
44965pattern createObject_EGenericType_class_by_eGenericSuperTypes_reference_EClass( 37244
44966 problem:LogicProblem, interpretation:PartialInterpretation, 37245//////////
44967 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 37246// 4.2 Type refinement
44968 container:DefinedElement) 37247//////////
44969{ 37248pattern refineTypeTo_FunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
44970 find interpretation(problem,interpretation);
44971 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
44972 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class");
44973 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
44974 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eGenericSuperTypes reference EClass");
44975 find mustInstanceOfEClass_class(problem,interpretation,container);
44976 find mayInstanceOfEGenericType_class(problem,interpretation,newObject);
44977 find mayInRelationeGenericSuperTypes_reference_EClass(problem,interpretation,container,newObject);
44978 find mustExist(problem, interpretation, container);
44979 neg find mustExist(problem, interpretation, newObject);
44980}
44981pattern createObject_EGenericType_class_by_eGenericExceptions_reference_EOperation(
44982 problem:LogicProblem, interpretation:PartialInterpretation,
44983 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
44984 container:DefinedElement)
44985{
44986 find interpretation(problem,interpretation); 37249 find interpretation(problem,interpretation);
44987 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 37250 PartialInterpretation.newElements(interpretation,element);
44988 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class"); 37251 find mayInstanceOfFunctionalInterface_class(problem,interpretation,element);
44989 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 37252 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
44990 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eGenericExceptions reference EOperation"); 37253 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
44991 find mustInstanceOfEOperation_class(problem,interpretation,container); 37254 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
44992 find mayInstanceOfEGenericType_class(problem,interpretation,newObject); 37255 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
44993 find mayInRelationeGenericExceptions_reference_EOperation(problem,interpretation,container,newObject); 37256 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
44994 find mustExist(problem, interpretation, container); 37257 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
44995 neg find mustExist(problem, interpretation, newObject);
44996} 37258}
44997pattern createObject_EGenericType_class_by_eGenericType_reference_ETypedElement( 37259pattern refineTypeTo_InformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
44998 problem:LogicProblem, interpretation:PartialInterpretation,
44999 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
45000 container:DefinedElement)
45001{
45002 find interpretation(problem,interpretation); 37260 find interpretation(problem,interpretation);
45003 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 37261 PartialInterpretation.newElements(interpretation,element);
45004 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class"); 37262 find mayInstanceOfInformationLink_class(problem,interpretation,element);
45005 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 37263 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
45006 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eGenericType reference ETypedElement"); 37264 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
45007 find mustInstanceOfETypedElement_class(problem,interpretation,container); 37265 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
45008 find mayInstanceOfEGenericType_class(problem,interpretation,newObject); 37266 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
45009 find mayInRelationeGenericType_reference_ETypedElement(problem,interpretation,container,newObject); 37267 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
45010 find mustExist(problem, interpretation, container); 37268 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
45011 neg find mustExist(problem, interpretation, newObject);
45012} 37269}
45013pattern createObject_EGenericType_class_by_eUpperBound_reference_EGenericType( 37270pattern refineTypeTo_FunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
45014 problem:LogicProblem, interpretation:PartialInterpretation,
45015 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
45016 container:DefinedElement)
45017{
45018 find interpretation(problem,interpretation); 37271 find interpretation(problem,interpretation);
45019 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 37272 PartialInterpretation.newElements(interpretation,element);
45020 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class"); 37273 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
45021 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 37274 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
45022 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eUpperBound reference EGenericType"); 37275 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
45023 find mustInstanceOfEGenericType_class(problem,interpretation,container); 37276 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
45024 find mayInstanceOfEGenericType_class(problem,interpretation,newObject); 37277 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
45025 find mayInRelationeUpperBound_reference_EGenericType(problem,interpretation,container,newObject); 37278 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
45026 find mustExist(problem, interpretation, container); 37279 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
45027 neg find mustExist(problem, interpretation, newObject);
45028} 37280}
45029pattern createObject_EGenericType_class_by_eTypeArguments_reference_EGenericType( 37281pattern refineTypeTo_FunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
45030 problem:LogicProblem, interpretation:PartialInterpretation,
45031 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
45032 container:DefinedElement)
45033{
45034 find interpretation(problem,interpretation); 37282 find interpretation(problem,interpretation);
45035 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 37283 PartialInterpretation.newElements(interpretation,element);
45036 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class"); 37284 find mayInstanceOfFunctionalInput_class(problem,interpretation,element);
45037 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 37285 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
45038 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eTypeArguments reference EGenericType"); 37286 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
45039 find mustInstanceOfEGenericType_class(problem,interpretation,container); 37287 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
45040 find mayInstanceOfEGenericType_class(problem,interpretation,newObject); 37288 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
45041 find mayInRelationeTypeArguments_reference_EGenericType(problem,interpretation,container,newObject); 37289 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
45042 find mustExist(problem, interpretation, container); 37290 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
45043 neg find mustExist(problem, interpretation, newObject); 37291 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
45044} 37292}
45045pattern createObject_EGenericType_class_by_eLowerBound_reference_EGenericType( 37293pattern refineTypeTo_FAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
45046 problem:LogicProblem, interpretation:PartialInterpretation,
45047 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
45048 container:DefinedElement)
45049{
45050 find interpretation(problem,interpretation); 37294 find interpretation(problem,interpretation);
45051 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 37295 PartialInterpretation.newElements(interpretation,element);
45052 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class"); 37296 find mayInstanceOfFAMTerminator_class(problem,interpretation,element);
45053 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 37297 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
45054 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eLowerBound reference EGenericType"); 37298 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
45055 find mustInstanceOfEGenericType_class(problem,interpretation,container); 37299 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
45056 find mayInstanceOfEGenericType_class(problem,interpretation,newObject); 37300 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
45057 find mayInRelationeLowerBound_reference_EGenericType(problem,interpretation,container,newObject); 37301 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
45058 find mustExist(problem, interpretation, container); 37302 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
45059 neg find mustExist(problem, interpretation, newObject);
45060} 37303}
45061pattern createObject_EGenericType_class_by_eBounds_reference_ETypeParameter( 37304pattern refineTypeTo_FunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
45062 problem:LogicProblem, interpretation:PartialInterpretation,
45063 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
45064 container:DefinedElement)
45065{
45066 find interpretation(problem,interpretation); 37305 find interpretation(problem,interpretation);
45067 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 37306 PartialInterpretation.newElements(interpretation,element);
45068 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class"); 37307 find mayInstanceOfFunctionalOutput_class(problem,interpretation,element);
45069 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 37308 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
45070 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eBounds reference ETypeParameter"); 37309 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
45071 find mustInstanceOfETypeParameter_class(problem,interpretation,container); 37310 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
45072 find mayInstanceOfEGenericType_class(problem,interpretation,newObject); 37311 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
45073 find mayInRelationeBounds_reference_ETypeParameter(problem,interpretation,container,newObject); 37312 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
45074 find mustExist(problem, interpretation, container); 37313 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
45075 neg find mustExist(problem, interpretation, newObject); 37314 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
45076} 37315}
45077pattern createObject_EGenericType_class( 37316pattern refineTypeTo_Function_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
45078 problem:LogicProblem, interpretation:PartialInterpretation,
45079 typeInterpretation:PartialComplexTypeInterpretation)
45080{
45081 find interpretation(problem,interpretation);
45082 neg find hasElementInContainment(problem,interpretation);
45083 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
45084 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class");
45085 find mayInstanceOfEGenericType_class(problem,interpretation,newObject);
45086 find mayExist(problem, interpretation, newObject);
45087 neg find mustExist(problem, interpretation, newObject);
45088}
45089
45090//////////
45091// 4.2 Type refinement
45092//////////
45093pattern refineTypeTo_EEnum_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
45094 find interpretation(problem,interpretation);
45095 PartialInterpretation.newElements(interpretation,element);
45096 find mayInstanceOfEEnum_class(problem,interpretation,element);
45097 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
45098 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
45099 neg find mustInstanceOfEEnum_class(problem,interpretation,element);
45100 neg find mustInstanceOfEObject_class(problem,interpretation,element);
45101 neg find mustInstanceOfEClass_class(problem,interpretation,element);
45102 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
45103 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
45104 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
45105 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
45106 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
45107}
45108pattern refineTypeTo_EAttribute_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
45109 find interpretation(problem,interpretation);
45110 PartialInterpretation.newElements(interpretation,element);
45111 find mayInstanceOfEAttribute_class(problem,interpretation,element);
45112 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
45113 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
45114 neg find mustInstanceOfEAttribute_class(problem,interpretation,element);
45115 neg find mustInstanceOfEObject_class(problem,interpretation,element);
45116 neg find mustInstanceOfEReference_class(problem,interpretation,element);
45117 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
45118 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
45119 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
45120 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
45121 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
45122 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
45123 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
45124}
45125pattern refineTypeTo_EObject_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
45126 find interpretation(problem,interpretation);
45127 PartialInterpretation.newElements(interpretation,element);
45128 find mayInstanceOfEObject_class(problem,interpretation,element);
45129 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
45130 neg find mustInstanceOfEObject_class(problem,interpretation,element);
45131 neg find mustInstanceOfEModelElement_class(problem,interpretation,element);
45132 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
45133}
45134pattern refineTypeTo_EReference_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
45135 find interpretation(problem,interpretation);
45136 PartialInterpretation.newElements(interpretation,element);
45137 find mayInstanceOfEReference_class(problem,interpretation,element);
45138 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
45139 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
45140 neg find mustInstanceOfEAttribute_class(problem,interpretation,element);
45141 neg find mustInstanceOfEObject_class(problem,interpretation,element);
45142 neg find mustInstanceOfEReference_class(problem,interpretation,element);
45143 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
45144 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
45145 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
45146 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
45147 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
45148 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
45149 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
45150}
45151pattern refineTypeTo_EPackage_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
45152 find interpretation(problem,interpretation);
45153 PartialInterpretation.newElements(interpretation,element);
45154 find mayInstanceOfEPackage_class_UndefinedPart(problem,interpretation,element);
45155 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
45156 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
45157 neg find mustInstanceOfEObject_class(problem,interpretation,element);
45158 neg find mustInstanceOfEPackage_class_UndefinedPart(problem,interpretation,element);
45159 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
45160 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
45161 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
45162 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
45163 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
45164}
45165pattern refineTypeTo_EAnnotation_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
45166 find interpretation(problem,interpretation);
45167 PartialInterpretation.newElements(interpretation,element);
45168 find mayInstanceOfEAnnotation_class(problem,interpretation,element);
45169 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
45170 neg find mustInstanceOfEObject_class(problem,interpretation,element);
45171 neg find mustInstanceOfENamedElement_class(problem,interpretation,element);
45172 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
45173 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
45174}
45175pattern refineTypeTo_EParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
45176 find interpretation(problem,interpretation);
45177 PartialInterpretation.newElements(interpretation,element);
45178 find mayInstanceOfEParameter_class(problem,interpretation,element);
45179 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
45180 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
45181 neg find mustInstanceOfEObject_class(problem,interpretation,element);
45182 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
45183 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
45184 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
45185 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
45186 neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element);
45187 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
45188 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
45189 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
45190}
45191pattern refineTypeTo_EDataType_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
45192 find interpretation(problem,interpretation);
45193 PartialInterpretation.newElements(interpretation,element);
45194 find mayInstanceOfEDataType_class(problem,interpretation,element);
45195 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
45196 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
45197 neg find mustInstanceOfEEnum_class(problem,interpretation,element);
45198 neg find mustInstanceOfEObject_class(problem,interpretation,element);
45199 neg find mustInstanceOfEClass_class(problem,interpretation,element);
45200 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
45201 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
45202 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
45203 neg find mustInstanceOfEDataType_class(problem,interpretation,element);
45204 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
45205 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
45206}
45207pattern refineTypeTo_EOperation_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
45208 find interpretation(problem,interpretation);
45209 PartialInterpretation.newElements(interpretation,element);
45210 find mayInstanceOfEOperation_class(problem,interpretation,element);
45211 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
45212 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
45213 neg find mustInstanceOfEObject_class(problem,interpretation,element);
45214 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
45215 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
45216 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
45217 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
45218 neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element);
45219 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
45220 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
45221 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
45222}
45223pattern refineTypeTo_EStringToStringMapEntry_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
45224 find interpretation(problem,interpretation);
45225 PartialInterpretation.newElements(interpretation,element);
45226 find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
45227 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
45228 neg find mustInstanceOfEObject_class(problem,interpretation,element);
45229 neg find mustInstanceOfEModelElement_class(problem,interpretation,element);
45230 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
45231}
45232pattern refineTypeTo_EEnumLiteral_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
45233 find interpretation(problem,interpretation);
45234 PartialInterpretation.newElements(interpretation,element);
45235 find mayInstanceOfEEnumLiteral_class(problem,interpretation,element);
45236 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
45237 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
45238 neg find mustInstanceOfEObject_class(problem,interpretation,element);
45239 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
45240 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
45241 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
45242 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
45243 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
45244 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
45245}
45246pattern refineTypeTo_EClass_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
45247 find interpretation(problem,interpretation);
45248 PartialInterpretation.newElements(interpretation,element);
45249 find mayInstanceOfEClass_class(problem,interpretation,element);
45250 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
45251 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
45252 neg find mustInstanceOfEObject_class(problem,interpretation,element);
45253 neg find mustInstanceOfEClass_class(problem,interpretation,element);
45254 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
45255 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
45256 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
45257 neg find mustInstanceOfEDataType_class(problem,interpretation,element);
45258 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
45259 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
45260}
45261pattern refineTypeTo_ETypeParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
45262 find interpretation(problem,interpretation); 37317 find interpretation(problem,interpretation);
45263 PartialInterpretation.newElements(interpretation,element); 37318 PartialInterpretation.newElements(interpretation,element);
45264 find mayInstanceOfETypeParameter_class(problem,interpretation,element); 37319 find mayInstanceOfFunction_class(problem,interpretation,element);
45265 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 37320 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
45266 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); 37321 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
45267 neg find mustInstanceOfEObject_class(problem,interpretation,element); 37322 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
45268 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); 37323 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
45269 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 37324 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
45270 neg find mustInstanceOfETypedElement_class(problem,interpretation,element); 37325 neg find mustInstanceOfFunction_class(problem,interpretation,element);
45271 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
45272 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
45273 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
45274}
45275pattern refineTypeTo_EGenericType_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
45276 find interpretation(problem,interpretation);
45277 PartialInterpretation.newElements(interpretation,element);
45278 find mayInstanceOfEGenericType_class(problem,interpretation,element);
45279 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
45280 neg find mustInstanceOfEObject_class(problem,interpretation,element);
45281 neg find mustInstanceOfEModelElement_class(problem,interpretation,element);
45282 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
45283} 37326}
45284 37327
45285////////// 37328//////////
45286// 4.3 Relation refinement 37329// 4.3 Relation refinement
45287////////// 37330//////////
45288pattern refineRelation_eAttributeType_reference_EAttribute( 37331pattern refineRelation_model_reference_FunctionalElement(
45289 problem:LogicProblem, interpretation:PartialInterpretation,
45290 relationIterpretation:PartialRelationInterpretation,
45291 from: DefinedElement, to: DefinedElement)
45292{
45293 find interpretation(problem,interpretation);
45294 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
45295 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAttributeType reference EAttribute");
45296 find mustExist(problem, interpretation, from);
45297 find mustExist(problem, interpretation, to);
45298 find mustInstanceOfEAttribute_class(problem,interpretation,from);
45299 find mustInstanceOfEDataType_class(problem,interpretation,to);
45300 find mayInRelationeAttributeType_reference_EAttribute(problem,interpretation,from,to);
45301 neg find mustInRelationeAttributeType_reference_EAttribute(problem,interpretation,from,to);
45302}
45303pattern refineRelation_references_reference_EAnnotation(
45304 problem:LogicProblem, interpretation:PartialInterpretation,
45305 relationIterpretation:PartialRelationInterpretation,
45306 from: DefinedElement, to: DefinedElement)
45307{
45308 find interpretation(problem,interpretation);
45309 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
45310 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"references reference EAnnotation");
45311 find mustExist(problem, interpretation, from);
45312 find mustExist(problem, interpretation, to);
45313 find mustInstanceOfEAnnotation_class(problem,interpretation,from);
45314 find mustInstanceOfEObject_class(problem,interpretation,to);
45315 find mayInRelationreferences_reference_EAnnotation(problem,interpretation,from,to);
45316 neg find mustInRelationreferences_reference_EAnnotation(problem,interpretation,from,to);
45317}
45318pattern refineRelation_eSuperTypes_reference_EClass(
45319 problem:LogicProblem, interpretation:PartialInterpretation,
45320 relationIterpretation:PartialRelationInterpretation,
45321 from: DefinedElement, to: DefinedElement)
45322{
45323 find interpretation(problem,interpretation);
45324 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
45325 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eSuperTypes reference EClass");
45326 find mustExist(problem, interpretation, from);
45327 find mustExist(problem, interpretation, to);
45328 find mustInstanceOfEClass_class(problem,interpretation,from);
45329 find mustInstanceOfEClass_class(problem,interpretation,to);
45330 find mayInRelationeSuperTypes_reference_EClass(problem,interpretation,from,to);
45331 neg find mustInRelationeSuperTypes_reference_EClass(problem,interpretation,from,to);
45332}
45333pattern refineRelation_eAllAttributes_reference_EClass(
45334 problem:LogicProblem, interpretation:PartialInterpretation,
45335 relationIterpretation:PartialRelationInterpretation,
45336 from: DefinedElement, to: DefinedElement)
45337{
45338 find interpretation(problem,interpretation);
45339 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
45340 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllAttributes reference EClass");
45341 find mustExist(problem, interpretation, from);
45342 find mustExist(problem, interpretation, to);
45343 find mustInstanceOfEClass_class(problem,interpretation,from);
45344 find mustInstanceOfEAttribute_class(problem,interpretation,to);
45345 find mayInRelationeAllAttributes_reference_EClass(problem,interpretation,from,to);
45346 neg find mustInRelationeAllAttributes_reference_EClass(problem,interpretation,from,to);
45347}
45348pattern refineRelation_eAllReferences_reference_EClass(
45349 problem:LogicProblem, interpretation:PartialInterpretation,
45350 relationIterpretation:PartialRelationInterpretation,
45351 from: DefinedElement, to: DefinedElement)
45352{
45353 find interpretation(problem,interpretation);
45354 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
45355 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllReferences reference EClass");
45356 find mustExist(problem, interpretation, from);
45357 find mustExist(problem, interpretation, to);
45358 find mustInstanceOfEClass_class(problem,interpretation,from);
45359 find mustInstanceOfEReference_class(problem,interpretation,to);
45360 find mayInRelationeAllReferences_reference_EClass(problem,interpretation,from,to);
45361 neg find mustInRelationeAllReferences_reference_EClass(problem,interpretation,from,to);
45362}
45363pattern refineRelation_eReferences_reference_EClass(
45364 problem:LogicProblem, interpretation:PartialInterpretation,
45365 relationIterpretation:PartialRelationInterpretation,
45366 from: DefinedElement, to: DefinedElement)
45367{
45368 find interpretation(problem,interpretation);
45369 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
45370 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eReferences reference EClass");
45371 find mustExist(problem, interpretation, from);
45372 find mustExist(problem, interpretation, to);
45373 find mustInstanceOfEClass_class(problem,interpretation,from);
45374 find mustInstanceOfEReference_class(problem,interpretation,to);
45375 find mayInRelationeReferences_reference_EClass(problem,interpretation,from,to);
45376 neg find mustInRelationeReferences_reference_EClass(problem,interpretation,from,to);
45377}
45378pattern refineRelation_eAttributes_reference_EClass(
45379 problem:LogicProblem, interpretation:PartialInterpretation,
45380 relationIterpretation:PartialRelationInterpretation,
45381 from: DefinedElement, to: DefinedElement)
45382{
45383 find interpretation(problem,interpretation);
45384 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
45385 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAttributes reference EClass");
45386 find mustExist(problem, interpretation, from);
45387 find mustExist(problem, interpretation, to);
45388 find mustInstanceOfEClass_class(problem,interpretation,from);
45389 find mustInstanceOfEAttribute_class(problem,interpretation,to);
45390 find mayInRelationeAttributes_reference_EClass(problem,interpretation,from,to);
45391 neg find mustInRelationeAttributes_reference_EClass(problem,interpretation,from,to);
45392}
45393pattern refineRelation_eAllContainments_reference_EClass(
45394 problem:LogicProblem, interpretation:PartialInterpretation,
45395 relationIterpretation:PartialRelationInterpretation,
45396 from: DefinedElement, to: DefinedElement)
45397{
45398 find interpretation(problem,interpretation);
45399 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
45400 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllContainments reference EClass");
45401 find mustExist(problem, interpretation, from);
45402 find mustExist(problem, interpretation, to);
45403 find mustInstanceOfEClass_class(problem,interpretation,from);
45404 find mustInstanceOfEReference_class(problem,interpretation,to);
45405 find mayInRelationeAllContainments_reference_EClass(problem,interpretation,from,to);
45406 neg find mustInRelationeAllContainments_reference_EClass(problem,interpretation,from,to);
45407}
45408pattern refineRelation_eAllOperations_reference_EClass(
45409 problem:LogicProblem, interpretation:PartialInterpretation,
45410 relationIterpretation:PartialRelationInterpretation,
45411 from: DefinedElement, to: DefinedElement)
45412{
45413 find interpretation(problem,interpretation);
45414 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
45415 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllOperations reference EClass");
45416 find mustExist(problem, interpretation, from);
45417 find mustExist(problem, interpretation, to);
45418 find mustInstanceOfEClass_class(problem,interpretation,from);
45419 find mustInstanceOfEOperation_class(problem,interpretation,to);
45420 find mayInRelationeAllOperations_reference_EClass(problem,interpretation,from,to);
45421 neg find mustInRelationeAllOperations_reference_EClass(problem,interpretation,from,to);
45422}
45423pattern refineRelation_eAllStructuralFeatures_reference_EClass(
45424 problem:LogicProblem, interpretation:PartialInterpretation,
45425 relationIterpretation:PartialRelationInterpretation,
45426 from: DefinedElement, to: DefinedElement)
45427{
45428 find interpretation(problem,interpretation);
45429 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
45430 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllStructuralFeatures reference EClass");
45431 find mustExist(problem, interpretation, from);
45432 find mustExist(problem, interpretation, to);
45433 find mustInstanceOfEClass_class(problem,interpretation,from);
45434 find mustInstanceOfEStructuralFeature_class(problem,interpretation,to);
45435 find mayInRelationeAllStructuralFeatures_reference_EClass(problem,interpretation,from,to);
45436 neg find mustInRelationeAllStructuralFeatures_reference_EClass(problem,interpretation,from,to);
45437}
45438pattern refineRelation_eAllSuperTypes_reference_EClass(
45439 problem:LogicProblem, interpretation:PartialInterpretation,
45440 relationIterpretation:PartialRelationInterpretation,
45441 from: DefinedElement, to: DefinedElement)
45442{
45443 find interpretation(problem,interpretation);
45444 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
45445 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllSuperTypes reference EClass");
45446 find mustExist(problem, interpretation, from);
45447 find mustExist(problem, interpretation, to);
45448 find mustInstanceOfEClass_class(problem,interpretation,from);
45449 find mustInstanceOfEClass_class(problem,interpretation,to);
45450 find mayInRelationeAllSuperTypes_reference_EClass(problem,interpretation,from,to);
45451 neg find mustInRelationeAllSuperTypes_reference_EClass(problem,interpretation,from,to);
45452}
45453pattern refineRelation_eIDAttribute_reference_EClass(
45454 problem:LogicProblem, interpretation:PartialInterpretation,
45455 relationIterpretation:PartialRelationInterpretation,
45456 from: DefinedElement, to: DefinedElement)
45457{
45458 find interpretation(problem,interpretation);
45459 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
45460 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eIDAttribute reference EClass");
45461 find mustExist(problem, interpretation, from);
45462 find mustExist(problem, interpretation, to);
45463 find mustInstanceOfEClass_class(problem,interpretation,from);
45464 find mustInstanceOfEAttribute_class(problem,interpretation,to);
45465 find mayInRelationeIDAttribute_reference_EClass(problem,interpretation,from,to);
45466 neg find mustInRelationeIDAttribute_reference_EClass(problem,interpretation,from,to);
45467}
45468pattern refineRelation_eAllGenericSuperTypes_reference_EClass(
45469 problem:LogicProblem, interpretation:PartialInterpretation,
45470 relationIterpretation:PartialRelationInterpretation,
45471 from: DefinedElement, to: DefinedElement)
45472{
45473 find interpretation(problem,interpretation);
45474 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
45475 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllGenericSuperTypes reference EClass");
45476 find mustExist(problem, interpretation, from);
45477 find mustExist(problem, interpretation, to);
45478 find mustInstanceOfEClass_class(problem,interpretation,from);
45479 find mustInstanceOfEGenericType_class(problem,interpretation,to);
45480 find mayInRelationeAllGenericSuperTypes_reference_EClass(problem,interpretation,from,to);
45481 neg find mustInRelationeAllGenericSuperTypes_reference_EClass(problem,interpretation,from,to);
45482}
45483pattern refineRelation_eExceptions_reference_EOperation(
45484 problem:LogicProblem, interpretation:PartialInterpretation,
45485 relationIterpretation:PartialRelationInterpretation,
45486 from: DefinedElement, to: DefinedElement)
45487{
45488 find interpretation(problem,interpretation);
45489 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
45490 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eExceptions reference EOperation");
45491 find mustExist(problem, interpretation, from);
45492 find mustExist(problem, interpretation, to);
45493 find mustInstanceOfEOperation_class(problem,interpretation,from);
45494 find mustInstanceOfEClassifier_class(problem,interpretation,to);
45495 find mayInRelationeExceptions_reference_EOperation(problem,interpretation,from,to);
45496 neg find mustInRelationeExceptions_reference_EOperation(problem,interpretation,from,to);
45497}
45498pattern refineRelation_eOpposite_reference_EReference(
45499 problem:LogicProblem, interpretation:PartialInterpretation,
45500 relationIterpretation:PartialRelationInterpretation,
45501 from: DefinedElement, to: DefinedElement)
45502{
45503 find interpretation(problem,interpretation);
45504 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
45505 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eOpposite reference EReference");
45506 find mustExist(problem, interpretation, from);
45507 find mustExist(problem, interpretation, to);
45508 find mustInstanceOfEReference_class(problem,interpretation,from);
45509 find mustInstanceOfEReference_class(problem,interpretation,to);
45510 find mayInRelationeOpposite_reference_EReference(problem,interpretation,from,to);
45511 neg find mustInRelationeOpposite_reference_EReference(problem,interpretation,from,to);
45512}
45513pattern refineRelation_eReferenceType_reference_EReference(
45514 problem:LogicProblem, interpretation:PartialInterpretation,
45515 relationIterpretation:PartialRelationInterpretation,
45516 from: DefinedElement, to: DefinedElement)
45517{
45518 find interpretation(problem,interpretation);
45519 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
45520 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eReferenceType reference EReference");
45521 find mustExist(problem, interpretation, from);
45522 find mustExist(problem, interpretation, to);
45523 find mustInstanceOfEReference_class(problem,interpretation,from);
45524 find mustInstanceOfEClass_class(problem,interpretation,to);
45525 find mayInRelationeReferenceType_reference_EReference(problem,interpretation,from,to);
45526 neg find mustInRelationeReferenceType_reference_EReference(problem,interpretation,from,to);
45527}
45528pattern refineRelation_eKeys_reference_EReference(
45529 problem:LogicProblem, interpretation:PartialInterpretation,
45530 relationIterpretation:PartialRelationInterpretation,
45531 from: DefinedElement, to: DefinedElement)
45532{
45533 find interpretation(problem,interpretation);
45534 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
45535 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eKeys reference EReference");
45536 find mustExist(problem, interpretation, from);
45537 find mustExist(problem, interpretation, to);
45538 find mustInstanceOfEReference_class(problem,interpretation,from);
45539 find mustInstanceOfEAttribute_class(problem,interpretation,to);
45540 find mayInRelationeKeys_reference_EReference(problem,interpretation,from,to);
45541 neg find mustInRelationeKeys_reference_EReference(problem,interpretation,from,to);
45542}
45543pattern refineRelation_eType_reference_ETypedElement(
45544 problem:LogicProblem, interpretation:PartialInterpretation,
45545 relationIterpretation:PartialRelationInterpretation,
45546 from: DefinedElement, to: DefinedElement)
45547{
45548 find interpretation(problem,interpretation);
45549 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
45550 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eType reference ETypedElement");
45551 find mustExist(problem, interpretation, from);
45552 find mustExist(problem, interpretation, to);
45553 find mustInstanceOfETypedElement_class(problem,interpretation,from);
45554 find mustInstanceOfEClassifier_class(problem,interpretation,to);
45555 find mayInRelationeType_reference_ETypedElement(problem,interpretation,from,to);
45556 neg find mustInRelationeType_reference_ETypedElement(problem,interpretation,from,to);
45557}
45558pattern refineRelation_eRawType_reference_EGenericType(
45559 problem:LogicProblem, interpretation:PartialInterpretation,
45560 relationIterpretation:PartialRelationInterpretation,
45561 from: DefinedElement, to: DefinedElement)
45562{
45563 find interpretation(problem,interpretation);
45564 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
45565 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eRawType reference EGenericType");
45566 find mustExist(problem, interpretation, from);
45567 find mustExist(problem, interpretation, to);
45568 find mustInstanceOfEGenericType_class(problem,interpretation,from);
45569 find mustInstanceOfEClassifier_class(problem,interpretation,to);
45570 find mayInRelationeRawType_reference_EGenericType(problem,interpretation,from,to);
45571 neg find mustInRelationeRawType_reference_EGenericType(problem,interpretation,from,to);
45572}
45573pattern refineRelation_eTypeParameter_reference_EGenericType(
45574 problem:LogicProblem, interpretation:PartialInterpretation,
45575 relationIterpretation:PartialRelationInterpretation,
45576 from: DefinedElement, to: DefinedElement)
45577{
45578 find interpretation(problem,interpretation);
45579 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
45580 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eTypeParameter reference EGenericType");
45581 find mustExist(problem, interpretation, from);
45582 find mustExist(problem, interpretation, to);
45583 find mustInstanceOfEGenericType_class(problem,interpretation,from);
45584 find mustInstanceOfETypeParameter_class(problem,interpretation,to);
45585 find mayInRelationeTypeParameter_reference_EGenericType(problem,interpretation,from,to);
45586 neg find mustInRelationeTypeParameter_reference_EGenericType(problem,interpretation,from,to);
45587}
45588pattern refineRelation_eClassifier_reference_EGenericType(
45589 problem:LogicProblem, interpretation:PartialInterpretation,
45590 relationIterpretation:PartialRelationInterpretation,
45591 from: DefinedElement, to: DefinedElement)
45592{
45593 find interpretation(problem,interpretation);
45594 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
45595 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eClassifier reference EGenericType");
45596 find mustExist(problem, interpretation, from);
45597 find mustExist(problem, interpretation, to);
45598 find mustInstanceOfEGenericType_class(problem,interpretation,from);
45599 find mustInstanceOfEClassifier_class(problem,interpretation,to);
45600 find mayInRelationeClassifier_reference_EGenericType(problem,interpretation,from,to);
45601 neg find mustInRelationeClassifier_reference_EGenericType(problem,interpretation,from,to);
45602}
45603pattern refineRelation_iD_attribute_EAttribute(
45604 problem:LogicProblem, interpretation:PartialInterpretation,
45605 relationIterpretation:PartialRelationInterpretation,
45606 from: DefinedElement, to: DefinedElement)
45607{
45608 find interpretation(problem,interpretation);
45609 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
45610 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"iD attribute EAttribute");
45611 find mustExist(problem, interpretation, from);
45612 find mustExist(problem, interpretation, to);
45613 find mustInstanceOfEAttribute_class(problem,interpretation,from);
45614 BooleanElement(to);
45615 find mayInRelationiD_attribute_EAttribute(problem,interpretation,from,to);
45616 neg find mustInRelationiD_attribute_EAttribute(problem,interpretation,from,to);
45617}
45618pattern refineRelation_source_attribute_EAnnotation(
45619 problem:LogicProblem, interpretation:PartialInterpretation,
45620 relationIterpretation:PartialRelationInterpretation,
45621 from: DefinedElement, to: DefinedElement)
45622{
45623 find interpretation(problem,interpretation);
45624 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
45625 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"source attribute EAnnotation");
45626 find mustExist(problem, interpretation, from);
45627 find mustExist(problem, interpretation, to);
45628 find mustInstanceOfEAnnotation_class(problem,interpretation,from);
45629 StringElement(to);
45630 find mayInRelationsource_attribute_EAnnotation(problem,interpretation,from,to);
45631 neg find mustInRelationsource_attribute_EAnnotation(problem,interpretation,from,to);
45632}
45633pattern refineRelation_abstract_attribute_EClass(
45634 problem:LogicProblem, interpretation:PartialInterpretation,
45635 relationIterpretation:PartialRelationInterpretation,
45636 from: DefinedElement, to: DefinedElement)
45637{
45638 find interpretation(problem,interpretation);
45639 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
45640 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"abstract attribute EClass");
45641 find mustExist(problem, interpretation, from);
45642 find mustExist(problem, interpretation, to);
45643 find mustInstanceOfEClass_class(problem,interpretation,from);
45644 BooleanElement(to);
45645 find mayInRelationabstract_attribute_EClass(problem,interpretation,from,to);
45646 neg find mustInRelationabstract_attribute_EClass(problem,interpretation,from,to);
45647}
45648pattern refineRelation_interface_attribute_EClass(
45649 problem:LogicProblem, interpretation:PartialInterpretation,
45650 relationIterpretation:PartialRelationInterpretation,
45651 from: DefinedElement, to: DefinedElement)
45652{
45653 find interpretation(problem,interpretation);
45654 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
45655 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"interface attribute EClass");
45656 find mustExist(problem, interpretation, from);
45657 find mustExist(problem, interpretation, to);
45658 find mustInstanceOfEClass_class(problem,interpretation,from);
45659 BooleanElement(to);
45660 find mayInRelationinterface_attribute_EClass(problem,interpretation,from,to);
45661 neg find mustInRelationinterface_attribute_EClass(problem,interpretation,from,to);
45662}
45663pattern refineRelation_instanceClassName_attribute_EClassifier(
45664 problem:LogicProblem, interpretation:PartialInterpretation,
45665 relationIterpretation:PartialRelationInterpretation,
45666 from: DefinedElement, to: DefinedElement)
45667{
45668 find interpretation(problem,interpretation);
45669 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
45670 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"instanceClassName attribute EClassifier");
45671 find mustExist(problem, interpretation, from);
45672 find mustExist(problem, interpretation, to);
45673 find mustInstanceOfEClassifier_class(problem,interpretation,from);
45674 StringElement(to);
45675 find mayInRelationinstanceClassName_attribute_EClassifier(problem,interpretation,from,to);
45676 neg find mustInRelationinstanceClassName_attribute_EClassifier(problem,interpretation,from,to);
45677}
45678pattern refineRelation_instanceTypeName_attribute_EClassifier(
45679 problem:LogicProblem, interpretation:PartialInterpretation,
45680 relationIterpretation:PartialRelationInterpretation,
45681 from: DefinedElement, to: DefinedElement)
45682{
45683 find interpretation(problem,interpretation);
45684 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
45685 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"instanceTypeName attribute EClassifier");
45686 find mustExist(problem, interpretation, from);
45687 find mustExist(problem, interpretation, to);
45688 find mustInstanceOfEClassifier_class(problem,interpretation,from);
45689 StringElement(to);
45690 find mayInRelationinstanceTypeName_attribute_EClassifier(problem,interpretation,from,to);
45691 neg find mustInRelationinstanceTypeName_attribute_EClassifier(problem,interpretation,from,to);
45692}
45693pattern refineRelation_serializable_attribute_EDataType(
45694 problem:LogicProblem, interpretation:PartialInterpretation,
45695 relationIterpretation:PartialRelationInterpretation,
45696 from: DefinedElement, to: DefinedElement)
45697{
45698 find interpretation(problem,interpretation);
45699 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
45700 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"serializable attribute EDataType");
45701 find mustExist(problem, interpretation, from);
45702 find mustExist(problem, interpretation, to);
45703 find mustInstanceOfEDataType_class(problem,interpretation,from);
45704 BooleanElement(to);
45705 find mayInRelationserializable_attribute_EDataType(problem,interpretation,from,to);
45706 neg find mustInRelationserializable_attribute_EDataType(problem,interpretation,from,to);
45707}
45708pattern refineRelation_value_attribute_EEnumLiteral(
45709 problem:LogicProblem, interpretation:PartialInterpretation,
45710 relationIterpretation:PartialRelationInterpretation,
45711 from: DefinedElement, to: DefinedElement)
45712{
45713 find interpretation(problem,interpretation);
45714 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
45715 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"value attribute EEnumLiteral");
45716 find mustExist(problem, interpretation, from);
45717 find mustExist(problem, interpretation, to);
45718 find mustInstanceOfEEnumLiteral_class(problem,interpretation,from);
45719 IntegerElement(to);
45720 find mayInRelationvalue_attribute_EEnumLiteral(problem,interpretation,from,to);
45721 neg find mustInRelationvalue_attribute_EEnumLiteral(problem,interpretation,from,to);
45722}
45723pattern refineRelation_literal_attribute_EEnumLiteral(
45724 problem:LogicProblem, interpretation:PartialInterpretation,
45725 relationIterpretation:PartialRelationInterpretation,
45726 from: DefinedElement, to: DefinedElement)
45727{
45728 find interpretation(problem,interpretation);
45729 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
45730 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"literal attribute EEnumLiteral");
45731 find mustExist(problem, interpretation, from);
45732 find mustExist(problem, interpretation, to);
45733 find mustInstanceOfEEnumLiteral_class(problem,interpretation,from);
45734 StringElement(to);
45735 find mayInRelationliteral_attribute_EEnumLiteral(problem,interpretation,from,to);
45736 neg find mustInRelationliteral_attribute_EEnumLiteral(problem,interpretation,from,to);
45737}
45738pattern refineRelation_name_attribute_ENamedElement(
45739 problem:LogicProblem, interpretation:PartialInterpretation,
45740 relationIterpretation:PartialRelationInterpretation,
45741 from: DefinedElement, to: DefinedElement)
45742{
45743 find interpretation(problem,interpretation);
45744 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
45745 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"name attribute ENamedElement");
45746 find mustExist(problem, interpretation, from);
45747 find mustExist(problem, interpretation, to);
45748 find mustInstanceOfENamedElement_class(problem,interpretation,from);
45749 StringElement(to);
45750 find mayInRelationname_attribute_ENamedElement(problem,interpretation,from,to);
45751 neg find mustInRelationname_attribute_ENamedElement(problem,interpretation,from,to);
45752}
45753pattern refineRelation_nsURI_attribute_EPackage(
45754 problem:LogicProblem, interpretation:PartialInterpretation,
45755 relationIterpretation:PartialRelationInterpretation,
45756 from: DefinedElement, to: DefinedElement)
45757{
45758 find interpretation(problem,interpretation);
45759 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
45760 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"nsURI attribute EPackage");
45761 find mustExist(problem, interpretation, from);
45762 find mustExist(problem, interpretation, to);
45763 find mustInstanceOfEPackage_class(problem,interpretation,from);
45764 StringElement(to);
45765 find mayInRelationnsURI_attribute_EPackage(problem,interpretation,from,to);
45766 neg find mustInRelationnsURI_attribute_EPackage(problem,interpretation,from,to);
45767}
45768pattern refineRelation_nsPrefix_attribute_EPackage(
45769 problem:LogicProblem, interpretation:PartialInterpretation,
45770 relationIterpretation:PartialRelationInterpretation,
45771 from: DefinedElement, to: DefinedElement)
45772{
45773 find interpretation(problem,interpretation);
45774 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
45775 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"nsPrefix attribute EPackage");
45776 find mustExist(problem, interpretation, from);
45777 find mustExist(problem, interpretation, to);
45778 find mustInstanceOfEPackage_class(problem,interpretation,from);
45779 StringElement(to);
45780 find mayInRelationnsPrefix_attribute_EPackage(problem,interpretation,from,to);
45781 neg find mustInRelationnsPrefix_attribute_EPackage(problem,interpretation,from,to);
45782}
45783pattern refineRelation_containment_attribute_EReference(
45784 problem:LogicProblem, interpretation:PartialInterpretation,
45785 relationIterpretation:PartialRelationInterpretation,
45786 from: DefinedElement, to: DefinedElement)
45787{
45788 find interpretation(problem,interpretation);
45789 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
45790 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"containment attribute EReference");
45791 find mustExist(problem, interpretation, from);
45792 find mustExist(problem, interpretation, to);
45793 find mustInstanceOfEReference_class(problem,interpretation,from);
45794 BooleanElement(to);
45795 find mayInRelationcontainment_attribute_EReference(problem,interpretation,from,to);
45796 neg find mustInRelationcontainment_attribute_EReference(problem,interpretation,from,to);
45797}
45798pattern refineRelation_container_attribute_EReference(
45799 problem:LogicProblem, interpretation:PartialInterpretation,
45800 relationIterpretation:PartialRelationInterpretation,
45801 from: DefinedElement, to: DefinedElement)
45802{
45803 find interpretation(problem,interpretation);
45804 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
45805 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"container attribute EReference");
45806 find mustExist(problem, interpretation, from);
45807 find mustExist(problem, interpretation, to);
45808 find mustInstanceOfEReference_class(problem,interpretation,from);
45809 BooleanElement(to);
45810 find mayInRelationcontainer_attribute_EReference(problem,interpretation,from,to);
45811 neg find mustInRelationcontainer_attribute_EReference(problem,interpretation,from,to);
45812}
45813pattern refineRelation_resolveProxies_attribute_EReference(
45814 problem:LogicProblem, interpretation:PartialInterpretation,
45815 relationIterpretation:PartialRelationInterpretation,
45816 from: DefinedElement, to: DefinedElement)
45817{
45818 find interpretation(problem,interpretation);
45819 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
45820 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"resolveProxies attribute EReference");
45821 find mustExist(problem, interpretation, from);
45822 find mustExist(problem, interpretation, to);
45823 find mustInstanceOfEReference_class(problem,interpretation,from);
45824 BooleanElement(to);
45825 find mayInRelationresolveProxies_attribute_EReference(problem,interpretation,from,to);
45826 neg find mustInRelationresolveProxies_attribute_EReference(problem,interpretation,from,to);
45827}
45828pattern refineRelation_changeable_attribute_EStructuralFeature(
45829 problem:LogicProblem, interpretation:PartialInterpretation,
45830 relationIterpretation:PartialRelationInterpretation,
45831 from: DefinedElement, to: DefinedElement)
45832{
45833 find interpretation(problem,interpretation);
45834 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
45835 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"changeable attribute EStructuralFeature");
45836 find mustExist(problem, interpretation, from);
45837 find mustExist(problem, interpretation, to);
45838 find mustInstanceOfEStructuralFeature_class(problem,interpretation,from);
45839 BooleanElement(to);
45840 find mayInRelationchangeable_attribute_EStructuralFeature(problem,interpretation,from,to);
45841 neg find mustInRelationchangeable_attribute_EStructuralFeature(problem,interpretation,from,to);
45842}
45843pattern refineRelation_volatile_attribute_EStructuralFeature(
45844 problem:LogicProblem, interpretation:PartialInterpretation,
45845 relationIterpretation:PartialRelationInterpretation,
45846 from: DefinedElement, to: DefinedElement)
45847{
45848 find interpretation(problem,interpretation);
45849 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
45850 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"volatile attribute EStructuralFeature");
45851 find mustExist(problem, interpretation, from);
45852 find mustExist(problem, interpretation, to);
45853 find mustInstanceOfEStructuralFeature_class(problem,interpretation,from);
45854 BooleanElement(to);
45855 find mayInRelationvolatile_attribute_EStructuralFeature(problem,interpretation,from,to);
45856 neg find mustInRelationvolatile_attribute_EStructuralFeature(problem,interpretation,from,to);
45857}
45858pattern refineRelation_transient_attribute_EStructuralFeature(
45859 problem:LogicProblem, interpretation:PartialInterpretation,
45860 relationIterpretation:PartialRelationInterpretation,
45861 from: DefinedElement, to: DefinedElement)
45862{
45863 find interpretation(problem,interpretation);
45864 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
45865 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"transient attribute EStructuralFeature");
45866 find mustExist(problem, interpretation, from);
45867 find mustExist(problem, interpretation, to);
45868 find mustInstanceOfEStructuralFeature_class(problem,interpretation,from);
45869 BooleanElement(to);
45870 find mayInRelationtransient_attribute_EStructuralFeature(problem,interpretation,from,to);
45871 neg find mustInRelationtransient_attribute_EStructuralFeature(problem,interpretation,from,to);
45872}
45873pattern refineRelation_defaultValueLiteral_attribute_EStructuralFeature(
45874 problem:LogicProblem, interpretation:PartialInterpretation,
45875 relationIterpretation:PartialRelationInterpretation,
45876 from: DefinedElement, to: DefinedElement)
45877{
45878 find interpretation(problem,interpretation);
45879 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
45880 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"defaultValueLiteral attribute EStructuralFeature");
45881 find mustExist(problem, interpretation, from);
45882 find mustExist(problem, interpretation, to);
45883 find mustInstanceOfEStructuralFeature_class(problem,interpretation,from);
45884 StringElement(to);
45885 find mayInRelationdefaultValueLiteral_attribute_EStructuralFeature(problem,interpretation,from,to);
45886 neg find mustInRelationdefaultValueLiteral_attribute_EStructuralFeature(problem,interpretation,from,to);
45887}
45888pattern refineRelation_unsettable_attribute_EStructuralFeature(
45889 problem:LogicProblem, interpretation:PartialInterpretation,
45890 relationIterpretation:PartialRelationInterpretation,
45891 from: DefinedElement, to: DefinedElement)
45892{
45893 find interpretation(problem,interpretation);
45894 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
45895 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"unsettable attribute EStructuralFeature");
45896 find mustExist(problem, interpretation, from);
45897 find mustExist(problem, interpretation, to);
45898 find mustInstanceOfEStructuralFeature_class(problem,interpretation,from);
45899 BooleanElement(to);
45900 find mayInRelationunsettable_attribute_EStructuralFeature(problem,interpretation,from,to);
45901 neg find mustInRelationunsettable_attribute_EStructuralFeature(problem,interpretation,from,to);
45902}
45903pattern refineRelation_derived_attribute_EStructuralFeature(
45904 problem:LogicProblem, interpretation:PartialInterpretation,
45905 relationIterpretation:PartialRelationInterpretation,
45906 from: DefinedElement, to: DefinedElement)
45907{
45908 find interpretation(problem,interpretation);
45909 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
45910 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"derived attribute EStructuralFeature");
45911 find mustExist(problem, interpretation, from);
45912 find mustExist(problem, interpretation, to);
45913 find mustInstanceOfEStructuralFeature_class(problem,interpretation,from);
45914 BooleanElement(to);
45915 find mayInRelationderived_attribute_EStructuralFeature(problem,interpretation,from,to);
45916 neg find mustInRelationderived_attribute_EStructuralFeature(problem,interpretation,from,to);
45917}
45918pattern refineRelation_ordered_attribute_ETypedElement(
45919 problem:LogicProblem, interpretation:PartialInterpretation,
45920 relationIterpretation:PartialRelationInterpretation,
45921 from: DefinedElement, to: DefinedElement)
45922{
45923 find interpretation(problem,interpretation);
45924 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
45925 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"ordered attribute ETypedElement");
45926 find mustExist(problem, interpretation, from);
45927 find mustExist(problem, interpretation, to);
45928 find mustInstanceOfETypedElement_class(problem,interpretation,from);
45929 BooleanElement(to);
45930 find mayInRelationordered_attribute_ETypedElement(problem,interpretation,from,to);
45931 neg find mustInRelationordered_attribute_ETypedElement(problem,interpretation,from,to);
45932}
45933pattern refineRelation_unique_attribute_ETypedElement(
45934 problem:LogicProblem, interpretation:PartialInterpretation,
45935 relationIterpretation:PartialRelationInterpretation,
45936 from: DefinedElement, to: DefinedElement)
45937{
45938 find interpretation(problem,interpretation);
45939 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
45940 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"unique attribute ETypedElement");
45941 find mustExist(problem, interpretation, from);
45942 find mustExist(problem, interpretation, to);
45943 find mustInstanceOfETypedElement_class(problem,interpretation,from);
45944 BooleanElement(to);
45945 find mayInRelationunique_attribute_ETypedElement(problem,interpretation,from,to);
45946 neg find mustInRelationunique_attribute_ETypedElement(problem,interpretation,from,to);
45947}
45948pattern refineRelation_lowerBound_attribute_ETypedElement(
45949 problem:LogicProblem, interpretation:PartialInterpretation,
45950 relationIterpretation:PartialRelationInterpretation,
45951 from: DefinedElement, to: DefinedElement)
45952{
45953 find interpretation(problem,interpretation);
45954 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
45955 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"lowerBound attribute ETypedElement");
45956 find mustExist(problem, interpretation, from);
45957 find mustExist(problem, interpretation, to);
45958 find mustInstanceOfETypedElement_class(problem,interpretation,from);
45959 IntegerElement(to);
45960 find mayInRelationlowerBound_attribute_ETypedElement(problem,interpretation,from,to);
45961 neg find mustInRelationlowerBound_attribute_ETypedElement(problem,interpretation,from,to);
45962}
45963pattern refineRelation_upperBound_attribute_ETypedElement(
45964 problem:LogicProblem, interpretation:PartialInterpretation,
45965 relationIterpretation:PartialRelationInterpretation,
45966 from: DefinedElement, to: DefinedElement)
45967{
45968 find interpretation(problem,interpretation);
45969 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
45970 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"upperBound attribute ETypedElement");
45971 find mustExist(problem, interpretation, from);
45972 find mustExist(problem, interpretation, to);
45973 find mustInstanceOfETypedElement_class(problem,interpretation,from);
45974 IntegerElement(to);
45975 find mayInRelationupperBound_attribute_ETypedElement(problem,interpretation,from,to);
45976 neg find mustInRelationupperBound_attribute_ETypedElement(problem,interpretation,from,to);
45977}
45978pattern refineRelation_many_attribute_ETypedElement(
45979 problem:LogicProblem, interpretation:PartialInterpretation,
45980 relationIterpretation:PartialRelationInterpretation,
45981 from: DefinedElement, to: DefinedElement)
45982{
45983 find interpretation(problem,interpretation);
45984 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
45985 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"many attribute ETypedElement");
45986 find mustExist(problem, interpretation, from);
45987 find mustExist(problem, interpretation, to);
45988 find mustInstanceOfETypedElement_class(problem,interpretation,from);
45989 BooleanElement(to);
45990 find mayInRelationmany_attribute_ETypedElement(problem,interpretation,from,to);
45991 neg find mustInRelationmany_attribute_ETypedElement(problem,interpretation,from,to);
45992}
45993pattern refineRelation_required_attribute_ETypedElement(
45994 problem:LogicProblem, interpretation:PartialInterpretation, 37332 problem:LogicProblem, interpretation:PartialInterpretation,
45995 relationIterpretation:PartialRelationInterpretation, 37333 relationIterpretation:PartialRelationInterpretation,
45996 from: DefinedElement, to: DefinedElement) 37334 from: DefinedElement, to: DefinedElement)
45997{ 37335{
45998 find interpretation(problem,interpretation); 37336 find interpretation(problem,interpretation);
45999 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 37337 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
46000 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"required attribute ETypedElement"); 37338 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement");
46001 find mustExist(problem, interpretation, from); 37339 find mustExist(problem, interpretation, from);
46002 find mustExist(problem, interpretation, to); 37340 find mustExist(problem, interpretation, to);
46003 find mustInstanceOfETypedElement_class(problem,interpretation,from); 37341 find mustInstanceOfFunctionalElement_class(problem,interpretation,from);
46004 BooleanElement(to); 37342 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,to);
46005 find mayInRelationrequired_attribute_ETypedElement(problem,interpretation,from,to); 37343 find mayInRelationmodel_reference_FunctionalElement(problem,interpretation,from,to);
46006 neg find mustInRelationrequired_attribute_ETypedElement(problem,interpretation,from,to); 37344 neg find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,from,to);
46007} 37345}
46008pattern refineRelation_key_attribute_EStringToStringMapEntry( 37346pattern refineRelation_IncomingLinks_reference_FunctionalInput_and_to_reference_InformationLink(
46009 problem:LogicProblem, interpretation:PartialInterpretation, 37347 problem:LogicProblem, interpretation:PartialInterpretation,
46010 relationIterpretation:PartialRelationInterpretation, 37348 relationIterpretation:PartialRelationInterpretation, oppositeInterpretation:PartialRelationInterpretation,
46011 from: DefinedElement, to: DefinedElement) 37349 from: DefinedElement, to: DefinedElement)
46012{ 37350{
46013 find interpretation(problem,interpretation); 37351 find interpretation(problem,interpretation);
46014 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 37352 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
46015 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"key attribute EStringToStringMapEntry"); 37353 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"IncomingLinks reference FunctionalInput");
37354 PartialInterpretation.partialrelationinterpretation(interpretation,oppositeInterpretation);
37355 PartialRelationInterpretation.interpretationOf.name(oppositeInterpretation,"to reference InformationLink");
46016 find mustExist(problem, interpretation, from); 37356 find mustExist(problem, interpretation, from);
46017 find mustExist(problem, interpretation, to); 37357 find mustExist(problem, interpretation, to);
46018 find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,from); 37358 find mustInstanceOfFunctionalInput_class(problem,interpretation,from);
46019 StringElement(to); 37359 find mustInstanceOfInformationLink_class(problem,interpretation,to);
46020 find mayInRelationkey_attribute_EStringToStringMapEntry(problem,interpretation,from,to); 37360 find mayInRelationIncomingLinks_reference_FunctionalInput(problem,interpretation,from,to);
46021 neg find mustInRelationkey_attribute_EStringToStringMapEntry(problem,interpretation,from,to); 37361 neg find mustInRelationIncomingLinks_reference_FunctionalInput(problem,interpretation,from,to);
46022} 37362}
46023pattern refineRelation_value_attribute_EStringToStringMapEntry( 37363pattern refineRelation_type_attribute_Function(
46024 problem:LogicProblem, interpretation:PartialInterpretation, 37364 problem:LogicProblem, interpretation:PartialInterpretation,
46025 relationIterpretation:PartialRelationInterpretation, 37365 relationIterpretation:PartialRelationInterpretation,
46026 from: DefinedElement, to: DefinedElement) 37366 from: DefinedElement, to: DefinedElement)
46027{ 37367{
46028 find interpretation(problem,interpretation); 37368 find interpretation(problem,interpretation);
46029 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 37369 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
46030 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"value attribute EStringToStringMapEntry"); 37370 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function");
46031 find mustExist(problem, interpretation, from); 37371 find mustExist(problem, interpretation, from);
46032 find mustExist(problem, interpretation, to); 37372 find mustExist(problem, interpretation, to);
46033 find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,from); 37373 find mustInstanceOfFunction_class(problem,interpretation,from);
46034 StringElement(to); 37374 find mustInstanceOfFunctionType_enum(problem,interpretation,to);
46035 find mayInRelationvalue_attribute_EStringToStringMapEntry(problem,interpretation,from,to); 37375 find mayInRelationtype_attribute_Function(problem,interpretation,from,to);
46036 neg find mustInRelationvalue_attribute_EStringToStringMapEntry(problem,interpretation,from,to); 37376 neg find mustInRelationtype_attribute_Function(problem,interpretation,from,to);
46037} 37377}
46038import epackage "http://www.bme.hu/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage" 37378import epackage "http://www.bme.hu/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage"
46039import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem" 37379import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem"
@@ -46119,1130 +37459,436 @@ private pattern isPrimitive(element: PrimitiveElement) {
46119// 1.1.2 domain-specific Type Indexers 37459// 1.1.2 domain-specific Type Indexers
46120////////// 37460//////////
46121/** 37461/**
46122 * An element must be an instance of type "EAttribute class". 37462 * An element must be an instance of type "FunctionalElement class".
46123 */
46124private pattern mustInstanceOfEAttribute_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
46125 Type.name(type,"EAttribute class");
46126 find directInstanceOf(problem,interpretation,element,type);
46127}
46128private pattern scopeDisallowsNewEAttribute_class(problem:LogicProblem, interpretation:PartialInterpretation) {
46129 find interpretation(problem,interpretation);
46130 PartialInterpretation.scopes(interpretation,scope);
46131 Scope.targetTypeInterpretation(scope,typeInterpretation);
46132 Scope.maxNewElements(scope,0);
46133 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
46134 Type.name(type,"EAttribute class");
46135}
46136
46137/**
46138 * An element may be an instance of type "EAttribute class".
46139 */
46140private pattern mayInstanceOfEAttribute_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
46141{
46142 find interpretation(problem,interpretation);
46143 PartialInterpretation.newElements(interpretation,element);
46144 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
46145 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
46146 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
46147 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
46148 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
46149 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
46150 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
46151 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
46152 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
46153 neg find mustInstanceOfEObject_class(problem,interpretation,element);
46154 neg find mustInstanceOfEReference_class(problem,interpretation,element);
46155 neg find scopeDisallowsNewEAttribute_class(problem, interpretation);
46156 neg find isPrimitive(element);
46157} or {
46158 find interpretation(problem,interpretation);
46159 PartialInterpretation.openWorldElements(interpretation,element);
46160 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
46161 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
46162 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
46163 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
46164 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
46165 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
46166 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
46167 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
46168 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
46169 neg find mustInstanceOfEObject_class(problem,interpretation,element);
46170 neg find mustInstanceOfEReference_class(problem,interpretation,element);
46171 neg find scopeDisallowsNewEAttribute_class(problem, interpretation);
46172 neg find isPrimitive(element);
46173} or
46174{ find mustInstanceOfEAttribute_class(problem,interpretation,element); }
46175/**
46176 * An element must be an instance of type "EAnnotation class".
46177 */
46178private pattern mustInstanceOfEAnnotation_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
46179 Type.name(type,"EAnnotation class");
46180 find directInstanceOf(problem,interpretation,element,type);
46181}
46182private pattern scopeDisallowsNewEAnnotation_class(problem:LogicProblem, interpretation:PartialInterpretation) {
46183 find interpretation(problem,interpretation);
46184 PartialInterpretation.scopes(interpretation,scope);
46185 Scope.targetTypeInterpretation(scope,typeInterpretation);
46186 Scope.maxNewElements(scope,0);
46187 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
46188 Type.name(type,"EAnnotation class");
46189}
46190
46191/**
46192 * An element may be an instance of type "EAnnotation class".
46193 */
46194private pattern mayInstanceOfEAnnotation_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
46195{
46196 find interpretation(problem,interpretation);
46197 PartialInterpretation.newElements(interpretation,element);
46198 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
46199 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
46200 neg find mustInstanceOfEObject_class(problem,interpretation,element);
46201 neg find mustInstanceOfENamedElement_class(problem,interpretation,element);
46202 neg find scopeDisallowsNewEAnnotation_class(problem, interpretation);
46203 neg find isPrimitive(element);
46204} or {
46205 find interpretation(problem,interpretation);
46206 PartialInterpretation.openWorldElements(interpretation,element);
46207 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
46208 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
46209 neg find mustInstanceOfEObject_class(problem,interpretation,element);
46210 neg find mustInstanceOfENamedElement_class(problem,interpretation,element);
46211 neg find scopeDisallowsNewEAnnotation_class(problem, interpretation);
46212 neg find isPrimitive(element);
46213} or
46214{ find mustInstanceOfEAnnotation_class(problem,interpretation,element); }
46215/**
46216 * An element must be an instance of type "EClass class".
46217 */
46218private pattern mustInstanceOfEClass_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
46219 Type.name(type,"EClass class");
46220 find directInstanceOf(problem,interpretation,element,type);
46221}
46222private pattern scopeDisallowsNewEClass_class(problem:LogicProblem, interpretation:PartialInterpretation) {
46223 find interpretation(problem,interpretation);
46224 PartialInterpretation.scopes(interpretation,scope);
46225 Scope.targetTypeInterpretation(scope,typeInterpretation);
46226 Scope.maxNewElements(scope,0);
46227 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
46228 Type.name(type,"EClass class");
46229}
46230
46231/**
46232 * An element may be an instance of type "EClass class".
46233 */
46234private pattern mayInstanceOfEClass_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
46235{
46236 find interpretation(problem,interpretation);
46237 PartialInterpretation.newElements(interpretation,element);
46238 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
46239 neg find mustInstanceOfEDataType_class(problem,interpretation,element);
46240 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
46241 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
46242 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
46243 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
46244 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
46245 neg find mustInstanceOfEObject_class(problem,interpretation,element);
46246 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
46247 neg find scopeDisallowsNewEClass_class(problem, interpretation);
46248 neg find isPrimitive(element);
46249} or {
46250 find interpretation(problem,interpretation);
46251 PartialInterpretation.openWorldElements(interpretation,element);
46252 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
46253 neg find mustInstanceOfEDataType_class(problem,interpretation,element);
46254 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
46255 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
46256 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
46257 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
46258 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
46259 neg find mustInstanceOfEObject_class(problem,interpretation,element);
46260 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
46261 neg find scopeDisallowsNewEClass_class(problem, interpretation);
46262 neg find isPrimitive(element);
46263} or
46264{ find mustInstanceOfEClass_class(problem,interpretation,element); }
46265/**
46266 * An element must be an instance of type "EClassifier class".
46267 */
46268private pattern mustInstanceOfEClassifier_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
46269 Type.name(type,"EClassifier class");
46270 find directInstanceOf(problem,interpretation,element,type);
46271}
46272private pattern scopeDisallowsNewEClassifier_class(problem:LogicProblem, interpretation:PartialInterpretation) {
46273 find interpretation(problem,interpretation);
46274 PartialInterpretation.scopes(interpretation,scope);
46275 Scope.targetTypeInterpretation(scope,typeInterpretation);
46276 Scope.maxNewElements(scope,0);
46277 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
46278 Type.name(type,"EClassifier class");
46279}
46280
46281/**
46282 * An element may be an instance of type "EClassifier class".
46283 */
46284private pattern mayInstanceOfEClassifier_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
46285{
46286 find interpretation(problem,interpretation);
46287 PartialInterpretation.newElements(interpretation,element);
46288 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
46289 neg find mustInstanceOfEDataType_class(problem,interpretation,element);
46290 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
46291 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
46292 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
46293 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
46294 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
46295 neg find mustInstanceOfEObject_class(problem,interpretation,element);
46296 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
46297 neg find mustInstanceOfEClass_class(problem,interpretation,element);
46298 neg find scopeDisallowsNewEClassifier_class(problem, interpretation);
46299 neg find isPrimitive(element);
46300} or {
46301 find interpretation(problem,interpretation);
46302 PartialInterpretation.openWorldElements(interpretation,element);
46303 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
46304 neg find mustInstanceOfEDataType_class(problem,interpretation,element);
46305 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
46306 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
46307 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
46308 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
46309 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
46310 neg find mustInstanceOfEObject_class(problem,interpretation,element);
46311 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
46312 neg find mustInstanceOfEClass_class(problem,interpretation,element);
46313 neg find scopeDisallowsNewEClassifier_class(problem, interpretation);
46314 neg find isPrimitive(element);
46315} or
46316{ find mustInstanceOfEClassifier_class(problem,interpretation,element); }
46317/**
46318 * An element must be an instance of type "EDataType class".
46319 */
46320private pattern mustInstanceOfEDataType_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
46321 Type.name(type,"EDataType class");
46322 find directInstanceOf(problem,interpretation,element,type);
46323}
46324private pattern scopeDisallowsNewEDataType_class(problem:LogicProblem, interpretation:PartialInterpretation) {
46325 find interpretation(problem,interpretation);
46326 PartialInterpretation.scopes(interpretation,scope);
46327 Scope.targetTypeInterpretation(scope,typeInterpretation);
46328 Scope.maxNewElements(scope,0);
46329 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
46330 Type.name(type,"EDataType class");
46331}
46332
46333/**
46334 * An element may be an instance of type "EDataType class".
46335 */
46336private pattern mayInstanceOfEDataType_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
46337{
46338 find interpretation(problem,interpretation);
46339 PartialInterpretation.newElements(interpretation,element);
46340 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
46341 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
46342 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
46343 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
46344 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
46345 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
46346 neg find mustInstanceOfEObject_class(problem,interpretation,element);
46347 neg find mustInstanceOfEEnum_class(problem,interpretation,element);
46348 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
46349 neg find mustInstanceOfEClass_class(problem,interpretation,element);
46350 neg find scopeDisallowsNewEDataType_class(problem, interpretation);
46351 neg find isPrimitive(element);
46352} or {
46353 find interpretation(problem,interpretation);
46354 PartialInterpretation.openWorldElements(interpretation,element);
46355 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
46356 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
46357 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
46358 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
46359 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
46360 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
46361 neg find mustInstanceOfEObject_class(problem,interpretation,element);
46362 neg find mustInstanceOfEEnum_class(problem,interpretation,element);
46363 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
46364 neg find mustInstanceOfEClass_class(problem,interpretation,element);
46365 neg find scopeDisallowsNewEDataType_class(problem, interpretation);
46366 neg find isPrimitive(element);
46367} or
46368{ find mustInstanceOfEDataType_class(problem,interpretation,element); }
46369/**
46370 * An element must be an instance of type "EEnum class".
46371 */
46372private pattern mustInstanceOfEEnum_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
46373 Type.name(type,"EEnum class");
46374 find directInstanceOf(problem,interpretation,element,type);
46375}
46376private pattern scopeDisallowsNewEEnum_class(problem:LogicProblem, interpretation:PartialInterpretation) {
46377 find interpretation(problem,interpretation);
46378 PartialInterpretation.scopes(interpretation,scope);
46379 Scope.targetTypeInterpretation(scope,typeInterpretation);
46380 Scope.maxNewElements(scope,0);
46381 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
46382 Type.name(type,"EEnum class");
46383}
46384
46385/**
46386 * An element may be an instance of type "EEnum class".
46387 */
46388private pattern mayInstanceOfEEnum_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
46389{
46390 find interpretation(problem,interpretation);
46391 PartialInterpretation.newElements(interpretation,element);
46392 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
46393 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
46394 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
46395 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
46396 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
46397 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
46398 neg find mustInstanceOfEObject_class(problem,interpretation,element);
46399 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
46400 neg find mustInstanceOfEClass_class(problem,interpretation,element);
46401 neg find scopeDisallowsNewEEnum_class(problem, interpretation);
46402 neg find isPrimitive(element);
46403} or {
46404 find interpretation(problem,interpretation);
46405 PartialInterpretation.openWorldElements(interpretation,element);
46406 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
46407 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
46408 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
46409 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
46410 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
46411 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
46412 neg find mustInstanceOfEObject_class(problem,interpretation,element);
46413 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
46414 neg find mustInstanceOfEClass_class(problem,interpretation,element);
46415 neg find scopeDisallowsNewEEnum_class(problem, interpretation);
46416 neg find isPrimitive(element);
46417} or
46418{ find mustInstanceOfEEnum_class(problem,interpretation,element); }
46419/**
46420 * An element must be an instance of type "EEnumLiteral class".
46421 */
46422private pattern mustInstanceOfEEnumLiteral_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
46423 Type.name(type,"EEnumLiteral class");
46424 find directInstanceOf(problem,interpretation,element,type);
46425}
46426private pattern scopeDisallowsNewEEnumLiteral_class(problem:LogicProblem, interpretation:PartialInterpretation) {
46427 find interpretation(problem,interpretation);
46428 PartialInterpretation.scopes(interpretation,scope);
46429 Scope.targetTypeInterpretation(scope,typeInterpretation);
46430 Scope.maxNewElements(scope,0);
46431 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
46432 Type.name(type,"EEnumLiteral class");
46433}
46434
46435/**
46436 * An element may be an instance of type "EEnumLiteral class".
46437 */
46438private pattern mayInstanceOfEEnumLiteral_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
46439{
46440 find interpretation(problem,interpretation);
46441 PartialInterpretation.newElements(interpretation,element);
46442 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
46443 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
46444 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
46445 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
46446 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
46447 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
46448 neg find mustInstanceOfEObject_class(problem,interpretation,element);
46449 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
46450 neg find scopeDisallowsNewEEnumLiteral_class(problem, interpretation);
46451 neg find isPrimitive(element);
46452} or {
46453 find interpretation(problem,interpretation);
46454 PartialInterpretation.openWorldElements(interpretation,element);
46455 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
46456 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
46457 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
46458 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
46459 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
46460 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
46461 neg find mustInstanceOfEObject_class(problem,interpretation,element);
46462 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
46463 neg find scopeDisallowsNewEEnumLiteral_class(problem, interpretation);
46464 neg find isPrimitive(element);
46465} or
46466{ find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); }
46467/**
46468 * An element must be an instance of type "EModelElement class".
46469 */
46470private pattern mustInstanceOfEModelElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
46471 Type.name(type,"EModelElement class");
46472 find directInstanceOf(problem,interpretation,element,type);
46473}
46474private pattern scopeDisallowsNewEModelElement_class(problem:LogicProblem, interpretation:PartialInterpretation) {
46475 find interpretation(problem,interpretation);
46476 PartialInterpretation.scopes(interpretation,scope);
46477 Scope.targetTypeInterpretation(scope,typeInterpretation);
46478 Scope.maxNewElements(scope,0);
46479 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
46480 Type.name(type,"EModelElement class");
46481}
46482
46483/**
46484 * An element may be an instance of type "EModelElement class".
46485 */
46486private pattern mayInstanceOfEModelElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
46487{
46488 find interpretation(problem,interpretation);
46489 PartialInterpretation.newElements(interpretation,element);
46490 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
46491 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
46492 neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element);
46493 neg find mustInstanceOfEObject_class(problem,interpretation,element);
46494 neg find mustInstanceOfENamedElement_class(problem,interpretation,element);
46495 neg find scopeDisallowsNewEModelElement_class(problem, interpretation);
46496 neg find isPrimitive(element);
46497} or {
46498 find interpretation(problem,interpretation);
46499 PartialInterpretation.openWorldElements(interpretation,element);
46500 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
46501 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
46502 neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element);
46503 neg find mustInstanceOfEObject_class(problem,interpretation,element);
46504 neg find mustInstanceOfENamedElement_class(problem,interpretation,element);
46505 neg find scopeDisallowsNewEModelElement_class(problem, interpretation);
46506 neg find isPrimitive(element);
46507} or
46508{ find mustInstanceOfEModelElement_class(problem,interpretation,element); }
46509/**
46510 * An element must be an instance of type "ENamedElement class".
46511 */
46512private pattern mustInstanceOfENamedElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
46513 Type.name(type,"ENamedElement class");
46514 find directInstanceOf(problem,interpretation,element,type);
46515}
46516private pattern scopeDisallowsNewENamedElement_class(problem:LogicProblem, interpretation:PartialInterpretation) {
46517 find interpretation(problem,interpretation);
46518 PartialInterpretation.scopes(interpretation,scope);
46519 Scope.targetTypeInterpretation(scope,typeInterpretation);
46520 Scope.maxNewElements(scope,0);
46521 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
46522 Type.name(type,"ENamedElement class");
46523}
46524
46525/**
46526 * An element may be an instance of type "ENamedElement class".
46527 */
46528private pattern mayInstanceOfENamedElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
46529{
46530 find interpretation(problem,interpretation);
46531 PartialInterpretation.newElements(interpretation,element);
46532 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
46533 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
46534 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
46535 neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element);
46536 neg find mustInstanceOfEObject_class(problem,interpretation,element);
46537 neg find scopeDisallowsNewENamedElement_class(problem, interpretation);
46538 neg find isPrimitive(element);
46539} or {
46540 find interpretation(problem,interpretation);
46541 PartialInterpretation.openWorldElements(interpretation,element);
46542 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
46543 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
46544 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
46545 neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element);
46546 neg find mustInstanceOfEObject_class(problem,interpretation,element);
46547 neg find scopeDisallowsNewENamedElement_class(problem, interpretation);
46548 neg find isPrimitive(element);
46549} or
46550{ find mustInstanceOfENamedElement_class(problem,interpretation,element); }
46551/**
46552 * An element must be an instance of type "EObject class".
46553 */
46554private pattern mustInstanceOfEObject_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
46555 Type.name(type,"EObject class");
46556 find directInstanceOf(problem,interpretation,element,type);
46557}
46558private pattern scopeDisallowsNewEObject_class(problem:LogicProblem, interpretation:PartialInterpretation) {
46559 find interpretation(problem,interpretation);
46560 PartialInterpretation.scopes(interpretation,scope);
46561 Scope.targetTypeInterpretation(scope,typeInterpretation);
46562 Scope.maxNewElements(scope,0);
46563 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
46564 Type.name(type,"EObject class");
46565}
46566
46567/**
46568 * An element may be an instance of type "EObject class".
46569 */
46570private pattern mayInstanceOfEObject_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
46571{
46572 find interpretation(problem,interpretation);
46573 PartialInterpretation.newElements(interpretation,element);
46574 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
46575 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
46576 neg find mustInstanceOfEModelElement_class(problem,interpretation,element);
46577 neg find scopeDisallowsNewEObject_class(problem, interpretation);
46578 neg find isPrimitive(element);
46579} or {
46580 find interpretation(problem,interpretation);
46581 PartialInterpretation.openWorldElements(interpretation,element);
46582 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
46583 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
46584 neg find mustInstanceOfEModelElement_class(problem,interpretation,element);
46585 neg find scopeDisallowsNewEObject_class(problem, interpretation);
46586 neg find isPrimitive(element);
46587} or
46588{ find mustInstanceOfEObject_class(problem,interpretation,element); }
46589/**
46590 * An element must be an instance of type "EOperation class".
46591 */
46592private pattern mustInstanceOfEOperation_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
46593 Type.name(type,"EOperation class");
46594 find directInstanceOf(problem,interpretation,element,type);
46595}
46596private pattern scopeDisallowsNewEOperation_class(problem:LogicProblem, interpretation:PartialInterpretation) {
46597 find interpretation(problem,interpretation);
46598 PartialInterpretation.scopes(interpretation,scope);
46599 Scope.targetTypeInterpretation(scope,typeInterpretation);
46600 Scope.maxNewElements(scope,0);
46601 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
46602 Type.name(type,"EOperation class");
46603}
46604
46605/**
46606 * An element may be an instance of type "EOperation class".
46607 */
46608private pattern mayInstanceOfEOperation_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
46609{
46610 find interpretation(problem,interpretation);
46611 PartialInterpretation.newElements(interpretation,element);
46612 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
46613 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
46614 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
46615 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
46616 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
46617 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
46618 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
46619 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
46620 neg find mustInstanceOfEObject_class(problem,interpretation,element);
46621 neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element);
46622 neg find scopeDisallowsNewEOperation_class(problem, interpretation);
46623 neg find isPrimitive(element);
46624} or {
46625 find interpretation(problem,interpretation);
46626 PartialInterpretation.openWorldElements(interpretation,element);
46627 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
46628 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
46629 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
46630 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
46631 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
46632 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
46633 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
46634 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
46635 neg find mustInstanceOfEObject_class(problem,interpretation,element);
46636 neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element);
46637 neg find scopeDisallowsNewEOperation_class(problem, interpretation);
46638 neg find isPrimitive(element);
46639} or
46640{ find mustInstanceOfEOperation_class(problem,interpretation,element); }
46641/**
46642 * An element must be an instance of type "EPackage class".
46643 */
46644private pattern mustInstanceOfEPackage_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
46645 Type.name(type,"EPackage class");
46646 find directInstanceOf(problem,interpretation,element,type);
46647}
46648private pattern scopeDisallowsNewEPackage_class(problem:LogicProblem, interpretation:PartialInterpretation) {
46649 find interpretation(problem,interpretation);
46650 PartialInterpretation.scopes(interpretation,scope);
46651 Scope.targetTypeInterpretation(scope,typeInterpretation);
46652 Scope.maxNewElements(scope,0);
46653 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
46654 Type.name(type,"EPackage class");
46655}
46656
46657/**
46658 * An element may be an instance of type "EPackage class".
46659 */
46660private pattern mayInstanceOfEPackage_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
46661{
46662 find interpretation(problem,interpretation);
46663 PartialInterpretation.newElements(interpretation,element);
46664 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
46665 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
46666 neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element);
46667 neg find mustInstanceOfEObject_class(problem,interpretation,element);
46668 neg find scopeDisallowsNewEPackage_class(problem, interpretation);
46669 neg find isPrimitive(element);
46670} or {
46671 find interpretation(problem,interpretation);
46672 PartialInterpretation.openWorldElements(interpretation,element);
46673 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
46674 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
46675 neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element);
46676 neg find mustInstanceOfEObject_class(problem,interpretation,element);
46677 neg find scopeDisallowsNewEPackage_class(problem, interpretation);
46678 neg find isPrimitive(element);
46679} or
46680{ find mustInstanceOfEPackage_class(problem,interpretation,element); }
46681/**
46682 * An element must be an instance of type "EParameter class".
46683 */ 37463 */
46684private pattern mustInstanceOfEParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 37464private pattern mustInstanceOfFunctionalElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
46685 Type.name(type,"EParameter class"); 37465 Type.name(type,"FunctionalElement class");
46686 find directInstanceOf(problem,interpretation,element,type); 37466 find directInstanceOf(problem,interpretation,element,type);
46687} 37467}
46688private pattern scopeDisallowsNewEParameter_class(problem:LogicProblem, interpretation:PartialInterpretation) { 37468private pattern scopeDisallowsNewFunctionalElement_class(problem:LogicProblem, interpretation:PartialInterpretation) {
46689 find interpretation(problem,interpretation); 37469 find interpretation(problem,interpretation);
46690 PartialInterpretation.scopes(interpretation,scope); 37470 PartialInterpretation.scopes(interpretation,scope);
46691 Scope.targetTypeInterpretation(scope,typeInterpretation); 37471 Scope.targetTypeInterpretation(scope,typeInterpretation);
46692 Scope.maxNewElements(scope,0); 37472 Scope.maxNewElements(scope,0);
46693 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 37473 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
46694 Type.name(type,"EParameter class"); 37474 Type.name(type,"FunctionalElement class");
46695} 37475}
46696 37476
46697/** 37477/**
46698 * An element may be an instance of type "EParameter class". 37478 * An element may be an instance of type "FunctionalElement class".
46699 */ 37479 */
46700private pattern mayInstanceOfEParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 37480private pattern mayInstanceOfFunctionalElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
46701{ 37481{
46702 find interpretation(problem,interpretation); 37482 find interpretation(problem,interpretation);
46703 PartialInterpretation.newElements(interpretation,element); 37483 PartialInterpretation.newElements(interpretation,element);
46704 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 37484 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
46705 neg find mustInstanceOfEOperation_class(problem,interpretation,element); 37485 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
46706 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 37486 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
46707 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 37487 neg find mustInstanceOfFunction_class(problem,interpretation,element);
46708 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); 37488 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
46709 neg find mustInstanceOfEPackage_class(problem,interpretation,element); 37489 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
46710 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); 37490 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
46711 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
46712 neg find mustInstanceOfEObject_class(problem,interpretation,element);
46713 neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element);
46714 neg find scopeDisallowsNewEParameter_class(problem, interpretation);
46715 neg find isPrimitive(element); 37491 neg find isPrimitive(element);
46716} or { 37492} or {
46717 find interpretation(problem,interpretation); 37493 find interpretation(problem,interpretation);
46718 PartialInterpretation.openWorldElements(interpretation,element); 37494 PartialInterpretation.openWorldElements(interpretation,element);
46719 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 37495 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
46720 neg find mustInstanceOfEOperation_class(problem,interpretation,element); 37496 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
46721 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 37497 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
46722 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 37498 neg find mustInstanceOfFunction_class(problem,interpretation,element);
46723 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); 37499 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
46724 neg find mustInstanceOfEPackage_class(problem,interpretation,element); 37500 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
46725 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); 37501 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
46726 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
46727 neg find mustInstanceOfEObject_class(problem,interpretation,element);
46728 neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element);
46729 neg find scopeDisallowsNewEParameter_class(problem, interpretation);
46730 neg find isPrimitive(element); 37502 neg find isPrimitive(element);
46731} or 37503} or
46732{ find mustInstanceOfEParameter_class(problem,interpretation,element); } 37504{ find mustInstanceOfFunctionalElement_class(problem,interpretation,element); }
46733/** 37505/**
46734 * An element must be an instance of type "EReference class". 37506 * An element must be an instance of type "FunctionalArchitectureModel class".
46735 */ 37507 */
46736private pattern mustInstanceOfEReference_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 37508private pattern mustInstanceOfFunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
46737 Type.name(type,"EReference class"); 37509 Type.name(type,"FunctionalArchitectureModel class");
46738 find directInstanceOf(problem,interpretation,element,type); 37510 find directInstanceOf(problem,interpretation,element,type);
46739} 37511}
46740private pattern scopeDisallowsNewEReference_class(problem:LogicProblem, interpretation:PartialInterpretation) { 37512private pattern scopeDisallowsNewFunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation) {
46741 find interpretation(problem,interpretation); 37513 find interpretation(problem,interpretation);
46742 PartialInterpretation.scopes(interpretation,scope); 37514 PartialInterpretation.scopes(interpretation,scope);
46743 Scope.targetTypeInterpretation(scope,typeInterpretation); 37515 Scope.targetTypeInterpretation(scope,typeInterpretation);
46744 Scope.maxNewElements(scope,0); 37516 Scope.maxNewElements(scope,0);
46745 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 37517 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
46746 Type.name(type,"EReference class"); 37518 Type.name(type,"FunctionalArchitectureModel class");
46747} 37519}
46748 37520
46749/** 37521/**
46750 * An element may be an instance of type "EReference class". 37522 * An element may be an instance of type "FunctionalArchitectureModel class".
46751 */ 37523 */
46752private pattern mayInstanceOfEReference_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 37524private pattern mayInstanceOfFunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
46753{ 37525{
46754 find interpretation(problem,interpretation); 37526 find interpretation(problem,interpretation);
46755 PartialInterpretation.newElements(interpretation,element); 37527 PartialInterpretation.newElements(interpretation,element);
46756 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 37528 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
46757 neg find mustInstanceOfEOperation_class(problem,interpretation,element); 37529 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
46758 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 37530 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
46759 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 37531 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
46760 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); 37532 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
46761 neg find mustInstanceOfEPackage_class(problem,interpretation,element); 37533 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
46762 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
46763 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
46764 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
46765 neg find mustInstanceOfEObject_class(problem,interpretation,element);
46766 neg find mustInstanceOfEAttribute_class(problem,interpretation,element);
46767 neg find scopeDisallowsNewEReference_class(problem, interpretation);
46768 neg find isPrimitive(element); 37534 neg find isPrimitive(element);
46769} or { 37535} or {
46770 find interpretation(problem,interpretation); 37536 find interpretation(problem,interpretation);
46771 PartialInterpretation.openWorldElements(interpretation,element); 37537 PartialInterpretation.openWorldElements(interpretation,element);
46772 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 37538 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
46773 neg find mustInstanceOfEOperation_class(problem,interpretation,element); 37539 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
46774 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 37540 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
46775 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 37541 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
46776 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); 37542 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
46777 neg find mustInstanceOfEPackage_class(problem,interpretation,element); 37543 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
46778 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
46779 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
46780 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
46781 neg find mustInstanceOfEObject_class(problem,interpretation,element);
46782 neg find mustInstanceOfEAttribute_class(problem,interpretation,element);
46783 neg find scopeDisallowsNewEReference_class(problem, interpretation);
46784 neg find isPrimitive(element); 37544 neg find isPrimitive(element);
46785} or 37545} or
46786{ find mustInstanceOfEReference_class(problem,interpretation,element); } 37546{ find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); }
46787/** 37547/**
46788 * An element must be an instance of type "EStructuralFeature class". 37548 * An element must be an instance of type "Function class".
46789 */ 37549 */
46790private pattern mustInstanceOfEStructuralFeature_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 37550private pattern mustInstanceOfFunction_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
46791 Type.name(type,"EStructuralFeature class"); 37551 Type.name(type,"Function class");
46792 find directInstanceOf(problem,interpretation,element,type); 37552 find directInstanceOf(problem,interpretation,element,type);
46793} 37553}
46794private pattern scopeDisallowsNewEStructuralFeature_class(problem:LogicProblem, interpretation:PartialInterpretation) { 37554private pattern scopeDisallowsNewFunction_class(problem:LogicProblem, interpretation:PartialInterpretation) {
46795 find interpretation(problem,interpretation); 37555 find interpretation(problem,interpretation);
46796 PartialInterpretation.scopes(interpretation,scope); 37556 PartialInterpretation.scopes(interpretation,scope);
46797 Scope.targetTypeInterpretation(scope,typeInterpretation); 37557 Scope.targetTypeInterpretation(scope,typeInterpretation);
46798 Scope.maxNewElements(scope,0); 37558 Scope.maxNewElements(scope,0);
46799 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 37559 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
46800 Type.name(type,"EStructuralFeature class"); 37560 Type.name(type,"Function class");
46801} 37561}
46802 37562
46803/** 37563/**
46804 * An element may be an instance of type "EStructuralFeature class". 37564 * An element may be an instance of type "Function class".
46805 */ 37565 */
46806private pattern mayInstanceOfEStructuralFeature_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 37566private pattern mayInstanceOfFunction_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
46807{ 37567{
46808 find interpretation(problem,interpretation); 37568 find interpretation(problem,interpretation);
46809 PartialInterpretation.newElements(interpretation,element); 37569 PartialInterpretation.newElements(interpretation,element);
46810 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 37570 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
46811 neg find mustInstanceOfEOperation_class(problem,interpretation,element); 37571 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
46812 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 37572 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
46813 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 37573 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
46814 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); 37574 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
46815 neg find mustInstanceOfEPackage_class(problem,interpretation,element); 37575 neg find scopeDisallowsNewFunction_class(problem, interpretation);
46816 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
46817 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
46818 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
46819 neg find mustInstanceOfEObject_class(problem,interpretation,element);
46820 neg find mustInstanceOfEReference_class(problem,interpretation,element);
46821 neg find mustInstanceOfEAttribute_class(problem,interpretation,element);
46822 neg find scopeDisallowsNewEStructuralFeature_class(problem, interpretation);
46823 neg find isPrimitive(element); 37576 neg find isPrimitive(element);
46824} or { 37577} or {
46825 find interpretation(problem,interpretation); 37578 find interpretation(problem,interpretation);
46826 PartialInterpretation.openWorldElements(interpretation,element); 37579 PartialInterpretation.openWorldElements(interpretation,element);
46827 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 37580 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
46828 neg find mustInstanceOfEOperation_class(problem,interpretation,element); 37581 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
46829 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 37582 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
46830 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 37583 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
46831 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); 37584 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
46832 neg find mustInstanceOfEPackage_class(problem,interpretation,element); 37585 neg find scopeDisallowsNewFunction_class(problem, interpretation);
46833 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
46834 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
46835 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
46836 neg find mustInstanceOfEObject_class(problem,interpretation,element);
46837 neg find mustInstanceOfEReference_class(problem,interpretation,element);
46838 neg find mustInstanceOfEAttribute_class(problem,interpretation,element);
46839 neg find scopeDisallowsNewEStructuralFeature_class(problem, interpretation);
46840 neg find isPrimitive(element); 37586 neg find isPrimitive(element);
46841} or 37587} or
46842{ find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); } 37588{ find mustInstanceOfFunction_class(problem,interpretation,element); }
46843/** 37589/**
46844 * An element must be an instance of type "ETypedElement class". 37590 * An element must be an instance of type "FAMTerminator class".
46845 */ 37591 */
46846private pattern mustInstanceOfETypedElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 37592private pattern mustInstanceOfFAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
46847 Type.name(type,"ETypedElement class"); 37593 Type.name(type,"FAMTerminator class");
46848 find directInstanceOf(problem,interpretation,element,type); 37594 find directInstanceOf(problem,interpretation,element,type);
46849} 37595}
46850private pattern scopeDisallowsNewETypedElement_class(problem:LogicProblem, interpretation:PartialInterpretation) { 37596private pattern scopeDisallowsNewFAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation) {
46851 find interpretation(problem,interpretation); 37597 find interpretation(problem,interpretation);
46852 PartialInterpretation.scopes(interpretation,scope); 37598 PartialInterpretation.scopes(interpretation,scope);
46853 Scope.targetTypeInterpretation(scope,typeInterpretation); 37599 Scope.targetTypeInterpretation(scope,typeInterpretation);
46854 Scope.maxNewElements(scope,0); 37600 Scope.maxNewElements(scope,0);
46855 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 37601 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
46856 Type.name(type,"ETypedElement class"); 37602 Type.name(type,"FAMTerminator class");
46857} 37603}
46858 37604
46859/** 37605/**
46860 * An element may be an instance of type "ETypedElement class". 37606 * An element may be an instance of type "FAMTerminator class".
46861 */ 37607 */
46862private pattern mayInstanceOfETypedElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 37608private pattern mayInstanceOfFAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
46863{ 37609{
46864 find interpretation(problem,interpretation); 37610 find interpretation(problem,interpretation);
46865 PartialInterpretation.newElements(interpretation,element); 37611 PartialInterpretation.newElements(interpretation,element);
46866 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 37612 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
46867 neg find mustInstanceOfEOperation_class(problem,interpretation,element); 37613 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
46868 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 37614 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
46869 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 37615 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
46870 neg find mustInstanceOfEPackage_class(problem,interpretation,element); 37616 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
46871 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); 37617 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
46872 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
46873 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
46874 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
46875 neg find mustInstanceOfEObject_class(problem,interpretation,element);
46876 neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element);
46877 neg find scopeDisallowsNewETypedElement_class(problem, interpretation);
46878 neg find isPrimitive(element); 37618 neg find isPrimitive(element);
46879} or { 37619} or {
46880 find interpretation(problem,interpretation); 37620 find interpretation(problem,interpretation);
46881 PartialInterpretation.openWorldElements(interpretation,element); 37621 PartialInterpretation.openWorldElements(interpretation,element);
46882 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 37622 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
46883 neg find mustInstanceOfEOperation_class(problem,interpretation,element); 37623 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
46884 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 37624 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
46885 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 37625 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
46886 neg find mustInstanceOfEPackage_class(problem,interpretation,element); 37626 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
46887 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); 37627 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
46888 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
46889 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
46890 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
46891 neg find mustInstanceOfEObject_class(problem,interpretation,element);
46892 neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element);
46893 neg find scopeDisallowsNewETypedElement_class(problem, interpretation);
46894 neg find isPrimitive(element); 37628 neg find isPrimitive(element);
46895} or 37629} or
46896{ find mustInstanceOfETypedElement_class(problem,interpretation,element); } 37630{ find mustInstanceOfFAMTerminator_class(problem,interpretation,element); }
46897/** 37631/**
46898 * An element must be an instance of type "EStringToStringMapEntry class". 37632 * An element must be an instance of type "InformationLink class".
46899 */ 37633 */
46900private pattern mustInstanceOfEStringToStringMapEntry_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 37634private pattern mustInstanceOfInformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
46901 Type.name(type,"EStringToStringMapEntry class"); 37635 Type.name(type,"InformationLink class");
46902 find directInstanceOf(problem,interpretation,element,type); 37636 find directInstanceOf(problem,interpretation,element,type);
46903} 37637}
46904private pattern scopeDisallowsNewEStringToStringMapEntry_class(problem:LogicProblem, interpretation:PartialInterpretation) { 37638private pattern scopeDisallowsNewInformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation) {
46905 find interpretation(problem,interpretation); 37639 find interpretation(problem,interpretation);
46906 PartialInterpretation.scopes(interpretation,scope); 37640 PartialInterpretation.scopes(interpretation,scope);
46907 Scope.targetTypeInterpretation(scope,typeInterpretation); 37641 Scope.targetTypeInterpretation(scope,typeInterpretation);
46908 Scope.maxNewElements(scope,0); 37642 Scope.maxNewElements(scope,0);
46909 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 37643 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
46910 Type.name(type,"EStringToStringMapEntry class"); 37644 Type.name(type,"InformationLink class");
46911} 37645}
46912 37646
46913/** 37647/**
46914 * An element may be an instance of type "EStringToStringMapEntry class". 37648 * An element may be an instance of type "InformationLink class".
46915 */ 37649 */
46916private pattern mayInstanceOfEStringToStringMapEntry_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 37650private pattern mayInstanceOfInformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
46917{ 37651{
46918 find interpretation(problem,interpretation); 37652 find interpretation(problem,interpretation);
46919 PartialInterpretation.newElements(interpretation,element); 37653 PartialInterpretation.newElements(interpretation,element);
46920 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 37654 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
46921 neg find mustInstanceOfEModelElement_class(problem,interpretation,element); 37655 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
46922 neg find mustInstanceOfEObject_class(problem,interpretation,element); 37656 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
46923 neg find scopeDisallowsNewEStringToStringMapEntry_class(problem, interpretation); 37657 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
37658 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
37659 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
46924 neg find isPrimitive(element); 37660 neg find isPrimitive(element);
46925} or { 37661} or {
46926 find interpretation(problem,interpretation); 37662 find interpretation(problem,interpretation);
46927 PartialInterpretation.openWorldElements(interpretation,element); 37663 PartialInterpretation.openWorldElements(interpretation,element);
46928 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 37664 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
46929 neg find mustInstanceOfEModelElement_class(problem,interpretation,element); 37665 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
46930 neg find mustInstanceOfEObject_class(problem,interpretation,element); 37666 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
46931 neg find scopeDisallowsNewEStringToStringMapEntry_class(problem, interpretation); 37667 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
37668 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
37669 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
46932 neg find isPrimitive(element); 37670 neg find isPrimitive(element);
46933} or 37671} or
46934{ find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); } 37672{ find mustInstanceOfInformationLink_class(problem,interpretation,element); }
46935/** 37673/**
46936 * An element must be an instance of type "EGenericType class". 37674 * An element must be an instance of type "FunctionalInterface class".
46937 */ 37675 */
46938private pattern mustInstanceOfEGenericType_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 37676private pattern mustInstanceOfFunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
46939 Type.name(type,"EGenericType class"); 37677 Type.name(type,"FunctionalInterface class");
46940 find directInstanceOf(problem,interpretation,element,type); 37678 find directInstanceOf(problem,interpretation,element,type);
46941} 37679}
46942private pattern scopeDisallowsNewEGenericType_class(problem:LogicProblem, interpretation:PartialInterpretation) { 37680private pattern scopeDisallowsNewFunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation) {
46943 find interpretation(problem,interpretation); 37681 find interpretation(problem,interpretation);
46944 PartialInterpretation.scopes(interpretation,scope); 37682 PartialInterpretation.scopes(interpretation,scope);
46945 Scope.targetTypeInterpretation(scope,typeInterpretation); 37683 Scope.targetTypeInterpretation(scope,typeInterpretation);
46946 Scope.maxNewElements(scope,0); 37684 Scope.maxNewElements(scope,0);
46947 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 37685 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
46948 Type.name(type,"EGenericType class"); 37686 Type.name(type,"FunctionalInterface class");
46949} 37687}
46950 37688
46951/** 37689/**
46952 * An element may be an instance of type "EGenericType class". 37690 * An element may be an instance of type "FunctionalInterface class".
46953 */ 37691 */
46954private pattern mayInstanceOfEGenericType_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 37692private pattern mayInstanceOfFunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
46955{ 37693{
46956 find interpretation(problem,interpretation); 37694 find interpretation(problem,interpretation);
46957 PartialInterpretation.newElements(interpretation,element); 37695 PartialInterpretation.newElements(interpretation,element);
46958 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 37696 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
46959 neg find mustInstanceOfEModelElement_class(problem,interpretation,element); 37697 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
46960 neg find mustInstanceOfEObject_class(problem,interpretation,element); 37698 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
46961 neg find scopeDisallowsNewEGenericType_class(problem, interpretation); 37699 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
37700 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
37701 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
46962 neg find isPrimitive(element); 37702 neg find isPrimitive(element);
46963} or { 37703} or {
46964 find interpretation(problem,interpretation); 37704 find interpretation(problem,interpretation);
46965 PartialInterpretation.openWorldElements(interpretation,element); 37705 PartialInterpretation.openWorldElements(interpretation,element);
46966 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 37706 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
46967 neg find mustInstanceOfEModelElement_class(problem,interpretation,element); 37707 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
46968 neg find mustInstanceOfEObject_class(problem,interpretation,element); 37708 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
46969 neg find scopeDisallowsNewEGenericType_class(problem, interpretation); 37709 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
37710 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
37711 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
46970 neg find isPrimitive(element); 37712 neg find isPrimitive(element);
46971} or 37713} or
46972{ find mustInstanceOfEGenericType_class(problem,interpretation,element); } 37714{ find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); }
46973/** 37715/**
46974 * An element must be an instance of type "ETypeParameter class". 37716 * An element must be an instance of type "FunctionalInput class".
46975 */ 37717 */
46976private pattern mustInstanceOfETypeParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 37718private pattern mustInstanceOfFunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
46977 Type.name(type,"ETypeParameter class"); 37719 Type.name(type,"FunctionalInput class");
46978 find directInstanceOf(problem,interpretation,element,type); 37720 find directInstanceOf(problem,interpretation,element,type);
46979} 37721}
46980private pattern scopeDisallowsNewETypeParameter_class(problem:LogicProblem, interpretation:PartialInterpretation) { 37722private pattern scopeDisallowsNewFunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation) {
46981 find interpretation(problem,interpretation); 37723 find interpretation(problem,interpretation);
46982 PartialInterpretation.scopes(interpretation,scope); 37724 PartialInterpretation.scopes(interpretation,scope);
46983 Scope.targetTypeInterpretation(scope,typeInterpretation); 37725 Scope.targetTypeInterpretation(scope,typeInterpretation);
46984 Scope.maxNewElements(scope,0); 37726 Scope.maxNewElements(scope,0);
46985 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 37727 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
46986 Type.name(type,"ETypeParameter class"); 37728 Type.name(type,"FunctionalInput class");
46987} 37729}
46988 37730
46989/** 37731/**
46990 * An element may be an instance of type "ETypeParameter class". 37732 * An element may be an instance of type "FunctionalInput class".
46991 */ 37733 */
46992private pattern mayInstanceOfETypeParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 37734private pattern mayInstanceOfFunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
46993{ 37735{
46994 find interpretation(problem,interpretation); 37736 find interpretation(problem,interpretation);
46995 PartialInterpretation.newElements(interpretation,element); 37737 PartialInterpretation.newElements(interpretation,element);
46996 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 37738 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
46997 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 37739 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
46998 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 37740 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
46999 neg find mustInstanceOfEPackage_class(problem,interpretation,element); 37741 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
47000 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); 37742 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
47001 neg find mustInstanceOfEClassifier_class(problem,interpretation,element); 37743 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
47002 neg find mustInstanceOfEObject_class(problem,interpretation,element); 37744 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
47003 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
47004 neg find scopeDisallowsNewETypeParameter_class(problem, interpretation);
47005 neg find isPrimitive(element); 37745 neg find isPrimitive(element);
47006} or { 37746} or {
47007 find interpretation(problem,interpretation); 37747 find interpretation(problem,interpretation);
47008 PartialInterpretation.openWorldElements(interpretation,element); 37748 PartialInterpretation.openWorldElements(interpretation,element);
47009 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 37749 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
47010 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 37750 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
47011 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 37751 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
47012 neg find mustInstanceOfEPackage_class(problem,interpretation,element); 37752 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
47013 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); 37753 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
47014 neg find mustInstanceOfEClassifier_class(problem,interpretation,element); 37754 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
47015 neg find mustInstanceOfEObject_class(problem,interpretation,element); 37755 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
47016 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
47017 neg find scopeDisallowsNewETypeParameter_class(problem, interpretation);
47018 neg find isPrimitive(element); 37756 neg find isPrimitive(element);
47019} or 37757} or
47020{ find mustInstanceOfETypeParameter_class(problem,interpretation,element); } 37758{ find mustInstanceOfFunctionalInput_class(problem,interpretation,element); }
47021/**
47022 * An element must be an instance of type "EModelElement class DefinedPart".
47023 */
47024private pattern mustInstanceOfEModelElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
47025 Type.name(type,"EModelElement class DefinedPart");
47026 find directInstanceOf(problem,interpretation,element,type);
47027}
47028private pattern scopeDisallowsNewEModelElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
47029 find interpretation(problem,interpretation);
47030 PartialInterpretation.scopes(interpretation,scope);
47031 Scope.targetTypeInterpretation(scope,typeInterpretation);
47032 Scope.maxNewElements(scope,0);
47033 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
47034 Type.name(type,"EModelElement class DefinedPart");
47035}
47036
47037/**
47038 * An element may be an instance of type "EModelElement class DefinedPart".
47039 */
47040private pattern mayInstanceOfEModelElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
47041{ find mustInstanceOfEModelElement_class_DefinedPart(problem,interpretation,element); }
47042/** 37759/**
47043 * An element must be an instance of type "EModelElement class UndefinedPart". 37760 * An element must be an instance of type "FunctionalOutput class".
47044 */ 37761 */
47045private pattern mustInstanceOfEModelElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 37762private pattern mustInstanceOfFunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
47046 Type.name(type,"EModelElement class UndefinedPart"); 37763 Type.name(type,"FunctionalOutput class");
47047 find directInstanceOf(problem,interpretation,element,type); 37764 find directInstanceOf(problem,interpretation,element,type);
47048} 37765}
47049private pattern scopeDisallowsNewEModelElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { 37766private pattern scopeDisallowsNewFunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation) {
47050 find interpretation(problem,interpretation); 37767 find interpretation(problem,interpretation);
47051 PartialInterpretation.scopes(interpretation,scope); 37768 PartialInterpretation.scopes(interpretation,scope);
47052 Scope.targetTypeInterpretation(scope,typeInterpretation); 37769 Scope.targetTypeInterpretation(scope,typeInterpretation);
47053 Scope.maxNewElements(scope,0); 37770 Scope.maxNewElements(scope,0);
47054 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 37771 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
47055 Type.name(type,"EModelElement class UndefinedPart"); 37772 Type.name(type,"FunctionalOutput class");
47056} 37773}
47057 37774
47058/** 37775/**
47059 * An element may be an instance of type "EModelElement class UndefinedPart". 37776 * An element may be an instance of type "FunctionalOutput class".
47060 */ 37777 */
47061private pattern mayInstanceOfEModelElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 37778private pattern mayInstanceOfFunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
47062{ 37779{
47063 find interpretation(problem,interpretation); 37780 find interpretation(problem,interpretation);
47064 PartialInterpretation.newElements(interpretation,element); 37781 PartialInterpretation.newElements(interpretation,element);
47065 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 37782 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
47066 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 37783 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
47067 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 37784 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
47068 neg find mustInstanceOfEObject_class(problem,interpretation,element); 37785 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
47069 neg find mustInstanceOfENamedElement_class(problem,interpretation,element); 37786 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
47070 neg find scopeDisallowsNewEModelElement_class_UndefinedPart(problem, interpretation); 37787 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
37788 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
47071 neg find isPrimitive(element); 37789 neg find isPrimitive(element);
47072} or { 37790} or {
47073 find interpretation(problem,interpretation); 37791 find interpretation(problem,interpretation);
47074 PartialInterpretation.openWorldElements(interpretation,element); 37792 PartialInterpretation.openWorldElements(interpretation,element);
47075 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 37793 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
47076 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 37794 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
47077 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 37795 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
47078 neg find mustInstanceOfEObject_class(problem,interpretation,element); 37796 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
47079 neg find mustInstanceOfENamedElement_class(problem,interpretation,element); 37797 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
47080 neg find scopeDisallowsNewEModelElement_class_UndefinedPart(problem, interpretation); 37798 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
37799 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
47081 neg find isPrimitive(element); 37800 neg find isPrimitive(element);
47082} or 37801} or
47083{ find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element); } 37802{ find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); }
47084/**
47085 * An element must be an instance of type "ENamedElement class DefinedPart".
47086 */
47087private pattern mustInstanceOfENamedElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
47088 Type.name(type,"ENamedElement class DefinedPart");
47089 find directInstanceOf(problem,interpretation,element,type);
47090}
47091private pattern scopeDisallowsNewENamedElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
47092 find interpretation(problem,interpretation);
47093 PartialInterpretation.scopes(interpretation,scope);
47094 Scope.targetTypeInterpretation(scope,typeInterpretation);
47095 Scope.maxNewElements(scope,0);
47096 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
47097 Type.name(type,"ENamedElement class DefinedPart");
47098}
47099
47100/**
47101 * An element may be an instance of type "ENamedElement class DefinedPart".
47102 */
47103private pattern mayInstanceOfENamedElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
47104{ find mustInstanceOfENamedElement_class_DefinedPart(problem,interpretation,element); }
47105/** 37803/**
47106 * An element must be an instance of type "ENamedElement class UndefinedPart". 37804 * An element must be an instance of type "FunctionalData class".
47107 */ 37805 */
47108private pattern mustInstanceOfENamedElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 37806private pattern mustInstanceOfFunctionalData_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
47109 Type.name(type,"ENamedElement class UndefinedPart"); 37807 Type.name(type,"FunctionalData class");
47110 find directInstanceOf(problem,interpretation,element,type); 37808 find directInstanceOf(problem,interpretation,element,type);
47111} 37809}
47112private pattern scopeDisallowsNewENamedElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { 37810private pattern scopeDisallowsNewFunctionalData_class(problem:LogicProblem, interpretation:PartialInterpretation) {
47113 find interpretation(problem,interpretation); 37811 find interpretation(problem,interpretation);
47114 PartialInterpretation.scopes(interpretation,scope); 37812 PartialInterpretation.scopes(interpretation,scope);
47115 Scope.targetTypeInterpretation(scope,typeInterpretation); 37813 Scope.targetTypeInterpretation(scope,typeInterpretation);
47116 Scope.maxNewElements(scope,0); 37814 Scope.maxNewElements(scope,0);
47117 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 37815 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
47118 Type.name(type,"ENamedElement class UndefinedPart"); 37816 Type.name(type,"FunctionalData class");
47119} 37817}
47120 37818
47121/** 37819/**
47122 * An element may be an instance of type "ENamedElement class UndefinedPart". 37820 * An element may be an instance of type "FunctionalData class".
47123 */ 37821 */
47124private pattern mayInstanceOfENamedElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 37822private pattern mayInstanceOfFunctionalData_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
47125{ 37823{
47126 find interpretation(problem,interpretation); 37824 find interpretation(problem,interpretation);
47127 PartialInterpretation.newElements(interpretation,element); 37825 PartialInterpretation.newElements(interpretation,element);
47128 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 37826 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
47129 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 37827 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
47130 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 37828 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
47131 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); 37829 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
47132 neg find mustInstanceOfEPackage_class(problem,interpretation,element); 37830 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
47133 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); 37831 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
47134 neg find mustInstanceOfEClassifier_class(problem,interpretation,element); 37832 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
47135 neg find mustInstanceOfEObject_class(problem,interpretation,element); 37833 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
47136 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
47137 neg find scopeDisallowsNewENamedElement_class_UndefinedPart(problem, interpretation);
47138 neg find isPrimitive(element); 37834 neg find isPrimitive(element);
47139} or { 37835} or {
47140 find interpretation(problem,interpretation); 37836 find interpretation(problem,interpretation);
47141 PartialInterpretation.openWorldElements(interpretation,element); 37837 PartialInterpretation.openWorldElements(interpretation,element);
47142 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 37838 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
47143 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 37839 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
47144 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 37840 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
47145 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); 37841 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
47146 neg find mustInstanceOfEPackage_class(problem,interpretation,element); 37842 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
47147 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); 37843 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
47148 neg find mustInstanceOfEClassifier_class(problem,interpretation,element); 37844 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
47149 neg find mustInstanceOfEObject_class(problem,interpretation,element); 37845 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
47150 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
47151 neg find scopeDisallowsNewENamedElement_class_UndefinedPart(problem, interpretation);
47152 neg find isPrimitive(element); 37846 neg find isPrimitive(element);
47153} or 37847} or
47154{ find mustInstanceOfENamedElement_class_UndefinedPart(problem,interpretation,element); } 37848{ find mustInstanceOfFunctionalData_class(problem,interpretation,element); }
47155/**
47156 * An element must be an instance of type "EPackage class DefinedPart".
47157 */
47158private pattern mustInstanceOfEPackage_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
47159 Type.name(type,"EPackage class DefinedPart");
47160 find directInstanceOf(problem,interpretation,element,type);
47161}
47162private pattern scopeDisallowsNewEPackage_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
47163 find interpretation(problem,interpretation);
47164 PartialInterpretation.scopes(interpretation,scope);
47165 Scope.targetTypeInterpretation(scope,typeInterpretation);
47166 Scope.maxNewElements(scope,0);
47167 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
47168 Type.name(type,"EPackage class DefinedPart");
47169}
47170
47171/**
47172 * An element may be an instance of type "EPackage class DefinedPart".
47173 */
47174private pattern mayInstanceOfEPackage_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
47175{ find mustInstanceOfEPackage_class_DefinedPart(problem,interpretation,element); }
47176/** 37849/**
47177 * An element must be an instance of type "EPackage class UndefinedPart". 37850 * An element must be an instance of type "FunctionType enum".
47178 */ 37851 */
47179private pattern mustInstanceOfEPackage_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 37852private pattern mustInstanceOfFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
47180 Type.name(type,"EPackage class UndefinedPart"); 37853 Type.name(type,"FunctionType enum");
47181 find directInstanceOf(problem,interpretation,element,type); 37854 find directInstanceOf(problem,interpretation,element,type);
47182} 37855}
47183private pattern scopeDisallowsNewEPackage_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { 37856private pattern scopeDisallowsNewFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation) {
47184 find interpretation(problem,interpretation); 37857 find interpretation(problem,interpretation);
47185 PartialInterpretation.scopes(interpretation,scope); 37858 PartialInterpretation.scopes(interpretation,scope);
47186 Scope.targetTypeInterpretation(scope,typeInterpretation); 37859 Scope.targetTypeInterpretation(scope,typeInterpretation);
47187 Scope.maxNewElements(scope,0); 37860 Scope.maxNewElements(scope,0);
47188 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 37861 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
47189 Type.name(type,"EPackage class UndefinedPart"); 37862 Type.name(type,"FunctionType enum");
47190} 37863}
47191 37864
47192/** 37865/**
47193 * An element may be an instance of type "EPackage class UndefinedPart". 37866 * An element may be an instance of type "FunctionType enum".
47194 */ 37867 */
47195private pattern mayInstanceOfEPackage_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 37868private pattern mayInstanceOfFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
47196{ 37869{ find mustInstanceOfFunctionType_enum(problem,interpretation,element); }
47197 find interpretation(problem,interpretation);
47198 PartialInterpretation.newElements(interpretation,element);
47199 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
47200 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
47201 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
47202 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
47203 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
47204 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
47205 neg find mustInstanceOfEObject_class(problem,interpretation,element);
47206 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
47207 neg find scopeDisallowsNewEPackage_class_UndefinedPart(problem, interpretation);
47208 neg find isPrimitive(element);
47209} or {
47210 find interpretation(problem,interpretation);
47211 PartialInterpretation.openWorldElements(interpretation,element);
47212 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
47213 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
47214 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
47215 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
47216 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
47217 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
47218 neg find mustInstanceOfEObject_class(problem,interpretation,element);
47219 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
47220 neg find scopeDisallowsNewEPackage_class_UndefinedPart(problem, interpretation);
47221 neg find isPrimitive(element);
47222} or
47223{ find mustInstanceOfEPackage_class_UndefinedPart(problem,interpretation,element); }
47224 37870
47225////////// 37871//////////
47226// 1.2 Relation Declaration Indexers 37872// 1.2 Relation Declaration Indexers
47227////////// 37873//////////
47228/** 37874/**
47229 * Matcher for detecting tuples t where []eAttributeType reference EAttribute(source,target) 37875 * Matcher for detecting tuples t where []interface reference FunctionalElement(source,target)
47230 */ 37876 */
47231private pattern mustInRelationeAttributeType_reference_EAttribute( 37877private pattern mustInRelationinterface_reference_FunctionalElement(
47232 problem:LogicProblem, interpretation:PartialInterpretation, 37878 problem:LogicProblem, interpretation:PartialInterpretation,
47233 source: DefinedElement, target:DefinedElement) 37879 source: DefinedElement, target:DefinedElement)
47234{ 37880{
47235 find interpretation(problem,interpretation); 37881 find interpretation(problem,interpretation);
47236 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 37882 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
47237 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAttributeType reference EAttribute"); 37883 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"interface reference FunctionalElement");
47238 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 37884 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
47239 BinaryElementRelationLink.param1(link,source); 37885 BinaryElementRelationLink.param1(link,source);
47240 BinaryElementRelationLink.param2(link,target); 37886 BinaryElementRelationLink.param2(link,target);
47241} 37887}
47242/** 37888/**
47243 * Matcher for detecting tuples t where <>eAttributeType reference EAttribute(source,target) 37889 * Matcher for detecting tuples t where <>interface reference FunctionalElement(source,target)
47244 */ 37890 */
47245private pattern mayInRelationeAttributeType_reference_EAttribute( 37891private pattern mayInRelationinterface_reference_FunctionalElement(
47246 problem:LogicProblem, interpretation:PartialInterpretation, 37892 problem:LogicProblem, interpretation:PartialInterpretation,
47247 source: DefinedElement, target:DefinedElement) 37893 source: DefinedElement, target:DefinedElement)
47248{ 37894{
@@ -47251,33 +37897,42 @@ private pattern mayInRelationeAttributeType_reference_EAttribute(
47251 find mayExist(problem, interpretation, source); 37897 find mayExist(problem, interpretation, source);
47252 find mayExist(problem, interpretation, target); 37898 find mayExist(problem, interpretation, target);
47253 // Type consistency 37899 // Type consistency
47254 find mayInstanceOfEAttribute_class(problem,interpretation,source); 37900 find mayInstanceOfFunctionalElement_class(problem,interpretation,source);
47255 find mayInstanceOfEDataType_class(problem,interpretation,target); 37901 find mayInstanceOfFunctionalInterface_class(problem,interpretation,target);
47256 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 37902 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
47257 // the upper bound of the multiplicity should be considered. 37903 // the upper bound of the multiplicity should be considered.
47258 numberOfExistingReferences == count find mustInRelationeAttributeType_reference_EAttribute(problem,interpretation,source,_); 37904 numberOfExistingReferences == count find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,source,_);
47259 check(numberOfExistingReferences < 1); 37905 check(numberOfExistingReferences < 1);
37906 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
37907 // the upper bound of the opposite reference multiplicity should be considered.
37908 numberOfExistingOppositeReferences == count find mustInRelationelement_reference_FunctionalInterface(problem,interpretation,target,_);
37909 check(numberOfExistingOppositeReferences < 1);
37910 // The reference is containment, then a new reference cannot be create if:
37911 // 1. Multiple parents
37912 neg find mustContains4(problem,interpretation,_,target);
37913 // 2. Circle in the containment hierarchy
37914 neg find mustTransitiveContains(source,target);
47260} or { 37915} or {
47261 find mustInRelationeAttributeType_reference_EAttribute(problem,interpretation,source,target); 37916 find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,source,target);
47262} 37917}
47263/** 37918/**
47264 * Matcher for detecting tuples t where []details reference EAnnotation(source,target) 37919 * Matcher for detecting tuples t where []model reference FunctionalElement(source,target)
47265 */ 37920 */
47266private pattern mustInRelationdetails_reference_EAnnotation( 37921private pattern mustInRelationmodel_reference_FunctionalElement(
47267 problem:LogicProblem, interpretation:PartialInterpretation, 37922 problem:LogicProblem, interpretation:PartialInterpretation,
47268 source: DefinedElement, target:DefinedElement) 37923 source: DefinedElement, target:DefinedElement)
47269{ 37924{
47270 find interpretation(problem,interpretation); 37925 find interpretation(problem,interpretation);
47271 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 37926 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
47272 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"details reference EAnnotation"); 37927 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement");
47273 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 37928 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
47274 BinaryElementRelationLink.param1(link,source); 37929 BinaryElementRelationLink.param1(link,source);
47275 BinaryElementRelationLink.param2(link,target); 37930 BinaryElementRelationLink.param2(link,target);
47276} 37931}
47277/** 37932/**
47278 * Matcher for detecting tuples t where <>details reference EAnnotation(source,target) 37933 * Matcher for detecting tuples t where <>model reference FunctionalElement(source,target)
47279 */ 37934 */
47280private pattern mayInRelationdetails_reference_EAnnotation( 37935private pattern mayInRelationmodel_reference_FunctionalElement(
47281 problem:LogicProblem, interpretation:PartialInterpretation, 37936 problem:LogicProblem, interpretation:PartialInterpretation,
47282 source: DefinedElement, target:DefinedElement) 37937 source: DefinedElement, target:DefinedElement)
47283{ 37938{
@@ -47286,34 +37941,33 @@ private pattern mayInRelationdetails_reference_EAnnotation(
47286 find mayExist(problem, interpretation, source); 37941 find mayExist(problem, interpretation, source);
47287 find mayExist(problem, interpretation, target); 37942 find mayExist(problem, interpretation, target);
47288 // Type consistency 37943 // Type consistency
47289 find mayInstanceOfEAnnotation_class(problem,interpretation,source); 37944 find mayInstanceOfFunctionalElement_class(problem,interpretation,source);
47290 find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,target); 37945 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,target);
47291 // The reference is containment, then a new reference cannot be create if: 37946 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
47292 // 1. Multiple parents 37947 // the upper bound of the multiplicity should be considered.
47293 neg find mustContains4(problem,interpretation,_,target); 37948 numberOfExistingReferences == count find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,source,_);
47294 // 2. Circle in the containment hierarchy 37949 check(numberOfExistingReferences < 1);
47295 neg find mustTransitiveContains(source,target);
47296} or { 37950} or {
47297 find mustInRelationdetails_reference_EAnnotation(problem,interpretation,source,target); 37951 find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,source,target);
47298} 37952}
47299/** 37953/**
47300 * Matcher for detecting tuples t where []eModelElement reference EAnnotation(source,target) 37954 * Matcher for detecting tuples t where []parent reference FunctionalElement(source,target)
47301 */ 37955 */
47302private pattern mustInRelationeModelElement_reference_EAnnotation( 37956private pattern mustInRelationparent_reference_FunctionalElement(
47303 problem:LogicProblem, interpretation:PartialInterpretation, 37957 problem:LogicProblem, interpretation:PartialInterpretation,
47304 source: DefinedElement, target:DefinedElement) 37958 source: DefinedElement, target:DefinedElement)
47305{ 37959{
47306 find interpretation(problem,interpretation); 37960 find interpretation(problem,interpretation);
47307 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 37961 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
47308 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eModelElement reference EAnnotation"); 37962 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"parent reference FunctionalElement");
47309 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 37963 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
47310 BinaryElementRelationLink.param1(link,source); 37964 BinaryElementRelationLink.param1(link,source);
47311 BinaryElementRelationLink.param2(link,target); 37965 BinaryElementRelationLink.param2(link,target);
47312} 37966}
47313/** 37967/**
47314 * Matcher for detecting tuples t where <>eModelElement reference EAnnotation(source,target) 37968 * Matcher for detecting tuples t where <>parent reference FunctionalElement(source,target)
47315 */ 37969 */
47316private pattern mayInRelationeModelElement_reference_EAnnotation( 37970private pattern mayInRelationparent_reference_FunctionalElement(
47317 problem:LogicProblem, interpretation:PartialInterpretation, 37971 problem:LogicProblem, interpretation:PartialInterpretation,
47318 source: DefinedElement, target:DefinedElement) 37972 source: DefinedElement, target:DefinedElement)
47319{ 37973{
@@ -47322,11 +37976,11 @@ private pattern mayInRelationeModelElement_reference_EAnnotation(
47322 find mayExist(problem, interpretation, source); 37976 find mayExist(problem, interpretation, source);
47323 find mayExist(problem, interpretation, target); 37977 find mayExist(problem, interpretation, target);
47324 // Type consistency 37978 // Type consistency
47325 find mayInstanceOfEAnnotation_class(problem,interpretation,source); 37979 find mayInstanceOfFunctionalElement_class(problem,interpretation,source);
47326 find mayInstanceOfEModelElement_class(problem,interpretation,target); 37980 find mayInstanceOfFunction_class(problem,interpretation,target);
47327 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 37981 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
47328 // the upper bound of the multiplicity should be considered. 37982 // the upper bound of the multiplicity should be considered.
47329 numberOfExistingReferences == count find mustInRelationeModelElement_reference_EAnnotation(problem,interpretation,source,_); 37983 numberOfExistingReferences == count find mustInRelationparent_reference_FunctionalElement(problem,interpretation,source,_);
47330 check(numberOfExistingReferences < 1); 37984 check(numberOfExistingReferences < 1);
47331 // The eOpposite of the reference is containment, then a referene cannot be created if 37985 // The eOpposite of the reference is containment, then a referene cannot be created if
47332 // 1. Multiple parents 37986 // 1. Multiple parents
@@ -47334,26 +37988,26 @@ private pattern mayInRelationeModelElement_reference_EAnnotation(
47334 // 2. Circle in the containment hierarchy 37988 // 2. Circle in the containment hierarchy
47335 neg find mustTransitiveContains(source,target); 37989 neg find mustTransitiveContains(source,target);
47336} or { 37990} or {
47337 find mustInRelationeModelElement_reference_EAnnotation(problem,interpretation,source,target); 37991 find mustInRelationparent_reference_FunctionalElement(problem,interpretation,source,target);
47338} 37992}
47339/** 37993/**
47340 * Matcher for detecting tuples t where []contents reference EAnnotation(source,target) 37994 * Matcher for detecting tuples t where []rootElements reference FunctionalArchitectureModel(source,target)
47341 */ 37995 */
47342private pattern mustInRelationcontents_reference_EAnnotation( 37996private pattern mustInRelationrootElements_reference_FunctionalArchitectureModel(
47343 problem:LogicProblem, interpretation:PartialInterpretation, 37997 problem:LogicProblem, interpretation:PartialInterpretation,
47344 source: DefinedElement, target:DefinedElement) 37998 source: DefinedElement, target:DefinedElement)
47345{ 37999{
47346 find interpretation(problem,interpretation); 38000 find interpretation(problem,interpretation);
47347 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 38001 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
47348 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"contents reference EAnnotation"); 38002 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"rootElements reference FunctionalArchitectureModel");
47349 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 38003 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
47350 BinaryElementRelationLink.param1(link,source); 38004 BinaryElementRelationLink.param1(link,source);
47351 BinaryElementRelationLink.param2(link,target); 38005 BinaryElementRelationLink.param2(link,target);
47352} 38006}
47353/** 38007/**
47354 * Matcher for detecting tuples t where <>contents reference EAnnotation(source,target) 38008 * Matcher for detecting tuples t where <>rootElements reference FunctionalArchitectureModel(source,target)
47355 */ 38009 */
47356private pattern mayInRelationcontents_reference_EAnnotation( 38010private pattern mayInRelationrootElements_reference_FunctionalArchitectureModel(
47357 problem:LogicProblem, interpretation:PartialInterpretation, 38011 problem:LogicProblem, interpretation:PartialInterpretation,
47358 source: DefinedElement, target:DefinedElement) 38012 source: DefinedElement, target:DefinedElement)
47359{ 38013{
@@ -47362,96 +38016,34 @@ private pattern mayInRelationcontents_reference_EAnnotation(
47362 find mayExist(problem, interpretation, source); 38016 find mayExist(problem, interpretation, source);
47363 find mayExist(problem, interpretation, target); 38017 find mayExist(problem, interpretation, target);
47364 // Type consistency 38018 // Type consistency
47365 find mayInstanceOfEAnnotation_class(problem,interpretation,source); 38019 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,source);
47366 find mayInstanceOfEObject_class(problem,interpretation,target); 38020 find mayInstanceOfFunctionalElement_class(problem,interpretation,target);
47367 // The reference is containment, then a new reference cannot be create if: 38021 // The reference is containment, then a new reference cannot be create if:
47368 // 1. Multiple parents 38022 // 1. Multiple parents
47369 neg find mustContains4(problem,interpretation,_,target); 38023 neg find mustContains4(problem,interpretation,_,target);
47370 // 2. Circle in the containment hierarchy 38024 // 2. Circle in the containment hierarchy
47371 neg find mustTransitiveContains(source,target); 38025 neg find mustTransitiveContains(source,target);
47372} or { 38026} or {
47373 find mustInRelationcontents_reference_EAnnotation(problem,interpretation,source,target); 38027 find mustInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,source,target);
47374}
47375/**
47376 * Matcher for detecting tuples t where []references reference EAnnotation(source,target)
47377 */
47378private pattern mustInRelationreferences_reference_EAnnotation(
47379 problem:LogicProblem, interpretation:PartialInterpretation,
47380 source: DefinedElement, target:DefinedElement)
47381{
47382 find interpretation(problem,interpretation);
47383 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
47384 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"references reference EAnnotation");
47385 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
47386 BinaryElementRelationLink.param1(link,source);
47387 BinaryElementRelationLink.param2(link,target);
47388}
47389/**
47390 * Matcher for detecting tuples t where <>references reference EAnnotation(source,target)
47391 */
47392private pattern mayInRelationreferences_reference_EAnnotation(
47393 problem:LogicProblem, interpretation:PartialInterpretation,
47394 source: DefinedElement, target:DefinedElement)
47395{
47396 find interpretation(problem,interpretation);
47397 // The two endpoint of the link have to exist
47398 find mayExist(problem, interpretation, source);
47399 find mayExist(problem, interpretation, target);
47400 // Type consistency
47401 find mayInstanceOfEAnnotation_class(problem,interpretation,source);
47402 find mayInstanceOfEObject_class(problem,interpretation,target);
47403} or {
47404 find mustInRelationreferences_reference_EAnnotation(problem,interpretation,source,target);
47405}
47406/**
47407 * Matcher for detecting tuples t where []eSuperTypes reference EClass(source,target)
47408 */
47409private pattern mustInRelationeSuperTypes_reference_EClass(
47410 problem:LogicProblem, interpretation:PartialInterpretation,
47411 source: DefinedElement, target:DefinedElement)
47412{
47413 find interpretation(problem,interpretation);
47414 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
47415 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eSuperTypes reference EClass");
47416 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
47417 BinaryElementRelationLink.param1(link,source);
47418 BinaryElementRelationLink.param2(link,target);
47419}
47420/**
47421 * Matcher for detecting tuples t where <>eSuperTypes reference EClass(source,target)
47422 */
47423private pattern mayInRelationeSuperTypes_reference_EClass(
47424 problem:LogicProblem, interpretation:PartialInterpretation,
47425 source: DefinedElement, target:DefinedElement)
47426{
47427 find interpretation(problem,interpretation);
47428 // The two endpoint of the link have to exist
47429 find mayExist(problem, interpretation, source);
47430 find mayExist(problem, interpretation, target);
47431 // Type consistency
47432 find mayInstanceOfEClass_class(problem,interpretation,source);
47433 find mayInstanceOfEClass_class(problem,interpretation,target);
47434} or {
47435 find mustInRelationeSuperTypes_reference_EClass(problem,interpretation,source,target);
47436} 38028}
47437/** 38029/**
47438 * Matcher for detecting tuples t where []eOperations reference EClass(source,target) 38030 * Matcher for detecting tuples t where []subElements reference Function(source,target)
47439 */ 38031 */
47440private pattern mustInRelationeOperations_reference_EClass( 38032private pattern mustInRelationsubElements_reference_Function(
47441 problem:LogicProblem, interpretation:PartialInterpretation, 38033 problem:LogicProblem, interpretation:PartialInterpretation,
47442 source: DefinedElement, target:DefinedElement) 38034 source: DefinedElement, target:DefinedElement)
47443{ 38035{
47444 find interpretation(problem,interpretation); 38036 find interpretation(problem,interpretation);
47445 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 38037 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
47446 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eOperations reference EClass"); 38038 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"subElements reference Function");
47447 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 38039 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
47448 BinaryElementRelationLink.param1(link,source); 38040 BinaryElementRelationLink.param1(link,source);
47449 BinaryElementRelationLink.param2(link,target); 38041 BinaryElementRelationLink.param2(link,target);
47450} 38042}
47451/** 38043/**
47452 * Matcher for detecting tuples t where <>eOperations reference EClass(source,target) 38044 * Matcher for detecting tuples t where <>subElements reference Function(source,target)
47453 */ 38045 */
47454private pattern mayInRelationeOperations_reference_EClass( 38046private pattern mayInRelationsubElements_reference_Function(
47455 problem:LogicProblem, interpretation:PartialInterpretation, 38047 problem:LogicProblem, interpretation:PartialInterpretation,
47456 source: DefinedElement, target:DefinedElement) 38048 source: DefinedElement, target:DefinedElement)
47457{ 38049{
@@ -47460,11 +38052,11 @@ private pattern mayInRelationeOperations_reference_EClass(
47460 find mayExist(problem, interpretation, source); 38052 find mayExist(problem, interpretation, source);
47461 find mayExist(problem, interpretation, target); 38053 find mayExist(problem, interpretation, target);
47462 // Type consistency 38054 // Type consistency
47463 find mayInstanceOfEClass_class(problem,interpretation,source); 38055 find mayInstanceOfFunction_class(problem,interpretation,source);
47464 find mayInstanceOfEOperation_class(problem,interpretation,target); 38056 find mayInstanceOfFunctionalElement_class(problem,interpretation,target);
47465 // There are "numberOfExistingReferences" currently existing instances of the reference to the target, 38057 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
47466 // the upper bound of the opposite reference multiplicity should be considered. 38058 // the upper bound of the opposite reference multiplicity should be considered.
47467 numberOfExistingOppositeReferences == count find mustInRelationeContainingClass_reference_EOperation(problem,interpretation,target,_); 38059 numberOfExistingOppositeReferences == count find mustInRelationparent_reference_FunctionalElement(problem,interpretation,target,_);
47468 check(numberOfExistingOppositeReferences < 1); 38060 check(numberOfExistingOppositeReferences < 1);
47469 // The reference is containment, then a new reference cannot be create if: 38061 // The reference is containment, then a new reference cannot be create if:
47470 // 1. Multiple parents 38062 // 1. Multiple parents
@@ -47472,212 +38064,26 @@ private pattern mayInRelationeOperations_reference_EClass(
47472 // 2. Circle in the containment hierarchy 38064 // 2. Circle in the containment hierarchy
47473 neg find mustTransitiveContains(source,target); 38065 neg find mustTransitiveContains(source,target);
47474} or { 38066} or {
47475 find mustInRelationeOperations_reference_EClass(problem,interpretation,source,target); 38067 find mustInRelationsubElements_reference_Function(problem,interpretation,source,target);
47476}
47477/**
47478 * Matcher for detecting tuples t where []eAllAttributes reference EClass(source,target)
47479 */
47480private pattern mustInRelationeAllAttributes_reference_EClass(
47481 problem:LogicProblem, interpretation:PartialInterpretation,
47482 source: DefinedElement, target:DefinedElement)
47483{
47484 find interpretation(problem,interpretation);
47485 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
47486 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllAttributes reference EClass");
47487 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
47488 BinaryElementRelationLink.param1(link,source);
47489 BinaryElementRelationLink.param2(link,target);
47490}
47491/**
47492 * Matcher for detecting tuples t where <>eAllAttributes reference EClass(source,target)
47493 */
47494private pattern mayInRelationeAllAttributes_reference_EClass(
47495 problem:LogicProblem, interpretation:PartialInterpretation,
47496 source: DefinedElement, target:DefinedElement)
47497{
47498 find interpretation(problem,interpretation);
47499 // The two endpoint of the link have to exist
47500 find mayExist(problem, interpretation, source);
47501 find mayExist(problem, interpretation, target);
47502 // Type consistency
47503 find mayInstanceOfEClass_class(problem,interpretation,source);
47504 find mayInstanceOfEAttribute_class(problem,interpretation,target);
47505} or {
47506 find mustInRelationeAllAttributes_reference_EClass(problem,interpretation,source,target);
47507}
47508/**
47509 * Matcher for detecting tuples t where []eAllReferences reference EClass(source,target)
47510 */
47511private pattern mustInRelationeAllReferences_reference_EClass(
47512 problem:LogicProblem, interpretation:PartialInterpretation,
47513 source: DefinedElement, target:DefinedElement)
47514{
47515 find interpretation(problem,interpretation);
47516 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
47517 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllReferences reference EClass");
47518 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
47519 BinaryElementRelationLink.param1(link,source);
47520 BinaryElementRelationLink.param2(link,target);
47521}
47522/**
47523 * Matcher for detecting tuples t where <>eAllReferences reference EClass(source,target)
47524 */
47525private pattern mayInRelationeAllReferences_reference_EClass(
47526 problem:LogicProblem, interpretation:PartialInterpretation,
47527 source: DefinedElement, target:DefinedElement)
47528{
47529 find interpretation(problem,interpretation);
47530 // The two endpoint of the link have to exist
47531 find mayExist(problem, interpretation, source);
47532 find mayExist(problem, interpretation, target);
47533 // Type consistency
47534 find mayInstanceOfEClass_class(problem,interpretation,source);
47535 find mayInstanceOfEReference_class(problem,interpretation,target);
47536} or {
47537 find mustInRelationeAllReferences_reference_EClass(problem,interpretation,source,target);
47538}
47539/**
47540 * Matcher for detecting tuples t where []eReferences reference EClass(source,target)
47541 */
47542private pattern mustInRelationeReferences_reference_EClass(
47543 problem:LogicProblem, interpretation:PartialInterpretation,
47544 source: DefinedElement, target:DefinedElement)
47545{
47546 find interpretation(problem,interpretation);
47547 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
47548 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eReferences reference EClass");
47549 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
47550 BinaryElementRelationLink.param1(link,source);
47551 BinaryElementRelationLink.param2(link,target);
47552}
47553/**
47554 * Matcher for detecting tuples t where <>eReferences reference EClass(source,target)
47555 */
47556private pattern mayInRelationeReferences_reference_EClass(
47557 problem:LogicProblem, interpretation:PartialInterpretation,
47558 source: DefinedElement, target:DefinedElement)
47559{
47560 find interpretation(problem,interpretation);
47561 // The two endpoint of the link have to exist
47562 find mayExist(problem, interpretation, source);
47563 find mayExist(problem, interpretation, target);
47564 // Type consistency
47565 find mayInstanceOfEClass_class(problem,interpretation,source);
47566 find mayInstanceOfEReference_class(problem,interpretation,target);
47567} or {
47568 find mustInRelationeReferences_reference_EClass(problem,interpretation,source,target);
47569}
47570/**
47571 * Matcher for detecting tuples t where []eAttributes reference EClass(source,target)
47572 */
47573private pattern mustInRelationeAttributes_reference_EClass(
47574 problem:LogicProblem, interpretation:PartialInterpretation,
47575 source: DefinedElement, target:DefinedElement)
47576{
47577 find interpretation(problem,interpretation);
47578 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
47579 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAttributes reference EClass");
47580 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
47581 BinaryElementRelationLink.param1(link,source);
47582 BinaryElementRelationLink.param2(link,target);
47583}
47584/**
47585 * Matcher for detecting tuples t where <>eAttributes reference EClass(source,target)
47586 */
47587private pattern mayInRelationeAttributes_reference_EClass(
47588 problem:LogicProblem, interpretation:PartialInterpretation,
47589 source: DefinedElement, target:DefinedElement)
47590{
47591 find interpretation(problem,interpretation);
47592 // The two endpoint of the link have to exist
47593 find mayExist(problem, interpretation, source);
47594 find mayExist(problem, interpretation, target);
47595 // Type consistency
47596 find mayInstanceOfEClass_class(problem,interpretation,source);
47597 find mayInstanceOfEAttribute_class(problem,interpretation,target);
47598} or {
47599 find mustInRelationeAttributes_reference_EClass(problem,interpretation,source,target);
47600}
47601/**
47602 * Matcher for detecting tuples t where []eAllContainments reference EClass(source,target)
47603 */
47604private pattern mustInRelationeAllContainments_reference_EClass(
47605 problem:LogicProblem, interpretation:PartialInterpretation,
47606 source: DefinedElement, target:DefinedElement)
47607{
47608 find interpretation(problem,interpretation);
47609 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
47610 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllContainments reference EClass");
47611 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
47612 BinaryElementRelationLink.param1(link,source);
47613 BinaryElementRelationLink.param2(link,target);
47614}
47615/**
47616 * Matcher for detecting tuples t where <>eAllContainments reference EClass(source,target)
47617 */
47618private pattern mayInRelationeAllContainments_reference_EClass(
47619 problem:LogicProblem, interpretation:PartialInterpretation,
47620 source: DefinedElement, target:DefinedElement)
47621{
47622 find interpretation(problem,interpretation);
47623 // The two endpoint of the link have to exist
47624 find mayExist(problem, interpretation, source);
47625 find mayExist(problem, interpretation, target);
47626 // Type consistency
47627 find mayInstanceOfEClass_class(problem,interpretation,source);
47628 find mayInstanceOfEReference_class(problem,interpretation,target);
47629} or {
47630 find mustInRelationeAllContainments_reference_EClass(problem,interpretation,source,target);
47631}
47632/**
47633 * Matcher for detecting tuples t where []eAllOperations reference EClass(source,target)
47634 */
47635private pattern mustInRelationeAllOperations_reference_EClass(
47636 problem:LogicProblem, interpretation:PartialInterpretation,
47637 source: DefinedElement, target:DefinedElement)
47638{
47639 find interpretation(problem,interpretation);
47640 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
47641 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllOperations reference EClass");
47642 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
47643 BinaryElementRelationLink.param1(link,source);
47644 BinaryElementRelationLink.param2(link,target);
47645}
47646/**
47647 * Matcher for detecting tuples t where <>eAllOperations reference EClass(source,target)
47648 */
47649private pattern mayInRelationeAllOperations_reference_EClass(
47650 problem:LogicProblem, interpretation:PartialInterpretation,
47651 source: DefinedElement, target:DefinedElement)
47652{
47653 find interpretation(problem,interpretation);
47654 // The two endpoint of the link have to exist
47655 find mayExist(problem, interpretation, source);
47656 find mayExist(problem, interpretation, target);
47657 // Type consistency
47658 find mayInstanceOfEClass_class(problem,interpretation,source);
47659 find mayInstanceOfEOperation_class(problem,interpretation,target);
47660} or {
47661 find mustInRelationeAllOperations_reference_EClass(problem,interpretation,source,target);
47662} 38068}
47663/** 38069/**
47664 * Matcher for detecting tuples t where []eAllStructuralFeatures reference EClass(source,target) 38070 * Matcher for detecting tuples t where []data reference FAMTerminator(source,target)
47665 */ 38071 */
47666private pattern mustInRelationeAllStructuralFeatures_reference_EClass( 38072private pattern mustInRelationdata_reference_FAMTerminator(
47667 problem:LogicProblem, interpretation:PartialInterpretation, 38073 problem:LogicProblem, interpretation:PartialInterpretation,
47668 source: DefinedElement, target:DefinedElement) 38074 source: DefinedElement, target:DefinedElement)
47669{ 38075{
47670 find interpretation(problem,interpretation); 38076 find interpretation(problem,interpretation);
47671 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 38077 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
47672 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllStructuralFeatures reference EClass"); 38078 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"data reference FAMTerminator");
47673 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 38079 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
47674 BinaryElementRelationLink.param1(link,source); 38080 BinaryElementRelationLink.param1(link,source);
47675 BinaryElementRelationLink.param2(link,target); 38081 BinaryElementRelationLink.param2(link,target);
47676} 38082}
47677/** 38083/**
47678 * Matcher for detecting tuples t where <>eAllStructuralFeatures reference EClass(source,target) 38084 * Matcher for detecting tuples t where <>data reference FAMTerminator(source,target)
47679 */ 38085 */
47680private pattern mayInRelationeAllStructuralFeatures_reference_EClass( 38086private pattern mayInRelationdata_reference_FAMTerminator(
47681 problem:LogicProblem, interpretation:PartialInterpretation, 38087 problem:LogicProblem, interpretation:PartialInterpretation,
47682 source: DefinedElement, target:DefinedElement) 38088 source: DefinedElement, target:DefinedElement)
47683{ 38089{
@@ -47686,29 +38092,42 @@ private pattern mayInRelationeAllStructuralFeatures_reference_EClass(
47686 find mayExist(problem, interpretation, source); 38092 find mayExist(problem, interpretation, source);
47687 find mayExist(problem, interpretation, target); 38093 find mayExist(problem, interpretation, target);
47688 // Type consistency 38094 // Type consistency
47689 find mayInstanceOfEClass_class(problem,interpretation,source); 38095 find mayInstanceOfFAMTerminator_class(problem,interpretation,source);
47690 find mayInstanceOfEStructuralFeature_class(problem,interpretation,target); 38096 find mayInstanceOfFunctionalData_class(problem,interpretation,target);
38097 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
38098 // the upper bound of the multiplicity should be considered.
38099 numberOfExistingReferences == count find mustInRelationdata_reference_FAMTerminator(problem,interpretation,source,_);
38100 check(numberOfExistingReferences < 1);
38101 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
38102 // the upper bound of the opposite reference multiplicity should be considered.
38103 numberOfExistingOppositeReferences == count find mustInRelationterminator_reference_FunctionalData(problem,interpretation,target,_);
38104 check(numberOfExistingOppositeReferences < 1);
38105 // The eOpposite of the reference is containment, then a referene cannot be created if
38106 // 1. Multiple parents
38107 neg find mustContains4(problem,interpretation,source,_);
38108 // 2. Circle in the containment hierarchy
38109 neg find mustTransitiveContains(source,target);
47691} or { 38110} or {
47692 find mustInRelationeAllStructuralFeatures_reference_EClass(problem,interpretation,source,target); 38111 find mustInRelationdata_reference_FAMTerminator(problem,interpretation,source,target);
47693} 38112}
47694/** 38113/**
47695 * Matcher for detecting tuples t where []eAllSuperTypes reference EClass(source,target) 38114 * Matcher for detecting tuples t where []from reference InformationLink(source,target)
47696 */ 38115 */
47697private pattern mustInRelationeAllSuperTypes_reference_EClass( 38116private pattern mustInRelationfrom_reference_InformationLink(
47698 problem:LogicProblem, interpretation:PartialInterpretation, 38117 problem:LogicProblem, interpretation:PartialInterpretation,
47699 source: DefinedElement, target:DefinedElement) 38118 source: DefinedElement, target:DefinedElement)
47700{ 38119{
47701 find interpretation(problem,interpretation); 38120 find interpretation(problem,interpretation);
47702 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 38121 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
47703 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllSuperTypes reference EClass"); 38122 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"from reference InformationLink");
47704 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 38123 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
47705 BinaryElementRelationLink.param1(link,source); 38124 BinaryElementRelationLink.param1(link,source);
47706 BinaryElementRelationLink.param2(link,target); 38125 BinaryElementRelationLink.param2(link,target);
47707} 38126}
47708/** 38127/**
47709 * Matcher for detecting tuples t where <>eAllSuperTypes reference EClass(source,target) 38128 * Matcher for detecting tuples t where <>from reference InformationLink(source,target)
47710 */ 38129 */
47711private pattern mayInRelationeAllSuperTypes_reference_EClass( 38130private pattern mayInRelationfrom_reference_InformationLink(
47712 problem:LogicProblem, interpretation:PartialInterpretation, 38131 problem:LogicProblem, interpretation:PartialInterpretation,
47713 source: DefinedElement, target:DefinedElement) 38132 source: DefinedElement, target:DefinedElement)
47714{ 38133{
@@ -47717,29 +38136,38 @@ private pattern mayInRelationeAllSuperTypes_reference_EClass(
47717 find mayExist(problem, interpretation, source); 38136 find mayExist(problem, interpretation, source);
47718 find mayExist(problem, interpretation, target); 38137 find mayExist(problem, interpretation, target);
47719 // Type consistency 38138 // Type consistency
47720 find mayInstanceOfEClass_class(problem,interpretation,source); 38139 find mayInstanceOfInformationLink_class(problem,interpretation,source);
47721 find mayInstanceOfEClass_class(problem,interpretation,target); 38140 find mayInstanceOfFunctionalOutput_class(problem,interpretation,target);
38141 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
38142 // the upper bound of the multiplicity should be considered.
38143 numberOfExistingReferences == count find mustInRelationfrom_reference_InformationLink(problem,interpretation,source,_);
38144 check(numberOfExistingReferences < 1);
38145 // The eOpposite of the reference is containment, then a referene cannot be created if
38146 // 1. Multiple parents
38147 neg find mustContains4(problem,interpretation,source,_);
38148 // 2. Circle in the containment hierarchy
38149 neg find mustTransitiveContains(source,target);
47722} or { 38150} or {
47723 find mustInRelationeAllSuperTypes_reference_EClass(problem,interpretation,source,target); 38151 find mustInRelationfrom_reference_InformationLink(problem,interpretation,source,target);
47724} 38152}
47725/** 38153/**
47726 * Matcher for detecting tuples t where []eIDAttribute reference EClass(source,target) 38154 * Matcher for detecting tuples t where []to reference InformationLink(source,target)
47727 */ 38155 */
47728private pattern mustInRelationeIDAttribute_reference_EClass( 38156private pattern mustInRelationto_reference_InformationLink(
47729 problem:LogicProblem, interpretation:PartialInterpretation, 38157 problem:LogicProblem, interpretation:PartialInterpretation,
47730 source: DefinedElement, target:DefinedElement) 38158 source: DefinedElement, target:DefinedElement)
47731{ 38159{
47732 find interpretation(problem,interpretation); 38160 find interpretation(problem,interpretation);
47733 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 38161 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
47734 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eIDAttribute reference EClass"); 38162 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"to reference InformationLink");
47735 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 38163 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
47736 BinaryElementRelationLink.param1(link,source); 38164 BinaryElementRelationLink.param1(link,source);
47737 BinaryElementRelationLink.param2(link,target); 38165 BinaryElementRelationLink.param2(link,target);
47738} 38166}
47739/** 38167/**
47740 * Matcher for detecting tuples t where <>eIDAttribute reference EClass(source,target) 38168 * Matcher for detecting tuples t where <>to reference InformationLink(source,target)
47741 */ 38169 */
47742private pattern mayInRelationeIDAttribute_reference_EClass( 38170private pattern mayInRelationto_reference_InformationLink(
47743 problem:LogicProblem, interpretation:PartialInterpretation, 38171 problem:LogicProblem, interpretation:PartialInterpretation,
47744 source: DefinedElement, target:DefinedElement) 38172 source: DefinedElement, target:DefinedElement)
47745{ 38173{
@@ -47748,33 +38176,33 @@ private pattern mayInRelationeIDAttribute_reference_EClass(
47748 find mayExist(problem, interpretation, source); 38176 find mayExist(problem, interpretation, source);
47749 find mayExist(problem, interpretation, target); 38177 find mayExist(problem, interpretation, target);
47750 // Type consistency 38178 // Type consistency
47751 find mayInstanceOfEClass_class(problem,interpretation,source); 38179 find mayInstanceOfInformationLink_class(problem,interpretation,source);
47752 find mayInstanceOfEAttribute_class(problem,interpretation,target); 38180 find mayInstanceOfFunctionalInput_class(problem,interpretation,target);
47753 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 38181 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
47754 // the upper bound of the multiplicity should be considered. 38182 // the upper bound of the multiplicity should be considered.
47755 numberOfExistingReferences == count find mustInRelationeIDAttribute_reference_EClass(problem,interpretation,source,_); 38183 numberOfExistingReferences == count find mustInRelationto_reference_InformationLink(problem,interpretation,source,_);
47756 check(numberOfExistingReferences < 1); 38184 check(numberOfExistingReferences < 1);
47757} or { 38185} or {
47758 find mustInRelationeIDAttribute_reference_EClass(problem,interpretation,source,target); 38186 find mustInRelationto_reference_InformationLink(problem,interpretation,source,target);
47759} 38187}
47760/** 38188/**
47761 * Matcher for detecting tuples t where []eStructuralFeatures reference EClass(source,target) 38189 * Matcher for detecting tuples t where []data reference FunctionalInterface(source,target)
47762 */ 38190 */
47763private pattern mustInRelationeStructuralFeatures_reference_EClass( 38191private pattern mustInRelationdata_reference_FunctionalInterface(
47764 problem:LogicProblem, interpretation:PartialInterpretation, 38192 problem:LogicProblem, interpretation:PartialInterpretation,
47765 source: DefinedElement, target:DefinedElement) 38193 source: DefinedElement, target:DefinedElement)
47766{ 38194{
47767 find interpretation(problem,interpretation); 38195 find interpretation(problem,interpretation);
47768 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 38196 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
47769 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eStructuralFeatures reference EClass"); 38197 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"data reference FunctionalInterface");
47770 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 38198 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
47771 BinaryElementRelationLink.param1(link,source); 38199 BinaryElementRelationLink.param1(link,source);
47772 BinaryElementRelationLink.param2(link,target); 38200 BinaryElementRelationLink.param2(link,target);
47773} 38201}
47774/** 38202/**
47775 * Matcher for detecting tuples t where <>eStructuralFeatures reference EClass(source,target) 38203 * Matcher for detecting tuples t where <>data reference FunctionalInterface(source,target)
47776 */ 38204 */
47777private pattern mayInRelationeStructuralFeatures_reference_EClass( 38205private pattern mayInRelationdata_reference_FunctionalInterface(
47778 problem:LogicProblem, interpretation:PartialInterpretation, 38206 problem:LogicProblem, interpretation:PartialInterpretation,
47779 source: DefinedElement, target:DefinedElement) 38207 source: DefinedElement, target:DefinedElement)
47780{ 38208{
@@ -47783,11 +38211,11 @@ private pattern mayInRelationeStructuralFeatures_reference_EClass(
47783 find mayExist(problem, interpretation, source); 38211 find mayExist(problem, interpretation, source);
47784 find mayExist(problem, interpretation, target); 38212 find mayExist(problem, interpretation, target);
47785 // Type consistency 38213 // Type consistency
47786 find mayInstanceOfEClass_class(problem,interpretation,source); 38214 find mayInstanceOfFunctionalInterface_class(problem,interpretation,source);
47787 find mayInstanceOfEStructuralFeature_class(problem,interpretation,target); 38215 find mayInstanceOfFunctionalData_class(problem,interpretation,target);
47788 // There are "numberOfExistingReferences" currently existing instances of the reference to the target, 38216 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
47789 // the upper bound of the opposite reference multiplicity should be considered. 38217 // the upper bound of the opposite reference multiplicity should be considered.
47790 numberOfExistingOppositeReferences == count find mustInRelationeContainingClass_reference_EStructuralFeature(problem,interpretation,target,_); 38218 numberOfExistingOppositeReferences == count find mustInRelationinterface_reference_FunctionalData(problem,interpretation,target,_);
47791 check(numberOfExistingOppositeReferences < 1); 38219 check(numberOfExistingOppositeReferences < 1);
47792 // The reference is containment, then a new reference cannot be create if: 38220 // The reference is containment, then a new reference cannot be create if:
47793 // 1. Multiple parents 38221 // 1. Multiple parents
@@ -47795,93 +38223,26 @@ private pattern mayInRelationeStructuralFeatures_reference_EClass(
47795 // 2. Circle in the containment hierarchy 38223 // 2. Circle in the containment hierarchy
47796 neg find mustTransitiveContains(source,target); 38224 neg find mustTransitiveContains(source,target);
47797} or { 38225} or {
47798 find mustInRelationeStructuralFeatures_reference_EClass(problem,interpretation,source,target); 38226 find mustInRelationdata_reference_FunctionalInterface(problem,interpretation,source,target);
47799}
47800/**
47801 * Matcher for detecting tuples t where []eGenericSuperTypes reference EClass(source,target)
47802 */
47803private pattern mustInRelationeGenericSuperTypes_reference_EClass(
47804 problem:LogicProblem, interpretation:PartialInterpretation,
47805 source: DefinedElement, target:DefinedElement)
47806{
47807 find interpretation(problem,interpretation);
47808 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
47809 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eGenericSuperTypes reference EClass");
47810 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
47811 BinaryElementRelationLink.param1(link,source);
47812 BinaryElementRelationLink.param2(link,target);
47813}
47814/**
47815 * Matcher for detecting tuples t where <>eGenericSuperTypes reference EClass(source,target)
47816 */
47817private pattern mayInRelationeGenericSuperTypes_reference_EClass(
47818 problem:LogicProblem, interpretation:PartialInterpretation,
47819 source: DefinedElement, target:DefinedElement)
47820{
47821 find interpretation(problem,interpretation);
47822 // The two endpoint of the link have to exist
47823 find mayExist(problem, interpretation, source);
47824 find mayExist(problem, interpretation, target);
47825 // Type consistency
47826 find mayInstanceOfEClass_class(problem,interpretation,source);
47827 find mayInstanceOfEGenericType_class(problem,interpretation,target);
47828 // The reference is containment, then a new reference cannot be create if:
47829 // 1. Multiple parents
47830 neg find mustContains4(problem,interpretation,_,target);
47831 // 2. Circle in the containment hierarchy
47832 neg find mustTransitiveContains(source,target);
47833} or {
47834 find mustInRelationeGenericSuperTypes_reference_EClass(problem,interpretation,source,target);
47835}
47836/**
47837 * Matcher for detecting tuples t where []eAllGenericSuperTypes reference EClass(source,target)
47838 */
47839private pattern mustInRelationeAllGenericSuperTypes_reference_EClass(
47840 problem:LogicProblem, interpretation:PartialInterpretation,
47841 source: DefinedElement, target:DefinedElement)
47842{
47843 find interpretation(problem,interpretation);
47844 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
47845 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllGenericSuperTypes reference EClass");
47846 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
47847 BinaryElementRelationLink.param1(link,source);
47848 BinaryElementRelationLink.param2(link,target);
47849}
47850/**
47851 * Matcher for detecting tuples t where <>eAllGenericSuperTypes reference EClass(source,target)
47852 */
47853private pattern mayInRelationeAllGenericSuperTypes_reference_EClass(
47854 problem:LogicProblem, interpretation:PartialInterpretation,
47855 source: DefinedElement, target:DefinedElement)
47856{
47857 find interpretation(problem,interpretation);
47858 // The two endpoint of the link have to exist
47859 find mayExist(problem, interpretation, source);
47860 find mayExist(problem, interpretation, target);
47861 // Type consistency
47862 find mayInstanceOfEClass_class(problem,interpretation,source);
47863 find mayInstanceOfEGenericType_class(problem,interpretation,target);
47864} or {
47865 find mustInRelationeAllGenericSuperTypes_reference_EClass(problem,interpretation,source,target);
47866} 38227}
47867/** 38228/**
47868 * Matcher for detecting tuples t where []ePackage reference EClassifier(source,target) 38229 * Matcher for detecting tuples t where []element reference FunctionalInterface(source,target)
47869 */ 38230 */
47870private pattern mustInRelationePackage_reference_EClassifier( 38231private pattern mustInRelationelement_reference_FunctionalInterface(
47871 problem:LogicProblem, interpretation:PartialInterpretation, 38232 problem:LogicProblem, interpretation:PartialInterpretation,
47872 source: DefinedElement, target:DefinedElement) 38233 source: DefinedElement, target:DefinedElement)
47873{ 38234{
47874 find interpretation(problem,interpretation); 38235 find interpretation(problem,interpretation);
47875 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 38236 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
47876 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"ePackage reference EClassifier"); 38237 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"element reference FunctionalInterface");
47877 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 38238 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
47878 BinaryElementRelationLink.param1(link,source); 38239 BinaryElementRelationLink.param1(link,source);
47879 BinaryElementRelationLink.param2(link,target); 38240 BinaryElementRelationLink.param2(link,target);
47880} 38241}
47881/** 38242/**
47882 * Matcher for detecting tuples t where <>ePackage reference EClassifier(source,target) 38243 * Matcher for detecting tuples t where <>element reference FunctionalInterface(source,target)
47883 */ 38244 */
47884private pattern mayInRelationePackage_reference_EClassifier( 38245private pattern mayInRelationelement_reference_FunctionalInterface(
47885 problem:LogicProblem, interpretation:PartialInterpretation, 38246 problem:LogicProblem, interpretation:PartialInterpretation,
47886 source: DefinedElement, target:DefinedElement) 38247 source: DefinedElement, target:DefinedElement)
47887{ 38248{
@@ -47890,38 +38251,42 @@ private pattern mayInRelationePackage_reference_EClassifier(
47890 find mayExist(problem, interpretation, source); 38251 find mayExist(problem, interpretation, source);
47891 find mayExist(problem, interpretation, target); 38252 find mayExist(problem, interpretation, target);
47892 // Type consistency 38253 // Type consistency
47893 find mayInstanceOfEClassifier_class(problem,interpretation,source); 38254 find mayInstanceOfFunctionalInterface_class(problem,interpretation,source);
47894 find mayInstanceOfEPackage_class(problem,interpretation,target); 38255 find mayInstanceOfFunctionalElement_class(problem,interpretation,target);
47895 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 38256 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
47896 // the upper bound of the multiplicity should be considered. 38257 // the upper bound of the multiplicity should be considered.
47897 numberOfExistingReferences == count find mustInRelationePackage_reference_EClassifier(problem,interpretation,source,_); 38258 numberOfExistingReferences == count find mustInRelationelement_reference_FunctionalInterface(problem,interpretation,source,_);
47898 check(numberOfExistingReferences < 1); 38259 check(numberOfExistingReferences < 1);
38260 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
38261 // the upper bound of the opposite reference multiplicity should be considered.
38262 numberOfExistingOppositeReferences == count find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,target,_);
38263 check(numberOfExistingOppositeReferences < 1);
47899 // The eOpposite of the reference is containment, then a referene cannot be created if 38264 // The eOpposite of the reference is containment, then a referene cannot be created if
47900 // 1. Multiple parents 38265 // 1. Multiple parents
47901 neg find mustContains4(problem,interpretation,source,_); 38266 neg find mustContains4(problem,interpretation,source,_);
47902 // 2. Circle in the containment hierarchy 38267 // 2. Circle in the containment hierarchy
47903 neg find mustTransitiveContains(source,target); 38268 neg find mustTransitiveContains(source,target);
47904} or { 38269} or {
47905 find mustInRelationePackage_reference_EClassifier(problem,interpretation,source,target); 38270 find mustInRelationelement_reference_FunctionalInterface(problem,interpretation,source,target);
47906} 38271}
47907/** 38272/**
47908 * Matcher for detecting tuples t where []eTypeParameters reference EClassifier(source,target) 38273 * Matcher for detecting tuples t where []IncomingLinks reference FunctionalInput(source,target)
47909 */ 38274 */
47910private pattern mustInRelationeTypeParameters_reference_EClassifier( 38275private pattern mustInRelationIncomingLinks_reference_FunctionalInput(
47911 problem:LogicProblem, interpretation:PartialInterpretation, 38276 problem:LogicProblem, interpretation:PartialInterpretation,
47912 source: DefinedElement, target:DefinedElement) 38277 source: DefinedElement, target:DefinedElement)
47913{ 38278{
47914 find interpretation(problem,interpretation); 38279 find interpretation(problem,interpretation);
47915 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 38280 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
47916 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eTypeParameters reference EClassifier"); 38281 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"IncomingLinks reference FunctionalInput");
47917 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 38282 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
47918 BinaryElementRelationLink.param1(link,source); 38283 BinaryElementRelationLink.param1(link,source);
47919 BinaryElementRelationLink.param2(link,target); 38284 BinaryElementRelationLink.param2(link,target);
47920} 38285}
47921/** 38286/**
47922 * Matcher for detecting tuples t where <>eTypeParameters reference EClassifier(source,target) 38287 * Matcher for detecting tuples t where <>IncomingLinks reference FunctionalInput(source,target)
47923 */ 38288 */
47924private pattern mayInRelationeTypeParameters_reference_EClassifier( 38289private pattern mayInRelationIncomingLinks_reference_FunctionalInput(
47925 problem:LogicProblem, interpretation:PartialInterpretation, 38290 problem:LogicProblem, interpretation:PartialInterpretation,
47926 source: DefinedElement, target:DefinedElement) 38291 source: DefinedElement, target:DefinedElement)
47927{ 38292{
@@ -47930,34 +38295,33 @@ private pattern mayInRelationeTypeParameters_reference_EClassifier(
47930 find mayExist(problem, interpretation, source); 38295 find mayExist(problem, interpretation, source);
47931 find mayExist(problem, interpretation, target); 38296 find mayExist(problem, interpretation, target);
47932 // Type consistency 38297 // Type consistency
47933 find mayInstanceOfEClassifier_class(problem,interpretation,source); 38298 find mayInstanceOfFunctionalInput_class(problem,interpretation,source);
47934 find mayInstanceOfETypeParameter_class(problem,interpretation,target); 38299 find mayInstanceOfInformationLink_class(problem,interpretation,target);
47935 // The reference is containment, then a new reference cannot be create if: 38300 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
47936 // 1. Multiple parents 38301 // the upper bound of the opposite reference multiplicity should be considered.
47937 neg find mustContains4(problem,interpretation,_,target); 38302 numberOfExistingOppositeReferences == count find mustInRelationto_reference_InformationLink(problem,interpretation,target,_);
47938 // 2. Circle in the containment hierarchy 38303 check(numberOfExistingOppositeReferences < 1);
47939 neg find mustTransitiveContains(source,target);
47940} or { 38304} or {
47941 find mustInRelationeTypeParameters_reference_EClassifier(problem,interpretation,source,target); 38305 find mustInRelationIncomingLinks_reference_FunctionalInput(problem,interpretation,source,target);
47942} 38306}
47943/** 38307/**
47944 * Matcher for detecting tuples t where []eLiterals reference EEnum(source,target) 38308 * Matcher for detecting tuples t where []outgoingLinks reference FunctionalOutput(source,target)
47945 */ 38309 */
47946private pattern mustInRelationeLiterals_reference_EEnum( 38310private pattern mustInRelationoutgoingLinks_reference_FunctionalOutput(
47947 problem:LogicProblem, interpretation:PartialInterpretation, 38311 problem:LogicProblem, interpretation:PartialInterpretation,
47948 source: DefinedElement, target:DefinedElement) 38312 source: DefinedElement, target:DefinedElement)
47949{ 38313{
47950 find interpretation(problem,interpretation); 38314 find interpretation(problem,interpretation);
47951 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 38315 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
47952 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eLiterals reference EEnum"); 38316 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"outgoingLinks reference FunctionalOutput");
47953 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 38317 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
47954 BinaryElementRelationLink.param1(link,source); 38318 BinaryElementRelationLink.param1(link,source);
47955 BinaryElementRelationLink.param2(link,target); 38319 BinaryElementRelationLink.param2(link,target);
47956} 38320}
47957/** 38321/**
47958 * Matcher for detecting tuples t where <>eLiterals reference EEnum(source,target) 38322 * Matcher for detecting tuples t where <>outgoingLinks reference FunctionalOutput(source,target)
47959 */ 38323 */
47960private pattern mayInRelationeLiterals_reference_EEnum( 38324private pattern mayInRelationoutgoingLinks_reference_FunctionalOutput(
47961 problem:LogicProblem, interpretation:PartialInterpretation, 38325 problem:LogicProblem, interpretation:PartialInterpretation,
47962 source: DefinedElement, target:DefinedElement) 38326 source: DefinedElement, target:DefinedElement)
47963{ 38327{
@@ -47966,11 +38330,11 @@ private pattern mayInRelationeLiterals_reference_EEnum(
47966 find mayExist(problem, interpretation, source); 38330 find mayExist(problem, interpretation, source);
47967 find mayExist(problem, interpretation, target); 38331 find mayExist(problem, interpretation, target);
47968 // Type consistency 38332 // Type consistency
47969 find mayInstanceOfEEnum_class(problem,interpretation,source); 38333 find mayInstanceOfFunctionalOutput_class(problem,interpretation,source);
47970 find mayInstanceOfEEnumLiteral_class(problem,interpretation,target); 38334 find mayInstanceOfInformationLink_class(problem,interpretation,target);
47971 // There are "numberOfExistingReferences" currently existing instances of the reference to the target, 38335 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
47972 // the upper bound of the opposite reference multiplicity should be considered. 38336 // the upper bound of the opposite reference multiplicity should be considered.
47973 numberOfExistingOppositeReferences == count find mustInRelationeEnum_reference_EEnumLiteral(problem,interpretation,target,_); 38337 numberOfExistingOppositeReferences == count find mustInRelationfrom_reference_InformationLink(problem,interpretation,target,_);
47974 check(numberOfExistingOppositeReferences < 1); 38338 check(numberOfExistingOppositeReferences < 1);
47975 // The reference is containment, then a new reference cannot be create if: 38339 // The reference is containment, then a new reference cannot be create if:
47976 // 1. Multiple parents 38340 // 1. Multiple parents
@@ -47978,26 +38342,26 @@ private pattern mayInRelationeLiterals_reference_EEnum(
47978 // 2. Circle in the containment hierarchy 38342 // 2. Circle in the containment hierarchy
47979 neg find mustTransitiveContains(source,target); 38343 neg find mustTransitiveContains(source,target);
47980} or { 38344} or {
47981 find mustInRelationeLiterals_reference_EEnum(problem,interpretation,source,target); 38345 find mustInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,source,target);
47982} 38346}
47983/** 38347/**
47984 * Matcher for detecting tuples t where []eEnum reference EEnumLiteral(source,target) 38348 * Matcher for detecting tuples t where []terminator reference FunctionalData(source,target)
47985 */ 38349 */
47986private pattern mustInRelationeEnum_reference_EEnumLiteral( 38350private pattern mustInRelationterminator_reference_FunctionalData(
47987 problem:LogicProblem, interpretation:PartialInterpretation, 38351 problem:LogicProblem, interpretation:PartialInterpretation,
47988 source: DefinedElement, target:DefinedElement) 38352 source: DefinedElement, target:DefinedElement)
47989{ 38353{
47990 find interpretation(problem,interpretation); 38354 find interpretation(problem,interpretation);
47991 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 38355 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
47992 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eEnum reference EEnumLiteral"); 38356 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"terminator reference FunctionalData");
47993 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 38357 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
47994 BinaryElementRelationLink.param1(link,source); 38358 BinaryElementRelationLink.param1(link,source);
47995 BinaryElementRelationLink.param2(link,target); 38359 BinaryElementRelationLink.param2(link,target);
47996} 38360}
47997/** 38361/**
47998 * Matcher for detecting tuples t where <>eEnum reference EEnumLiteral(source,target) 38362 * Matcher for detecting tuples t where <>terminator reference FunctionalData(source,target)
47999 */ 38363 */
48000private pattern mayInRelationeEnum_reference_EEnumLiteral( 38364private pattern mayInRelationterminator_reference_FunctionalData(
48001 problem:LogicProblem, interpretation:PartialInterpretation, 38365 problem:LogicProblem, interpretation:PartialInterpretation,
48002 source: DefinedElement, target:DefinedElement) 38366 source: DefinedElement, target:DefinedElement)
48003{ 38367{
@@ -48006,51 +38370,15 @@ private pattern mayInRelationeEnum_reference_EEnumLiteral(
48006 find mayExist(problem, interpretation, source); 38370 find mayExist(problem, interpretation, source);
48007 find mayExist(problem, interpretation, target); 38371 find mayExist(problem, interpretation, target);
48008 // Type consistency 38372 // Type consistency
48009 find mayInstanceOfEEnumLiteral_class(problem,interpretation,source); 38373 find mayInstanceOfFunctionalData_class(problem,interpretation,source);
48010 find mayInstanceOfEEnum_class(problem,interpretation,target); 38374 find mayInstanceOfFAMTerminator_class(problem,interpretation,target);
48011 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 38375 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
48012 // the upper bound of the multiplicity should be considered. 38376 // the upper bound of the multiplicity should be considered.
48013 numberOfExistingReferences == count find mustInRelationeEnum_reference_EEnumLiteral(problem,interpretation,source,_); 38377 numberOfExistingReferences == count find mustInRelationterminator_reference_FunctionalData(problem,interpretation,source,_);
48014 check(numberOfExistingReferences < 1); 38378 check(numberOfExistingReferences < 1);
48015 // The eOpposite of the reference is containment, then a referene cannot be created if
48016 // 1. Multiple parents
48017 neg find mustContains4(problem,interpretation,source,_);
48018 // 2. Circle in the containment hierarchy
48019 neg find mustTransitiveContains(source,target);
48020} or {
48021 find mustInRelationeEnum_reference_EEnumLiteral(problem,interpretation,source,target);
48022}
48023/**
48024 * Matcher for detecting tuples t where []eAnnotations reference EModelElement(source,target)
48025 */
48026private pattern mustInRelationeAnnotations_reference_EModelElement(
48027 problem:LogicProblem, interpretation:PartialInterpretation,
48028 source: DefinedElement, target:DefinedElement)
48029{
48030 find interpretation(problem,interpretation);
48031 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
48032 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAnnotations reference EModelElement");
48033 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
48034 BinaryElementRelationLink.param1(link,source);
48035 BinaryElementRelationLink.param2(link,target);
48036}
48037/**
48038 * Matcher for detecting tuples t where <>eAnnotations reference EModelElement(source,target)
48039 */
48040private pattern mayInRelationeAnnotations_reference_EModelElement(
48041 problem:LogicProblem, interpretation:PartialInterpretation,
48042 source: DefinedElement, target:DefinedElement)
48043{
48044 find interpretation(problem,interpretation);
48045 // The two endpoint of the link have to exist
48046 find mayExist(problem, interpretation, source);
48047 find mayExist(problem, interpretation, target);
48048 // Type consistency
48049 find mayInstanceOfEModelElement_class(problem,interpretation,source);
48050 find mayInstanceOfEAnnotation_class(problem,interpretation,target);
48051 // There are "numberOfExistingReferences" currently existing instances of the reference to the target, 38379 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
48052 // the upper bound of the opposite reference multiplicity should be considered. 38380 // the upper bound of the opposite reference multiplicity should be considered.
48053 numberOfExistingOppositeReferences == count find mustInRelationeModelElement_reference_EAnnotation(problem,interpretation,target,_); 38381 numberOfExistingOppositeReferences == count find mustInRelationdata_reference_FAMTerminator(problem,interpretation,target,_);
48054 check(numberOfExistingOppositeReferences < 1); 38382 check(numberOfExistingOppositeReferences < 1);
48055 // The reference is containment, then a new reference cannot be create if: 38383 // The reference is containment, then a new reference cannot be create if:
48056 // 1. Multiple parents 38384 // 1. Multiple parents
@@ -48058,26 +38386,26 @@ private pattern mayInRelationeAnnotations_reference_EModelElement(
48058 // 2. Circle in the containment hierarchy 38386 // 2. Circle in the containment hierarchy
48059 neg find mustTransitiveContains(source,target); 38387 neg find mustTransitiveContains(source,target);
48060} or { 38388} or {
48061 find mustInRelationeAnnotations_reference_EModelElement(problem,interpretation,source,target); 38389 find mustInRelationterminator_reference_FunctionalData(problem,interpretation,source,target);
48062} 38390}
48063/** 38391/**
48064 * Matcher for detecting tuples t where []eContainingClass reference EOperation(source,target) 38392 * Matcher for detecting tuples t where []interface reference FunctionalData(source,target)
48065 */ 38393 */
48066private pattern mustInRelationeContainingClass_reference_EOperation( 38394private pattern mustInRelationinterface_reference_FunctionalData(
48067 problem:LogicProblem, interpretation:PartialInterpretation, 38395 problem:LogicProblem, interpretation:PartialInterpretation,
48068 source: DefinedElement, target:DefinedElement) 38396 source: DefinedElement, target:DefinedElement)
48069{ 38397{
48070 find interpretation(problem,interpretation); 38398 find interpretation(problem,interpretation);
48071 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 38399 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
48072 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eContainingClass reference EOperation"); 38400 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"interface reference FunctionalData");
48073 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 38401 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
48074 BinaryElementRelationLink.param1(link,source); 38402 BinaryElementRelationLink.param1(link,source);
48075 BinaryElementRelationLink.param2(link,target); 38403 BinaryElementRelationLink.param2(link,target);
48076} 38404}
48077/** 38405/**
48078 * Matcher for detecting tuples t where <>eContainingClass reference EOperation(source,target) 38406 * Matcher for detecting tuples t where <>interface reference FunctionalData(source,target)
48079 */ 38407 */
48080private pattern mayInRelationeContainingClass_reference_EOperation( 38408private pattern mayInRelationinterface_reference_FunctionalData(
48081 problem:LogicProblem, interpretation:PartialInterpretation, 38409 problem:LogicProblem, interpretation:PartialInterpretation,
48082 source: DefinedElement, target:DefinedElement) 38410 source: DefinedElement, target:DefinedElement)
48083{ 38411{
@@ -48086,11 +38414,11 @@ private pattern mayInRelationeContainingClass_reference_EOperation(
48086 find mayExist(problem, interpretation, source); 38414 find mayExist(problem, interpretation, source);
48087 find mayExist(problem, interpretation, target); 38415 find mayExist(problem, interpretation, target);
48088 // Type consistency 38416 // Type consistency
48089 find mayInstanceOfEOperation_class(problem,interpretation,source); 38417 find mayInstanceOfFunctionalData_class(problem,interpretation,source);
48090 find mayInstanceOfEClass_class(problem,interpretation,target); 38418 find mayInstanceOfFunctionalInterface_class(problem,interpretation,target);
48091 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 38419 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
48092 // the upper bound of the multiplicity should be considered. 38420 // the upper bound of the multiplicity should be considered.
48093 numberOfExistingReferences == count find mustInRelationeContainingClass_reference_EOperation(problem,interpretation,source,_); 38421 numberOfExistingReferences == count find mustInRelationinterface_reference_FunctionalData(problem,interpretation,source,_);
48094 check(numberOfExistingReferences < 1); 38422 check(numberOfExistingReferences < 1);
48095 // The eOpposite of the reference is containment, then a referene cannot be created if 38423 // The eOpposite of the reference is containment, then a referene cannot be created if
48096 // 1. Multiple parents 38424 // 1. Multiple parents
@@ -48098,26 +38426,26 @@ private pattern mayInRelationeContainingClass_reference_EOperation(
48098 // 2. Circle in the containment hierarchy 38426 // 2. Circle in the containment hierarchy
48099 neg find mustTransitiveContains(source,target); 38427 neg find mustTransitiveContains(source,target);
48100} or { 38428} or {
48101 find mustInRelationeContainingClass_reference_EOperation(problem,interpretation,source,target); 38429 find mustInRelationinterface_reference_FunctionalData(problem,interpretation,source,target);
48102} 38430}
48103/** 38431/**
48104 * Matcher for detecting tuples t where []eTypeParameters reference EOperation(source,target) 38432 * Matcher for detecting tuples t where []type attribute Function(source,target)
48105 */ 38433 */
48106private pattern mustInRelationeTypeParameters_reference_EOperation( 38434private pattern mustInRelationtype_attribute_Function(
48107 problem:LogicProblem, interpretation:PartialInterpretation, 38435 problem:LogicProblem, interpretation:PartialInterpretation,
48108 source: DefinedElement, target:DefinedElement) 38436 source: DefinedElement, target:DefinedElement)
48109{ 38437{
48110 find interpretation(problem,interpretation); 38438 find interpretation(problem,interpretation);
48111 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 38439 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
48112 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eTypeParameters reference EOperation"); 38440 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function");
48113 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 38441 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
48114 BinaryElementRelationLink.param1(link,source); 38442 BinaryElementRelationLink.param1(link,source);
48115 BinaryElementRelationLink.param2(link,target); 38443 BinaryElementRelationLink.param2(link,target);
48116} 38444}
48117/** 38445/**
48118 * Matcher for detecting tuples t where <>eTypeParameters reference EOperation(source,target) 38446 * Matcher for detecting tuples t where <>type attribute Function(source,target)
48119 */ 38447 */
48120private pattern mayInRelationeTypeParameters_reference_EOperation( 38448private pattern mayInRelationtype_attribute_Function(
48121 problem:LogicProblem, interpretation:PartialInterpretation, 38449 problem:LogicProblem, interpretation:PartialInterpretation,
48122 source: DefinedElement, target:DefinedElement) 38450 source: DefinedElement, target:DefinedElement)
48123{ 38451{
@@ -48126,1194 +38454,1159 @@ private pattern mayInRelationeTypeParameters_reference_EOperation(
48126 find mayExist(problem, interpretation, source); 38454 find mayExist(problem, interpretation, source);
48127 find mayExist(problem, interpretation, target); 38455 find mayExist(problem, interpretation, target);
48128 // Type consistency 38456 // Type consistency
48129 find mayInstanceOfEOperation_class(problem,interpretation,source); 38457 find mayInstanceOfFunction_class(problem,interpretation,source);
48130 find mayInstanceOfETypeParameter_class(problem,interpretation,target); 38458 find mayInstanceOfFunctionType_enum(problem,interpretation,target);
48131 // The reference is containment, then a new reference cannot be create if: 38459 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
48132 // 1. Multiple parents 38460 // the upper bound of the multiplicity should be considered.
48133 neg find mustContains4(problem,interpretation,_,target); 38461 numberOfExistingReferences == count find mustInRelationtype_attribute_Function(problem,interpretation,source,_);
48134 // 2. Circle in the containment hierarchy 38462 check(numberOfExistingReferences < 1);
48135 neg find mustTransitiveContains(source,target);
48136} or { 38463} or {
48137 find mustInRelationeTypeParameters_reference_EOperation(problem,interpretation,source,target); 38464 find mustInRelationtype_attribute_Function(problem,interpretation,source,target);
48138} 38465}
48139/** 38466
48140 * Matcher for detecting tuples t where []eParameters reference EOperation(source,target) 38467//////////
48141 */ 38468// 1.3 Relation Definition Indexers
48142private pattern mustInRelationeParameters_reference_EOperation( 38469//////////
38470// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test fam queries terminatorAndInformation
38471private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(
48143 problem:LogicProblem, interpretation:PartialInterpretation, 38472 problem:LogicProblem, interpretation:PartialInterpretation,
48144 source: DefinedElement, target:DefinedElement) 38473 var_T, var_I)
48145{ 38474{
48146 find interpretation(problem,interpretation); 38475 find interpretation(problem,interpretation);
48147 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 38476 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_T);
48148 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eParameters reference EOperation"); 38477 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
48149 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 38478 // T is exported
48150 BinaryElementRelationLink.param1(link,source); 38479 // I is exported
48151 BinaryElementRelationLink.param2(link,target); 38480 find mustInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
48152} 38481 find mustInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,var_Out,var_virtual0);
48153/** 38482 find mustInstanceOfInformationLink_class(problem,interpretation,var_virtual0);
48154 * Matcher for detecting tuples t where <>eParameters reference EOperation(source,target) 38483 var_virtual0 == var_I;
48155 */ 38484 find mustInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
48156private pattern mayInRelationeParameters_reference_EOperation( 38485 find mustInRelationterminator_reference_FunctionalData(problem,interpretation,var_Out,var_virtual1);
48157 problem:LogicProblem, interpretation:PartialInterpretation, 38486 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
48158 source: DefinedElement, target:DefinedElement) 38487 var_virtual1 == var_T;
48159{ 38488}or{
48160 find interpretation(problem,interpretation); 38489 find interpretation(problem,interpretation);
48161 // The two endpoint of the link have to exist 38490 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_T);
48162 find mayExist(problem, interpretation, source); 38491 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
48163 find mayExist(problem, interpretation, target); 38492 // T is exported
48164 // Type consistency 38493 // I is exported
48165 find mayInstanceOfEOperation_class(problem,interpretation,source); 38494 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
48166 find mayInstanceOfEParameter_class(problem,interpretation,target); 38495 find mustInRelationto_reference_InformationLink(problem,interpretation,var_I,var_virtual0);
48167 // There are "numberOfExistingReferences" currently existing instances of the reference to the target, 38496 find mustInstanceOfFunctionalInput_class(problem,interpretation,var_virtual0);
48168 // the upper bound of the opposite reference multiplicity should be considered. 38497 var_virtual0 == var_In;
48169 numberOfExistingOppositeReferences == count find mustInRelationeOperation_reference_EParameter(problem,interpretation,target,_); 38498 find mustInstanceOfFunctionalInput_class(problem,interpretation,var_In);
48170 check(numberOfExistingOppositeReferences < 1); 38499 find mustInRelationterminator_reference_FunctionalData(problem,interpretation,var_In,var_virtual1);
48171 // The reference is containment, then a new reference cannot be create if: 38500 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
48172 // 1. Multiple parents 38501 var_virtual1 == var_T;
48173 neg find mustContains4(problem,interpretation,_,target);
48174 // 2. Circle in the containment hierarchy
48175 neg find mustTransitiveContains(source,target);
48176} or {
48177 find mustInRelationeParameters_reference_EOperation(problem,interpretation,source,target);
48178} 38502}
48179/** 38503private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(
48180 * Matcher for detecting tuples t where []eExceptions reference EOperation(source,target)
48181 */
48182private pattern mustInRelationeExceptions_reference_EOperation(
48183 problem:LogicProblem, interpretation:PartialInterpretation, 38504 problem:LogicProblem, interpretation:PartialInterpretation,
48184 source: DefinedElement, target:DefinedElement) 38505 var_T, var_I)
48185{ 38506{
48186 find interpretation(problem,interpretation); 38507 find interpretation(problem,interpretation);
48187 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 38508 find mayInstanceOfFAMTerminator_class(problem,interpretation,var_T);
48188 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eExceptions reference EOperation"); 38509 find mayInstanceOfInformationLink_class(problem,interpretation,var_I);
48189 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 38510 // T is exported
48190 BinaryElementRelationLink.param1(link,source); 38511 // I is exported
48191 BinaryElementRelationLink.param2(link,target); 38512 find mayInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
48192} 38513 find mayInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,var_Out,var_virtual0);
48193/** 38514 find mayInstanceOfInformationLink_class(problem,interpretation,var_virtual0);
48194 * Matcher for detecting tuples t where <>eExceptions reference EOperation(source,target) 38515 find mayEquivalent(problem, interpretation, var_virtual0, var_I);
48195 */ 38516 find mayInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
48196private pattern mayInRelationeExceptions_reference_EOperation( 38517 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,var_Out,var_virtual1);
48197 problem:LogicProblem, interpretation:PartialInterpretation, 38518 find mayInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
48198 source: DefinedElement, target:DefinedElement) 38519 find mayEquivalent(problem, interpretation, var_virtual1, var_T);
48199{ 38520}or{
48200 find interpretation(problem,interpretation); 38521 find interpretation(problem,interpretation);
48201 // The two endpoint of the link have to exist 38522 find mayInstanceOfFAMTerminator_class(problem,interpretation,var_T);
48202 find mayExist(problem, interpretation, source); 38523 find mayInstanceOfInformationLink_class(problem,interpretation,var_I);
48203 find mayExist(problem, interpretation, target); 38524 // T is exported
48204 // Type consistency 38525 // I is exported
48205 find mayInstanceOfEOperation_class(problem,interpretation,source); 38526 find mayInstanceOfInformationLink_class(problem,interpretation,var_I);
48206 find mayInstanceOfEClassifier_class(problem,interpretation,target); 38527 find mayInRelationto_reference_InformationLink(problem,interpretation,var_I,var_virtual0);
48207} or { 38528 find mayInstanceOfFunctionalInput_class(problem,interpretation,var_virtual0);
48208 find mustInRelationeExceptions_reference_EOperation(problem,interpretation,source,target); 38529 find mayEquivalent(problem, interpretation, var_virtual0, var_In);
38530 find mayInstanceOfFunctionalInput_class(problem,interpretation,var_In);
38531 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,var_In,var_virtual1);
38532 find mayInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
38533 find mayEquivalent(problem, interpretation, var_virtual1, var_T);
48209} 38534}
48210/** 38535private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(
48211 * Matcher for detecting tuples t where []eGenericExceptions reference EOperation(source,target)
48212 */
48213private pattern mustInRelationeGenericExceptions_reference_EOperation(
48214 problem:LogicProblem, interpretation:PartialInterpretation, 38536 problem:LogicProblem, interpretation:PartialInterpretation,
48215 source: DefinedElement, target:DefinedElement) 38537 var_T, var_I)
48216{ 38538{
48217 find interpretation(problem,interpretation); 38539 find interpretation(problem,interpretation);
48218 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 38540 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_T);
48219 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eGenericExceptions reference EOperation"); 38541 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
48220 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 38542 // T is exported
48221 BinaryElementRelationLink.param1(link,source); 38543 // I is exported
48222 BinaryElementRelationLink.param2(link,target); 38544 find mustInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
48223} 38545 find mustInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,var_Out,var_virtual0);
48224/** 38546 find mustInstanceOfInformationLink_class(problem,interpretation,var_virtual0);
48225 * Matcher for detecting tuples t where <>eGenericExceptions reference EOperation(source,target) 38547 var_virtual0 == var_I;
48226 */ 38548 find mustInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
48227private pattern mayInRelationeGenericExceptions_reference_EOperation( 38549 find mustInRelationterminator_reference_FunctionalData(problem,interpretation,var_Out,var_virtual1);
48228 problem:LogicProblem, interpretation:PartialInterpretation, 38550 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
48229 source: DefinedElement, target:DefinedElement) 38551 var_virtual1 == var_T;
48230{ 38552}or{
48231 find interpretation(problem,interpretation); 38553 find interpretation(problem,interpretation);
48232 // The two endpoint of the link have to exist 38554 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_T);
48233 find mayExist(problem, interpretation, source); 38555 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
48234 find mayExist(problem, interpretation, target); 38556 // T is exported
48235 // Type consistency 38557 // I is exported
48236 find mayInstanceOfEOperation_class(problem,interpretation,source); 38558 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
48237 find mayInstanceOfEGenericType_class(problem,interpretation,target); 38559 find mustInRelationto_reference_InformationLink(problem,interpretation,var_I,var_virtual0);
48238 // The reference is containment, then a new reference cannot be create if: 38560 find mustInstanceOfFunctionalInput_class(problem,interpretation,var_virtual0);
48239 // 1. Multiple parents 38561 var_virtual0 == var_In;
48240 neg find mustContains4(problem,interpretation,_,target); 38562 find mustInstanceOfFunctionalInput_class(problem,interpretation,var_In);
48241 // 2. Circle in the containment hierarchy 38563 find mustInRelationterminator_reference_FunctionalData(problem,interpretation,var_In,var_virtual1);
48242 neg find mustTransitiveContains(source,target); 38564 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
48243} or { 38565 var_virtual1 == var_T;
48244 find mustInRelationeGenericExceptions_reference_EOperation(problem,interpretation,source,target);
48245} 38566}
48246/** 38567
48247 * Matcher for detecting tuples t where []eClassifiers reference EPackage(source,target) 38568//////////
48248 */ 38569// 1.4 Containment Indexer
48249private pattern mustInRelationeClassifiers_reference_EPackage( 38570//////////
48250 problem:LogicProblem, interpretation:PartialInterpretation, 38571private pattern mustContains2(source: DefinedElement, target: DefinedElement) {
48251 source: DefinedElement, target:DefinedElement) 38572 find mustContains4(_,_,source,target);
38573}
38574
38575private pattern mustContains4(problem:LogicProblem, interpretation:PartialInterpretation,
38576 source: DefinedElement, target: DefinedElement)
38577 { find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,source,target); }or
38578
38579 { find mustInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,source,target); }or
38580
38581 { find mustInRelationsubElements_reference_Function(problem,interpretation,source,target); }or
38582
38583 { find mustInRelationdata_reference_FunctionalInterface(problem,interpretation,source,target); }or
38584
38585 { find mustInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,source,target); }or
38586
38587 { find mustInRelationterminator_reference_FunctionalData(problem,interpretation,source,target); }
38588
38589private pattern mustTransitiveContains(source,target) {
38590 find mustContains2+(source,target);
38591}
38592
38593//////////
38594// 2. Invalidation Indexers
38595//////////
38596// 2.1 Invalidated by WF Queries
38597//////////
38598pattern invalidatedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(problem:LogicProblem, interpretation:PartialInterpretation,
38599 var_T, var_I)
48252{ 38600{
38601 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(problem,interpretation,var_T,var_I);
38602}
38603
38604//////////
38605// 3. Unfinishedness Indexers
38606//////////
38607// 3.1 Unfinishedness Measured by Multiplicity
38608//////////
38609pattern unfinishedLowerMultiplicity_model_reference_FunctionalElement(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
48253 find interpretation(problem,interpretation); 38610 find interpretation(problem,interpretation);
48254 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 38611 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
48255 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eClassifiers reference EPackage"); 38612 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement");
48256 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 38613 find mustInstanceOfFunctionalElement_class(problem,interpretation,object);
48257 BinaryElementRelationLink.param1(link,source); 38614 numberOfExistingReferences == count find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,object,_);
48258 BinaryElementRelationLink.param2(link,target); 38615 check(numberOfExistingReferences < 1);
38616 missingMultiplicity == eval(1-numberOfExistingReferences);
48259} 38617}
48260/** 38618pattern unfinishedLowerMultiplicity_to_reference_InformationLink(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
48261 * Matcher for detecting tuples t where <>eClassifiers reference EPackage(source,target)
48262 */
48263private pattern mayInRelationeClassifiers_reference_EPackage(
48264 problem:LogicProblem, interpretation:PartialInterpretation,
48265 source: DefinedElement, target:DefinedElement)
48266{
48267 find interpretation(problem,interpretation); 38619 find interpretation(problem,interpretation);
48268 // The two endpoint of the link have to exist 38620 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
48269 find mayExist(problem, interpretation, source); 38621 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"to reference InformationLink");
48270 find mayExist(problem, interpretation, target); 38622 find mustInstanceOfInformationLink_class(problem,interpretation,object);
48271 // Type consistency 38623 numberOfExistingReferences == count find mustInRelationto_reference_InformationLink(problem,interpretation,object,_);
48272 find mayInstanceOfEPackage_class(problem,interpretation,source); 38624 check(numberOfExistingReferences < 1);
48273 find mayInstanceOfEClassifier_class(problem,interpretation,target); 38625 missingMultiplicity == eval(1-numberOfExistingReferences);
48274 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
48275 // the upper bound of the opposite reference multiplicity should be considered.
48276 numberOfExistingOppositeReferences == count find mustInRelationePackage_reference_EClassifier(problem,interpretation,target,_);
48277 check(numberOfExistingOppositeReferences < 1);
48278 // The reference is containment, then a new reference cannot be create if:
48279 // 1. Multiple parents
48280 neg find mustContains4(problem,interpretation,_,target);
48281 // 2. Circle in the containment hierarchy
48282 neg find mustTransitiveContains(source,target);
48283} or {
48284 find mustInRelationeClassifiers_reference_EPackage(problem,interpretation,source,target);
48285} 38626}
48286/** 38627pattern unfinishedLowerMultiplicity_type_attribute_Function(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
48287 * Matcher for detecting tuples t where []eSubpackages reference EPackage(source,target)
48288 */
48289private pattern mustInRelationeSubpackages_reference_EPackage(
48290 problem:LogicProblem, interpretation:PartialInterpretation,
48291 source: DefinedElement, target:DefinedElement)
48292{
48293 find interpretation(problem,interpretation); 38628 find interpretation(problem,interpretation);
48294 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 38629 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
48295 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eSubpackages reference EPackage"); 38630 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function");
48296 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 38631 find mustInstanceOfFunction_class(problem,interpretation,object);
48297 BinaryElementRelationLink.param1(link,source); 38632 numberOfExistingReferences == count find mustInRelationtype_attribute_Function(problem,interpretation,object,_);
48298 BinaryElementRelationLink.param2(link,target); 38633 check(numberOfExistingReferences < 1);
38634 missingMultiplicity == eval(1-numberOfExistingReferences);
48299} 38635}
48300/** 38636
48301 * Matcher for detecting tuples t where <>eSubpackages reference EPackage(source,target) 38637//////////
48302 */ 38638// 3.2 Unfinishedness Measured by WF Queries
48303private pattern mayInRelationeSubpackages_reference_EPackage( 38639//////////
48304 problem:LogicProblem, interpretation:PartialInterpretation, 38640pattern unfinishedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(problem:LogicProblem, interpretation:PartialInterpretation,
48305 source: DefinedElement, target:DefinedElement) 38641 var_T, var_I)
48306{ 38642{
48307 find interpretation(problem,interpretation); 38643 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(problem,interpretation,var_T,var_I);
48308 // The two endpoint of the link have to exist
48309 find mayExist(problem, interpretation, source);
48310 find mayExist(problem, interpretation, target);
48311 // Type consistency
48312 find mayInstanceOfEPackage_class(problem,interpretation,source);
48313 find mayInstanceOfEPackage_class(problem,interpretation,target);
48314 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
48315 // the upper bound of the opposite reference multiplicity should be considered.
48316 numberOfExistingOppositeReferences == count find mustInRelationeSuperPackage_reference_EPackage(problem,interpretation,target,_);
48317 check(numberOfExistingOppositeReferences < 1);
48318 // The reference is containment, then a new reference cannot be create if:
48319 // 1. Multiple parents
48320 neg find mustContains4(problem,interpretation,_,target);
48321 // 2. Circle in the containment hierarchy
48322 neg find mustTransitiveContains(source,target);
48323} or {
48324 find mustInRelationeSubpackages_reference_EPackage(problem,interpretation,source,target);
48325} 38644}
48326/** 38645
48327 * Matcher for detecting tuples t where []eSuperPackage reference EPackage(source,target) 38646//////////
48328 */ 38647// 4. Refinement Indexers
48329private pattern mustInRelationeSuperPackage_reference_EPackage( 38648//////////
48330 problem:LogicProblem, interpretation:PartialInterpretation, 38649// 4.1 Object constructors
48331 source: DefinedElement, target:DefinedElement) 38650//////////
38651private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation)
48332{ 38652{
48333 find interpretation(problem,interpretation); 38653 find interpretation(problem,interpretation);
48334 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 38654 find mustInstanceOfFunctionalInterface_class(problem,interpretation,root);
48335 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eSuperPackage reference EPackage"); 38655 find mustExist(problem, interpretation, root);
48336 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 38656}or{
48337 BinaryElementRelationLink.param1(link,source); 38657 find interpretation(problem,interpretation);
48338 BinaryElementRelationLink.param2(link,target); 38658 find mustInstanceOfInformationLink_class(problem,interpretation,root);
38659 find mustExist(problem, interpretation, root);
38660}or{
38661 find interpretation(problem,interpretation);
38662 find mustInstanceOfFunctionalElement_class(problem,interpretation,root);
38663 find mustExist(problem, interpretation, root);
38664}or{
38665 find interpretation(problem,interpretation);
38666 find mustInstanceOfFAMTerminator_class(problem,interpretation,root);
38667 find mustExist(problem, interpretation, root);
38668}or{
38669 find interpretation(problem,interpretation);
38670 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,root);
38671 find mustExist(problem, interpretation, root);
38672}or{
38673 find interpretation(problem,interpretation);
38674 find mustInstanceOfFunctionalInput_class(problem,interpretation,root);
38675 find mustExist(problem, interpretation, root);
38676}or{
38677 find interpretation(problem,interpretation);
38678 find mustInstanceOfFunction_class(problem,interpretation,root);
38679 find mustExist(problem, interpretation, root);
38680}or{
38681 find interpretation(problem,interpretation);
38682 find mustInstanceOfFunctionalOutput_class(problem,interpretation,root);
38683 find mustExist(problem, interpretation, root);
38684}or{
38685 find interpretation(problem,interpretation);
38686 find mustInstanceOfFunctionalData_class(problem,interpretation,root);
38687 find mustExist(problem, interpretation, root);
48339} 38688}
48340/** 38689pattern createObject_FunctionalArchitectureModel_class(
48341 * Matcher for detecting tuples t where <>eSuperPackage reference EPackage(source,target)
48342 */
48343private pattern mayInRelationeSuperPackage_reference_EPackage(
48344 problem:LogicProblem, interpretation:PartialInterpretation, 38690 problem:LogicProblem, interpretation:PartialInterpretation,
48345 source: DefinedElement, target:DefinedElement) 38691 typeInterpretation:PartialComplexTypeInterpretation)
48346{ 38692{
48347 find interpretation(problem,interpretation); 38693 find interpretation(problem,interpretation);
48348 // The two endpoint of the link have to exist 38694 neg find hasElementInContainment(problem,interpretation);
48349 find mayExist(problem, interpretation, source); 38695 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
48350 find mayExist(problem, interpretation, target); 38696 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalArchitectureModel class");
48351 // Type consistency 38697 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,newObject);
48352 find mayInstanceOfEPackage_class(problem,interpretation,source); 38698 find mayExist(problem, interpretation, newObject);
48353 find mayInstanceOfEPackage_class(problem,interpretation,target); 38699 neg find mustExist(problem, interpretation, newObject);
48354 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
48355 // the upper bound of the multiplicity should be considered.
48356 numberOfExistingReferences == count find mustInRelationeSuperPackage_reference_EPackage(problem,interpretation,source,_);
48357 check(numberOfExistingReferences < 1);
48358 // The eOpposite of the reference is containment, then a referene cannot be created if
48359 // 1. Multiple parents
48360 neg find mustContains4(problem,interpretation,source,_);
48361 // 2. Circle in the containment hierarchy
48362 neg find mustTransitiveContains(source,target);
48363} or {
48364 find mustInRelationeSuperPackage_reference_EPackage(problem,interpretation,source,target);
48365} 38700}
48366/** 38701pattern createObject_InformationLink_class_by_outgoingLinks_reference_FunctionalOutput_with_from_reference_InformationLink(
48367 * Matcher for detecting tuples t where []eOperation reference EParameter(source,target)
48368 */
48369private pattern mustInRelationeOperation_reference_EParameter(
48370 problem:LogicProblem, interpretation:PartialInterpretation, 38702 problem:LogicProblem, interpretation:PartialInterpretation,
48371 source: DefinedElement, target:DefinedElement) 38703 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
38704 container:DefinedElement)
48372{ 38705{
48373 find interpretation(problem,interpretation); 38706 find interpretation(problem,interpretation);
48374 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 38707 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
48375 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eOperation reference EParameter"); 38708 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class");
48376 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 38709 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
48377 BinaryElementRelationLink.param1(link,source); 38710 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"outgoingLinks reference FunctionalOutput");
48378 BinaryElementRelationLink.param2(link,target); 38711 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
38712 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"from reference InformationLink");
38713 find mustInstanceOfFunctionalOutput_class(problem,interpretation,container);
38714 find mayInstanceOfInformationLink_class(problem,interpretation,newObject);
38715 find mayInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,container,newObject);
38716 find mustExist(problem, interpretation, container);
38717 neg find mustExist(problem, interpretation, newObject);
48379} 38718}
48380/** 38719pattern createObject_InformationLink_class(
48381 * Matcher for detecting tuples t where <>eOperation reference EParameter(source,target)
48382 */
48383private pattern mayInRelationeOperation_reference_EParameter(
48384 problem:LogicProblem, interpretation:PartialInterpretation, 38720 problem:LogicProblem, interpretation:PartialInterpretation,
48385 source: DefinedElement, target:DefinedElement) 38721 typeInterpretation:PartialComplexTypeInterpretation)
48386{ 38722{
48387 find interpretation(problem,interpretation); 38723 find interpretation(problem,interpretation);
48388 // The two endpoint of the link have to exist 38724 neg find hasElementInContainment(problem,interpretation);
48389 find mayExist(problem, interpretation, source); 38725 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
48390 find mayExist(problem, interpretation, target); 38726 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class");
48391 // Type consistency 38727 find mayInstanceOfInformationLink_class(problem,interpretation,newObject);
48392 find mayInstanceOfEParameter_class(problem,interpretation,source); 38728 find mayExist(problem, interpretation, newObject);
48393 find mayInstanceOfEOperation_class(problem,interpretation,target); 38729 neg find mustExist(problem, interpretation, newObject);
48394 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
48395 // the upper bound of the multiplicity should be considered.
48396 numberOfExistingReferences == count find mustInRelationeOperation_reference_EParameter(problem,interpretation,source,_);
48397 check(numberOfExistingReferences < 1);
48398 // The eOpposite of the reference is containment, then a referene cannot be created if
48399 // 1. Multiple parents
48400 neg find mustContains4(problem,interpretation,source,_);
48401 // 2. Circle in the containment hierarchy
48402 neg find mustTransitiveContains(source,target);
48403} or {
48404 find mustInRelationeOperation_reference_EParameter(problem,interpretation,source,target);
48405} 38730}
48406/** 38731pattern createObject_FunctionalOutput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData(
48407 * Matcher for detecting tuples t where []eOpposite reference EReference(source,target)
48408 */
48409private pattern mustInRelationeOpposite_reference_EReference(
48410 problem:LogicProblem, interpretation:PartialInterpretation, 38732 problem:LogicProblem, interpretation:PartialInterpretation,
48411 source: DefinedElement, target:DefinedElement) 38733 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
38734 container:DefinedElement)
48412{ 38735{
48413 find interpretation(problem,interpretation); 38736 find interpretation(problem,interpretation);
48414 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 38737 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
48415 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eOpposite reference EReference"); 38738 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class");
48416 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 38739 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
48417 BinaryElementRelationLink.param1(link,source); 38740 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface");
48418 BinaryElementRelationLink.param2(link,target); 38741 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
38742 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData");
38743 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container);
38744 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject);
38745 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject);
38746 find mustExist(problem, interpretation, container);
38747 neg find mustExist(problem, interpretation, newObject);
48419} 38748}
48420/** 38749pattern createObject_FunctionalOutput_class(
48421 * Matcher for detecting tuples t where <>eOpposite reference EReference(source,target)
48422 */
48423private pattern mayInRelationeOpposite_reference_EReference(
48424 problem:LogicProblem, interpretation:PartialInterpretation, 38750 problem:LogicProblem, interpretation:PartialInterpretation,
48425 source: DefinedElement, target:DefinedElement) 38751 typeInterpretation:PartialComplexTypeInterpretation)
48426{ 38752{
48427 find interpretation(problem,interpretation); 38753 find interpretation(problem,interpretation);
48428 // The two endpoint of the link have to exist 38754 neg find hasElementInContainment(problem,interpretation);
48429 find mayExist(problem, interpretation, source); 38755 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
48430 find mayExist(problem, interpretation, target); 38756 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class");
48431 // Type consistency 38757 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject);
48432 find mayInstanceOfEReference_class(problem,interpretation,source); 38758 find mayExist(problem, interpretation, newObject);
48433 find mayInstanceOfEReference_class(problem,interpretation,target); 38759 neg find mustExist(problem, interpretation, newObject);
48434 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
48435 // the upper bound of the multiplicity should be considered.
48436 numberOfExistingReferences == count find mustInRelationeOpposite_reference_EReference(problem,interpretation,source,_);
48437 check(numberOfExistingReferences < 1);
48438} or {
48439 find mustInRelationeOpposite_reference_EReference(problem,interpretation,source,target);
48440} 38760}
48441/** 38761pattern createObject_FunctionalInterface_class_by_interface_reference_FunctionalElement_with_element_reference_FunctionalInterface(
48442 * Matcher for detecting tuples t where []eReferenceType reference EReference(source,target)
48443 */
48444private pattern mustInRelationeReferenceType_reference_EReference(
48445 problem:LogicProblem, interpretation:PartialInterpretation, 38762 problem:LogicProblem, interpretation:PartialInterpretation,
48446 source: DefinedElement, target:DefinedElement) 38763 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
38764 container:DefinedElement)
48447{ 38765{
48448 find interpretation(problem,interpretation); 38766 find interpretation(problem,interpretation);
48449 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 38767 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
48450 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eReferenceType reference EReference"); 38768 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
48451 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 38769 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
48452 BinaryElementRelationLink.param1(link,source); 38770 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"interface reference FunctionalElement");
48453 BinaryElementRelationLink.param2(link,target); 38771 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
38772 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"element reference FunctionalInterface");
38773 find mustInstanceOfFunctionalElement_class(problem,interpretation,container);
38774 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
38775 find mayInRelationinterface_reference_FunctionalElement(problem,interpretation,container,newObject);
38776 find mustExist(problem, interpretation, container);
38777 neg find mustExist(problem, interpretation, newObject);
48454} 38778}
48455/** 38779pattern createObject_FunctionalInterface_class(
48456 * Matcher for detecting tuples t where <>eReferenceType reference EReference(source,target)
48457 */
48458private pattern mayInRelationeReferenceType_reference_EReference(
48459 problem:LogicProblem, interpretation:PartialInterpretation, 38780 problem:LogicProblem, interpretation:PartialInterpretation,
48460 source: DefinedElement, target:DefinedElement) 38781 typeInterpretation:PartialComplexTypeInterpretation)
48461{ 38782{
48462 find interpretation(problem,interpretation); 38783 find interpretation(problem,interpretation);
48463 // The two endpoint of the link have to exist 38784 neg find hasElementInContainment(problem,interpretation);
48464 find mayExist(problem, interpretation, source); 38785 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
48465 find mayExist(problem, interpretation, target); 38786 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
48466 // Type consistency 38787 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
48467 find mayInstanceOfEReference_class(problem,interpretation,source); 38788 find mayExist(problem, interpretation, newObject);
48468 find mayInstanceOfEClass_class(problem,interpretation,target); 38789 neg find mustExist(problem, interpretation, newObject);
48469 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
48470 // the upper bound of the multiplicity should be considered.
48471 numberOfExistingReferences == count find mustInRelationeReferenceType_reference_EReference(problem,interpretation,source,_);
48472 check(numberOfExistingReferences < 1);
48473} or {
48474 find mustInRelationeReferenceType_reference_EReference(problem,interpretation,source,target);
48475} 38790}
48476/** 38791pattern createObject_FunctionalInput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData(
48477 * Matcher for detecting tuples t where []eKeys reference EReference(source,target)
48478 */
48479private pattern mustInRelationeKeys_reference_EReference(
48480 problem:LogicProblem, interpretation:PartialInterpretation, 38792 problem:LogicProblem, interpretation:PartialInterpretation,
48481 source: DefinedElement, target:DefinedElement) 38793 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
38794 container:DefinedElement)
48482{ 38795{
48483 find interpretation(problem,interpretation); 38796 find interpretation(problem,interpretation);
48484 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 38797 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
48485 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eKeys reference EReference"); 38798 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class");
48486 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 38799 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
48487 BinaryElementRelationLink.param1(link,source); 38800 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface");
48488 BinaryElementRelationLink.param2(link,target); 38801 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
38802 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData");
38803 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container);
38804 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
38805 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject);
38806 find mustExist(problem, interpretation, container);
38807 neg find mustExist(problem, interpretation, newObject);
48489} 38808}
48490/** 38809pattern createObject_FunctionalInput_class(
48491 * Matcher for detecting tuples t where <>eKeys reference EReference(source,target)
48492 */
48493private pattern mayInRelationeKeys_reference_EReference(
48494 problem:LogicProblem, interpretation:PartialInterpretation, 38810 problem:LogicProblem, interpretation:PartialInterpretation,
48495 source: DefinedElement, target:DefinedElement) 38811 typeInterpretation:PartialComplexTypeInterpretation)
48496{ 38812{
48497 find interpretation(problem,interpretation); 38813 find interpretation(problem,interpretation);
48498 // The two endpoint of the link have to exist 38814 neg find hasElementInContainment(problem,interpretation);
48499 find mayExist(problem, interpretation, source); 38815 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
48500 find mayExist(problem, interpretation, target); 38816 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class");
48501 // Type consistency 38817 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
48502 find mayInstanceOfEReference_class(problem,interpretation,source); 38818 find mayExist(problem, interpretation, newObject);
48503 find mayInstanceOfEAttribute_class(problem,interpretation,target); 38819 neg find mustExist(problem, interpretation, newObject);
48504} or {
48505 find mustInRelationeKeys_reference_EReference(problem,interpretation,source,target);
48506} 38820}
48507/** 38821pattern createObject_Function_class_by_rootElements_reference_FunctionalArchitectureModel(
48508 * Matcher for detecting tuples t where []eContainingClass reference EStructuralFeature(source,target)
48509 */
48510private pattern mustInRelationeContainingClass_reference_EStructuralFeature(
48511 problem:LogicProblem, interpretation:PartialInterpretation, 38822 problem:LogicProblem, interpretation:PartialInterpretation,
48512 source: DefinedElement, target:DefinedElement) 38823 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
38824 container:DefinedElement)
48513{ 38825{
48514 find interpretation(problem,interpretation); 38826 find interpretation(problem,interpretation);
48515 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 38827 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
48516 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eContainingClass reference EStructuralFeature"); 38828 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class");
48517 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 38829 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
48518 BinaryElementRelationLink.param1(link,source); 38830 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"rootElements reference FunctionalArchitectureModel");
48519 BinaryElementRelationLink.param2(link,target); 38831 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,container);
38832 find mayInstanceOfFunction_class(problem,interpretation,newObject);
38833 find mayInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,container,newObject);
38834 find mustExist(problem, interpretation, container);
38835 neg find mustExist(problem, interpretation, newObject);
48520} 38836}
48521/** 38837pattern createObject_Function_class_by_subElements_reference_Function_with_parent_reference_FunctionalElement(
48522 * Matcher for detecting tuples t where <>eContainingClass reference EStructuralFeature(source,target)
48523 */
48524private pattern mayInRelationeContainingClass_reference_EStructuralFeature(
48525 problem:LogicProblem, interpretation:PartialInterpretation, 38838 problem:LogicProblem, interpretation:PartialInterpretation,
48526 source: DefinedElement, target:DefinedElement) 38839 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
38840 container:DefinedElement)
48527{ 38841{
48528 find interpretation(problem,interpretation); 38842 find interpretation(problem,interpretation);
48529 // The two endpoint of the link have to exist 38843 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
48530 find mayExist(problem, interpretation, source); 38844 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class");
48531 find mayExist(problem, interpretation, target); 38845 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
48532 // Type consistency 38846 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"subElements reference Function");
48533 find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); 38847 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
48534 find mayInstanceOfEClass_class(problem,interpretation,target); 38848 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"parent reference FunctionalElement");
48535 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 38849 find mustInstanceOfFunction_class(problem,interpretation,container);
48536 // the upper bound of the multiplicity should be considered. 38850 find mayInstanceOfFunction_class(problem,interpretation,newObject);
48537 numberOfExistingReferences == count find mustInRelationeContainingClass_reference_EStructuralFeature(problem,interpretation,source,_); 38851 find mayInRelationsubElements_reference_Function(problem,interpretation,container,newObject);
48538 check(numberOfExistingReferences < 1); 38852 find mustExist(problem, interpretation, container);
48539 // The eOpposite of the reference is containment, then a referene cannot be created if 38853 neg find mustExist(problem, interpretation, newObject);
48540 // 1. Multiple parents
48541 neg find mustContains4(problem,interpretation,source,_);
48542 // 2. Circle in the containment hierarchy
48543 neg find mustTransitiveContains(source,target);
48544} or {
48545 find mustInRelationeContainingClass_reference_EStructuralFeature(problem,interpretation,source,target);
48546} 38854}
48547/** 38855pattern createObject_Function_class(
48548 * Matcher for detecting tuples t where []eType reference ETypedElement(source,target)
48549 */
48550private pattern mustInRelationeType_reference_ETypedElement(
48551 problem:LogicProblem, interpretation:PartialInterpretation, 38856 problem:LogicProblem, interpretation:PartialInterpretation,
48552 source: DefinedElement, target:DefinedElement) 38857 typeInterpretation:PartialComplexTypeInterpretation)
48553{ 38858{
48554 find interpretation(problem,interpretation); 38859 find interpretation(problem,interpretation);
48555 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 38860 neg find hasElementInContainment(problem,interpretation);
48556 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eType reference ETypedElement"); 38861 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
48557 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 38862 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class");
48558 BinaryElementRelationLink.param1(link,source); 38863 find mayInstanceOfFunction_class(problem,interpretation,newObject);
48559 BinaryElementRelationLink.param2(link,target); 38864 find mayExist(problem, interpretation, newObject);
38865 neg find mustExist(problem, interpretation, newObject);
48560} 38866}
48561/** 38867pattern createObject_FAMTerminator_class_by_terminator_reference_FunctionalData_with_data_reference_FAMTerminator(
48562 * Matcher for detecting tuples t where <>eType reference ETypedElement(source,target)
48563 */
48564private pattern mayInRelationeType_reference_ETypedElement(
48565 problem:LogicProblem, interpretation:PartialInterpretation, 38868 problem:LogicProblem, interpretation:PartialInterpretation,
48566 source: DefinedElement, target:DefinedElement) 38869 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
38870 container:DefinedElement)
48567{ 38871{
48568 find interpretation(problem,interpretation); 38872 find interpretation(problem,interpretation);
48569 // The two endpoint of the link have to exist 38873 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
48570 find mayExist(problem, interpretation, source); 38874 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class");
48571 find mayExist(problem, interpretation, target); 38875 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
48572 // Type consistency 38876 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"terminator reference FunctionalData");
48573 find mayInstanceOfETypedElement_class(problem,interpretation,source); 38877 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
48574 find mayInstanceOfEClassifier_class(problem,interpretation,target); 38878 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"data reference FAMTerminator");
48575 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 38879 find mustInstanceOfFunctionalData_class(problem,interpretation,container);
48576 // the upper bound of the multiplicity should be considered. 38880 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject);
48577 numberOfExistingReferences == count find mustInRelationeType_reference_ETypedElement(problem,interpretation,source,_); 38881 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,container,newObject);
48578 check(numberOfExistingReferences < 1); 38882 find mustExist(problem, interpretation, container);
48579} or { 38883 neg find mustExist(problem, interpretation, newObject);
48580 find mustInRelationeType_reference_ETypedElement(problem,interpretation,source,target);
48581} 38884}
48582/** 38885pattern createObject_FAMTerminator_class(
48583 * Matcher for detecting tuples t where []eGenericType reference ETypedElement(source,target)
48584 */
48585private pattern mustInRelationeGenericType_reference_ETypedElement(
48586 problem:LogicProblem, interpretation:PartialInterpretation, 38886 problem:LogicProblem, interpretation:PartialInterpretation,
48587 source: DefinedElement, target:DefinedElement) 38887 typeInterpretation:PartialComplexTypeInterpretation)
48588{ 38888{
48589 find interpretation(problem,interpretation); 38889 find interpretation(problem,interpretation);
48590 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 38890 neg find hasElementInContainment(problem,interpretation);
48591 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eGenericType reference ETypedElement"); 38891 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
48592 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 38892 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class");
48593 BinaryElementRelationLink.param1(link,source); 38893 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject);
48594 BinaryElementRelationLink.param2(link,target); 38894 find mayExist(problem, interpretation, newObject);
38895 neg find mustExist(problem, interpretation, newObject);
48595} 38896}
48596/** 38897
48597 * Matcher for detecting tuples t where <>eGenericType reference ETypedElement(source,target) 38898//////////
48598 */ 38899// 4.2 Type refinement
48599private pattern mayInRelationeGenericType_reference_ETypedElement( 38900//////////
48600 problem:LogicProblem, interpretation:PartialInterpretation, 38901pattern refineTypeTo_FunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
48601 source: DefinedElement, target:DefinedElement)
48602{
48603 find interpretation(problem,interpretation); 38902 find interpretation(problem,interpretation);
48604 // The two endpoint of the link have to exist 38903 PartialInterpretation.newElements(interpretation,element);
48605 find mayExist(problem, interpretation, source); 38904 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
48606 find mayExist(problem, interpretation, target); 38905 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
48607 // Type consistency 38906 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
48608 find mayInstanceOfETypedElement_class(problem,interpretation,source); 38907 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
48609 find mayInstanceOfEGenericType_class(problem,interpretation,target); 38908 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
48610 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 38909 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
48611 // the upper bound of the multiplicity should be considered. 38910 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
48612 numberOfExistingReferences == count find mustInRelationeGenericType_reference_ETypedElement(problem,interpretation,source,_);
48613 check(numberOfExistingReferences < 1);
48614 // The reference is containment, then a new reference cannot be create if:
48615 // 1. Multiple parents
48616 neg find mustContains4(problem,interpretation,_,target);
48617 // 2. Circle in the containment hierarchy
48618 neg find mustTransitiveContains(source,target);
48619} or {
48620 find mustInRelationeGenericType_reference_ETypedElement(problem,interpretation,source,target);
48621} 38911}
48622/** 38912pattern refineTypeTo_InformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
48623 * Matcher for detecting tuples t where []eUpperBound reference EGenericType(source,target)
48624 */
48625private pattern mustInRelationeUpperBound_reference_EGenericType(
48626 problem:LogicProblem, interpretation:PartialInterpretation,
48627 source: DefinedElement, target:DefinedElement)
48628{
48629 find interpretation(problem,interpretation); 38913 find interpretation(problem,interpretation);
48630 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 38914 PartialInterpretation.newElements(interpretation,element);
48631 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eUpperBound reference EGenericType"); 38915 find mayInstanceOfInformationLink_class(problem,interpretation,element);
48632 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 38916 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
48633 BinaryElementRelationLink.param1(link,source); 38917 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
48634 BinaryElementRelationLink.param2(link,target); 38918 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
38919 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
38920 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
38921 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
48635} 38922}
48636/** 38923pattern refineTypeTo_FunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
48637 * Matcher for detecting tuples t where <>eUpperBound reference EGenericType(source,target)
48638 */
48639private pattern mayInRelationeUpperBound_reference_EGenericType(
48640 problem:LogicProblem, interpretation:PartialInterpretation,
48641 source: DefinedElement, target:DefinedElement)
48642{
48643 find interpretation(problem,interpretation); 38924 find interpretation(problem,interpretation);
48644 // The two endpoint of the link have to exist 38925 PartialInterpretation.newElements(interpretation,element);
48645 find mayExist(problem, interpretation, source); 38926 find mayInstanceOfFunctionalOutput_class(problem,interpretation,element);
48646 find mayExist(problem, interpretation, target); 38927 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
48647 // Type consistency 38928 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
48648 find mayInstanceOfEGenericType_class(problem,interpretation,source); 38929 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
48649 find mayInstanceOfEGenericType_class(problem,interpretation,target); 38930 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
48650 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 38931 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
48651 // the upper bound of the multiplicity should be considered. 38932 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
48652 numberOfExistingReferences == count find mustInRelationeUpperBound_reference_EGenericType(problem,interpretation,source,_); 38933 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
48653 check(numberOfExistingReferences < 1);
48654 // The reference is containment, then a new reference cannot be create if:
48655 // 1. Multiple parents
48656 neg find mustContains4(problem,interpretation,_,target);
48657 // 2. Circle in the containment hierarchy
48658 neg find mustTransitiveContains(source,target);
48659} or {
48660 find mustInRelationeUpperBound_reference_EGenericType(problem,interpretation,source,target);
48661} 38934}
48662/** 38935pattern refineTypeTo_FunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
48663 * Matcher for detecting tuples t where []eTypeArguments reference EGenericType(source,target)
48664 */
48665private pattern mustInRelationeTypeArguments_reference_EGenericType(
48666 problem:LogicProblem, interpretation:PartialInterpretation,
48667 source: DefinedElement, target:DefinedElement)
48668{
48669 find interpretation(problem,interpretation); 38936 find interpretation(problem,interpretation);
48670 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 38937 PartialInterpretation.newElements(interpretation,element);
48671 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eTypeArguments reference EGenericType"); 38938 find mayInstanceOfFunctionalInterface_class(problem,interpretation,element);
48672 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 38939 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
48673 BinaryElementRelationLink.param1(link,source); 38940 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
48674 BinaryElementRelationLink.param2(link,target); 38941 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
38942 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
38943 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
38944 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
48675} 38945}
48676/** 38946pattern refineTypeTo_FunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
48677 * Matcher for detecting tuples t where <>eTypeArguments reference EGenericType(source,target)
48678 */
48679private pattern mayInRelationeTypeArguments_reference_EGenericType(
48680 problem:LogicProblem, interpretation:PartialInterpretation,
48681 source: DefinedElement, target:DefinedElement)
48682{
48683 find interpretation(problem,interpretation); 38947 find interpretation(problem,interpretation);
48684 // The two endpoint of the link have to exist 38948 PartialInterpretation.newElements(interpretation,element);
48685 find mayExist(problem, interpretation, source); 38949 find mayInstanceOfFunctionalInput_class(problem,interpretation,element);
48686 find mayExist(problem, interpretation, target); 38950 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
48687 // Type consistency 38951 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
48688 find mayInstanceOfEGenericType_class(problem,interpretation,source); 38952 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
48689 find mayInstanceOfEGenericType_class(problem,interpretation,target); 38953 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
48690 // The reference is containment, then a new reference cannot be create if: 38954 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
48691 // 1. Multiple parents 38955 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
48692 neg find mustContains4(problem,interpretation,_,target); 38956 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
48693 // 2. Circle in the containment hierarchy
48694 neg find mustTransitiveContains(source,target);
48695} or {
48696 find mustInRelationeTypeArguments_reference_EGenericType(problem,interpretation,source,target);
48697} 38957}
48698/** 38958pattern refineTypeTo_Function_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
48699 * Matcher for detecting tuples t where []eRawType reference EGenericType(source,target)
48700 */
48701private pattern mustInRelationeRawType_reference_EGenericType(
48702 problem:LogicProblem, interpretation:PartialInterpretation,
48703 source: DefinedElement, target:DefinedElement)
48704{
48705 find interpretation(problem,interpretation); 38959 find interpretation(problem,interpretation);
48706 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 38960 PartialInterpretation.newElements(interpretation,element);
48707 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eRawType reference EGenericType"); 38961 find mayInstanceOfFunction_class(problem,interpretation,element);
48708 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 38962 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
48709 BinaryElementRelationLink.param1(link,source); 38963 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
48710 BinaryElementRelationLink.param2(link,target); 38964 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
38965 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
38966 neg find mustInstanceOfFunction_class(problem,interpretation,element);
38967 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
48711} 38968}
48712/** 38969pattern refineTypeTo_FAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
48713 * Matcher for detecting tuples t where <>eRawType reference EGenericType(source,target)
48714 */
48715private pattern mayInRelationeRawType_reference_EGenericType(
48716 problem:LogicProblem, interpretation:PartialInterpretation,
48717 source: DefinedElement, target:DefinedElement)
48718{
48719 find interpretation(problem,interpretation); 38970 find interpretation(problem,interpretation);
48720 // The two endpoint of the link have to exist 38971 PartialInterpretation.newElements(interpretation,element);
48721 find mayExist(problem, interpretation, source); 38972 find mayInstanceOfFAMTerminator_class(problem,interpretation,element);
48722 find mayExist(problem, interpretation, target); 38973 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
48723 // Type consistency 38974 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
48724 find mayInstanceOfEGenericType_class(problem,interpretation,source); 38975 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
48725 find mayInstanceOfEClassifier_class(problem,interpretation,target); 38976 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
48726 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 38977 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
48727 // the upper bound of the multiplicity should be considered. 38978 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
48728 numberOfExistingReferences == count find mustInRelationeRawType_reference_EGenericType(problem,interpretation,source,_);
48729 check(numberOfExistingReferences < 1);
48730} or {
48731 find mustInRelationeRawType_reference_EGenericType(problem,interpretation,source,target);
48732} 38979}
48733/** 38980
48734 * Matcher for detecting tuples t where []eLowerBound reference EGenericType(source,target) 38981//////////
48735 */ 38982// 4.3 Relation refinement
48736private pattern mustInRelationeLowerBound_reference_EGenericType( 38983//////////
38984pattern refineRelation_model_reference_FunctionalElement(
48737 problem:LogicProblem, interpretation:PartialInterpretation, 38985 problem:LogicProblem, interpretation:PartialInterpretation,
48738 source: DefinedElement, target:DefinedElement) 38986 relationIterpretation:PartialRelationInterpretation,
38987 from: DefinedElement, to: DefinedElement)
48739{ 38988{
48740 find interpretation(problem,interpretation); 38989 find interpretation(problem,interpretation);
48741 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 38990 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
48742 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eLowerBound reference EGenericType"); 38991 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement");
48743 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 38992 find mustExist(problem, interpretation, from);
48744 BinaryElementRelationLink.param1(link,source); 38993 find mustExist(problem, interpretation, to);
48745 BinaryElementRelationLink.param2(link,target); 38994 find mustInstanceOfFunctionalElement_class(problem,interpretation,from);
38995 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,to);
38996 find mayInRelationmodel_reference_FunctionalElement(problem,interpretation,from,to);
38997 neg find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,from,to);
48746} 38998}
48747/** 38999pattern refineRelation_IncomingLinks_reference_FunctionalInput_and_to_reference_InformationLink(
48748 * Matcher for detecting tuples t where <>eLowerBound reference EGenericType(source,target)
48749 */
48750private pattern mayInRelationeLowerBound_reference_EGenericType(
48751 problem:LogicProblem, interpretation:PartialInterpretation, 39000 problem:LogicProblem, interpretation:PartialInterpretation,
48752 source: DefinedElement, target:DefinedElement) 39001 relationIterpretation:PartialRelationInterpretation, oppositeInterpretation:PartialRelationInterpretation,
39002 from: DefinedElement, to: DefinedElement)
48753{ 39003{
48754 find interpretation(problem,interpretation); 39004 find interpretation(problem,interpretation);
48755 // The two endpoint of the link have to exist 39005 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
48756 find mayExist(problem, interpretation, source); 39006 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"IncomingLinks reference FunctionalInput");
48757 find mayExist(problem, interpretation, target); 39007 PartialInterpretation.partialrelationinterpretation(interpretation,oppositeInterpretation);
48758 // Type consistency 39008 PartialRelationInterpretation.interpretationOf.name(oppositeInterpretation,"to reference InformationLink");
48759 find mayInstanceOfEGenericType_class(problem,interpretation,source); 39009 find mustExist(problem, interpretation, from);
48760 find mayInstanceOfEGenericType_class(problem,interpretation,target); 39010 find mustExist(problem, interpretation, to);
48761 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 39011 find mustInstanceOfFunctionalInput_class(problem,interpretation,from);
48762 // the upper bound of the multiplicity should be considered. 39012 find mustInstanceOfInformationLink_class(problem,interpretation,to);
48763 numberOfExistingReferences == count find mustInRelationeLowerBound_reference_EGenericType(problem,interpretation,source,_); 39013 find mayInRelationIncomingLinks_reference_FunctionalInput(problem,interpretation,from,to);
48764 check(numberOfExistingReferences < 1); 39014 neg find mustInRelationIncomingLinks_reference_FunctionalInput(problem,interpretation,from,to);
48765 // The reference is containment, then a new reference cannot be create if:
48766 // 1. Multiple parents
48767 neg find mustContains4(problem,interpretation,_,target);
48768 // 2. Circle in the containment hierarchy
48769 neg find mustTransitiveContains(source,target);
48770} or {
48771 find mustInRelationeLowerBound_reference_EGenericType(problem,interpretation,source,target);
48772} 39015}
48773/** 39016pattern refineRelation_type_attribute_Function(
48774 * Matcher for detecting tuples t where []eTypeParameter reference EGenericType(source,target)
48775 */
48776private pattern mustInRelationeTypeParameter_reference_EGenericType(
48777 problem:LogicProblem, interpretation:PartialInterpretation, 39017 problem:LogicProblem, interpretation:PartialInterpretation,
48778 source: DefinedElement, target:DefinedElement) 39018 relationIterpretation:PartialRelationInterpretation,
39019 from: DefinedElement, to: DefinedElement)
48779{ 39020{
48780 find interpretation(problem,interpretation); 39021 find interpretation(problem,interpretation);
48781 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 39022 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
48782 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eTypeParameter reference EGenericType"); 39023 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function");
48783 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 39024 find mustExist(problem, interpretation, from);
48784 BinaryElementRelationLink.param1(link,source); 39025 find mustExist(problem, interpretation, to);
48785 BinaryElementRelationLink.param2(link,target); 39026 find mustInstanceOfFunction_class(problem,interpretation,from);
39027 find mustInstanceOfFunctionType_enum(problem,interpretation,to);
39028 find mayInRelationtype_attribute_Function(problem,interpretation,from,to);
39029 neg find mustInRelationtype_attribute_Function(problem,interpretation,from,to);
48786} 39030}
48787/** 39031import epackage "http://www.bme.hu/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage"
48788 * Matcher for detecting tuples t where <>eTypeParameter reference EGenericType(source,target) 39032import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem"
48789 */ 39033import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/language"
48790private pattern mayInRelationeTypeParameter_reference_EGenericType( 39034
48791 problem:LogicProblem, interpretation:PartialInterpretation, 39035//////////
48792 source: DefinedElement, target:DefinedElement) 39036// 0. Util
48793{ 39037//////////
39038private pattern interpretation(problem:LogicProblem, interpretation:PartialInterpretation) {
39039 PartialInterpretation.problem(interpretation,problem);
39040}
39041
39042/////////////////////////
39043// 0.1 Existence
39044/////////////////////////
39045private pattern mustExist(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
48794 find interpretation(problem,interpretation); 39046 find interpretation(problem,interpretation);
48795 // The two endpoint of the link have to exist 39047 LogicProblem.elements(problem,element);
48796 find mayExist(problem, interpretation, source);
48797 find mayExist(problem, interpretation, target);
48798 // Type consistency
48799 find mayInstanceOfEGenericType_class(problem,interpretation,source);
48800 find mayInstanceOfETypeParameter_class(problem,interpretation,target);
48801 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
48802 // the upper bound of the multiplicity should be considered.
48803 numberOfExistingReferences == count find mustInRelationeTypeParameter_reference_EGenericType(problem,interpretation,source,_);
48804 check(numberOfExistingReferences < 1);
48805} or { 39048} or {
48806 find mustInRelationeTypeParameter_reference_EGenericType(problem,interpretation,source,target);
48807}
48808/**
48809 * Matcher for detecting tuples t where []eClassifier reference EGenericType(source,target)
48810 */
48811private pattern mustInRelationeClassifier_reference_EGenericType(
48812 problem:LogicProblem, interpretation:PartialInterpretation,
48813 source: DefinedElement, target:DefinedElement)
48814{
48815 find interpretation(problem,interpretation); 39049 find interpretation(problem,interpretation);
48816 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 39050 PartialInterpretation.newElements(interpretation,element);
48817 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eClassifier reference EGenericType");
48818 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
48819 BinaryElementRelationLink.param1(link,source);
48820 BinaryElementRelationLink.param2(link,target);
48821} 39051}
48822/** 39052
48823 * Matcher for detecting tuples t where <>eClassifier reference EGenericType(source,target) 39053private pattern mayExist(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
48824 */ 39054 find mustExist(problem,interpretation,element);
48825private pattern mayInRelationeClassifier_reference_EGenericType(
48826 problem:LogicProblem, interpretation:PartialInterpretation,
48827 source: DefinedElement, target:DefinedElement)
48828{
48829 find interpretation(problem,interpretation);
48830 // The two endpoint of the link have to exist
48831 find mayExist(problem, interpretation, source);
48832 find mayExist(problem, interpretation, target);
48833 // Type consistency
48834 find mayInstanceOfEGenericType_class(problem,interpretation,source);
48835 find mayInstanceOfEClassifier_class(problem,interpretation,target);
48836 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
48837 // the upper bound of the multiplicity should be considered.
48838 numberOfExistingReferences == count find mustInRelationeClassifier_reference_EGenericType(problem,interpretation,source,_);
48839 check(numberOfExistingReferences < 1);
48840} or { 39055} or {
48841 find mustInRelationeClassifier_reference_EGenericType(problem,interpretation,source,target); 39056 find interpretation(problem,interpretation);
39057 neg find elementCloseWorld(element);
39058 PartialInterpretation.openWorldElements(interpretation,element);
48842} 39059}
48843/** 39060
48844 * Matcher for detecting tuples t where []eBounds reference ETypeParameter(source,target) 39061private pattern elementCloseWorld(element:DefinedElement) {
48845 */ 39062 PartialInterpretation.openWorldElements(i,element);
48846private pattern mustInRelationeBounds_reference_ETypeParameter( 39063 PartialInterpretation.maxNewElements(i,0);
48847 problem:LogicProblem, interpretation:PartialInterpretation, 39064} or {
48848 source: DefinedElement, target:DefinedElement) 39065 Scope.targetTypeInterpretation(scope,interpretation);
48849{ 39066 PartialTypeInterpratation.elements(interpretation,element);
39067 Scope.maxNewElements(scope,0);
39068}
39069
39070////////////////////////
39071// 0.2 Equivalence
39072////////////////////////
39073pattern mayEquivalent(problem:LogicProblem, interpretation:PartialInterpretation, a: DefinedElement, b: DefinedElement) {
39074 find mayExist(problem,interpretation,a);
39075 find mayExist(problem,interpretation,b);
39076 a == b;
39077}
39078
39079////////////////////////
39080// 0.3 Required Patterns by TypeIndexer
39081////////////////////////
39082private pattern typeInterpretation(problem:LogicProblem, interpretation:PartialInterpretation, type:TypeDeclaration, typeInterpretation:PartialComplexTypeInterpretation) {
48850 find interpretation(problem,interpretation); 39083 find interpretation(problem,interpretation);
48851 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 39084 LogicProblem.types(problem,type);
48852 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eBounds reference ETypeParameter"); 39085 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
48853 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 39086 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
48854 BinaryElementRelationLink.param1(link,source);
48855 BinaryElementRelationLink.param2(link,target);
48856} 39087}
48857/** 39088
48858 * Matcher for detecting tuples t where <>eBounds reference ETypeParameter(source,target) 39089private pattern directInstanceOf(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement, type:Type) {
48859 */
48860private pattern mayInRelationeBounds_reference_ETypeParameter(
48861 problem:LogicProblem, interpretation:PartialInterpretation,
48862 source: DefinedElement, target:DefinedElement)
48863{
48864 find interpretation(problem,interpretation); 39090 find interpretation(problem,interpretation);
48865 // The two endpoint of the link have to exist 39091 LogicProblem.types(problem,type);
48866 find mayExist(problem, interpretation, source); 39092 TypeDefinition.elements(type,element);
48867 find mayExist(problem, interpretation, target);
48868 // Type consistency
48869 find mayInstanceOfETypeParameter_class(problem,interpretation,source);
48870 find mayInstanceOfEGenericType_class(problem,interpretation,target);
48871 // The reference is containment, then a new reference cannot be create if:
48872 // 1. Multiple parents
48873 neg find mustContains4(problem,interpretation,_,target);
48874 // 2. Circle in the containment hierarchy
48875 neg find mustTransitiveContains(source,target);
48876} or { 39093} or {
48877 find mustInRelationeBounds_reference_ETypeParameter(problem,interpretation,source,target); 39094 find interpretation(problem,interpretation);
39095 find typeInterpretation(problem,interpretation,type,typeInterpretation);
39096 PartialComplexTypeInterpretation.elements(typeInterpretation,element);
48878} 39097}
39098
39099private pattern isPrimitive(element: PrimitiveElement) {
39100 PrimitiveElement(element);
39101}
39102
39103//////////
39104// 1. Problem-Specific Base Indexers
39105//////////
39106// 1.1 Type Indexers
39107//////////
39108// 1.1.1 primitive Type Indexers
39109//////////
39110
39111//////////
39112// 1.1.2 domain-specific Type Indexers
39113//////////
48879/** 39114/**
48880 * Matcher for detecting tuples t where []iD attribute EAttribute(source,target) 39115 * An element must be an instance of type "FunctionalElement class".
48881 */ 39116 */
48882private pattern mustInRelationiD_attribute_EAttribute( 39117private pattern mustInstanceOfFunctionalElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
48883 problem:LogicProblem, interpretation:PartialInterpretation, 39118 Type.name(type,"FunctionalElement class");
48884 source: DefinedElement, target:DefinedElement) 39119 find directInstanceOf(problem,interpretation,element,type);
48885{ 39120}
39121private pattern scopeDisallowsNewFunctionalElement_class(problem:LogicProblem, interpretation:PartialInterpretation) {
48886 find interpretation(problem,interpretation); 39122 find interpretation(problem,interpretation);
48887 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 39123 PartialInterpretation.scopes(interpretation,scope);
48888 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"iD attribute EAttribute"); 39124 Scope.targetTypeInterpretation(scope,typeInterpretation);
48889 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 39125 Scope.maxNewElements(scope,0);
48890 BinaryElementRelationLink.param1(link,source); 39126 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
48891 BinaryElementRelationLink.param2(link,target); 39127 Type.name(type,"FunctionalElement class");
48892} 39128}
39129
48893/** 39130/**
48894 * Matcher for detecting tuples t where <>iD attribute EAttribute(source,target) 39131 * An element may be an instance of type "FunctionalElement class".
48895 */ 39132 */
48896private pattern mayInRelationiD_attribute_EAttribute( 39133private pattern mayInstanceOfFunctionalElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
48897 problem:LogicProblem, interpretation:PartialInterpretation,
48898 source: DefinedElement, target:DefinedElement)
48899{ 39134{
48900 find interpretation(problem,interpretation); 39135 find interpretation(problem,interpretation);
48901 // The two endpoint of the link have to exist 39136 PartialInterpretation.newElements(interpretation,element);
48902 find mayExist(problem, interpretation, source); 39137 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
48903 find mayExist(problem, interpretation, target); 39138 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
48904 // Type consistency 39139 neg find mustInstanceOfFunction_class(problem,interpretation,element);
48905 find mayInstanceOfEAttribute_class(problem,interpretation,source); 39140 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
48906 BooleanElement(target); 39141 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
48907 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 39142 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
48908 // the upper bound of the multiplicity should be considered. 39143 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
48909 numberOfExistingReferences == count find mustInRelationiD_attribute_EAttribute(problem,interpretation,source,_); 39144 neg find isPrimitive(element);
48910 check(numberOfExistingReferences < 1);
48911} or { 39145} or {
48912 find mustInRelationiD_attribute_EAttribute(problem,interpretation,source,target); 39146 find interpretation(problem,interpretation);
48913} 39147 PartialInterpretation.openWorldElements(interpretation,element);
39148 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
39149 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
39150 neg find mustInstanceOfFunction_class(problem,interpretation,element);
39151 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
39152 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
39153 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
39154 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
39155 neg find isPrimitive(element);
39156} or
39157{ find mustInstanceOfFunctionalElement_class(problem,interpretation,element); }
48914/** 39158/**
48915 * Matcher for detecting tuples t where []source attribute EAnnotation(source,target) 39159 * An element must be an instance of type "FunctionalArchitectureModel class".
48916 */ 39160 */
48917private pattern mustInRelationsource_attribute_EAnnotation( 39161private pattern mustInstanceOfFunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
48918 problem:LogicProblem, interpretation:PartialInterpretation, 39162 Type.name(type,"FunctionalArchitectureModel class");
48919 source: DefinedElement, target:DefinedElement) 39163 find directInstanceOf(problem,interpretation,element,type);
48920{ 39164}
39165private pattern scopeDisallowsNewFunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation) {
48921 find interpretation(problem,interpretation); 39166 find interpretation(problem,interpretation);
48922 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 39167 PartialInterpretation.scopes(interpretation,scope);
48923 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"source attribute EAnnotation"); 39168 Scope.targetTypeInterpretation(scope,typeInterpretation);
48924 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 39169 Scope.maxNewElements(scope,0);
48925 BinaryElementRelationLink.param1(link,source); 39170 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
48926 BinaryElementRelationLink.param2(link,target); 39171 Type.name(type,"FunctionalArchitectureModel class");
48927} 39172}
39173
48928/** 39174/**
48929 * Matcher for detecting tuples t where <>source attribute EAnnotation(source,target) 39175 * An element may be an instance of type "FunctionalArchitectureModel class".
48930 */ 39176 */
48931private pattern mayInRelationsource_attribute_EAnnotation( 39177private pattern mayInstanceOfFunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
48932 problem:LogicProblem, interpretation:PartialInterpretation,
48933 source: DefinedElement, target:DefinedElement)
48934{ 39178{
48935 find interpretation(problem,interpretation); 39179 find interpretation(problem,interpretation);
48936 // The two endpoint of the link have to exist 39180 PartialInterpretation.newElements(interpretation,element);
48937 find mayExist(problem, interpretation, source); 39181 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
48938 find mayExist(problem, interpretation, target); 39182 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
48939 // Type consistency 39183 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
48940 find mayInstanceOfEAnnotation_class(problem,interpretation,source); 39184 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
48941 StringElement(target); 39185 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
48942 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 39186 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
48943 // the upper bound of the multiplicity should be considered. 39187 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
48944 numberOfExistingReferences == count find mustInRelationsource_attribute_EAnnotation(problem,interpretation,source,_); 39188 neg find isPrimitive(element);
48945 check(numberOfExistingReferences < 1);
48946} or { 39189} or {
48947 find mustInRelationsource_attribute_EAnnotation(problem,interpretation,source,target); 39190 find interpretation(problem,interpretation);
48948} 39191 PartialInterpretation.openWorldElements(interpretation,element);
39192 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
39193 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
39194 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
39195 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
39196 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
39197 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
39198 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
39199 neg find isPrimitive(element);
39200} or
39201{ find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); }
48949/** 39202/**
48950 * Matcher for detecting tuples t where []abstract attribute EClass(source,target) 39203 * An element must be an instance of type "Function class".
48951 */ 39204 */
48952private pattern mustInRelationabstract_attribute_EClass( 39205private pattern mustInstanceOfFunction_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
48953 problem:LogicProblem, interpretation:PartialInterpretation, 39206 Type.name(type,"Function class");
48954 source: DefinedElement, target:DefinedElement) 39207 find directInstanceOf(problem,interpretation,element,type);
48955{ 39208}
39209private pattern scopeDisallowsNewFunction_class(problem:LogicProblem, interpretation:PartialInterpretation) {
48956 find interpretation(problem,interpretation); 39210 find interpretation(problem,interpretation);
48957 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 39211 PartialInterpretation.scopes(interpretation,scope);
48958 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"abstract attribute EClass"); 39212 Scope.targetTypeInterpretation(scope,typeInterpretation);
48959 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 39213 Scope.maxNewElements(scope,0);
48960 BinaryElementRelationLink.param1(link,source); 39214 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
48961 BinaryElementRelationLink.param2(link,target); 39215 Type.name(type,"Function class");
48962} 39216}
39217
48963/** 39218/**
48964 * Matcher for detecting tuples t where <>abstract attribute EClass(source,target) 39219 * An element may be an instance of type "Function class".
48965 */ 39220 */
48966private pattern mayInRelationabstract_attribute_EClass( 39221private pattern mayInstanceOfFunction_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
48967 problem:LogicProblem, interpretation:PartialInterpretation,
48968 source: DefinedElement, target:DefinedElement)
48969{ 39222{
48970 find interpretation(problem,interpretation); 39223 find interpretation(problem,interpretation);
48971 // The two endpoint of the link have to exist 39224 PartialInterpretation.newElements(interpretation,element);
48972 find mayExist(problem, interpretation, source); 39225 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
48973 find mayExist(problem, interpretation, target); 39226 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
48974 // Type consistency 39227 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
48975 find mayInstanceOfEClass_class(problem,interpretation,source); 39228 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
48976 BooleanElement(target); 39229 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
48977 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 39230 neg find scopeDisallowsNewFunction_class(problem, interpretation);
48978 // the upper bound of the multiplicity should be considered. 39231 neg find isPrimitive(element);
48979 numberOfExistingReferences == count find mustInRelationabstract_attribute_EClass(problem,interpretation,source,_);
48980 check(numberOfExistingReferences < 1);
48981} or { 39232} or {
48982 find mustInRelationabstract_attribute_EClass(problem,interpretation,source,target); 39233 find interpretation(problem,interpretation);
48983} 39234 PartialInterpretation.openWorldElements(interpretation,element);
39235 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
39236 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
39237 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
39238 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
39239 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
39240 neg find scopeDisallowsNewFunction_class(problem, interpretation);
39241 neg find isPrimitive(element);
39242} or
39243{ find mustInstanceOfFunction_class(problem,interpretation,element); }
48984/** 39244/**
48985 * Matcher for detecting tuples t where []interface attribute EClass(source,target) 39245 * An element must be an instance of type "FAMTerminator class".
48986 */ 39246 */
48987private pattern mustInRelationinterface_attribute_EClass( 39247private pattern mustInstanceOfFAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
48988 problem:LogicProblem, interpretation:PartialInterpretation, 39248 Type.name(type,"FAMTerminator class");
48989 source: DefinedElement, target:DefinedElement) 39249 find directInstanceOf(problem,interpretation,element,type);
48990{ 39250}
39251private pattern scopeDisallowsNewFAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation) {
48991 find interpretation(problem,interpretation); 39252 find interpretation(problem,interpretation);
48992 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 39253 PartialInterpretation.scopes(interpretation,scope);
48993 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"interface attribute EClass"); 39254 Scope.targetTypeInterpretation(scope,typeInterpretation);
48994 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 39255 Scope.maxNewElements(scope,0);
48995 BinaryElementRelationLink.param1(link,source); 39256 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
48996 BinaryElementRelationLink.param2(link,target); 39257 Type.name(type,"FAMTerminator class");
48997} 39258}
39259
48998/** 39260/**
48999 * Matcher for detecting tuples t where <>interface attribute EClass(source,target) 39261 * An element may be an instance of type "FAMTerminator class".
49000 */ 39262 */
49001private pattern mayInRelationinterface_attribute_EClass( 39263private pattern mayInstanceOfFAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
49002 problem:LogicProblem, interpretation:PartialInterpretation,
49003 source: DefinedElement, target:DefinedElement)
49004{ 39264{
49005 find interpretation(problem,interpretation); 39265 find interpretation(problem,interpretation);
49006 // The two endpoint of the link have to exist 39266 PartialInterpretation.newElements(interpretation,element);
49007 find mayExist(problem, interpretation, source); 39267 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
49008 find mayExist(problem, interpretation, target); 39268 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
49009 // Type consistency 39269 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
49010 find mayInstanceOfEClass_class(problem,interpretation,source); 39270 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
49011 BooleanElement(target); 39271 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
49012 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 39272 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
49013 // the upper bound of the multiplicity should be considered. 39273 neg find isPrimitive(element);
49014 numberOfExistingReferences == count find mustInRelationinterface_attribute_EClass(problem,interpretation,source,_);
49015 check(numberOfExistingReferences < 1);
49016} or { 39274} or {
49017 find mustInRelationinterface_attribute_EClass(problem,interpretation,source,target); 39275 find interpretation(problem,interpretation);
49018} 39276 PartialInterpretation.openWorldElements(interpretation,element);
39277 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
39278 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
39279 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
39280 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
39281 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
39282 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
39283 neg find isPrimitive(element);
39284} or
39285{ find mustInstanceOfFAMTerminator_class(problem,interpretation,element); }
49019/** 39286/**
49020 * Matcher for detecting tuples t where []instanceClassName attribute EClassifier(source,target) 39287 * An element must be an instance of type "InformationLink class".
49021 */ 39288 */
49022private pattern mustInRelationinstanceClassName_attribute_EClassifier( 39289private pattern mustInstanceOfInformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
49023 problem:LogicProblem, interpretation:PartialInterpretation, 39290 Type.name(type,"InformationLink class");
49024 source: DefinedElement, target:DefinedElement) 39291 find directInstanceOf(problem,interpretation,element,type);
49025{ 39292}
39293private pattern scopeDisallowsNewInformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation) {
49026 find interpretation(problem,interpretation); 39294 find interpretation(problem,interpretation);
49027 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 39295 PartialInterpretation.scopes(interpretation,scope);
49028 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"instanceClassName attribute EClassifier"); 39296 Scope.targetTypeInterpretation(scope,typeInterpretation);
49029 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 39297 Scope.maxNewElements(scope,0);
49030 BinaryElementRelationLink.param1(link,source); 39298 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
49031 BinaryElementRelationLink.param2(link,target); 39299 Type.name(type,"InformationLink class");
49032} 39300}
39301
49033/** 39302/**
49034 * Matcher for detecting tuples t where <>instanceClassName attribute EClassifier(source,target) 39303 * An element may be an instance of type "InformationLink class".
49035 */ 39304 */
49036private pattern mayInRelationinstanceClassName_attribute_EClassifier( 39305private pattern mayInstanceOfInformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
49037 problem:LogicProblem, interpretation:PartialInterpretation,
49038 source: DefinedElement, target:DefinedElement)
49039{ 39306{
49040 find interpretation(problem,interpretation); 39307 find interpretation(problem,interpretation);
49041 // The two endpoint of the link have to exist 39308 PartialInterpretation.newElements(interpretation,element);
49042 find mayExist(problem, interpretation, source); 39309 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
49043 find mayExist(problem, interpretation, target); 39310 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
49044 // Type consistency 39311 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
49045 find mayInstanceOfEClassifier_class(problem,interpretation,source); 39312 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
49046 StringElement(target); 39313 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
49047 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 39314 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
49048 // the upper bound of the multiplicity should be considered. 39315 neg find isPrimitive(element);
49049 numberOfExistingReferences == count find mustInRelationinstanceClassName_attribute_EClassifier(problem,interpretation,source,_);
49050 check(numberOfExistingReferences < 1);
49051} or { 39316} or {
49052 find mustInRelationinstanceClassName_attribute_EClassifier(problem,interpretation,source,target); 39317 find interpretation(problem,interpretation);
49053} 39318 PartialInterpretation.openWorldElements(interpretation,element);
39319 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
39320 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
39321 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
39322 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
39323 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
39324 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
39325 neg find isPrimitive(element);
39326} or
39327{ find mustInstanceOfInformationLink_class(problem,interpretation,element); }
49054/** 39328/**
49055 * Matcher for detecting tuples t where []instanceTypeName attribute EClassifier(source,target) 39329 * An element must be an instance of type "FunctionalInterface class".
49056 */ 39330 */
49057private pattern mustInRelationinstanceTypeName_attribute_EClassifier( 39331private pattern mustInstanceOfFunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
49058 problem:LogicProblem, interpretation:PartialInterpretation, 39332 Type.name(type,"FunctionalInterface class");
49059 source: DefinedElement, target:DefinedElement) 39333 find directInstanceOf(problem,interpretation,element,type);
49060{ 39334}
39335private pattern scopeDisallowsNewFunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation) {
49061 find interpretation(problem,interpretation); 39336 find interpretation(problem,interpretation);
49062 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 39337 PartialInterpretation.scopes(interpretation,scope);
49063 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"instanceTypeName attribute EClassifier"); 39338 Scope.targetTypeInterpretation(scope,typeInterpretation);
49064 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 39339 Scope.maxNewElements(scope,0);
49065 BinaryElementRelationLink.param1(link,source); 39340 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
49066 BinaryElementRelationLink.param2(link,target); 39341 Type.name(type,"FunctionalInterface class");
49067} 39342}
39343
49068/** 39344/**
49069 * Matcher for detecting tuples t where <>instanceTypeName attribute EClassifier(source,target) 39345 * An element may be an instance of type "FunctionalInterface class".
49070 */ 39346 */
49071private pattern mayInRelationinstanceTypeName_attribute_EClassifier( 39347private pattern mayInstanceOfFunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
49072 problem:LogicProblem, interpretation:PartialInterpretation,
49073 source: DefinedElement, target:DefinedElement)
49074{ 39348{
49075 find interpretation(problem,interpretation); 39349 find interpretation(problem,interpretation);
49076 // The two endpoint of the link have to exist 39350 PartialInterpretation.newElements(interpretation,element);
49077 find mayExist(problem, interpretation, source); 39351 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
49078 find mayExist(problem, interpretation, target); 39352 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
49079 // Type consistency 39353 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
49080 find mayInstanceOfEClassifier_class(problem,interpretation,source); 39354 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
49081 StringElement(target); 39355 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
49082 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 39356 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
49083 // the upper bound of the multiplicity should be considered. 39357 neg find isPrimitive(element);
49084 numberOfExistingReferences == count find mustInRelationinstanceTypeName_attribute_EClassifier(problem,interpretation,source,_);
49085 check(numberOfExistingReferences < 1);
49086} or { 39358} or {
49087 find mustInRelationinstanceTypeName_attribute_EClassifier(problem,interpretation,source,target); 39359 find interpretation(problem,interpretation);
49088} 39360 PartialInterpretation.openWorldElements(interpretation,element);
39361 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
39362 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
39363 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
39364 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
39365 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
39366 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
39367 neg find isPrimitive(element);
39368} or
39369{ find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); }
49089/** 39370/**
49090 * Matcher for detecting tuples t where []serializable attribute EDataType(source,target) 39371 * An element must be an instance of type "FunctionalInput class".
49091 */ 39372 */
49092private pattern mustInRelationserializable_attribute_EDataType( 39373private pattern mustInstanceOfFunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
49093 problem:LogicProblem, interpretation:PartialInterpretation, 39374 Type.name(type,"FunctionalInput class");
49094 source: DefinedElement, target:DefinedElement) 39375 find directInstanceOf(problem,interpretation,element,type);
49095{ 39376}
39377private pattern scopeDisallowsNewFunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation) {
49096 find interpretation(problem,interpretation); 39378 find interpretation(problem,interpretation);
49097 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 39379 PartialInterpretation.scopes(interpretation,scope);
49098 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"serializable attribute EDataType"); 39380 Scope.targetTypeInterpretation(scope,typeInterpretation);
49099 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 39381 Scope.maxNewElements(scope,0);
49100 BinaryElementRelationLink.param1(link,source); 39382 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
49101 BinaryElementRelationLink.param2(link,target); 39383 Type.name(type,"FunctionalInput class");
49102} 39384}
39385
49103/** 39386/**
49104 * Matcher for detecting tuples t where <>serializable attribute EDataType(source,target) 39387 * An element may be an instance of type "FunctionalInput class".
49105 */ 39388 */
49106private pattern mayInRelationserializable_attribute_EDataType( 39389private pattern mayInstanceOfFunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
49107 problem:LogicProblem, interpretation:PartialInterpretation,
49108 source: DefinedElement, target:DefinedElement)
49109{ 39390{
49110 find interpretation(problem,interpretation); 39391 find interpretation(problem,interpretation);
49111 // The two endpoint of the link have to exist 39392 PartialInterpretation.newElements(interpretation,element);
49112 find mayExist(problem, interpretation, source); 39393 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
49113 find mayExist(problem, interpretation, target); 39394 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
49114 // Type consistency 39395 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
49115 find mayInstanceOfEDataType_class(problem,interpretation,source); 39396 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
49116 BooleanElement(target); 39397 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
49117 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 39398 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
49118 // the upper bound of the multiplicity should be considered. 39399 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
49119 numberOfExistingReferences == count find mustInRelationserializable_attribute_EDataType(problem,interpretation,source,_); 39400 neg find isPrimitive(element);
49120 check(numberOfExistingReferences < 1);
49121} or { 39401} or {
49122 find mustInRelationserializable_attribute_EDataType(problem,interpretation,source,target); 39402 find interpretation(problem,interpretation);
49123} 39403 PartialInterpretation.openWorldElements(interpretation,element);
39404 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
39405 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
39406 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
39407 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
39408 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
39409 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
39410 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
39411 neg find isPrimitive(element);
39412} or
39413{ find mustInstanceOfFunctionalInput_class(problem,interpretation,element); }
49124/** 39414/**
49125 * Matcher for detecting tuples t where []value attribute EEnumLiteral(source,target) 39415 * An element must be an instance of type "FunctionalOutput class".
49126 */ 39416 */
49127private pattern mustInRelationvalue_attribute_EEnumLiteral( 39417private pattern mustInstanceOfFunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
49128 problem:LogicProblem, interpretation:PartialInterpretation, 39418 Type.name(type,"FunctionalOutput class");
49129 source: DefinedElement, target:DefinedElement) 39419 find directInstanceOf(problem,interpretation,element,type);
49130{ 39420}
39421private pattern scopeDisallowsNewFunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation) {
49131 find interpretation(problem,interpretation); 39422 find interpretation(problem,interpretation);
49132 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 39423 PartialInterpretation.scopes(interpretation,scope);
49133 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"value attribute EEnumLiteral"); 39424 Scope.targetTypeInterpretation(scope,typeInterpretation);
49134 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 39425 Scope.maxNewElements(scope,0);
49135 BinaryElementRelationLink.param1(link,source); 39426 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
49136 BinaryElementRelationLink.param2(link,target); 39427 Type.name(type,"FunctionalOutput class");
49137} 39428}
39429
49138/** 39430/**
49139 * Matcher for detecting tuples t where <>value attribute EEnumLiteral(source,target) 39431 * An element may be an instance of type "FunctionalOutput class".
49140 */ 39432 */
49141private pattern mayInRelationvalue_attribute_EEnumLiteral( 39433private pattern mayInstanceOfFunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
49142 problem:LogicProblem, interpretation:PartialInterpretation,
49143 source: DefinedElement, target:DefinedElement)
49144{ 39434{
49145 find interpretation(problem,interpretation); 39435 find interpretation(problem,interpretation);
49146 // The two endpoint of the link have to exist 39436 PartialInterpretation.newElements(interpretation,element);
49147 find mayExist(problem, interpretation, source); 39437 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
49148 find mayExist(problem, interpretation, target); 39438 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
49149 // Type consistency 39439 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
49150 find mayInstanceOfEEnumLiteral_class(problem,interpretation,source); 39440 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
49151 IntegerElement(target); 39441 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
49152 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 39442 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
49153 // the upper bound of the multiplicity should be considered. 39443 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
49154 numberOfExistingReferences == count find mustInRelationvalue_attribute_EEnumLiteral(problem,interpretation,source,_); 39444 neg find isPrimitive(element);
49155 check(numberOfExistingReferences < 1);
49156} or { 39445} or {
49157 find mustInRelationvalue_attribute_EEnumLiteral(problem,interpretation,source,target); 39446 find interpretation(problem,interpretation);
49158} 39447 PartialInterpretation.openWorldElements(interpretation,element);
39448 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
39449 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
39450 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
39451 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
39452 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
39453 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
39454 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
39455 neg find isPrimitive(element);
39456} or
39457{ find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); }
49159/** 39458/**
49160 * Matcher for detecting tuples t where []literal attribute EEnumLiteral(source,target) 39459 * An element must be an instance of type "FunctionalData class".
49161 */ 39460 */
49162private pattern mustInRelationliteral_attribute_EEnumLiteral( 39461private pattern mustInstanceOfFunctionalData_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
49163 problem:LogicProblem, interpretation:PartialInterpretation, 39462 Type.name(type,"FunctionalData class");
49164 source: DefinedElement, target:DefinedElement) 39463 find directInstanceOf(problem,interpretation,element,type);
49165{ 39464}
39465private pattern scopeDisallowsNewFunctionalData_class(problem:LogicProblem, interpretation:PartialInterpretation) {
49166 find interpretation(problem,interpretation); 39466 find interpretation(problem,interpretation);
49167 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 39467 PartialInterpretation.scopes(interpretation,scope);
49168 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"literal attribute EEnumLiteral"); 39468 Scope.targetTypeInterpretation(scope,typeInterpretation);
49169 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 39469 Scope.maxNewElements(scope,0);
49170 BinaryElementRelationLink.param1(link,source); 39470 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
49171 BinaryElementRelationLink.param2(link,target); 39471 Type.name(type,"FunctionalData class");
49172} 39472}
39473
49173/** 39474/**
49174 * Matcher for detecting tuples t where <>literal attribute EEnumLiteral(source,target) 39475 * An element may be an instance of type "FunctionalData class".
49175 */ 39476 */
49176private pattern mayInRelationliteral_attribute_EEnumLiteral( 39477private pattern mayInstanceOfFunctionalData_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
49177 problem:LogicProblem, interpretation:PartialInterpretation,
49178 source: DefinedElement, target:DefinedElement)
49179{ 39478{
49180 find interpretation(problem,interpretation); 39479 find interpretation(problem,interpretation);
49181 // The two endpoint of the link have to exist 39480 PartialInterpretation.newElements(interpretation,element);
49182 find mayExist(problem, interpretation, source); 39481 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
49183 find mayExist(problem, interpretation, target); 39482 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
49184 // Type consistency 39483 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
49185 find mayInstanceOfEEnumLiteral_class(problem,interpretation,source); 39484 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
49186 StringElement(target); 39485 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
49187 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 39486 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
49188 // the upper bound of the multiplicity should be considered. 39487 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
49189 numberOfExistingReferences == count find mustInRelationliteral_attribute_EEnumLiteral(problem,interpretation,source,_); 39488 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
49190 check(numberOfExistingReferences < 1); 39489 neg find isPrimitive(element);
49191} or { 39490} or {
49192 find mustInRelationliteral_attribute_EEnumLiteral(problem,interpretation,source,target); 39491 find interpretation(problem,interpretation);
49193} 39492 PartialInterpretation.openWorldElements(interpretation,element);
39493 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
39494 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
39495 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
39496 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
39497 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
39498 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
39499 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
39500 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
39501 neg find isPrimitive(element);
39502} or
39503{ find mustInstanceOfFunctionalData_class(problem,interpretation,element); }
49194/** 39504/**
49195 * Matcher for detecting tuples t where []name attribute ENamedElement(source,target) 39505 * An element must be an instance of type "FunctionType enum".
49196 */ 39506 */
49197private pattern mustInRelationname_attribute_ENamedElement( 39507private pattern mustInstanceOfFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
49198 problem:LogicProblem, interpretation:PartialInterpretation, 39508 Type.name(type,"FunctionType enum");
49199 source: DefinedElement, target:DefinedElement) 39509 find directInstanceOf(problem,interpretation,element,type);
49200{ 39510}
39511private pattern scopeDisallowsNewFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation) {
49201 find interpretation(problem,interpretation); 39512 find interpretation(problem,interpretation);
49202 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 39513 PartialInterpretation.scopes(interpretation,scope);
49203 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"name attribute ENamedElement"); 39514 Scope.targetTypeInterpretation(scope,typeInterpretation);
49204 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 39515 Scope.maxNewElements(scope,0);
49205 BinaryElementRelationLink.param1(link,source); 39516 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
49206 BinaryElementRelationLink.param2(link,target); 39517 Type.name(type,"FunctionType enum");
49207} 39518}
39519
49208/** 39520/**
49209 * Matcher for detecting tuples t where <>name attribute ENamedElement(source,target) 39521 * An element may be an instance of type "FunctionType enum".
49210 */ 39522 */
49211private pattern mayInRelationname_attribute_ENamedElement( 39523private pattern mayInstanceOfFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
49212 problem:LogicProblem, interpretation:PartialInterpretation, 39524{ find mustInstanceOfFunctionType_enum(problem,interpretation,element); }
49213 source: DefinedElement, target:DefinedElement)
49214{
49215 find interpretation(problem,interpretation);
49216 // The two endpoint of the link have to exist
49217 find mayExist(problem, interpretation, source);
49218 find mayExist(problem, interpretation, target);
49219 // Type consistency
49220 find mayInstanceOfENamedElement_class(problem,interpretation,source);
49221 StringElement(target);
49222 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
49223 // the upper bound of the multiplicity should be considered.
49224 numberOfExistingReferences == count find mustInRelationname_attribute_ENamedElement(problem,interpretation,source,_);
49225 check(numberOfExistingReferences < 1);
49226} or {
49227 find mustInRelationname_attribute_ENamedElement(problem,interpretation,source,target);
49228}
49229/** 39525/**
49230 * Matcher for detecting tuples t where []nsURI attribute EPackage(source,target) 39526 * An element must be an instance of type "FunctionalArchitectureModel class DefinedPart".
49231 */ 39527 */
49232private pattern mustInRelationnsURI_attribute_EPackage( 39528private pattern mustInstanceOfFunctionalArchitectureModel_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
49233 problem:LogicProblem, interpretation:PartialInterpretation, 39529 Type.name(type,"FunctionalArchitectureModel class DefinedPart");
49234 source: DefinedElement, target:DefinedElement) 39530 find directInstanceOf(problem,interpretation,element,type);
49235{ 39531}
39532private pattern scopeDisallowsNewFunctionalArchitectureModel_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
49236 find interpretation(problem,interpretation); 39533 find interpretation(problem,interpretation);
49237 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 39534 PartialInterpretation.scopes(interpretation,scope);
49238 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"nsURI attribute EPackage"); 39535 Scope.targetTypeInterpretation(scope,typeInterpretation);
49239 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 39536 Scope.maxNewElements(scope,0);
49240 BinaryElementRelationLink.param1(link,source); 39537 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
49241 BinaryElementRelationLink.param2(link,target); 39538 Type.name(type,"FunctionalArchitectureModel class DefinedPart");
49242} 39539}
39540
49243/** 39541/**
49244 * Matcher for detecting tuples t where <>nsURI attribute EPackage(source,target) 39542 * An element may be an instance of type "FunctionalArchitectureModel class DefinedPart".
49245 */ 39543 */
49246private pattern mayInRelationnsURI_attribute_EPackage( 39544private pattern mayInstanceOfFunctionalArchitectureModel_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
49247 problem:LogicProblem, interpretation:PartialInterpretation, 39545{ find mustInstanceOfFunctionalArchitectureModel_class_DefinedPart(problem,interpretation,element); }
49248 source: DefinedElement, target:DefinedElement)
49249{
49250 find interpretation(problem,interpretation);
49251 // The two endpoint of the link have to exist
49252 find mayExist(problem, interpretation, source);
49253 find mayExist(problem, interpretation, target);
49254 // Type consistency
49255 find mayInstanceOfEPackage_class(problem,interpretation,source);
49256 StringElement(target);
49257 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
49258 // the upper bound of the multiplicity should be considered.
49259 numberOfExistingReferences == count find mustInRelationnsURI_attribute_EPackage(problem,interpretation,source,_);
49260 check(numberOfExistingReferences < 1);
49261} or {
49262 find mustInRelationnsURI_attribute_EPackage(problem,interpretation,source,target);
49263}
49264/** 39546/**
49265 * Matcher for detecting tuples t where []nsPrefix attribute EPackage(source,target) 39547 * An element must be an instance of type "FunctionalArchitectureModel class UndefinedPart".
49266 */ 39548 */
49267private pattern mustInRelationnsPrefix_attribute_EPackage( 39549private pattern mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
49268 problem:LogicProblem, interpretation:PartialInterpretation, 39550 Type.name(type,"FunctionalArchitectureModel class UndefinedPart");
49269 source: DefinedElement, target:DefinedElement) 39551 find directInstanceOf(problem,interpretation,element,type);
49270{ 39552}
39553private pattern scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
49271 find interpretation(problem,interpretation); 39554 find interpretation(problem,interpretation);
49272 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 39555 PartialInterpretation.scopes(interpretation,scope);
49273 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"nsPrefix attribute EPackage"); 39556 Scope.targetTypeInterpretation(scope,typeInterpretation);
49274 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 39557 Scope.maxNewElements(scope,0);
49275 BinaryElementRelationLink.param1(link,source); 39558 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
49276 BinaryElementRelationLink.param2(link,target); 39559 Type.name(type,"FunctionalArchitectureModel class UndefinedPart");
49277} 39560}
39561
49278/** 39562/**
49279 * Matcher for detecting tuples t where <>nsPrefix attribute EPackage(source,target) 39563 * An element may be an instance of type "FunctionalArchitectureModel class UndefinedPart".
49280 */ 39564 */
49281private pattern mayInRelationnsPrefix_attribute_EPackage( 39565private pattern mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
49282 problem:LogicProblem, interpretation:PartialInterpretation,
49283 source: DefinedElement, target:DefinedElement)
49284{ 39566{
49285 find interpretation(problem,interpretation); 39567 find interpretation(problem,interpretation);
49286 // The two endpoint of the link have to exist 39568 PartialInterpretation.newElements(interpretation,element);
49287 find mayExist(problem, interpretation, source); 39569 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
49288 find mayExist(problem, interpretation, target); 39570 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
49289 // Type consistency 39571 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
49290 find mayInstanceOfEPackage_class(problem,interpretation,source); 39572 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
49291 StringElement(target); 39573 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
49292 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 39574 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation);
49293 // the upper bound of the multiplicity should be considered. 39575 neg find isPrimitive(element);
49294 numberOfExistingReferences == count find mustInRelationnsPrefix_attribute_EPackage(problem,interpretation,source,_);
49295 check(numberOfExistingReferences < 1);
49296} or { 39576} or {
49297 find mustInRelationnsPrefix_attribute_EPackage(problem,interpretation,source,target); 39577 find interpretation(problem,interpretation);
49298} 39578 PartialInterpretation.openWorldElements(interpretation,element);
39579 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
39580 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
39581 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
39582 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
39583 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
39584 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation);
39585 neg find isPrimitive(element);
39586} or
39587{ find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); }
39588
39589//////////
39590// 1.2 Relation Declaration Indexers
39591//////////
49299/** 39592/**
49300 * Matcher for detecting tuples t where []containment attribute EReference(source,target) 39593 * Matcher for detecting tuples t where []interface reference FunctionalElement(source,target)
49301 */ 39594 */
49302private pattern mustInRelationcontainment_attribute_EReference( 39595private pattern mustInRelationinterface_reference_FunctionalElement(
49303 problem:LogicProblem, interpretation:PartialInterpretation, 39596 problem:LogicProblem, interpretation:PartialInterpretation,
49304 source: DefinedElement, target:DefinedElement) 39597 source: DefinedElement, target:DefinedElement)
49305{ 39598{
49306 find interpretation(problem,interpretation); 39599 find interpretation(problem,interpretation);
49307 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 39600 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
49308 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"containment attribute EReference"); 39601 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"interface reference FunctionalElement");
49309 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 39602 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
49310 BinaryElementRelationLink.param1(link,source); 39603 BinaryElementRelationLink.param1(link,source);
49311 BinaryElementRelationLink.param2(link,target); 39604 BinaryElementRelationLink.param2(link,target);
49312} 39605}
49313/** 39606/**
49314 * Matcher for detecting tuples t where <>containment attribute EReference(source,target) 39607 * Matcher for detecting tuples t where <>interface reference FunctionalElement(source,target)
49315 */ 39608 */
49316private pattern mayInRelationcontainment_attribute_EReference( 39609private pattern mayInRelationinterface_reference_FunctionalElement(
49317 problem:LogicProblem, interpretation:PartialInterpretation, 39610 problem:LogicProblem, interpretation:PartialInterpretation,
49318 source: DefinedElement, target:DefinedElement) 39611 source: DefinedElement, target:DefinedElement)
49319{ 39612{
@@ -49322,33 +39615,42 @@ private pattern mayInRelationcontainment_attribute_EReference(
49322 find mayExist(problem, interpretation, source); 39615 find mayExist(problem, interpretation, source);
49323 find mayExist(problem, interpretation, target); 39616 find mayExist(problem, interpretation, target);
49324 // Type consistency 39617 // Type consistency
49325 find mayInstanceOfEReference_class(problem,interpretation,source); 39618 find mayInstanceOfFunctionalElement_class(problem,interpretation,source);
49326 BooleanElement(target); 39619 find mayInstanceOfFunctionalInterface_class(problem,interpretation,target);
49327 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 39620 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
49328 // the upper bound of the multiplicity should be considered. 39621 // the upper bound of the multiplicity should be considered.
49329 numberOfExistingReferences == count find mustInRelationcontainment_attribute_EReference(problem,interpretation,source,_); 39622 numberOfExistingReferences == count find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,source,_);
49330 check(numberOfExistingReferences < 1); 39623 check(numberOfExistingReferences < 1);
39624 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
39625 // the upper bound of the opposite reference multiplicity should be considered.
39626 numberOfExistingOppositeReferences == count find mustInRelationelement_reference_FunctionalInterface(problem,interpretation,target,_);
39627 check(numberOfExistingOppositeReferences < 1);
39628 // The reference is containment, then a new reference cannot be create if:
39629 // 1. Multiple parents
39630 neg find mustContains4(problem,interpretation,_,target);
39631 // 2. Circle in the containment hierarchy
39632 neg find mustTransitiveContains(source,target);
49331} or { 39633} or {
49332 find mustInRelationcontainment_attribute_EReference(problem,interpretation,source,target); 39634 find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,source,target);
49333} 39635}
49334/** 39636/**
49335 * Matcher for detecting tuples t where []container attribute EReference(source,target) 39637 * Matcher for detecting tuples t where []model reference FunctionalElement(source,target)
49336 */ 39638 */
49337private pattern mustInRelationcontainer_attribute_EReference( 39639private pattern mustInRelationmodel_reference_FunctionalElement(
49338 problem:LogicProblem, interpretation:PartialInterpretation, 39640 problem:LogicProblem, interpretation:PartialInterpretation,
49339 source: DefinedElement, target:DefinedElement) 39641 source: DefinedElement, target:DefinedElement)
49340{ 39642{
49341 find interpretation(problem,interpretation); 39643 find interpretation(problem,interpretation);
49342 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 39644 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
49343 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"container attribute EReference"); 39645 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement");
49344 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 39646 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
49345 BinaryElementRelationLink.param1(link,source); 39647 BinaryElementRelationLink.param1(link,source);
49346 BinaryElementRelationLink.param2(link,target); 39648 BinaryElementRelationLink.param2(link,target);
49347} 39649}
49348/** 39650/**
49349 * Matcher for detecting tuples t where <>container attribute EReference(source,target) 39651 * Matcher for detecting tuples t where <>model reference FunctionalElement(source,target)
49350 */ 39652 */
49351private pattern mayInRelationcontainer_attribute_EReference( 39653private pattern mayInRelationmodel_reference_FunctionalElement(
49352 problem:LogicProblem, interpretation:PartialInterpretation, 39654 problem:LogicProblem, interpretation:PartialInterpretation,
49353 source: DefinedElement, target:DefinedElement) 39655 source: DefinedElement, target:DefinedElement)
49354{ 39656{
@@ -49357,33 +39659,33 @@ private pattern mayInRelationcontainer_attribute_EReference(
49357 find mayExist(problem, interpretation, source); 39659 find mayExist(problem, interpretation, source);
49358 find mayExist(problem, interpretation, target); 39660 find mayExist(problem, interpretation, target);
49359 // Type consistency 39661 // Type consistency
49360 find mayInstanceOfEReference_class(problem,interpretation,source); 39662 find mayInstanceOfFunctionalElement_class(problem,interpretation,source);
49361 BooleanElement(target); 39663 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,target);
49362 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 39664 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
49363 // the upper bound of the multiplicity should be considered. 39665 // the upper bound of the multiplicity should be considered.
49364 numberOfExistingReferences == count find mustInRelationcontainer_attribute_EReference(problem,interpretation,source,_); 39666 numberOfExistingReferences == count find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,source,_);
49365 check(numberOfExistingReferences < 1); 39667 check(numberOfExistingReferences < 1);
49366} or { 39668} or {
49367 find mustInRelationcontainer_attribute_EReference(problem,interpretation,source,target); 39669 find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,source,target);
49368} 39670}
49369/** 39671/**
49370 * Matcher for detecting tuples t where []resolveProxies attribute EReference(source,target) 39672 * Matcher for detecting tuples t where []parent reference FunctionalElement(source,target)
49371 */ 39673 */
49372private pattern mustInRelationresolveProxies_attribute_EReference( 39674private pattern mustInRelationparent_reference_FunctionalElement(
49373 problem:LogicProblem, interpretation:PartialInterpretation, 39675 problem:LogicProblem, interpretation:PartialInterpretation,
49374 source: DefinedElement, target:DefinedElement) 39676 source: DefinedElement, target:DefinedElement)
49375{ 39677{
49376 find interpretation(problem,interpretation); 39678 find interpretation(problem,interpretation);
49377 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 39679 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
49378 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"resolveProxies attribute EReference"); 39680 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"parent reference FunctionalElement");
49379 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 39681 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
49380 BinaryElementRelationLink.param1(link,source); 39682 BinaryElementRelationLink.param1(link,source);
49381 BinaryElementRelationLink.param2(link,target); 39683 BinaryElementRelationLink.param2(link,target);
49382} 39684}
49383/** 39685/**
49384 * Matcher for detecting tuples t where <>resolveProxies attribute EReference(source,target) 39686 * Matcher for detecting tuples t where <>parent reference FunctionalElement(source,target)
49385 */ 39687 */
49386private pattern mayInRelationresolveProxies_attribute_EReference( 39688private pattern mayInRelationparent_reference_FunctionalElement(
49387 problem:LogicProblem, interpretation:PartialInterpretation, 39689 problem:LogicProblem, interpretation:PartialInterpretation,
49388 source: DefinedElement, target:DefinedElement) 39690 source: DefinedElement, target:DefinedElement)
49389{ 39691{
@@ -49392,33 +39694,38 @@ private pattern mayInRelationresolveProxies_attribute_EReference(
49392 find mayExist(problem, interpretation, source); 39694 find mayExist(problem, interpretation, source);
49393 find mayExist(problem, interpretation, target); 39695 find mayExist(problem, interpretation, target);
49394 // Type consistency 39696 // Type consistency
49395 find mayInstanceOfEReference_class(problem,interpretation,source); 39697 find mayInstanceOfFunctionalElement_class(problem,interpretation,source);
49396 BooleanElement(target); 39698 find mayInstanceOfFunction_class(problem,interpretation,target);
49397 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 39699 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
49398 // the upper bound of the multiplicity should be considered. 39700 // the upper bound of the multiplicity should be considered.
49399 numberOfExistingReferences == count find mustInRelationresolveProxies_attribute_EReference(problem,interpretation,source,_); 39701 numberOfExistingReferences == count find mustInRelationparent_reference_FunctionalElement(problem,interpretation,source,_);
49400 check(numberOfExistingReferences < 1); 39702 check(numberOfExistingReferences < 1);
39703 // The eOpposite of the reference is containment, then a referene cannot be created if
39704 // 1. Multiple parents
39705 neg find mustContains4(problem,interpretation,source,_);
39706 // 2. Circle in the containment hierarchy
39707 neg find mustTransitiveContains(source,target);
49401} or { 39708} or {
49402 find mustInRelationresolveProxies_attribute_EReference(problem,interpretation,source,target); 39709 find mustInRelationparent_reference_FunctionalElement(problem,interpretation,source,target);
49403} 39710}
49404/** 39711/**
49405 * Matcher for detecting tuples t where []changeable attribute EStructuralFeature(source,target) 39712 * Matcher for detecting tuples t where []rootElements reference FunctionalArchitectureModel(source,target)
49406 */ 39713 */
49407private pattern mustInRelationchangeable_attribute_EStructuralFeature( 39714private pattern mustInRelationrootElements_reference_FunctionalArchitectureModel(
49408 problem:LogicProblem, interpretation:PartialInterpretation, 39715 problem:LogicProblem, interpretation:PartialInterpretation,
49409 source: DefinedElement, target:DefinedElement) 39716 source: DefinedElement, target:DefinedElement)
49410{ 39717{
49411 find interpretation(problem,interpretation); 39718 find interpretation(problem,interpretation);
49412 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 39719 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
49413 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"changeable attribute EStructuralFeature"); 39720 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"rootElements reference FunctionalArchitectureModel");
49414 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 39721 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
49415 BinaryElementRelationLink.param1(link,source); 39722 BinaryElementRelationLink.param1(link,source);
49416 BinaryElementRelationLink.param2(link,target); 39723 BinaryElementRelationLink.param2(link,target);
49417} 39724}
49418/** 39725/**
49419 * Matcher for detecting tuples t where <>changeable attribute EStructuralFeature(source,target) 39726 * Matcher for detecting tuples t where <>rootElements reference FunctionalArchitectureModel(source,target)
49420 */ 39727 */
49421private pattern mayInRelationchangeable_attribute_EStructuralFeature( 39728private pattern mayInRelationrootElements_reference_FunctionalArchitectureModel(
49422 problem:LogicProblem, interpretation:PartialInterpretation, 39729 problem:LogicProblem, interpretation:PartialInterpretation,
49423 source: DefinedElement, target:DefinedElement) 39730 source: DefinedElement, target:DefinedElement)
49424{ 39731{
@@ -49427,33 +39734,34 @@ private pattern mayInRelationchangeable_attribute_EStructuralFeature(
49427 find mayExist(problem, interpretation, source); 39734 find mayExist(problem, interpretation, source);
49428 find mayExist(problem, interpretation, target); 39735 find mayExist(problem, interpretation, target);
49429 // Type consistency 39736 // Type consistency
49430 find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); 39737 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,source);
49431 BooleanElement(target); 39738 find mayInstanceOfFunctionalElement_class(problem,interpretation,target);
49432 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 39739 // The reference is containment, then a new reference cannot be create if:
49433 // the upper bound of the multiplicity should be considered. 39740 // 1. Multiple parents
49434 numberOfExistingReferences == count find mustInRelationchangeable_attribute_EStructuralFeature(problem,interpretation,source,_); 39741 neg find mustContains4(problem,interpretation,_,target);
49435 check(numberOfExistingReferences < 1); 39742 // 2. Circle in the containment hierarchy
39743 neg find mustTransitiveContains(source,target);
49436} or { 39744} or {
49437 find mustInRelationchangeable_attribute_EStructuralFeature(problem,interpretation,source,target); 39745 find mustInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,source,target);
49438} 39746}
49439/** 39747/**
49440 * Matcher for detecting tuples t where []volatile attribute EStructuralFeature(source,target) 39748 * Matcher for detecting tuples t where []subElements reference Function(source,target)
49441 */ 39749 */
49442private pattern mustInRelationvolatile_attribute_EStructuralFeature( 39750private pattern mustInRelationsubElements_reference_Function(
49443 problem:LogicProblem, interpretation:PartialInterpretation, 39751 problem:LogicProblem, interpretation:PartialInterpretation,
49444 source: DefinedElement, target:DefinedElement) 39752 source: DefinedElement, target:DefinedElement)
49445{ 39753{
49446 find interpretation(problem,interpretation); 39754 find interpretation(problem,interpretation);
49447 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 39755 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
49448 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"volatile attribute EStructuralFeature"); 39756 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"subElements reference Function");
49449 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 39757 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
49450 BinaryElementRelationLink.param1(link,source); 39758 BinaryElementRelationLink.param1(link,source);
49451 BinaryElementRelationLink.param2(link,target); 39759 BinaryElementRelationLink.param2(link,target);
49452} 39760}
49453/** 39761/**
49454 * Matcher for detecting tuples t where <>volatile attribute EStructuralFeature(source,target) 39762 * Matcher for detecting tuples t where <>subElements reference Function(source,target)
49455 */ 39763 */
49456private pattern mayInRelationvolatile_attribute_EStructuralFeature( 39764private pattern mayInRelationsubElements_reference_Function(
49457 problem:LogicProblem, interpretation:PartialInterpretation, 39765 problem:LogicProblem, interpretation:PartialInterpretation,
49458 source: DefinedElement, target:DefinedElement) 39766 source: DefinedElement, target:DefinedElement)
49459{ 39767{
@@ -49462,33 +39770,38 @@ private pattern mayInRelationvolatile_attribute_EStructuralFeature(
49462 find mayExist(problem, interpretation, source); 39770 find mayExist(problem, interpretation, source);
49463 find mayExist(problem, interpretation, target); 39771 find mayExist(problem, interpretation, target);
49464 // Type consistency 39772 // Type consistency
49465 find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); 39773 find mayInstanceOfFunction_class(problem,interpretation,source);
49466 BooleanElement(target); 39774 find mayInstanceOfFunctionalElement_class(problem,interpretation,target);
49467 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 39775 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
49468 // the upper bound of the multiplicity should be considered. 39776 // the upper bound of the opposite reference multiplicity should be considered.
49469 numberOfExistingReferences == count find mustInRelationvolatile_attribute_EStructuralFeature(problem,interpretation,source,_); 39777 numberOfExistingOppositeReferences == count find mustInRelationparent_reference_FunctionalElement(problem,interpretation,target,_);
49470 check(numberOfExistingReferences < 1); 39778 check(numberOfExistingOppositeReferences < 1);
39779 // The reference is containment, then a new reference cannot be create if:
39780 // 1. Multiple parents
39781 neg find mustContains4(problem,interpretation,_,target);
39782 // 2. Circle in the containment hierarchy
39783 neg find mustTransitiveContains(source,target);
49471} or { 39784} or {
49472 find mustInRelationvolatile_attribute_EStructuralFeature(problem,interpretation,source,target); 39785 find mustInRelationsubElements_reference_Function(problem,interpretation,source,target);
49473} 39786}
49474/** 39787/**
49475 * Matcher for detecting tuples t where []transient attribute EStructuralFeature(source,target) 39788 * Matcher for detecting tuples t where []data reference FAMTerminator(source,target)
49476 */ 39789 */
49477private pattern mustInRelationtransient_attribute_EStructuralFeature( 39790private pattern mustInRelationdata_reference_FAMTerminator(
49478 problem:LogicProblem, interpretation:PartialInterpretation, 39791 problem:LogicProblem, interpretation:PartialInterpretation,
49479 source: DefinedElement, target:DefinedElement) 39792 source: DefinedElement, target:DefinedElement)
49480{ 39793{
49481 find interpretation(problem,interpretation); 39794 find interpretation(problem,interpretation);
49482 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 39795 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
49483 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"transient attribute EStructuralFeature"); 39796 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"data reference FAMTerminator");
49484 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 39797 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
49485 BinaryElementRelationLink.param1(link,source); 39798 BinaryElementRelationLink.param1(link,source);
49486 BinaryElementRelationLink.param2(link,target); 39799 BinaryElementRelationLink.param2(link,target);
49487} 39800}
49488/** 39801/**
49489 * Matcher for detecting tuples t where <>transient attribute EStructuralFeature(source,target) 39802 * Matcher for detecting tuples t where <>data reference FAMTerminator(source,target)
49490 */ 39803 */
49491private pattern mayInRelationtransient_attribute_EStructuralFeature( 39804private pattern mayInRelationdata_reference_FAMTerminator(
49492 problem:LogicProblem, interpretation:PartialInterpretation, 39805 problem:LogicProblem, interpretation:PartialInterpretation,
49493 source: DefinedElement, target:DefinedElement) 39806 source: DefinedElement, target:DefinedElement)
49494{ 39807{
@@ -49497,33 +39810,42 @@ private pattern mayInRelationtransient_attribute_EStructuralFeature(
49497 find mayExist(problem, interpretation, source); 39810 find mayExist(problem, interpretation, source);
49498 find mayExist(problem, interpretation, target); 39811 find mayExist(problem, interpretation, target);
49499 // Type consistency 39812 // Type consistency
49500 find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); 39813 find mayInstanceOfFAMTerminator_class(problem,interpretation,source);
49501 BooleanElement(target); 39814 find mayInstanceOfFunctionalData_class(problem,interpretation,target);
49502 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 39815 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
49503 // the upper bound of the multiplicity should be considered. 39816 // the upper bound of the multiplicity should be considered.
49504 numberOfExistingReferences == count find mustInRelationtransient_attribute_EStructuralFeature(problem,interpretation,source,_); 39817 numberOfExistingReferences == count find mustInRelationdata_reference_FAMTerminator(problem,interpretation,source,_);
49505 check(numberOfExistingReferences < 1); 39818 check(numberOfExistingReferences < 1);
39819 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
39820 // the upper bound of the opposite reference multiplicity should be considered.
39821 numberOfExistingOppositeReferences == count find mustInRelationterminator_reference_FunctionalData(problem,interpretation,target,_);
39822 check(numberOfExistingOppositeReferences < 1);
39823 // The eOpposite of the reference is containment, then a referene cannot be created if
39824 // 1. Multiple parents
39825 neg find mustContains4(problem,interpretation,source,_);
39826 // 2. Circle in the containment hierarchy
39827 neg find mustTransitiveContains(source,target);
49506} or { 39828} or {
49507 find mustInRelationtransient_attribute_EStructuralFeature(problem,interpretation,source,target); 39829 find mustInRelationdata_reference_FAMTerminator(problem,interpretation,source,target);
49508} 39830}
49509/** 39831/**
49510 * Matcher for detecting tuples t where []defaultValueLiteral attribute EStructuralFeature(source,target) 39832 * Matcher for detecting tuples t where []from reference InformationLink(source,target)
49511 */ 39833 */
49512private pattern mustInRelationdefaultValueLiteral_attribute_EStructuralFeature( 39834private pattern mustInRelationfrom_reference_InformationLink(
49513 problem:LogicProblem, interpretation:PartialInterpretation, 39835 problem:LogicProblem, interpretation:PartialInterpretation,
49514 source: DefinedElement, target:DefinedElement) 39836 source: DefinedElement, target:DefinedElement)
49515{ 39837{
49516 find interpretation(problem,interpretation); 39838 find interpretation(problem,interpretation);
49517 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 39839 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
49518 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"defaultValueLiteral attribute EStructuralFeature"); 39840 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"from reference InformationLink");
49519 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 39841 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
49520 BinaryElementRelationLink.param1(link,source); 39842 BinaryElementRelationLink.param1(link,source);
49521 BinaryElementRelationLink.param2(link,target); 39843 BinaryElementRelationLink.param2(link,target);
49522} 39844}
49523/** 39845/**
49524 * Matcher for detecting tuples t where <>defaultValueLiteral attribute EStructuralFeature(source,target) 39846 * Matcher for detecting tuples t where <>from reference InformationLink(source,target)
49525 */ 39847 */
49526private pattern mayInRelationdefaultValueLiteral_attribute_EStructuralFeature( 39848private pattern mayInRelationfrom_reference_InformationLink(
49527 problem:LogicProblem, interpretation:PartialInterpretation, 39849 problem:LogicProblem, interpretation:PartialInterpretation,
49528 source: DefinedElement, target:DefinedElement) 39850 source: DefinedElement, target:DefinedElement)
49529{ 39851{
@@ -49532,33 +39854,38 @@ private pattern mayInRelationdefaultValueLiteral_attribute_EStructuralFeature(
49532 find mayExist(problem, interpretation, source); 39854 find mayExist(problem, interpretation, source);
49533 find mayExist(problem, interpretation, target); 39855 find mayExist(problem, interpretation, target);
49534 // Type consistency 39856 // Type consistency
49535 find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); 39857 find mayInstanceOfInformationLink_class(problem,interpretation,source);
49536 StringElement(target); 39858 find mayInstanceOfFunctionalOutput_class(problem,interpretation,target);
49537 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 39859 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
49538 // the upper bound of the multiplicity should be considered. 39860 // the upper bound of the multiplicity should be considered.
49539 numberOfExistingReferences == count find mustInRelationdefaultValueLiteral_attribute_EStructuralFeature(problem,interpretation,source,_); 39861 numberOfExistingReferences == count find mustInRelationfrom_reference_InformationLink(problem,interpretation,source,_);
49540 check(numberOfExistingReferences < 1); 39862 check(numberOfExistingReferences < 1);
39863 // The eOpposite of the reference is containment, then a referene cannot be created if
39864 // 1. Multiple parents
39865 neg find mustContains4(problem,interpretation,source,_);
39866 // 2. Circle in the containment hierarchy
39867 neg find mustTransitiveContains(source,target);
49541} or { 39868} or {
49542 find mustInRelationdefaultValueLiteral_attribute_EStructuralFeature(problem,interpretation,source,target); 39869 find mustInRelationfrom_reference_InformationLink(problem,interpretation,source,target);
49543} 39870}
49544/** 39871/**
49545 * Matcher for detecting tuples t where []unsettable attribute EStructuralFeature(source,target) 39872 * Matcher for detecting tuples t where []to reference InformationLink(source,target)
49546 */ 39873 */
49547private pattern mustInRelationunsettable_attribute_EStructuralFeature( 39874private pattern mustInRelationto_reference_InformationLink(
49548 problem:LogicProblem, interpretation:PartialInterpretation, 39875 problem:LogicProblem, interpretation:PartialInterpretation,
49549 source: DefinedElement, target:DefinedElement) 39876 source: DefinedElement, target:DefinedElement)
49550{ 39877{
49551 find interpretation(problem,interpretation); 39878 find interpretation(problem,interpretation);
49552 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 39879 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
49553 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"unsettable attribute EStructuralFeature"); 39880 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"to reference InformationLink");
49554 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 39881 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
49555 BinaryElementRelationLink.param1(link,source); 39882 BinaryElementRelationLink.param1(link,source);
49556 BinaryElementRelationLink.param2(link,target); 39883 BinaryElementRelationLink.param2(link,target);
49557} 39884}
49558/** 39885/**
49559 * Matcher for detecting tuples t where <>unsettable attribute EStructuralFeature(source,target) 39886 * Matcher for detecting tuples t where <>to reference InformationLink(source,target)
49560 */ 39887 */
49561private pattern mayInRelationunsettable_attribute_EStructuralFeature( 39888private pattern mayInRelationto_reference_InformationLink(
49562 problem:LogicProblem, interpretation:PartialInterpretation, 39889 problem:LogicProblem, interpretation:PartialInterpretation,
49563 source: DefinedElement, target:DefinedElement) 39890 source: DefinedElement, target:DefinedElement)
49564{ 39891{
@@ -49567,33 +39894,33 @@ private pattern mayInRelationunsettable_attribute_EStructuralFeature(
49567 find mayExist(problem, interpretation, source); 39894 find mayExist(problem, interpretation, source);
49568 find mayExist(problem, interpretation, target); 39895 find mayExist(problem, interpretation, target);
49569 // Type consistency 39896 // Type consistency
49570 find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); 39897 find mayInstanceOfInformationLink_class(problem,interpretation,source);
49571 BooleanElement(target); 39898 find mayInstanceOfFunctionalInput_class(problem,interpretation,target);
49572 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 39899 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
49573 // the upper bound of the multiplicity should be considered. 39900 // the upper bound of the multiplicity should be considered.
49574 numberOfExistingReferences == count find mustInRelationunsettable_attribute_EStructuralFeature(problem,interpretation,source,_); 39901 numberOfExistingReferences == count find mustInRelationto_reference_InformationLink(problem,interpretation,source,_);
49575 check(numberOfExistingReferences < 1); 39902 check(numberOfExistingReferences < 1);
49576} or { 39903} or {
49577 find mustInRelationunsettable_attribute_EStructuralFeature(problem,interpretation,source,target); 39904 find mustInRelationto_reference_InformationLink(problem,interpretation,source,target);
49578} 39905}
49579/** 39906/**
49580 * Matcher for detecting tuples t where []derived attribute EStructuralFeature(source,target) 39907 * Matcher for detecting tuples t where []data reference FunctionalInterface(source,target)
49581 */ 39908 */
49582private pattern mustInRelationderived_attribute_EStructuralFeature( 39909private pattern mustInRelationdata_reference_FunctionalInterface(
49583 problem:LogicProblem, interpretation:PartialInterpretation, 39910 problem:LogicProblem, interpretation:PartialInterpretation,
49584 source: DefinedElement, target:DefinedElement) 39911 source: DefinedElement, target:DefinedElement)
49585{ 39912{
49586 find interpretation(problem,interpretation); 39913 find interpretation(problem,interpretation);
49587 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 39914 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
49588 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"derived attribute EStructuralFeature"); 39915 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"data reference FunctionalInterface");
49589 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 39916 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
49590 BinaryElementRelationLink.param1(link,source); 39917 BinaryElementRelationLink.param1(link,source);
49591 BinaryElementRelationLink.param2(link,target); 39918 BinaryElementRelationLink.param2(link,target);
49592} 39919}
49593/** 39920/**
49594 * Matcher for detecting tuples t where <>derived attribute EStructuralFeature(source,target) 39921 * Matcher for detecting tuples t where <>data reference FunctionalInterface(source,target)
49595 */ 39922 */
49596private pattern mayInRelationderived_attribute_EStructuralFeature( 39923private pattern mayInRelationdata_reference_FunctionalInterface(
49597 problem:LogicProblem, interpretation:PartialInterpretation, 39924 problem:LogicProblem, interpretation:PartialInterpretation,
49598 source: DefinedElement, target:DefinedElement) 39925 source: DefinedElement, target:DefinedElement)
49599{ 39926{
@@ -49602,33 +39929,38 @@ private pattern mayInRelationderived_attribute_EStructuralFeature(
49602 find mayExist(problem, interpretation, source); 39929 find mayExist(problem, interpretation, source);
49603 find mayExist(problem, interpretation, target); 39930 find mayExist(problem, interpretation, target);
49604 // Type consistency 39931 // Type consistency
49605 find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); 39932 find mayInstanceOfFunctionalInterface_class(problem,interpretation,source);
49606 BooleanElement(target); 39933 find mayInstanceOfFunctionalData_class(problem,interpretation,target);
49607 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 39934 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
49608 // the upper bound of the multiplicity should be considered. 39935 // the upper bound of the opposite reference multiplicity should be considered.
49609 numberOfExistingReferences == count find mustInRelationderived_attribute_EStructuralFeature(problem,interpretation,source,_); 39936 numberOfExistingOppositeReferences == count find mustInRelationinterface_reference_FunctionalData(problem,interpretation,target,_);
49610 check(numberOfExistingReferences < 1); 39937 check(numberOfExistingOppositeReferences < 1);
39938 // The reference is containment, then a new reference cannot be create if:
39939 // 1. Multiple parents
39940 neg find mustContains4(problem,interpretation,_,target);
39941 // 2. Circle in the containment hierarchy
39942 neg find mustTransitiveContains(source,target);
49611} or { 39943} or {
49612 find mustInRelationderived_attribute_EStructuralFeature(problem,interpretation,source,target); 39944 find mustInRelationdata_reference_FunctionalInterface(problem,interpretation,source,target);
49613} 39945}
49614/** 39946/**
49615 * Matcher for detecting tuples t where []ordered attribute ETypedElement(source,target) 39947 * Matcher for detecting tuples t where []element reference FunctionalInterface(source,target)
49616 */ 39948 */
49617private pattern mustInRelationordered_attribute_ETypedElement( 39949private pattern mustInRelationelement_reference_FunctionalInterface(
49618 problem:LogicProblem, interpretation:PartialInterpretation, 39950 problem:LogicProblem, interpretation:PartialInterpretation,
49619 source: DefinedElement, target:DefinedElement) 39951 source: DefinedElement, target:DefinedElement)
49620{ 39952{
49621 find interpretation(problem,interpretation); 39953 find interpretation(problem,interpretation);
49622 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 39954 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
49623 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"ordered attribute ETypedElement"); 39955 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"element reference FunctionalInterface");
49624 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 39956 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
49625 BinaryElementRelationLink.param1(link,source); 39957 BinaryElementRelationLink.param1(link,source);
49626 BinaryElementRelationLink.param2(link,target); 39958 BinaryElementRelationLink.param2(link,target);
49627} 39959}
49628/** 39960/**
49629 * Matcher for detecting tuples t where <>ordered attribute ETypedElement(source,target) 39961 * Matcher for detecting tuples t where <>element reference FunctionalInterface(source,target)
49630 */ 39962 */
49631private pattern mayInRelationordered_attribute_ETypedElement( 39963private pattern mayInRelationelement_reference_FunctionalInterface(
49632 problem:LogicProblem, interpretation:PartialInterpretation, 39964 problem:LogicProblem, interpretation:PartialInterpretation,
49633 source: DefinedElement, target:DefinedElement) 39965 source: DefinedElement, target:DefinedElement)
49634{ 39966{
@@ -49637,33 +39969,42 @@ private pattern mayInRelationordered_attribute_ETypedElement(
49637 find mayExist(problem, interpretation, source); 39969 find mayExist(problem, interpretation, source);
49638 find mayExist(problem, interpretation, target); 39970 find mayExist(problem, interpretation, target);
49639 // Type consistency 39971 // Type consistency
49640 find mayInstanceOfETypedElement_class(problem,interpretation,source); 39972 find mayInstanceOfFunctionalInterface_class(problem,interpretation,source);
49641 BooleanElement(target); 39973 find mayInstanceOfFunctionalElement_class(problem,interpretation,target);
49642 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 39974 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
49643 // the upper bound of the multiplicity should be considered. 39975 // the upper bound of the multiplicity should be considered.
49644 numberOfExistingReferences == count find mustInRelationordered_attribute_ETypedElement(problem,interpretation,source,_); 39976 numberOfExistingReferences == count find mustInRelationelement_reference_FunctionalInterface(problem,interpretation,source,_);
49645 check(numberOfExistingReferences < 1); 39977 check(numberOfExistingReferences < 1);
39978 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
39979 // the upper bound of the opposite reference multiplicity should be considered.
39980 numberOfExistingOppositeReferences == count find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,target,_);
39981 check(numberOfExistingOppositeReferences < 1);
39982 // The eOpposite of the reference is containment, then a referene cannot be created if
39983 // 1. Multiple parents
39984 neg find mustContains4(problem,interpretation,source,_);
39985 // 2. Circle in the containment hierarchy
39986 neg find mustTransitiveContains(source,target);
49646} or { 39987} or {
49647 find mustInRelationordered_attribute_ETypedElement(problem,interpretation,source,target); 39988 find mustInRelationelement_reference_FunctionalInterface(problem,interpretation,source,target);
49648} 39989}
49649/** 39990/**
49650 * Matcher for detecting tuples t where []unique attribute ETypedElement(source,target) 39991 * Matcher for detecting tuples t where []IncomingLinks reference FunctionalInput(source,target)
49651 */ 39992 */
49652private pattern mustInRelationunique_attribute_ETypedElement( 39993private pattern mustInRelationIncomingLinks_reference_FunctionalInput(
49653 problem:LogicProblem, interpretation:PartialInterpretation, 39994 problem:LogicProblem, interpretation:PartialInterpretation,
49654 source: DefinedElement, target:DefinedElement) 39995 source: DefinedElement, target:DefinedElement)
49655{ 39996{
49656 find interpretation(problem,interpretation); 39997 find interpretation(problem,interpretation);
49657 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 39998 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
49658 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"unique attribute ETypedElement"); 39999 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"IncomingLinks reference FunctionalInput");
49659 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 40000 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
49660 BinaryElementRelationLink.param1(link,source); 40001 BinaryElementRelationLink.param1(link,source);
49661 BinaryElementRelationLink.param2(link,target); 40002 BinaryElementRelationLink.param2(link,target);
49662} 40003}
49663/** 40004/**
49664 * Matcher for detecting tuples t where <>unique attribute ETypedElement(source,target) 40005 * Matcher for detecting tuples t where <>IncomingLinks reference FunctionalInput(source,target)
49665 */ 40006 */
49666private pattern mayInRelationunique_attribute_ETypedElement( 40007private pattern mayInRelationIncomingLinks_reference_FunctionalInput(
49667 problem:LogicProblem, interpretation:PartialInterpretation, 40008 problem:LogicProblem, interpretation:PartialInterpretation,
49668 source: DefinedElement, target:DefinedElement) 40009 source: DefinedElement, target:DefinedElement)
49669{ 40010{
@@ -49672,33 +40013,33 @@ private pattern mayInRelationunique_attribute_ETypedElement(
49672 find mayExist(problem, interpretation, source); 40013 find mayExist(problem, interpretation, source);
49673 find mayExist(problem, interpretation, target); 40014 find mayExist(problem, interpretation, target);
49674 // Type consistency 40015 // Type consistency
49675 find mayInstanceOfETypedElement_class(problem,interpretation,source); 40016 find mayInstanceOfFunctionalInput_class(problem,interpretation,source);
49676 BooleanElement(target); 40017 find mayInstanceOfInformationLink_class(problem,interpretation,target);
49677 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 40018 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
49678 // the upper bound of the multiplicity should be considered. 40019 // the upper bound of the opposite reference multiplicity should be considered.
49679 numberOfExistingReferences == count find mustInRelationunique_attribute_ETypedElement(problem,interpretation,source,_); 40020 numberOfExistingOppositeReferences == count find mustInRelationto_reference_InformationLink(problem,interpretation,target,_);
49680 check(numberOfExistingReferences < 1); 40021 check(numberOfExistingOppositeReferences < 1);
49681} or { 40022} or {
49682 find mustInRelationunique_attribute_ETypedElement(problem,interpretation,source,target); 40023 find mustInRelationIncomingLinks_reference_FunctionalInput(problem,interpretation,source,target);
49683} 40024}
49684/** 40025/**
49685 * Matcher for detecting tuples t where []lowerBound attribute ETypedElement(source,target) 40026 * Matcher for detecting tuples t where []outgoingLinks reference FunctionalOutput(source,target)
49686 */ 40027 */
49687private pattern mustInRelationlowerBound_attribute_ETypedElement( 40028private pattern mustInRelationoutgoingLinks_reference_FunctionalOutput(
49688 problem:LogicProblem, interpretation:PartialInterpretation, 40029 problem:LogicProblem, interpretation:PartialInterpretation,
49689 source: DefinedElement, target:DefinedElement) 40030 source: DefinedElement, target:DefinedElement)
49690{ 40031{
49691 find interpretation(problem,interpretation); 40032 find interpretation(problem,interpretation);
49692 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 40033 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
49693 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"lowerBound attribute ETypedElement"); 40034 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"outgoingLinks reference FunctionalOutput");
49694 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 40035 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
49695 BinaryElementRelationLink.param1(link,source); 40036 BinaryElementRelationLink.param1(link,source);
49696 BinaryElementRelationLink.param2(link,target); 40037 BinaryElementRelationLink.param2(link,target);
49697} 40038}
49698/** 40039/**
49699 * Matcher for detecting tuples t where <>lowerBound attribute ETypedElement(source,target) 40040 * Matcher for detecting tuples t where <>outgoingLinks reference FunctionalOutput(source,target)
49700 */ 40041 */
49701private pattern mayInRelationlowerBound_attribute_ETypedElement( 40042private pattern mayInRelationoutgoingLinks_reference_FunctionalOutput(
49702 problem:LogicProblem, interpretation:PartialInterpretation, 40043 problem:LogicProblem, interpretation:PartialInterpretation,
49703 source: DefinedElement, target:DefinedElement) 40044 source: DefinedElement, target:DefinedElement)
49704{ 40045{
@@ -49707,33 +40048,38 @@ private pattern mayInRelationlowerBound_attribute_ETypedElement(
49707 find mayExist(problem, interpretation, source); 40048 find mayExist(problem, interpretation, source);
49708 find mayExist(problem, interpretation, target); 40049 find mayExist(problem, interpretation, target);
49709 // Type consistency 40050 // Type consistency
49710 find mayInstanceOfETypedElement_class(problem,interpretation,source); 40051 find mayInstanceOfFunctionalOutput_class(problem,interpretation,source);
49711 IntegerElement(target); 40052 find mayInstanceOfInformationLink_class(problem,interpretation,target);
49712 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 40053 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
49713 // the upper bound of the multiplicity should be considered. 40054 // the upper bound of the opposite reference multiplicity should be considered.
49714 numberOfExistingReferences == count find mustInRelationlowerBound_attribute_ETypedElement(problem,interpretation,source,_); 40055 numberOfExistingOppositeReferences == count find mustInRelationfrom_reference_InformationLink(problem,interpretation,target,_);
49715 check(numberOfExistingReferences < 1); 40056 check(numberOfExistingOppositeReferences < 1);
40057 // The reference is containment, then a new reference cannot be create if:
40058 // 1. Multiple parents
40059 neg find mustContains4(problem,interpretation,_,target);
40060 // 2. Circle in the containment hierarchy
40061 neg find mustTransitiveContains(source,target);
49716} or { 40062} or {
49717 find mustInRelationlowerBound_attribute_ETypedElement(problem,interpretation,source,target); 40063 find mustInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,source,target);
49718} 40064}
49719/** 40065/**
49720 * Matcher for detecting tuples t where []upperBound attribute ETypedElement(source,target) 40066 * Matcher for detecting tuples t where []terminator reference FunctionalData(source,target)
49721 */ 40067 */
49722private pattern mustInRelationupperBound_attribute_ETypedElement( 40068private pattern mustInRelationterminator_reference_FunctionalData(
49723 problem:LogicProblem, interpretation:PartialInterpretation, 40069 problem:LogicProblem, interpretation:PartialInterpretation,
49724 source: DefinedElement, target:DefinedElement) 40070 source: DefinedElement, target:DefinedElement)
49725{ 40071{
49726 find interpretation(problem,interpretation); 40072 find interpretation(problem,interpretation);
49727 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 40073 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
49728 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"upperBound attribute ETypedElement"); 40074 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"terminator reference FunctionalData");
49729 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 40075 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
49730 BinaryElementRelationLink.param1(link,source); 40076 BinaryElementRelationLink.param1(link,source);
49731 BinaryElementRelationLink.param2(link,target); 40077 BinaryElementRelationLink.param2(link,target);
49732} 40078}
49733/** 40079/**
49734 * Matcher for detecting tuples t where <>upperBound attribute ETypedElement(source,target) 40080 * Matcher for detecting tuples t where <>terminator reference FunctionalData(source,target)
49735 */ 40081 */
49736private pattern mayInRelationupperBound_attribute_ETypedElement( 40082private pattern mayInRelationterminator_reference_FunctionalData(
49737 problem:LogicProblem, interpretation:PartialInterpretation, 40083 problem:LogicProblem, interpretation:PartialInterpretation,
49738 source: DefinedElement, target:DefinedElement) 40084 source: DefinedElement, target:DefinedElement)
49739{ 40085{
@@ -49742,33 +40088,42 @@ private pattern mayInRelationupperBound_attribute_ETypedElement(
49742 find mayExist(problem, interpretation, source); 40088 find mayExist(problem, interpretation, source);
49743 find mayExist(problem, interpretation, target); 40089 find mayExist(problem, interpretation, target);
49744 // Type consistency 40090 // Type consistency
49745 find mayInstanceOfETypedElement_class(problem,interpretation,source); 40091 find mayInstanceOfFunctionalData_class(problem,interpretation,source);
49746 IntegerElement(target); 40092 find mayInstanceOfFAMTerminator_class(problem,interpretation,target);
49747 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 40093 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
49748 // the upper bound of the multiplicity should be considered. 40094 // the upper bound of the multiplicity should be considered.
49749 numberOfExistingReferences == count find mustInRelationupperBound_attribute_ETypedElement(problem,interpretation,source,_); 40095 numberOfExistingReferences == count find mustInRelationterminator_reference_FunctionalData(problem,interpretation,source,_);
49750 check(numberOfExistingReferences < 1); 40096 check(numberOfExistingReferences < 1);
40097 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
40098 // the upper bound of the opposite reference multiplicity should be considered.
40099 numberOfExistingOppositeReferences == count find mustInRelationdata_reference_FAMTerminator(problem,interpretation,target,_);
40100 check(numberOfExistingOppositeReferences < 1);
40101 // The reference is containment, then a new reference cannot be create if:
40102 // 1. Multiple parents
40103 neg find mustContains4(problem,interpretation,_,target);
40104 // 2. Circle in the containment hierarchy
40105 neg find mustTransitiveContains(source,target);
49751} or { 40106} or {
49752 find mustInRelationupperBound_attribute_ETypedElement(problem,interpretation,source,target); 40107 find mustInRelationterminator_reference_FunctionalData(problem,interpretation,source,target);
49753} 40108}
49754/** 40109/**
49755 * Matcher for detecting tuples t where []many attribute ETypedElement(source,target) 40110 * Matcher for detecting tuples t where []interface reference FunctionalData(source,target)
49756 */ 40111 */
49757private pattern mustInRelationmany_attribute_ETypedElement( 40112private pattern mustInRelationinterface_reference_FunctionalData(
49758 problem:LogicProblem, interpretation:PartialInterpretation, 40113 problem:LogicProblem, interpretation:PartialInterpretation,
49759 source: DefinedElement, target:DefinedElement) 40114 source: DefinedElement, target:DefinedElement)
49760{ 40115{
49761 find interpretation(problem,interpretation); 40116 find interpretation(problem,interpretation);
49762 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 40117 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
49763 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"many attribute ETypedElement"); 40118 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"interface reference FunctionalData");
49764 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 40119 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
49765 BinaryElementRelationLink.param1(link,source); 40120 BinaryElementRelationLink.param1(link,source);
49766 BinaryElementRelationLink.param2(link,target); 40121 BinaryElementRelationLink.param2(link,target);
49767} 40122}
49768/** 40123/**
49769 * Matcher for detecting tuples t where <>many attribute ETypedElement(source,target) 40124 * Matcher for detecting tuples t where <>interface reference FunctionalData(source,target)
49770 */ 40125 */
49771private pattern mayInRelationmany_attribute_ETypedElement( 40126private pattern mayInRelationinterface_reference_FunctionalData(
49772 problem:LogicProblem, interpretation:PartialInterpretation, 40127 problem:LogicProblem, interpretation:PartialInterpretation,
49773 source: DefinedElement, target:DefinedElement) 40128 source: DefinedElement, target:DefinedElement)
49774{ 40129{
@@ -49777,33 +40132,38 @@ private pattern mayInRelationmany_attribute_ETypedElement(
49777 find mayExist(problem, interpretation, source); 40132 find mayExist(problem, interpretation, source);
49778 find mayExist(problem, interpretation, target); 40133 find mayExist(problem, interpretation, target);
49779 // Type consistency 40134 // Type consistency
49780 find mayInstanceOfETypedElement_class(problem,interpretation,source); 40135 find mayInstanceOfFunctionalData_class(problem,interpretation,source);
49781 BooleanElement(target); 40136 find mayInstanceOfFunctionalInterface_class(problem,interpretation,target);
49782 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 40137 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
49783 // the upper bound of the multiplicity should be considered. 40138 // the upper bound of the multiplicity should be considered.
49784 numberOfExistingReferences == count find mustInRelationmany_attribute_ETypedElement(problem,interpretation,source,_); 40139 numberOfExistingReferences == count find mustInRelationinterface_reference_FunctionalData(problem,interpretation,source,_);
49785 check(numberOfExistingReferences < 1); 40140 check(numberOfExistingReferences < 1);
40141 // The eOpposite of the reference is containment, then a referene cannot be created if
40142 // 1. Multiple parents
40143 neg find mustContains4(problem,interpretation,source,_);
40144 // 2. Circle in the containment hierarchy
40145 neg find mustTransitiveContains(source,target);
49786} or { 40146} or {
49787 find mustInRelationmany_attribute_ETypedElement(problem,interpretation,source,target); 40147 find mustInRelationinterface_reference_FunctionalData(problem,interpretation,source,target);
49788} 40148}
49789/** 40149/**
49790 * Matcher for detecting tuples t where []required attribute ETypedElement(source,target) 40150 * Matcher for detecting tuples t where []type attribute Function(source,target)
49791 */ 40151 */
49792private pattern mustInRelationrequired_attribute_ETypedElement( 40152private pattern mustInRelationtype_attribute_Function(
49793 problem:LogicProblem, interpretation:PartialInterpretation, 40153 problem:LogicProblem, interpretation:PartialInterpretation,
49794 source: DefinedElement, target:DefinedElement) 40154 source: DefinedElement, target:DefinedElement)
49795{ 40155{
49796 find interpretation(problem,interpretation); 40156 find interpretation(problem,interpretation);
49797 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 40157 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
49798 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"required attribute ETypedElement"); 40158 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function");
49799 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 40159 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
49800 BinaryElementRelationLink.param1(link,source); 40160 BinaryElementRelationLink.param1(link,source);
49801 BinaryElementRelationLink.param2(link,target); 40161 BinaryElementRelationLink.param2(link,target);
49802} 40162}
49803/** 40163/**
49804 * Matcher for detecting tuples t where <>required attribute ETypedElement(source,target) 40164 * Matcher for detecting tuples t where <>type attribute Function(source,target)
49805 */ 40165 */
49806private pattern mayInRelationrequired_attribute_ETypedElement( 40166private pattern mayInRelationtype_attribute_Function(
49807 problem:LogicProblem, interpretation:PartialInterpretation, 40167 problem:LogicProblem, interpretation:PartialInterpretation,
49808 source: DefinedElement, target:DefinedElement) 40168 source: DefinedElement, target:DefinedElement)
49809{ 40169{
@@ -49812,91 +40172,118 @@ private pattern mayInRelationrequired_attribute_ETypedElement(
49812 find mayExist(problem, interpretation, source); 40172 find mayExist(problem, interpretation, source);
49813 find mayExist(problem, interpretation, target); 40173 find mayExist(problem, interpretation, target);
49814 // Type consistency 40174 // Type consistency
49815 find mayInstanceOfETypedElement_class(problem,interpretation,source); 40175 find mayInstanceOfFunction_class(problem,interpretation,source);
49816 BooleanElement(target); 40176 find mayInstanceOfFunctionType_enum(problem,interpretation,target);
49817 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 40177 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
49818 // the upper bound of the multiplicity should be considered. 40178 // the upper bound of the multiplicity should be considered.
49819 numberOfExistingReferences == count find mustInRelationrequired_attribute_ETypedElement(problem,interpretation,source,_); 40179 numberOfExistingReferences == count find mustInRelationtype_attribute_Function(problem,interpretation,source,_);
49820 check(numberOfExistingReferences < 1); 40180 check(numberOfExistingReferences < 1);
49821} or { 40181} or {
49822 find mustInRelationrequired_attribute_ETypedElement(problem,interpretation,source,target); 40182 find mustInRelationtype_attribute_Function(problem,interpretation,source,target);
49823} 40183}
49824/** 40184
49825 * Matcher for detecting tuples t where []key attribute EStringToStringMapEntry(source,target) 40185//////////
49826 */ 40186// 1.3 Relation Definition Indexers
49827private pattern mustInRelationkey_attribute_EStringToStringMapEntry( 40187//////////
40188// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test fam queries terminatorAndInformation
40189private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(
49828 problem:LogicProblem, interpretation:PartialInterpretation, 40190 problem:LogicProblem, interpretation:PartialInterpretation,
49829 source: DefinedElement, target:DefinedElement) 40191 var_T, var_I)
49830{ 40192{
49831 find interpretation(problem,interpretation); 40193 find interpretation(problem,interpretation);
49832 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 40194 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_T);
49833 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"key attribute EStringToStringMapEntry"); 40195 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
49834 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 40196 // T is exported
49835 BinaryElementRelationLink.param1(link,source); 40197 // I is exported
49836 BinaryElementRelationLink.param2(link,target); 40198 find mustInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
49837} 40199 find mustInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,var_Out,var_virtual0);
49838/** 40200 find mustInstanceOfInformationLink_class(problem,interpretation,var_virtual0);
49839 * Matcher for detecting tuples t where <>key attribute EStringToStringMapEntry(source,target) 40201 var_virtual0 == var_I;
49840 */ 40202 find mustInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
49841private pattern mayInRelationkey_attribute_EStringToStringMapEntry( 40203 find mustInRelationterminator_reference_FunctionalData(problem,interpretation,var_Out,var_virtual1);
49842 problem:LogicProblem, interpretation:PartialInterpretation, 40204 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
49843 source: DefinedElement, target:DefinedElement) 40205 var_virtual1 == var_T;
49844{ 40206}or{
49845 find interpretation(problem,interpretation); 40207 find interpretation(problem,interpretation);
49846 // The two endpoint of the link have to exist 40208 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_T);
49847 find mayExist(problem, interpretation, source); 40209 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
49848 find mayExist(problem, interpretation, target); 40210 // T is exported
49849 // Type consistency 40211 // I is exported
49850 find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,source); 40212 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
49851 StringElement(target); 40213 find mustInRelationto_reference_InformationLink(problem,interpretation,var_I,var_virtual0);
49852 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 40214 find mustInstanceOfFunctionalInput_class(problem,interpretation,var_virtual0);
49853 // the upper bound of the multiplicity should be considered. 40215 var_virtual0 == var_In;
49854 numberOfExistingReferences == count find mustInRelationkey_attribute_EStringToStringMapEntry(problem,interpretation,source,_); 40216 find mustInstanceOfFunctionalInput_class(problem,interpretation,var_In);
49855 check(numberOfExistingReferences < 1); 40217 find mustInRelationterminator_reference_FunctionalData(problem,interpretation,var_In,var_virtual1);
49856} or { 40218 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
49857 find mustInRelationkey_attribute_EStringToStringMapEntry(problem,interpretation,source,target); 40219 var_virtual1 == var_T;
49858} 40220}
49859/** 40221private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(
49860 * Matcher for detecting tuples t where []value attribute EStringToStringMapEntry(source,target)
49861 */
49862private pattern mustInRelationvalue_attribute_EStringToStringMapEntry(
49863 problem:LogicProblem, interpretation:PartialInterpretation, 40222 problem:LogicProblem, interpretation:PartialInterpretation,
49864 source: DefinedElement, target:DefinedElement) 40223 var_T, var_I)
49865{ 40224{
49866 find interpretation(problem,interpretation); 40225 find interpretation(problem,interpretation);
49867 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 40226 find mayInstanceOfFAMTerminator_class(problem,interpretation,var_T);
49868 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"value attribute EStringToStringMapEntry"); 40227 find mayInstanceOfInformationLink_class(problem,interpretation,var_I);
49869 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 40228 // T is exported
49870 BinaryElementRelationLink.param1(link,source); 40229 // I is exported
49871 BinaryElementRelationLink.param2(link,target); 40230 find mayInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
40231 find mayInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,var_Out,var_virtual0);
40232 find mayInstanceOfInformationLink_class(problem,interpretation,var_virtual0);
40233 find mayEquivalent(problem, interpretation, var_virtual0, var_I);
40234 find mayInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
40235 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,var_Out,var_virtual1);
40236 find mayInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
40237 find mayEquivalent(problem, interpretation, var_virtual1, var_T);
40238}or{
40239 find interpretation(problem,interpretation);
40240 find mayInstanceOfFAMTerminator_class(problem,interpretation,var_T);
40241 find mayInstanceOfInformationLink_class(problem,interpretation,var_I);
40242 // T is exported
40243 // I is exported
40244 find mayInstanceOfInformationLink_class(problem,interpretation,var_I);
40245 find mayInRelationto_reference_InformationLink(problem,interpretation,var_I,var_virtual0);
40246 find mayInstanceOfFunctionalInput_class(problem,interpretation,var_virtual0);
40247 find mayEquivalent(problem, interpretation, var_virtual0, var_In);
40248 find mayInstanceOfFunctionalInput_class(problem,interpretation,var_In);
40249 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,var_In,var_virtual1);
40250 find mayInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
40251 find mayEquivalent(problem, interpretation, var_virtual1, var_T);
49872} 40252}
49873/** 40253private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(
49874 * Matcher for detecting tuples t where <>value attribute EStringToStringMapEntry(source,target)
49875 */
49876private pattern mayInRelationvalue_attribute_EStringToStringMapEntry(
49877 problem:LogicProblem, interpretation:PartialInterpretation, 40254 problem:LogicProblem, interpretation:PartialInterpretation,
49878 source: DefinedElement, target:DefinedElement) 40255 var_T, var_I)
49879{ 40256{
49880 find interpretation(problem,interpretation); 40257 find interpretation(problem,interpretation);
49881 // The two endpoint of the link have to exist 40258 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_T);
49882 find mayExist(problem, interpretation, source); 40259 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
49883 find mayExist(problem, interpretation, target); 40260 // T is exported
49884 // Type consistency 40261 // I is exported
49885 find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,source); 40262 find mustInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
49886 StringElement(target); 40263 find mustInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,var_Out,var_virtual0);
49887 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 40264 find mustInstanceOfInformationLink_class(problem,interpretation,var_virtual0);
49888 // the upper bound of the multiplicity should be considered. 40265 var_virtual0 == var_I;
49889 numberOfExistingReferences == count find mustInRelationvalue_attribute_EStringToStringMapEntry(problem,interpretation,source,_); 40266 find mustInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
49890 check(numberOfExistingReferences < 1); 40267 find mustInRelationterminator_reference_FunctionalData(problem,interpretation,var_Out,var_virtual1);
49891} or { 40268 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
49892 find mustInRelationvalue_attribute_EStringToStringMapEntry(problem,interpretation,source,target); 40269 var_virtual1 == var_T;
40270}or{
40271 find interpretation(problem,interpretation);
40272 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_T);
40273 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
40274 // T is exported
40275 // I is exported
40276 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
40277 find mustInRelationto_reference_InformationLink(problem,interpretation,var_I,var_virtual0);
40278 find mustInstanceOfFunctionalInput_class(problem,interpretation,var_virtual0);
40279 var_virtual0 == var_In;
40280 find mustInstanceOfFunctionalInput_class(problem,interpretation,var_In);
40281 find mustInRelationterminator_reference_FunctionalData(problem,interpretation,var_In,var_virtual1);
40282 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
40283 var_virtual1 == var_T;
49893} 40284}
49894 40285
49895////////// 40286//////////
49896// 1.3 Relation Definition Indexers
49897//////////
49898
49899//////////
49900// 1.4 Containment Indexer 40287// 1.4 Containment Indexer
49901////////// 40288//////////
49902private pattern mustContains2(source: DefinedElement, target: DefinedElement) { 40289private pattern mustContains2(source: DefinedElement, target: DefinedElement) {
@@ -49905,41 +40292,17 @@ private pattern mustContains2(source: DefinedElement, target: DefinedElement) {
49905 40292
49906private pattern mustContains4(problem:LogicProblem, interpretation:PartialInterpretation, 40293private pattern mustContains4(problem:LogicProblem, interpretation:PartialInterpretation,
49907 source: DefinedElement, target: DefinedElement) 40294 source: DefinedElement, target: DefinedElement)
49908 { find mustInRelationdetails_reference_EAnnotation(problem,interpretation,source,target); }or 40295 { find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,source,target); }or
49909
49910 { find mustInRelationcontents_reference_EAnnotation(problem,interpretation,source,target); }or
49911
49912 { find mustInRelationeOperations_reference_EClass(problem,interpretation,source,target); }or
49913
49914 { find mustInRelationeStructuralFeatures_reference_EClass(problem,interpretation,source,target); }or
49915
49916 { find mustInRelationeGenericSuperTypes_reference_EClass(problem,interpretation,source,target); }or
49917
49918 { find mustInRelationeTypeParameters_reference_EClassifier(problem,interpretation,source,target); }or
49919
49920 { find mustInRelationeLiterals_reference_EEnum(problem,interpretation,source,target); }or
49921
49922 { find mustInRelationeAnnotations_reference_EModelElement(problem,interpretation,source,target); }or
49923
49924 { find mustInRelationeTypeParameters_reference_EOperation(problem,interpretation,source,target); }or
49925
49926 { find mustInRelationeParameters_reference_EOperation(problem,interpretation,source,target); }or
49927
49928 { find mustInRelationeGenericExceptions_reference_EOperation(problem,interpretation,source,target); }or
49929
49930 { find mustInRelationeClassifiers_reference_EPackage(problem,interpretation,source,target); }or
49931
49932 { find mustInRelationeSubpackages_reference_EPackage(problem,interpretation,source,target); }or
49933 40296
49934 { find mustInRelationeGenericType_reference_ETypedElement(problem,interpretation,source,target); }or 40297 { find mustInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,source,target); }or
49935 40298
49936 { find mustInRelationeUpperBound_reference_EGenericType(problem,interpretation,source,target); }or 40299 { find mustInRelationsubElements_reference_Function(problem,interpretation,source,target); }or
49937 40300
49938 { find mustInRelationeTypeArguments_reference_EGenericType(problem,interpretation,source,target); }or 40301 { find mustInRelationdata_reference_FunctionalInterface(problem,interpretation,source,target); }or
49939 40302
49940 { find mustInRelationeLowerBound_reference_EGenericType(problem,interpretation,source,target); }or 40303 { find mustInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,source,target); }or
49941 40304
49942 { find mustInRelationeBounds_reference_ETypeParameter(problem,interpretation,source,target); } 40305 { find mustInRelationterminator_reference_FunctionalData(problem,interpretation,source,target); }
49943 40306
49944private pattern mustTransitiveContains(source,target) { 40307private pattern mustTransitiveContains(source,target) {
49945 find mustContains2+(source,target); 40308 find mustContains2+(source,target);
@@ -49950,36 +40313,41 @@ private pattern mustTransitiveContains(source,target) {
49950////////// 40313//////////
49951// 2.1 Invalidated by WF Queries 40314// 2.1 Invalidated by WF Queries
49952////////// 40315//////////
40316pattern invalidatedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(problem:LogicProblem, interpretation:PartialInterpretation,
40317 var_T, var_I)
40318{
40319 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(problem,interpretation,var_T,var_I);
40320}
49953 40321
49954////////// 40322//////////
49955// 3. Unfinishedness Indexers 40323// 3. Unfinishedness Indexers
49956////////// 40324//////////
49957// 3.1 Unfinishedness Measured by Multiplicity 40325// 3.1 Unfinishedness Measured by Multiplicity
49958////////// 40326//////////
49959pattern unfinishedLowerMultiplicity_eAttributeType_reference_EAttribute(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { 40327pattern unfinishedLowerMultiplicity_model_reference_FunctionalElement(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
49960 find interpretation(problem,interpretation); 40328 find interpretation(problem,interpretation);
49961 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 40329 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
49962 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAttributeType reference EAttribute"); 40330 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement");
49963 find mustInstanceOfEAttribute_class(problem,interpretation,object); 40331 find mustInstanceOfFunctionalElement_class(problem,interpretation,object);
49964 numberOfExistingReferences == count find mustInRelationeAttributeType_reference_EAttribute(problem,interpretation,object,_); 40332 numberOfExistingReferences == count find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,object,_);
49965 check(numberOfExistingReferences < 1); 40333 check(numberOfExistingReferences < 1);
49966 missingMultiplicity == eval(1-numberOfExistingReferences); 40334 missingMultiplicity == eval(1-numberOfExistingReferences);
49967} 40335}
49968pattern unfinishedLowerMultiplicity_eReferenceType_reference_EReference(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { 40336pattern unfinishedLowerMultiplicity_to_reference_InformationLink(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
49969 find interpretation(problem,interpretation); 40337 find interpretation(problem,interpretation);
49970 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 40338 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
49971 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eReferenceType reference EReference"); 40339 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"to reference InformationLink");
49972 find mustInstanceOfEReference_class(problem,interpretation,object); 40340 find mustInstanceOfInformationLink_class(problem,interpretation,object);
49973 numberOfExistingReferences == count find mustInRelationeReferenceType_reference_EReference(problem,interpretation,object,_); 40341 numberOfExistingReferences == count find mustInRelationto_reference_InformationLink(problem,interpretation,object,_);
49974 check(numberOfExistingReferences < 1); 40342 check(numberOfExistingReferences < 1);
49975 missingMultiplicity == eval(1-numberOfExistingReferences); 40343 missingMultiplicity == eval(1-numberOfExistingReferences);
49976} 40344}
49977pattern unfinishedLowerMultiplicity_eRawType_reference_EGenericType(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { 40345pattern unfinishedLowerMultiplicity_type_attribute_Function(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
49978 find interpretation(problem,interpretation); 40346 find interpretation(problem,interpretation);
49979 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 40347 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
49980 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eRawType reference EGenericType"); 40348 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function");
49981 find mustInstanceOfEGenericType_class(problem,interpretation,object); 40349 find mustInstanceOfFunction_class(problem,interpretation,object);
49982 numberOfExistingReferences == count find mustInRelationeRawType_reference_EGenericType(problem,interpretation,object,_); 40350 numberOfExistingReferences == count find mustInRelationtype_attribute_Function(problem,interpretation,object,_);
49983 check(numberOfExistingReferences < 1); 40351 check(numberOfExistingReferences < 1);
49984 missingMultiplicity == eval(1-numberOfExistingReferences); 40352 missingMultiplicity == eval(1-numberOfExistingReferences);
49985} 40353}
@@ -49987,6 +40355,11 @@ pattern unfinishedLowerMultiplicity_eRawType_reference_EGenericType(problem:Logi
49987////////// 40355//////////
49988// 3.2 Unfinishedness Measured by WF Queries 40356// 3.2 Unfinishedness Measured by WF Queries
49989////////// 40357//////////
40358pattern unfinishedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(problem:LogicProblem, interpretation:PartialInterpretation,
40359 var_T, var_I)
40360{
40361 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(problem,interpretation,var_T,var_I);
40362}
49990 40363
49991////////// 40364//////////
49992// 4. Refinement Indexers 40365// 4. Refinement Indexers
@@ -49996,626 +40369,254 @@ pattern unfinishedLowerMultiplicity_eRawType_reference_EGenericType(problem:Logi
49996private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation) 40369private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation)
49997{ 40370{
49998 find interpretation(problem,interpretation); 40371 find interpretation(problem,interpretation);
49999 find mustInstanceOfEOperation_class(problem,interpretation,root); 40372 find mustInstanceOfFunctionalInterface_class(problem,interpretation,root);
50000 find mustExist(problem, interpretation, root);
50001}or{
50002 find interpretation(problem,interpretation);
50003 find mustInstanceOfENamedElement_class(problem,interpretation,root);
50004 find mustExist(problem, interpretation, root);
50005}or{
50006 find interpretation(problem,interpretation);
50007 find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,root);
50008 find mustExist(problem, interpretation, root);
50009}or{
50010 find interpretation(problem,interpretation);
50011 find mustInstanceOfEEnumLiteral_class(problem,interpretation,root);
50012 find mustExist(problem, interpretation, root);
50013}or{
50014 find interpretation(problem,interpretation);
50015 find mustInstanceOfEGenericType_class(problem,interpretation,root);
50016 find mustExist(problem, interpretation, root);
50017}or{
50018 find interpretation(problem,interpretation);
50019 find mustInstanceOfEObject_class(problem,interpretation,root);
50020 find mustExist(problem, interpretation, root);
50021}or{
50022 find interpretation(problem,interpretation);
50023 find mustInstanceOfEAttribute_class(problem,interpretation,root);
50024 find mustExist(problem, interpretation, root);
50025}or{
50026 find interpretation(problem,interpretation);
50027 find mustInstanceOfEPackage_class(problem,interpretation,root);
50028 find mustExist(problem, interpretation, root);
50029}or{
50030 find interpretation(problem,interpretation);
50031 find mustInstanceOfEParameter_class(problem,interpretation,root);
50032 find mustExist(problem, interpretation, root);
50033}or{
50034 find interpretation(problem,interpretation);
50035 find mustInstanceOfEDataType_class(problem,interpretation,root);
50036 find mustExist(problem, interpretation, root);
50037}or{
50038 find interpretation(problem,interpretation);
50039 find mustInstanceOfEClassifier_class(problem,interpretation,root);
50040 find mustExist(problem, interpretation, root);
50041}or{
50042 find interpretation(problem,interpretation);
50043 find mustInstanceOfEStructuralFeature_class(problem,interpretation,root);
50044 find mustExist(problem, interpretation, root);
50045}or{
50046 find interpretation(problem,interpretation);
50047 find mustInstanceOfEModelElement_class(problem,interpretation,root);
50048 find mustExist(problem, interpretation, root);
50049}or{
50050 find interpretation(problem,interpretation);
50051 find mustInstanceOfEAnnotation_class(problem,interpretation,root);
50052 find mustExist(problem, interpretation, root);
50053}or{
50054 find interpretation(problem,interpretation);
50055 find mustInstanceOfETypeParameter_class(problem,interpretation,root);
50056 find mustExist(problem, interpretation, root); 40373 find mustExist(problem, interpretation, root);
50057}or{ 40374}or{
50058 find interpretation(problem,interpretation); 40375 find interpretation(problem,interpretation);
50059 find mustInstanceOfEReference_class(problem,interpretation,root); 40376 find mustInstanceOfInformationLink_class(problem,interpretation,root);
50060 find mustExist(problem, interpretation, root); 40377 find mustExist(problem, interpretation, root);
50061}or{ 40378}or{
50062 find interpretation(problem,interpretation); 40379 find interpretation(problem,interpretation);
50063 find mustInstanceOfEEnum_class(problem,interpretation,root); 40380 find mustInstanceOfFunctionalElement_class(problem,interpretation,root);
50064 find mustExist(problem, interpretation, root); 40381 find mustExist(problem, interpretation, root);
50065}or{ 40382}or{
50066 find interpretation(problem,interpretation); 40383 find interpretation(problem,interpretation);
50067 find mustInstanceOfETypedElement_class(problem,interpretation,root); 40384 find mustInstanceOfFAMTerminator_class(problem,interpretation,root);
50068 find mustExist(problem, interpretation, root); 40385 find mustExist(problem, interpretation, root);
50069}or{ 40386}or{
50070 find interpretation(problem,interpretation); 40387 find interpretation(problem,interpretation);
50071 find mustInstanceOfEClass_class(problem,interpretation,root); 40388 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,root);
50072 find mustExist(problem, interpretation, root); 40389 find mustExist(problem, interpretation, root);
50073}or{ 40390}or{
50074 find interpretation(problem,interpretation); 40391 find interpretation(problem,interpretation);
50075 find mustInstanceOfEModelElement_class_DefinedPart(problem,interpretation,root); 40392 find mustInstanceOfFunctionalInput_class(problem,interpretation,root);
50076 find mustExist(problem, interpretation, root); 40393 find mustExist(problem, interpretation, root);
50077}or{ 40394}or{
50078 find interpretation(problem,interpretation); 40395 find interpretation(problem,interpretation);
50079 find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,root); 40396 find mustInstanceOfFunction_class(problem,interpretation,root);
50080 find mustExist(problem, interpretation, root); 40397 find mustExist(problem, interpretation, root);
50081}or{ 40398}or{
50082 find interpretation(problem,interpretation); 40399 find interpretation(problem,interpretation);
50083 find mustInstanceOfENamedElement_class_DefinedPart(problem,interpretation,root); 40400 find mustInstanceOfFunctionalOutput_class(problem,interpretation,root);
50084 find mustExist(problem, interpretation, root); 40401 find mustExist(problem, interpretation, root);
50085}or{ 40402}or{
50086 find interpretation(problem,interpretation); 40403 find interpretation(problem,interpretation);
50087 find mustInstanceOfENamedElement_class_UndefinedPart(problem,interpretation,root); 40404 find mustInstanceOfFunctionalData_class(problem,interpretation,root);
50088 find mustExist(problem, interpretation, root); 40405 find mustExist(problem, interpretation, root);
50089}or{ 40406}or{
50090 find interpretation(problem,interpretation); 40407 find interpretation(problem,interpretation);
50091 find mustInstanceOfEPackage_class_DefinedPart(problem,interpretation,root); 40408 find mustInstanceOfFunctionalArchitectureModel_class_DefinedPart(problem,interpretation,root);
50092 find mustExist(problem, interpretation, root); 40409 find mustExist(problem, interpretation, root);
50093}or{ 40410}or{
50094 find interpretation(problem,interpretation); 40411 find interpretation(problem,interpretation);
50095 find mustInstanceOfEPackage_class_UndefinedPart(problem,interpretation,root); 40412 find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,root);
50096 find mustExist(problem, interpretation, root); 40413 find mustExist(problem, interpretation, root);
50097} 40414}
50098pattern createObject_EStringToStringMapEntry_class_by_details_reference_EAnnotation( 40415pattern createObject_FAMTerminator_class_by_terminator_reference_FunctionalData_with_data_reference_FAMTerminator(
50099 problem:LogicProblem, interpretation:PartialInterpretation,
50100 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
50101 container:DefinedElement)
50102{
50103 find interpretation(problem,interpretation);
50104 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
50105 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EStringToStringMapEntry class");
50106 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
50107 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"details reference EAnnotation");
50108 find mustInstanceOfEAnnotation_class(problem,interpretation,container);
50109 find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,newObject);
50110 find mayInRelationdetails_reference_EAnnotation(problem,interpretation,container,newObject);
50111 find mustExist(problem, interpretation, container);
50112 neg find mustExist(problem, interpretation, newObject);
50113}
50114pattern createObject_EStringToStringMapEntry_class(
50115 problem:LogicProblem, interpretation:PartialInterpretation,
50116 typeInterpretation:PartialComplexTypeInterpretation)
50117{
50118 find interpretation(problem,interpretation);
50119 neg find hasElementInContainment(problem,interpretation);
50120 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
50121 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EStringToStringMapEntry class");
50122 find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,newObject);
50123 find mayExist(problem, interpretation, newObject);
50124 neg find mustExist(problem, interpretation, newObject);
50125}
50126pattern createObject_EGenericType_class_by_eGenericSuperTypes_reference_EClass(
50127 problem:LogicProblem, interpretation:PartialInterpretation,
50128 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
50129 container:DefinedElement)
50130{
50131 find interpretation(problem,interpretation);
50132 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
50133 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class");
50134 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
50135 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eGenericSuperTypes reference EClass");
50136 find mustInstanceOfEClass_class(problem,interpretation,container);
50137 find mayInstanceOfEGenericType_class(problem,interpretation,newObject);
50138 find mayInRelationeGenericSuperTypes_reference_EClass(problem,interpretation,container,newObject);
50139 find mustExist(problem, interpretation, container);
50140 neg find mustExist(problem, interpretation, newObject);
50141}
50142pattern createObject_EGenericType_class_by_eGenericExceptions_reference_EOperation(
50143 problem:LogicProblem, interpretation:PartialInterpretation,
50144 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
50145 container:DefinedElement)
50146{
50147 find interpretation(problem,interpretation);
50148 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
50149 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class");
50150 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
50151 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eGenericExceptions reference EOperation");
50152 find mustInstanceOfEOperation_class(problem,interpretation,container);
50153 find mayInstanceOfEGenericType_class(problem,interpretation,newObject);
50154 find mayInRelationeGenericExceptions_reference_EOperation(problem,interpretation,container,newObject);
50155 find mustExist(problem, interpretation, container);
50156 neg find mustExist(problem, interpretation, newObject);
50157}
50158pattern createObject_EGenericType_class_by_eGenericType_reference_ETypedElement(
50159 problem:LogicProblem, interpretation:PartialInterpretation,
50160 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
50161 container:DefinedElement)
50162{
50163 find interpretation(problem,interpretation);
50164 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
50165 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class");
50166 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
50167 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eGenericType reference ETypedElement");
50168 find mustInstanceOfETypedElement_class(problem,interpretation,container);
50169 find mayInstanceOfEGenericType_class(problem,interpretation,newObject);
50170 find mayInRelationeGenericType_reference_ETypedElement(problem,interpretation,container,newObject);
50171 find mustExist(problem, interpretation, container);
50172 neg find mustExist(problem, interpretation, newObject);
50173}
50174pattern createObject_EGenericType_class_by_eUpperBound_reference_EGenericType(
50175 problem:LogicProblem, interpretation:PartialInterpretation,
50176 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
50177 container:DefinedElement)
50178{
50179 find interpretation(problem,interpretation);
50180 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
50181 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class");
50182 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
50183 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eUpperBound reference EGenericType");
50184 find mustInstanceOfEGenericType_class(problem,interpretation,container);
50185 find mayInstanceOfEGenericType_class(problem,interpretation,newObject);
50186 find mayInRelationeUpperBound_reference_EGenericType(problem,interpretation,container,newObject);
50187 find mustExist(problem, interpretation, container);
50188 neg find mustExist(problem, interpretation, newObject);
50189}
50190pattern createObject_EGenericType_class_by_eTypeArguments_reference_EGenericType(
50191 problem:LogicProblem, interpretation:PartialInterpretation,
50192 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
50193 container:DefinedElement)
50194{
50195 find interpretation(problem,interpretation);
50196 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
50197 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class");
50198 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
50199 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eTypeArguments reference EGenericType");
50200 find mustInstanceOfEGenericType_class(problem,interpretation,container);
50201 find mayInstanceOfEGenericType_class(problem,interpretation,newObject);
50202 find mayInRelationeTypeArguments_reference_EGenericType(problem,interpretation,container,newObject);
50203 find mustExist(problem, interpretation, container);
50204 neg find mustExist(problem, interpretation, newObject);
50205}
50206pattern createObject_EGenericType_class_by_eLowerBound_reference_EGenericType(
50207 problem:LogicProblem, interpretation:PartialInterpretation,
50208 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
50209 container:DefinedElement)
50210{
50211 find interpretation(problem,interpretation);
50212 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
50213 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class");
50214 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
50215 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eLowerBound reference EGenericType");
50216 find mustInstanceOfEGenericType_class(problem,interpretation,container);
50217 find mayInstanceOfEGenericType_class(problem,interpretation,newObject);
50218 find mayInRelationeLowerBound_reference_EGenericType(problem,interpretation,container,newObject);
50219 find mustExist(problem, interpretation, container);
50220 neg find mustExist(problem, interpretation, newObject);
50221}
50222pattern createObject_EGenericType_class_by_eBounds_reference_ETypeParameter(
50223 problem:LogicProblem, interpretation:PartialInterpretation,
50224 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
50225 container:DefinedElement)
50226{
50227 find interpretation(problem,interpretation);
50228 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
50229 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class");
50230 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
50231 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eBounds reference ETypeParameter");
50232 find mustInstanceOfETypeParameter_class(problem,interpretation,container);
50233 find mayInstanceOfEGenericType_class(problem,interpretation,newObject);
50234 find mayInRelationeBounds_reference_ETypeParameter(problem,interpretation,container,newObject);
50235 find mustExist(problem, interpretation, container);
50236 neg find mustExist(problem, interpretation, newObject);
50237}
50238pattern createObject_EGenericType_class(
50239 problem:LogicProblem, interpretation:PartialInterpretation,
50240 typeInterpretation:PartialComplexTypeInterpretation)
50241{
50242 find interpretation(problem,interpretation);
50243 neg find hasElementInContainment(problem,interpretation);
50244 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
50245 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class");
50246 find mayInstanceOfEGenericType_class(problem,interpretation,newObject);
50247 find mayExist(problem, interpretation, newObject);
50248 neg find mustExist(problem, interpretation, newObject);
50249}
50250pattern createObject_EEnumLiteral_class_by_eLiterals_reference_EEnum_with_eEnum_reference_EEnumLiteral(
50251 problem:LogicProblem, interpretation:PartialInterpretation,
50252 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
50253 container:DefinedElement)
50254{
50255 find interpretation(problem,interpretation);
50256 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
50257 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EEnumLiteral class");
50258 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
50259 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eLiterals reference EEnum");
50260 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
50261 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eEnum reference EEnumLiteral");
50262 find mustInstanceOfEEnum_class(problem,interpretation,container);
50263 find mayInstanceOfEEnumLiteral_class(problem,interpretation,newObject);
50264 find mayInRelationeLiterals_reference_EEnum(problem,interpretation,container,newObject);
50265 find mustExist(problem, interpretation, container);
50266 neg find mustExist(problem, interpretation, newObject);
50267}
50268pattern createObject_EEnumLiteral_class(
50269 problem:LogicProblem, interpretation:PartialInterpretation,
50270 typeInterpretation:PartialComplexTypeInterpretation)
50271{
50272 find interpretation(problem,interpretation);
50273 neg find hasElementInContainment(problem,interpretation);
50274 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
50275 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EEnumLiteral class");
50276 find mayInstanceOfEEnumLiteral_class(problem,interpretation,newObject);
50277 find mayExist(problem, interpretation, newObject);
50278 neg find mustExist(problem, interpretation, newObject);
50279}
50280pattern createObject_ETypeParameter_class_by_eTypeParameters_reference_EClassifier(
50281 problem:LogicProblem, interpretation:PartialInterpretation,
50282 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
50283 container:DefinedElement)
50284{
50285 find interpretation(problem,interpretation);
50286 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
50287 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"ETypeParameter class");
50288 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
50289 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eTypeParameters reference EClassifier");
50290 find mustInstanceOfEClassifier_class(problem,interpretation,container);
50291 find mayInstanceOfETypeParameter_class(problem,interpretation,newObject);
50292 find mayInRelationeTypeParameters_reference_EClassifier(problem,interpretation,container,newObject);
50293 find mustExist(problem, interpretation, container);
50294 neg find mustExist(problem, interpretation, newObject);
50295}
50296pattern createObject_ETypeParameter_class_by_eTypeParameters_reference_EOperation(
50297 problem:LogicProblem, interpretation:PartialInterpretation,
50298 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
50299 container:DefinedElement)
50300{
50301 find interpretation(problem,interpretation);
50302 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
50303 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"ETypeParameter class");
50304 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
50305 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eTypeParameters reference EOperation");
50306 find mustInstanceOfEOperation_class(problem,interpretation,container);
50307 find mayInstanceOfETypeParameter_class(problem,interpretation,newObject);
50308 find mayInRelationeTypeParameters_reference_EOperation(problem,interpretation,container,newObject);
50309 find mustExist(problem, interpretation, container);
50310 neg find mustExist(problem, interpretation, newObject);
50311}
50312pattern createObject_ETypeParameter_class(
50313 problem:LogicProblem, interpretation:PartialInterpretation,
50314 typeInterpretation:PartialComplexTypeInterpretation)
50315{
50316 find interpretation(problem,interpretation);
50317 neg find hasElementInContainment(problem,interpretation);
50318 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
50319 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"ETypeParameter class");
50320 find mayInstanceOfETypeParameter_class(problem,interpretation,newObject);
50321 find mayExist(problem, interpretation, newObject);
50322 neg find mustExist(problem, interpretation, newObject);
50323}
50324pattern createObject_EAttribute_class_by_eStructuralFeatures_reference_EClass_with_eContainingClass_reference_EStructuralFeature(
50325 problem:LogicProblem, interpretation:PartialInterpretation,
50326 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
50327 container:DefinedElement)
50328{
50329 find interpretation(problem,interpretation);
50330 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
50331 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EAttribute class");
50332 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
50333 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eStructuralFeatures reference EClass");
50334 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
50335 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eContainingClass reference EStructuralFeature");
50336 find mustInstanceOfEClass_class(problem,interpretation,container);
50337 find mayInstanceOfEAttribute_class(problem,interpretation,newObject);
50338 find mayInRelationeStructuralFeatures_reference_EClass(problem,interpretation,container,newObject);
50339 find mustExist(problem, interpretation, container);
50340 neg find mustExist(problem, interpretation, newObject);
50341}
50342pattern createObject_EAttribute_class(
50343 problem:LogicProblem, interpretation:PartialInterpretation,
50344 typeInterpretation:PartialComplexTypeInterpretation)
50345{
50346 find interpretation(problem,interpretation);
50347 neg find hasElementInContainment(problem,interpretation);
50348 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
50349 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EAttribute class");
50350 find mayInstanceOfEAttribute_class(problem,interpretation,newObject);
50351 find mayExist(problem, interpretation, newObject);
50352 neg find mustExist(problem, interpretation, newObject);
50353}
50354pattern createObject_EClass_class_by_eClassifiers_reference_EPackage_with_ePackage_reference_EClassifier(
50355 problem:LogicProblem, interpretation:PartialInterpretation, 40416 problem:LogicProblem, interpretation:PartialInterpretation,
50356 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 40417 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
50357 container:DefinedElement) 40418 container:DefinedElement)
50358{ 40419{
50359 find interpretation(problem,interpretation); 40420 find interpretation(problem,interpretation);
50360 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 40421 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
50361 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EClass class"); 40422 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class");
50362 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 40423 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
50363 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eClassifiers reference EPackage"); 40424 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"terminator reference FunctionalData");
50364 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 40425 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
50365 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"ePackage reference EClassifier"); 40426 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"data reference FAMTerminator");
50366 find mustInstanceOfEPackage_class(problem,interpretation,container); 40427 find mustInstanceOfFunctionalData_class(problem,interpretation,container);
50367 find mayInstanceOfEClass_class(problem,interpretation,newObject); 40428 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject);
50368 find mayInRelationeClassifiers_reference_EPackage(problem,interpretation,container,newObject); 40429 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,container,newObject);
50369 find mustExist(problem, interpretation, container); 40430 find mustExist(problem, interpretation, container);
50370 neg find mustExist(problem, interpretation, newObject); 40431 neg find mustExist(problem, interpretation, newObject);
50371} 40432}
50372pattern createObject_EClass_class( 40433pattern createObject_FAMTerminator_class(
50373 problem:LogicProblem, interpretation:PartialInterpretation, 40434 problem:LogicProblem, interpretation:PartialInterpretation,
50374 typeInterpretation:PartialComplexTypeInterpretation) 40435 typeInterpretation:PartialComplexTypeInterpretation)
50375{ 40436{
50376 find interpretation(problem,interpretation); 40437 find interpretation(problem,interpretation);
50377 neg find hasElementInContainment(problem,interpretation); 40438 neg find hasElementInContainment(problem,interpretation);
50378 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 40439 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
50379 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EClass class"); 40440 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class");
50380 find mayInstanceOfEClass_class(problem,interpretation,newObject); 40441 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject);
50381 find mayExist(problem, interpretation, newObject); 40442 find mayExist(problem, interpretation, newObject);
50382 neg find mustExist(problem, interpretation, newObject); 40443 neg find mustExist(problem, interpretation, newObject);
50383} 40444}
50384pattern createObject_EDataType_class_by_eClassifiers_reference_EPackage_with_ePackage_reference_EClassifier( 40445pattern createObject_FunctionalInput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData(
50385 problem:LogicProblem, interpretation:PartialInterpretation, 40446 problem:LogicProblem, interpretation:PartialInterpretation,
50386 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 40447 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
50387 container:DefinedElement) 40448 container:DefinedElement)
50388{ 40449{
50389 find interpretation(problem,interpretation); 40450 find interpretation(problem,interpretation);
50390 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 40451 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
50391 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EDataType class"); 40452 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class");
50392 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 40453 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
50393 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eClassifiers reference EPackage"); 40454 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface");
50394 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 40455 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
50395 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"ePackage reference EClassifier"); 40456 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData");
50396 find mustInstanceOfEPackage_class(problem,interpretation,container); 40457 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container);
50397 find mayInstanceOfEDataType_class(problem,interpretation,newObject); 40458 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
50398 find mayInRelationeClassifiers_reference_EPackage(problem,interpretation,container,newObject); 40459 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject);
50399 find mustExist(problem, interpretation, container); 40460 find mustExist(problem, interpretation, container);
50400 neg find mustExist(problem, interpretation, newObject); 40461 neg find mustExist(problem, interpretation, newObject);
50401} 40462}
50402pattern createObject_EDataType_class( 40463pattern createObject_FunctionalInput_class(
50403 problem:LogicProblem, interpretation:PartialInterpretation, 40464 problem:LogicProblem, interpretation:PartialInterpretation,
50404 typeInterpretation:PartialComplexTypeInterpretation) 40465 typeInterpretation:PartialComplexTypeInterpretation)
50405{ 40466{
50406 find interpretation(problem,interpretation); 40467 find interpretation(problem,interpretation);
50407 neg find hasElementInContainment(problem,interpretation); 40468 neg find hasElementInContainment(problem,interpretation);
50408 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 40469 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
50409 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EDataType class"); 40470 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class");
50410 find mayInstanceOfEDataType_class(problem,interpretation,newObject); 40471 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
50411 find mayExist(problem, interpretation, newObject); 40472 find mayExist(problem, interpretation, newObject);
50412 neg find mustExist(problem, interpretation, newObject); 40473 neg find mustExist(problem, interpretation, newObject);
50413} 40474}
50414pattern createObject_EOperation_class_by_eOperations_reference_EClass_with_eContainingClass_reference_EOperation( 40475pattern createObject_Function_class_by_rootElements_reference_FunctionalArchitectureModel(
50415 problem:LogicProblem, interpretation:PartialInterpretation, 40476 problem:LogicProblem, interpretation:PartialInterpretation,
50416 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 40477 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
50417 container:DefinedElement) 40478 container:DefinedElement)
50418{ 40479{
50419 find interpretation(problem,interpretation); 40480 find interpretation(problem,interpretation);
50420 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 40481 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
50421 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EOperation class"); 40482 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class");
50422 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 40483 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
50423 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eOperations reference EClass"); 40484 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"rootElements reference FunctionalArchitectureModel");
50424 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 40485 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,container);
50425 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eContainingClass reference EOperation"); 40486 find mayInstanceOfFunction_class(problem,interpretation,newObject);
50426 find mustInstanceOfEClass_class(problem,interpretation,container); 40487 find mayInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,container,newObject);
50427 find mayInstanceOfEOperation_class(problem,interpretation,newObject);
50428 find mayInRelationeOperations_reference_EClass(problem,interpretation,container,newObject);
50429 find mustExist(problem, interpretation, container); 40488 find mustExist(problem, interpretation, container);
50430 neg find mustExist(problem, interpretation, newObject); 40489 neg find mustExist(problem, interpretation, newObject);
50431} 40490}
50432pattern createObject_EOperation_class( 40491pattern createObject_Function_class_by_subElements_reference_Function_with_parent_reference_FunctionalElement(
50433 problem:LogicProblem, interpretation:PartialInterpretation,
50434 typeInterpretation:PartialComplexTypeInterpretation)
50435{
50436 find interpretation(problem,interpretation);
50437 neg find hasElementInContainment(problem,interpretation);
50438 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
50439 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EOperation class");
50440 find mayInstanceOfEOperation_class(problem,interpretation,newObject);
50441 find mayExist(problem, interpretation, newObject);
50442 neg find mustExist(problem, interpretation, newObject);
50443}
50444pattern createObject_EAnnotation_class_by_eAnnotations_reference_EModelElement_with_eModelElement_reference_EAnnotation(
50445 problem:LogicProblem, interpretation:PartialInterpretation, 40492 problem:LogicProblem, interpretation:PartialInterpretation,
50446 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 40493 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
50447 container:DefinedElement) 40494 container:DefinedElement)
50448{ 40495{
50449 find interpretation(problem,interpretation); 40496 find interpretation(problem,interpretation);
50450 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 40497 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
50451 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EAnnotation class"); 40498 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class");
50452 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 40499 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
50453 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eAnnotations reference EModelElement"); 40500 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"subElements reference Function");
50454 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 40501 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
50455 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eModelElement reference EAnnotation"); 40502 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"parent reference FunctionalElement");
50456 find mustInstanceOfEModelElement_class(problem,interpretation,container); 40503 find mustInstanceOfFunction_class(problem,interpretation,container);
50457 find mayInstanceOfEAnnotation_class(problem,interpretation,newObject); 40504 find mayInstanceOfFunction_class(problem,interpretation,newObject);
50458 find mayInRelationeAnnotations_reference_EModelElement(problem,interpretation,container,newObject); 40505 find mayInRelationsubElements_reference_Function(problem,interpretation,container,newObject);
50459 find mustExist(problem, interpretation, container); 40506 find mustExist(problem, interpretation, container);
50460 neg find mustExist(problem, interpretation, newObject); 40507 neg find mustExist(problem, interpretation, newObject);
50461} 40508}
50462pattern createObject_EAnnotation_class( 40509pattern createObject_Function_class(
50463 problem:LogicProblem, interpretation:PartialInterpretation, 40510 problem:LogicProblem, interpretation:PartialInterpretation,
50464 typeInterpretation:PartialComplexTypeInterpretation) 40511 typeInterpretation:PartialComplexTypeInterpretation)
50465{ 40512{
50466 find interpretation(problem,interpretation); 40513 find interpretation(problem,interpretation);
50467 neg find hasElementInContainment(problem,interpretation); 40514 neg find hasElementInContainment(problem,interpretation);
50468 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 40515 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
50469 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EAnnotation class"); 40516 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class");
50470 find mayInstanceOfEAnnotation_class(problem,interpretation,newObject); 40517 find mayInstanceOfFunction_class(problem,interpretation,newObject);
50471 find mayExist(problem, interpretation, newObject); 40518 find mayExist(problem, interpretation, newObject);
50472 neg find mustExist(problem, interpretation, newObject); 40519 neg find mustExist(problem, interpretation, newObject);
50473} 40520}
50474pattern createObject_EParameter_class_by_eParameters_reference_EOperation_with_eOperation_reference_EParameter( 40521pattern createObject_InformationLink_class_by_outgoingLinks_reference_FunctionalOutput_with_from_reference_InformationLink(
50475 problem:LogicProblem, interpretation:PartialInterpretation, 40522 problem:LogicProblem, interpretation:PartialInterpretation,
50476 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 40523 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
50477 container:DefinedElement) 40524 container:DefinedElement)
50478{ 40525{
50479 find interpretation(problem,interpretation); 40526 find interpretation(problem,interpretation);
50480 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 40527 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
50481 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EParameter class"); 40528 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class");
50482 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 40529 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
50483 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eParameters reference EOperation"); 40530 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"outgoingLinks reference FunctionalOutput");
50484 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 40531 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
50485 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eOperation reference EParameter"); 40532 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"from reference InformationLink");
50486 find mustInstanceOfEOperation_class(problem,interpretation,container); 40533 find mustInstanceOfFunctionalOutput_class(problem,interpretation,container);
50487 find mayInstanceOfEParameter_class(problem,interpretation,newObject); 40534 find mayInstanceOfInformationLink_class(problem,interpretation,newObject);
50488 find mayInRelationeParameters_reference_EOperation(problem,interpretation,container,newObject); 40535 find mayInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,container,newObject);
50489 find mustExist(problem, interpretation, container);
50490 neg find mustExist(problem, interpretation, newObject);
50491}
50492pattern createObject_EParameter_class(
50493 problem:LogicProblem, interpretation:PartialInterpretation,
50494 typeInterpretation:PartialComplexTypeInterpretation)
50495{
50496 find interpretation(problem,interpretation);
50497 neg find hasElementInContainment(problem,interpretation);
50498 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
50499 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EParameter class");
50500 find mayInstanceOfEParameter_class(problem,interpretation,newObject);
50501 find mayExist(problem, interpretation, newObject);
50502 neg find mustExist(problem, interpretation, newObject);
50503}
50504pattern createObject_EObject_class_by_contents_reference_EAnnotation(
50505 problem:LogicProblem, interpretation:PartialInterpretation,
50506 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
50507 container:DefinedElement)
50508{
50509 find interpretation(problem,interpretation);
50510 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
50511 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EObject class");
50512 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
50513 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"contents reference EAnnotation");
50514 find mustInstanceOfEAnnotation_class(problem,interpretation,container);
50515 find mayInstanceOfEObject_class(problem,interpretation,newObject);
50516 find mayInRelationcontents_reference_EAnnotation(problem,interpretation,container,newObject);
50517 find mustExist(problem, interpretation, container); 40536 find mustExist(problem, interpretation, container);
50518 neg find mustExist(problem, interpretation, newObject); 40537 neg find mustExist(problem, interpretation, newObject);
50519} 40538}
50520pattern createObject_EObject_class( 40539pattern createObject_InformationLink_class(
50521 problem:LogicProblem, interpretation:PartialInterpretation, 40540 problem:LogicProblem, interpretation:PartialInterpretation,
50522 typeInterpretation:PartialComplexTypeInterpretation) 40541 typeInterpretation:PartialComplexTypeInterpretation)
50523{ 40542{
50524 find interpretation(problem,interpretation); 40543 find interpretation(problem,interpretation);
50525 neg find hasElementInContainment(problem,interpretation); 40544 neg find hasElementInContainment(problem,interpretation);
50526 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 40545 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
50527 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EObject class"); 40546 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class");
50528 find mayInstanceOfEObject_class(problem,interpretation,newObject); 40547 find mayInstanceOfInformationLink_class(problem,interpretation,newObject);
50529 find mayExist(problem, interpretation, newObject); 40548 find mayExist(problem, interpretation, newObject);
50530 neg find mustExist(problem, interpretation, newObject); 40549 neg find mustExist(problem, interpretation, newObject);
50531} 40550}
50532pattern createObject_EReference_class_by_eStructuralFeatures_reference_EClass_with_eContainingClass_reference_EStructuralFeature( 40551pattern createObject_FunctionalInterface_class_by_interface_reference_FunctionalElement_with_element_reference_FunctionalInterface(
50533 problem:LogicProblem, interpretation:PartialInterpretation, 40552 problem:LogicProblem, interpretation:PartialInterpretation,
50534 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 40553 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
50535 container:DefinedElement) 40554 container:DefinedElement)
50536{ 40555{
50537 find interpretation(problem,interpretation); 40556 find interpretation(problem,interpretation);
50538 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 40557 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
50539 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EReference class"); 40558 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
50540 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 40559 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
50541 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eStructuralFeatures reference EClass"); 40560 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"interface reference FunctionalElement");
50542 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 40561 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
50543 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eContainingClass reference EStructuralFeature"); 40562 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"element reference FunctionalInterface");
50544 find mustInstanceOfEClass_class(problem,interpretation,container); 40563 find mustInstanceOfFunctionalElement_class(problem,interpretation,container);
50545 find mayInstanceOfEReference_class(problem,interpretation,newObject); 40564 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
50546 find mayInRelationeStructuralFeatures_reference_EClass(problem,interpretation,container,newObject); 40565 find mayInRelationinterface_reference_FunctionalElement(problem,interpretation,container,newObject);
50547 find mustExist(problem, interpretation, container); 40566 find mustExist(problem, interpretation, container);
50548 neg find mustExist(problem, interpretation, newObject); 40567 neg find mustExist(problem, interpretation, newObject);
50549} 40568}
50550pattern createObject_EReference_class( 40569pattern createObject_FunctionalInterface_class(
50551 problem:LogicProblem, interpretation:PartialInterpretation, 40570 problem:LogicProblem, interpretation:PartialInterpretation,
50552 typeInterpretation:PartialComplexTypeInterpretation) 40571 typeInterpretation:PartialComplexTypeInterpretation)
50553{ 40572{
50554 find interpretation(problem,interpretation); 40573 find interpretation(problem,interpretation);
50555 neg find hasElementInContainment(problem,interpretation); 40574 neg find hasElementInContainment(problem,interpretation);
50556 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 40575 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
50557 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EReference class"); 40576 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
50558 find mayInstanceOfEReference_class(problem,interpretation,newObject); 40577 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
50559 find mayExist(problem, interpretation, newObject); 40578 find mayExist(problem, interpretation, newObject);
50560 neg find mustExist(problem, interpretation, newObject); 40579 neg find mustExist(problem, interpretation, newObject);
50561} 40580}
50562pattern createObject_EEnum_class_by_eClassifiers_reference_EPackage_with_ePackage_reference_EClassifier( 40581pattern createObject_FunctionalOutput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData(
50563 problem:LogicProblem, interpretation:PartialInterpretation, 40582 problem:LogicProblem, interpretation:PartialInterpretation,
50564 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 40583 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
50565 container:DefinedElement) 40584 container:DefinedElement)
50566{ 40585{
50567 find interpretation(problem,interpretation); 40586 find interpretation(problem,interpretation);
50568 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 40587 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
50569 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EEnum class"); 40588 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class");
50570 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 40589 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
50571 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eClassifiers reference EPackage"); 40590 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface");
50572 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 40591 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
50573 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"ePackage reference EClassifier"); 40592 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData");
50574 find mustInstanceOfEPackage_class(problem,interpretation,container); 40593 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container);
50575 find mayInstanceOfEEnum_class(problem,interpretation,newObject); 40594 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject);
50576 find mayInRelationeClassifiers_reference_EPackage(problem,interpretation,container,newObject); 40595 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject);
50577 find mustExist(problem, interpretation, container); 40596 find mustExist(problem, interpretation, container);
50578 neg find mustExist(problem, interpretation, newObject); 40597 neg find mustExist(problem, interpretation, newObject);
50579} 40598}
50580pattern createObject_EEnum_class( 40599pattern createObject_FunctionalOutput_class(
50581 problem:LogicProblem, interpretation:PartialInterpretation, 40600 problem:LogicProblem, interpretation:PartialInterpretation,
50582 typeInterpretation:PartialComplexTypeInterpretation) 40601 typeInterpretation:PartialComplexTypeInterpretation)
50583{ 40602{
50584 find interpretation(problem,interpretation); 40603 find interpretation(problem,interpretation);
50585 neg find hasElementInContainment(problem,interpretation); 40604 neg find hasElementInContainment(problem,interpretation);
50586 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 40605 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
50587 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EEnum class"); 40606 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class");
50588 find mayInstanceOfEEnum_class(problem,interpretation,newObject); 40607 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject);
50589 find mayExist(problem, interpretation, newObject); 40608 find mayExist(problem, interpretation, newObject);
50590 neg find mustExist(problem, interpretation, newObject); 40609 neg find mustExist(problem, interpretation, newObject);
50591} 40610}
50592pattern createObject_EPackage_class_UndefinedPart_by_eSubpackages_reference_EPackage_with_eSuperPackage_reference_EPackage( 40611pattern createObject_FunctionalArchitectureModel_class_UndefinedPart(
50593 problem:LogicProblem, interpretation:PartialInterpretation,
50594 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
50595 container:DefinedElement)
50596{
50597 find interpretation(problem,interpretation);
50598 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
50599 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EPackage class UndefinedPart");
50600 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
50601 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eSubpackages reference EPackage");
50602 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
50603 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eSuperPackage reference EPackage");
50604 find mustInstanceOfEPackage_class(problem,interpretation,container);
50605 find mayInstanceOfEPackage_class_UndefinedPart(problem,interpretation,newObject);
50606 find mayInRelationeSubpackages_reference_EPackage(problem,interpretation,container,newObject);
50607 find mustExist(problem, interpretation, container);
50608 neg find mustExist(problem, interpretation, newObject);
50609}
50610pattern createObject_EPackage_class_UndefinedPart(
50611 problem:LogicProblem, interpretation:PartialInterpretation, 40612 problem:LogicProblem, interpretation:PartialInterpretation,
50612 typeInterpretation:PartialComplexTypeInterpretation) 40613 typeInterpretation:PartialComplexTypeInterpretation)
50613{ 40614{
50614 find interpretation(problem,interpretation); 40615 find interpretation(problem,interpretation);
50615 neg find hasElementInContainment(problem,interpretation); 40616 neg find hasElementInContainment(problem,interpretation);
50616 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 40617 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
50617 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EPackage class UndefinedPart"); 40618 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalArchitectureModel class UndefinedPart");
50618 find mayInstanceOfEPackage_class_UndefinedPart(problem,interpretation,newObject); 40619 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,newObject);
50619 find mayExist(problem, interpretation, newObject); 40620 find mayExist(problem, interpretation, newObject);
50620 neg find mustExist(problem, interpretation, newObject); 40621 neg find mustExist(problem, interpretation, newObject);
50621} 40622}
@@ -50623,950 +40624,135 @@ pattern createObject_EPackage_class_UndefinedPart(
50623////////// 40624//////////
50624// 4.2 Type refinement 40625// 4.2 Type refinement
50625////////// 40626//////////
50626pattern refineTypeTo_EStringToStringMapEntry_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 40627pattern refineTypeTo_FAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
50627 find interpretation(problem,interpretation);
50628 PartialInterpretation.newElements(interpretation,element);
50629 find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
50630 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
50631 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
50632 neg find mustInstanceOfEModelElement_class(problem,interpretation,element);
50633 neg find mustInstanceOfEObject_class(problem,interpretation,element);
50634}
50635pattern refineTypeTo_EGenericType_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
50636 find interpretation(problem,interpretation);
50637 PartialInterpretation.newElements(interpretation,element);
50638 find mayInstanceOfEGenericType_class(problem,interpretation,element);
50639 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
50640 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
50641 neg find mustInstanceOfEModelElement_class(problem,interpretation,element);
50642 neg find mustInstanceOfEObject_class(problem,interpretation,element);
50643}
50644pattern refineTypeTo_EEnumLiteral_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
50645 find interpretation(problem,interpretation);
50646 PartialInterpretation.newElements(interpretation,element);
50647 find mayInstanceOfEEnumLiteral_class(problem,interpretation,element);
50648 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
50649 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
50650 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
50651 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
50652 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
50653 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
50654 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
50655 neg find mustInstanceOfEObject_class(problem,interpretation,element);
50656 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
50657}
50658pattern refineTypeTo_ETypeParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
50659 find interpretation(problem,interpretation);
50660 PartialInterpretation.newElements(interpretation,element);
50661 find mayInstanceOfETypeParameter_class(problem,interpretation,element);
50662 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
50663 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
50664 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
50665 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
50666 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
50667 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
50668 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
50669 neg find mustInstanceOfEObject_class(problem,interpretation,element);
50670 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
50671}
50672pattern refineTypeTo_EAttribute_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
50673 find interpretation(problem,interpretation);
50674 PartialInterpretation.newElements(interpretation,element);
50675 find mayInstanceOfEAttribute_class(problem,interpretation,element);
50676 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
50677 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
50678 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
50679 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
50680 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
50681 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
50682 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
50683 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
50684 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
50685 neg find mustInstanceOfEObject_class(problem,interpretation,element);
50686 neg find mustInstanceOfEReference_class(problem,interpretation,element);
50687 neg find mustInstanceOfEAttribute_class(problem,interpretation,element);
50688}
50689pattern refineTypeTo_EClass_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
50690 find interpretation(problem,interpretation);
50691 PartialInterpretation.newElements(interpretation,element);
50692 find mayInstanceOfEClass_class(problem,interpretation,element);
50693 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
50694 neg find mustInstanceOfEDataType_class(problem,interpretation,element);
50695 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
50696 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
50697 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
50698 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
50699 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
50700 neg find mustInstanceOfEObject_class(problem,interpretation,element);
50701 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
50702 neg find mustInstanceOfEClass_class(problem,interpretation,element);
50703}
50704pattern refineTypeTo_EDataType_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
50705 find interpretation(problem,interpretation);
50706 PartialInterpretation.newElements(interpretation,element);
50707 find mayInstanceOfEDataType_class(problem,interpretation,element);
50708 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
50709 neg find mustInstanceOfEDataType_class(problem,interpretation,element);
50710 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
50711 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
50712 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
50713 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
50714 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
50715 neg find mustInstanceOfEObject_class(problem,interpretation,element);
50716 neg find mustInstanceOfEEnum_class(problem,interpretation,element);
50717 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
50718 neg find mustInstanceOfEClass_class(problem,interpretation,element);
50719}
50720pattern refineTypeTo_EOperation_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
50721 find interpretation(problem,interpretation);
50722 PartialInterpretation.newElements(interpretation,element);
50723 find mayInstanceOfEOperation_class(problem,interpretation,element);
50724 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
50725 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
50726 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
50727 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
50728 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
50729 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
50730 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
50731 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
50732 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
50733 neg find mustInstanceOfEObject_class(problem,interpretation,element);
50734 neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element);
50735}
50736pattern refineTypeTo_EAnnotation_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
50737 find interpretation(problem,interpretation);
50738 PartialInterpretation.newElements(interpretation,element);
50739 find mayInstanceOfEAnnotation_class(problem,interpretation,element);
50740 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
50741 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
50742 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
50743 neg find mustInstanceOfEObject_class(problem,interpretation,element);
50744 neg find mustInstanceOfENamedElement_class(problem,interpretation,element);
50745}
50746pattern refineTypeTo_EParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
50747 find interpretation(problem,interpretation);
50748 PartialInterpretation.newElements(interpretation,element);
50749 find mayInstanceOfEParameter_class(problem,interpretation,element);
50750 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
50751 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
50752 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
50753 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
50754 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
50755 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
50756 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
50757 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
50758 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
50759 neg find mustInstanceOfEObject_class(problem,interpretation,element);
50760 neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element);
50761}
50762pattern refineTypeTo_EObject_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
50763 find interpretation(problem,interpretation);
50764 PartialInterpretation.newElements(interpretation,element);
50765 find mayInstanceOfEObject_class(problem,interpretation,element);
50766 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
50767 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
50768 neg find mustInstanceOfEModelElement_class(problem,interpretation,element);
50769 neg find mustInstanceOfEObject_class(problem,interpretation,element);
50770}
50771pattern refineTypeTo_EReference_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
50772 find interpretation(problem,interpretation);
50773 PartialInterpretation.newElements(interpretation,element);
50774 find mayInstanceOfEReference_class(problem,interpretation,element);
50775 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
50776 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
50777 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
50778 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
50779 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
50780 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
50781 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
50782 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
50783 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
50784 neg find mustInstanceOfEObject_class(problem,interpretation,element);
50785 neg find mustInstanceOfEReference_class(problem,interpretation,element);
50786 neg find mustInstanceOfEAttribute_class(problem,interpretation,element);
50787}
50788pattern refineTypeTo_EEnum_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
50789 find interpretation(problem,interpretation);
50790 PartialInterpretation.newElements(interpretation,element);
50791 find mayInstanceOfEEnum_class(problem,interpretation,element);
50792 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
50793 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
50794 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
50795 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
50796 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
50797 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
50798 neg find mustInstanceOfEObject_class(problem,interpretation,element);
50799 neg find mustInstanceOfEEnum_class(problem,interpretation,element);
50800 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
50801 neg find mustInstanceOfEClass_class(problem,interpretation,element);
50802}
50803pattern refineTypeTo_EPackage_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
50804 find interpretation(problem,interpretation);
50805 PartialInterpretation.newElements(interpretation,element);
50806 find mayInstanceOfEPackage_class_UndefinedPart(problem,interpretation,element);
50807 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
50808 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
50809 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
50810 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
50811 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
50812 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
50813 neg find mustInstanceOfEObject_class(problem,interpretation,element);
50814 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
50815 neg find mustInstanceOfEPackage_class_UndefinedPart(problem,interpretation,element);
50816}
50817
50818//////////
50819// 4.3 Relation refinement
50820//////////
50821pattern refineRelation_eAttributeType_reference_EAttribute(
50822 problem:LogicProblem, interpretation:PartialInterpretation,
50823 relationIterpretation:PartialRelationInterpretation,
50824 from: DefinedElement, to: DefinedElement)
50825{
50826 find interpretation(problem,interpretation);
50827 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
50828 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAttributeType reference EAttribute");
50829 find mustExist(problem, interpretation, from);
50830 find mustExist(problem, interpretation, to);
50831 find mustInstanceOfEAttribute_class(problem,interpretation,from);
50832 find mustInstanceOfEDataType_class(problem,interpretation,to);
50833 find mayInRelationeAttributeType_reference_EAttribute(problem,interpretation,from,to);
50834 neg find mustInRelationeAttributeType_reference_EAttribute(problem,interpretation,from,to);
50835}
50836pattern refineRelation_references_reference_EAnnotation(
50837 problem:LogicProblem, interpretation:PartialInterpretation,
50838 relationIterpretation:PartialRelationInterpretation,
50839 from: DefinedElement, to: DefinedElement)
50840{
50841 find interpretation(problem,interpretation);
50842 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
50843 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"references reference EAnnotation");
50844 find mustExist(problem, interpretation, from);
50845 find mustExist(problem, interpretation, to);
50846 find mustInstanceOfEAnnotation_class(problem,interpretation,from);
50847 find mustInstanceOfEObject_class(problem,interpretation,to);
50848 find mayInRelationreferences_reference_EAnnotation(problem,interpretation,from,to);
50849 neg find mustInRelationreferences_reference_EAnnotation(problem,interpretation,from,to);
50850}
50851pattern refineRelation_eSuperTypes_reference_EClass(
50852 problem:LogicProblem, interpretation:PartialInterpretation,
50853 relationIterpretation:PartialRelationInterpretation,
50854 from: DefinedElement, to: DefinedElement)
50855{
50856 find interpretation(problem,interpretation);
50857 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
50858 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eSuperTypes reference EClass");
50859 find mustExist(problem, interpretation, from);
50860 find mustExist(problem, interpretation, to);
50861 find mustInstanceOfEClass_class(problem,interpretation,from);
50862 find mustInstanceOfEClass_class(problem,interpretation,to);
50863 find mayInRelationeSuperTypes_reference_EClass(problem,interpretation,from,to);
50864 neg find mustInRelationeSuperTypes_reference_EClass(problem,interpretation,from,to);
50865}
50866pattern refineRelation_eAllAttributes_reference_EClass(
50867 problem:LogicProblem, interpretation:PartialInterpretation,
50868 relationIterpretation:PartialRelationInterpretation,
50869 from: DefinedElement, to: DefinedElement)
50870{
50871 find interpretation(problem,interpretation);
50872 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
50873 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllAttributes reference EClass");
50874 find mustExist(problem, interpretation, from);
50875 find mustExist(problem, interpretation, to);
50876 find mustInstanceOfEClass_class(problem,interpretation,from);
50877 find mustInstanceOfEAttribute_class(problem,interpretation,to);
50878 find mayInRelationeAllAttributes_reference_EClass(problem,interpretation,from,to);
50879 neg find mustInRelationeAllAttributes_reference_EClass(problem,interpretation,from,to);
50880}
50881pattern refineRelation_eAllReferences_reference_EClass(
50882 problem:LogicProblem, interpretation:PartialInterpretation,
50883 relationIterpretation:PartialRelationInterpretation,
50884 from: DefinedElement, to: DefinedElement)
50885{
50886 find interpretation(problem,interpretation);
50887 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
50888 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllReferences reference EClass");
50889 find mustExist(problem, interpretation, from);
50890 find mustExist(problem, interpretation, to);
50891 find mustInstanceOfEClass_class(problem,interpretation,from);
50892 find mustInstanceOfEReference_class(problem,interpretation,to);
50893 find mayInRelationeAllReferences_reference_EClass(problem,interpretation,from,to);
50894 neg find mustInRelationeAllReferences_reference_EClass(problem,interpretation,from,to);
50895}
50896pattern refineRelation_eReferences_reference_EClass(
50897 problem:LogicProblem, interpretation:PartialInterpretation,
50898 relationIterpretation:PartialRelationInterpretation,
50899 from: DefinedElement, to: DefinedElement)
50900{
50901 find interpretation(problem,interpretation);
50902 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
50903 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eReferences reference EClass");
50904 find mustExist(problem, interpretation, from);
50905 find mustExist(problem, interpretation, to);
50906 find mustInstanceOfEClass_class(problem,interpretation,from);
50907 find mustInstanceOfEReference_class(problem,interpretation,to);
50908 find mayInRelationeReferences_reference_EClass(problem,interpretation,from,to);
50909 neg find mustInRelationeReferences_reference_EClass(problem,interpretation,from,to);
50910}
50911pattern refineRelation_eAttributes_reference_EClass(
50912 problem:LogicProblem, interpretation:PartialInterpretation,
50913 relationIterpretation:PartialRelationInterpretation,
50914 from: DefinedElement, to: DefinedElement)
50915{
50916 find interpretation(problem,interpretation);
50917 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
50918 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAttributes reference EClass");
50919 find mustExist(problem, interpretation, from);
50920 find mustExist(problem, interpretation, to);
50921 find mustInstanceOfEClass_class(problem,interpretation,from);
50922 find mustInstanceOfEAttribute_class(problem,interpretation,to);
50923 find mayInRelationeAttributes_reference_EClass(problem,interpretation,from,to);
50924 neg find mustInRelationeAttributes_reference_EClass(problem,interpretation,from,to);
50925}
50926pattern refineRelation_eAllContainments_reference_EClass(
50927 problem:LogicProblem, interpretation:PartialInterpretation,
50928 relationIterpretation:PartialRelationInterpretation,
50929 from: DefinedElement, to: DefinedElement)
50930{
50931 find interpretation(problem,interpretation);
50932 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
50933 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllContainments reference EClass");
50934 find mustExist(problem, interpretation, from);
50935 find mustExist(problem, interpretation, to);
50936 find mustInstanceOfEClass_class(problem,interpretation,from);
50937 find mustInstanceOfEReference_class(problem,interpretation,to);
50938 find mayInRelationeAllContainments_reference_EClass(problem,interpretation,from,to);
50939 neg find mustInRelationeAllContainments_reference_EClass(problem,interpretation,from,to);
50940}
50941pattern refineRelation_eAllOperations_reference_EClass(
50942 problem:LogicProblem, interpretation:PartialInterpretation,
50943 relationIterpretation:PartialRelationInterpretation,
50944 from: DefinedElement, to: DefinedElement)
50945{
50946 find interpretation(problem,interpretation);
50947 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
50948 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllOperations reference EClass");
50949 find mustExist(problem, interpretation, from);
50950 find mustExist(problem, interpretation, to);
50951 find mustInstanceOfEClass_class(problem,interpretation,from);
50952 find mustInstanceOfEOperation_class(problem,interpretation,to);
50953 find mayInRelationeAllOperations_reference_EClass(problem,interpretation,from,to);
50954 neg find mustInRelationeAllOperations_reference_EClass(problem,interpretation,from,to);
50955}
50956pattern refineRelation_eAllStructuralFeatures_reference_EClass(
50957 problem:LogicProblem, interpretation:PartialInterpretation,
50958 relationIterpretation:PartialRelationInterpretation,
50959 from: DefinedElement, to: DefinedElement)
50960{
50961 find interpretation(problem,interpretation);
50962 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
50963 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllStructuralFeatures reference EClass");
50964 find mustExist(problem, interpretation, from);
50965 find mustExist(problem, interpretation, to);
50966 find mustInstanceOfEClass_class(problem,interpretation,from);
50967 find mustInstanceOfEStructuralFeature_class(problem,interpretation,to);
50968 find mayInRelationeAllStructuralFeatures_reference_EClass(problem,interpretation,from,to);
50969 neg find mustInRelationeAllStructuralFeatures_reference_EClass(problem,interpretation,from,to);
50970}
50971pattern refineRelation_eAllSuperTypes_reference_EClass(
50972 problem:LogicProblem, interpretation:PartialInterpretation,
50973 relationIterpretation:PartialRelationInterpretation,
50974 from: DefinedElement, to: DefinedElement)
50975{
50976 find interpretation(problem,interpretation);
50977 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
50978 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllSuperTypes reference EClass");
50979 find mustExist(problem, interpretation, from);
50980 find mustExist(problem, interpretation, to);
50981 find mustInstanceOfEClass_class(problem,interpretation,from);
50982 find mustInstanceOfEClass_class(problem,interpretation,to);
50983 find mayInRelationeAllSuperTypes_reference_EClass(problem,interpretation,from,to);
50984 neg find mustInRelationeAllSuperTypes_reference_EClass(problem,interpretation,from,to);
50985}
50986pattern refineRelation_eIDAttribute_reference_EClass(
50987 problem:LogicProblem, interpretation:PartialInterpretation,
50988 relationIterpretation:PartialRelationInterpretation,
50989 from: DefinedElement, to: DefinedElement)
50990{
50991 find interpretation(problem,interpretation);
50992 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
50993 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eIDAttribute reference EClass");
50994 find mustExist(problem, interpretation, from);
50995 find mustExist(problem, interpretation, to);
50996 find mustInstanceOfEClass_class(problem,interpretation,from);
50997 find mustInstanceOfEAttribute_class(problem,interpretation,to);
50998 find mayInRelationeIDAttribute_reference_EClass(problem,interpretation,from,to);
50999 neg find mustInRelationeIDAttribute_reference_EClass(problem,interpretation,from,to);
51000}
51001pattern refineRelation_eAllGenericSuperTypes_reference_EClass(
51002 problem:LogicProblem, interpretation:PartialInterpretation,
51003 relationIterpretation:PartialRelationInterpretation,
51004 from: DefinedElement, to: DefinedElement)
51005{
51006 find interpretation(problem,interpretation);
51007 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
51008 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllGenericSuperTypes reference EClass");
51009 find mustExist(problem, interpretation, from);
51010 find mustExist(problem, interpretation, to);
51011 find mustInstanceOfEClass_class(problem,interpretation,from);
51012 find mustInstanceOfEGenericType_class(problem,interpretation,to);
51013 find mayInRelationeAllGenericSuperTypes_reference_EClass(problem,interpretation,from,to);
51014 neg find mustInRelationeAllGenericSuperTypes_reference_EClass(problem,interpretation,from,to);
51015}
51016pattern refineRelation_eExceptions_reference_EOperation(
51017 problem:LogicProblem, interpretation:PartialInterpretation,
51018 relationIterpretation:PartialRelationInterpretation,
51019 from: DefinedElement, to: DefinedElement)
51020{
51021 find interpretation(problem,interpretation);
51022 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
51023 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eExceptions reference EOperation");
51024 find mustExist(problem, interpretation, from);
51025 find mustExist(problem, interpretation, to);
51026 find mustInstanceOfEOperation_class(problem,interpretation,from);
51027 find mustInstanceOfEClassifier_class(problem,interpretation,to);
51028 find mayInRelationeExceptions_reference_EOperation(problem,interpretation,from,to);
51029 neg find mustInRelationeExceptions_reference_EOperation(problem,interpretation,from,to);
51030}
51031pattern refineRelation_eOpposite_reference_EReference(
51032 problem:LogicProblem, interpretation:PartialInterpretation,
51033 relationIterpretation:PartialRelationInterpretation,
51034 from: DefinedElement, to: DefinedElement)
51035{
51036 find interpretation(problem,interpretation);
51037 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
51038 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eOpposite reference EReference");
51039 find mustExist(problem, interpretation, from);
51040 find mustExist(problem, interpretation, to);
51041 find mustInstanceOfEReference_class(problem,interpretation,from);
51042 find mustInstanceOfEReference_class(problem,interpretation,to);
51043 find mayInRelationeOpposite_reference_EReference(problem,interpretation,from,to);
51044 neg find mustInRelationeOpposite_reference_EReference(problem,interpretation,from,to);
51045}
51046pattern refineRelation_eReferenceType_reference_EReference(
51047 problem:LogicProblem, interpretation:PartialInterpretation,
51048 relationIterpretation:PartialRelationInterpretation,
51049 from: DefinedElement, to: DefinedElement)
51050{
51051 find interpretation(problem,interpretation);
51052 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
51053 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eReferenceType reference EReference");
51054 find mustExist(problem, interpretation, from);
51055 find mustExist(problem, interpretation, to);
51056 find mustInstanceOfEReference_class(problem,interpretation,from);
51057 find mustInstanceOfEClass_class(problem,interpretation,to);
51058 find mayInRelationeReferenceType_reference_EReference(problem,interpretation,from,to);
51059 neg find mustInRelationeReferenceType_reference_EReference(problem,interpretation,from,to);
51060}
51061pattern refineRelation_eKeys_reference_EReference(
51062 problem:LogicProblem, interpretation:PartialInterpretation,
51063 relationIterpretation:PartialRelationInterpretation,
51064 from: DefinedElement, to: DefinedElement)
51065{
51066 find interpretation(problem,interpretation);
51067 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
51068 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eKeys reference EReference");
51069 find mustExist(problem, interpretation, from);
51070 find mustExist(problem, interpretation, to);
51071 find mustInstanceOfEReference_class(problem,interpretation,from);
51072 find mustInstanceOfEAttribute_class(problem,interpretation,to);
51073 find mayInRelationeKeys_reference_EReference(problem,interpretation,from,to);
51074 neg find mustInRelationeKeys_reference_EReference(problem,interpretation,from,to);
51075}
51076pattern refineRelation_eType_reference_ETypedElement(
51077 problem:LogicProblem, interpretation:PartialInterpretation,
51078 relationIterpretation:PartialRelationInterpretation,
51079 from: DefinedElement, to: DefinedElement)
51080{
51081 find interpretation(problem,interpretation);
51082 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
51083 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eType reference ETypedElement");
51084 find mustExist(problem, interpretation, from);
51085 find mustExist(problem, interpretation, to);
51086 find mustInstanceOfETypedElement_class(problem,interpretation,from);
51087 find mustInstanceOfEClassifier_class(problem,interpretation,to);
51088 find mayInRelationeType_reference_ETypedElement(problem,interpretation,from,to);
51089 neg find mustInRelationeType_reference_ETypedElement(problem,interpretation,from,to);
51090}
51091pattern refineRelation_eRawType_reference_EGenericType(
51092 problem:LogicProblem, interpretation:PartialInterpretation,
51093 relationIterpretation:PartialRelationInterpretation,
51094 from: DefinedElement, to: DefinedElement)
51095{
51096 find interpretation(problem,interpretation);
51097 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
51098 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eRawType reference EGenericType");
51099 find mustExist(problem, interpretation, from);
51100 find mustExist(problem, interpretation, to);
51101 find mustInstanceOfEGenericType_class(problem,interpretation,from);
51102 find mustInstanceOfEClassifier_class(problem,interpretation,to);
51103 find mayInRelationeRawType_reference_EGenericType(problem,interpretation,from,to);
51104 neg find mustInRelationeRawType_reference_EGenericType(problem,interpretation,from,to);
51105}
51106pattern refineRelation_eTypeParameter_reference_EGenericType(
51107 problem:LogicProblem, interpretation:PartialInterpretation,
51108 relationIterpretation:PartialRelationInterpretation,
51109 from: DefinedElement, to: DefinedElement)
51110{
51111 find interpretation(problem,interpretation);
51112 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
51113 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eTypeParameter reference EGenericType");
51114 find mustExist(problem, interpretation, from);
51115 find mustExist(problem, interpretation, to);
51116 find mustInstanceOfEGenericType_class(problem,interpretation,from);
51117 find mustInstanceOfETypeParameter_class(problem,interpretation,to);
51118 find mayInRelationeTypeParameter_reference_EGenericType(problem,interpretation,from,to);
51119 neg find mustInRelationeTypeParameter_reference_EGenericType(problem,interpretation,from,to);
51120}
51121pattern refineRelation_eClassifier_reference_EGenericType(
51122 problem:LogicProblem, interpretation:PartialInterpretation,
51123 relationIterpretation:PartialRelationInterpretation,
51124 from: DefinedElement, to: DefinedElement)
51125{
51126 find interpretation(problem,interpretation);
51127 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
51128 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eClassifier reference EGenericType");
51129 find mustExist(problem, interpretation, from);
51130 find mustExist(problem, interpretation, to);
51131 find mustInstanceOfEGenericType_class(problem,interpretation,from);
51132 find mustInstanceOfEClassifier_class(problem,interpretation,to);
51133 find mayInRelationeClassifier_reference_EGenericType(problem,interpretation,from,to);
51134 neg find mustInRelationeClassifier_reference_EGenericType(problem,interpretation,from,to);
51135}
51136pattern refineRelation_iD_attribute_EAttribute(
51137 problem:LogicProblem, interpretation:PartialInterpretation,
51138 relationIterpretation:PartialRelationInterpretation,
51139 from: DefinedElement, to: DefinedElement)
51140{
51141 find interpretation(problem,interpretation);
51142 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
51143 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"iD attribute EAttribute");
51144 find mustExist(problem, interpretation, from);
51145 find mustExist(problem, interpretation, to);
51146 find mustInstanceOfEAttribute_class(problem,interpretation,from);
51147 BooleanElement(to);
51148 find mayInRelationiD_attribute_EAttribute(problem,interpretation,from,to);
51149 neg find mustInRelationiD_attribute_EAttribute(problem,interpretation,from,to);
51150}
51151pattern refineRelation_source_attribute_EAnnotation(
51152 problem:LogicProblem, interpretation:PartialInterpretation,
51153 relationIterpretation:PartialRelationInterpretation,
51154 from: DefinedElement, to: DefinedElement)
51155{
51156 find interpretation(problem,interpretation);
51157 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
51158 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"source attribute EAnnotation");
51159 find mustExist(problem, interpretation, from);
51160 find mustExist(problem, interpretation, to);
51161 find mustInstanceOfEAnnotation_class(problem,interpretation,from);
51162 StringElement(to);
51163 find mayInRelationsource_attribute_EAnnotation(problem,interpretation,from,to);
51164 neg find mustInRelationsource_attribute_EAnnotation(problem,interpretation,from,to);
51165}
51166pattern refineRelation_abstract_attribute_EClass(
51167 problem:LogicProblem, interpretation:PartialInterpretation,
51168 relationIterpretation:PartialRelationInterpretation,
51169 from: DefinedElement, to: DefinedElement)
51170{
51171 find interpretation(problem,interpretation);
51172 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
51173 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"abstract attribute EClass");
51174 find mustExist(problem, interpretation, from);
51175 find mustExist(problem, interpretation, to);
51176 find mustInstanceOfEClass_class(problem,interpretation,from);
51177 BooleanElement(to);
51178 find mayInRelationabstract_attribute_EClass(problem,interpretation,from,to);
51179 neg find mustInRelationabstract_attribute_EClass(problem,interpretation,from,to);
51180}
51181pattern refineRelation_interface_attribute_EClass(
51182 problem:LogicProblem, interpretation:PartialInterpretation,
51183 relationIterpretation:PartialRelationInterpretation,
51184 from: DefinedElement, to: DefinedElement)
51185{
51186 find interpretation(problem,interpretation);
51187 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
51188 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"interface attribute EClass");
51189 find mustExist(problem, interpretation, from);
51190 find mustExist(problem, interpretation, to);
51191 find mustInstanceOfEClass_class(problem,interpretation,from);
51192 BooleanElement(to);
51193 find mayInRelationinterface_attribute_EClass(problem,interpretation,from,to);
51194 neg find mustInRelationinterface_attribute_EClass(problem,interpretation,from,to);
51195}
51196pattern refineRelation_instanceClassName_attribute_EClassifier(
51197 problem:LogicProblem, interpretation:PartialInterpretation,
51198 relationIterpretation:PartialRelationInterpretation,
51199 from: DefinedElement, to: DefinedElement)
51200{
51201 find interpretation(problem,interpretation);
51202 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
51203 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"instanceClassName attribute EClassifier");
51204 find mustExist(problem, interpretation, from);
51205 find mustExist(problem, interpretation, to);
51206 find mustInstanceOfEClassifier_class(problem,interpretation,from);
51207 StringElement(to);
51208 find mayInRelationinstanceClassName_attribute_EClassifier(problem,interpretation,from,to);
51209 neg find mustInRelationinstanceClassName_attribute_EClassifier(problem,interpretation,from,to);
51210}
51211pattern refineRelation_instanceTypeName_attribute_EClassifier(
51212 problem:LogicProblem, interpretation:PartialInterpretation,
51213 relationIterpretation:PartialRelationInterpretation,
51214 from: DefinedElement, to: DefinedElement)
51215{
51216 find interpretation(problem,interpretation);
51217 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
51218 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"instanceTypeName attribute EClassifier");
51219 find mustExist(problem, interpretation, from);
51220 find mustExist(problem, interpretation, to);
51221 find mustInstanceOfEClassifier_class(problem,interpretation,from);
51222 StringElement(to);
51223 find mayInRelationinstanceTypeName_attribute_EClassifier(problem,interpretation,from,to);
51224 neg find mustInRelationinstanceTypeName_attribute_EClassifier(problem,interpretation,from,to);
51225}
51226pattern refineRelation_serializable_attribute_EDataType(
51227 problem:LogicProblem, interpretation:PartialInterpretation,
51228 relationIterpretation:PartialRelationInterpretation,
51229 from: DefinedElement, to: DefinedElement)
51230{
51231 find interpretation(problem,interpretation);
51232 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
51233 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"serializable attribute EDataType");
51234 find mustExist(problem, interpretation, from);
51235 find mustExist(problem, interpretation, to);
51236 find mustInstanceOfEDataType_class(problem,interpretation,from);
51237 BooleanElement(to);
51238 find mayInRelationserializable_attribute_EDataType(problem,interpretation,from,to);
51239 neg find mustInRelationserializable_attribute_EDataType(problem,interpretation,from,to);
51240}
51241pattern refineRelation_value_attribute_EEnumLiteral(
51242 problem:LogicProblem, interpretation:PartialInterpretation,
51243 relationIterpretation:PartialRelationInterpretation,
51244 from: DefinedElement, to: DefinedElement)
51245{
51246 find interpretation(problem,interpretation);
51247 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
51248 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"value attribute EEnumLiteral");
51249 find mustExist(problem, interpretation, from);
51250 find mustExist(problem, interpretation, to);
51251 find mustInstanceOfEEnumLiteral_class(problem,interpretation,from);
51252 IntegerElement(to);
51253 find mayInRelationvalue_attribute_EEnumLiteral(problem,interpretation,from,to);
51254 neg find mustInRelationvalue_attribute_EEnumLiteral(problem,interpretation,from,to);
51255}
51256pattern refineRelation_literal_attribute_EEnumLiteral(
51257 problem:LogicProblem, interpretation:PartialInterpretation,
51258 relationIterpretation:PartialRelationInterpretation,
51259 from: DefinedElement, to: DefinedElement)
51260{
51261 find interpretation(problem,interpretation);
51262 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
51263 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"literal attribute EEnumLiteral");
51264 find mustExist(problem, interpretation, from);
51265 find mustExist(problem, interpretation, to);
51266 find mustInstanceOfEEnumLiteral_class(problem,interpretation,from);
51267 StringElement(to);
51268 find mayInRelationliteral_attribute_EEnumLiteral(problem,interpretation,from,to);
51269 neg find mustInRelationliteral_attribute_EEnumLiteral(problem,interpretation,from,to);
51270}
51271pattern refineRelation_name_attribute_ENamedElement(
51272 problem:LogicProblem, interpretation:PartialInterpretation,
51273 relationIterpretation:PartialRelationInterpretation,
51274 from: DefinedElement, to: DefinedElement)
51275{
51276 find interpretation(problem,interpretation);
51277 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
51278 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"name attribute ENamedElement");
51279 find mustExist(problem, interpretation, from);
51280 find mustExist(problem, interpretation, to);
51281 find mustInstanceOfENamedElement_class(problem,interpretation,from);
51282 StringElement(to);
51283 find mayInRelationname_attribute_ENamedElement(problem,interpretation,from,to);
51284 neg find mustInRelationname_attribute_ENamedElement(problem,interpretation,from,to);
51285}
51286pattern refineRelation_nsURI_attribute_EPackage(
51287 problem:LogicProblem, interpretation:PartialInterpretation,
51288 relationIterpretation:PartialRelationInterpretation,
51289 from: DefinedElement, to: DefinedElement)
51290{
51291 find interpretation(problem,interpretation);
51292 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
51293 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"nsURI attribute EPackage");
51294 find mustExist(problem, interpretation, from);
51295 find mustExist(problem, interpretation, to);
51296 find mustInstanceOfEPackage_class(problem,interpretation,from);
51297 StringElement(to);
51298 find mayInRelationnsURI_attribute_EPackage(problem,interpretation,from,to);
51299 neg find mustInRelationnsURI_attribute_EPackage(problem,interpretation,from,to);
51300}
51301pattern refineRelation_nsPrefix_attribute_EPackage(
51302 problem:LogicProblem, interpretation:PartialInterpretation,
51303 relationIterpretation:PartialRelationInterpretation,
51304 from: DefinedElement, to: DefinedElement)
51305{
51306 find interpretation(problem,interpretation);
51307 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
51308 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"nsPrefix attribute EPackage");
51309 find mustExist(problem, interpretation, from);
51310 find mustExist(problem, interpretation, to);
51311 find mustInstanceOfEPackage_class(problem,interpretation,from);
51312 StringElement(to);
51313 find mayInRelationnsPrefix_attribute_EPackage(problem,interpretation,from,to);
51314 neg find mustInRelationnsPrefix_attribute_EPackage(problem,interpretation,from,to);
51315}
51316pattern refineRelation_containment_attribute_EReference(
51317 problem:LogicProblem, interpretation:PartialInterpretation,
51318 relationIterpretation:PartialRelationInterpretation,
51319 from: DefinedElement, to: DefinedElement)
51320{
51321 find interpretation(problem,interpretation);
51322 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
51323 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"containment attribute EReference");
51324 find mustExist(problem, interpretation, from);
51325 find mustExist(problem, interpretation, to);
51326 find mustInstanceOfEReference_class(problem,interpretation,from);
51327 BooleanElement(to);
51328 find mayInRelationcontainment_attribute_EReference(problem,interpretation,from,to);
51329 neg find mustInRelationcontainment_attribute_EReference(problem,interpretation,from,to);
51330}
51331pattern refineRelation_container_attribute_EReference(
51332 problem:LogicProblem, interpretation:PartialInterpretation,
51333 relationIterpretation:PartialRelationInterpretation,
51334 from: DefinedElement, to: DefinedElement)
51335{
51336 find interpretation(problem,interpretation);
51337 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
51338 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"container attribute EReference");
51339 find mustExist(problem, interpretation, from);
51340 find mustExist(problem, interpretation, to);
51341 find mustInstanceOfEReference_class(problem,interpretation,from);
51342 BooleanElement(to);
51343 find mayInRelationcontainer_attribute_EReference(problem,interpretation,from,to);
51344 neg find mustInRelationcontainer_attribute_EReference(problem,interpretation,from,to);
51345}
51346pattern refineRelation_resolveProxies_attribute_EReference(
51347 problem:LogicProblem, interpretation:PartialInterpretation,
51348 relationIterpretation:PartialRelationInterpretation,
51349 from: DefinedElement, to: DefinedElement)
51350{
51351 find interpretation(problem,interpretation);
51352 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
51353 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"resolveProxies attribute EReference");
51354 find mustExist(problem, interpretation, from);
51355 find mustExist(problem, interpretation, to);
51356 find mustInstanceOfEReference_class(problem,interpretation,from);
51357 BooleanElement(to);
51358 find mayInRelationresolveProxies_attribute_EReference(problem,interpretation,from,to);
51359 neg find mustInRelationresolveProxies_attribute_EReference(problem,interpretation,from,to);
51360}
51361pattern refineRelation_changeable_attribute_EStructuralFeature(
51362 problem:LogicProblem, interpretation:PartialInterpretation,
51363 relationIterpretation:PartialRelationInterpretation,
51364 from: DefinedElement, to: DefinedElement)
51365{
51366 find interpretation(problem,interpretation);
51367 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
51368 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"changeable attribute EStructuralFeature");
51369 find mustExist(problem, interpretation, from);
51370 find mustExist(problem, interpretation, to);
51371 find mustInstanceOfEStructuralFeature_class(problem,interpretation,from);
51372 BooleanElement(to);
51373 find mayInRelationchangeable_attribute_EStructuralFeature(problem,interpretation,from,to);
51374 neg find mustInRelationchangeable_attribute_EStructuralFeature(problem,interpretation,from,to);
51375}
51376pattern refineRelation_volatile_attribute_EStructuralFeature(
51377 problem:LogicProblem, interpretation:PartialInterpretation,
51378 relationIterpretation:PartialRelationInterpretation,
51379 from: DefinedElement, to: DefinedElement)
51380{
51381 find interpretation(problem,interpretation);
51382 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
51383 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"volatile attribute EStructuralFeature");
51384 find mustExist(problem, interpretation, from);
51385 find mustExist(problem, interpretation, to);
51386 find mustInstanceOfEStructuralFeature_class(problem,interpretation,from);
51387 BooleanElement(to);
51388 find mayInRelationvolatile_attribute_EStructuralFeature(problem,interpretation,from,to);
51389 neg find mustInRelationvolatile_attribute_EStructuralFeature(problem,interpretation,from,to);
51390}
51391pattern refineRelation_transient_attribute_EStructuralFeature(
51392 problem:LogicProblem, interpretation:PartialInterpretation,
51393 relationIterpretation:PartialRelationInterpretation,
51394 from: DefinedElement, to: DefinedElement)
51395{
51396 find interpretation(problem,interpretation);
51397 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
51398 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"transient attribute EStructuralFeature");
51399 find mustExist(problem, interpretation, from);
51400 find mustExist(problem, interpretation, to);
51401 find mustInstanceOfEStructuralFeature_class(problem,interpretation,from);
51402 BooleanElement(to);
51403 find mayInRelationtransient_attribute_EStructuralFeature(problem,interpretation,from,to);
51404 neg find mustInRelationtransient_attribute_EStructuralFeature(problem,interpretation,from,to);
51405}
51406pattern refineRelation_defaultValueLiteral_attribute_EStructuralFeature(
51407 problem:LogicProblem, interpretation:PartialInterpretation,
51408 relationIterpretation:PartialRelationInterpretation,
51409 from: DefinedElement, to: DefinedElement)
51410{
51411 find interpretation(problem,interpretation);
51412 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
51413 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"defaultValueLiteral attribute EStructuralFeature");
51414 find mustExist(problem, interpretation, from);
51415 find mustExist(problem, interpretation, to);
51416 find mustInstanceOfEStructuralFeature_class(problem,interpretation,from);
51417 StringElement(to);
51418 find mayInRelationdefaultValueLiteral_attribute_EStructuralFeature(problem,interpretation,from,to);
51419 neg find mustInRelationdefaultValueLiteral_attribute_EStructuralFeature(problem,interpretation,from,to);
51420}
51421pattern refineRelation_unsettable_attribute_EStructuralFeature(
51422 problem:LogicProblem, interpretation:PartialInterpretation,
51423 relationIterpretation:PartialRelationInterpretation,
51424 from: DefinedElement, to: DefinedElement)
51425{
51426 find interpretation(problem,interpretation); 40628 find interpretation(problem,interpretation);
51427 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 40629 PartialInterpretation.newElements(interpretation,element);
51428 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"unsettable attribute EStructuralFeature"); 40630 find mayInstanceOfFAMTerminator_class(problem,interpretation,element);
51429 find mustExist(problem, interpretation, from); 40631 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
51430 find mustExist(problem, interpretation, to); 40632 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
51431 find mustInstanceOfEStructuralFeature_class(problem,interpretation,from); 40633 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
51432 BooleanElement(to); 40634 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
51433 find mayInRelationunsettable_attribute_EStructuralFeature(problem,interpretation,from,to); 40635 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
51434 neg find mustInRelationunsettable_attribute_EStructuralFeature(problem,interpretation,from,to); 40636 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
51435} 40637}
51436pattern refineRelation_derived_attribute_EStructuralFeature( 40638pattern refineTypeTo_FunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
51437 problem:LogicProblem, interpretation:PartialInterpretation,
51438 relationIterpretation:PartialRelationInterpretation,
51439 from: DefinedElement, to: DefinedElement)
51440{
51441 find interpretation(problem,interpretation); 40639 find interpretation(problem,interpretation);
51442 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 40640 PartialInterpretation.newElements(interpretation,element);
51443 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"derived attribute EStructuralFeature"); 40641 find mayInstanceOfFunctionalInput_class(problem,interpretation,element);
51444 find mustExist(problem, interpretation, from); 40642 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
51445 find mustExist(problem, interpretation, to); 40643 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
51446 find mustInstanceOfEStructuralFeature_class(problem,interpretation,from); 40644 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
51447 BooleanElement(to); 40645 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
51448 find mayInRelationderived_attribute_EStructuralFeature(problem,interpretation,from,to); 40646 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
51449 neg find mustInRelationderived_attribute_EStructuralFeature(problem,interpretation,from,to); 40647 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
40648 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
51450} 40649}
51451pattern refineRelation_ordered_attribute_ETypedElement( 40650pattern refineTypeTo_Function_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
51452 problem:LogicProblem, interpretation:PartialInterpretation,
51453 relationIterpretation:PartialRelationInterpretation,
51454 from: DefinedElement, to: DefinedElement)
51455{
51456 find interpretation(problem,interpretation); 40651 find interpretation(problem,interpretation);
51457 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 40652 PartialInterpretation.newElements(interpretation,element);
51458 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"ordered attribute ETypedElement"); 40653 find mayInstanceOfFunction_class(problem,interpretation,element);
51459 find mustExist(problem, interpretation, from); 40654 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
51460 find mustExist(problem, interpretation, to); 40655 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
51461 find mustInstanceOfETypedElement_class(problem,interpretation,from); 40656 neg find mustInstanceOfFunction_class(problem,interpretation,element);
51462 BooleanElement(to); 40657 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
51463 find mayInRelationordered_attribute_ETypedElement(problem,interpretation,from,to); 40658 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
51464 neg find mustInRelationordered_attribute_ETypedElement(problem,interpretation,from,to); 40659 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
51465} 40660}
51466pattern refineRelation_unique_attribute_ETypedElement( 40661pattern refineTypeTo_InformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
51467 problem:LogicProblem, interpretation:PartialInterpretation,
51468 relationIterpretation:PartialRelationInterpretation,
51469 from: DefinedElement, to: DefinedElement)
51470{
51471 find interpretation(problem,interpretation); 40662 find interpretation(problem,interpretation);
51472 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 40663 PartialInterpretation.newElements(interpretation,element);
51473 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"unique attribute ETypedElement"); 40664 find mayInstanceOfInformationLink_class(problem,interpretation,element);
51474 find mustExist(problem, interpretation, from); 40665 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
51475 find mustExist(problem, interpretation, to); 40666 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
51476 find mustInstanceOfETypedElement_class(problem,interpretation,from); 40667 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
51477 BooleanElement(to); 40668 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
51478 find mayInRelationunique_attribute_ETypedElement(problem,interpretation,from,to); 40669 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
51479 neg find mustInRelationunique_attribute_ETypedElement(problem,interpretation,from,to); 40670 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
51480} 40671}
51481pattern refineRelation_lowerBound_attribute_ETypedElement( 40672pattern refineTypeTo_FunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
51482 problem:LogicProblem, interpretation:PartialInterpretation,
51483 relationIterpretation:PartialRelationInterpretation,
51484 from: DefinedElement, to: DefinedElement)
51485{
51486 find interpretation(problem,interpretation); 40673 find interpretation(problem,interpretation);
51487 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 40674 PartialInterpretation.newElements(interpretation,element);
51488 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"lowerBound attribute ETypedElement"); 40675 find mayInstanceOfFunctionalInterface_class(problem,interpretation,element);
51489 find mustExist(problem, interpretation, from); 40676 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
51490 find mustExist(problem, interpretation, to); 40677 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
51491 find mustInstanceOfETypedElement_class(problem,interpretation,from); 40678 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
51492 IntegerElement(to); 40679 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
51493 find mayInRelationlowerBound_attribute_ETypedElement(problem,interpretation,from,to); 40680 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
51494 neg find mustInRelationlowerBound_attribute_ETypedElement(problem,interpretation,from,to); 40681 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
51495} 40682}
51496pattern refineRelation_upperBound_attribute_ETypedElement( 40683pattern refineTypeTo_FunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
51497 problem:LogicProblem, interpretation:PartialInterpretation,
51498 relationIterpretation:PartialRelationInterpretation,
51499 from: DefinedElement, to: DefinedElement)
51500{
51501 find interpretation(problem,interpretation); 40684 find interpretation(problem,interpretation);
51502 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 40685 PartialInterpretation.newElements(interpretation,element);
51503 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"upperBound attribute ETypedElement"); 40686 find mayInstanceOfFunctionalOutput_class(problem,interpretation,element);
51504 find mustExist(problem, interpretation, from); 40687 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
51505 find mustExist(problem, interpretation, to); 40688 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
51506 find mustInstanceOfETypedElement_class(problem,interpretation,from); 40689 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
51507 IntegerElement(to); 40690 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
51508 find mayInRelationupperBound_attribute_ETypedElement(problem,interpretation,from,to); 40691 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
51509 neg find mustInRelationupperBound_attribute_ETypedElement(problem,interpretation,from,to); 40692 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
40693 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
51510} 40694}
51511pattern refineRelation_many_attribute_ETypedElement( 40695pattern refineTypeTo_FunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
51512 problem:LogicProblem, interpretation:PartialInterpretation,
51513 relationIterpretation:PartialRelationInterpretation,
51514 from: DefinedElement, to: DefinedElement)
51515{
51516 find interpretation(problem,interpretation); 40696 find interpretation(problem,interpretation);
51517 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 40697 PartialInterpretation.newElements(interpretation,element);
51518 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"many attribute ETypedElement"); 40698 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
51519 find mustExist(problem, interpretation, from); 40699 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
51520 find mustExist(problem, interpretation, to); 40700 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
51521 find mustInstanceOfETypedElement_class(problem,interpretation,from); 40701 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
51522 BooleanElement(to); 40702 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
51523 find mayInRelationmany_attribute_ETypedElement(problem,interpretation,from,to); 40703 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
51524 neg find mustInRelationmany_attribute_ETypedElement(problem,interpretation,from,to); 40704 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element);
51525} 40705}
51526pattern refineRelation_required_attribute_ETypedElement( 40706
40707//////////
40708// 4.3 Relation refinement
40709//////////
40710pattern refineRelation_model_reference_FunctionalElement(
51527 problem:LogicProblem, interpretation:PartialInterpretation, 40711 problem:LogicProblem, interpretation:PartialInterpretation,
51528 relationIterpretation:PartialRelationInterpretation, 40712 relationIterpretation:PartialRelationInterpretation,
51529 from: DefinedElement, to: DefinedElement) 40713 from: DefinedElement, to: DefinedElement)
51530{ 40714{
51531 find interpretation(problem,interpretation); 40715 find interpretation(problem,interpretation);
51532 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 40716 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
51533 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"required attribute ETypedElement"); 40717 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement");
51534 find mustExist(problem, interpretation, from); 40718 find mustExist(problem, interpretation, from);
51535 find mustExist(problem, interpretation, to); 40719 find mustExist(problem, interpretation, to);
51536 find mustInstanceOfETypedElement_class(problem,interpretation,from); 40720 find mustInstanceOfFunctionalElement_class(problem,interpretation,from);
51537 BooleanElement(to); 40721 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,to);
51538 find mayInRelationrequired_attribute_ETypedElement(problem,interpretation,from,to); 40722 find mayInRelationmodel_reference_FunctionalElement(problem,interpretation,from,to);
51539 neg find mustInRelationrequired_attribute_ETypedElement(problem,interpretation,from,to); 40723 neg find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,from,to);
51540} 40724}
51541pattern refineRelation_key_attribute_EStringToStringMapEntry( 40725pattern refineRelation_IncomingLinks_reference_FunctionalInput_and_to_reference_InformationLink(
51542 problem:LogicProblem, interpretation:PartialInterpretation, 40726 problem:LogicProblem, interpretation:PartialInterpretation,
51543 relationIterpretation:PartialRelationInterpretation, 40727 relationIterpretation:PartialRelationInterpretation, oppositeInterpretation:PartialRelationInterpretation,
51544 from: DefinedElement, to: DefinedElement) 40728 from: DefinedElement, to: DefinedElement)
51545{ 40729{
51546 find interpretation(problem,interpretation); 40730 find interpretation(problem,interpretation);
51547 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 40731 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
51548 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"key attribute EStringToStringMapEntry"); 40732 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"IncomingLinks reference FunctionalInput");
40733 PartialInterpretation.partialrelationinterpretation(interpretation,oppositeInterpretation);
40734 PartialRelationInterpretation.interpretationOf.name(oppositeInterpretation,"to reference InformationLink");
51549 find mustExist(problem, interpretation, from); 40735 find mustExist(problem, interpretation, from);
51550 find mustExist(problem, interpretation, to); 40736 find mustExist(problem, interpretation, to);
51551 find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,from); 40737 find mustInstanceOfFunctionalInput_class(problem,interpretation,from);
51552 StringElement(to); 40738 find mustInstanceOfInformationLink_class(problem,interpretation,to);
51553 find mayInRelationkey_attribute_EStringToStringMapEntry(problem,interpretation,from,to); 40739 find mayInRelationIncomingLinks_reference_FunctionalInput(problem,interpretation,from,to);
51554 neg find mustInRelationkey_attribute_EStringToStringMapEntry(problem,interpretation,from,to); 40740 neg find mustInRelationIncomingLinks_reference_FunctionalInput(problem,interpretation,from,to);
51555} 40741}
51556pattern refineRelation_value_attribute_EStringToStringMapEntry( 40742pattern refineRelation_type_attribute_Function(
51557 problem:LogicProblem, interpretation:PartialInterpretation, 40743 problem:LogicProblem, interpretation:PartialInterpretation,
51558 relationIterpretation:PartialRelationInterpretation, 40744 relationIterpretation:PartialRelationInterpretation,
51559 from: DefinedElement, to: DefinedElement) 40745 from: DefinedElement, to: DefinedElement)
51560{ 40746{
51561 find interpretation(problem,interpretation); 40747 find interpretation(problem,interpretation);
51562 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 40748 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
51563 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"value attribute EStringToStringMapEntry"); 40749 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function");
51564 find mustExist(problem, interpretation, from); 40750 find mustExist(problem, interpretation, from);
51565 find mustExist(problem, interpretation, to); 40751 find mustExist(problem, interpretation, to);
51566 find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,from); 40752 find mustInstanceOfFunction_class(problem,interpretation,from);
51567 StringElement(to); 40753 find mustInstanceOfFunctionType_enum(problem,interpretation,to);
51568 find mayInRelationvalue_attribute_EStringToStringMapEntry(problem,interpretation,from,to); 40754 find mayInRelationtype_attribute_Function(problem,interpretation,from,to);
51569 neg find mustInRelationvalue_attribute_EStringToStringMapEntry(problem,interpretation,from,to); 40755 neg find mustInRelationtype_attribute_Function(problem,interpretation,from,to);
51570} 40756}
51571import epackage "http://www.bme.hu/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage" 40757import epackage "http://www.bme.hu/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage"
51572import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem" 40758import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem"
@@ -51652,1130 +40838,436 @@ private pattern isPrimitive(element: PrimitiveElement) {
51652// 1.1.2 domain-specific Type Indexers 40838// 1.1.2 domain-specific Type Indexers
51653////////// 40839//////////
51654/** 40840/**
51655 * An element must be an instance of type "EAttribute class". 40841 * An element must be an instance of type "FunctionalElement class".
51656 */
51657private pattern mustInstanceOfEAttribute_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
51658 Type.name(type,"EAttribute class");
51659 find directInstanceOf(problem,interpretation,element,type);
51660}
51661private pattern scopeDisallowsNewEAttribute_class(problem:LogicProblem, interpretation:PartialInterpretation) {
51662 find interpretation(problem,interpretation);
51663 PartialInterpretation.scopes(interpretation,scope);
51664 Scope.targetTypeInterpretation(scope,typeInterpretation);
51665 Scope.maxNewElements(scope,0);
51666 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
51667 Type.name(type,"EAttribute class");
51668}
51669
51670/**
51671 * An element may be an instance of type "EAttribute class".
51672 */
51673private pattern mayInstanceOfEAttribute_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
51674{
51675 find interpretation(problem,interpretation);
51676 PartialInterpretation.newElements(interpretation,element);
51677 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
51678 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
51679 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
51680 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
51681 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
51682 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
51683 neg find mustInstanceOfEReference_class(problem,interpretation,element);
51684 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
51685 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
51686 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
51687 neg find mustInstanceOfEObject_class(problem,interpretation,element);
51688 neg find scopeDisallowsNewEAttribute_class(problem, interpretation);
51689 neg find isPrimitive(element);
51690} or {
51691 find interpretation(problem,interpretation);
51692 PartialInterpretation.openWorldElements(interpretation,element);
51693 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
51694 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
51695 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
51696 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
51697 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
51698 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
51699 neg find mustInstanceOfEReference_class(problem,interpretation,element);
51700 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
51701 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
51702 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
51703 neg find mustInstanceOfEObject_class(problem,interpretation,element);
51704 neg find scopeDisallowsNewEAttribute_class(problem, interpretation);
51705 neg find isPrimitive(element);
51706} or
51707{ find mustInstanceOfEAttribute_class(problem,interpretation,element); }
51708/**
51709 * An element must be an instance of type "EAnnotation class".
51710 */
51711private pattern mustInstanceOfEAnnotation_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
51712 Type.name(type,"EAnnotation class");
51713 find directInstanceOf(problem,interpretation,element,type);
51714}
51715private pattern scopeDisallowsNewEAnnotation_class(problem:LogicProblem, interpretation:PartialInterpretation) {
51716 find interpretation(problem,interpretation);
51717 PartialInterpretation.scopes(interpretation,scope);
51718 Scope.targetTypeInterpretation(scope,typeInterpretation);
51719 Scope.maxNewElements(scope,0);
51720 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
51721 Type.name(type,"EAnnotation class");
51722}
51723
51724/**
51725 * An element may be an instance of type "EAnnotation class".
51726 */
51727private pattern mayInstanceOfEAnnotation_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
51728{
51729 find interpretation(problem,interpretation);
51730 PartialInterpretation.newElements(interpretation,element);
51731 neg find mustInstanceOfENamedElement_class(problem,interpretation,element);
51732 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
51733 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
51734 neg find mustInstanceOfEObject_class(problem,interpretation,element);
51735 neg find scopeDisallowsNewEAnnotation_class(problem, interpretation);
51736 neg find isPrimitive(element);
51737} or {
51738 find interpretation(problem,interpretation);
51739 PartialInterpretation.openWorldElements(interpretation,element);
51740 neg find mustInstanceOfENamedElement_class(problem,interpretation,element);
51741 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
51742 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
51743 neg find mustInstanceOfEObject_class(problem,interpretation,element);
51744 neg find scopeDisallowsNewEAnnotation_class(problem, interpretation);
51745 neg find isPrimitive(element);
51746} or
51747{ find mustInstanceOfEAnnotation_class(problem,interpretation,element); }
51748/**
51749 * An element must be an instance of type "EClass class".
51750 */
51751private pattern mustInstanceOfEClass_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
51752 Type.name(type,"EClass class");
51753 find directInstanceOf(problem,interpretation,element,type);
51754}
51755private pattern scopeDisallowsNewEClass_class(problem:LogicProblem, interpretation:PartialInterpretation) {
51756 find interpretation(problem,interpretation);
51757 PartialInterpretation.scopes(interpretation,scope);
51758 Scope.targetTypeInterpretation(scope,typeInterpretation);
51759 Scope.maxNewElements(scope,0);
51760 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
51761 Type.name(type,"EClass class");
51762}
51763
51764/**
51765 * An element may be an instance of type "EClass class".
51766 */
51767private pattern mayInstanceOfEClass_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
51768{
51769 find interpretation(problem,interpretation);
51770 PartialInterpretation.newElements(interpretation,element);
51771 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
51772 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
51773 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
51774 neg find mustInstanceOfEDataType_class(problem,interpretation,element);
51775 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
51776 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
51777 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
51778 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
51779 neg find mustInstanceOfEObject_class(problem,interpretation,element);
51780 neg find scopeDisallowsNewEClass_class(problem, interpretation);
51781 neg find isPrimitive(element);
51782} or {
51783 find interpretation(problem,interpretation);
51784 PartialInterpretation.openWorldElements(interpretation,element);
51785 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
51786 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
51787 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
51788 neg find mustInstanceOfEDataType_class(problem,interpretation,element);
51789 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
51790 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
51791 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
51792 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
51793 neg find mustInstanceOfEObject_class(problem,interpretation,element);
51794 neg find scopeDisallowsNewEClass_class(problem, interpretation);
51795 neg find isPrimitive(element);
51796} or
51797{ find mustInstanceOfEClass_class(problem,interpretation,element); }
51798/**
51799 * An element must be an instance of type "EClassifier class".
51800 */
51801private pattern mustInstanceOfEClassifier_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
51802 Type.name(type,"EClassifier class");
51803 find directInstanceOf(problem,interpretation,element,type);
51804}
51805private pattern scopeDisallowsNewEClassifier_class(problem:LogicProblem, interpretation:PartialInterpretation) {
51806 find interpretation(problem,interpretation);
51807 PartialInterpretation.scopes(interpretation,scope);
51808 Scope.targetTypeInterpretation(scope,typeInterpretation);
51809 Scope.maxNewElements(scope,0);
51810 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
51811 Type.name(type,"EClassifier class");
51812}
51813
51814/**
51815 * An element may be an instance of type "EClassifier class".
51816 */
51817private pattern mayInstanceOfEClassifier_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
51818{
51819 find interpretation(problem,interpretation);
51820 PartialInterpretation.newElements(interpretation,element);
51821 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
51822 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
51823 neg find mustInstanceOfEDataType_class(problem,interpretation,element);
51824 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
51825 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
51826 neg find mustInstanceOfEClass_class(problem,interpretation,element);
51827 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
51828 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
51829 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
51830 neg find mustInstanceOfEObject_class(problem,interpretation,element);
51831 neg find scopeDisallowsNewEClassifier_class(problem, interpretation);
51832 neg find isPrimitive(element);
51833} or {
51834 find interpretation(problem,interpretation);
51835 PartialInterpretation.openWorldElements(interpretation,element);
51836 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
51837 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
51838 neg find mustInstanceOfEDataType_class(problem,interpretation,element);
51839 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
51840 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
51841 neg find mustInstanceOfEClass_class(problem,interpretation,element);
51842 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
51843 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
51844 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
51845 neg find mustInstanceOfEObject_class(problem,interpretation,element);
51846 neg find scopeDisallowsNewEClassifier_class(problem, interpretation);
51847 neg find isPrimitive(element);
51848} or
51849{ find mustInstanceOfEClassifier_class(problem,interpretation,element); }
51850/**
51851 * An element must be an instance of type "EDataType class".
51852 */
51853private pattern mustInstanceOfEDataType_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
51854 Type.name(type,"EDataType class");
51855 find directInstanceOf(problem,interpretation,element,type);
51856}
51857private pattern scopeDisallowsNewEDataType_class(problem:LogicProblem, interpretation:PartialInterpretation) {
51858 find interpretation(problem,interpretation);
51859 PartialInterpretation.scopes(interpretation,scope);
51860 Scope.targetTypeInterpretation(scope,typeInterpretation);
51861 Scope.maxNewElements(scope,0);
51862 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
51863 Type.name(type,"EDataType class");
51864}
51865
51866/**
51867 * An element may be an instance of type "EDataType class".
51868 */
51869private pattern mayInstanceOfEDataType_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
51870{
51871 find interpretation(problem,interpretation);
51872 PartialInterpretation.newElements(interpretation,element);
51873 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
51874 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
51875 neg find mustInstanceOfEEnum_class(problem,interpretation,element);
51876 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
51877 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
51878 neg find mustInstanceOfEClass_class(problem,interpretation,element);
51879 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
51880 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
51881 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
51882 neg find mustInstanceOfEObject_class(problem,interpretation,element);
51883 neg find scopeDisallowsNewEDataType_class(problem, interpretation);
51884 neg find isPrimitive(element);
51885} or {
51886 find interpretation(problem,interpretation);
51887 PartialInterpretation.openWorldElements(interpretation,element);
51888 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
51889 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
51890 neg find mustInstanceOfEEnum_class(problem,interpretation,element);
51891 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
51892 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
51893 neg find mustInstanceOfEClass_class(problem,interpretation,element);
51894 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
51895 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
51896 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
51897 neg find mustInstanceOfEObject_class(problem,interpretation,element);
51898 neg find scopeDisallowsNewEDataType_class(problem, interpretation);
51899 neg find isPrimitive(element);
51900} or
51901{ find mustInstanceOfEDataType_class(problem,interpretation,element); }
51902/**
51903 * An element must be an instance of type "EEnum class".
51904 */
51905private pattern mustInstanceOfEEnum_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
51906 Type.name(type,"EEnum class");
51907 find directInstanceOf(problem,interpretation,element,type);
51908}
51909private pattern scopeDisallowsNewEEnum_class(problem:LogicProblem, interpretation:PartialInterpretation) {
51910 find interpretation(problem,interpretation);
51911 PartialInterpretation.scopes(interpretation,scope);
51912 Scope.targetTypeInterpretation(scope,typeInterpretation);
51913 Scope.maxNewElements(scope,0);
51914 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
51915 Type.name(type,"EEnum class");
51916}
51917
51918/**
51919 * An element may be an instance of type "EEnum class".
51920 */
51921private pattern mayInstanceOfEEnum_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
51922{
51923 find interpretation(problem,interpretation);
51924 PartialInterpretation.newElements(interpretation,element);
51925 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
51926 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
51927 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
51928 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
51929 neg find mustInstanceOfEClass_class(problem,interpretation,element);
51930 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
51931 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
51932 neg find mustInstanceOfEObject_class(problem,interpretation,element);
51933 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
51934 neg find scopeDisallowsNewEEnum_class(problem, interpretation);
51935 neg find isPrimitive(element);
51936} or {
51937 find interpretation(problem,interpretation);
51938 PartialInterpretation.openWorldElements(interpretation,element);
51939 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
51940 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
51941 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
51942 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
51943 neg find mustInstanceOfEClass_class(problem,interpretation,element);
51944 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
51945 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
51946 neg find mustInstanceOfEObject_class(problem,interpretation,element);
51947 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
51948 neg find scopeDisallowsNewEEnum_class(problem, interpretation);
51949 neg find isPrimitive(element);
51950} or
51951{ find mustInstanceOfEEnum_class(problem,interpretation,element); }
51952/**
51953 * An element must be an instance of type "EEnumLiteral class".
51954 */
51955private pattern mustInstanceOfEEnumLiteral_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
51956 Type.name(type,"EEnumLiteral class");
51957 find directInstanceOf(problem,interpretation,element,type);
51958}
51959private pattern scopeDisallowsNewEEnumLiteral_class(problem:LogicProblem, interpretation:PartialInterpretation) {
51960 find interpretation(problem,interpretation);
51961 PartialInterpretation.scopes(interpretation,scope);
51962 Scope.targetTypeInterpretation(scope,typeInterpretation);
51963 Scope.maxNewElements(scope,0);
51964 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
51965 Type.name(type,"EEnumLiteral class");
51966}
51967
51968/**
51969 * An element may be an instance of type "EEnumLiteral class".
51970 */
51971private pattern mayInstanceOfEEnumLiteral_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
51972{
51973 find interpretation(problem,interpretation);
51974 PartialInterpretation.newElements(interpretation,element);
51975 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
51976 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
51977 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
51978 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
51979 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
51980 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
51981 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
51982 neg find mustInstanceOfEObject_class(problem,interpretation,element);
51983 neg find scopeDisallowsNewEEnumLiteral_class(problem, interpretation);
51984 neg find isPrimitive(element);
51985} or {
51986 find interpretation(problem,interpretation);
51987 PartialInterpretation.openWorldElements(interpretation,element);
51988 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
51989 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
51990 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
51991 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
51992 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
51993 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
51994 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
51995 neg find mustInstanceOfEObject_class(problem,interpretation,element);
51996 neg find scopeDisallowsNewEEnumLiteral_class(problem, interpretation);
51997 neg find isPrimitive(element);
51998} or
51999{ find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); }
52000/**
52001 * An element must be an instance of type "EModelElement class".
52002 */
52003private pattern mustInstanceOfEModelElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
52004 Type.name(type,"EModelElement class");
52005 find directInstanceOf(problem,interpretation,element,type);
52006}
52007private pattern scopeDisallowsNewEModelElement_class(problem:LogicProblem, interpretation:PartialInterpretation) {
52008 find interpretation(problem,interpretation);
52009 PartialInterpretation.scopes(interpretation,scope);
52010 Scope.targetTypeInterpretation(scope,typeInterpretation);
52011 Scope.maxNewElements(scope,0);
52012 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
52013 Type.name(type,"EModelElement class");
52014}
52015
52016/**
52017 * An element may be an instance of type "EModelElement class".
52018 */
52019private pattern mayInstanceOfEModelElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
52020{
52021 find interpretation(problem,interpretation);
52022 PartialInterpretation.newElements(interpretation,element);
52023 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
52024 neg find mustInstanceOfENamedElement_class(problem,interpretation,element);
52025 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
52026 neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element);
52027 neg find mustInstanceOfEObject_class(problem,interpretation,element);
52028 neg find scopeDisallowsNewEModelElement_class(problem, interpretation);
52029 neg find isPrimitive(element);
52030} or {
52031 find interpretation(problem,interpretation);
52032 PartialInterpretation.openWorldElements(interpretation,element);
52033 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
52034 neg find mustInstanceOfENamedElement_class(problem,interpretation,element);
52035 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
52036 neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element);
52037 neg find mustInstanceOfEObject_class(problem,interpretation,element);
52038 neg find scopeDisallowsNewEModelElement_class(problem, interpretation);
52039 neg find isPrimitive(element);
52040} or
52041{ find mustInstanceOfEModelElement_class(problem,interpretation,element); }
52042/**
52043 * An element must be an instance of type "ENamedElement class".
52044 */
52045private pattern mustInstanceOfENamedElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
52046 Type.name(type,"ENamedElement class");
52047 find directInstanceOf(problem,interpretation,element,type);
52048}
52049private pattern scopeDisallowsNewENamedElement_class(problem:LogicProblem, interpretation:PartialInterpretation) {
52050 find interpretation(problem,interpretation);
52051 PartialInterpretation.scopes(interpretation,scope);
52052 Scope.targetTypeInterpretation(scope,typeInterpretation);
52053 Scope.maxNewElements(scope,0);
52054 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
52055 Type.name(type,"ENamedElement class");
52056}
52057
52058/**
52059 * An element may be an instance of type "ENamedElement class".
52060 */
52061private pattern mayInstanceOfENamedElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
52062{
52063 find interpretation(problem,interpretation);
52064 PartialInterpretation.newElements(interpretation,element);
52065 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
52066 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
52067 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
52068 neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element);
52069 neg find mustInstanceOfEObject_class(problem,interpretation,element);
52070 neg find scopeDisallowsNewENamedElement_class(problem, interpretation);
52071 neg find isPrimitive(element);
52072} or {
52073 find interpretation(problem,interpretation);
52074 PartialInterpretation.openWorldElements(interpretation,element);
52075 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
52076 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
52077 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
52078 neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element);
52079 neg find mustInstanceOfEObject_class(problem,interpretation,element);
52080 neg find scopeDisallowsNewENamedElement_class(problem, interpretation);
52081 neg find isPrimitive(element);
52082} or
52083{ find mustInstanceOfENamedElement_class(problem,interpretation,element); }
52084/**
52085 * An element must be an instance of type "EObject class".
52086 */
52087private pattern mustInstanceOfEObject_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
52088 Type.name(type,"EObject class");
52089 find directInstanceOf(problem,interpretation,element,type);
52090}
52091private pattern scopeDisallowsNewEObject_class(problem:LogicProblem, interpretation:PartialInterpretation) {
52092 find interpretation(problem,interpretation);
52093 PartialInterpretation.scopes(interpretation,scope);
52094 Scope.targetTypeInterpretation(scope,typeInterpretation);
52095 Scope.maxNewElements(scope,0);
52096 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
52097 Type.name(type,"EObject class");
52098}
52099
52100/**
52101 * An element may be an instance of type "EObject class".
52102 */
52103private pattern mayInstanceOfEObject_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
52104{
52105 find interpretation(problem,interpretation);
52106 PartialInterpretation.newElements(interpretation,element);
52107 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
52108 neg find mustInstanceOfEModelElement_class(problem,interpretation,element);
52109 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
52110 neg find scopeDisallowsNewEObject_class(problem, interpretation);
52111 neg find isPrimitive(element);
52112} or {
52113 find interpretation(problem,interpretation);
52114 PartialInterpretation.openWorldElements(interpretation,element);
52115 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
52116 neg find mustInstanceOfEModelElement_class(problem,interpretation,element);
52117 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
52118 neg find scopeDisallowsNewEObject_class(problem, interpretation);
52119 neg find isPrimitive(element);
52120} or
52121{ find mustInstanceOfEObject_class(problem,interpretation,element); }
52122/**
52123 * An element must be an instance of type "EOperation class".
52124 */
52125private pattern mustInstanceOfEOperation_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
52126 Type.name(type,"EOperation class");
52127 find directInstanceOf(problem,interpretation,element,type);
52128}
52129private pattern scopeDisallowsNewEOperation_class(problem:LogicProblem, interpretation:PartialInterpretation) {
52130 find interpretation(problem,interpretation);
52131 PartialInterpretation.scopes(interpretation,scope);
52132 Scope.targetTypeInterpretation(scope,typeInterpretation);
52133 Scope.maxNewElements(scope,0);
52134 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
52135 Type.name(type,"EOperation class");
52136}
52137
52138/**
52139 * An element may be an instance of type "EOperation class".
52140 */
52141private pattern mayInstanceOfEOperation_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
52142{
52143 find interpretation(problem,interpretation);
52144 PartialInterpretation.newElements(interpretation,element);
52145 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
52146 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
52147 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
52148 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
52149 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
52150 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
52151 neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element);
52152 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
52153 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
52154 neg find mustInstanceOfEObject_class(problem,interpretation,element);
52155 neg find scopeDisallowsNewEOperation_class(problem, interpretation);
52156 neg find isPrimitive(element);
52157} or {
52158 find interpretation(problem,interpretation);
52159 PartialInterpretation.openWorldElements(interpretation,element);
52160 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
52161 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
52162 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
52163 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
52164 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
52165 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
52166 neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element);
52167 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
52168 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
52169 neg find mustInstanceOfEObject_class(problem,interpretation,element);
52170 neg find scopeDisallowsNewEOperation_class(problem, interpretation);
52171 neg find isPrimitive(element);
52172} or
52173{ find mustInstanceOfEOperation_class(problem,interpretation,element); }
52174/**
52175 * An element must be an instance of type "EPackage class".
52176 */
52177private pattern mustInstanceOfEPackage_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
52178 Type.name(type,"EPackage class");
52179 find directInstanceOf(problem,interpretation,element,type);
52180}
52181private pattern scopeDisallowsNewEPackage_class(problem:LogicProblem, interpretation:PartialInterpretation) {
52182 find interpretation(problem,interpretation);
52183 PartialInterpretation.scopes(interpretation,scope);
52184 Scope.targetTypeInterpretation(scope,typeInterpretation);
52185 Scope.maxNewElements(scope,0);
52186 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
52187 Type.name(type,"EPackage class");
52188}
52189
52190/**
52191 * An element may be an instance of type "EPackage class".
52192 */
52193private pattern mayInstanceOfEPackage_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
52194{
52195 find interpretation(problem,interpretation);
52196 PartialInterpretation.newElements(interpretation,element);
52197 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
52198 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
52199 neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element);
52200 neg find mustInstanceOfEObject_class(problem,interpretation,element);
52201 neg find scopeDisallowsNewEPackage_class(problem, interpretation);
52202 neg find isPrimitive(element);
52203} or {
52204 find interpretation(problem,interpretation);
52205 PartialInterpretation.openWorldElements(interpretation,element);
52206 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
52207 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
52208 neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element);
52209 neg find mustInstanceOfEObject_class(problem,interpretation,element);
52210 neg find scopeDisallowsNewEPackage_class(problem, interpretation);
52211 neg find isPrimitive(element);
52212} or
52213{ find mustInstanceOfEPackage_class(problem,interpretation,element); }
52214/**
52215 * An element must be an instance of type "EParameter class".
52216 */ 40842 */
52217private pattern mustInstanceOfEParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 40843private pattern mustInstanceOfFunctionalElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
52218 Type.name(type,"EParameter class"); 40844 Type.name(type,"FunctionalElement class");
52219 find directInstanceOf(problem,interpretation,element,type); 40845 find directInstanceOf(problem,interpretation,element,type);
52220} 40846}
52221private pattern scopeDisallowsNewEParameter_class(problem:LogicProblem, interpretation:PartialInterpretation) { 40847private pattern scopeDisallowsNewFunctionalElement_class(problem:LogicProblem, interpretation:PartialInterpretation) {
52222 find interpretation(problem,interpretation); 40848 find interpretation(problem,interpretation);
52223 PartialInterpretation.scopes(interpretation,scope); 40849 PartialInterpretation.scopes(interpretation,scope);
52224 Scope.targetTypeInterpretation(scope,typeInterpretation); 40850 Scope.targetTypeInterpretation(scope,typeInterpretation);
52225 Scope.maxNewElements(scope,0); 40851 Scope.maxNewElements(scope,0);
52226 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 40852 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
52227 Type.name(type,"EParameter class"); 40853 Type.name(type,"FunctionalElement class");
52228} 40854}
52229 40855
52230/** 40856/**
52231 * An element may be an instance of type "EParameter class". 40857 * An element may be an instance of type "FunctionalElement class".
52232 */ 40858 */
52233private pattern mayInstanceOfEParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 40859private pattern mayInstanceOfFunctionalElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
52234{ 40860{
52235 find interpretation(problem,interpretation); 40861 find interpretation(problem,interpretation);
52236 PartialInterpretation.newElements(interpretation,element); 40862 PartialInterpretation.newElements(interpretation,element);
52237 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 40863 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
52238 neg find mustInstanceOfEPackage_class(problem,interpretation,element); 40864 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
52239 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 40865 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
52240 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 40866 neg find mustInstanceOfFunction_class(problem,interpretation,element);
52241 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); 40867 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
52242 neg find mustInstanceOfEOperation_class(problem,interpretation,element); 40868 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
52243 neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); 40869 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
52244 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
52245 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
52246 neg find mustInstanceOfEObject_class(problem,interpretation,element);
52247 neg find scopeDisallowsNewEParameter_class(problem, interpretation);
52248 neg find isPrimitive(element); 40870 neg find isPrimitive(element);
52249} or { 40871} or {
52250 find interpretation(problem,interpretation); 40872 find interpretation(problem,interpretation);
52251 PartialInterpretation.openWorldElements(interpretation,element); 40873 PartialInterpretation.openWorldElements(interpretation,element);
52252 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 40874 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
52253 neg find mustInstanceOfEPackage_class(problem,interpretation,element); 40875 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
52254 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 40876 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
52255 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 40877 neg find mustInstanceOfFunction_class(problem,interpretation,element);
52256 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); 40878 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
52257 neg find mustInstanceOfEOperation_class(problem,interpretation,element); 40879 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
52258 neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); 40880 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
52259 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
52260 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
52261 neg find mustInstanceOfEObject_class(problem,interpretation,element);
52262 neg find scopeDisallowsNewEParameter_class(problem, interpretation);
52263 neg find isPrimitive(element); 40881 neg find isPrimitive(element);
52264} or 40882} or
52265{ find mustInstanceOfEParameter_class(problem,interpretation,element); } 40883{ find mustInstanceOfFunctionalElement_class(problem,interpretation,element); }
52266/** 40884/**
52267 * An element must be an instance of type "EReference class". 40885 * An element must be an instance of type "FunctionalArchitectureModel class".
52268 */ 40886 */
52269private pattern mustInstanceOfEReference_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 40887private pattern mustInstanceOfFunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
52270 Type.name(type,"EReference class"); 40888 Type.name(type,"FunctionalArchitectureModel class");
52271 find directInstanceOf(problem,interpretation,element,type); 40889 find directInstanceOf(problem,interpretation,element,type);
52272} 40890}
52273private pattern scopeDisallowsNewEReference_class(problem:LogicProblem, interpretation:PartialInterpretation) { 40891private pattern scopeDisallowsNewFunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation) {
52274 find interpretation(problem,interpretation); 40892 find interpretation(problem,interpretation);
52275 PartialInterpretation.scopes(interpretation,scope); 40893 PartialInterpretation.scopes(interpretation,scope);
52276 Scope.targetTypeInterpretation(scope,typeInterpretation); 40894 Scope.targetTypeInterpretation(scope,typeInterpretation);
52277 Scope.maxNewElements(scope,0); 40895 Scope.maxNewElements(scope,0);
52278 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 40896 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
52279 Type.name(type,"EReference class"); 40897 Type.name(type,"FunctionalArchitectureModel class");
52280} 40898}
52281 40899
52282/** 40900/**
52283 * An element may be an instance of type "EReference class". 40901 * An element may be an instance of type "FunctionalArchitectureModel class".
52284 */ 40902 */
52285private pattern mayInstanceOfEReference_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 40903private pattern mayInstanceOfFunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
52286{ 40904{
52287 find interpretation(problem,interpretation); 40905 find interpretation(problem,interpretation);
52288 PartialInterpretation.newElements(interpretation,element); 40906 PartialInterpretation.newElements(interpretation,element);
52289 neg find mustInstanceOfEPackage_class(problem,interpretation,element); 40907 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
52290 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 40908 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
52291 neg find mustInstanceOfEAttribute_class(problem,interpretation,element); 40909 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
52292 neg find mustInstanceOfEParameter_class(problem,interpretation,element); 40910 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
52293 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 40911 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
52294 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 40912 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
52295 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
52296 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
52297 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
52298 neg find mustInstanceOfEObject_class(problem,interpretation,element);
52299 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
52300 neg find scopeDisallowsNewEReference_class(problem, interpretation);
52301 neg find isPrimitive(element); 40913 neg find isPrimitive(element);
52302} or { 40914} or {
52303 find interpretation(problem,interpretation); 40915 find interpretation(problem,interpretation);
52304 PartialInterpretation.openWorldElements(interpretation,element); 40916 PartialInterpretation.openWorldElements(interpretation,element);
52305 neg find mustInstanceOfEPackage_class(problem,interpretation,element); 40917 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
52306 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 40918 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
52307 neg find mustInstanceOfEAttribute_class(problem,interpretation,element); 40919 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
52308 neg find mustInstanceOfEParameter_class(problem,interpretation,element); 40920 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
52309 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 40921 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
52310 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 40922 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
52311 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
52312 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
52313 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
52314 neg find mustInstanceOfEObject_class(problem,interpretation,element);
52315 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
52316 neg find scopeDisallowsNewEReference_class(problem, interpretation);
52317 neg find isPrimitive(element); 40923 neg find isPrimitive(element);
52318} or 40924} or
52319{ find mustInstanceOfEReference_class(problem,interpretation,element); } 40925{ find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); }
52320/** 40926/**
52321 * An element must be an instance of type "EStructuralFeature class". 40927 * An element must be an instance of type "Function class".
52322 */ 40928 */
52323private pattern mustInstanceOfEStructuralFeature_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 40929private pattern mustInstanceOfFunction_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
52324 Type.name(type,"EStructuralFeature class"); 40930 Type.name(type,"Function class");
52325 find directInstanceOf(problem,interpretation,element,type); 40931 find directInstanceOf(problem,interpretation,element,type);
52326} 40932}
52327private pattern scopeDisallowsNewEStructuralFeature_class(problem:LogicProblem, interpretation:PartialInterpretation) { 40933private pattern scopeDisallowsNewFunction_class(problem:LogicProblem, interpretation:PartialInterpretation) {
52328 find interpretation(problem,interpretation); 40934 find interpretation(problem,interpretation);
52329 PartialInterpretation.scopes(interpretation,scope); 40935 PartialInterpretation.scopes(interpretation,scope);
52330 Scope.targetTypeInterpretation(scope,typeInterpretation); 40936 Scope.targetTypeInterpretation(scope,typeInterpretation);
52331 Scope.maxNewElements(scope,0); 40937 Scope.maxNewElements(scope,0);
52332 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 40938 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
52333 Type.name(type,"EStructuralFeature class"); 40939 Type.name(type,"Function class");
52334} 40940}
52335 40941
52336/** 40942/**
52337 * An element may be an instance of type "EStructuralFeature class". 40943 * An element may be an instance of type "Function class".
52338 */ 40944 */
52339private pattern mayInstanceOfEStructuralFeature_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 40945private pattern mayInstanceOfFunction_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
52340{ 40946{
52341 find interpretation(problem,interpretation); 40947 find interpretation(problem,interpretation);
52342 PartialInterpretation.newElements(interpretation,element); 40948 PartialInterpretation.newElements(interpretation,element);
52343 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 40949 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
52344 neg find mustInstanceOfEPackage_class(problem,interpretation,element); 40950 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
52345 neg find mustInstanceOfEAttribute_class(problem,interpretation,element); 40951 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
52346 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 40952 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
52347 neg find mustInstanceOfEParameter_class(problem,interpretation,element); 40953 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
52348 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 40954 neg find scopeDisallowsNewFunction_class(problem, interpretation);
52349 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
52350 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
52351 neg find mustInstanceOfEReference_class(problem,interpretation,element);
52352 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
52353 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
52354 neg find mustInstanceOfEObject_class(problem,interpretation,element);
52355 neg find scopeDisallowsNewEStructuralFeature_class(problem, interpretation);
52356 neg find isPrimitive(element); 40955 neg find isPrimitive(element);
52357} or { 40956} or {
52358 find interpretation(problem,interpretation); 40957 find interpretation(problem,interpretation);
52359 PartialInterpretation.openWorldElements(interpretation,element); 40958 PartialInterpretation.openWorldElements(interpretation,element);
52360 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 40959 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
52361 neg find mustInstanceOfEPackage_class(problem,interpretation,element); 40960 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
52362 neg find mustInstanceOfEAttribute_class(problem,interpretation,element); 40961 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
52363 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 40962 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
52364 neg find mustInstanceOfEParameter_class(problem,interpretation,element); 40963 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
52365 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 40964 neg find scopeDisallowsNewFunction_class(problem, interpretation);
52366 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
52367 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
52368 neg find mustInstanceOfEReference_class(problem,interpretation,element);
52369 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
52370 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
52371 neg find mustInstanceOfEObject_class(problem,interpretation,element);
52372 neg find scopeDisallowsNewEStructuralFeature_class(problem, interpretation);
52373 neg find isPrimitive(element); 40965 neg find isPrimitive(element);
52374} or 40966} or
52375{ find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); } 40967{ find mustInstanceOfFunction_class(problem,interpretation,element); }
52376/** 40968/**
52377 * An element must be an instance of type "ETypedElement class". 40969 * An element must be an instance of type "FAMTerminator class".
52378 */ 40970 */
52379private pattern mustInstanceOfETypedElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 40971private pattern mustInstanceOfFAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
52380 Type.name(type,"ETypedElement class"); 40972 Type.name(type,"FAMTerminator class");
52381 find directInstanceOf(problem,interpretation,element,type); 40973 find directInstanceOf(problem,interpretation,element,type);
52382} 40974}
52383private pattern scopeDisallowsNewETypedElement_class(problem:LogicProblem, interpretation:PartialInterpretation) { 40975private pattern scopeDisallowsNewFAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation) {
52384 find interpretation(problem,interpretation); 40976 find interpretation(problem,interpretation);
52385 PartialInterpretation.scopes(interpretation,scope); 40977 PartialInterpretation.scopes(interpretation,scope);
52386 Scope.targetTypeInterpretation(scope,typeInterpretation); 40978 Scope.targetTypeInterpretation(scope,typeInterpretation);
52387 Scope.maxNewElements(scope,0); 40979 Scope.maxNewElements(scope,0);
52388 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 40980 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
52389 Type.name(type,"ETypedElement class"); 40981 Type.name(type,"FAMTerminator class");
52390} 40982}
52391 40983
52392/** 40984/**
52393 * An element may be an instance of type "ETypedElement class". 40985 * An element may be an instance of type "FAMTerminator class".
52394 */ 40986 */
52395private pattern mayInstanceOfETypedElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 40987private pattern mayInstanceOfFAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
52396{ 40988{
52397 find interpretation(problem,interpretation); 40989 find interpretation(problem,interpretation);
52398 PartialInterpretation.newElements(interpretation,element); 40990 PartialInterpretation.newElements(interpretation,element);
52399 neg find mustInstanceOfEPackage_class(problem,interpretation,element); 40991 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
52400 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 40992 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
52401 neg find mustInstanceOfEParameter_class(problem,interpretation,element); 40993 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
52402 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 40994 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
52403 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 40995 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
52404 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); 40996 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
52405 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
52406 neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element);
52407 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
52408 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
52409 neg find mustInstanceOfEObject_class(problem,interpretation,element);
52410 neg find scopeDisallowsNewETypedElement_class(problem, interpretation);
52411 neg find isPrimitive(element); 40997 neg find isPrimitive(element);
52412} or { 40998} or {
52413 find interpretation(problem,interpretation); 40999 find interpretation(problem,interpretation);
52414 PartialInterpretation.openWorldElements(interpretation,element); 41000 PartialInterpretation.openWorldElements(interpretation,element);
52415 neg find mustInstanceOfEPackage_class(problem,interpretation,element); 41001 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
52416 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 41002 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
52417 neg find mustInstanceOfEParameter_class(problem,interpretation,element); 41003 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
52418 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 41004 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
52419 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 41005 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
52420 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); 41006 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
52421 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
52422 neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element);
52423 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
52424 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
52425 neg find mustInstanceOfEObject_class(problem,interpretation,element);
52426 neg find scopeDisallowsNewETypedElement_class(problem, interpretation);
52427 neg find isPrimitive(element); 41007 neg find isPrimitive(element);
52428} or 41008} or
52429{ find mustInstanceOfETypedElement_class(problem,interpretation,element); } 41009{ find mustInstanceOfFAMTerminator_class(problem,interpretation,element); }
52430/** 41010/**
52431 * An element must be an instance of type "EStringToStringMapEntry class". 41011 * An element must be an instance of type "InformationLink class".
52432 */ 41012 */
52433private pattern mustInstanceOfEStringToStringMapEntry_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 41013private pattern mustInstanceOfInformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
52434 Type.name(type,"EStringToStringMapEntry class"); 41014 Type.name(type,"InformationLink class");
52435 find directInstanceOf(problem,interpretation,element,type); 41015 find directInstanceOf(problem,interpretation,element,type);
52436} 41016}
52437private pattern scopeDisallowsNewEStringToStringMapEntry_class(problem:LogicProblem, interpretation:PartialInterpretation) { 41017private pattern scopeDisallowsNewInformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation) {
52438 find interpretation(problem,interpretation); 41018 find interpretation(problem,interpretation);
52439 PartialInterpretation.scopes(interpretation,scope); 41019 PartialInterpretation.scopes(interpretation,scope);
52440 Scope.targetTypeInterpretation(scope,typeInterpretation); 41020 Scope.targetTypeInterpretation(scope,typeInterpretation);
52441 Scope.maxNewElements(scope,0); 41021 Scope.maxNewElements(scope,0);
52442 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 41022 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
52443 Type.name(type,"EStringToStringMapEntry class"); 41023 Type.name(type,"InformationLink class");
52444} 41024}
52445 41025
52446/** 41026/**
52447 * An element may be an instance of type "EStringToStringMapEntry class". 41027 * An element may be an instance of type "InformationLink class".
52448 */ 41028 */
52449private pattern mayInstanceOfEStringToStringMapEntry_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 41029private pattern mayInstanceOfInformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
52450{ 41030{
52451 find interpretation(problem,interpretation); 41031 find interpretation(problem,interpretation);
52452 PartialInterpretation.newElements(interpretation,element); 41032 PartialInterpretation.newElements(interpretation,element);
52453 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 41033 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
52454 neg find mustInstanceOfEModelElement_class(problem,interpretation,element); 41034 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
52455 neg find mustInstanceOfEObject_class(problem,interpretation,element); 41035 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
52456 neg find scopeDisallowsNewEStringToStringMapEntry_class(problem, interpretation); 41036 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
41037 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
41038 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
52457 neg find isPrimitive(element); 41039 neg find isPrimitive(element);
52458} or { 41040} or {
52459 find interpretation(problem,interpretation); 41041 find interpretation(problem,interpretation);
52460 PartialInterpretation.openWorldElements(interpretation,element); 41042 PartialInterpretation.openWorldElements(interpretation,element);
52461 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 41043 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
52462 neg find mustInstanceOfEModelElement_class(problem,interpretation,element); 41044 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
52463 neg find mustInstanceOfEObject_class(problem,interpretation,element); 41045 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
52464 neg find scopeDisallowsNewEStringToStringMapEntry_class(problem, interpretation); 41046 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
41047 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
41048 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
52465 neg find isPrimitive(element); 41049 neg find isPrimitive(element);
52466} or 41050} or
52467{ find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); } 41051{ find mustInstanceOfInformationLink_class(problem,interpretation,element); }
52468/** 41052/**
52469 * An element must be an instance of type "EGenericType class". 41053 * An element must be an instance of type "FunctionalInterface class".
52470 */ 41054 */
52471private pattern mustInstanceOfEGenericType_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 41055private pattern mustInstanceOfFunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
52472 Type.name(type,"EGenericType class"); 41056 Type.name(type,"FunctionalInterface class");
52473 find directInstanceOf(problem,interpretation,element,type); 41057 find directInstanceOf(problem,interpretation,element,type);
52474} 41058}
52475private pattern scopeDisallowsNewEGenericType_class(problem:LogicProblem, interpretation:PartialInterpretation) { 41059private pattern scopeDisallowsNewFunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation) {
52476 find interpretation(problem,interpretation); 41060 find interpretation(problem,interpretation);
52477 PartialInterpretation.scopes(interpretation,scope); 41061 PartialInterpretation.scopes(interpretation,scope);
52478 Scope.targetTypeInterpretation(scope,typeInterpretation); 41062 Scope.targetTypeInterpretation(scope,typeInterpretation);
52479 Scope.maxNewElements(scope,0); 41063 Scope.maxNewElements(scope,0);
52480 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 41064 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
52481 Type.name(type,"EGenericType class"); 41065 Type.name(type,"FunctionalInterface class");
52482} 41066}
52483 41067
52484/** 41068/**
52485 * An element may be an instance of type "EGenericType class". 41069 * An element may be an instance of type "FunctionalInterface class".
52486 */ 41070 */
52487private pattern mayInstanceOfEGenericType_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 41071private pattern mayInstanceOfFunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
52488{ 41072{
52489 find interpretation(problem,interpretation); 41073 find interpretation(problem,interpretation);
52490 PartialInterpretation.newElements(interpretation,element); 41074 PartialInterpretation.newElements(interpretation,element);
52491 neg find mustInstanceOfEModelElement_class(problem,interpretation,element); 41075 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
52492 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 41076 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
52493 neg find mustInstanceOfEObject_class(problem,interpretation,element); 41077 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
52494 neg find scopeDisallowsNewEGenericType_class(problem, interpretation); 41078 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
41079 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
41080 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
52495 neg find isPrimitive(element); 41081 neg find isPrimitive(element);
52496} or { 41082} or {
52497 find interpretation(problem,interpretation); 41083 find interpretation(problem,interpretation);
52498 PartialInterpretation.openWorldElements(interpretation,element); 41084 PartialInterpretation.openWorldElements(interpretation,element);
52499 neg find mustInstanceOfEModelElement_class(problem,interpretation,element); 41085 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
52500 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 41086 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
52501 neg find mustInstanceOfEObject_class(problem,interpretation,element); 41087 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
52502 neg find scopeDisallowsNewEGenericType_class(problem, interpretation); 41088 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
41089 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
41090 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
52503 neg find isPrimitive(element); 41091 neg find isPrimitive(element);
52504} or 41092} or
52505{ find mustInstanceOfEGenericType_class(problem,interpretation,element); } 41093{ find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); }
52506/** 41094/**
52507 * An element must be an instance of type "ETypeParameter class". 41095 * An element must be an instance of type "FunctionalInput class".
52508 */ 41096 */
52509private pattern mustInstanceOfETypeParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 41097private pattern mustInstanceOfFunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
52510 Type.name(type,"ETypeParameter class"); 41098 Type.name(type,"FunctionalInput class");
52511 find directInstanceOf(problem,interpretation,element,type); 41099 find directInstanceOf(problem,interpretation,element,type);
52512} 41100}
52513private pattern scopeDisallowsNewETypeParameter_class(problem:LogicProblem, interpretation:PartialInterpretation) { 41101private pattern scopeDisallowsNewFunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation) {
52514 find interpretation(problem,interpretation); 41102 find interpretation(problem,interpretation);
52515 PartialInterpretation.scopes(interpretation,scope); 41103 PartialInterpretation.scopes(interpretation,scope);
52516 Scope.targetTypeInterpretation(scope,typeInterpretation); 41104 Scope.targetTypeInterpretation(scope,typeInterpretation);
52517 Scope.maxNewElements(scope,0); 41105 Scope.maxNewElements(scope,0);
52518 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 41106 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
52519 Type.name(type,"ETypeParameter class"); 41107 Type.name(type,"FunctionalInput class");
52520} 41108}
52521 41109
52522/** 41110/**
52523 * An element may be an instance of type "ETypeParameter class". 41111 * An element may be an instance of type "FunctionalInput class".
52524 */ 41112 */
52525private pattern mayInstanceOfETypeParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 41113private pattern mayInstanceOfFunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
52526{ 41114{
52527 find interpretation(problem,interpretation); 41115 find interpretation(problem,interpretation);
52528 PartialInterpretation.newElements(interpretation,element); 41116 PartialInterpretation.newElements(interpretation,element);
52529 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 41117 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
52530 neg find mustInstanceOfEPackage_class(problem,interpretation,element); 41118 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
52531 neg find mustInstanceOfETypedElement_class(problem,interpretation,element); 41119 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
52532 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 41120 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
52533 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 41121 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
52534 neg find mustInstanceOfEClassifier_class(problem,interpretation,element); 41122 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
52535 neg find mustInstanceOfEObject_class(problem,interpretation,element); 41123 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
52536 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
52537 neg find scopeDisallowsNewETypeParameter_class(problem, interpretation);
52538 neg find isPrimitive(element); 41124 neg find isPrimitive(element);
52539} or { 41125} or {
52540 find interpretation(problem,interpretation); 41126 find interpretation(problem,interpretation);
52541 PartialInterpretation.openWorldElements(interpretation,element); 41127 PartialInterpretation.openWorldElements(interpretation,element);
52542 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 41128 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
52543 neg find mustInstanceOfEPackage_class(problem,interpretation,element); 41129 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
52544 neg find mustInstanceOfETypedElement_class(problem,interpretation,element); 41130 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
52545 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 41131 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
52546 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 41132 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
52547 neg find mustInstanceOfEClassifier_class(problem,interpretation,element); 41133 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
52548 neg find mustInstanceOfEObject_class(problem,interpretation,element); 41134 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
52549 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
52550 neg find scopeDisallowsNewETypeParameter_class(problem, interpretation);
52551 neg find isPrimitive(element); 41135 neg find isPrimitive(element);
52552} or 41136} or
52553{ find mustInstanceOfETypeParameter_class(problem,interpretation,element); } 41137{ find mustInstanceOfFunctionalInput_class(problem,interpretation,element); }
52554/**
52555 * An element must be an instance of type "EModelElement class DefinedPart".
52556 */
52557private pattern mustInstanceOfEModelElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
52558 Type.name(type,"EModelElement class DefinedPart");
52559 find directInstanceOf(problem,interpretation,element,type);
52560}
52561private pattern scopeDisallowsNewEModelElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
52562 find interpretation(problem,interpretation);
52563 PartialInterpretation.scopes(interpretation,scope);
52564 Scope.targetTypeInterpretation(scope,typeInterpretation);
52565 Scope.maxNewElements(scope,0);
52566 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
52567 Type.name(type,"EModelElement class DefinedPart");
52568}
52569
52570/**
52571 * An element may be an instance of type "EModelElement class DefinedPart".
52572 */
52573private pattern mayInstanceOfEModelElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
52574{ find mustInstanceOfEModelElement_class_DefinedPart(problem,interpretation,element); }
52575/** 41138/**
52576 * An element must be an instance of type "EModelElement class UndefinedPart". 41139 * An element must be an instance of type "FunctionalOutput class".
52577 */ 41140 */
52578private pattern mustInstanceOfEModelElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 41141private pattern mustInstanceOfFunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
52579 Type.name(type,"EModelElement class UndefinedPart"); 41142 Type.name(type,"FunctionalOutput class");
52580 find directInstanceOf(problem,interpretation,element,type); 41143 find directInstanceOf(problem,interpretation,element,type);
52581} 41144}
52582private pattern scopeDisallowsNewEModelElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { 41145private pattern scopeDisallowsNewFunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation) {
52583 find interpretation(problem,interpretation); 41146 find interpretation(problem,interpretation);
52584 PartialInterpretation.scopes(interpretation,scope); 41147 PartialInterpretation.scopes(interpretation,scope);
52585 Scope.targetTypeInterpretation(scope,typeInterpretation); 41148 Scope.targetTypeInterpretation(scope,typeInterpretation);
52586 Scope.maxNewElements(scope,0); 41149 Scope.maxNewElements(scope,0);
52587 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 41150 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
52588 Type.name(type,"EModelElement class UndefinedPart"); 41151 Type.name(type,"FunctionalOutput class");
52589} 41152}
52590 41153
52591/** 41154/**
52592 * An element may be an instance of type "EModelElement class UndefinedPart". 41155 * An element may be an instance of type "FunctionalOutput class".
52593 */ 41156 */
52594private pattern mayInstanceOfEModelElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 41157private pattern mayInstanceOfFunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
52595{ 41158{
52596 find interpretation(problem,interpretation); 41159 find interpretation(problem,interpretation);
52597 PartialInterpretation.newElements(interpretation,element); 41160 PartialInterpretation.newElements(interpretation,element);
52598 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 41161 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
52599 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 41162 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
52600 neg find mustInstanceOfENamedElement_class(problem,interpretation,element); 41163 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
52601 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 41164 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
52602 neg find mustInstanceOfEObject_class(problem,interpretation,element); 41165 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
52603 neg find scopeDisallowsNewEModelElement_class_UndefinedPart(problem, interpretation); 41166 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
41167 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
52604 neg find isPrimitive(element); 41168 neg find isPrimitive(element);
52605} or { 41169} or {
52606 find interpretation(problem,interpretation); 41170 find interpretation(problem,interpretation);
52607 PartialInterpretation.openWorldElements(interpretation,element); 41171 PartialInterpretation.openWorldElements(interpretation,element);
52608 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 41172 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
52609 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 41173 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
52610 neg find mustInstanceOfENamedElement_class(problem,interpretation,element); 41174 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
52611 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 41175 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
52612 neg find mustInstanceOfEObject_class(problem,interpretation,element); 41176 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
52613 neg find scopeDisallowsNewEModelElement_class_UndefinedPart(problem, interpretation); 41177 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
41178 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
52614 neg find isPrimitive(element); 41179 neg find isPrimitive(element);
52615} or 41180} or
52616{ find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element); } 41181{ find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); }
52617/**
52618 * An element must be an instance of type "ENamedElement class DefinedPart".
52619 */
52620private pattern mustInstanceOfENamedElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
52621 Type.name(type,"ENamedElement class DefinedPart");
52622 find directInstanceOf(problem,interpretation,element,type);
52623}
52624private pattern scopeDisallowsNewENamedElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
52625 find interpretation(problem,interpretation);
52626 PartialInterpretation.scopes(interpretation,scope);
52627 Scope.targetTypeInterpretation(scope,typeInterpretation);
52628 Scope.maxNewElements(scope,0);
52629 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
52630 Type.name(type,"ENamedElement class DefinedPart");
52631}
52632
52633/**
52634 * An element may be an instance of type "ENamedElement class DefinedPart".
52635 */
52636private pattern mayInstanceOfENamedElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
52637{ find mustInstanceOfENamedElement_class_DefinedPart(problem,interpretation,element); }
52638/** 41182/**
52639 * An element must be an instance of type "ENamedElement class UndefinedPart". 41183 * An element must be an instance of type "FunctionalData class".
52640 */ 41184 */
52641private pattern mustInstanceOfENamedElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 41185private pattern mustInstanceOfFunctionalData_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
52642 Type.name(type,"ENamedElement class UndefinedPart"); 41186 Type.name(type,"FunctionalData class");
52643 find directInstanceOf(problem,interpretation,element,type); 41187 find directInstanceOf(problem,interpretation,element,type);
52644} 41188}
52645private pattern scopeDisallowsNewENamedElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { 41189private pattern scopeDisallowsNewFunctionalData_class(problem:LogicProblem, interpretation:PartialInterpretation) {
52646 find interpretation(problem,interpretation); 41190 find interpretation(problem,interpretation);
52647 PartialInterpretation.scopes(interpretation,scope); 41191 PartialInterpretation.scopes(interpretation,scope);
52648 Scope.targetTypeInterpretation(scope,typeInterpretation); 41192 Scope.targetTypeInterpretation(scope,typeInterpretation);
52649 Scope.maxNewElements(scope,0); 41193 Scope.maxNewElements(scope,0);
52650 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 41194 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
52651 Type.name(type,"ENamedElement class UndefinedPart"); 41195 Type.name(type,"FunctionalData class");
52652} 41196}
52653 41197
52654/** 41198/**
52655 * An element may be an instance of type "ENamedElement class UndefinedPart". 41199 * An element may be an instance of type "FunctionalData class".
52656 */ 41200 */
52657private pattern mayInstanceOfENamedElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 41201private pattern mayInstanceOfFunctionalData_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
52658{ 41202{
52659 find interpretation(problem,interpretation); 41203 find interpretation(problem,interpretation);
52660 PartialInterpretation.newElements(interpretation,element); 41204 PartialInterpretation.newElements(interpretation,element);
52661 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 41205 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
52662 neg find mustInstanceOfEPackage_class(problem,interpretation,element); 41206 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
52663 neg find mustInstanceOfETypedElement_class(problem,interpretation,element); 41207 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
52664 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 41208 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
52665 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 41209 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
52666 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); 41210 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
52667 neg find mustInstanceOfEClassifier_class(problem,interpretation,element); 41211 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
52668 neg find mustInstanceOfEObject_class(problem,interpretation,element); 41212 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
52669 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
52670 neg find scopeDisallowsNewENamedElement_class_UndefinedPart(problem, interpretation);
52671 neg find isPrimitive(element); 41213 neg find isPrimitive(element);
52672} or { 41214} or {
52673 find interpretation(problem,interpretation); 41215 find interpretation(problem,interpretation);
52674 PartialInterpretation.openWorldElements(interpretation,element); 41216 PartialInterpretation.openWorldElements(interpretation,element);
52675 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 41217 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
52676 neg find mustInstanceOfEPackage_class(problem,interpretation,element); 41218 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
52677 neg find mustInstanceOfETypedElement_class(problem,interpretation,element); 41219 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
52678 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 41220 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
52679 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 41221 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
52680 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); 41222 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
52681 neg find mustInstanceOfEClassifier_class(problem,interpretation,element); 41223 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
52682 neg find mustInstanceOfEObject_class(problem,interpretation,element); 41224 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
52683 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
52684 neg find scopeDisallowsNewENamedElement_class_UndefinedPart(problem, interpretation);
52685 neg find isPrimitive(element); 41225 neg find isPrimitive(element);
52686} or 41226} or
52687{ find mustInstanceOfENamedElement_class_UndefinedPart(problem,interpretation,element); } 41227{ find mustInstanceOfFunctionalData_class(problem,interpretation,element); }
52688/**
52689 * An element must be an instance of type "EPackage class DefinedPart".
52690 */
52691private pattern mustInstanceOfEPackage_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
52692 Type.name(type,"EPackage class DefinedPart");
52693 find directInstanceOf(problem,interpretation,element,type);
52694}
52695private pattern scopeDisallowsNewEPackage_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
52696 find interpretation(problem,interpretation);
52697 PartialInterpretation.scopes(interpretation,scope);
52698 Scope.targetTypeInterpretation(scope,typeInterpretation);
52699 Scope.maxNewElements(scope,0);
52700 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
52701 Type.name(type,"EPackage class DefinedPart");
52702}
52703
52704/**
52705 * An element may be an instance of type "EPackage class DefinedPart".
52706 */
52707private pattern mayInstanceOfEPackage_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
52708{ find mustInstanceOfEPackage_class_DefinedPart(problem,interpretation,element); }
52709/** 41228/**
52710 * An element must be an instance of type "EPackage class UndefinedPart". 41229 * An element must be an instance of type "FunctionType enum".
52711 */ 41230 */
52712private pattern mustInstanceOfEPackage_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 41231private pattern mustInstanceOfFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
52713 Type.name(type,"EPackage class UndefinedPart"); 41232 Type.name(type,"FunctionType enum");
52714 find directInstanceOf(problem,interpretation,element,type); 41233 find directInstanceOf(problem,interpretation,element,type);
52715} 41234}
52716private pattern scopeDisallowsNewEPackage_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { 41235private pattern scopeDisallowsNewFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation) {
52717 find interpretation(problem,interpretation); 41236 find interpretation(problem,interpretation);
52718 PartialInterpretation.scopes(interpretation,scope); 41237 PartialInterpretation.scopes(interpretation,scope);
52719 Scope.targetTypeInterpretation(scope,typeInterpretation); 41238 Scope.targetTypeInterpretation(scope,typeInterpretation);
52720 Scope.maxNewElements(scope,0); 41239 Scope.maxNewElements(scope,0);
52721 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 41240 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
52722 Type.name(type,"EPackage class UndefinedPart"); 41241 Type.name(type,"FunctionType enum");
52723} 41242}
52724 41243
52725/** 41244/**
52726 * An element may be an instance of type "EPackage class UndefinedPart". 41245 * An element may be an instance of type "FunctionType enum".
52727 */ 41246 */
52728private pattern mayInstanceOfEPackage_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 41247private pattern mayInstanceOfFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
52729{ 41248{ find mustInstanceOfFunctionType_enum(problem,interpretation,element); }
52730 find interpretation(problem,interpretation);
52731 PartialInterpretation.newElements(interpretation,element);
52732 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
52733 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
52734 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
52735 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
52736 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
52737 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
52738 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
52739 neg find mustInstanceOfEObject_class(problem,interpretation,element);
52740 neg find scopeDisallowsNewEPackage_class_UndefinedPart(problem, interpretation);
52741 neg find isPrimitive(element);
52742} or {
52743 find interpretation(problem,interpretation);
52744 PartialInterpretation.openWorldElements(interpretation,element);
52745 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
52746 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
52747 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
52748 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
52749 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
52750 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
52751 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
52752 neg find mustInstanceOfEObject_class(problem,interpretation,element);
52753 neg find scopeDisallowsNewEPackage_class_UndefinedPart(problem, interpretation);
52754 neg find isPrimitive(element);
52755} or
52756{ find mustInstanceOfEPackage_class_UndefinedPart(problem,interpretation,element); }
52757 41249
52758////////// 41250//////////
52759// 1.2 Relation Declaration Indexers 41251// 1.2 Relation Declaration Indexers
52760////////// 41252//////////
52761/** 41253/**
52762 * Matcher for detecting tuples t where []eAttributeType reference EAttribute(source,target) 41254 * Matcher for detecting tuples t where []interface reference FunctionalElement(source,target)
52763 */ 41255 */
52764private pattern mustInRelationeAttributeType_reference_EAttribute( 41256private pattern mustInRelationinterface_reference_FunctionalElement(
52765 problem:LogicProblem, interpretation:PartialInterpretation, 41257 problem:LogicProblem, interpretation:PartialInterpretation,
52766 source: DefinedElement, target:DefinedElement) 41258 source: DefinedElement, target:DefinedElement)
52767{ 41259{
52768 find interpretation(problem,interpretation); 41260 find interpretation(problem,interpretation);
52769 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 41261 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
52770 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAttributeType reference EAttribute"); 41262 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"interface reference FunctionalElement");
52771 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 41263 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
52772 BinaryElementRelationLink.param1(link,source); 41264 BinaryElementRelationLink.param1(link,source);
52773 BinaryElementRelationLink.param2(link,target); 41265 BinaryElementRelationLink.param2(link,target);
52774} 41266}
52775/** 41267/**
52776 * Matcher for detecting tuples t where <>eAttributeType reference EAttribute(source,target) 41268 * Matcher for detecting tuples t where <>interface reference FunctionalElement(source,target)
52777 */ 41269 */
52778private pattern mayInRelationeAttributeType_reference_EAttribute( 41270private pattern mayInRelationinterface_reference_FunctionalElement(
52779 problem:LogicProblem, interpretation:PartialInterpretation, 41271 problem:LogicProblem, interpretation:PartialInterpretation,
52780 source: DefinedElement, target:DefinedElement) 41272 source: DefinedElement, target:DefinedElement)
52781{ 41273{
@@ -52784,33 +41276,42 @@ private pattern mayInRelationeAttributeType_reference_EAttribute(
52784 find mayExist(problem, interpretation, source); 41276 find mayExist(problem, interpretation, source);
52785 find mayExist(problem, interpretation, target); 41277 find mayExist(problem, interpretation, target);
52786 // Type consistency 41278 // Type consistency
52787 find mayInstanceOfEAttribute_class(problem,interpretation,source); 41279 find mayInstanceOfFunctionalElement_class(problem,interpretation,source);
52788 find mayInstanceOfEDataType_class(problem,interpretation,target); 41280 find mayInstanceOfFunctionalInterface_class(problem,interpretation,target);
52789 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 41281 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
52790 // the upper bound of the multiplicity should be considered. 41282 // the upper bound of the multiplicity should be considered.
52791 numberOfExistingReferences == count find mustInRelationeAttributeType_reference_EAttribute(problem,interpretation,source,_); 41283 numberOfExistingReferences == count find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,source,_);
52792 check(numberOfExistingReferences < 1); 41284 check(numberOfExistingReferences < 1);
41285 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
41286 // the upper bound of the opposite reference multiplicity should be considered.
41287 numberOfExistingOppositeReferences == count find mustInRelationelement_reference_FunctionalInterface(problem,interpretation,target,_);
41288 check(numberOfExistingOppositeReferences < 1);
41289 // The reference is containment, then a new reference cannot be create if:
41290 // 1. Multiple parents
41291 neg find mustContains4(problem,interpretation,_,target);
41292 // 2. Circle in the containment hierarchy
41293 neg find mustTransitiveContains(source,target);
52793} or { 41294} or {
52794 find mustInRelationeAttributeType_reference_EAttribute(problem,interpretation,source,target); 41295 find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,source,target);
52795} 41296}
52796/** 41297/**
52797 * Matcher for detecting tuples t where []details reference EAnnotation(source,target) 41298 * Matcher for detecting tuples t where []model reference FunctionalElement(source,target)
52798 */ 41299 */
52799private pattern mustInRelationdetails_reference_EAnnotation( 41300private pattern mustInRelationmodel_reference_FunctionalElement(
52800 problem:LogicProblem, interpretation:PartialInterpretation, 41301 problem:LogicProblem, interpretation:PartialInterpretation,
52801 source: DefinedElement, target:DefinedElement) 41302 source: DefinedElement, target:DefinedElement)
52802{ 41303{
52803 find interpretation(problem,interpretation); 41304 find interpretation(problem,interpretation);
52804 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 41305 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
52805 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"details reference EAnnotation"); 41306 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement");
52806 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 41307 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
52807 BinaryElementRelationLink.param1(link,source); 41308 BinaryElementRelationLink.param1(link,source);
52808 BinaryElementRelationLink.param2(link,target); 41309 BinaryElementRelationLink.param2(link,target);
52809} 41310}
52810/** 41311/**
52811 * Matcher for detecting tuples t where <>details reference EAnnotation(source,target) 41312 * Matcher for detecting tuples t where <>model reference FunctionalElement(source,target)
52812 */ 41313 */
52813private pattern mayInRelationdetails_reference_EAnnotation( 41314private pattern mayInRelationmodel_reference_FunctionalElement(
52814 problem:LogicProblem, interpretation:PartialInterpretation, 41315 problem:LogicProblem, interpretation:PartialInterpretation,
52815 source: DefinedElement, target:DefinedElement) 41316 source: DefinedElement, target:DefinedElement)
52816{ 41317{
@@ -52819,34 +41320,33 @@ private pattern mayInRelationdetails_reference_EAnnotation(
52819 find mayExist(problem, interpretation, source); 41320 find mayExist(problem, interpretation, source);
52820 find mayExist(problem, interpretation, target); 41321 find mayExist(problem, interpretation, target);
52821 // Type consistency 41322 // Type consistency
52822 find mayInstanceOfEAnnotation_class(problem,interpretation,source); 41323 find mayInstanceOfFunctionalElement_class(problem,interpretation,source);
52823 find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,target); 41324 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,target);
52824 // The reference is containment, then a new reference cannot be create if: 41325 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
52825 // 1. Multiple parents 41326 // the upper bound of the multiplicity should be considered.
52826 neg find mustContains4(problem,interpretation,_,target); 41327 numberOfExistingReferences == count find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,source,_);
52827 // 2. Circle in the containment hierarchy 41328 check(numberOfExistingReferences < 1);
52828 neg find mustTransitiveContains(source,target);
52829} or { 41329} or {
52830 find mustInRelationdetails_reference_EAnnotation(problem,interpretation,source,target); 41330 find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,source,target);
52831} 41331}
52832/** 41332/**
52833 * Matcher for detecting tuples t where []eModelElement reference EAnnotation(source,target) 41333 * Matcher for detecting tuples t where []parent reference FunctionalElement(source,target)
52834 */ 41334 */
52835private pattern mustInRelationeModelElement_reference_EAnnotation( 41335private pattern mustInRelationparent_reference_FunctionalElement(
52836 problem:LogicProblem, interpretation:PartialInterpretation, 41336 problem:LogicProblem, interpretation:PartialInterpretation,
52837 source: DefinedElement, target:DefinedElement) 41337 source: DefinedElement, target:DefinedElement)
52838{ 41338{
52839 find interpretation(problem,interpretation); 41339 find interpretation(problem,interpretation);
52840 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 41340 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
52841 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eModelElement reference EAnnotation"); 41341 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"parent reference FunctionalElement");
52842 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 41342 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
52843 BinaryElementRelationLink.param1(link,source); 41343 BinaryElementRelationLink.param1(link,source);
52844 BinaryElementRelationLink.param2(link,target); 41344 BinaryElementRelationLink.param2(link,target);
52845} 41345}
52846/** 41346/**
52847 * Matcher for detecting tuples t where <>eModelElement reference EAnnotation(source,target) 41347 * Matcher for detecting tuples t where <>parent reference FunctionalElement(source,target)
52848 */ 41348 */
52849private pattern mayInRelationeModelElement_reference_EAnnotation( 41349private pattern mayInRelationparent_reference_FunctionalElement(
52850 problem:LogicProblem, interpretation:PartialInterpretation, 41350 problem:LogicProblem, interpretation:PartialInterpretation,
52851 source: DefinedElement, target:DefinedElement) 41351 source: DefinedElement, target:DefinedElement)
52852{ 41352{
@@ -52855,11 +41355,11 @@ private pattern mayInRelationeModelElement_reference_EAnnotation(
52855 find mayExist(problem, interpretation, source); 41355 find mayExist(problem, interpretation, source);
52856 find mayExist(problem, interpretation, target); 41356 find mayExist(problem, interpretation, target);
52857 // Type consistency 41357 // Type consistency
52858 find mayInstanceOfEAnnotation_class(problem,interpretation,source); 41358 find mayInstanceOfFunctionalElement_class(problem,interpretation,source);
52859 find mayInstanceOfEModelElement_class(problem,interpretation,target); 41359 find mayInstanceOfFunction_class(problem,interpretation,target);
52860 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 41360 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
52861 // the upper bound of the multiplicity should be considered. 41361 // the upper bound of the multiplicity should be considered.
52862 numberOfExistingReferences == count find mustInRelationeModelElement_reference_EAnnotation(problem,interpretation,source,_); 41362 numberOfExistingReferences == count find mustInRelationparent_reference_FunctionalElement(problem,interpretation,source,_);
52863 check(numberOfExistingReferences < 1); 41363 check(numberOfExistingReferences < 1);
52864 // The eOpposite of the reference is containment, then a referene cannot be created if 41364 // The eOpposite of the reference is containment, then a referene cannot be created if
52865 // 1. Multiple parents 41365 // 1. Multiple parents
@@ -52867,26 +41367,26 @@ private pattern mayInRelationeModelElement_reference_EAnnotation(
52867 // 2. Circle in the containment hierarchy 41367 // 2. Circle in the containment hierarchy
52868 neg find mustTransitiveContains(source,target); 41368 neg find mustTransitiveContains(source,target);
52869} or { 41369} or {
52870 find mustInRelationeModelElement_reference_EAnnotation(problem,interpretation,source,target); 41370 find mustInRelationparent_reference_FunctionalElement(problem,interpretation,source,target);
52871} 41371}
52872/** 41372/**
52873 * Matcher for detecting tuples t where []contents reference EAnnotation(source,target) 41373 * Matcher for detecting tuples t where []rootElements reference FunctionalArchitectureModel(source,target)
52874 */ 41374 */
52875private pattern mustInRelationcontents_reference_EAnnotation( 41375private pattern mustInRelationrootElements_reference_FunctionalArchitectureModel(
52876 problem:LogicProblem, interpretation:PartialInterpretation, 41376 problem:LogicProblem, interpretation:PartialInterpretation,
52877 source: DefinedElement, target:DefinedElement) 41377 source: DefinedElement, target:DefinedElement)
52878{ 41378{
52879 find interpretation(problem,interpretation); 41379 find interpretation(problem,interpretation);
52880 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 41380 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
52881 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"contents reference EAnnotation"); 41381 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"rootElements reference FunctionalArchitectureModel");
52882 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 41382 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
52883 BinaryElementRelationLink.param1(link,source); 41383 BinaryElementRelationLink.param1(link,source);
52884 BinaryElementRelationLink.param2(link,target); 41384 BinaryElementRelationLink.param2(link,target);
52885} 41385}
52886/** 41386/**
52887 * Matcher for detecting tuples t where <>contents reference EAnnotation(source,target) 41387 * Matcher for detecting tuples t where <>rootElements reference FunctionalArchitectureModel(source,target)
52888 */ 41388 */
52889private pattern mayInRelationcontents_reference_EAnnotation( 41389private pattern mayInRelationrootElements_reference_FunctionalArchitectureModel(
52890 problem:LogicProblem, interpretation:PartialInterpretation, 41390 problem:LogicProblem, interpretation:PartialInterpretation,
52891 source: DefinedElement, target:DefinedElement) 41391 source: DefinedElement, target:DefinedElement)
52892{ 41392{
@@ -52895,96 +41395,34 @@ private pattern mayInRelationcontents_reference_EAnnotation(
52895 find mayExist(problem, interpretation, source); 41395 find mayExist(problem, interpretation, source);
52896 find mayExist(problem, interpretation, target); 41396 find mayExist(problem, interpretation, target);
52897 // Type consistency 41397 // Type consistency
52898 find mayInstanceOfEAnnotation_class(problem,interpretation,source); 41398 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,source);
52899 find mayInstanceOfEObject_class(problem,interpretation,target); 41399 find mayInstanceOfFunctionalElement_class(problem,interpretation,target);
52900 // The reference is containment, then a new reference cannot be create if: 41400 // The reference is containment, then a new reference cannot be create if:
52901 // 1. Multiple parents 41401 // 1. Multiple parents
52902 neg find mustContains4(problem,interpretation,_,target); 41402 neg find mustContains4(problem,interpretation,_,target);
52903 // 2. Circle in the containment hierarchy 41403 // 2. Circle in the containment hierarchy
52904 neg find mustTransitiveContains(source,target); 41404 neg find mustTransitiveContains(source,target);
52905} or { 41405} or {
52906 find mustInRelationcontents_reference_EAnnotation(problem,interpretation,source,target); 41406 find mustInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,source,target);
52907}
52908/**
52909 * Matcher for detecting tuples t where []references reference EAnnotation(source,target)
52910 */
52911private pattern mustInRelationreferences_reference_EAnnotation(
52912 problem:LogicProblem, interpretation:PartialInterpretation,
52913 source: DefinedElement, target:DefinedElement)
52914{
52915 find interpretation(problem,interpretation);
52916 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
52917 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"references reference EAnnotation");
52918 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
52919 BinaryElementRelationLink.param1(link,source);
52920 BinaryElementRelationLink.param2(link,target);
52921}
52922/**
52923 * Matcher for detecting tuples t where <>references reference EAnnotation(source,target)
52924 */
52925private pattern mayInRelationreferences_reference_EAnnotation(
52926 problem:LogicProblem, interpretation:PartialInterpretation,
52927 source: DefinedElement, target:DefinedElement)
52928{
52929 find interpretation(problem,interpretation);
52930 // The two endpoint of the link have to exist
52931 find mayExist(problem, interpretation, source);
52932 find mayExist(problem, interpretation, target);
52933 // Type consistency
52934 find mayInstanceOfEAnnotation_class(problem,interpretation,source);
52935 find mayInstanceOfEObject_class(problem,interpretation,target);
52936} or {
52937 find mustInRelationreferences_reference_EAnnotation(problem,interpretation,source,target);
52938}
52939/**
52940 * Matcher for detecting tuples t where []eSuperTypes reference EClass(source,target)
52941 */
52942private pattern mustInRelationeSuperTypes_reference_EClass(
52943 problem:LogicProblem, interpretation:PartialInterpretation,
52944 source: DefinedElement, target:DefinedElement)
52945{
52946 find interpretation(problem,interpretation);
52947 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
52948 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eSuperTypes reference EClass");
52949 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
52950 BinaryElementRelationLink.param1(link,source);
52951 BinaryElementRelationLink.param2(link,target);
52952}
52953/**
52954 * Matcher for detecting tuples t where <>eSuperTypes reference EClass(source,target)
52955 */
52956private pattern mayInRelationeSuperTypes_reference_EClass(
52957 problem:LogicProblem, interpretation:PartialInterpretation,
52958 source: DefinedElement, target:DefinedElement)
52959{
52960 find interpretation(problem,interpretation);
52961 // The two endpoint of the link have to exist
52962 find mayExist(problem, interpretation, source);
52963 find mayExist(problem, interpretation, target);
52964 // Type consistency
52965 find mayInstanceOfEClass_class(problem,interpretation,source);
52966 find mayInstanceOfEClass_class(problem,interpretation,target);
52967} or {
52968 find mustInRelationeSuperTypes_reference_EClass(problem,interpretation,source,target);
52969} 41407}
52970/** 41408/**
52971 * Matcher for detecting tuples t where []eOperations reference EClass(source,target) 41409 * Matcher for detecting tuples t where []subElements reference Function(source,target)
52972 */ 41410 */
52973private pattern mustInRelationeOperations_reference_EClass( 41411private pattern mustInRelationsubElements_reference_Function(
52974 problem:LogicProblem, interpretation:PartialInterpretation, 41412 problem:LogicProblem, interpretation:PartialInterpretation,
52975 source: DefinedElement, target:DefinedElement) 41413 source: DefinedElement, target:DefinedElement)
52976{ 41414{
52977 find interpretation(problem,interpretation); 41415 find interpretation(problem,interpretation);
52978 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 41416 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
52979 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eOperations reference EClass"); 41417 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"subElements reference Function");
52980 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 41418 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
52981 BinaryElementRelationLink.param1(link,source); 41419 BinaryElementRelationLink.param1(link,source);
52982 BinaryElementRelationLink.param2(link,target); 41420 BinaryElementRelationLink.param2(link,target);
52983} 41421}
52984/** 41422/**
52985 * Matcher for detecting tuples t where <>eOperations reference EClass(source,target) 41423 * Matcher for detecting tuples t where <>subElements reference Function(source,target)
52986 */ 41424 */
52987private pattern mayInRelationeOperations_reference_EClass( 41425private pattern mayInRelationsubElements_reference_Function(
52988 problem:LogicProblem, interpretation:PartialInterpretation, 41426 problem:LogicProblem, interpretation:PartialInterpretation,
52989 source: DefinedElement, target:DefinedElement) 41427 source: DefinedElement, target:DefinedElement)
52990{ 41428{
@@ -52993,11 +41431,11 @@ private pattern mayInRelationeOperations_reference_EClass(
52993 find mayExist(problem, interpretation, source); 41431 find mayExist(problem, interpretation, source);
52994 find mayExist(problem, interpretation, target); 41432 find mayExist(problem, interpretation, target);
52995 // Type consistency 41433 // Type consistency
52996 find mayInstanceOfEClass_class(problem,interpretation,source); 41434 find mayInstanceOfFunction_class(problem,interpretation,source);
52997 find mayInstanceOfEOperation_class(problem,interpretation,target); 41435 find mayInstanceOfFunctionalElement_class(problem,interpretation,target);
52998 // There are "numberOfExistingReferences" currently existing instances of the reference to the target, 41436 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
52999 // the upper bound of the opposite reference multiplicity should be considered. 41437 // the upper bound of the opposite reference multiplicity should be considered.
53000 numberOfExistingOppositeReferences == count find mustInRelationeContainingClass_reference_EOperation(problem,interpretation,target,_); 41438 numberOfExistingOppositeReferences == count find mustInRelationparent_reference_FunctionalElement(problem,interpretation,target,_);
53001 check(numberOfExistingOppositeReferences < 1); 41439 check(numberOfExistingOppositeReferences < 1);
53002 // The reference is containment, then a new reference cannot be create if: 41440 // The reference is containment, then a new reference cannot be create if:
53003 // 1. Multiple parents 41441 // 1. Multiple parents
@@ -53005,274 +41443,26 @@ private pattern mayInRelationeOperations_reference_EClass(
53005 // 2. Circle in the containment hierarchy 41443 // 2. Circle in the containment hierarchy
53006 neg find mustTransitiveContains(source,target); 41444 neg find mustTransitiveContains(source,target);
53007} or { 41445} or {
53008 find mustInRelationeOperations_reference_EClass(problem,interpretation,source,target); 41446 find mustInRelationsubElements_reference_Function(problem,interpretation,source,target);
53009}
53010/**
53011 * Matcher for detecting tuples t where []eAllAttributes reference EClass(source,target)
53012 */
53013private pattern mustInRelationeAllAttributes_reference_EClass(
53014 problem:LogicProblem, interpretation:PartialInterpretation,
53015 source: DefinedElement, target:DefinedElement)
53016{
53017 find interpretation(problem,interpretation);
53018 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
53019 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllAttributes reference EClass");
53020 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
53021 BinaryElementRelationLink.param1(link,source);
53022 BinaryElementRelationLink.param2(link,target);
53023}
53024/**
53025 * Matcher for detecting tuples t where <>eAllAttributes reference EClass(source,target)
53026 */
53027private pattern mayInRelationeAllAttributes_reference_EClass(
53028 problem:LogicProblem, interpretation:PartialInterpretation,
53029 source: DefinedElement, target:DefinedElement)
53030{
53031 find interpretation(problem,interpretation);
53032 // The two endpoint of the link have to exist
53033 find mayExist(problem, interpretation, source);
53034 find mayExist(problem, interpretation, target);
53035 // Type consistency
53036 find mayInstanceOfEClass_class(problem,interpretation,source);
53037 find mayInstanceOfEAttribute_class(problem,interpretation,target);
53038} or {
53039 find mustInRelationeAllAttributes_reference_EClass(problem,interpretation,source,target);
53040}
53041/**
53042 * Matcher for detecting tuples t where []eAllReferences reference EClass(source,target)
53043 */
53044private pattern mustInRelationeAllReferences_reference_EClass(
53045 problem:LogicProblem, interpretation:PartialInterpretation,
53046 source: DefinedElement, target:DefinedElement)
53047{
53048 find interpretation(problem,interpretation);
53049 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
53050 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllReferences reference EClass");
53051 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
53052 BinaryElementRelationLink.param1(link,source);
53053 BinaryElementRelationLink.param2(link,target);
53054}
53055/**
53056 * Matcher for detecting tuples t where <>eAllReferences reference EClass(source,target)
53057 */
53058private pattern mayInRelationeAllReferences_reference_EClass(
53059 problem:LogicProblem, interpretation:PartialInterpretation,
53060 source: DefinedElement, target:DefinedElement)
53061{
53062 find interpretation(problem,interpretation);
53063 // The two endpoint of the link have to exist
53064 find mayExist(problem, interpretation, source);
53065 find mayExist(problem, interpretation, target);
53066 // Type consistency
53067 find mayInstanceOfEClass_class(problem,interpretation,source);
53068 find mayInstanceOfEReference_class(problem,interpretation,target);
53069} or {
53070 find mustInRelationeAllReferences_reference_EClass(problem,interpretation,source,target);
53071}
53072/**
53073 * Matcher for detecting tuples t where []eReferences reference EClass(source,target)
53074 */
53075private pattern mustInRelationeReferences_reference_EClass(
53076 problem:LogicProblem, interpretation:PartialInterpretation,
53077 source: DefinedElement, target:DefinedElement)
53078{
53079 find interpretation(problem,interpretation);
53080 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
53081 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eReferences reference EClass");
53082 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
53083 BinaryElementRelationLink.param1(link,source);
53084 BinaryElementRelationLink.param2(link,target);
53085}
53086/**
53087 * Matcher for detecting tuples t where <>eReferences reference EClass(source,target)
53088 */
53089private pattern mayInRelationeReferences_reference_EClass(
53090 problem:LogicProblem, interpretation:PartialInterpretation,
53091 source: DefinedElement, target:DefinedElement)
53092{
53093 find interpretation(problem,interpretation);
53094 // The two endpoint of the link have to exist
53095 find mayExist(problem, interpretation, source);
53096 find mayExist(problem, interpretation, target);
53097 // Type consistency
53098 find mayInstanceOfEClass_class(problem,interpretation,source);
53099 find mayInstanceOfEReference_class(problem,interpretation,target);
53100} or {
53101 find mustInRelationeReferences_reference_EClass(problem,interpretation,source,target);
53102}
53103/**
53104 * Matcher for detecting tuples t where []eAttributes reference EClass(source,target)
53105 */
53106private pattern mustInRelationeAttributes_reference_EClass(
53107 problem:LogicProblem, interpretation:PartialInterpretation,
53108 source: DefinedElement, target:DefinedElement)
53109{
53110 find interpretation(problem,interpretation);
53111 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
53112 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAttributes reference EClass");
53113 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
53114 BinaryElementRelationLink.param1(link,source);
53115 BinaryElementRelationLink.param2(link,target);
53116}
53117/**
53118 * Matcher for detecting tuples t where <>eAttributes reference EClass(source,target)
53119 */
53120private pattern mayInRelationeAttributes_reference_EClass(
53121 problem:LogicProblem, interpretation:PartialInterpretation,
53122 source: DefinedElement, target:DefinedElement)
53123{
53124 find interpretation(problem,interpretation);
53125 // The two endpoint of the link have to exist
53126 find mayExist(problem, interpretation, source);
53127 find mayExist(problem, interpretation, target);
53128 // Type consistency
53129 find mayInstanceOfEClass_class(problem,interpretation,source);
53130 find mayInstanceOfEAttribute_class(problem,interpretation,target);
53131} or {
53132 find mustInRelationeAttributes_reference_EClass(problem,interpretation,source,target);
53133}
53134/**
53135 * Matcher for detecting tuples t where []eAllContainments reference EClass(source,target)
53136 */
53137private pattern mustInRelationeAllContainments_reference_EClass(
53138 problem:LogicProblem, interpretation:PartialInterpretation,
53139 source: DefinedElement, target:DefinedElement)
53140{
53141 find interpretation(problem,interpretation);
53142 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
53143 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllContainments reference EClass");
53144 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
53145 BinaryElementRelationLink.param1(link,source);
53146 BinaryElementRelationLink.param2(link,target);
53147}
53148/**
53149 * Matcher for detecting tuples t where <>eAllContainments reference EClass(source,target)
53150 */
53151private pattern mayInRelationeAllContainments_reference_EClass(
53152 problem:LogicProblem, interpretation:PartialInterpretation,
53153 source: DefinedElement, target:DefinedElement)
53154{
53155 find interpretation(problem,interpretation);
53156 // The two endpoint of the link have to exist
53157 find mayExist(problem, interpretation, source);
53158 find mayExist(problem, interpretation, target);
53159 // Type consistency
53160 find mayInstanceOfEClass_class(problem,interpretation,source);
53161 find mayInstanceOfEReference_class(problem,interpretation,target);
53162} or {
53163 find mustInRelationeAllContainments_reference_EClass(problem,interpretation,source,target);
53164}
53165/**
53166 * Matcher for detecting tuples t where []eAllOperations reference EClass(source,target)
53167 */
53168private pattern mustInRelationeAllOperations_reference_EClass(
53169 problem:LogicProblem, interpretation:PartialInterpretation,
53170 source: DefinedElement, target:DefinedElement)
53171{
53172 find interpretation(problem,interpretation);
53173 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
53174 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllOperations reference EClass");
53175 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
53176 BinaryElementRelationLink.param1(link,source);
53177 BinaryElementRelationLink.param2(link,target);
53178}
53179/**
53180 * Matcher for detecting tuples t where <>eAllOperations reference EClass(source,target)
53181 */
53182private pattern mayInRelationeAllOperations_reference_EClass(
53183 problem:LogicProblem, interpretation:PartialInterpretation,
53184 source: DefinedElement, target:DefinedElement)
53185{
53186 find interpretation(problem,interpretation);
53187 // The two endpoint of the link have to exist
53188 find mayExist(problem, interpretation, source);
53189 find mayExist(problem, interpretation, target);
53190 // Type consistency
53191 find mayInstanceOfEClass_class(problem,interpretation,source);
53192 find mayInstanceOfEOperation_class(problem,interpretation,target);
53193} or {
53194 find mustInRelationeAllOperations_reference_EClass(problem,interpretation,source,target);
53195}
53196/**
53197 * Matcher for detecting tuples t where []eAllStructuralFeatures reference EClass(source,target)
53198 */
53199private pattern mustInRelationeAllStructuralFeatures_reference_EClass(
53200 problem:LogicProblem, interpretation:PartialInterpretation,
53201 source: DefinedElement, target:DefinedElement)
53202{
53203 find interpretation(problem,interpretation);
53204 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
53205 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllStructuralFeatures reference EClass");
53206 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
53207 BinaryElementRelationLink.param1(link,source);
53208 BinaryElementRelationLink.param2(link,target);
53209}
53210/**
53211 * Matcher for detecting tuples t where <>eAllStructuralFeatures reference EClass(source,target)
53212 */
53213private pattern mayInRelationeAllStructuralFeatures_reference_EClass(
53214 problem:LogicProblem, interpretation:PartialInterpretation,
53215 source: DefinedElement, target:DefinedElement)
53216{
53217 find interpretation(problem,interpretation);
53218 // The two endpoint of the link have to exist
53219 find mayExist(problem, interpretation, source);
53220 find mayExist(problem, interpretation, target);
53221 // Type consistency
53222 find mayInstanceOfEClass_class(problem,interpretation,source);
53223 find mayInstanceOfEStructuralFeature_class(problem,interpretation,target);
53224} or {
53225 find mustInRelationeAllStructuralFeatures_reference_EClass(problem,interpretation,source,target);
53226}
53227/**
53228 * Matcher for detecting tuples t where []eAllSuperTypes reference EClass(source,target)
53229 */
53230private pattern mustInRelationeAllSuperTypes_reference_EClass(
53231 problem:LogicProblem, interpretation:PartialInterpretation,
53232 source: DefinedElement, target:DefinedElement)
53233{
53234 find interpretation(problem,interpretation);
53235 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
53236 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllSuperTypes reference EClass");
53237 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
53238 BinaryElementRelationLink.param1(link,source);
53239 BinaryElementRelationLink.param2(link,target);
53240}
53241/**
53242 * Matcher for detecting tuples t where <>eAllSuperTypes reference EClass(source,target)
53243 */
53244private pattern mayInRelationeAllSuperTypes_reference_EClass(
53245 problem:LogicProblem, interpretation:PartialInterpretation,
53246 source: DefinedElement, target:DefinedElement)
53247{
53248 find interpretation(problem,interpretation);
53249 // The two endpoint of the link have to exist
53250 find mayExist(problem, interpretation, source);
53251 find mayExist(problem, interpretation, target);
53252 // Type consistency
53253 find mayInstanceOfEClass_class(problem,interpretation,source);
53254 find mayInstanceOfEClass_class(problem,interpretation,target);
53255} or {
53256 find mustInRelationeAllSuperTypes_reference_EClass(problem,interpretation,source,target);
53257} 41447}
53258/** 41448/**
53259 * Matcher for detecting tuples t where []eIDAttribute reference EClass(source,target) 41449 * Matcher for detecting tuples t where []data reference FAMTerminator(source,target)
53260 */ 41450 */
53261private pattern mustInRelationeIDAttribute_reference_EClass( 41451private pattern mustInRelationdata_reference_FAMTerminator(
53262 problem:LogicProblem, interpretation:PartialInterpretation, 41452 problem:LogicProblem, interpretation:PartialInterpretation,
53263 source: DefinedElement, target:DefinedElement) 41453 source: DefinedElement, target:DefinedElement)
53264{ 41454{
53265 find interpretation(problem,interpretation); 41455 find interpretation(problem,interpretation);
53266 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 41456 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
53267 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eIDAttribute reference EClass"); 41457 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"data reference FAMTerminator");
53268 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 41458 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
53269 BinaryElementRelationLink.param1(link,source); 41459 BinaryElementRelationLink.param1(link,source);
53270 BinaryElementRelationLink.param2(link,target); 41460 BinaryElementRelationLink.param2(link,target);
53271} 41461}
53272/** 41462/**
53273 * Matcher for detecting tuples t where <>eIDAttribute reference EClass(source,target) 41463 * Matcher for detecting tuples t where <>data reference FAMTerminator(source,target)
53274 */ 41464 */
53275private pattern mayInRelationeIDAttribute_reference_EClass( 41465private pattern mayInRelationdata_reference_FAMTerminator(
53276 problem:LogicProblem, interpretation:PartialInterpretation, 41466 problem:LogicProblem, interpretation:PartialInterpretation,
53277 source: DefinedElement, target:DefinedElement) 41467 source: DefinedElement, target:DefinedElement)
53278{ 41468{
@@ -53281,140 +41471,42 @@ private pattern mayInRelationeIDAttribute_reference_EClass(
53281 find mayExist(problem, interpretation, source); 41471 find mayExist(problem, interpretation, source);
53282 find mayExist(problem, interpretation, target); 41472 find mayExist(problem, interpretation, target);
53283 // Type consistency 41473 // Type consistency
53284 find mayInstanceOfEClass_class(problem,interpretation,source); 41474 find mayInstanceOfFAMTerminator_class(problem,interpretation,source);
53285 find mayInstanceOfEAttribute_class(problem,interpretation,target); 41475 find mayInstanceOfFunctionalData_class(problem,interpretation,target);
53286 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 41476 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
53287 // the upper bound of the multiplicity should be considered. 41477 // the upper bound of the multiplicity should be considered.
53288 numberOfExistingReferences == count find mustInRelationeIDAttribute_reference_EClass(problem,interpretation,source,_); 41478 numberOfExistingReferences == count find mustInRelationdata_reference_FAMTerminator(problem,interpretation,source,_);
53289 check(numberOfExistingReferences < 1); 41479 check(numberOfExistingReferences < 1);
53290} or {
53291 find mustInRelationeIDAttribute_reference_EClass(problem,interpretation,source,target);
53292}
53293/**
53294 * Matcher for detecting tuples t where []eStructuralFeatures reference EClass(source,target)
53295 */
53296private pattern mustInRelationeStructuralFeatures_reference_EClass(
53297 problem:LogicProblem, interpretation:PartialInterpretation,
53298 source: DefinedElement, target:DefinedElement)
53299{
53300 find interpretation(problem,interpretation);
53301 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
53302 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eStructuralFeatures reference EClass");
53303 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
53304 BinaryElementRelationLink.param1(link,source);
53305 BinaryElementRelationLink.param2(link,target);
53306}
53307/**
53308 * Matcher for detecting tuples t where <>eStructuralFeatures reference EClass(source,target)
53309 */
53310private pattern mayInRelationeStructuralFeatures_reference_EClass(
53311 problem:LogicProblem, interpretation:PartialInterpretation,
53312 source: DefinedElement, target:DefinedElement)
53313{
53314 find interpretation(problem,interpretation);
53315 // The two endpoint of the link have to exist
53316 find mayExist(problem, interpretation, source);
53317 find mayExist(problem, interpretation, target);
53318 // Type consistency
53319 find mayInstanceOfEClass_class(problem,interpretation,source);
53320 find mayInstanceOfEStructuralFeature_class(problem,interpretation,target);
53321 // There are "numberOfExistingReferences" currently existing instances of the reference to the target, 41480 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
53322 // the upper bound of the opposite reference multiplicity should be considered. 41481 // the upper bound of the opposite reference multiplicity should be considered.
53323 numberOfExistingOppositeReferences == count find mustInRelationeContainingClass_reference_EStructuralFeature(problem,interpretation,target,_); 41482 numberOfExistingOppositeReferences == count find mustInRelationterminator_reference_FunctionalData(problem,interpretation,target,_);
53324 check(numberOfExistingOppositeReferences < 1); 41483 check(numberOfExistingOppositeReferences < 1);
53325 // The reference is containment, then a new reference cannot be create if: 41484 // The eOpposite of the reference is containment, then a referene cannot be created if
53326 // 1. Multiple parents
53327 neg find mustContains4(problem,interpretation,_,target);
53328 // 2. Circle in the containment hierarchy
53329 neg find mustTransitiveContains(source,target);
53330} or {
53331 find mustInRelationeStructuralFeatures_reference_EClass(problem,interpretation,source,target);
53332}
53333/**
53334 * Matcher for detecting tuples t where []eGenericSuperTypes reference EClass(source,target)
53335 */
53336private pattern mustInRelationeGenericSuperTypes_reference_EClass(
53337 problem:LogicProblem, interpretation:PartialInterpretation,
53338 source: DefinedElement, target:DefinedElement)
53339{
53340 find interpretation(problem,interpretation);
53341 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
53342 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eGenericSuperTypes reference EClass");
53343 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
53344 BinaryElementRelationLink.param1(link,source);
53345 BinaryElementRelationLink.param2(link,target);
53346}
53347/**
53348 * Matcher for detecting tuples t where <>eGenericSuperTypes reference EClass(source,target)
53349 */
53350private pattern mayInRelationeGenericSuperTypes_reference_EClass(
53351 problem:LogicProblem, interpretation:PartialInterpretation,
53352 source: DefinedElement, target:DefinedElement)
53353{
53354 find interpretation(problem,interpretation);
53355 // The two endpoint of the link have to exist
53356 find mayExist(problem, interpretation, source);
53357 find mayExist(problem, interpretation, target);
53358 // Type consistency
53359 find mayInstanceOfEClass_class(problem,interpretation,source);
53360 find mayInstanceOfEGenericType_class(problem,interpretation,target);
53361 // The reference is containment, then a new reference cannot be create if:
53362 // 1. Multiple parents 41485 // 1. Multiple parents
53363 neg find mustContains4(problem,interpretation,_,target); 41486 neg find mustContains4(problem,interpretation,source,_);
53364 // 2. Circle in the containment hierarchy 41487 // 2. Circle in the containment hierarchy
53365 neg find mustTransitiveContains(source,target); 41488 neg find mustTransitiveContains(source,target);
53366} or { 41489} or {
53367 find mustInRelationeGenericSuperTypes_reference_EClass(problem,interpretation,source,target); 41490 find mustInRelationdata_reference_FAMTerminator(problem,interpretation,source,target);
53368}
53369/**
53370 * Matcher for detecting tuples t where []eAllGenericSuperTypes reference EClass(source,target)
53371 */
53372private pattern mustInRelationeAllGenericSuperTypes_reference_EClass(
53373 problem:LogicProblem, interpretation:PartialInterpretation,
53374 source: DefinedElement, target:DefinedElement)
53375{
53376 find interpretation(problem,interpretation);
53377 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
53378 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllGenericSuperTypes reference EClass");
53379 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
53380 BinaryElementRelationLink.param1(link,source);
53381 BinaryElementRelationLink.param2(link,target);
53382}
53383/**
53384 * Matcher for detecting tuples t where <>eAllGenericSuperTypes reference EClass(source,target)
53385 */
53386private pattern mayInRelationeAllGenericSuperTypes_reference_EClass(
53387 problem:LogicProblem, interpretation:PartialInterpretation,
53388 source: DefinedElement, target:DefinedElement)
53389{
53390 find interpretation(problem,interpretation);
53391 // The two endpoint of the link have to exist
53392 find mayExist(problem, interpretation, source);
53393 find mayExist(problem, interpretation, target);
53394 // Type consistency
53395 find mayInstanceOfEClass_class(problem,interpretation,source);
53396 find mayInstanceOfEGenericType_class(problem,interpretation,target);
53397} or {
53398 find mustInRelationeAllGenericSuperTypes_reference_EClass(problem,interpretation,source,target);
53399} 41491}
53400/** 41492/**
53401 * Matcher for detecting tuples t where []ePackage reference EClassifier(source,target) 41493 * Matcher for detecting tuples t where []from reference InformationLink(source,target)
53402 */ 41494 */
53403private pattern mustInRelationePackage_reference_EClassifier( 41495private pattern mustInRelationfrom_reference_InformationLink(
53404 problem:LogicProblem, interpretation:PartialInterpretation, 41496 problem:LogicProblem, interpretation:PartialInterpretation,
53405 source: DefinedElement, target:DefinedElement) 41497 source: DefinedElement, target:DefinedElement)
53406{ 41498{
53407 find interpretation(problem,interpretation); 41499 find interpretation(problem,interpretation);
53408 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 41500 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
53409 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"ePackage reference EClassifier"); 41501 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"from reference InformationLink");
53410 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 41502 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
53411 BinaryElementRelationLink.param1(link,source); 41503 BinaryElementRelationLink.param1(link,source);
53412 BinaryElementRelationLink.param2(link,target); 41504 BinaryElementRelationLink.param2(link,target);
53413} 41505}
53414/** 41506/**
53415 * Matcher for detecting tuples t where <>ePackage reference EClassifier(source,target) 41507 * Matcher for detecting tuples t where <>from reference InformationLink(source,target)
53416 */ 41508 */
53417private pattern mayInRelationePackage_reference_EClassifier( 41509private pattern mayInRelationfrom_reference_InformationLink(
53418 problem:LogicProblem, interpretation:PartialInterpretation, 41510 problem:LogicProblem, interpretation:PartialInterpretation,
53419 source: DefinedElement, target:DefinedElement) 41511 source: DefinedElement, target:DefinedElement)
53420{ 41512{
@@ -53423,11 +41515,11 @@ private pattern mayInRelationePackage_reference_EClassifier(
53423 find mayExist(problem, interpretation, source); 41515 find mayExist(problem, interpretation, source);
53424 find mayExist(problem, interpretation, target); 41516 find mayExist(problem, interpretation, target);
53425 // Type consistency 41517 // Type consistency
53426 find mayInstanceOfEClassifier_class(problem,interpretation,source); 41518 find mayInstanceOfInformationLink_class(problem,interpretation,source);
53427 find mayInstanceOfEPackage_class(problem,interpretation,target); 41519 find mayInstanceOfFunctionalOutput_class(problem,interpretation,target);
53428 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 41520 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
53429 // the upper bound of the multiplicity should be considered. 41521 // the upper bound of the multiplicity should be considered.
53430 numberOfExistingReferences == count find mustInRelationePackage_reference_EClassifier(problem,interpretation,source,_); 41522 numberOfExistingReferences == count find mustInRelationfrom_reference_InformationLink(problem,interpretation,source,_);
53431 check(numberOfExistingReferences < 1); 41523 check(numberOfExistingReferences < 1);
53432 // The eOpposite of the reference is containment, then a referene cannot be created if 41524 // The eOpposite of the reference is containment, then a referene cannot be created if
53433 // 1. Multiple parents 41525 // 1. Multiple parents
@@ -53435,102 +41527,26 @@ private pattern mayInRelationePackage_reference_EClassifier(
53435 // 2. Circle in the containment hierarchy 41527 // 2. Circle in the containment hierarchy
53436 neg find mustTransitiveContains(source,target); 41528 neg find mustTransitiveContains(source,target);
53437} or { 41529} or {
53438 find mustInRelationePackage_reference_EClassifier(problem,interpretation,source,target); 41530 find mustInRelationfrom_reference_InformationLink(problem,interpretation,source,target);
53439}
53440/**
53441 * Matcher for detecting tuples t where []eTypeParameters reference EClassifier(source,target)
53442 */
53443private pattern mustInRelationeTypeParameters_reference_EClassifier(
53444 problem:LogicProblem, interpretation:PartialInterpretation,
53445 source: DefinedElement, target:DefinedElement)
53446{
53447 find interpretation(problem,interpretation);
53448 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
53449 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eTypeParameters reference EClassifier");
53450 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
53451 BinaryElementRelationLink.param1(link,source);
53452 BinaryElementRelationLink.param2(link,target);
53453}
53454/**
53455 * Matcher for detecting tuples t where <>eTypeParameters reference EClassifier(source,target)
53456 */
53457private pattern mayInRelationeTypeParameters_reference_EClassifier(
53458 problem:LogicProblem, interpretation:PartialInterpretation,
53459 source: DefinedElement, target:DefinedElement)
53460{
53461 find interpretation(problem,interpretation);
53462 // The two endpoint of the link have to exist
53463 find mayExist(problem, interpretation, source);
53464 find mayExist(problem, interpretation, target);
53465 // Type consistency
53466 find mayInstanceOfEClassifier_class(problem,interpretation,source);
53467 find mayInstanceOfETypeParameter_class(problem,interpretation,target);
53468 // The reference is containment, then a new reference cannot be create if:
53469 // 1. Multiple parents
53470 neg find mustContains4(problem,interpretation,_,target);
53471 // 2. Circle in the containment hierarchy
53472 neg find mustTransitiveContains(source,target);
53473} or {
53474 find mustInRelationeTypeParameters_reference_EClassifier(problem,interpretation,source,target);
53475}
53476/**
53477 * Matcher for detecting tuples t where []eLiterals reference EEnum(source,target)
53478 */
53479private pattern mustInRelationeLiterals_reference_EEnum(
53480 problem:LogicProblem, interpretation:PartialInterpretation,
53481 source: DefinedElement, target:DefinedElement)
53482{
53483 find interpretation(problem,interpretation);
53484 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
53485 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eLiterals reference EEnum");
53486 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
53487 BinaryElementRelationLink.param1(link,source);
53488 BinaryElementRelationLink.param2(link,target);
53489}
53490/**
53491 * Matcher for detecting tuples t where <>eLiterals reference EEnum(source,target)
53492 */
53493private pattern mayInRelationeLiterals_reference_EEnum(
53494 problem:LogicProblem, interpretation:PartialInterpretation,
53495 source: DefinedElement, target:DefinedElement)
53496{
53497 find interpretation(problem,interpretation);
53498 // The two endpoint of the link have to exist
53499 find mayExist(problem, interpretation, source);
53500 find mayExist(problem, interpretation, target);
53501 // Type consistency
53502 find mayInstanceOfEEnum_class(problem,interpretation,source);
53503 find mayInstanceOfEEnumLiteral_class(problem,interpretation,target);
53504 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
53505 // the upper bound of the opposite reference multiplicity should be considered.
53506 numberOfExistingOppositeReferences == count find mustInRelationeEnum_reference_EEnumLiteral(problem,interpretation,target,_);
53507 check(numberOfExistingOppositeReferences < 1);
53508 // The reference is containment, then a new reference cannot be create if:
53509 // 1. Multiple parents
53510 neg find mustContains4(problem,interpretation,_,target);
53511 // 2. Circle in the containment hierarchy
53512 neg find mustTransitiveContains(source,target);
53513} or {
53514 find mustInRelationeLiterals_reference_EEnum(problem,interpretation,source,target);
53515} 41531}
53516/** 41532/**
53517 * Matcher for detecting tuples t where []eEnum reference EEnumLiteral(source,target) 41533 * Matcher for detecting tuples t where []to reference InformationLink(source,target)
53518 */ 41534 */
53519private pattern mustInRelationeEnum_reference_EEnumLiteral( 41535private pattern mustInRelationto_reference_InformationLink(
53520 problem:LogicProblem, interpretation:PartialInterpretation, 41536 problem:LogicProblem, interpretation:PartialInterpretation,
53521 source: DefinedElement, target:DefinedElement) 41537 source: DefinedElement, target:DefinedElement)
53522{ 41538{
53523 find interpretation(problem,interpretation); 41539 find interpretation(problem,interpretation);
53524 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 41540 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
53525 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eEnum reference EEnumLiteral"); 41541 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"to reference InformationLink");
53526 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 41542 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
53527 BinaryElementRelationLink.param1(link,source); 41543 BinaryElementRelationLink.param1(link,source);
53528 BinaryElementRelationLink.param2(link,target); 41544 BinaryElementRelationLink.param2(link,target);
53529} 41545}
53530/** 41546/**
53531 * Matcher for detecting tuples t where <>eEnum reference EEnumLiteral(source,target) 41547 * Matcher for detecting tuples t where <>to reference InformationLink(source,target)
53532 */ 41548 */
53533private pattern mayInRelationeEnum_reference_EEnumLiteral( 41549private pattern mayInRelationto_reference_InformationLink(
53534 problem:LogicProblem, interpretation:PartialInterpretation, 41550 problem:LogicProblem, interpretation:PartialInterpretation,
53535 source: DefinedElement, target:DefinedElement) 41551 source: DefinedElement, target:DefinedElement)
53536{ 41552{
@@ -53539,38 +41555,33 @@ private pattern mayInRelationeEnum_reference_EEnumLiteral(
53539 find mayExist(problem, interpretation, source); 41555 find mayExist(problem, interpretation, source);
53540 find mayExist(problem, interpretation, target); 41556 find mayExist(problem, interpretation, target);
53541 // Type consistency 41557 // Type consistency
53542 find mayInstanceOfEEnumLiteral_class(problem,interpretation,source); 41558 find mayInstanceOfInformationLink_class(problem,interpretation,source);
53543 find mayInstanceOfEEnum_class(problem,interpretation,target); 41559 find mayInstanceOfFunctionalInput_class(problem,interpretation,target);
53544 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 41560 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
53545 // the upper bound of the multiplicity should be considered. 41561 // the upper bound of the multiplicity should be considered.
53546 numberOfExistingReferences == count find mustInRelationeEnum_reference_EEnumLiteral(problem,interpretation,source,_); 41562 numberOfExistingReferences == count find mustInRelationto_reference_InformationLink(problem,interpretation,source,_);
53547 check(numberOfExistingReferences < 1); 41563 check(numberOfExistingReferences < 1);
53548 // The eOpposite of the reference is containment, then a referene cannot be created if
53549 // 1. Multiple parents
53550 neg find mustContains4(problem,interpretation,source,_);
53551 // 2. Circle in the containment hierarchy
53552 neg find mustTransitiveContains(source,target);
53553} or { 41564} or {
53554 find mustInRelationeEnum_reference_EEnumLiteral(problem,interpretation,source,target); 41565 find mustInRelationto_reference_InformationLink(problem,interpretation,source,target);
53555} 41566}
53556/** 41567/**
53557 * Matcher for detecting tuples t where []eAnnotations reference EModelElement(source,target) 41568 * Matcher for detecting tuples t where []data reference FunctionalInterface(source,target)
53558 */ 41569 */
53559private pattern mustInRelationeAnnotations_reference_EModelElement( 41570private pattern mustInRelationdata_reference_FunctionalInterface(
53560 problem:LogicProblem, interpretation:PartialInterpretation, 41571 problem:LogicProblem, interpretation:PartialInterpretation,
53561 source: DefinedElement, target:DefinedElement) 41572 source: DefinedElement, target:DefinedElement)
53562{ 41573{
53563 find interpretation(problem,interpretation); 41574 find interpretation(problem,interpretation);
53564 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 41575 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
53565 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAnnotations reference EModelElement"); 41576 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"data reference FunctionalInterface");
53566 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 41577 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
53567 BinaryElementRelationLink.param1(link,source); 41578 BinaryElementRelationLink.param1(link,source);
53568 BinaryElementRelationLink.param2(link,target); 41579 BinaryElementRelationLink.param2(link,target);
53569} 41580}
53570/** 41581/**
53571 * Matcher for detecting tuples t where <>eAnnotations reference EModelElement(source,target) 41582 * Matcher for detecting tuples t where <>data reference FunctionalInterface(source,target)
53572 */ 41583 */
53573private pattern mayInRelationeAnnotations_reference_EModelElement( 41584private pattern mayInRelationdata_reference_FunctionalInterface(
53574 problem:LogicProblem, interpretation:PartialInterpretation, 41585 problem:LogicProblem, interpretation:PartialInterpretation,
53575 source: DefinedElement, target:DefinedElement) 41586 source: DefinedElement, target:DefinedElement)
53576{ 41587{
@@ -53579,11 +41590,11 @@ private pattern mayInRelationeAnnotations_reference_EModelElement(
53579 find mayExist(problem, interpretation, source); 41590 find mayExist(problem, interpretation, source);
53580 find mayExist(problem, interpretation, target); 41591 find mayExist(problem, interpretation, target);
53581 // Type consistency 41592 // Type consistency
53582 find mayInstanceOfEModelElement_class(problem,interpretation,source); 41593 find mayInstanceOfFunctionalInterface_class(problem,interpretation,source);
53583 find mayInstanceOfEAnnotation_class(problem,interpretation,target); 41594 find mayInstanceOfFunctionalData_class(problem,interpretation,target);
53584 // There are "numberOfExistingReferences" currently existing instances of the reference to the target, 41595 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
53585 // the upper bound of the opposite reference multiplicity should be considered. 41596 // the upper bound of the opposite reference multiplicity should be considered.
53586 numberOfExistingOppositeReferences == count find mustInRelationeModelElement_reference_EAnnotation(problem,interpretation,target,_); 41597 numberOfExistingOppositeReferences == count find mustInRelationinterface_reference_FunctionalData(problem,interpretation,target,_);
53587 check(numberOfExistingOppositeReferences < 1); 41598 check(numberOfExistingOppositeReferences < 1);
53588 // The reference is containment, then a new reference cannot be create if: 41599 // The reference is containment, then a new reference cannot be create if:
53589 // 1. Multiple parents 41600 // 1. Multiple parents
@@ -53591,26 +41602,26 @@ private pattern mayInRelationeAnnotations_reference_EModelElement(
53591 // 2. Circle in the containment hierarchy 41602 // 2. Circle in the containment hierarchy
53592 neg find mustTransitiveContains(source,target); 41603 neg find mustTransitiveContains(source,target);
53593} or { 41604} or {
53594 find mustInRelationeAnnotations_reference_EModelElement(problem,interpretation,source,target); 41605 find mustInRelationdata_reference_FunctionalInterface(problem,interpretation,source,target);
53595} 41606}
53596/** 41607/**
53597 * Matcher for detecting tuples t where []eContainingClass reference EOperation(source,target) 41608 * Matcher for detecting tuples t where []element reference FunctionalInterface(source,target)
53598 */ 41609 */
53599private pattern mustInRelationeContainingClass_reference_EOperation( 41610private pattern mustInRelationelement_reference_FunctionalInterface(
53600 problem:LogicProblem, interpretation:PartialInterpretation, 41611 problem:LogicProblem, interpretation:PartialInterpretation,
53601 source: DefinedElement, target:DefinedElement) 41612 source: DefinedElement, target:DefinedElement)
53602{ 41613{
53603 find interpretation(problem,interpretation); 41614 find interpretation(problem,interpretation);
53604 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 41615 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
53605 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eContainingClass reference EOperation"); 41616 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"element reference FunctionalInterface");
53606 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 41617 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
53607 BinaryElementRelationLink.param1(link,source); 41618 BinaryElementRelationLink.param1(link,source);
53608 BinaryElementRelationLink.param2(link,target); 41619 BinaryElementRelationLink.param2(link,target);
53609} 41620}
53610/** 41621/**
53611 * Matcher for detecting tuples t where <>eContainingClass reference EOperation(source,target) 41622 * Matcher for detecting tuples t where <>element reference FunctionalInterface(source,target)
53612 */ 41623 */
53613private pattern mayInRelationeContainingClass_reference_EOperation( 41624private pattern mayInRelationelement_reference_FunctionalInterface(
53614 problem:LogicProblem, interpretation:PartialInterpretation, 41625 problem:LogicProblem, interpretation:PartialInterpretation,
53615 source: DefinedElement, target:DefinedElement) 41626 source: DefinedElement, target:DefinedElement)
53616{ 41627{
@@ -53619,74 +41630,42 @@ private pattern mayInRelationeContainingClass_reference_EOperation(
53619 find mayExist(problem, interpretation, source); 41630 find mayExist(problem, interpretation, source);
53620 find mayExist(problem, interpretation, target); 41631 find mayExist(problem, interpretation, target);
53621 // Type consistency 41632 // Type consistency
53622 find mayInstanceOfEOperation_class(problem,interpretation,source); 41633 find mayInstanceOfFunctionalInterface_class(problem,interpretation,source);
53623 find mayInstanceOfEClass_class(problem,interpretation,target); 41634 find mayInstanceOfFunctionalElement_class(problem,interpretation,target);
53624 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 41635 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
53625 // the upper bound of the multiplicity should be considered. 41636 // the upper bound of the multiplicity should be considered.
53626 numberOfExistingReferences == count find mustInRelationeContainingClass_reference_EOperation(problem,interpretation,source,_); 41637 numberOfExistingReferences == count find mustInRelationelement_reference_FunctionalInterface(problem,interpretation,source,_);
53627 check(numberOfExistingReferences < 1); 41638 check(numberOfExistingReferences < 1);
41639 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
41640 // the upper bound of the opposite reference multiplicity should be considered.
41641 numberOfExistingOppositeReferences == count find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,target,_);
41642 check(numberOfExistingOppositeReferences < 1);
53628 // The eOpposite of the reference is containment, then a referene cannot be created if 41643 // The eOpposite of the reference is containment, then a referene cannot be created if
53629 // 1. Multiple parents 41644 // 1. Multiple parents
53630 neg find mustContains4(problem,interpretation,source,_); 41645 neg find mustContains4(problem,interpretation,source,_);
53631 // 2. Circle in the containment hierarchy 41646 // 2. Circle in the containment hierarchy
53632 neg find mustTransitiveContains(source,target); 41647 neg find mustTransitiveContains(source,target);
53633} or { 41648} or {
53634 find mustInRelationeContainingClass_reference_EOperation(problem,interpretation,source,target); 41649 find mustInRelationelement_reference_FunctionalInterface(problem,interpretation,source,target);
53635}
53636/**
53637 * Matcher for detecting tuples t where []eTypeParameters reference EOperation(source,target)
53638 */
53639private pattern mustInRelationeTypeParameters_reference_EOperation(
53640 problem:LogicProblem, interpretation:PartialInterpretation,
53641 source: DefinedElement, target:DefinedElement)
53642{
53643 find interpretation(problem,interpretation);
53644 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
53645 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eTypeParameters reference EOperation");
53646 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
53647 BinaryElementRelationLink.param1(link,source);
53648 BinaryElementRelationLink.param2(link,target);
53649}
53650/**
53651 * Matcher for detecting tuples t where <>eTypeParameters reference EOperation(source,target)
53652 */
53653private pattern mayInRelationeTypeParameters_reference_EOperation(
53654 problem:LogicProblem, interpretation:PartialInterpretation,
53655 source: DefinedElement, target:DefinedElement)
53656{
53657 find interpretation(problem,interpretation);
53658 // The two endpoint of the link have to exist
53659 find mayExist(problem, interpretation, source);
53660 find mayExist(problem, interpretation, target);
53661 // Type consistency
53662 find mayInstanceOfEOperation_class(problem,interpretation,source);
53663 find mayInstanceOfETypeParameter_class(problem,interpretation,target);
53664 // The reference is containment, then a new reference cannot be create if:
53665 // 1. Multiple parents
53666 neg find mustContains4(problem,interpretation,_,target);
53667 // 2. Circle in the containment hierarchy
53668 neg find mustTransitiveContains(source,target);
53669} or {
53670 find mustInRelationeTypeParameters_reference_EOperation(problem,interpretation,source,target);
53671} 41650}
53672/** 41651/**
53673 * Matcher for detecting tuples t where []eParameters reference EOperation(source,target) 41652 * Matcher for detecting tuples t where []IncomingLinks reference FunctionalInput(source,target)
53674 */ 41653 */
53675private pattern mustInRelationeParameters_reference_EOperation( 41654private pattern mustInRelationIncomingLinks_reference_FunctionalInput(
53676 problem:LogicProblem, interpretation:PartialInterpretation, 41655 problem:LogicProblem, interpretation:PartialInterpretation,
53677 source: DefinedElement, target:DefinedElement) 41656 source: DefinedElement, target:DefinedElement)
53678{ 41657{
53679 find interpretation(problem,interpretation); 41658 find interpretation(problem,interpretation);
53680 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 41659 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
53681 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eParameters reference EOperation"); 41660 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"IncomingLinks reference FunctionalInput");
53682 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 41661 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
53683 BinaryElementRelationLink.param1(link,source); 41662 BinaryElementRelationLink.param1(link,source);
53684 BinaryElementRelationLink.param2(link,target); 41663 BinaryElementRelationLink.param2(link,target);
53685} 41664}
53686/** 41665/**
53687 * Matcher for detecting tuples t where <>eParameters reference EOperation(source,target) 41666 * Matcher for detecting tuples t where <>IncomingLinks reference FunctionalInput(source,target)
53688 */ 41667 */
53689private pattern mayInRelationeParameters_reference_EOperation( 41668private pattern mayInRelationIncomingLinks_reference_FunctionalInput(
53690 problem:LogicProblem, interpretation:PartialInterpretation, 41669 problem:LogicProblem, interpretation:PartialInterpretation,
53691 source: DefinedElement, target:DefinedElement) 41670 source: DefinedElement, target:DefinedElement)
53692{ 41671{
@@ -53695,105 +41674,33 @@ private pattern mayInRelationeParameters_reference_EOperation(
53695 find mayExist(problem, interpretation, source); 41674 find mayExist(problem, interpretation, source);
53696 find mayExist(problem, interpretation, target); 41675 find mayExist(problem, interpretation, target);
53697 // Type consistency 41676 // Type consistency
53698 find mayInstanceOfEOperation_class(problem,interpretation,source); 41677 find mayInstanceOfFunctionalInput_class(problem,interpretation,source);
53699 find mayInstanceOfEParameter_class(problem,interpretation,target); 41678 find mayInstanceOfInformationLink_class(problem,interpretation,target);
53700 // There are "numberOfExistingReferences" currently existing instances of the reference to the target, 41679 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
53701 // the upper bound of the opposite reference multiplicity should be considered. 41680 // the upper bound of the opposite reference multiplicity should be considered.
53702 numberOfExistingOppositeReferences == count find mustInRelationeOperation_reference_EParameter(problem,interpretation,target,_); 41681 numberOfExistingOppositeReferences == count find mustInRelationto_reference_InformationLink(problem,interpretation,target,_);
53703 check(numberOfExistingOppositeReferences < 1); 41682 check(numberOfExistingOppositeReferences < 1);
53704 // The reference is containment, then a new reference cannot be create if:
53705 // 1. Multiple parents
53706 neg find mustContains4(problem,interpretation,_,target);
53707 // 2. Circle in the containment hierarchy
53708 neg find mustTransitiveContains(source,target);
53709} or { 41683} or {
53710 find mustInRelationeParameters_reference_EOperation(problem,interpretation,source,target); 41684 find mustInRelationIncomingLinks_reference_FunctionalInput(problem,interpretation,source,target);
53711}
53712/**
53713 * Matcher for detecting tuples t where []eExceptions reference EOperation(source,target)
53714 */
53715private pattern mustInRelationeExceptions_reference_EOperation(
53716 problem:LogicProblem, interpretation:PartialInterpretation,
53717 source: DefinedElement, target:DefinedElement)
53718{
53719 find interpretation(problem,interpretation);
53720 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
53721 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eExceptions reference EOperation");
53722 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
53723 BinaryElementRelationLink.param1(link,source);
53724 BinaryElementRelationLink.param2(link,target);
53725}
53726/**
53727 * Matcher for detecting tuples t where <>eExceptions reference EOperation(source,target)
53728 */
53729private pattern mayInRelationeExceptions_reference_EOperation(
53730 problem:LogicProblem, interpretation:PartialInterpretation,
53731 source: DefinedElement, target:DefinedElement)
53732{
53733 find interpretation(problem,interpretation);
53734 // The two endpoint of the link have to exist
53735 find mayExist(problem, interpretation, source);
53736 find mayExist(problem, interpretation, target);
53737 // Type consistency
53738 find mayInstanceOfEOperation_class(problem,interpretation,source);
53739 find mayInstanceOfEClassifier_class(problem,interpretation,target);
53740} or {
53741 find mustInRelationeExceptions_reference_EOperation(problem,interpretation,source,target);
53742}
53743/**
53744 * Matcher for detecting tuples t where []eGenericExceptions reference EOperation(source,target)
53745 */
53746private pattern mustInRelationeGenericExceptions_reference_EOperation(
53747 problem:LogicProblem, interpretation:PartialInterpretation,
53748 source: DefinedElement, target:DefinedElement)
53749{
53750 find interpretation(problem,interpretation);
53751 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
53752 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eGenericExceptions reference EOperation");
53753 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
53754 BinaryElementRelationLink.param1(link,source);
53755 BinaryElementRelationLink.param2(link,target);
53756}
53757/**
53758 * Matcher for detecting tuples t where <>eGenericExceptions reference EOperation(source,target)
53759 */
53760private pattern mayInRelationeGenericExceptions_reference_EOperation(
53761 problem:LogicProblem, interpretation:PartialInterpretation,
53762 source: DefinedElement, target:DefinedElement)
53763{
53764 find interpretation(problem,interpretation);
53765 // The two endpoint of the link have to exist
53766 find mayExist(problem, interpretation, source);
53767 find mayExist(problem, interpretation, target);
53768 // Type consistency
53769 find mayInstanceOfEOperation_class(problem,interpretation,source);
53770 find mayInstanceOfEGenericType_class(problem,interpretation,target);
53771 // The reference is containment, then a new reference cannot be create if:
53772 // 1. Multiple parents
53773 neg find mustContains4(problem,interpretation,_,target);
53774 // 2. Circle in the containment hierarchy
53775 neg find mustTransitiveContains(source,target);
53776} or {
53777 find mustInRelationeGenericExceptions_reference_EOperation(problem,interpretation,source,target);
53778} 41685}
53779/** 41686/**
53780 * Matcher for detecting tuples t where []eClassifiers reference EPackage(source,target) 41687 * Matcher for detecting tuples t where []outgoingLinks reference FunctionalOutput(source,target)
53781 */ 41688 */
53782private pattern mustInRelationeClassifiers_reference_EPackage( 41689private pattern mustInRelationoutgoingLinks_reference_FunctionalOutput(
53783 problem:LogicProblem, interpretation:PartialInterpretation, 41690 problem:LogicProblem, interpretation:PartialInterpretation,
53784 source: DefinedElement, target:DefinedElement) 41691 source: DefinedElement, target:DefinedElement)
53785{ 41692{
53786 find interpretation(problem,interpretation); 41693 find interpretation(problem,interpretation);
53787 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 41694 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
53788 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eClassifiers reference EPackage"); 41695 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"outgoingLinks reference FunctionalOutput");
53789 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 41696 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
53790 BinaryElementRelationLink.param1(link,source); 41697 BinaryElementRelationLink.param1(link,source);
53791 BinaryElementRelationLink.param2(link,target); 41698 BinaryElementRelationLink.param2(link,target);
53792} 41699}
53793/** 41700/**
53794 * Matcher for detecting tuples t where <>eClassifiers reference EPackage(source,target) 41701 * Matcher for detecting tuples t where <>outgoingLinks reference FunctionalOutput(source,target)
53795 */ 41702 */
53796private pattern mayInRelationeClassifiers_reference_EPackage( 41703private pattern mayInRelationoutgoingLinks_reference_FunctionalOutput(
53797 problem:LogicProblem, interpretation:PartialInterpretation, 41704 problem:LogicProblem, interpretation:PartialInterpretation,
53798 source: DefinedElement, target:DefinedElement) 41705 source: DefinedElement, target:DefinedElement)
53799{ 41706{
@@ -53802,11 +41709,11 @@ private pattern mayInRelationeClassifiers_reference_EPackage(
53802 find mayExist(problem, interpretation, source); 41709 find mayExist(problem, interpretation, source);
53803 find mayExist(problem, interpretation, target); 41710 find mayExist(problem, interpretation, target);
53804 // Type consistency 41711 // Type consistency
53805 find mayInstanceOfEPackage_class(problem,interpretation,source); 41712 find mayInstanceOfFunctionalOutput_class(problem,interpretation,source);
53806 find mayInstanceOfEClassifier_class(problem,interpretation,target); 41713 find mayInstanceOfInformationLink_class(problem,interpretation,target);
53807 // There are "numberOfExistingReferences" currently existing instances of the reference to the target, 41714 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
53808 // the upper bound of the opposite reference multiplicity should be considered. 41715 // the upper bound of the opposite reference multiplicity should be considered.
53809 numberOfExistingOppositeReferences == count find mustInRelationePackage_reference_EClassifier(problem,interpretation,target,_); 41716 numberOfExistingOppositeReferences == count find mustInRelationfrom_reference_InformationLink(problem,interpretation,target,_);
53810 check(numberOfExistingOppositeReferences < 1); 41717 check(numberOfExistingOppositeReferences < 1);
53811 // The reference is containment, then a new reference cannot be create if: 41718 // The reference is containment, then a new reference cannot be create if:
53812 // 1. Multiple parents 41719 // 1. Multiple parents
@@ -53814,26 +41721,26 @@ private pattern mayInRelationeClassifiers_reference_EPackage(
53814 // 2. Circle in the containment hierarchy 41721 // 2. Circle in the containment hierarchy
53815 neg find mustTransitiveContains(source,target); 41722 neg find mustTransitiveContains(source,target);
53816} or { 41723} or {
53817 find mustInRelationeClassifiers_reference_EPackage(problem,interpretation,source,target); 41724 find mustInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,source,target);
53818} 41725}
53819/** 41726/**
53820 * Matcher for detecting tuples t where []eSubpackages reference EPackage(source,target) 41727 * Matcher for detecting tuples t where []terminator reference FunctionalData(source,target)
53821 */ 41728 */
53822private pattern mustInRelationeSubpackages_reference_EPackage( 41729private pattern mustInRelationterminator_reference_FunctionalData(
53823 problem:LogicProblem, interpretation:PartialInterpretation, 41730 problem:LogicProblem, interpretation:PartialInterpretation,
53824 source: DefinedElement, target:DefinedElement) 41731 source: DefinedElement, target:DefinedElement)
53825{ 41732{
53826 find interpretation(problem,interpretation); 41733 find interpretation(problem,interpretation);
53827 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 41734 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
53828 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eSubpackages reference EPackage"); 41735 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"terminator reference FunctionalData");
53829 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 41736 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
53830 BinaryElementRelationLink.param1(link,source); 41737 BinaryElementRelationLink.param1(link,source);
53831 BinaryElementRelationLink.param2(link,target); 41738 BinaryElementRelationLink.param2(link,target);
53832} 41739}
53833/** 41740/**
53834 * Matcher for detecting tuples t where <>eSubpackages reference EPackage(source,target) 41741 * Matcher for detecting tuples t where <>terminator reference FunctionalData(source,target)
53835 */ 41742 */
53836private pattern mayInRelationeSubpackages_reference_EPackage( 41743private pattern mayInRelationterminator_reference_FunctionalData(
53837 problem:LogicProblem, interpretation:PartialInterpretation, 41744 problem:LogicProblem, interpretation:PartialInterpretation,
53838 source: DefinedElement, target:DefinedElement) 41745 source: DefinedElement, target:DefinedElement)
53839{ 41746{
@@ -53842,11 +41749,15 @@ private pattern mayInRelationeSubpackages_reference_EPackage(
53842 find mayExist(problem, interpretation, source); 41749 find mayExist(problem, interpretation, source);
53843 find mayExist(problem, interpretation, target); 41750 find mayExist(problem, interpretation, target);
53844 // Type consistency 41751 // Type consistency
53845 find mayInstanceOfEPackage_class(problem,interpretation,source); 41752 find mayInstanceOfFunctionalData_class(problem,interpretation,source);
53846 find mayInstanceOfEPackage_class(problem,interpretation,target); 41753 find mayInstanceOfFAMTerminator_class(problem,interpretation,target);
41754 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
41755 // the upper bound of the multiplicity should be considered.
41756 numberOfExistingReferences == count find mustInRelationterminator_reference_FunctionalData(problem,interpretation,source,_);
41757 check(numberOfExistingReferences < 1);
53847 // There are "numberOfExistingReferences" currently existing instances of the reference to the target, 41758 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
53848 // the upper bound of the opposite reference multiplicity should be considered. 41759 // the upper bound of the opposite reference multiplicity should be considered.
53849 numberOfExistingOppositeReferences == count find mustInRelationeSuperPackage_reference_EPackage(problem,interpretation,target,_); 41760 numberOfExistingOppositeReferences == count find mustInRelationdata_reference_FAMTerminator(problem,interpretation,target,_);
53850 check(numberOfExistingOppositeReferences < 1); 41761 check(numberOfExistingOppositeReferences < 1);
53851 // The reference is containment, then a new reference cannot be create if: 41762 // The reference is containment, then a new reference cannot be create if:
53852 // 1. Multiple parents 41763 // 1. Multiple parents
@@ -53854,26 +41765,26 @@ private pattern mayInRelationeSubpackages_reference_EPackage(
53854 // 2. Circle in the containment hierarchy 41765 // 2. Circle in the containment hierarchy
53855 neg find mustTransitiveContains(source,target); 41766 neg find mustTransitiveContains(source,target);
53856} or { 41767} or {
53857 find mustInRelationeSubpackages_reference_EPackage(problem,interpretation,source,target); 41768 find mustInRelationterminator_reference_FunctionalData(problem,interpretation,source,target);
53858} 41769}
53859/** 41770/**
53860 * Matcher for detecting tuples t where []eSuperPackage reference EPackage(source,target) 41771 * Matcher for detecting tuples t where []interface reference FunctionalData(source,target)
53861 */ 41772 */
53862private pattern mustInRelationeSuperPackage_reference_EPackage( 41773private pattern mustInRelationinterface_reference_FunctionalData(
53863 problem:LogicProblem, interpretation:PartialInterpretation, 41774 problem:LogicProblem, interpretation:PartialInterpretation,
53864 source: DefinedElement, target:DefinedElement) 41775 source: DefinedElement, target:DefinedElement)
53865{ 41776{
53866 find interpretation(problem,interpretation); 41777 find interpretation(problem,interpretation);
53867 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 41778 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
53868 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eSuperPackage reference EPackage"); 41779 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"interface reference FunctionalData");
53869 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 41780 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
53870 BinaryElementRelationLink.param1(link,source); 41781 BinaryElementRelationLink.param1(link,source);
53871 BinaryElementRelationLink.param2(link,target); 41782 BinaryElementRelationLink.param2(link,target);
53872} 41783}
53873/** 41784/**
53874 * Matcher for detecting tuples t where <>eSuperPackage reference EPackage(source,target) 41785 * Matcher for detecting tuples t where <>interface reference FunctionalData(source,target)
53875 */ 41786 */
53876private pattern mayInRelationeSuperPackage_reference_EPackage( 41787private pattern mayInRelationinterface_reference_FunctionalData(
53877 problem:LogicProblem, interpretation:PartialInterpretation, 41788 problem:LogicProblem, interpretation:PartialInterpretation,
53878 source: DefinedElement, target:DefinedElement) 41789 source: DefinedElement, target:DefinedElement)
53879{ 41790{
@@ -53882,11 +41793,11 @@ private pattern mayInRelationeSuperPackage_reference_EPackage(
53882 find mayExist(problem, interpretation, source); 41793 find mayExist(problem, interpretation, source);
53883 find mayExist(problem, interpretation, target); 41794 find mayExist(problem, interpretation, target);
53884 // Type consistency 41795 // Type consistency
53885 find mayInstanceOfEPackage_class(problem,interpretation,source); 41796 find mayInstanceOfFunctionalData_class(problem,interpretation,source);
53886 find mayInstanceOfEPackage_class(problem,interpretation,target); 41797 find mayInstanceOfFunctionalInterface_class(problem,interpretation,target);
53887 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 41798 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
53888 // the upper bound of the multiplicity should be considered. 41799 // the upper bound of the multiplicity should be considered.
53889 numberOfExistingReferences == count find mustInRelationeSuperPackage_reference_EPackage(problem,interpretation,source,_); 41800 numberOfExistingReferences == count find mustInRelationinterface_reference_FunctionalData(problem,interpretation,source,_);
53890 check(numberOfExistingReferences < 1); 41801 check(numberOfExistingReferences < 1);
53891 // The eOpposite of the reference is containment, then a referene cannot be created if 41802 // The eOpposite of the reference is containment, then a referene cannot be created if
53892 // 1. Multiple parents 41803 // 1. Multiple parents
@@ -53894,26 +41805,26 @@ private pattern mayInRelationeSuperPackage_reference_EPackage(
53894 // 2. Circle in the containment hierarchy 41805 // 2. Circle in the containment hierarchy
53895 neg find mustTransitiveContains(source,target); 41806 neg find mustTransitiveContains(source,target);
53896} or { 41807} or {
53897 find mustInRelationeSuperPackage_reference_EPackage(problem,interpretation,source,target); 41808 find mustInRelationinterface_reference_FunctionalData(problem,interpretation,source,target);
53898} 41809}
53899/** 41810/**
53900 * Matcher for detecting tuples t where []eOperation reference EParameter(source,target) 41811 * Matcher for detecting tuples t where []type attribute Function(source,target)
53901 */ 41812 */
53902private pattern mustInRelationeOperation_reference_EParameter( 41813private pattern mustInRelationtype_attribute_Function(
53903 problem:LogicProblem, interpretation:PartialInterpretation, 41814 problem:LogicProblem, interpretation:PartialInterpretation,
53904 source: DefinedElement, target:DefinedElement) 41815 source: DefinedElement, target:DefinedElement)
53905{ 41816{
53906 find interpretation(problem,interpretation); 41817 find interpretation(problem,interpretation);
53907 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 41818 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
53908 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eOperation reference EParameter"); 41819 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function");
53909 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 41820 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
53910 BinaryElementRelationLink.param1(link,source); 41821 BinaryElementRelationLink.param1(link,source);
53911 BinaryElementRelationLink.param2(link,target); 41822 BinaryElementRelationLink.param2(link,target);
53912} 41823}
53913/** 41824/**
53914 * Matcher for detecting tuples t where <>eOperation reference EParameter(source,target) 41825 * Matcher for detecting tuples t where <>type attribute Function(source,target)
53915 */ 41826 */
53916private pattern mayInRelationeOperation_reference_EParameter( 41827private pattern mayInRelationtype_attribute_Function(
53917 problem:LogicProblem, interpretation:PartialInterpretation, 41828 problem:LogicProblem, interpretation:PartialInterpretation,
53918 source: DefinedElement, target:DefinedElement) 41829 source: DefinedElement, target:DefinedElement)
53919{ 41830{
@@ -53922,1001 +41833,1094 @@ private pattern mayInRelationeOperation_reference_EParameter(
53922 find mayExist(problem, interpretation, source); 41833 find mayExist(problem, interpretation, source);
53923 find mayExist(problem, interpretation, target); 41834 find mayExist(problem, interpretation, target);
53924 // Type consistency 41835 // Type consistency
53925 find mayInstanceOfEParameter_class(problem,interpretation,source); 41836 find mayInstanceOfFunction_class(problem,interpretation,source);
53926 find mayInstanceOfEOperation_class(problem,interpretation,target); 41837 find mayInstanceOfFunctionType_enum(problem,interpretation,target);
53927 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 41838 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
53928 // the upper bound of the multiplicity should be considered. 41839 // the upper bound of the multiplicity should be considered.
53929 numberOfExistingReferences == count find mustInRelationeOperation_reference_EParameter(problem,interpretation,source,_); 41840 numberOfExistingReferences == count find mustInRelationtype_attribute_Function(problem,interpretation,source,_);
53930 check(numberOfExistingReferences < 1); 41841 check(numberOfExistingReferences < 1);
53931 // The eOpposite of the reference is containment, then a referene cannot be created if
53932 // 1. Multiple parents
53933 neg find mustContains4(problem,interpretation,source,_);
53934 // 2. Circle in the containment hierarchy
53935 neg find mustTransitiveContains(source,target);
53936} or { 41842} or {
53937 find mustInRelationeOperation_reference_EParameter(problem,interpretation,source,target); 41843 find mustInRelationtype_attribute_Function(problem,interpretation,source,target);
53938} 41844}
53939/** 41845
53940 * Matcher for detecting tuples t where []eOpposite reference EReference(source,target) 41846//////////
53941 */ 41847// 1.3 Relation Definition Indexers
53942private pattern mustInRelationeOpposite_reference_EReference( 41848//////////
41849// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test fam queries terminatorAndInformation
41850private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(
53943 problem:LogicProblem, interpretation:PartialInterpretation, 41851 problem:LogicProblem, interpretation:PartialInterpretation,
53944 source: DefinedElement, target:DefinedElement) 41852 var_T, var_I)
53945{ 41853{
53946 find interpretation(problem,interpretation); 41854 find interpretation(problem,interpretation);
53947 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 41855 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_T);
53948 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eOpposite reference EReference"); 41856 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
53949 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 41857 // T is exported
53950 BinaryElementRelationLink.param1(link,source); 41858 // I is exported
53951 BinaryElementRelationLink.param2(link,target); 41859 find mustInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
41860 find mustInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,var_Out,var_virtual0);
41861 find mustInstanceOfInformationLink_class(problem,interpretation,var_virtual0);
41862 var_virtual0 == var_I;
41863 find mustInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
41864 find mustInRelationterminator_reference_FunctionalData(problem,interpretation,var_Out,var_virtual1);
41865 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
41866 var_virtual1 == var_T;
41867}or{
41868 find interpretation(problem,interpretation);
41869 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_T);
41870 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
41871 // T is exported
41872 // I is exported
41873 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
41874 find mustInRelationto_reference_InformationLink(problem,interpretation,var_I,var_virtual0);
41875 find mustInstanceOfFunctionalInput_class(problem,interpretation,var_virtual0);
41876 var_virtual0 == var_In;
41877 find mustInstanceOfFunctionalInput_class(problem,interpretation,var_In);
41878 find mustInRelationterminator_reference_FunctionalData(problem,interpretation,var_In,var_virtual1);
41879 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
41880 var_virtual1 == var_T;
53952} 41881}
53953/** 41882private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(
53954 * Matcher for detecting tuples t where <>eOpposite reference EReference(source,target)
53955 */
53956private pattern mayInRelationeOpposite_reference_EReference(
53957 problem:LogicProblem, interpretation:PartialInterpretation, 41883 problem:LogicProblem, interpretation:PartialInterpretation,
53958 source: DefinedElement, target:DefinedElement) 41884 var_T, var_I)
53959{ 41885{
53960 find interpretation(problem,interpretation); 41886 find interpretation(problem,interpretation);
53961 // The two endpoint of the link have to exist 41887 find mayInstanceOfFAMTerminator_class(problem,interpretation,var_T);
53962 find mayExist(problem, interpretation, source); 41888 find mayInstanceOfInformationLink_class(problem,interpretation,var_I);
53963 find mayExist(problem, interpretation, target); 41889 // T is exported
53964 // Type consistency 41890 // I is exported
53965 find mayInstanceOfEReference_class(problem,interpretation,source); 41891 find mayInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
53966 find mayInstanceOfEReference_class(problem,interpretation,target); 41892 find mayInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,var_Out,var_virtual0);
53967 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 41893 find mayInstanceOfInformationLink_class(problem,interpretation,var_virtual0);
53968 // the upper bound of the multiplicity should be considered. 41894 find mayEquivalent(problem, interpretation, var_virtual0, var_I);
53969 numberOfExistingReferences == count find mustInRelationeOpposite_reference_EReference(problem,interpretation,source,_); 41895 find mayInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
53970 check(numberOfExistingReferences < 1); 41896 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,var_Out,var_virtual1);
53971} or { 41897 find mayInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
53972 find mustInRelationeOpposite_reference_EReference(problem,interpretation,source,target); 41898 find mayEquivalent(problem, interpretation, var_virtual1, var_T);
41899}or{
41900 find interpretation(problem,interpretation);
41901 find mayInstanceOfFAMTerminator_class(problem,interpretation,var_T);
41902 find mayInstanceOfInformationLink_class(problem,interpretation,var_I);
41903 // T is exported
41904 // I is exported
41905 find mayInstanceOfInformationLink_class(problem,interpretation,var_I);
41906 find mayInRelationto_reference_InformationLink(problem,interpretation,var_I,var_virtual0);
41907 find mayInstanceOfFunctionalInput_class(problem,interpretation,var_virtual0);
41908 find mayEquivalent(problem, interpretation, var_virtual0, var_In);
41909 find mayInstanceOfFunctionalInput_class(problem,interpretation,var_In);
41910 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,var_In,var_virtual1);
41911 find mayInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
41912 find mayEquivalent(problem, interpretation, var_virtual1, var_T);
53973} 41913}
53974/** 41914private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(
53975 * Matcher for detecting tuples t where []eReferenceType reference EReference(source,target)
53976 */
53977private pattern mustInRelationeReferenceType_reference_EReference(
53978 problem:LogicProblem, interpretation:PartialInterpretation, 41915 problem:LogicProblem, interpretation:PartialInterpretation,
53979 source: DefinedElement, target:DefinedElement) 41916 var_T, var_I)
53980{ 41917{
53981 find interpretation(problem,interpretation); 41918 find interpretation(problem,interpretation);
53982 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 41919 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_T);
53983 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eReferenceType reference EReference"); 41920 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
53984 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 41921 // T is exported
53985 BinaryElementRelationLink.param1(link,source); 41922 // I is exported
53986 BinaryElementRelationLink.param2(link,target); 41923 find mustInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
41924 find mustInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,var_Out,var_virtual0);
41925 find mustInstanceOfInformationLink_class(problem,interpretation,var_virtual0);
41926 var_virtual0 == var_I;
41927 find mustInstanceOfFunctionalOutput_class(problem,interpretation,var_Out);
41928 find mustInRelationterminator_reference_FunctionalData(problem,interpretation,var_Out,var_virtual1);
41929 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
41930 var_virtual1 == var_T;
41931}or{
41932 find interpretation(problem,interpretation);
41933 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_T);
41934 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
41935 // T is exported
41936 // I is exported
41937 find mustInstanceOfInformationLink_class(problem,interpretation,var_I);
41938 find mustInRelationto_reference_InformationLink(problem,interpretation,var_I,var_virtual0);
41939 find mustInstanceOfFunctionalInput_class(problem,interpretation,var_virtual0);
41940 var_virtual0 == var_In;
41941 find mustInstanceOfFunctionalInput_class(problem,interpretation,var_In);
41942 find mustInRelationterminator_reference_FunctionalData(problem,interpretation,var_In,var_virtual1);
41943 find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1);
41944 var_virtual1 == var_T;
53987} 41945}
53988/** 41946
53989 * Matcher for detecting tuples t where <>eReferenceType reference EReference(source,target) 41947//////////
53990 */ 41948// 1.4 Containment Indexer
53991private pattern mayInRelationeReferenceType_reference_EReference( 41949//////////
53992 problem:LogicProblem, interpretation:PartialInterpretation, 41950private pattern mustContains2(source: DefinedElement, target: DefinedElement) {
53993 source: DefinedElement, target:DefinedElement) 41951 find mustContains4(_,_,source,target);
41952}
41953
41954private pattern mustContains4(problem:LogicProblem, interpretation:PartialInterpretation,
41955 source: DefinedElement, target: DefinedElement)
41956 { find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,source,target); }or
41957
41958 { find mustInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,source,target); }or
41959
41960 { find mustInRelationsubElements_reference_Function(problem,interpretation,source,target); }or
41961
41962 { find mustInRelationdata_reference_FunctionalInterface(problem,interpretation,source,target); }or
41963
41964 { find mustInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,source,target); }or
41965
41966 { find mustInRelationterminator_reference_FunctionalData(problem,interpretation,source,target); }
41967
41968private pattern mustTransitiveContains(source,target) {
41969 find mustContains2+(source,target);
41970}
41971
41972//////////
41973// 2. Invalidation Indexers
41974//////////
41975// 2.1 Invalidated by WF Queries
41976//////////
41977pattern invalidatedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(problem:LogicProblem, interpretation:PartialInterpretation,
41978 var_T, var_I)
53994{ 41979{
41980 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(problem,interpretation,var_T,var_I);
41981}
41982
41983//////////
41984// 3. Unfinishedness Indexers
41985//////////
41986// 3.1 Unfinishedness Measured by Multiplicity
41987//////////
41988pattern unfinishedLowerMultiplicity_model_reference_FunctionalElement(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
53995 find interpretation(problem,interpretation); 41989 find interpretation(problem,interpretation);
53996 // The two endpoint of the link have to exist 41990 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
53997 find mayExist(problem, interpretation, source); 41991 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement");
53998 find mayExist(problem, interpretation, target); 41992 find mustInstanceOfFunctionalElement_class(problem,interpretation,object);
53999 // Type consistency 41993 numberOfExistingReferences == count find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,object,_);
54000 find mayInstanceOfEReference_class(problem,interpretation,source);
54001 find mayInstanceOfEClass_class(problem,interpretation,target);
54002 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
54003 // the upper bound of the multiplicity should be considered.
54004 numberOfExistingReferences == count find mustInRelationeReferenceType_reference_EReference(problem,interpretation,source,_);
54005 check(numberOfExistingReferences < 1); 41994 check(numberOfExistingReferences < 1);
54006} or { 41995 missingMultiplicity == eval(1-numberOfExistingReferences);
54007 find mustInRelationeReferenceType_reference_EReference(problem,interpretation,source,target);
54008} 41996}
54009/** 41997pattern unfinishedLowerMultiplicity_to_reference_InformationLink(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
54010 * Matcher for detecting tuples t where []eKeys reference EReference(source,target)
54011 */
54012private pattern mustInRelationeKeys_reference_EReference(
54013 problem:LogicProblem, interpretation:PartialInterpretation,
54014 source: DefinedElement, target:DefinedElement)
54015{
54016 find interpretation(problem,interpretation); 41998 find interpretation(problem,interpretation);
54017 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 41999 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
54018 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eKeys reference EReference"); 42000 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"to reference InformationLink");
54019 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 42001 find mustInstanceOfInformationLink_class(problem,interpretation,object);
54020 BinaryElementRelationLink.param1(link,source); 42002 numberOfExistingReferences == count find mustInRelationto_reference_InformationLink(problem,interpretation,object,_);
54021 BinaryElementRelationLink.param2(link,target); 42003 check(numberOfExistingReferences < 1);
42004 missingMultiplicity == eval(1-numberOfExistingReferences);
54022} 42005}
54023/** 42006pattern unfinishedLowerMultiplicity_type_attribute_Function(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
54024 * Matcher for detecting tuples t where <>eKeys reference EReference(source,target)
54025 */
54026private pattern mayInRelationeKeys_reference_EReference(
54027 problem:LogicProblem, interpretation:PartialInterpretation,
54028 source: DefinedElement, target:DefinedElement)
54029{
54030 find interpretation(problem,interpretation); 42007 find interpretation(problem,interpretation);
54031 // The two endpoint of the link have to exist 42008 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
54032 find mayExist(problem, interpretation, source); 42009 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function");
54033 find mayExist(problem, interpretation, target); 42010 find mustInstanceOfFunction_class(problem,interpretation,object);
54034 // Type consistency 42011 numberOfExistingReferences == count find mustInRelationtype_attribute_Function(problem,interpretation,object,_);
54035 find mayInstanceOfEReference_class(problem,interpretation,source); 42012 check(numberOfExistingReferences < 1);
54036 find mayInstanceOfEAttribute_class(problem,interpretation,target); 42013 missingMultiplicity == eval(1-numberOfExistingReferences);
54037} or {
54038 find mustInRelationeKeys_reference_EReference(problem,interpretation,source,target);
54039} 42014}
54040/** 42015
54041 * Matcher for detecting tuples t where []eContainingClass reference EStructuralFeature(source,target) 42016//////////
54042 */ 42017// 3.2 Unfinishedness Measured by WF Queries
54043private pattern mustInRelationeContainingClass_reference_EStructuralFeature( 42018//////////
54044 problem:LogicProblem, interpretation:PartialInterpretation, 42019pattern unfinishedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(problem:LogicProblem, interpretation:PartialInterpretation,
54045 source: DefinedElement, target:DefinedElement) 42020 var_T, var_I)
54046{ 42021{
54047 find interpretation(problem,interpretation); 42022 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(problem,interpretation,var_T,var_I);
54048 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
54049 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eContainingClass reference EStructuralFeature");
54050 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
54051 BinaryElementRelationLink.param1(link,source);
54052 BinaryElementRelationLink.param2(link,target);
54053} 42023}
54054/** 42024
54055 * Matcher for detecting tuples t where <>eContainingClass reference EStructuralFeature(source,target) 42025//////////
54056 */ 42026// 4. Refinement Indexers
54057private pattern mayInRelationeContainingClass_reference_EStructuralFeature( 42027//////////
54058 problem:LogicProblem, interpretation:PartialInterpretation, 42028// 4.1 Object constructors
54059 source: DefinedElement, target:DefinedElement) 42029//////////
42030private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation)
54060{ 42031{
54061 find interpretation(problem,interpretation); 42032 find interpretation(problem,interpretation);
54062 // The two endpoint of the link have to exist 42033 find mustInstanceOfFunctionalInterface_class(problem,interpretation,root);
54063 find mayExist(problem, interpretation, source); 42034 find mustExist(problem, interpretation, root);
54064 find mayExist(problem, interpretation, target); 42035}or{
54065 // Type consistency 42036 find interpretation(problem,interpretation);
54066 find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); 42037 find mustInstanceOfInformationLink_class(problem,interpretation,root);
54067 find mayInstanceOfEClass_class(problem,interpretation,target); 42038 find mustExist(problem, interpretation, root);
54068 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 42039}or{
54069 // the upper bound of the multiplicity should be considered. 42040 find interpretation(problem,interpretation);
54070 numberOfExistingReferences == count find mustInRelationeContainingClass_reference_EStructuralFeature(problem,interpretation,source,_); 42041 find mustInstanceOfFunctionalElement_class(problem,interpretation,root);
54071 check(numberOfExistingReferences < 1); 42042 find mustExist(problem, interpretation, root);
54072 // The eOpposite of the reference is containment, then a referene cannot be created if 42043}or{
54073 // 1. Multiple parents 42044 find interpretation(problem,interpretation);
54074 neg find mustContains4(problem,interpretation,source,_); 42045 find mustInstanceOfFAMTerminator_class(problem,interpretation,root);
54075 // 2. Circle in the containment hierarchy 42046 find mustExist(problem, interpretation, root);
54076 neg find mustTransitiveContains(source,target); 42047}or{
54077} or { 42048 find interpretation(problem,interpretation);
54078 find mustInRelationeContainingClass_reference_EStructuralFeature(problem,interpretation,source,target); 42049 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,root);
42050 find mustExist(problem, interpretation, root);
42051}or{
42052 find interpretation(problem,interpretation);
42053 find mustInstanceOfFunctionalInput_class(problem,interpretation,root);
42054 find mustExist(problem, interpretation, root);
42055}or{
42056 find interpretation(problem,interpretation);
42057 find mustInstanceOfFunction_class(problem,interpretation,root);
42058 find mustExist(problem, interpretation, root);
42059}or{
42060 find interpretation(problem,interpretation);
42061 find mustInstanceOfFunctionalOutput_class(problem,interpretation,root);
42062 find mustExist(problem, interpretation, root);
42063}or{
42064 find interpretation(problem,interpretation);
42065 find mustInstanceOfFunctionalData_class(problem,interpretation,root);
42066 find mustExist(problem, interpretation, root);
54079} 42067}
54080/** 42068pattern createObject_FunctionalArchitectureModel_class(
54081 * Matcher for detecting tuples t where []eType reference ETypedElement(source,target)
54082 */
54083private pattern mustInRelationeType_reference_ETypedElement(
54084 problem:LogicProblem, interpretation:PartialInterpretation, 42069 problem:LogicProblem, interpretation:PartialInterpretation,
54085 source: DefinedElement, target:DefinedElement) 42070 typeInterpretation:PartialComplexTypeInterpretation)
54086{ 42071{
54087 find interpretation(problem,interpretation); 42072 find interpretation(problem,interpretation);
54088 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 42073 neg find hasElementInContainment(problem,interpretation);
54089 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eType reference ETypedElement"); 42074 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
54090 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 42075 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalArchitectureModel class");
54091 BinaryElementRelationLink.param1(link,source); 42076 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,newObject);
54092 BinaryElementRelationLink.param2(link,target); 42077 find mayExist(problem, interpretation, newObject);
42078 neg find mustExist(problem, interpretation, newObject);
54093} 42079}
54094/** 42080pattern createObject_FunctionalInterface_class_by_interface_reference_FunctionalElement_with_element_reference_FunctionalInterface(
54095 * Matcher for detecting tuples t where <>eType reference ETypedElement(source,target)
54096 */
54097private pattern mayInRelationeType_reference_ETypedElement(
54098 problem:LogicProblem, interpretation:PartialInterpretation, 42081 problem:LogicProblem, interpretation:PartialInterpretation,
54099 source: DefinedElement, target:DefinedElement) 42082 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
42083 container:DefinedElement)
54100{ 42084{
54101 find interpretation(problem,interpretation); 42085 find interpretation(problem,interpretation);
54102 // The two endpoint of the link have to exist 42086 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
54103 find mayExist(problem, interpretation, source); 42087 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
54104 find mayExist(problem, interpretation, target); 42088 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
54105 // Type consistency 42089 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"interface reference FunctionalElement");
54106 find mayInstanceOfETypedElement_class(problem,interpretation,source); 42090 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
54107 find mayInstanceOfEClassifier_class(problem,interpretation,target); 42091 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"element reference FunctionalInterface");
54108 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 42092 find mustInstanceOfFunctionalElement_class(problem,interpretation,container);
54109 // the upper bound of the multiplicity should be considered. 42093 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
54110 numberOfExistingReferences == count find mustInRelationeType_reference_ETypedElement(problem,interpretation,source,_); 42094 find mayInRelationinterface_reference_FunctionalElement(problem,interpretation,container,newObject);
54111 check(numberOfExistingReferences < 1); 42095 find mustExist(problem, interpretation, container);
54112} or { 42096 neg find mustExist(problem, interpretation, newObject);
54113 find mustInRelationeType_reference_ETypedElement(problem,interpretation,source,target);
54114} 42097}
54115/** 42098pattern createObject_FunctionalInterface_class(
54116 * Matcher for detecting tuples t where []eGenericType reference ETypedElement(source,target)
54117 */
54118private pattern mustInRelationeGenericType_reference_ETypedElement(
54119 problem:LogicProblem, interpretation:PartialInterpretation, 42099 problem:LogicProblem, interpretation:PartialInterpretation,
54120 source: DefinedElement, target:DefinedElement) 42100 typeInterpretation:PartialComplexTypeInterpretation)
54121{ 42101{
54122 find interpretation(problem,interpretation); 42102 find interpretation(problem,interpretation);
54123 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 42103 neg find hasElementInContainment(problem,interpretation);
54124 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eGenericType reference ETypedElement"); 42104 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
54125 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 42105 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
54126 BinaryElementRelationLink.param1(link,source); 42106 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
54127 BinaryElementRelationLink.param2(link,target); 42107 find mayExist(problem, interpretation, newObject);
42108 neg find mustExist(problem, interpretation, newObject);
54128} 42109}
54129/** 42110pattern createObject_Function_class_by_rootElements_reference_FunctionalArchitectureModel(
54130 * Matcher for detecting tuples t where <>eGenericType reference ETypedElement(source,target)
54131 */
54132private pattern mayInRelationeGenericType_reference_ETypedElement(
54133 problem:LogicProblem, interpretation:PartialInterpretation, 42111 problem:LogicProblem, interpretation:PartialInterpretation,
54134 source: DefinedElement, target:DefinedElement) 42112 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
42113 container:DefinedElement)
54135{ 42114{
54136 find interpretation(problem,interpretation); 42115 find interpretation(problem,interpretation);
54137 // The two endpoint of the link have to exist 42116 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
54138 find mayExist(problem, interpretation, source); 42117 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class");
54139 find mayExist(problem, interpretation, target); 42118 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
54140 // Type consistency 42119 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"rootElements reference FunctionalArchitectureModel");
54141 find mayInstanceOfETypedElement_class(problem,interpretation,source); 42120 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,container);
54142 find mayInstanceOfEGenericType_class(problem,interpretation,target); 42121 find mayInstanceOfFunction_class(problem,interpretation,newObject);
54143 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 42122 find mayInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,container,newObject);
54144 // the upper bound of the multiplicity should be considered. 42123 find mustExist(problem, interpretation, container);
54145 numberOfExistingReferences == count find mustInRelationeGenericType_reference_ETypedElement(problem,interpretation,source,_); 42124 neg find mustExist(problem, interpretation, newObject);
54146 check(numberOfExistingReferences < 1);
54147 // The reference is containment, then a new reference cannot be create if:
54148 // 1. Multiple parents
54149 neg find mustContains4(problem,interpretation,_,target);
54150 // 2. Circle in the containment hierarchy
54151 neg find mustTransitiveContains(source,target);
54152} or {
54153 find mustInRelationeGenericType_reference_ETypedElement(problem,interpretation,source,target);
54154} 42125}
54155/** 42126pattern createObject_Function_class_by_subElements_reference_Function_with_parent_reference_FunctionalElement(
54156 * Matcher for detecting tuples t where []eUpperBound reference EGenericType(source,target)
54157 */
54158private pattern mustInRelationeUpperBound_reference_EGenericType(
54159 problem:LogicProblem, interpretation:PartialInterpretation, 42127 problem:LogicProblem, interpretation:PartialInterpretation,
54160 source: DefinedElement, target:DefinedElement) 42128 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
42129 container:DefinedElement)
54161{ 42130{
54162 find interpretation(problem,interpretation); 42131 find interpretation(problem,interpretation);
54163 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 42132 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
54164 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eUpperBound reference EGenericType"); 42133 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class");
54165 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 42134 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
54166 BinaryElementRelationLink.param1(link,source); 42135 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"subElements reference Function");
54167 BinaryElementRelationLink.param2(link,target); 42136 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
42137 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"parent reference FunctionalElement");
42138 find mustInstanceOfFunction_class(problem,interpretation,container);
42139 find mayInstanceOfFunction_class(problem,interpretation,newObject);
42140 find mayInRelationsubElements_reference_Function(problem,interpretation,container,newObject);
42141 find mustExist(problem, interpretation, container);
42142 neg find mustExist(problem, interpretation, newObject);
54168} 42143}
54169/** 42144pattern createObject_Function_class(
54170 * Matcher for detecting tuples t where <>eUpperBound reference EGenericType(source,target)
54171 */
54172private pattern mayInRelationeUpperBound_reference_EGenericType(
54173 problem:LogicProblem, interpretation:PartialInterpretation, 42145 problem:LogicProblem, interpretation:PartialInterpretation,
54174 source: DefinedElement, target:DefinedElement) 42146 typeInterpretation:PartialComplexTypeInterpretation)
54175{ 42147{
54176 find interpretation(problem,interpretation); 42148 find interpretation(problem,interpretation);
54177 // The two endpoint of the link have to exist 42149 neg find hasElementInContainment(problem,interpretation);
54178 find mayExist(problem, interpretation, source); 42150 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
54179 find mayExist(problem, interpretation, target); 42151 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class");
54180 // Type consistency 42152 find mayInstanceOfFunction_class(problem,interpretation,newObject);
54181 find mayInstanceOfEGenericType_class(problem,interpretation,source); 42153 find mayExist(problem, interpretation, newObject);
54182 find mayInstanceOfEGenericType_class(problem,interpretation,target); 42154 neg find mustExist(problem, interpretation, newObject);
54183 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
54184 // the upper bound of the multiplicity should be considered.
54185 numberOfExistingReferences == count find mustInRelationeUpperBound_reference_EGenericType(problem,interpretation,source,_);
54186 check(numberOfExistingReferences < 1);
54187 // The reference is containment, then a new reference cannot be create if:
54188 // 1. Multiple parents
54189 neg find mustContains4(problem,interpretation,_,target);
54190 // 2. Circle in the containment hierarchy
54191 neg find mustTransitiveContains(source,target);
54192} or {
54193 find mustInRelationeUpperBound_reference_EGenericType(problem,interpretation,source,target);
54194} 42155}
54195/** 42156pattern createObject_FunctionalOutput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData(
54196 * Matcher for detecting tuples t where []eTypeArguments reference EGenericType(source,target)
54197 */
54198private pattern mustInRelationeTypeArguments_reference_EGenericType(
54199 problem:LogicProblem, interpretation:PartialInterpretation, 42157 problem:LogicProblem, interpretation:PartialInterpretation,
54200 source: DefinedElement, target:DefinedElement) 42158 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
42159 container:DefinedElement)
54201{ 42160{
54202 find interpretation(problem,interpretation); 42161 find interpretation(problem,interpretation);
54203 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 42162 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
54204 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eTypeArguments reference EGenericType"); 42163 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class");
54205 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 42164 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
54206 BinaryElementRelationLink.param1(link,source); 42165 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface");
54207 BinaryElementRelationLink.param2(link,target); 42166 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
42167 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData");
42168 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container);
42169 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject);
42170 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject);
42171 find mustExist(problem, interpretation, container);
42172 neg find mustExist(problem, interpretation, newObject);
54208} 42173}
54209/** 42174pattern createObject_FunctionalOutput_class(
54210 * Matcher for detecting tuples t where <>eTypeArguments reference EGenericType(source,target)
54211 */
54212private pattern mayInRelationeTypeArguments_reference_EGenericType(
54213 problem:LogicProblem, interpretation:PartialInterpretation, 42175 problem:LogicProblem, interpretation:PartialInterpretation,
54214 source: DefinedElement, target:DefinedElement) 42176 typeInterpretation:PartialComplexTypeInterpretation)
54215{ 42177{
54216 find interpretation(problem,interpretation); 42178 find interpretation(problem,interpretation);
54217 // The two endpoint of the link have to exist 42179 neg find hasElementInContainment(problem,interpretation);
54218 find mayExist(problem, interpretation, source); 42180 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
54219 find mayExist(problem, interpretation, target); 42181 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class");
54220 // Type consistency 42182 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject);
54221 find mayInstanceOfEGenericType_class(problem,interpretation,source); 42183 find mayExist(problem, interpretation, newObject);
54222 find mayInstanceOfEGenericType_class(problem,interpretation,target); 42184 neg find mustExist(problem, interpretation, newObject);
54223 // The reference is containment, then a new reference cannot be create if:
54224 // 1. Multiple parents
54225 neg find mustContains4(problem,interpretation,_,target);
54226 // 2. Circle in the containment hierarchy
54227 neg find mustTransitiveContains(source,target);
54228} or {
54229 find mustInRelationeTypeArguments_reference_EGenericType(problem,interpretation,source,target);
54230} 42185}
54231/** 42186pattern createObject_FunctionalInput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData(
54232 * Matcher for detecting tuples t where []eRawType reference EGenericType(source,target)
54233 */
54234private pattern mustInRelationeRawType_reference_EGenericType(
54235 problem:LogicProblem, interpretation:PartialInterpretation, 42187 problem:LogicProblem, interpretation:PartialInterpretation,
54236 source: DefinedElement, target:DefinedElement) 42188 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
42189 container:DefinedElement)
54237{ 42190{
54238 find interpretation(problem,interpretation); 42191 find interpretation(problem,interpretation);
54239 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 42192 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
54240 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eRawType reference EGenericType"); 42193 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class");
54241 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 42194 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
54242 BinaryElementRelationLink.param1(link,source); 42195 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface");
54243 BinaryElementRelationLink.param2(link,target); 42196 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
42197 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData");
42198 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container);
42199 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
42200 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject);
42201 find mustExist(problem, interpretation, container);
42202 neg find mustExist(problem, interpretation, newObject);
54244} 42203}
54245/** 42204pattern createObject_FunctionalInput_class(
54246 * Matcher for detecting tuples t where <>eRawType reference EGenericType(source,target)
54247 */
54248private pattern mayInRelationeRawType_reference_EGenericType(
54249 problem:LogicProblem, interpretation:PartialInterpretation, 42205 problem:LogicProblem, interpretation:PartialInterpretation,
54250 source: DefinedElement, target:DefinedElement) 42206 typeInterpretation:PartialComplexTypeInterpretation)
54251{ 42207{
54252 find interpretation(problem,interpretation); 42208 find interpretation(problem,interpretation);
54253 // The two endpoint of the link have to exist 42209 neg find hasElementInContainment(problem,interpretation);
54254 find mayExist(problem, interpretation, source); 42210 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
54255 find mayExist(problem, interpretation, target); 42211 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class");
54256 // Type consistency 42212 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
54257 find mayInstanceOfEGenericType_class(problem,interpretation,source); 42213 find mayExist(problem, interpretation, newObject);
54258 find mayInstanceOfEClassifier_class(problem,interpretation,target); 42214 neg find mustExist(problem, interpretation, newObject);
54259 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
54260 // the upper bound of the multiplicity should be considered.
54261 numberOfExistingReferences == count find mustInRelationeRawType_reference_EGenericType(problem,interpretation,source,_);
54262 check(numberOfExistingReferences < 1);
54263} or {
54264 find mustInRelationeRawType_reference_EGenericType(problem,interpretation,source,target);
54265} 42215}
54266/** 42216pattern createObject_FAMTerminator_class_by_terminator_reference_FunctionalData_with_data_reference_FAMTerminator(
54267 * Matcher for detecting tuples t where []eLowerBound reference EGenericType(source,target)
54268 */
54269private pattern mustInRelationeLowerBound_reference_EGenericType(
54270 problem:LogicProblem, interpretation:PartialInterpretation, 42217 problem:LogicProblem, interpretation:PartialInterpretation,
54271 source: DefinedElement, target:DefinedElement) 42218 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
42219 container:DefinedElement)
54272{ 42220{
54273 find interpretation(problem,interpretation); 42221 find interpretation(problem,interpretation);
54274 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 42222 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
54275 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eLowerBound reference EGenericType"); 42223 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class");
54276 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 42224 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
54277 BinaryElementRelationLink.param1(link,source); 42225 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"terminator reference FunctionalData");
54278 BinaryElementRelationLink.param2(link,target); 42226 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
42227 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"data reference FAMTerminator");
42228 find mustInstanceOfFunctionalData_class(problem,interpretation,container);
42229 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject);
42230 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,container,newObject);
42231 find mustExist(problem, interpretation, container);
42232 neg find mustExist(problem, interpretation, newObject);
54279} 42233}
54280/** 42234pattern createObject_FAMTerminator_class(
54281 * Matcher for detecting tuples t where <>eLowerBound reference EGenericType(source,target)
54282 */
54283private pattern mayInRelationeLowerBound_reference_EGenericType(
54284 problem:LogicProblem, interpretation:PartialInterpretation, 42235 problem:LogicProblem, interpretation:PartialInterpretation,
54285 source: DefinedElement, target:DefinedElement) 42236 typeInterpretation:PartialComplexTypeInterpretation)
54286{ 42237{
54287 find interpretation(problem,interpretation); 42238 find interpretation(problem,interpretation);
54288 // The two endpoint of the link have to exist 42239 neg find hasElementInContainment(problem,interpretation);
54289 find mayExist(problem, interpretation, source); 42240 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
54290 find mayExist(problem, interpretation, target); 42241 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class");
54291 // Type consistency 42242 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject);
54292 find mayInstanceOfEGenericType_class(problem,interpretation,source); 42243 find mayExist(problem, interpretation, newObject);
54293 find mayInstanceOfEGenericType_class(problem,interpretation,target); 42244 neg find mustExist(problem, interpretation, newObject);
54294 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
54295 // the upper bound of the multiplicity should be considered.
54296 numberOfExistingReferences == count find mustInRelationeLowerBound_reference_EGenericType(problem,interpretation,source,_);
54297 check(numberOfExistingReferences < 1);
54298 // The reference is containment, then a new reference cannot be create if:
54299 // 1. Multiple parents
54300 neg find mustContains4(problem,interpretation,_,target);
54301 // 2. Circle in the containment hierarchy
54302 neg find mustTransitiveContains(source,target);
54303} or {
54304 find mustInRelationeLowerBound_reference_EGenericType(problem,interpretation,source,target);
54305} 42245}
54306/** 42246pattern createObject_InformationLink_class_by_outgoingLinks_reference_FunctionalOutput_with_from_reference_InformationLink(
54307 * Matcher for detecting tuples t where []eTypeParameter reference EGenericType(source,target)
54308 */
54309private pattern mustInRelationeTypeParameter_reference_EGenericType(
54310 problem:LogicProblem, interpretation:PartialInterpretation, 42247 problem:LogicProblem, interpretation:PartialInterpretation,
54311 source: DefinedElement, target:DefinedElement) 42248 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
42249 container:DefinedElement)
54312{ 42250{
54313 find interpretation(problem,interpretation); 42251 find interpretation(problem,interpretation);
54314 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 42252 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
54315 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eTypeParameter reference EGenericType"); 42253 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class");
54316 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 42254 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
54317 BinaryElementRelationLink.param1(link,source); 42255 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"outgoingLinks reference FunctionalOutput");
54318 BinaryElementRelationLink.param2(link,target); 42256 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
42257 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"from reference InformationLink");
42258 find mustInstanceOfFunctionalOutput_class(problem,interpretation,container);
42259 find mayInstanceOfInformationLink_class(problem,interpretation,newObject);
42260 find mayInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,container,newObject);
42261 find mustExist(problem, interpretation, container);
42262 neg find mustExist(problem, interpretation, newObject);
54319} 42263}
54320/** 42264pattern createObject_InformationLink_class(
54321 * Matcher for detecting tuples t where <>eTypeParameter reference EGenericType(source,target)
54322 */
54323private pattern mayInRelationeTypeParameter_reference_EGenericType(
54324 problem:LogicProblem, interpretation:PartialInterpretation, 42265 problem:LogicProblem, interpretation:PartialInterpretation,
54325 source: DefinedElement, target:DefinedElement) 42266 typeInterpretation:PartialComplexTypeInterpretation)
54326{ 42267{
54327 find interpretation(problem,interpretation); 42268 find interpretation(problem,interpretation);
54328 // The two endpoint of the link have to exist 42269 neg find hasElementInContainment(problem,interpretation);
54329 find mayExist(problem, interpretation, source); 42270 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
54330 find mayExist(problem, interpretation, target); 42271 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class");
54331 // Type consistency 42272 find mayInstanceOfInformationLink_class(problem,interpretation,newObject);
54332 find mayInstanceOfEGenericType_class(problem,interpretation,source); 42273 find mayExist(problem, interpretation, newObject);
54333 find mayInstanceOfETypeParameter_class(problem,interpretation,target); 42274 neg find mustExist(problem, interpretation, newObject);
54334 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
54335 // the upper bound of the multiplicity should be considered.
54336 numberOfExistingReferences == count find mustInRelationeTypeParameter_reference_EGenericType(problem,interpretation,source,_);
54337 check(numberOfExistingReferences < 1);
54338} or {
54339 find mustInRelationeTypeParameter_reference_EGenericType(problem,interpretation,source,target);
54340} 42275}
54341/** 42276
54342 * Matcher for detecting tuples t where []eClassifier reference EGenericType(source,target) 42277//////////
54343 */ 42278// 4.2 Type refinement
54344private pattern mustInRelationeClassifier_reference_EGenericType( 42279//////////
54345 problem:LogicProblem, interpretation:PartialInterpretation, 42280pattern refineTypeTo_FunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
54346 source: DefinedElement, target:DefinedElement)
54347{
54348 find interpretation(problem,interpretation); 42281 find interpretation(problem,interpretation);
54349 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 42282 PartialInterpretation.newElements(interpretation,element);
54350 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eClassifier reference EGenericType"); 42283 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
54351 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 42284 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
54352 BinaryElementRelationLink.param1(link,source); 42285 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
54353 BinaryElementRelationLink.param2(link,target); 42286 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
42287 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
42288 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
42289 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
54354} 42290}
54355/** 42291pattern refineTypeTo_FunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
54356 * Matcher for detecting tuples t where <>eClassifier reference EGenericType(source,target)
54357 */
54358private pattern mayInRelationeClassifier_reference_EGenericType(
54359 problem:LogicProblem, interpretation:PartialInterpretation,
54360 source: DefinedElement, target:DefinedElement)
54361{
54362 find interpretation(problem,interpretation); 42292 find interpretation(problem,interpretation);
54363 // The two endpoint of the link have to exist 42293 PartialInterpretation.newElements(interpretation,element);
54364 find mayExist(problem, interpretation, source); 42294 find mayInstanceOfFunctionalInterface_class(problem,interpretation,element);
54365 find mayExist(problem, interpretation, target); 42295 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
54366 // Type consistency 42296 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
54367 find mayInstanceOfEGenericType_class(problem,interpretation,source); 42297 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
54368 find mayInstanceOfEClassifier_class(problem,interpretation,target); 42298 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
54369 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 42299 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
54370 // the upper bound of the multiplicity should be considered. 42300 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
54371 numberOfExistingReferences == count find mustInRelationeClassifier_reference_EGenericType(problem,interpretation,source,_);
54372 check(numberOfExistingReferences < 1);
54373} or {
54374 find mustInRelationeClassifier_reference_EGenericType(problem,interpretation,source,target);
54375} 42301}
54376/** 42302pattern refineTypeTo_Function_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
54377 * Matcher for detecting tuples t where []eBounds reference ETypeParameter(source,target)
54378 */
54379private pattern mustInRelationeBounds_reference_ETypeParameter(
54380 problem:LogicProblem, interpretation:PartialInterpretation,
54381 source: DefinedElement, target:DefinedElement)
54382{
54383 find interpretation(problem,interpretation); 42303 find interpretation(problem,interpretation);
54384 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 42304 PartialInterpretation.newElements(interpretation,element);
54385 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eBounds reference ETypeParameter"); 42305 find mayInstanceOfFunction_class(problem,interpretation,element);
54386 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 42306 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
54387 BinaryElementRelationLink.param1(link,source); 42307 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
54388 BinaryElementRelationLink.param2(link,target); 42308 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
42309 neg find mustInstanceOfFunction_class(problem,interpretation,element);
42310 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
42311 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
54389} 42312}
54390/** 42313pattern refineTypeTo_FunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
54391 * Matcher for detecting tuples t where <>eBounds reference ETypeParameter(source,target)
54392 */
54393private pattern mayInRelationeBounds_reference_ETypeParameter(
54394 problem:LogicProblem, interpretation:PartialInterpretation,
54395 source: DefinedElement, target:DefinedElement)
54396{
54397 find interpretation(problem,interpretation); 42314 find interpretation(problem,interpretation);
54398 // The two endpoint of the link have to exist 42315 PartialInterpretation.newElements(interpretation,element);
54399 find mayExist(problem, interpretation, source); 42316 find mayInstanceOfFunctionalOutput_class(problem,interpretation,element);
54400 find mayExist(problem, interpretation, target); 42317 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
54401 // Type consistency 42318 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
54402 find mayInstanceOfETypeParameter_class(problem,interpretation,source); 42319 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
54403 find mayInstanceOfEGenericType_class(problem,interpretation,target); 42320 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
54404 // The reference is containment, then a new reference cannot be create if: 42321 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
54405 // 1. Multiple parents 42322 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
54406 neg find mustContains4(problem,interpretation,_,target); 42323 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
54407 // 2. Circle in the containment hierarchy
54408 neg find mustTransitiveContains(source,target);
54409} or {
54410 find mustInRelationeBounds_reference_ETypeParameter(problem,interpretation,source,target);
54411} 42324}
54412/** 42325pattern refineTypeTo_FunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
54413 * Matcher for detecting tuples t where []iD attribute EAttribute(source,target)
54414 */
54415private pattern mustInRelationiD_attribute_EAttribute(
54416 problem:LogicProblem, interpretation:PartialInterpretation,
54417 source: DefinedElement, target:DefinedElement)
54418{
54419 find interpretation(problem,interpretation); 42326 find interpretation(problem,interpretation);
54420 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 42327 PartialInterpretation.newElements(interpretation,element);
54421 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"iD attribute EAttribute"); 42328 find mayInstanceOfFunctionalInput_class(problem,interpretation,element);
54422 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 42329 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
54423 BinaryElementRelationLink.param1(link,source); 42330 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
54424 BinaryElementRelationLink.param2(link,target); 42331 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
42332 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
42333 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
42334 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
42335 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
54425} 42336}
54426/** 42337pattern refineTypeTo_FAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
54427 * Matcher for detecting tuples t where <>iD attribute EAttribute(source,target)
54428 */
54429private pattern mayInRelationiD_attribute_EAttribute(
54430 problem:LogicProblem, interpretation:PartialInterpretation,
54431 source: DefinedElement, target:DefinedElement)
54432{
54433 find interpretation(problem,interpretation); 42338 find interpretation(problem,interpretation);
54434 // The two endpoint of the link have to exist 42339 PartialInterpretation.newElements(interpretation,element);
54435 find mayExist(problem, interpretation, source); 42340 find mayInstanceOfFAMTerminator_class(problem,interpretation,element);
54436 find mayExist(problem, interpretation, target); 42341 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
54437 // Type consistency 42342 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
54438 find mayInstanceOfEAttribute_class(problem,interpretation,source); 42343 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
54439 BooleanElement(target); 42344 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
54440 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 42345 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
54441 // the upper bound of the multiplicity should be considered. 42346 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
54442 numberOfExistingReferences == count find mustInRelationiD_attribute_EAttribute(problem,interpretation,source,_);
54443 check(numberOfExistingReferences < 1);
54444} or {
54445 find mustInRelationiD_attribute_EAttribute(problem,interpretation,source,target);
54446} 42347}
54447/** 42348pattern refineTypeTo_InformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
54448 * Matcher for detecting tuples t where []source attribute EAnnotation(source,target) 42349 find interpretation(problem,interpretation);
54449 */ 42350 PartialInterpretation.newElements(interpretation,element);
54450private pattern mustInRelationsource_attribute_EAnnotation( 42351 find mayInstanceOfInformationLink_class(problem,interpretation,element);
42352 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
42353 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
42354 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
42355 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
42356 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
42357 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
42358}
42359
42360//////////
42361// 4.3 Relation refinement
42362//////////
42363pattern refineRelation_model_reference_FunctionalElement(
54451 problem:LogicProblem, interpretation:PartialInterpretation, 42364 problem:LogicProblem, interpretation:PartialInterpretation,
54452 source: DefinedElement, target:DefinedElement) 42365 relationIterpretation:PartialRelationInterpretation,
42366 from: DefinedElement, to: DefinedElement)
54453{ 42367{
54454 find interpretation(problem,interpretation); 42368 find interpretation(problem,interpretation);
54455 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 42369 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
54456 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"source attribute EAnnotation"); 42370 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement");
54457 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 42371 find mustExist(problem, interpretation, from);
54458 BinaryElementRelationLink.param1(link,source); 42372 find mustExist(problem, interpretation, to);
54459 BinaryElementRelationLink.param2(link,target); 42373 find mustInstanceOfFunctionalElement_class(problem,interpretation,from);
42374 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,to);
42375 find mayInRelationmodel_reference_FunctionalElement(problem,interpretation,from,to);
42376 neg find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,from,to);
54460} 42377}
54461/** 42378pattern refineRelation_IncomingLinks_reference_FunctionalInput_and_to_reference_InformationLink(
54462 * Matcher for detecting tuples t where <>source attribute EAnnotation(source,target)
54463 */
54464private pattern mayInRelationsource_attribute_EAnnotation(
54465 problem:LogicProblem, interpretation:PartialInterpretation, 42379 problem:LogicProblem, interpretation:PartialInterpretation,
54466 source: DefinedElement, target:DefinedElement) 42380 relationIterpretation:PartialRelationInterpretation, oppositeInterpretation:PartialRelationInterpretation,
42381 from: DefinedElement, to: DefinedElement)
54467{ 42382{
54468 find interpretation(problem,interpretation); 42383 find interpretation(problem,interpretation);
54469 // The two endpoint of the link have to exist 42384 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
54470 find mayExist(problem, interpretation, source); 42385 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"IncomingLinks reference FunctionalInput");
54471 find mayExist(problem, interpretation, target); 42386 PartialInterpretation.partialrelationinterpretation(interpretation,oppositeInterpretation);
54472 // Type consistency 42387 PartialRelationInterpretation.interpretationOf.name(oppositeInterpretation,"to reference InformationLink");
54473 find mayInstanceOfEAnnotation_class(problem,interpretation,source); 42388 find mustExist(problem, interpretation, from);
54474 StringElement(target); 42389 find mustExist(problem, interpretation, to);
54475 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 42390 find mustInstanceOfFunctionalInput_class(problem,interpretation,from);
54476 // the upper bound of the multiplicity should be considered. 42391 find mustInstanceOfInformationLink_class(problem,interpretation,to);
54477 numberOfExistingReferences == count find mustInRelationsource_attribute_EAnnotation(problem,interpretation,source,_); 42392 find mayInRelationIncomingLinks_reference_FunctionalInput(problem,interpretation,from,to);
54478 check(numberOfExistingReferences < 1); 42393 neg find mustInRelationIncomingLinks_reference_FunctionalInput(problem,interpretation,from,to);
54479} or {
54480 find mustInRelationsource_attribute_EAnnotation(problem,interpretation,source,target);
54481} 42394}
54482/** 42395pattern refineRelation_type_attribute_Function(
54483 * Matcher for detecting tuples t where []abstract attribute EClass(source,target)
54484 */
54485private pattern mustInRelationabstract_attribute_EClass(
54486 problem:LogicProblem, interpretation:PartialInterpretation, 42396 problem:LogicProblem, interpretation:PartialInterpretation,
54487 source: DefinedElement, target:DefinedElement) 42397 relationIterpretation:PartialRelationInterpretation,
42398 from: DefinedElement, to: DefinedElement)
54488{ 42399{
54489 find interpretation(problem,interpretation); 42400 find interpretation(problem,interpretation);
54490 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 42401 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
54491 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"abstract attribute EClass"); 42402 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function");
54492 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 42403 find mustExist(problem, interpretation, from);
54493 BinaryElementRelationLink.param1(link,source); 42404 find mustExist(problem, interpretation, to);
54494 BinaryElementRelationLink.param2(link,target); 42405 find mustInstanceOfFunction_class(problem,interpretation,from);
42406 find mustInstanceOfFunctionType_enum(problem,interpretation,to);
42407 find mayInRelationtype_attribute_Function(problem,interpretation,from,to);
42408 neg find mustInRelationtype_attribute_Function(problem,interpretation,from,to);
54495} 42409}
54496/** 42410import epackage "http://www.bme.hu/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage"
54497 * Matcher for detecting tuples t where <>abstract attribute EClass(source,target) 42411import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem"
54498 */ 42412import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/language"
54499private pattern mayInRelationabstract_attribute_EClass( 42413
54500 problem:LogicProblem, interpretation:PartialInterpretation, 42414//////////
54501 source: DefinedElement, target:DefinedElement) 42415// 0. Util
54502{ 42416//////////
42417private pattern interpretation(problem:LogicProblem, interpretation:PartialInterpretation) {
42418 PartialInterpretation.problem(interpretation,problem);
42419}
42420
42421/////////////////////////
42422// 0.1 Existence
42423/////////////////////////
42424private pattern mustExist(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
54503 find interpretation(problem,interpretation); 42425 find interpretation(problem,interpretation);
54504 // The two endpoint of the link have to exist 42426 LogicProblem.elements(problem,element);
54505 find mayExist(problem, interpretation, source);
54506 find mayExist(problem, interpretation, target);
54507 // Type consistency
54508 find mayInstanceOfEClass_class(problem,interpretation,source);
54509 BooleanElement(target);
54510 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
54511 // the upper bound of the multiplicity should be considered.
54512 numberOfExistingReferences == count find mustInRelationabstract_attribute_EClass(problem,interpretation,source,_);
54513 check(numberOfExistingReferences < 1);
54514} or { 42427} or {
54515 find mustInRelationabstract_attribute_EClass(problem,interpretation,source,target); 42428 find interpretation(problem,interpretation);
42429 PartialInterpretation.newElements(interpretation,element);
54516} 42430}
54517/** 42431
54518 * Matcher for detecting tuples t where []interface attribute EClass(source,target) 42432private pattern mayExist(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
54519 */ 42433 find mustExist(problem,interpretation,element);
54520private pattern mustInRelationinterface_attribute_EClass( 42434} or {
54521 problem:LogicProblem, interpretation:PartialInterpretation, 42435 find interpretation(problem,interpretation);
54522 source: DefinedElement, target:DefinedElement) 42436 neg find elementCloseWorld(element);
54523{ 42437 PartialInterpretation.openWorldElements(interpretation,element);
42438}
42439
42440private pattern elementCloseWorld(element:DefinedElement) {
42441 PartialInterpretation.openWorldElements(i,element);
42442 PartialInterpretation.maxNewElements(i,0);
42443} or {
42444 Scope.targetTypeInterpretation(scope,interpretation);
42445 PartialTypeInterpratation.elements(interpretation,element);
42446 Scope.maxNewElements(scope,0);
42447}
42448
42449////////////////////////
42450// 0.2 Equivalence
42451////////////////////////
42452pattern mayEquivalent(problem:LogicProblem, interpretation:PartialInterpretation, a: DefinedElement, b: DefinedElement) {
42453 find mayExist(problem,interpretation,a);
42454 find mayExist(problem,interpretation,b);
42455 a == b;
42456}
42457
42458////////////////////////
42459// 0.3 Required Patterns by TypeIndexer
42460////////////////////////
42461private pattern typeInterpretation(problem:LogicProblem, interpretation:PartialInterpretation, type:TypeDeclaration, typeInterpretation:PartialComplexTypeInterpretation) {
54524 find interpretation(problem,interpretation); 42462 find interpretation(problem,interpretation);
54525 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 42463 LogicProblem.types(problem,type);
54526 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"interface attribute EClass"); 42464 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
54527 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 42465 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
54528 BinaryElementRelationLink.param1(link,source);
54529 BinaryElementRelationLink.param2(link,target);
54530} 42466}
54531/** 42467
54532 * Matcher for detecting tuples t where <>interface attribute EClass(source,target) 42468private pattern directInstanceOf(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement, type:Type) {
54533 */
54534private pattern mayInRelationinterface_attribute_EClass(
54535 problem:LogicProblem, interpretation:PartialInterpretation,
54536 source: DefinedElement, target:DefinedElement)
54537{
54538 find interpretation(problem,interpretation); 42469 find interpretation(problem,interpretation);
54539 // The two endpoint of the link have to exist 42470 LogicProblem.types(problem,type);
54540 find mayExist(problem, interpretation, source); 42471 TypeDefinition.elements(type,element);
54541 find mayExist(problem, interpretation, target);
54542 // Type consistency
54543 find mayInstanceOfEClass_class(problem,interpretation,source);
54544 BooleanElement(target);
54545 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
54546 // the upper bound of the multiplicity should be considered.
54547 numberOfExistingReferences == count find mustInRelationinterface_attribute_EClass(problem,interpretation,source,_);
54548 check(numberOfExistingReferences < 1);
54549} or { 42472} or {
54550 find mustInRelationinterface_attribute_EClass(problem,interpretation,source,target); 42473 find interpretation(problem,interpretation);
42474 find typeInterpretation(problem,interpretation,type,typeInterpretation);
42475 PartialComplexTypeInterpretation.elements(typeInterpretation,element);
42476}
42477
42478private pattern isPrimitive(element: PrimitiveElement) {
42479 PrimitiveElement(element);
54551} 42480}
42481
42482//////////
42483// 1. Problem-Specific Base Indexers
42484//////////
42485// 1.1 Type Indexers
42486//////////
42487// 1.1.1 primitive Type Indexers
42488//////////
42489
42490//////////
42491// 1.1.2 domain-specific Type Indexers
42492//////////
54552/** 42493/**
54553 * Matcher for detecting tuples t where []instanceClassName attribute EClassifier(source,target) 42494 * An element must be an instance of type "FunctionalElement class".
54554 */ 42495 */
54555private pattern mustInRelationinstanceClassName_attribute_EClassifier( 42496private pattern mustInstanceOfFunctionalElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
54556 problem:LogicProblem, interpretation:PartialInterpretation, 42497 Type.name(type,"FunctionalElement class");
54557 source: DefinedElement, target:DefinedElement) 42498 find directInstanceOf(problem,interpretation,element,type);
54558{ 42499}
42500private pattern scopeDisallowsNewFunctionalElement_class(problem:LogicProblem, interpretation:PartialInterpretation) {
54559 find interpretation(problem,interpretation); 42501 find interpretation(problem,interpretation);
54560 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 42502 PartialInterpretation.scopes(interpretation,scope);
54561 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"instanceClassName attribute EClassifier"); 42503 Scope.targetTypeInterpretation(scope,typeInterpretation);
54562 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 42504 Scope.maxNewElements(scope,0);
54563 BinaryElementRelationLink.param1(link,source); 42505 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
54564 BinaryElementRelationLink.param2(link,target); 42506 Type.name(type,"FunctionalElement class");
54565} 42507}
42508
54566/** 42509/**
54567 * Matcher for detecting tuples t where <>instanceClassName attribute EClassifier(source,target) 42510 * An element may be an instance of type "FunctionalElement class".
54568 */ 42511 */
54569private pattern mayInRelationinstanceClassName_attribute_EClassifier( 42512private pattern mayInstanceOfFunctionalElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
54570 problem:LogicProblem, interpretation:PartialInterpretation,
54571 source: DefinedElement, target:DefinedElement)
54572{ 42513{
54573 find interpretation(problem,interpretation); 42514 find interpretation(problem,interpretation);
54574 // The two endpoint of the link have to exist 42515 PartialInterpretation.newElements(interpretation,element);
54575 find mayExist(problem, interpretation, source); 42516 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
54576 find mayExist(problem, interpretation, target); 42517 neg find mustInstanceOfFunction_class(problem,interpretation,element);
54577 // Type consistency 42518 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
54578 find mayInstanceOfEClassifier_class(problem,interpretation,source); 42519 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
54579 StringElement(target); 42520 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
54580 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 42521 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
54581 // the upper bound of the multiplicity should be considered. 42522 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
54582 numberOfExistingReferences == count find mustInRelationinstanceClassName_attribute_EClassifier(problem,interpretation,source,_); 42523 neg find isPrimitive(element);
54583 check(numberOfExistingReferences < 1);
54584} or { 42524} or {
54585 find mustInRelationinstanceClassName_attribute_EClassifier(problem,interpretation,source,target); 42525 find interpretation(problem,interpretation);
54586} 42526 PartialInterpretation.openWorldElements(interpretation,element);
42527 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
42528 neg find mustInstanceOfFunction_class(problem,interpretation,element);
42529 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
42530 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
42531 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
42532 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
42533 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
42534 neg find isPrimitive(element);
42535} or
42536{ find mustInstanceOfFunctionalElement_class(problem,interpretation,element); }
54587/** 42537/**
54588 * Matcher for detecting tuples t where []instanceTypeName attribute EClassifier(source,target) 42538 * An element must be an instance of type "FunctionalArchitectureModel class".
54589 */ 42539 */
54590private pattern mustInRelationinstanceTypeName_attribute_EClassifier( 42540private pattern mustInstanceOfFunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
54591 problem:LogicProblem, interpretation:PartialInterpretation, 42541 Type.name(type,"FunctionalArchitectureModel class");
54592 source: DefinedElement, target:DefinedElement) 42542 find directInstanceOf(problem,interpretation,element,type);
54593{ 42543}
42544private pattern scopeDisallowsNewFunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation) {
54594 find interpretation(problem,interpretation); 42545 find interpretation(problem,interpretation);
54595 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 42546 PartialInterpretation.scopes(interpretation,scope);
54596 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"instanceTypeName attribute EClassifier"); 42547 Scope.targetTypeInterpretation(scope,typeInterpretation);
54597 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 42548 Scope.maxNewElements(scope,0);
54598 BinaryElementRelationLink.param1(link,source); 42549 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
54599 BinaryElementRelationLink.param2(link,target); 42550 Type.name(type,"FunctionalArchitectureModel class");
54600} 42551}
42552
54601/** 42553/**
54602 * Matcher for detecting tuples t where <>instanceTypeName attribute EClassifier(source,target) 42554 * An element may be an instance of type "FunctionalArchitectureModel class".
54603 */ 42555 */
54604private pattern mayInRelationinstanceTypeName_attribute_EClassifier( 42556private pattern mayInstanceOfFunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
54605 problem:LogicProblem, interpretation:PartialInterpretation,
54606 source: DefinedElement, target:DefinedElement)
54607{ 42557{
54608 find interpretation(problem,interpretation); 42558 find interpretation(problem,interpretation);
54609 // The two endpoint of the link have to exist 42559 PartialInterpretation.newElements(interpretation,element);
54610 find mayExist(problem, interpretation, source); 42560 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
54611 find mayExist(problem, interpretation, target); 42561 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
54612 // Type consistency 42562 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
54613 find mayInstanceOfEClassifier_class(problem,interpretation,source); 42563 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
54614 StringElement(target); 42564 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
54615 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 42565 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
54616 // the upper bound of the multiplicity should be considered. 42566 neg find isPrimitive(element);
54617 numberOfExistingReferences == count find mustInRelationinstanceTypeName_attribute_EClassifier(problem,interpretation,source,_);
54618 check(numberOfExistingReferences < 1);
54619} or { 42567} or {
54620 find mustInRelationinstanceTypeName_attribute_EClassifier(problem,interpretation,source,target); 42568 find interpretation(problem,interpretation);
54621} 42569 PartialInterpretation.openWorldElements(interpretation,element);
42570 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
42571 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
42572 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
42573 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
42574 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
42575 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
42576 neg find isPrimitive(element);
42577} or
42578{ find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); }
54622/** 42579/**
54623 * Matcher for detecting tuples t where []serializable attribute EDataType(source,target) 42580 * An element must be an instance of type "Function class".
54624 */ 42581 */
54625private pattern mustInRelationserializable_attribute_EDataType( 42582private pattern mustInstanceOfFunction_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
54626 problem:LogicProblem, interpretation:PartialInterpretation, 42583 Type.name(type,"Function class");
54627 source: DefinedElement, target:DefinedElement) 42584 find directInstanceOf(problem,interpretation,element,type);
54628{ 42585}
42586private pattern scopeDisallowsNewFunction_class(problem:LogicProblem, interpretation:PartialInterpretation) {
54629 find interpretation(problem,interpretation); 42587 find interpretation(problem,interpretation);
54630 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 42588 PartialInterpretation.scopes(interpretation,scope);
54631 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"serializable attribute EDataType"); 42589 Scope.targetTypeInterpretation(scope,typeInterpretation);
54632 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 42590 Scope.maxNewElements(scope,0);
54633 BinaryElementRelationLink.param1(link,source); 42591 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
54634 BinaryElementRelationLink.param2(link,target); 42592 Type.name(type,"Function class");
54635} 42593}
42594
54636/** 42595/**
54637 * Matcher for detecting tuples t where <>serializable attribute EDataType(source,target) 42596 * An element may be an instance of type "Function class".
54638 */ 42597 */
54639private pattern mayInRelationserializable_attribute_EDataType( 42598private pattern mayInstanceOfFunction_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
54640 problem:LogicProblem, interpretation:PartialInterpretation,
54641 source: DefinedElement, target:DefinedElement)
54642{ 42599{
54643 find interpretation(problem,interpretation); 42600 find interpretation(problem,interpretation);
54644 // The two endpoint of the link have to exist 42601 PartialInterpretation.newElements(interpretation,element);
54645 find mayExist(problem, interpretation, source); 42602 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
54646 find mayExist(problem, interpretation, target); 42603 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
54647 // Type consistency 42604 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
54648 find mayInstanceOfEDataType_class(problem,interpretation,source); 42605 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
54649 BooleanElement(target); 42606 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
54650 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 42607 neg find scopeDisallowsNewFunction_class(problem, interpretation);
54651 // the upper bound of the multiplicity should be considered. 42608 neg find isPrimitive(element);
54652 numberOfExistingReferences == count find mustInRelationserializable_attribute_EDataType(problem,interpretation,source,_);
54653 check(numberOfExistingReferences < 1);
54654} or { 42609} or {
54655 find mustInRelationserializable_attribute_EDataType(problem,interpretation,source,target); 42610 find interpretation(problem,interpretation);
54656} 42611 PartialInterpretation.openWorldElements(interpretation,element);
42612 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
42613 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
42614 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
42615 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
42616 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
42617 neg find scopeDisallowsNewFunction_class(problem, interpretation);
42618 neg find isPrimitive(element);
42619} or
42620{ find mustInstanceOfFunction_class(problem,interpretation,element); }
54657/** 42621/**
54658 * Matcher for detecting tuples t where []value attribute EEnumLiteral(source,target) 42622 * An element must be an instance of type "FAMTerminator class".
54659 */ 42623 */
54660private pattern mustInRelationvalue_attribute_EEnumLiteral( 42624private pattern mustInstanceOfFAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
54661 problem:LogicProblem, interpretation:PartialInterpretation, 42625 Type.name(type,"FAMTerminator class");
54662 source: DefinedElement, target:DefinedElement) 42626 find directInstanceOf(problem,interpretation,element,type);
54663{ 42627}
42628private pattern scopeDisallowsNewFAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation) {
54664 find interpretation(problem,interpretation); 42629 find interpretation(problem,interpretation);
54665 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 42630 PartialInterpretation.scopes(interpretation,scope);
54666 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"value attribute EEnumLiteral"); 42631 Scope.targetTypeInterpretation(scope,typeInterpretation);
54667 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 42632 Scope.maxNewElements(scope,0);
54668 BinaryElementRelationLink.param1(link,source); 42633 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
54669 BinaryElementRelationLink.param2(link,target); 42634 Type.name(type,"FAMTerminator class");
54670} 42635}
42636
54671/** 42637/**
54672 * Matcher for detecting tuples t where <>value attribute EEnumLiteral(source,target) 42638 * An element may be an instance of type "FAMTerminator class".
54673 */ 42639 */
54674private pattern mayInRelationvalue_attribute_EEnumLiteral( 42640private pattern mayInstanceOfFAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
54675 problem:LogicProblem, interpretation:PartialInterpretation,
54676 source: DefinedElement, target:DefinedElement)
54677{ 42641{
54678 find interpretation(problem,interpretation); 42642 find interpretation(problem,interpretation);
54679 // The two endpoint of the link have to exist 42643 PartialInterpretation.newElements(interpretation,element);
54680 find mayExist(problem, interpretation, source); 42644 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
54681 find mayExist(problem, interpretation, target); 42645 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
54682 // Type consistency 42646 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
54683 find mayInstanceOfEEnumLiteral_class(problem,interpretation,source); 42647 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
54684 IntegerElement(target); 42648 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
54685 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 42649 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
54686 // the upper bound of the multiplicity should be considered. 42650 neg find isPrimitive(element);
54687 numberOfExistingReferences == count find mustInRelationvalue_attribute_EEnumLiteral(problem,interpretation,source,_);
54688 check(numberOfExistingReferences < 1);
54689} or { 42651} or {
54690 find mustInRelationvalue_attribute_EEnumLiteral(problem,interpretation,source,target); 42652 find interpretation(problem,interpretation);
54691} 42653 PartialInterpretation.openWorldElements(interpretation,element);
42654 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
42655 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
42656 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
42657 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
42658 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
42659 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
42660 neg find isPrimitive(element);
42661} or
42662{ find mustInstanceOfFAMTerminator_class(problem,interpretation,element); }
54692/** 42663/**
54693 * Matcher for detecting tuples t where []literal attribute EEnumLiteral(source,target) 42664 * An element must be an instance of type "InformationLink class".
54694 */ 42665 */
54695private pattern mustInRelationliteral_attribute_EEnumLiteral( 42666private pattern mustInstanceOfInformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
54696 problem:LogicProblem, interpretation:PartialInterpretation, 42667 Type.name(type,"InformationLink class");
54697 source: DefinedElement, target:DefinedElement) 42668 find directInstanceOf(problem,interpretation,element,type);
54698{ 42669}
42670private pattern scopeDisallowsNewInformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation) {
54699 find interpretation(problem,interpretation); 42671 find interpretation(problem,interpretation);
54700 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 42672 PartialInterpretation.scopes(interpretation,scope);
54701 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"literal attribute EEnumLiteral"); 42673 Scope.targetTypeInterpretation(scope,typeInterpretation);
54702 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 42674 Scope.maxNewElements(scope,0);
54703 BinaryElementRelationLink.param1(link,source); 42675 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
54704 BinaryElementRelationLink.param2(link,target); 42676 Type.name(type,"InformationLink class");
54705} 42677}
42678
54706/** 42679/**
54707 * Matcher for detecting tuples t where <>literal attribute EEnumLiteral(source,target) 42680 * An element may be an instance of type "InformationLink class".
54708 */ 42681 */
54709private pattern mayInRelationliteral_attribute_EEnumLiteral( 42682private pattern mayInstanceOfInformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
54710 problem:LogicProblem, interpretation:PartialInterpretation,
54711 source: DefinedElement, target:DefinedElement)
54712{ 42683{
54713 find interpretation(problem,interpretation); 42684 find interpretation(problem,interpretation);
54714 // The two endpoint of the link have to exist 42685 PartialInterpretation.newElements(interpretation,element);
54715 find mayExist(problem, interpretation, source); 42686 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
54716 find mayExist(problem, interpretation, target); 42687 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
54717 // Type consistency 42688 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
54718 find mayInstanceOfEEnumLiteral_class(problem,interpretation,source); 42689 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
54719 StringElement(target); 42690 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
54720 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 42691 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
54721 // the upper bound of the multiplicity should be considered. 42692 neg find isPrimitive(element);
54722 numberOfExistingReferences == count find mustInRelationliteral_attribute_EEnumLiteral(problem,interpretation,source,_);
54723 check(numberOfExistingReferences < 1);
54724} or { 42693} or {
54725 find mustInRelationliteral_attribute_EEnumLiteral(problem,interpretation,source,target); 42694 find interpretation(problem,interpretation);
54726} 42695 PartialInterpretation.openWorldElements(interpretation,element);
42696 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
42697 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
42698 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
42699 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
42700 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
42701 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
42702 neg find isPrimitive(element);
42703} or
42704{ find mustInstanceOfInformationLink_class(problem,interpretation,element); }
54727/** 42705/**
54728 * Matcher for detecting tuples t where []name attribute ENamedElement(source,target) 42706 * An element must be an instance of type "FunctionalInterface class".
54729 */ 42707 */
54730private pattern mustInRelationname_attribute_ENamedElement( 42708private pattern mustInstanceOfFunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
54731 problem:LogicProblem, interpretation:PartialInterpretation, 42709 Type.name(type,"FunctionalInterface class");
54732 source: DefinedElement, target:DefinedElement) 42710 find directInstanceOf(problem,interpretation,element,type);
54733{ 42711}
42712private pattern scopeDisallowsNewFunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation) {
54734 find interpretation(problem,interpretation); 42713 find interpretation(problem,interpretation);
54735 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 42714 PartialInterpretation.scopes(interpretation,scope);
54736 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"name attribute ENamedElement"); 42715 Scope.targetTypeInterpretation(scope,typeInterpretation);
54737 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 42716 Scope.maxNewElements(scope,0);
54738 BinaryElementRelationLink.param1(link,source); 42717 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
54739 BinaryElementRelationLink.param2(link,target); 42718 Type.name(type,"FunctionalInterface class");
54740} 42719}
42720
54741/** 42721/**
54742 * Matcher for detecting tuples t where <>name attribute ENamedElement(source,target) 42722 * An element may be an instance of type "FunctionalInterface class".
54743 */ 42723 */
54744private pattern mayInRelationname_attribute_ENamedElement( 42724private pattern mayInstanceOfFunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
54745 problem:LogicProblem, interpretation:PartialInterpretation,
54746 source: DefinedElement, target:DefinedElement)
54747{ 42725{
54748 find interpretation(problem,interpretation); 42726 find interpretation(problem,interpretation);
54749 // The two endpoint of the link have to exist 42727 PartialInterpretation.newElements(interpretation,element);
54750 find mayExist(problem, interpretation, source); 42728 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
54751 find mayExist(problem, interpretation, target); 42729 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
54752 // Type consistency 42730 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
54753 find mayInstanceOfENamedElement_class(problem,interpretation,source); 42731 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
54754 StringElement(target); 42732 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
54755 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 42733 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
54756 // the upper bound of the multiplicity should be considered. 42734 neg find isPrimitive(element);
54757 numberOfExistingReferences == count find mustInRelationname_attribute_ENamedElement(problem,interpretation,source,_);
54758 check(numberOfExistingReferences < 1);
54759} or { 42735} or {
54760 find mustInRelationname_attribute_ENamedElement(problem,interpretation,source,target); 42736 find interpretation(problem,interpretation);
54761} 42737 PartialInterpretation.openWorldElements(interpretation,element);
42738 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
42739 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
42740 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
42741 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
42742 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
42743 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
42744 neg find isPrimitive(element);
42745} or
42746{ find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); }
54762/** 42747/**
54763 * Matcher for detecting tuples t where []nsURI attribute EPackage(source,target) 42748 * An element must be an instance of type "FunctionalInput class".
54764 */ 42749 */
54765private pattern mustInRelationnsURI_attribute_EPackage( 42750private pattern mustInstanceOfFunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
54766 problem:LogicProblem, interpretation:PartialInterpretation, 42751 Type.name(type,"FunctionalInput class");
54767 source: DefinedElement, target:DefinedElement) 42752 find directInstanceOf(problem,interpretation,element,type);
54768{ 42753}
42754private pattern scopeDisallowsNewFunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation) {
54769 find interpretation(problem,interpretation); 42755 find interpretation(problem,interpretation);
54770 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 42756 PartialInterpretation.scopes(interpretation,scope);
54771 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"nsURI attribute EPackage"); 42757 Scope.targetTypeInterpretation(scope,typeInterpretation);
54772 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 42758 Scope.maxNewElements(scope,0);
54773 BinaryElementRelationLink.param1(link,source); 42759 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
54774 BinaryElementRelationLink.param2(link,target); 42760 Type.name(type,"FunctionalInput class");
54775} 42761}
42762
54776/** 42763/**
54777 * Matcher for detecting tuples t where <>nsURI attribute EPackage(source,target) 42764 * An element may be an instance of type "FunctionalInput class".
54778 */ 42765 */
54779private pattern mayInRelationnsURI_attribute_EPackage( 42766private pattern mayInstanceOfFunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
54780 problem:LogicProblem, interpretation:PartialInterpretation,
54781 source: DefinedElement, target:DefinedElement)
54782{ 42767{
54783 find interpretation(problem,interpretation); 42768 find interpretation(problem,interpretation);
54784 // The two endpoint of the link have to exist 42769 PartialInterpretation.newElements(interpretation,element);
54785 find mayExist(problem, interpretation, source); 42770 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
54786 find mayExist(problem, interpretation, target); 42771 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
54787 // Type consistency 42772 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
54788 find mayInstanceOfEPackage_class(problem,interpretation,source); 42773 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
54789 StringElement(target); 42774 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
54790 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 42775 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
54791 // the upper bound of the multiplicity should be considered. 42776 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
54792 numberOfExistingReferences == count find mustInRelationnsURI_attribute_EPackage(problem,interpretation,source,_); 42777 neg find isPrimitive(element);
54793 check(numberOfExistingReferences < 1);
54794} or { 42778} or {
54795 find mustInRelationnsURI_attribute_EPackage(problem,interpretation,source,target); 42779 find interpretation(problem,interpretation);
54796} 42780 PartialInterpretation.openWorldElements(interpretation,element);
42781 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
42782 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
42783 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
42784 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
42785 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
42786 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
42787 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
42788 neg find isPrimitive(element);
42789} or
42790{ find mustInstanceOfFunctionalInput_class(problem,interpretation,element); }
54797/** 42791/**
54798 * Matcher for detecting tuples t where []nsPrefix attribute EPackage(source,target) 42792 * An element must be an instance of type "FunctionalOutput class".
54799 */ 42793 */
54800private pattern mustInRelationnsPrefix_attribute_EPackage( 42794private pattern mustInstanceOfFunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
54801 problem:LogicProblem, interpretation:PartialInterpretation, 42795 Type.name(type,"FunctionalOutput class");
54802 source: DefinedElement, target:DefinedElement) 42796 find directInstanceOf(problem,interpretation,element,type);
54803{ 42797}
42798private pattern scopeDisallowsNewFunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation) {
54804 find interpretation(problem,interpretation); 42799 find interpretation(problem,interpretation);
54805 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 42800 PartialInterpretation.scopes(interpretation,scope);
54806 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"nsPrefix attribute EPackage"); 42801 Scope.targetTypeInterpretation(scope,typeInterpretation);
54807 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 42802 Scope.maxNewElements(scope,0);
54808 BinaryElementRelationLink.param1(link,source); 42803 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
54809 BinaryElementRelationLink.param2(link,target); 42804 Type.name(type,"FunctionalOutput class");
54810} 42805}
42806
54811/** 42807/**
54812 * Matcher for detecting tuples t where <>nsPrefix attribute EPackage(source,target) 42808 * An element may be an instance of type "FunctionalOutput class".
54813 */ 42809 */
54814private pattern mayInRelationnsPrefix_attribute_EPackage( 42810private pattern mayInstanceOfFunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
54815 problem:LogicProblem, interpretation:PartialInterpretation,
54816 source: DefinedElement, target:DefinedElement)
54817{ 42811{
54818 find interpretation(problem,interpretation); 42812 find interpretation(problem,interpretation);
54819 // The two endpoint of the link have to exist 42813 PartialInterpretation.newElements(interpretation,element);
54820 find mayExist(problem, interpretation, source); 42814 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
54821 find mayExist(problem, interpretation, target); 42815 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
54822 // Type consistency 42816 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
54823 find mayInstanceOfEPackage_class(problem,interpretation,source); 42817 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
54824 StringElement(target); 42818 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
54825 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 42819 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
54826 // the upper bound of the multiplicity should be considered. 42820 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
54827 numberOfExistingReferences == count find mustInRelationnsPrefix_attribute_EPackage(problem,interpretation,source,_); 42821 neg find isPrimitive(element);
54828 check(numberOfExistingReferences < 1);
54829} or { 42822} or {
54830 find mustInRelationnsPrefix_attribute_EPackage(problem,interpretation,source,target); 42823 find interpretation(problem,interpretation);
54831} 42824 PartialInterpretation.openWorldElements(interpretation,element);
42825 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
42826 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
42827 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
42828 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
42829 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
42830 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
42831 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
42832 neg find isPrimitive(element);
42833} or
42834{ find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); }
54832/** 42835/**
54833 * Matcher for detecting tuples t where []containment attribute EReference(source,target) 42836 * An element must be an instance of type "FunctionalData class".
54834 */ 42837 */
54835private pattern mustInRelationcontainment_attribute_EReference( 42838private pattern mustInstanceOfFunctionalData_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
54836 problem:LogicProblem, interpretation:PartialInterpretation, 42839 Type.name(type,"FunctionalData class");
54837 source: DefinedElement, target:DefinedElement) 42840 find directInstanceOf(problem,interpretation,element,type);
54838{ 42841}
42842private pattern scopeDisallowsNewFunctionalData_class(problem:LogicProblem, interpretation:PartialInterpretation) {
54839 find interpretation(problem,interpretation); 42843 find interpretation(problem,interpretation);
54840 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 42844 PartialInterpretation.scopes(interpretation,scope);
54841 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"containment attribute EReference"); 42845 Scope.targetTypeInterpretation(scope,typeInterpretation);
54842 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 42846 Scope.maxNewElements(scope,0);
54843 BinaryElementRelationLink.param1(link,source); 42847 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
54844 BinaryElementRelationLink.param2(link,target); 42848 Type.name(type,"FunctionalData class");
54845} 42849}
42850
54846/** 42851/**
54847 * Matcher for detecting tuples t where <>containment attribute EReference(source,target) 42852 * An element may be an instance of type "FunctionalData class".
54848 */ 42853 */
54849private pattern mayInRelationcontainment_attribute_EReference( 42854private pattern mayInstanceOfFunctionalData_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
54850 problem:LogicProblem, interpretation:PartialInterpretation,
54851 source: DefinedElement, target:DefinedElement)
54852{ 42855{
54853 find interpretation(problem,interpretation); 42856 find interpretation(problem,interpretation);
54854 // The two endpoint of the link have to exist 42857 PartialInterpretation.newElements(interpretation,element);
54855 find mayExist(problem, interpretation, source); 42858 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
54856 find mayExist(problem, interpretation, target); 42859 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
54857 // Type consistency 42860 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
54858 find mayInstanceOfEReference_class(problem,interpretation,source); 42861 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
54859 BooleanElement(target); 42862 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
54860 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 42863 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
54861 // the upper bound of the multiplicity should be considered. 42864 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
54862 numberOfExistingReferences == count find mustInRelationcontainment_attribute_EReference(problem,interpretation,source,_); 42865 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
54863 check(numberOfExistingReferences < 1); 42866 neg find isPrimitive(element);
54864} or { 42867} or {
54865 find mustInRelationcontainment_attribute_EReference(problem,interpretation,source,target); 42868 find interpretation(problem,interpretation);
54866} 42869 PartialInterpretation.openWorldElements(interpretation,element);
42870 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
42871 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
42872 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
42873 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
42874 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
42875 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
42876 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
42877 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
42878 neg find isPrimitive(element);
42879} or
42880{ find mustInstanceOfFunctionalData_class(problem,interpretation,element); }
54867/** 42881/**
54868 * Matcher for detecting tuples t where []container attribute EReference(source,target) 42882 * An element must be an instance of type "FunctionType enum".
54869 */ 42883 */
54870private pattern mustInRelationcontainer_attribute_EReference( 42884private pattern mustInstanceOfFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
54871 problem:LogicProblem, interpretation:PartialInterpretation, 42885 Type.name(type,"FunctionType enum");
54872 source: DefinedElement, target:DefinedElement) 42886 find directInstanceOf(problem,interpretation,element,type);
54873{ 42887}
42888private pattern scopeDisallowsNewFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation) {
54874 find interpretation(problem,interpretation); 42889 find interpretation(problem,interpretation);
54875 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 42890 PartialInterpretation.scopes(interpretation,scope);
54876 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"container attribute EReference"); 42891 Scope.targetTypeInterpretation(scope,typeInterpretation);
54877 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 42892 Scope.maxNewElements(scope,0);
54878 BinaryElementRelationLink.param1(link,source); 42893 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
54879 BinaryElementRelationLink.param2(link,target); 42894 Type.name(type,"FunctionType enum");
54880} 42895}
42896
54881/** 42897/**
54882 * Matcher for detecting tuples t where <>container attribute EReference(source,target) 42898 * An element may be an instance of type "FunctionType enum".
54883 */ 42899 */
54884private pattern mayInRelationcontainer_attribute_EReference( 42900private pattern mayInstanceOfFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
54885 problem:LogicProblem, interpretation:PartialInterpretation, 42901{ find mustInstanceOfFunctionType_enum(problem,interpretation,element); }
54886 source: DefinedElement, target:DefinedElement) 42902
54887{ 42903//////////
54888 find interpretation(problem,interpretation); 42904// 1.2 Relation Declaration Indexers
54889 // The two endpoint of the link have to exist 42905//////////
54890 find mayExist(problem, interpretation, source);
54891 find mayExist(problem, interpretation, target);
54892 // Type consistency
54893 find mayInstanceOfEReference_class(problem,interpretation,source);
54894 BooleanElement(target);
54895 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
54896 // the upper bound of the multiplicity should be considered.
54897 numberOfExistingReferences == count find mustInRelationcontainer_attribute_EReference(problem,interpretation,source,_);
54898 check(numberOfExistingReferences < 1);
54899} or {
54900 find mustInRelationcontainer_attribute_EReference(problem,interpretation,source,target);
54901}
54902/** 42906/**
54903 * Matcher for detecting tuples t where []resolveProxies attribute EReference(source,target) 42907 * Matcher for detecting tuples t where []interface reference FunctionalElement(source,target)
54904 */ 42908 */
54905private pattern mustInRelationresolveProxies_attribute_EReference( 42909private pattern mustInRelationinterface_reference_FunctionalElement(
54906 problem:LogicProblem, interpretation:PartialInterpretation, 42910 problem:LogicProblem, interpretation:PartialInterpretation,
54907 source: DefinedElement, target:DefinedElement) 42911 source: DefinedElement, target:DefinedElement)
54908{ 42912{
54909 find interpretation(problem,interpretation); 42913 find interpretation(problem,interpretation);
54910 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 42914 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
54911 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"resolveProxies attribute EReference"); 42915 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"interface reference FunctionalElement");
54912 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 42916 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
54913 BinaryElementRelationLink.param1(link,source); 42917 BinaryElementRelationLink.param1(link,source);
54914 BinaryElementRelationLink.param2(link,target); 42918 BinaryElementRelationLink.param2(link,target);
54915} 42919}
54916/** 42920/**
54917 * Matcher for detecting tuples t where <>resolveProxies attribute EReference(source,target) 42921 * Matcher for detecting tuples t where <>interface reference FunctionalElement(source,target)
54918 */ 42922 */
54919private pattern mayInRelationresolveProxies_attribute_EReference( 42923private pattern mayInRelationinterface_reference_FunctionalElement(
54920 problem:LogicProblem, interpretation:PartialInterpretation, 42924 problem:LogicProblem, interpretation:PartialInterpretation,
54921 source: DefinedElement, target:DefinedElement) 42925 source: DefinedElement, target:DefinedElement)
54922{ 42926{
@@ -54925,33 +42929,42 @@ private pattern mayInRelationresolveProxies_attribute_EReference(
54925 find mayExist(problem, interpretation, source); 42929 find mayExist(problem, interpretation, source);
54926 find mayExist(problem, interpretation, target); 42930 find mayExist(problem, interpretation, target);
54927 // Type consistency 42931 // Type consistency
54928 find mayInstanceOfEReference_class(problem,interpretation,source); 42932 find mayInstanceOfFunctionalElement_class(problem,interpretation,source);
54929 BooleanElement(target); 42933 find mayInstanceOfFunctionalInterface_class(problem,interpretation,target);
54930 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 42934 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
54931 // the upper bound of the multiplicity should be considered. 42935 // the upper bound of the multiplicity should be considered.
54932 numberOfExistingReferences == count find mustInRelationresolveProxies_attribute_EReference(problem,interpretation,source,_); 42936 numberOfExistingReferences == count find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,source,_);
54933 check(numberOfExistingReferences < 1); 42937 check(numberOfExistingReferences < 1);
42938 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
42939 // the upper bound of the opposite reference multiplicity should be considered.
42940 numberOfExistingOppositeReferences == count find mustInRelationelement_reference_FunctionalInterface(problem,interpretation,target,_);
42941 check(numberOfExistingOppositeReferences < 1);
42942 // The reference is containment, then a new reference cannot be create if:
42943 // 1. Multiple parents
42944 neg find mustContains4(problem,interpretation,_,target);
42945 // 2. Circle in the containment hierarchy
42946 neg find mustTransitiveContains(source,target);
54934} or { 42947} or {
54935 find mustInRelationresolveProxies_attribute_EReference(problem,interpretation,source,target); 42948 find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,source,target);
54936} 42949}
54937/** 42950/**
54938 * Matcher for detecting tuples t where []changeable attribute EStructuralFeature(source,target) 42951 * Matcher for detecting tuples t where []model reference FunctionalElement(source,target)
54939 */ 42952 */
54940private pattern mustInRelationchangeable_attribute_EStructuralFeature( 42953private pattern mustInRelationmodel_reference_FunctionalElement(
54941 problem:LogicProblem, interpretation:PartialInterpretation, 42954 problem:LogicProblem, interpretation:PartialInterpretation,
54942 source: DefinedElement, target:DefinedElement) 42955 source: DefinedElement, target:DefinedElement)
54943{ 42956{
54944 find interpretation(problem,interpretation); 42957 find interpretation(problem,interpretation);
54945 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 42958 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
54946 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"changeable attribute EStructuralFeature"); 42959 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement");
54947 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 42960 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
54948 BinaryElementRelationLink.param1(link,source); 42961 BinaryElementRelationLink.param1(link,source);
54949 BinaryElementRelationLink.param2(link,target); 42962 BinaryElementRelationLink.param2(link,target);
54950} 42963}
54951/** 42964/**
54952 * Matcher for detecting tuples t where <>changeable attribute EStructuralFeature(source,target) 42965 * Matcher for detecting tuples t where <>model reference FunctionalElement(source,target)
54953 */ 42966 */
54954private pattern mayInRelationchangeable_attribute_EStructuralFeature( 42967private pattern mayInRelationmodel_reference_FunctionalElement(
54955 problem:LogicProblem, interpretation:PartialInterpretation, 42968 problem:LogicProblem, interpretation:PartialInterpretation,
54956 source: DefinedElement, target:DefinedElement) 42969 source: DefinedElement, target:DefinedElement)
54957{ 42970{
@@ -54960,33 +42973,33 @@ private pattern mayInRelationchangeable_attribute_EStructuralFeature(
54960 find mayExist(problem, interpretation, source); 42973 find mayExist(problem, interpretation, source);
54961 find mayExist(problem, interpretation, target); 42974 find mayExist(problem, interpretation, target);
54962 // Type consistency 42975 // Type consistency
54963 find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); 42976 find mayInstanceOfFunctionalElement_class(problem,interpretation,source);
54964 BooleanElement(target); 42977 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,target);
54965 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 42978 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
54966 // the upper bound of the multiplicity should be considered. 42979 // the upper bound of the multiplicity should be considered.
54967 numberOfExistingReferences == count find mustInRelationchangeable_attribute_EStructuralFeature(problem,interpretation,source,_); 42980 numberOfExistingReferences == count find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,source,_);
54968 check(numberOfExistingReferences < 1); 42981 check(numberOfExistingReferences < 1);
54969} or { 42982} or {
54970 find mustInRelationchangeable_attribute_EStructuralFeature(problem,interpretation,source,target); 42983 find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,source,target);
54971} 42984}
54972/** 42985/**
54973 * Matcher for detecting tuples t where []volatile attribute EStructuralFeature(source,target) 42986 * Matcher for detecting tuples t where []parent reference FunctionalElement(source,target)
54974 */ 42987 */
54975private pattern mustInRelationvolatile_attribute_EStructuralFeature( 42988private pattern mustInRelationparent_reference_FunctionalElement(
54976 problem:LogicProblem, interpretation:PartialInterpretation, 42989 problem:LogicProblem, interpretation:PartialInterpretation,
54977 source: DefinedElement, target:DefinedElement) 42990 source: DefinedElement, target:DefinedElement)
54978{ 42991{
54979 find interpretation(problem,interpretation); 42992 find interpretation(problem,interpretation);
54980 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 42993 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
54981 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"volatile attribute EStructuralFeature"); 42994 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"parent reference FunctionalElement");
54982 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 42995 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
54983 BinaryElementRelationLink.param1(link,source); 42996 BinaryElementRelationLink.param1(link,source);
54984 BinaryElementRelationLink.param2(link,target); 42997 BinaryElementRelationLink.param2(link,target);
54985} 42998}
54986/** 42999/**
54987 * Matcher for detecting tuples t where <>volatile attribute EStructuralFeature(source,target) 43000 * Matcher for detecting tuples t where <>parent reference FunctionalElement(source,target)
54988 */ 43001 */
54989private pattern mayInRelationvolatile_attribute_EStructuralFeature( 43002private pattern mayInRelationparent_reference_FunctionalElement(
54990 problem:LogicProblem, interpretation:PartialInterpretation, 43003 problem:LogicProblem, interpretation:PartialInterpretation,
54991 source: DefinedElement, target:DefinedElement) 43004 source: DefinedElement, target:DefinedElement)
54992{ 43005{
@@ -54995,33 +43008,38 @@ private pattern mayInRelationvolatile_attribute_EStructuralFeature(
54995 find mayExist(problem, interpretation, source); 43008 find mayExist(problem, interpretation, source);
54996 find mayExist(problem, interpretation, target); 43009 find mayExist(problem, interpretation, target);
54997 // Type consistency 43010 // Type consistency
54998 find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); 43011 find mayInstanceOfFunctionalElement_class(problem,interpretation,source);
54999 BooleanElement(target); 43012 find mayInstanceOfFunction_class(problem,interpretation,target);
55000 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 43013 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
55001 // the upper bound of the multiplicity should be considered. 43014 // the upper bound of the multiplicity should be considered.
55002 numberOfExistingReferences == count find mustInRelationvolatile_attribute_EStructuralFeature(problem,interpretation,source,_); 43015 numberOfExistingReferences == count find mustInRelationparent_reference_FunctionalElement(problem,interpretation,source,_);
55003 check(numberOfExistingReferences < 1); 43016 check(numberOfExistingReferences < 1);
43017 // The eOpposite of the reference is containment, then a referene cannot be created if
43018 // 1. Multiple parents
43019 neg find mustContains4(problem,interpretation,source,_);
43020 // 2. Circle in the containment hierarchy
43021 neg find mustTransitiveContains(source,target);
55004} or { 43022} or {
55005 find mustInRelationvolatile_attribute_EStructuralFeature(problem,interpretation,source,target); 43023 find mustInRelationparent_reference_FunctionalElement(problem,interpretation,source,target);
55006} 43024}
55007/** 43025/**
55008 * Matcher for detecting tuples t where []transient attribute EStructuralFeature(source,target) 43026 * Matcher for detecting tuples t where []rootElements reference FunctionalArchitectureModel(source,target)
55009 */ 43027 */
55010private pattern mustInRelationtransient_attribute_EStructuralFeature( 43028private pattern mustInRelationrootElements_reference_FunctionalArchitectureModel(
55011 problem:LogicProblem, interpretation:PartialInterpretation, 43029 problem:LogicProblem, interpretation:PartialInterpretation,
55012 source: DefinedElement, target:DefinedElement) 43030 source: DefinedElement, target:DefinedElement)
55013{ 43031{
55014 find interpretation(problem,interpretation); 43032 find interpretation(problem,interpretation);
55015 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 43033 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
55016 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"transient attribute EStructuralFeature"); 43034 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"rootElements reference FunctionalArchitectureModel");
55017 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 43035 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
55018 BinaryElementRelationLink.param1(link,source); 43036 BinaryElementRelationLink.param1(link,source);
55019 BinaryElementRelationLink.param2(link,target); 43037 BinaryElementRelationLink.param2(link,target);
55020} 43038}
55021/** 43039/**
55022 * Matcher for detecting tuples t where <>transient attribute EStructuralFeature(source,target) 43040 * Matcher for detecting tuples t where <>rootElements reference FunctionalArchitectureModel(source,target)
55023 */ 43041 */
55024private pattern mayInRelationtransient_attribute_EStructuralFeature( 43042private pattern mayInRelationrootElements_reference_FunctionalArchitectureModel(
55025 problem:LogicProblem, interpretation:PartialInterpretation, 43043 problem:LogicProblem, interpretation:PartialInterpretation,
55026 source: DefinedElement, target:DefinedElement) 43044 source: DefinedElement, target:DefinedElement)
55027{ 43045{
@@ -55030,33 +43048,34 @@ private pattern mayInRelationtransient_attribute_EStructuralFeature(
55030 find mayExist(problem, interpretation, source); 43048 find mayExist(problem, interpretation, source);
55031 find mayExist(problem, interpretation, target); 43049 find mayExist(problem, interpretation, target);
55032 // Type consistency 43050 // Type consistency
55033 find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); 43051 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,source);
55034 BooleanElement(target); 43052 find mayInstanceOfFunctionalElement_class(problem,interpretation,target);
55035 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 43053 // The reference is containment, then a new reference cannot be create if:
55036 // the upper bound of the multiplicity should be considered. 43054 // 1. Multiple parents
55037 numberOfExistingReferences == count find mustInRelationtransient_attribute_EStructuralFeature(problem,interpretation,source,_); 43055 neg find mustContains4(problem,interpretation,_,target);
55038 check(numberOfExistingReferences < 1); 43056 // 2. Circle in the containment hierarchy
43057 neg find mustTransitiveContains(source,target);
55039} or { 43058} or {
55040 find mustInRelationtransient_attribute_EStructuralFeature(problem,interpretation,source,target); 43059 find mustInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,source,target);
55041} 43060}
55042/** 43061/**
55043 * Matcher for detecting tuples t where []defaultValueLiteral attribute EStructuralFeature(source,target) 43062 * Matcher for detecting tuples t where []subElements reference Function(source,target)
55044 */ 43063 */
55045private pattern mustInRelationdefaultValueLiteral_attribute_EStructuralFeature( 43064private pattern mustInRelationsubElements_reference_Function(
55046 problem:LogicProblem, interpretation:PartialInterpretation, 43065 problem:LogicProblem, interpretation:PartialInterpretation,
55047 source: DefinedElement, target:DefinedElement) 43066 source: DefinedElement, target:DefinedElement)
55048{ 43067{
55049 find interpretation(problem,interpretation); 43068 find interpretation(problem,interpretation);
55050 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 43069 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
55051 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"defaultValueLiteral attribute EStructuralFeature"); 43070 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"subElements reference Function");
55052 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 43071 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
55053 BinaryElementRelationLink.param1(link,source); 43072 BinaryElementRelationLink.param1(link,source);
55054 BinaryElementRelationLink.param2(link,target); 43073 BinaryElementRelationLink.param2(link,target);
55055} 43074}
55056/** 43075/**
55057 * Matcher for detecting tuples t where <>defaultValueLiteral attribute EStructuralFeature(source,target) 43076 * Matcher for detecting tuples t where <>subElements reference Function(source,target)
55058 */ 43077 */
55059private pattern mayInRelationdefaultValueLiteral_attribute_EStructuralFeature( 43078private pattern mayInRelationsubElements_reference_Function(
55060 problem:LogicProblem, interpretation:PartialInterpretation, 43079 problem:LogicProblem, interpretation:PartialInterpretation,
55061 source: DefinedElement, target:DefinedElement) 43080 source: DefinedElement, target:DefinedElement)
55062{ 43081{
@@ -55065,33 +43084,38 @@ private pattern mayInRelationdefaultValueLiteral_attribute_EStructuralFeature(
55065 find mayExist(problem, interpretation, source); 43084 find mayExist(problem, interpretation, source);
55066 find mayExist(problem, interpretation, target); 43085 find mayExist(problem, interpretation, target);
55067 // Type consistency 43086 // Type consistency
55068 find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); 43087 find mayInstanceOfFunction_class(problem,interpretation,source);
55069 StringElement(target); 43088 find mayInstanceOfFunctionalElement_class(problem,interpretation,target);
55070 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 43089 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
55071 // the upper bound of the multiplicity should be considered. 43090 // the upper bound of the opposite reference multiplicity should be considered.
55072 numberOfExistingReferences == count find mustInRelationdefaultValueLiteral_attribute_EStructuralFeature(problem,interpretation,source,_); 43091 numberOfExistingOppositeReferences == count find mustInRelationparent_reference_FunctionalElement(problem,interpretation,target,_);
55073 check(numberOfExistingReferences < 1); 43092 check(numberOfExistingOppositeReferences < 1);
43093 // The reference is containment, then a new reference cannot be create if:
43094 // 1. Multiple parents
43095 neg find mustContains4(problem,interpretation,_,target);
43096 // 2. Circle in the containment hierarchy
43097 neg find mustTransitiveContains(source,target);
55074} or { 43098} or {
55075 find mustInRelationdefaultValueLiteral_attribute_EStructuralFeature(problem,interpretation,source,target); 43099 find mustInRelationsubElements_reference_Function(problem,interpretation,source,target);
55076} 43100}
55077/** 43101/**
55078 * Matcher for detecting tuples t where []unsettable attribute EStructuralFeature(source,target) 43102 * Matcher for detecting tuples t where []data reference FAMTerminator(source,target)
55079 */ 43103 */
55080private pattern mustInRelationunsettable_attribute_EStructuralFeature( 43104private pattern mustInRelationdata_reference_FAMTerminator(
55081 problem:LogicProblem, interpretation:PartialInterpretation, 43105 problem:LogicProblem, interpretation:PartialInterpretation,
55082 source: DefinedElement, target:DefinedElement) 43106 source: DefinedElement, target:DefinedElement)
55083{ 43107{
55084 find interpretation(problem,interpretation); 43108 find interpretation(problem,interpretation);
55085 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 43109 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
55086 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"unsettable attribute EStructuralFeature"); 43110 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"data reference FAMTerminator");
55087 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 43111 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
55088 BinaryElementRelationLink.param1(link,source); 43112 BinaryElementRelationLink.param1(link,source);
55089 BinaryElementRelationLink.param2(link,target); 43113 BinaryElementRelationLink.param2(link,target);
55090} 43114}
55091/** 43115/**
55092 * Matcher for detecting tuples t where <>unsettable attribute EStructuralFeature(source,target) 43116 * Matcher for detecting tuples t where <>data reference FAMTerminator(source,target)
55093 */ 43117 */
55094private pattern mayInRelationunsettable_attribute_EStructuralFeature( 43118private pattern mayInRelationdata_reference_FAMTerminator(
55095 problem:LogicProblem, interpretation:PartialInterpretation, 43119 problem:LogicProblem, interpretation:PartialInterpretation,
55096 source: DefinedElement, target:DefinedElement) 43120 source: DefinedElement, target:DefinedElement)
55097{ 43121{
@@ -55100,33 +43124,42 @@ private pattern mayInRelationunsettable_attribute_EStructuralFeature(
55100 find mayExist(problem, interpretation, source); 43124 find mayExist(problem, interpretation, source);
55101 find mayExist(problem, interpretation, target); 43125 find mayExist(problem, interpretation, target);
55102 // Type consistency 43126 // Type consistency
55103 find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); 43127 find mayInstanceOfFAMTerminator_class(problem,interpretation,source);
55104 BooleanElement(target); 43128 find mayInstanceOfFunctionalData_class(problem,interpretation,target);
55105 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 43129 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
55106 // the upper bound of the multiplicity should be considered. 43130 // the upper bound of the multiplicity should be considered.
55107 numberOfExistingReferences == count find mustInRelationunsettable_attribute_EStructuralFeature(problem,interpretation,source,_); 43131 numberOfExistingReferences == count find mustInRelationdata_reference_FAMTerminator(problem,interpretation,source,_);
55108 check(numberOfExistingReferences < 1); 43132 check(numberOfExistingReferences < 1);
43133 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
43134 // the upper bound of the opposite reference multiplicity should be considered.
43135 numberOfExistingOppositeReferences == count find mustInRelationterminator_reference_FunctionalData(problem,interpretation,target,_);
43136 check(numberOfExistingOppositeReferences < 1);
43137 // The eOpposite of the reference is containment, then a referene cannot be created if
43138 // 1. Multiple parents
43139 neg find mustContains4(problem,interpretation,source,_);
43140 // 2. Circle in the containment hierarchy
43141 neg find mustTransitiveContains(source,target);
55109} or { 43142} or {
55110 find mustInRelationunsettable_attribute_EStructuralFeature(problem,interpretation,source,target); 43143 find mustInRelationdata_reference_FAMTerminator(problem,interpretation,source,target);
55111} 43144}
55112/** 43145/**
55113 * Matcher for detecting tuples t where []derived attribute EStructuralFeature(source,target) 43146 * Matcher for detecting tuples t where []from reference InformationLink(source,target)
55114 */ 43147 */
55115private pattern mustInRelationderived_attribute_EStructuralFeature( 43148private pattern mustInRelationfrom_reference_InformationLink(
55116 problem:LogicProblem, interpretation:PartialInterpretation, 43149 problem:LogicProblem, interpretation:PartialInterpretation,
55117 source: DefinedElement, target:DefinedElement) 43150 source: DefinedElement, target:DefinedElement)
55118{ 43151{
55119 find interpretation(problem,interpretation); 43152 find interpretation(problem,interpretation);
55120 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 43153 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
55121 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"derived attribute EStructuralFeature"); 43154 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"from reference InformationLink");
55122 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 43155 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
55123 BinaryElementRelationLink.param1(link,source); 43156 BinaryElementRelationLink.param1(link,source);
55124 BinaryElementRelationLink.param2(link,target); 43157 BinaryElementRelationLink.param2(link,target);
55125} 43158}
55126/** 43159/**
55127 * Matcher for detecting tuples t where <>derived attribute EStructuralFeature(source,target) 43160 * Matcher for detecting tuples t where <>from reference InformationLink(source,target)
55128 */ 43161 */
55129private pattern mayInRelationderived_attribute_EStructuralFeature( 43162private pattern mayInRelationfrom_reference_InformationLink(
55130 problem:LogicProblem, interpretation:PartialInterpretation, 43163 problem:LogicProblem, interpretation:PartialInterpretation,
55131 source: DefinedElement, target:DefinedElement) 43164 source: DefinedElement, target:DefinedElement)
55132{ 43165{
@@ -55135,33 +43168,38 @@ private pattern mayInRelationderived_attribute_EStructuralFeature(
55135 find mayExist(problem, interpretation, source); 43168 find mayExist(problem, interpretation, source);
55136 find mayExist(problem, interpretation, target); 43169 find mayExist(problem, interpretation, target);
55137 // Type consistency 43170 // Type consistency
55138 find mayInstanceOfEStructuralFeature_class(problem,interpretation,source); 43171 find mayInstanceOfInformationLink_class(problem,interpretation,source);
55139 BooleanElement(target); 43172 find mayInstanceOfFunctionalOutput_class(problem,interpretation,target);
55140 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 43173 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
55141 // the upper bound of the multiplicity should be considered. 43174 // the upper bound of the multiplicity should be considered.
55142 numberOfExistingReferences == count find mustInRelationderived_attribute_EStructuralFeature(problem,interpretation,source,_); 43175 numberOfExistingReferences == count find mustInRelationfrom_reference_InformationLink(problem,interpretation,source,_);
55143 check(numberOfExistingReferences < 1); 43176 check(numberOfExistingReferences < 1);
43177 // The eOpposite of the reference is containment, then a referene cannot be created if
43178 // 1. Multiple parents
43179 neg find mustContains4(problem,interpretation,source,_);
43180 // 2. Circle in the containment hierarchy
43181 neg find mustTransitiveContains(source,target);
55144} or { 43182} or {
55145 find mustInRelationderived_attribute_EStructuralFeature(problem,interpretation,source,target); 43183 find mustInRelationfrom_reference_InformationLink(problem,interpretation,source,target);
55146} 43184}
55147/** 43185/**
55148 * Matcher for detecting tuples t where []ordered attribute ETypedElement(source,target) 43186 * Matcher for detecting tuples t where []to reference InformationLink(source,target)
55149 */ 43187 */
55150private pattern mustInRelationordered_attribute_ETypedElement( 43188private pattern mustInRelationto_reference_InformationLink(
55151 problem:LogicProblem, interpretation:PartialInterpretation, 43189 problem:LogicProblem, interpretation:PartialInterpretation,
55152 source: DefinedElement, target:DefinedElement) 43190 source: DefinedElement, target:DefinedElement)
55153{ 43191{
55154 find interpretation(problem,interpretation); 43192 find interpretation(problem,interpretation);
55155 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 43193 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
55156 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"ordered attribute ETypedElement"); 43194 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"to reference InformationLink");
55157 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 43195 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
55158 BinaryElementRelationLink.param1(link,source); 43196 BinaryElementRelationLink.param1(link,source);
55159 BinaryElementRelationLink.param2(link,target); 43197 BinaryElementRelationLink.param2(link,target);
55160} 43198}
55161/** 43199/**
55162 * Matcher for detecting tuples t where <>ordered attribute ETypedElement(source,target) 43200 * Matcher for detecting tuples t where <>to reference InformationLink(source,target)
55163 */ 43201 */
55164private pattern mayInRelationordered_attribute_ETypedElement( 43202private pattern mayInRelationto_reference_InformationLink(
55165 problem:LogicProblem, interpretation:PartialInterpretation, 43203 problem:LogicProblem, interpretation:PartialInterpretation,
55166 source: DefinedElement, target:DefinedElement) 43204 source: DefinedElement, target:DefinedElement)
55167{ 43205{
@@ -55170,33 +43208,33 @@ private pattern mayInRelationordered_attribute_ETypedElement(
55170 find mayExist(problem, interpretation, source); 43208 find mayExist(problem, interpretation, source);
55171 find mayExist(problem, interpretation, target); 43209 find mayExist(problem, interpretation, target);
55172 // Type consistency 43210 // Type consistency
55173 find mayInstanceOfETypedElement_class(problem,interpretation,source); 43211 find mayInstanceOfInformationLink_class(problem,interpretation,source);
55174 BooleanElement(target); 43212 find mayInstanceOfFunctionalInput_class(problem,interpretation,target);
55175 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 43213 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
55176 // the upper bound of the multiplicity should be considered. 43214 // the upper bound of the multiplicity should be considered.
55177 numberOfExistingReferences == count find mustInRelationordered_attribute_ETypedElement(problem,interpretation,source,_); 43215 numberOfExistingReferences == count find mustInRelationto_reference_InformationLink(problem,interpretation,source,_);
55178 check(numberOfExistingReferences < 1); 43216 check(numberOfExistingReferences < 1);
55179} or { 43217} or {
55180 find mustInRelationordered_attribute_ETypedElement(problem,interpretation,source,target); 43218 find mustInRelationto_reference_InformationLink(problem,interpretation,source,target);
55181} 43219}
55182/** 43220/**
55183 * Matcher for detecting tuples t where []unique attribute ETypedElement(source,target) 43221 * Matcher for detecting tuples t where []data reference FunctionalInterface(source,target)
55184 */ 43222 */
55185private pattern mustInRelationunique_attribute_ETypedElement( 43223private pattern mustInRelationdata_reference_FunctionalInterface(
55186 problem:LogicProblem, interpretation:PartialInterpretation, 43224 problem:LogicProblem, interpretation:PartialInterpretation,
55187 source: DefinedElement, target:DefinedElement) 43225 source: DefinedElement, target:DefinedElement)
55188{ 43226{
55189 find interpretation(problem,interpretation); 43227 find interpretation(problem,interpretation);
55190 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 43228 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
55191 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"unique attribute ETypedElement"); 43229 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"data reference FunctionalInterface");
55192 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 43230 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
55193 BinaryElementRelationLink.param1(link,source); 43231 BinaryElementRelationLink.param1(link,source);
55194 BinaryElementRelationLink.param2(link,target); 43232 BinaryElementRelationLink.param2(link,target);
55195} 43233}
55196/** 43234/**
55197 * Matcher for detecting tuples t where <>unique attribute ETypedElement(source,target) 43235 * Matcher for detecting tuples t where <>data reference FunctionalInterface(source,target)
55198 */ 43236 */
55199private pattern mayInRelationunique_attribute_ETypedElement( 43237private pattern mayInRelationdata_reference_FunctionalInterface(
55200 problem:LogicProblem, interpretation:PartialInterpretation, 43238 problem:LogicProblem, interpretation:PartialInterpretation,
55201 source: DefinedElement, target:DefinedElement) 43239 source: DefinedElement, target:DefinedElement)
55202{ 43240{
@@ -55205,33 +43243,38 @@ private pattern mayInRelationunique_attribute_ETypedElement(
55205 find mayExist(problem, interpretation, source); 43243 find mayExist(problem, interpretation, source);
55206 find mayExist(problem, interpretation, target); 43244 find mayExist(problem, interpretation, target);
55207 // Type consistency 43245 // Type consistency
55208 find mayInstanceOfETypedElement_class(problem,interpretation,source); 43246 find mayInstanceOfFunctionalInterface_class(problem,interpretation,source);
55209 BooleanElement(target); 43247 find mayInstanceOfFunctionalData_class(problem,interpretation,target);
55210 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 43248 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
55211 // the upper bound of the multiplicity should be considered. 43249 // the upper bound of the opposite reference multiplicity should be considered.
55212 numberOfExistingReferences == count find mustInRelationunique_attribute_ETypedElement(problem,interpretation,source,_); 43250 numberOfExistingOppositeReferences == count find mustInRelationinterface_reference_FunctionalData(problem,interpretation,target,_);
55213 check(numberOfExistingReferences < 1); 43251 check(numberOfExistingOppositeReferences < 1);
43252 // The reference is containment, then a new reference cannot be create if:
43253 // 1. Multiple parents
43254 neg find mustContains4(problem,interpretation,_,target);
43255 // 2. Circle in the containment hierarchy
43256 neg find mustTransitiveContains(source,target);
55214} or { 43257} or {
55215 find mustInRelationunique_attribute_ETypedElement(problem,interpretation,source,target); 43258 find mustInRelationdata_reference_FunctionalInterface(problem,interpretation,source,target);
55216} 43259}
55217/** 43260/**
55218 * Matcher for detecting tuples t where []lowerBound attribute ETypedElement(source,target) 43261 * Matcher for detecting tuples t where []element reference FunctionalInterface(source,target)
55219 */ 43262 */
55220private pattern mustInRelationlowerBound_attribute_ETypedElement( 43263private pattern mustInRelationelement_reference_FunctionalInterface(
55221 problem:LogicProblem, interpretation:PartialInterpretation, 43264 problem:LogicProblem, interpretation:PartialInterpretation,
55222 source: DefinedElement, target:DefinedElement) 43265 source: DefinedElement, target:DefinedElement)
55223{ 43266{
55224 find interpretation(problem,interpretation); 43267 find interpretation(problem,interpretation);
55225 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 43268 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
55226 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"lowerBound attribute ETypedElement"); 43269 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"element reference FunctionalInterface");
55227 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 43270 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
55228 BinaryElementRelationLink.param1(link,source); 43271 BinaryElementRelationLink.param1(link,source);
55229 BinaryElementRelationLink.param2(link,target); 43272 BinaryElementRelationLink.param2(link,target);
55230} 43273}
55231/** 43274/**
55232 * Matcher for detecting tuples t where <>lowerBound attribute ETypedElement(source,target) 43275 * Matcher for detecting tuples t where <>element reference FunctionalInterface(source,target)
55233 */ 43276 */
55234private pattern mayInRelationlowerBound_attribute_ETypedElement( 43277private pattern mayInRelationelement_reference_FunctionalInterface(
55235 problem:LogicProblem, interpretation:PartialInterpretation, 43278 problem:LogicProblem, interpretation:PartialInterpretation,
55236 source: DefinedElement, target:DefinedElement) 43279 source: DefinedElement, target:DefinedElement)
55237{ 43280{
@@ -55240,33 +43283,42 @@ private pattern mayInRelationlowerBound_attribute_ETypedElement(
55240 find mayExist(problem, interpretation, source); 43283 find mayExist(problem, interpretation, source);
55241 find mayExist(problem, interpretation, target); 43284 find mayExist(problem, interpretation, target);
55242 // Type consistency 43285 // Type consistency
55243 find mayInstanceOfETypedElement_class(problem,interpretation,source); 43286 find mayInstanceOfFunctionalInterface_class(problem,interpretation,source);
55244 IntegerElement(target); 43287 find mayInstanceOfFunctionalElement_class(problem,interpretation,target);
55245 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 43288 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
55246 // the upper bound of the multiplicity should be considered. 43289 // the upper bound of the multiplicity should be considered.
55247 numberOfExistingReferences == count find mustInRelationlowerBound_attribute_ETypedElement(problem,interpretation,source,_); 43290 numberOfExistingReferences == count find mustInRelationelement_reference_FunctionalInterface(problem,interpretation,source,_);
55248 check(numberOfExistingReferences < 1); 43291 check(numberOfExistingReferences < 1);
43292 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
43293 // the upper bound of the opposite reference multiplicity should be considered.
43294 numberOfExistingOppositeReferences == count find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,target,_);
43295 check(numberOfExistingOppositeReferences < 1);
43296 // The eOpposite of the reference is containment, then a referene cannot be created if
43297 // 1. Multiple parents
43298 neg find mustContains4(problem,interpretation,source,_);
43299 // 2. Circle in the containment hierarchy
43300 neg find mustTransitiveContains(source,target);
55249} or { 43301} or {
55250 find mustInRelationlowerBound_attribute_ETypedElement(problem,interpretation,source,target); 43302 find mustInRelationelement_reference_FunctionalInterface(problem,interpretation,source,target);
55251} 43303}
55252/** 43304/**
55253 * Matcher for detecting tuples t where []upperBound attribute ETypedElement(source,target) 43305 * Matcher for detecting tuples t where []IncomingLinks reference FunctionalInput(source,target)
55254 */ 43306 */
55255private pattern mustInRelationupperBound_attribute_ETypedElement( 43307private pattern mustInRelationIncomingLinks_reference_FunctionalInput(
55256 problem:LogicProblem, interpretation:PartialInterpretation, 43308 problem:LogicProblem, interpretation:PartialInterpretation,
55257 source: DefinedElement, target:DefinedElement) 43309 source: DefinedElement, target:DefinedElement)
55258{ 43310{
55259 find interpretation(problem,interpretation); 43311 find interpretation(problem,interpretation);
55260 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 43312 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
55261 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"upperBound attribute ETypedElement"); 43313 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"IncomingLinks reference FunctionalInput");
55262 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 43314 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
55263 BinaryElementRelationLink.param1(link,source); 43315 BinaryElementRelationLink.param1(link,source);
55264 BinaryElementRelationLink.param2(link,target); 43316 BinaryElementRelationLink.param2(link,target);
55265} 43317}
55266/** 43318/**
55267 * Matcher for detecting tuples t where <>upperBound attribute ETypedElement(source,target) 43319 * Matcher for detecting tuples t where <>IncomingLinks reference FunctionalInput(source,target)
55268 */ 43320 */
55269private pattern mayInRelationupperBound_attribute_ETypedElement( 43321private pattern mayInRelationIncomingLinks_reference_FunctionalInput(
55270 problem:LogicProblem, interpretation:PartialInterpretation, 43322 problem:LogicProblem, interpretation:PartialInterpretation,
55271 source: DefinedElement, target:DefinedElement) 43323 source: DefinedElement, target:DefinedElement)
55272{ 43324{
@@ -55275,33 +43327,33 @@ private pattern mayInRelationupperBound_attribute_ETypedElement(
55275 find mayExist(problem, interpretation, source); 43327 find mayExist(problem, interpretation, source);
55276 find mayExist(problem, interpretation, target); 43328 find mayExist(problem, interpretation, target);
55277 // Type consistency 43329 // Type consistency
55278 find mayInstanceOfETypedElement_class(problem,interpretation,source); 43330 find mayInstanceOfFunctionalInput_class(problem,interpretation,source);
55279 IntegerElement(target); 43331 find mayInstanceOfInformationLink_class(problem,interpretation,target);
55280 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 43332 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
55281 // the upper bound of the multiplicity should be considered. 43333 // the upper bound of the opposite reference multiplicity should be considered.
55282 numberOfExistingReferences == count find mustInRelationupperBound_attribute_ETypedElement(problem,interpretation,source,_); 43334 numberOfExistingOppositeReferences == count find mustInRelationto_reference_InformationLink(problem,interpretation,target,_);
55283 check(numberOfExistingReferences < 1); 43335 check(numberOfExistingOppositeReferences < 1);
55284} or { 43336} or {
55285 find mustInRelationupperBound_attribute_ETypedElement(problem,interpretation,source,target); 43337 find mustInRelationIncomingLinks_reference_FunctionalInput(problem,interpretation,source,target);
55286} 43338}
55287/** 43339/**
55288 * Matcher for detecting tuples t where []many attribute ETypedElement(source,target) 43340 * Matcher for detecting tuples t where []outgoingLinks reference FunctionalOutput(source,target)
55289 */ 43341 */
55290private pattern mustInRelationmany_attribute_ETypedElement( 43342private pattern mustInRelationoutgoingLinks_reference_FunctionalOutput(
55291 problem:LogicProblem, interpretation:PartialInterpretation, 43343 problem:LogicProblem, interpretation:PartialInterpretation,
55292 source: DefinedElement, target:DefinedElement) 43344 source: DefinedElement, target:DefinedElement)
55293{ 43345{
55294 find interpretation(problem,interpretation); 43346 find interpretation(problem,interpretation);
55295 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 43347 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
55296 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"many attribute ETypedElement"); 43348 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"outgoingLinks reference FunctionalOutput");
55297 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 43349 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
55298 BinaryElementRelationLink.param1(link,source); 43350 BinaryElementRelationLink.param1(link,source);
55299 BinaryElementRelationLink.param2(link,target); 43351 BinaryElementRelationLink.param2(link,target);
55300} 43352}
55301/** 43353/**
55302 * Matcher for detecting tuples t where <>many attribute ETypedElement(source,target) 43354 * Matcher for detecting tuples t where <>outgoingLinks reference FunctionalOutput(source,target)
55303 */ 43355 */
55304private pattern mayInRelationmany_attribute_ETypedElement( 43356private pattern mayInRelationoutgoingLinks_reference_FunctionalOutput(
55305 problem:LogicProblem, interpretation:PartialInterpretation, 43357 problem:LogicProblem, interpretation:PartialInterpretation,
55306 source: DefinedElement, target:DefinedElement) 43358 source: DefinedElement, target:DefinedElement)
55307{ 43359{
@@ -55310,33 +43362,38 @@ private pattern mayInRelationmany_attribute_ETypedElement(
55310 find mayExist(problem, interpretation, source); 43362 find mayExist(problem, interpretation, source);
55311 find mayExist(problem, interpretation, target); 43363 find mayExist(problem, interpretation, target);
55312 // Type consistency 43364 // Type consistency
55313 find mayInstanceOfETypedElement_class(problem,interpretation,source); 43365 find mayInstanceOfFunctionalOutput_class(problem,interpretation,source);
55314 BooleanElement(target); 43366 find mayInstanceOfInformationLink_class(problem,interpretation,target);
55315 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 43367 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
55316 // the upper bound of the multiplicity should be considered. 43368 // the upper bound of the opposite reference multiplicity should be considered.
55317 numberOfExistingReferences == count find mustInRelationmany_attribute_ETypedElement(problem,interpretation,source,_); 43369 numberOfExistingOppositeReferences == count find mustInRelationfrom_reference_InformationLink(problem,interpretation,target,_);
55318 check(numberOfExistingReferences < 1); 43370 check(numberOfExistingOppositeReferences < 1);
43371 // The reference is containment, then a new reference cannot be create if:
43372 // 1. Multiple parents
43373 neg find mustContains4(problem,interpretation,_,target);
43374 // 2. Circle in the containment hierarchy
43375 neg find mustTransitiveContains(source,target);
55319} or { 43376} or {
55320 find mustInRelationmany_attribute_ETypedElement(problem,interpretation,source,target); 43377 find mustInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,source,target);
55321} 43378}
55322/** 43379/**
55323 * Matcher for detecting tuples t where []required attribute ETypedElement(source,target) 43380 * Matcher for detecting tuples t where []terminator reference FunctionalData(source,target)
55324 */ 43381 */
55325private pattern mustInRelationrequired_attribute_ETypedElement( 43382private pattern mustInRelationterminator_reference_FunctionalData(
55326 problem:LogicProblem, interpretation:PartialInterpretation, 43383 problem:LogicProblem, interpretation:PartialInterpretation,
55327 source: DefinedElement, target:DefinedElement) 43384 source: DefinedElement, target:DefinedElement)
55328{ 43385{
55329 find interpretation(problem,interpretation); 43386 find interpretation(problem,interpretation);
55330 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 43387 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
55331 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"required attribute ETypedElement"); 43388 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"terminator reference FunctionalData");
55332 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 43389 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
55333 BinaryElementRelationLink.param1(link,source); 43390 BinaryElementRelationLink.param1(link,source);
55334 BinaryElementRelationLink.param2(link,target); 43391 BinaryElementRelationLink.param2(link,target);
55335} 43392}
55336/** 43393/**
55337 * Matcher for detecting tuples t where <>required attribute ETypedElement(source,target) 43394 * Matcher for detecting tuples t where <>terminator reference FunctionalData(source,target)
55338 */ 43395 */
55339private pattern mayInRelationrequired_attribute_ETypedElement( 43396private pattern mayInRelationterminator_reference_FunctionalData(
55340 problem:LogicProblem, interpretation:PartialInterpretation, 43397 problem:LogicProblem, interpretation:PartialInterpretation,
55341 source: DefinedElement, target:DefinedElement) 43398 source: DefinedElement, target:DefinedElement)
55342{ 43399{
@@ -55345,33 +43402,42 @@ private pattern mayInRelationrequired_attribute_ETypedElement(
55345 find mayExist(problem, interpretation, source); 43402 find mayExist(problem, interpretation, source);
55346 find mayExist(problem, interpretation, target); 43403 find mayExist(problem, interpretation, target);
55347 // Type consistency 43404 // Type consistency
55348 find mayInstanceOfETypedElement_class(problem,interpretation,source); 43405 find mayInstanceOfFunctionalData_class(problem,interpretation,source);
55349 BooleanElement(target); 43406 find mayInstanceOfFAMTerminator_class(problem,interpretation,target);
55350 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 43407 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
55351 // the upper bound of the multiplicity should be considered. 43408 // the upper bound of the multiplicity should be considered.
55352 numberOfExistingReferences == count find mustInRelationrequired_attribute_ETypedElement(problem,interpretation,source,_); 43409 numberOfExistingReferences == count find mustInRelationterminator_reference_FunctionalData(problem,interpretation,source,_);
55353 check(numberOfExistingReferences < 1); 43410 check(numberOfExistingReferences < 1);
43411 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
43412 // the upper bound of the opposite reference multiplicity should be considered.
43413 numberOfExistingOppositeReferences == count find mustInRelationdata_reference_FAMTerminator(problem,interpretation,target,_);
43414 check(numberOfExistingOppositeReferences < 1);
43415 // The reference is containment, then a new reference cannot be create if:
43416 // 1. Multiple parents
43417 neg find mustContains4(problem,interpretation,_,target);
43418 // 2. Circle in the containment hierarchy
43419 neg find mustTransitiveContains(source,target);
55354} or { 43420} or {
55355 find mustInRelationrequired_attribute_ETypedElement(problem,interpretation,source,target); 43421 find mustInRelationterminator_reference_FunctionalData(problem,interpretation,source,target);
55356} 43422}
55357/** 43423/**
55358 * Matcher for detecting tuples t where []key attribute EStringToStringMapEntry(source,target) 43424 * Matcher for detecting tuples t where []interface reference FunctionalData(source,target)
55359 */ 43425 */
55360private pattern mustInRelationkey_attribute_EStringToStringMapEntry( 43426private pattern mustInRelationinterface_reference_FunctionalData(
55361 problem:LogicProblem, interpretation:PartialInterpretation, 43427 problem:LogicProblem, interpretation:PartialInterpretation,
55362 source: DefinedElement, target:DefinedElement) 43428 source: DefinedElement, target:DefinedElement)
55363{ 43429{
55364 find interpretation(problem,interpretation); 43430 find interpretation(problem,interpretation);
55365 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 43431 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
55366 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"key attribute EStringToStringMapEntry"); 43432 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"interface reference FunctionalData");
55367 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 43433 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
55368 BinaryElementRelationLink.param1(link,source); 43434 BinaryElementRelationLink.param1(link,source);
55369 BinaryElementRelationLink.param2(link,target); 43435 BinaryElementRelationLink.param2(link,target);
55370} 43436}
55371/** 43437/**
55372 * Matcher for detecting tuples t where <>key attribute EStringToStringMapEntry(source,target) 43438 * Matcher for detecting tuples t where <>interface reference FunctionalData(source,target)
55373 */ 43439 */
55374private pattern mayInRelationkey_attribute_EStringToStringMapEntry( 43440private pattern mayInRelationinterface_reference_FunctionalData(
55375 problem:LogicProblem, interpretation:PartialInterpretation, 43441 problem:LogicProblem, interpretation:PartialInterpretation,
55376 source: DefinedElement, target:DefinedElement) 43442 source: DefinedElement, target:DefinedElement)
55377{ 43443{
@@ -55380,33 +43446,38 @@ private pattern mayInRelationkey_attribute_EStringToStringMapEntry(
55380 find mayExist(problem, interpretation, source); 43446 find mayExist(problem, interpretation, source);
55381 find mayExist(problem, interpretation, target); 43447 find mayExist(problem, interpretation, target);
55382 // Type consistency 43448 // Type consistency
55383 find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,source); 43449 find mayInstanceOfFunctionalData_class(problem,interpretation,source);
55384 StringElement(target); 43450 find mayInstanceOfFunctionalInterface_class(problem,interpretation,target);
55385 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 43451 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
55386 // the upper bound of the multiplicity should be considered. 43452 // the upper bound of the multiplicity should be considered.
55387 numberOfExistingReferences == count find mustInRelationkey_attribute_EStringToStringMapEntry(problem,interpretation,source,_); 43453 numberOfExistingReferences == count find mustInRelationinterface_reference_FunctionalData(problem,interpretation,source,_);
55388 check(numberOfExistingReferences < 1); 43454 check(numberOfExistingReferences < 1);
43455 // The eOpposite of the reference is containment, then a referene cannot be created if
43456 // 1. Multiple parents
43457 neg find mustContains4(problem,interpretation,source,_);
43458 // 2. Circle in the containment hierarchy
43459 neg find mustTransitiveContains(source,target);
55389} or { 43460} or {
55390 find mustInRelationkey_attribute_EStringToStringMapEntry(problem,interpretation,source,target); 43461 find mustInRelationinterface_reference_FunctionalData(problem,interpretation,source,target);
55391} 43462}
55392/** 43463/**
55393 * Matcher for detecting tuples t where []value attribute EStringToStringMapEntry(source,target) 43464 * Matcher for detecting tuples t where []type attribute Function(source,target)
55394 */ 43465 */
55395private pattern mustInRelationvalue_attribute_EStringToStringMapEntry( 43466private pattern mustInRelationtype_attribute_Function(
55396 problem:LogicProblem, interpretation:PartialInterpretation, 43467 problem:LogicProblem, interpretation:PartialInterpretation,
55397 source: DefinedElement, target:DefinedElement) 43468 source: DefinedElement, target:DefinedElement)
55398{ 43469{
55399 find interpretation(problem,interpretation); 43470 find interpretation(problem,interpretation);
55400 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 43471 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
55401 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"value attribute EStringToStringMapEntry"); 43472 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function");
55402 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 43473 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
55403 BinaryElementRelationLink.param1(link,source); 43474 BinaryElementRelationLink.param1(link,source);
55404 BinaryElementRelationLink.param2(link,target); 43475 BinaryElementRelationLink.param2(link,target);
55405} 43476}
55406/** 43477/**
55407 * Matcher for detecting tuples t where <>value attribute EStringToStringMapEntry(source,target) 43478 * Matcher for detecting tuples t where <>type attribute Function(source,target)
55408 */ 43479 */
55409private pattern mayInRelationvalue_attribute_EStringToStringMapEntry( 43480private pattern mayInRelationtype_attribute_Function(
55410 problem:LogicProblem, interpretation:PartialInterpretation, 43481 problem:LogicProblem, interpretation:PartialInterpretation,
55411 source: DefinedElement, target:DefinedElement) 43482 source: DefinedElement, target:DefinedElement)
55412{ 43483{
@@ -55415,14 +43486,14 @@ private pattern mayInRelationvalue_attribute_EStringToStringMapEntry(
55415 find mayExist(problem, interpretation, source); 43486 find mayExist(problem, interpretation, source);
55416 find mayExist(problem, interpretation, target); 43487 find mayExist(problem, interpretation, target);
55417 // Type consistency 43488 // Type consistency
55418 find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,source); 43489 find mayInstanceOfFunction_class(problem,interpretation,source);
55419 StringElement(target); 43490 find mayInstanceOfFunctionType_enum(problem,interpretation,target);
55420 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 43491 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
55421 // the upper bound of the multiplicity should be considered. 43492 // the upper bound of the multiplicity should be considered.
55422 numberOfExistingReferences == count find mustInRelationvalue_attribute_EStringToStringMapEntry(problem,interpretation,source,_); 43493 numberOfExistingReferences == count find mustInRelationtype_attribute_Function(problem,interpretation,source,_);
55423 check(numberOfExistingReferences < 1); 43494 check(numberOfExistingReferences < 1);
55424} or { 43495} or {
55425 find mustInRelationvalue_attribute_EStringToStringMapEntry(problem,interpretation,source,target); 43496 find mustInRelationtype_attribute_Function(problem,interpretation,source,target);
55426} 43497}
55427 43498
55428////////// 43499//////////
@@ -55438,41 +43509,17 @@ private pattern mustContains2(source: DefinedElement, target: DefinedElement) {
55438 43509
55439private pattern mustContains4(problem:LogicProblem, interpretation:PartialInterpretation, 43510private pattern mustContains4(problem:LogicProblem, interpretation:PartialInterpretation,
55440 source: DefinedElement, target: DefinedElement) 43511 source: DefinedElement, target: DefinedElement)
55441 { find mustInRelationdetails_reference_EAnnotation(problem,interpretation,source,target); }or 43512 { find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,source,target); }or
55442
55443 { find mustInRelationcontents_reference_EAnnotation(problem,interpretation,source,target); }or
55444
55445 { find mustInRelationeOperations_reference_EClass(problem,interpretation,source,target); }or
55446
55447 { find mustInRelationeStructuralFeatures_reference_EClass(problem,interpretation,source,target); }or
55448
55449 { find mustInRelationeGenericSuperTypes_reference_EClass(problem,interpretation,source,target); }or
55450
55451 { find mustInRelationeTypeParameters_reference_EClassifier(problem,interpretation,source,target); }or
55452
55453 { find mustInRelationeLiterals_reference_EEnum(problem,interpretation,source,target); }or
55454
55455 { find mustInRelationeAnnotations_reference_EModelElement(problem,interpretation,source,target); }or
55456
55457 { find mustInRelationeTypeParameters_reference_EOperation(problem,interpretation,source,target); }or
55458
55459 { find mustInRelationeParameters_reference_EOperation(problem,interpretation,source,target); }or
55460
55461 { find mustInRelationeGenericExceptions_reference_EOperation(problem,interpretation,source,target); }or
55462
55463 { find mustInRelationeClassifiers_reference_EPackage(problem,interpretation,source,target); }or
55464
55465 { find mustInRelationeSubpackages_reference_EPackage(problem,interpretation,source,target); }or
55466 43513
55467 { find mustInRelationeGenericType_reference_ETypedElement(problem,interpretation,source,target); }or 43514 { find mustInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,source,target); }or
55468 43515
55469 { find mustInRelationeUpperBound_reference_EGenericType(problem,interpretation,source,target); }or 43516 { find mustInRelationsubElements_reference_Function(problem,interpretation,source,target); }or
55470 43517
55471 { find mustInRelationeTypeArguments_reference_EGenericType(problem,interpretation,source,target); }or 43518 { find mustInRelationdata_reference_FunctionalInterface(problem,interpretation,source,target); }or
55472 43519
55473 { find mustInRelationeLowerBound_reference_EGenericType(problem,interpretation,source,target); }or 43520 { find mustInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,source,target); }or
55474 43521
55475 { find mustInRelationeBounds_reference_ETypeParameter(problem,interpretation,source,target); } 43522 { find mustInRelationterminator_reference_FunctionalData(problem,interpretation,source,target); }
55476 43523
55477private pattern mustTransitiveContains(source,target) { 43524private pattern mustTransitiveContains(source,target) {
55478 find mustContains2+(source,target); 43525 find mustContains2+(source,target);
@@ -55489,30 +43536,30 @@ private pattern mustTransitiveContains(source,target) {
55489////////// 43536//////////
55490// 3.1 Unfinishedness Measured by Multiplicity 43537// 3.1 Unfinishedness Measured by Multiplicity
55491////////// 43538//////////
55492pattern unfinishedLowerMultiplicity_eAttributeType_reference_EAttribute(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { 43539pattern unfinishedLowerMultiplicity_model_reference_FunctionalElement(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
55493 find interpretation(problem,interpretation); 43540 find interpretation(problem,interpretation);
55494 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 43541 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
55495 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAttributeType reference EAttribute"); 43542 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement");
55496 find mustInstanceOfEAttribute_class(problem,interpretation,object); 43543 find mustInstanceOfFunctionalElement_class(problem,interpretation,object);
55497 numberOfExistingReferences == count find mustInRelationeAttributeType_reference_EAttribute(problem,interpretation,object,_); 43544 numberOfExistingReferences == count find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,object,_);
55498 check(numberOfExistingReferences < 1); 43545 check(numberOfExistingReferences < 1);
55499 missingMultiplicity == eval(1-numberOfExistingReferences); 43546 missingMultiplicity == eval(1-numberOfExistingReferences);
55500} 43547}
55501pattern unfinishedLowerMultiplicity_eReferenceType_reference_EReference(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { 43548pattern unfinishedLowerMultiplicity_to_reference_InformationLink(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
55502 find interpretation(problem,interpretation); 43549 find interpretation(problem,interpretation);
55503 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 43550 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
55504 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eReferenceType reference EReference"); 43551 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"to reference InformationLink");
55505 find mustInstanceOfEReference_class(problem,interpretation,object); 43552 find mustInstanceOfInformationLink_class(problem,interpretation,object);
55506 numberOfExistingReferences == count find mustInRelationeReferenceType_reference_EReference(problem,interpretation,object,_); 43553 numberOfExistingReferences == count find mustInRelationto_reference_InformationLink(problem,interpretation,object,_);
55507 check(numberOfExistingReferences < 1); 43554 check(numberOfExistingReferences < 1);
55508 missingMultiplicity == eval(1-numberOfExistingReferences); 43555 missingMultiplicity == eval(1-numberOfExistingReferences);
55509} 43556}
55510pattern unfinishedLowerMultiplicity_eRawType_reference_EGenericType(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { 43557pattern unfinishedLowerMultiplicity_type_attribute_Function(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
55511 find interpretation(problem,interpretation); 43558 find interpretation(problem,interpretation);
55512 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 43559 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
55513 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eRawType reference EGenericType"); 43560 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function");
55514 find mustInstanceOfEGenericType_class(problem,interpretation,object); 43561 find mustInstanceOfFunction_class(problem,interpretation,object);
55515 numberOfExistingReferences == count find mustInRelationeRawType_reference_EGenericType(problem,interpretation,object,_); 43562 numberOfExistingReferences == count find mustInRelationtype_attribute_Function(problem,interpretation,object,_);
55516 check(numberOfExistingReferences < 1); 43563 check(numberOfExistingReferences < 1);
55517 missingMultiplicity == eval(1-numberOfExistingReferences); 43564 missingMultiplicity == eval(1-numberOfExistingReferences);
55518} 43565}
@@ -55529,626 +43576,246 @@ pattern unfinishedLowerMultiplicity_eRawType_reference_EGenericType(problem:Logi
55529private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation) 43576private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation)
55530{ 43577{
55531 find interpretation(problem,interpretation); 43578 find interpretation(problem,interpretation);
55532 find mustInstanceOfEOperation_class(problem,interpretation,root); 43579 find mustInstanceOfFunctionalInterface_class(problem,interpretation,root);
55533 find mustExist(problem, interpretation, root);
55534}or{
55535 find interpretation(problem,interpretation);
55536 find mustInstanceOfENamedElement_class(problem,interpretation,root);
55537 find mustExist(problem, interpretation, root);
55538}or{
55539 find interpretation(problem,interpretation);
55540 find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,root);
55541 find mustExist(problem, interpretation, root);
55542}or{
55543 find interpretation(problem,interpretation);
55544 find mustInstanceOfEEnumLiteral_class(problem,interpretation,root);
55545 find mustExist(problem, interpretation, root);
55546}or{
55547 find interpretation(problem,interpretation);
55548 find mustInstanceOfEGenericType_class(problem,interpretation,root);
55549 find mustExist(problem, interpretation, root);
55550}or{
55551 find interpretation(problem,interpretation);
55552 find mustInstanceOfEObject_class(problem,interpretation,root);
55553 find mustExist(problem, interpretation, root);
55554}or{
55555 find interpretation(problem,interpretation);
55556 find mustInstanceOfEAttribute_class(problem,interpretation,root);
55557 find mustExist(problem, interpretation, root);
55558}or{
55559 find interpretation(problem,interpretation);
55560 find mustInstanceOfEPackage_class(problem,interpretation,root);
55561 find mustExist(problem, interpretation, root);
55562}or{
55563 find interpretation(problem,interpretation);
55564 find mustInstanceOfEParameter_class(problem,interpretation,root);
55565 find mustExist(problem, interpretation, root);
55566}or{
55567 find interpretation(problem,interpretation);
55568 find mustInstanceOfEDataType_class(problem,interpretation,root);
55569 find mustExist(problem, interpretation, root);
55570}or{
55571 find interpretation(problem,interpretation);
55572 find mustInstanceOfEClassifier_class(problem,interpretation,root);
55573 find mustExist(problem, interpretation, root);
55574}or{
55575 find interpretation(problem,interpretation);
55576 find mustInstanceOfEStructuralFeature_class(problem,interpretation,root);
55577 find mustExist(problem, interpretation, root);
55578}or{
55579 find interpretation(problem,interpretation);
55580 find mustInstanceOfEModelElement_class(problem,interpretation,root);
55581 find mustExist(problem, interpretation, root);
55582}or{
55583 find interpretation(problem,interpretation);
55584 find mustInstanceOfEAnnotation_class(problem,interpretation,root);
55585 find mustExist(problem, interpretation, root);
55586}or{
55587 find interpretation(problem,interpretation);
55588 find mustInstanceOfETypeParameter_class(problem,interpretation,root);
55589 find mustExist(problem, interpretation, root);
55590}or{
55591 find interpretation(problem,interpretation);
55592 find mustInstanceOfEReference_class(problem,interpretation,root);
55593 find mustExist(problem, interpretation, root);
55594}or{
55595 find interpretation(problem,interpretation);
55596 find mustInstanceOfEEnum_class(problem,interpretation,root);
55597 find mustExist(problem, interpretation, root); 43580 find mustExist(problem, interpretation, root);
55598}or{ 43581}or{
55599 find interpretation(problem,interpretation); 43582 find interpretation(problem,interpretation);
55600 find mustInstanceOfETypedElement_class(problem,interpretation,root); 43583 find mustInstanceOfInformationLink_class(problem,interpretation,root);
55601 find mustExist(problem, interpretation, root); 43584 find mustExist(problem, interpretation, root);
55602}or{ 43585}or{
55603 find interpretation(problem,interpretation); 43586 find interpretation(problem,interpretation);
55604 find mustInstanceOfEClass_class(problem,interpretation,root); 43587 find mustInstanceOfFunctionalElement_class(problem,interpretation,root);
55605 find mustExist(problem, interpretation, root); 43588 find mustExist(problem, interpretation, root);
55606}or{ 43589}or{
55607 find interpretation(problem,interpretation); 43590 find interpretation(problem,interpretation);
55608 find mustInstanceOfEModelElement_class_DefinedPart(problem,interpretation,root); 43591 find mustInstanceOfFAMTerminator_class(problem,interpretation,root);
55609 find mustExist(problem, interpretation, root); 43592 find mustExist(problem, interpretation, root);
55610}or{ 43593}or{
55611 find interpretation(problem,interpretation); 43594 find interpretation(problem,interpretation);
55612 find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,root); 43595 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,root);
55613 find mustExist(problem, interpretation, root); 43596 find mustExist(problem, interpretation, root);
55614}or{ 43597}or{
55615 find interpretation(problem,interpretation); 43598 find interpretation(problem,interpretation);
55616 find mustInstanceOfENamedElement_class_DefinedPart(problem,interpretation,root); 43599 find mustInstanceOfFunctionalInput_class(problem,interpretation,root);
55617 find mustExist(problem, interpretation, root); 43600 find mustExist(problem, interpretation, root);
55618}or{ 43601}or{
55619 find interpretation(problem,interpretation); 43602 find interpretation(problem,interpretation);
55620 find mustInstanceOfENamedElement_class_UndefinedPart(problem,interpretation,root); 43603 find mustInstanceOfFunction_class(problem,interpretation,root);
55621 find mustExist(problem, interpretation, root); 43604 find mustExist(problem, interpretation, root);
55622}or{ 43605}or{
55623 find interpretation(problem,interpretation); 43606 find interpretation(problem,interpretation);
55624 find mustInstanceOfEPackage_class_DefinedPart(problem,interpretation,root); 43607 find mustInstanceOfFunctionalOutput_class(problem,interpretation,root);
55625 find mustExist(problem, interpretation, root); 43608 find mustExist(problem, interpretation, root);
55626}or{ 43609}or{
55627 find interpretation(problem,interpretation); 43610 find interpretation(problem,interpretation);
55628 find mustInstanceOfEPackage_class_UndefinedPart(problem,interpretation,root); 43611 find mustInstanceOfFunctionalData_class(problem,interpretation,root);
55629 find mustExist(problem, interpretation, root); 43612 find mustExist(problem, interpretation, root);
55630} 43613}
55631pattern createObject_EAnnotation_class_by_eAnnotations_reference_EModelElement_with_eModelElement_reference_EAnnotation( 43614pattern createObject_FunctionalInput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData(
55632 problem:LogicProblem, interpretation:PartialInterpretation,
55633 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
55634 container:DefinedElement)
55635{
55636 find interpretation(problem,interpretation);
55637 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
55638 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EAnnotation class");
55639 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
55640 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eAnnotations reference EModelElement");
55641 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
55642 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eModelElement reference EAnnotation");
55643 find mustInstanceOfEModelElement_class(problem,interpretation,container);
55644 find mayInstanceOfEAnnotation_class(problem,interpretation,newObject);
55645 find mayInRelationeAnnotations_reference_EModelElement(problem,interpretation,container,newObject);
55646 find mustExist(problem, interpretation, container);
55647 neg find mustExist(problem, interpretation, newObject);
55648}
55649pattern createObject_EAnnotation_class(
55650 problem:LogicProblem, interpretation:PartialInterpretation,
55651 typeInterpretation:PartialComplexTypeInterpretation)
55652{
55653 find interpretation(problem,interpretation);
55654 neg find hasElementInContainment(problem,interpretation);
55655 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
55656 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EAnnotation class");
55657 find mayInstanceOfEAnnotation_class(problem,interpretation,newObject);
55658 find mayExist(problem, interpretation, newObject);
55659 neg find mustExist(problem, interpretation, newObject);
55660}
55661pattern createObject_EEnum_class_by_eClassifiers_reference_EPackage_with_ePackage_reference_EClassifier(
55662 problem:LogicProblem, interpretation:PartialInterpretation,
55663 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
55664 container:DefinedElement)
55665{
55666 find interpretation(problem,interpretation);
55667 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
55668 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EEnum class");
55669 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
55670 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eClassifiers reference EPackage");
55671 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
55672 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"ePackage reference EClassifier");
55673 find mustInstanceOfEPackage_class(problem,interpretation,container);
55674 find mayInstanceOfEEnum_class(problem,interpretation,newObject);
55675 find mayInRelationeClassifiers_reference_EPackage(problem,interpretation,container,newObject);
55676 find mustExist(problem, interpretation, container);
55677 neg find mustExist(problem, interpretation, newObject);
55678}
55679pattern createObject_EEnum_class(
55680 problem:LogicProblem, interpretation:PartialInterpretation,
55681 typeInterpretation:PartialComplexTypeInterpretation)
55682{
55683 find interpretation(problem,interpretation);
55684 neg find hasElementInContainment(problem,interpretation);
55685 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
55686 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EEnum class");
55687 find mayInstanceOfEEnum_class(problem,interpretation,newObject);
55688 find mayExist(problem, interpretation, newObject);
55689 neg find mustExist(problem, interpretation, newObject);
55690}
55691pattern createObject_EParameter_class_by_eParameters_reference_EOperation_with_eOperation_reference_EParameter(
55692 problem:LogicProblem, interpretation:PartialInterpretation, 43615 problem:LogicProblem, interpretation:PartialInterpretation,
55693 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 43616 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
55694 container:DefinedElement) 43617 container:DefinedElement)
55695{ 43618{
55696 find interpretation(problem,interpretation); 43619 find interpretation(problem,interpretation);
55697 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 43620 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
55698 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EParameter class"); 43621 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class");
55699 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 43622 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
55700 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eParameters reference EOperation"); 43623 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface");
55701 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 43624 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
55702 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eOperation reference EParameter"); 43625 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData");
55703 find mustInstanceOfEOperation_class(problem,interpretation,container); 43626 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container);
55704 find mayInstanceOfEParameter_class(problem,interpretation,newObject); 43627 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
55705 find mayInRelationeParameters_reference_EOperation(problem,interpretation,container,newObject); 43628 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject);
55706 find mustExist(problem, interpretation, container); 43629 find mustExist(problem, interpretation, container);
55707 neg find mustExist(problem, interpretation, newObject); 43630 neg find mustExist(problem, interpretation, newObject);
55708} 43631}
55709pattern createObject_EParameter_class( 43632pattern createObject_FunctionalInput_class(
55710 problem:LogicProblem, interpretation:PartialInterpretation, 43633 problem:LogicProblem, interpretation:PartialInterpretation,
55711 typeInterpretation:PartialComplexTypeInterpretation) 43634 typeInterpretation:PartialComplexTypeInterpretation)
55712{ 43635{
55713 find interpretation(problem,interpretation); 43636 find interpretation(problem,interpretation);
55714 neg find hasElementInContainment(problem,interpretation); 43637 neg find hasElementInContainment(problem,interpretation);
55715 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 43638 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
55716 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EParameter class"); 43639 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class");
55717 find mayInstanceOfEParameter_class(problem,interpretation,newObject); 43640 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
55718 find mayExist(problem, interpretation, newObject); 43641 find mayExist(problem, interpretation, newObject);
55719 neg find mustExist(problem, interpretation, newObject); 43642 neg find mustExist(problem, interpretation, newObject);
55720} 43643}
55721pattern createObject_EPackage_class_UndefinedPart_by_eSubpackages_reference_EPackage_with_eSuperPackage_reference_EPackage( 43644pattern createObject_FunctionalInterface_class_by_interface_reference_FunctionalElement_with_element_reference_FunctionalInterface(
55722 problem:LogicProblem, interpretation:PartialInterpretation, 43645 problem:LogicProblem, interpretation:PartialInterpretation,
55723 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 43646 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
55724 container:DefinedElement) 43647 container:DefinedElement)
55725{ 43648{
55726 find interpretation(problem,interpretation); 43649 find interpretation(problem,interpretation);
55727 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 43650 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
55728 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EPackage class UndefinedPart"); 43651 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
55729 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 43652 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
55730 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eSubpackages reference EPackage"); 43653 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"interface reference FunctionalElement");
55731 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 43654 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
55732 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eSuperPackage reference EPackage"); 43655 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"element reference FunctionalInterface");
55733 find mustInstanceOfEPackage_class(problem,interpretation,container); 43656 find mustInstanceOfFunctionalElement_class(problem,interpretation,container);
55734 find mayInstanceOfEPackage_class_UndefinedPart(problem,interpretation,newObject); 43657 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
55735 find mayInRelationeSubpackages_reference_EPackage(problem,interpretation,container,newObject); 43658 find mayInRelationinterface_reference_FunctionalElement(problem,interpretation,container,newObject);
55736 find mustExist(problem, interpretation, container); 43659 find mustExist(problem, interpretation, container);
55737 neg find mustExist(problem, interpretation, newObject); 43660 neg find mustExist(problem, interpretation, newObject);
55738} 43661}
55739pattern createObject_EPackage_class_UndefinedPart( 43662pattern createObject_FunctionalInterface_class(
55740 problem:LogicProblem, interpretation:PartialInterpretation, 43663 problem:LogicProblem, interpretation:PartialInterpretation,
55741 typeInterpretation:PartialComplexTypeInterpretation) 43664 typeInterpretation:PartialComplexTypeInterpretation)
55742{ 43665{
55743 find interpretation(problem,interpretation); 43666 find interpretation(problem,interpretation);
55744 neg find hasElementInContainment(problem,interpretation); 43667 neg find hasElementInContainment(problem,interpretation);
55745 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 43668 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
55746 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EPackage class UndefinedPart"); 43669 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
55747 find mayInstanceOfEPackage_class_UndefinedPart(problem,interpretation,newObject); 43670 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
55748 find mayExist(problem, interpretation, newObject); 43671 find mayExist(problem, interpretation, newObject);
55749 neg find mustExist(problem, interpretation, newObject); 43672 neg find mustExist(problem, interpretation, newObject);
55750} 43673}
55751pattern createObject_EClass_class_by_eClassifiers_reference_EPackage_with_ePackage_reference_EClassifier( 43674pattern createObject_FunctionalOutput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData(
55752 problem:LogicProblem, interpretation:PartialInterpretation, 43675 problem:LogicProblem, interpretation:PartialInterpretation,
55753 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 43676 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
55754 container:DefinedElement) 43677 container:DefinedElement)
55755{ 43678{
55756 find interpretation(problem,interpretation); 43679 find interpretation(problem,interpretation);
55757 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 43680 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
55758 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EClass class"); 43681 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class");
55759 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 43682 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
55760 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eClassifiers reference EPackage"); 43683 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface");
55761 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 43684 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
55762 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"ePackage reference EClassifier"); 43685 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData");
55763 find mustInstanceOfEPackage_class(problem,interpretation,container); 43686 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container);
55764 find mayInstanceOfEClass_class(problem,interpretation,newObject); 43687 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject);
55765 find mayInRelationeClassifiers_reference_EPackage(problem,interpretation,container,newObject); 43688 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject);
55766 find mustExist(problem, interpretation, container); 43689 find mustExist(problem, interpretation, container);
55767 neg find mustExist(problem, interpretation, newObject); 43690 neg find mustExist(problem, interpretation, newObject);
55768} 43691}
55769pattern createObject_EClass_class( 43692pattern createObject_FunctionalOutput_class(
55770 problem:LogicProblem, interpretation:PartialInterpretation, 43693 problem:LogicProblem, interpretation:PartialInterpretation,
55771 typeInterpretation:PartialComplexTypeInterpretation) 43694 typeInterpretation:PartialComplexTypeInterpretation)
55772{ 43695{
55773 find interpretation(problem,interpretation); 43696 find interpretation(problem,interpretation);
55774 neg find hasElementInContainment(problem,interpretation); 43697 neg find hasElementInContainment(problem,interpretation);
55775 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 43698 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
55776 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EClass class"); 43699 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class");
55777 find mayInstanceOfEClass_class(problem,interpretation,newObject); 43700 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject);
55778 find mayExist(problem, interpretation, newObject); 43701 find mayExist(problem, interpretation, newObject);
55779 neg find mustExist(problem, interpretation, newObject); 43702 neg find mustExist(problem, interpretation, newObject);
55780} 43703}
55781pattern createObject_EOperation_class_by_eOperations_reference_EClass_with_eContainingClass_reference_EOperation( 43704pattern createObject_Function_class_by_rootElements_reference_FunctionalArchitectureModel(
55782 problem:LogicProblem, interpretation:PartialInterpretation, 43705 problem:LogicProblem, interpretation:PartialInterpretation,
55783 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 43706 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
55784 container:DefinedElement) 43707 container:DefinedElement)
55785{ 43708{
55786 find interpretation(problem,interpretation); 43709 find interpretation(problem,interpretation);
55787 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 43710 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
55788 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EOperation class"); 43711 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class");
55789 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 43712 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
55790 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eOperations reference EClass"); 43713 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"rootElements reference FunctionalArchitectureModel");
55791 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 43714 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,container);
55792 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eContainingClass reference EOperation"); 43715 find mayInstanceOfFunction_class(problem,interpretation,newObject);
55793 find mustInstanceOfEClass_class(problem,interpretation,container); 43716 find mayInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,container,newObject);
55794 find mayInstanceOfEOperation_class(problem,interpretation,newObject);
55795 find mayInRelationeOperations_reference_EClass(problem,interpretation,container,newObject);
55796 find mustExist(problem, interpretation, container); 43717 find mustExist(problem, interpretation, container);
55797 neg find mustExist(problem, interpretation, newObject); 43718 neg find mustExist(problem, interpretation, newObject);
55798} 43719}
55799pattern createObject_EOperation_class( 43720pattern createObject_Function_class_by_subElements_reference_Function_with_parent_reference_FunctionalElement(
55800 problem:LogicProblem, interpretation:PartialInterpretation,
55801 typeInterpretation:PartialComplexTypeInterpretation)
55802{
55803 find interpretation(problem,interpretation);
55804 neg find hasElementInContainment(problem,interpretation);
55805 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
55806 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EOperation class");
55807 find mayInstanceOfEOperation_class(problem,interpretation,newObject);
55808 find mayExist(problem, interpretation, newObject);
55809 neg find mustExist(problem, interpretation, newObject);
55810}
55811pattern createObject_EReference_class_by_eStructuralFeatures_reference_EClass_with_eContainingClass_reference_EStructuralFeature(
55812 problem:LogicProblem, interpretation:PartialInterpretation, 43721 problem:LogicProblem, interpretation:PartialInterpretation,
55813 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 43722 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
55814 container:DefinedElement) 43723 container:DefinedElement)
55815{ 43724{
55816 find interpretation(problem,interpretation); 43725 find interpretation(problem,interpretation);
55817 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 43726 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
55818 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EReference class"); 43727 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class");
55819 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 43728 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
55820 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eStructuralFeatures reference EClass"); 43729 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"subElements reference Function");
55821 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 43730 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
55822 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eContainingClass reference EStructuralFeature"); 43731 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"parent reference FunctionalElement");
55823 find mustInstanceOfEClass_class(problem,interpretation,container); 43732 find mustInstanceOfFunction_class(problem,interpretation,container);
55824 find mayInstanceOfEReference_class(problem,interpretation,newObject); 43733 find mayInstanceOfFunction_class(problem,interpretation,newObject);
55825 find mayInRelationeStructuralFeatures_reference_EClass(problem,interpretation,container,newObject); 43734 find mayInRelationsubElements_reference_Function(problem,interpretation,container,newObject);
55826 find mustExist(problem, interpretation, container);
55827 neg find mustExist(problem, interpretation, newObject);
55828}
55829pattern createObject_EReference_class(
55830 problem:LogicProblem, interpretation:PartialInterpretation,
55831 typeInterpretation:PartialComplexTypeInterpretation)
55832{
55833 find interpretation(problem,interpretation);
55834 neg find hasElementInContainment(problem,interpretation);
55835 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
55836 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EReference class");
55837 find mayInstanceOfEReference_class(problem,interpretation,newObject);
55838 find mayExist(problem, interpretation, newObject);
55839 neg find mustExist(problem, interpretation, newObject);
55840}
55841pattern createObject_EObject_class_by_contents_reference_EAnnotation(
55842 problem:LogicProblem, interpretation:PartialInterpretation,
55843 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
55844 container:DefinedElement)
55845{
55846 find interpretation(problem,interpretation);
55847 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
55848 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EObject class");
55849 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
55850 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"contents reference EAnnotation");
55851 find mustInstanceOfEAnnotation_class(problem,interpretation,container);
55852 find mayInstanceOfEObject_class(problem,interpretation,newObject);
55853 find mayInRelationcontents_reference_EAnnotation(problem,interpretation,container,newObject);
55854 find mustExist(problem, interpretation, container); 43735 find mustExist(problem, interpretation, container);
55855 neg find mustExist(problem, interpretation, newObject); 43736 neg find mustExist(problem, interpretation, newObject);
55856} 43737}
55857pattern createObject_EObject_class( 43738pattern createObject_Function_class(
55858 problem:LogicProblem, interpretation:PartialInterpretation, 43739 problem:LogicProblem, interpretation:PartialInterpretation,
55859 typeInterpretation:PartialComplexTypeInterpretation) 43740 typeInterpretation:PartialComplexTypeInterpretation)
55860{ 43741{
55861 find interpretation(problem,interpretation); 43742 find interpretation(problem,interpretation);
55862 neg find hasElementInContainment(problem,interpretation); 43743 neg find hasElementInContainment(problem,interpretation);
55863 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 43744 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
55864 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EObject class"); 43745 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class");
55865 find mayInstanceOfEObject_class(problem,interpretation,newObject); 43746 find mayInstanceOfFunction_class(problem,interpretation,newObject);
55866 find mayExist(problem, interpretation, newObject); 43747 find mayExist(problem, interpretation, newObject);
55867 neg find mustExist(problem, interpretation, newObject); 43748 neg find mustExist(problem, interpretation, newObject);
55868} 43749}
55869pattern createObject_EEnumLiteral_class_by_eLiterals_reference_EEnum_with_eEnum_reference_EEnumLiteral( 43750pattern createObject_InformationLink_class_by_outgoingLinks_reference_FunctionalOutput_with_from_reference_InformationLink(
55870 problem:LogicProblem, interpretation:PartialInterpretation, 43751 problem:LogicProblem, interpretation:PartialInterpretation,
55871 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 43752 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
55872 container:DefinedElement) 43753 container:DefinedElement)
55873{ 43754{
55874 find interpretation(problem,interpretation); 43755 find interpretation(problem,interpretation);
55875 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 43756 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
55876 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EEnumLiteral class"); 43757 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class");
55877 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 43758 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
55878 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eLiterals reference EEnum"); 43759 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"outgoingLinks reference FunctionalOutput");
55879 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 43760 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
55880 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eEnum reference EEnumLiteral"); 43761 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"from reference InformationLink");
55881 find mustInstanceOfEEnum_class(problem,interpretation,container); 43762 find mustInstanceOfFunctionalOutput_class(problem,interpretation,container);
55882 find mayInstanceOfEEnumLiteral_class(problem,interpretation,newObject); 43763 find mayInstanceOfInformationLink_class(problem,interpretation,newObject);
55883 find mayInRelationeLiterals_reference_EEnum(problem,interpretation,container,newObject); 43764 find mayInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,container,newObject);
55884 find mustExist(problem, interpretation, container); 43765 find mustExist(problem, interpretation, container);
55885 neg find mustExist(problem, interpretation, newObject); 43766 neg find mustExist(problem, interpretation, newObject);
55886} 43767}
55887pattern createObject_EEnumLiteral_class( 43768pattern createObject_InformationLink_class(
55888 problem:LogicProblem, interpretation:PartialInterpretation, 43769 problem:LogicProblem, interpretation:PartialInterpretation,
55889 typeInterpretation:PartialComplexTypeInterpretation) 43770 typeInterpretation:PartialComplexTypeInterpretation)
55890{ 43771{
55891 find interpretation(problem,interpretation); 43772 find interpretation(problem,interpretation);
55892 neg find hasElementInContainment(problem,interpretation); 43773 neg find hasElementInContainment(problem,interpretation);
55893 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 43774 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
55894 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EEnumLiteral class"); 43775 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class");
55895 find mayInstanceOfEEnumLiteral_class(problem,interpretation,newObject); 43776 find mayInstanceOfInformationLink_class(problem,interpretation,newObject);
55896 find mayExist(problem, interpretation, newObject); 43777 find mayExist(problem, interpretation, newObject);
55897 neg find mustExist(problem, interpretation, newObject); 43778 neg find mustExist(problem, interpretation, newObject);
55898} 43779}
55899pattern createObject_EAttribute_class_by_eStructuralFeatures_reference_EClass_with_eContainingClass_reference_EStructuralFeature( 43780pattern createObject_FunctionalArchitectureModel_class(
55900 problem:LogicProblem, interpretation:PartialInterpretation,
55901 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
55902 container:DefinedElement)
55903{
55904 find interpretation(problem,interpretation);
55905 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
55906 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EAttribute class");
55907 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
55908 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eStructuralFeatures reference EClass");
55909 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
55910 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eContainingClass reference EStructuralFeature");
55911 find mustInstanceOfEClass_class(problem,interpretation,container);
55912 find mayInstanceOfEAttribute_class(problem,interpretation,newObject);
55913 find mayInRelationeStructuralFeatures_reference_EClass(problem,interpretation,container,newObject);
55914 find mustExist(problem, interpretation, container);
55915 neg find mustExist(problem, interpretation, newObject);
55916}
55917pattern createObject_EAttribute_class(
55918 problem:LogicProblem, interpretation:PartialInterpretation, 43781 problem:LogicProblem, interpretation:PartialInterpretation,
55919 typeInterpretation:PartialComplexTypeInterpretation) 43782 typeInterpretation:PartialComplexTypeInterpretation)
55920{ 43783{
55921 find interpretation(problem,interpretation); 43784 find interpretation(problem,interpretation);
55922 neg find hasElementInContainment(problem,interpretation); 43785 neg find hasElementInContainment(problem,interpretation);
55923 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 43786 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
55924 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EAttribute class"); 43787 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalArchitectureModel class");
55925 find mayInstanceOfEAttribute_class(problem,interpretation,newObject); 43788 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,newObject);
55926 find mayExist(problem, interpretation, newObject); 43789 find mayExist(problem, interpretation, newObject);
55927 neg find mustExist(problem, interpretation, newObject); 43790 neg find mustExist(problem, interpretation, newObject);
55928} 43791}
55929pattern createObject_EDataType_class_by_eClassifiers_reference_EPackage_with_ePackage_reference_EClassifier( 43792pattern createObject_FAMTerminator_class_by_terminator_reference_FunctionalData_with_data_reference_FAMTerminator(
55930 problem:LogicProblem, interpretation:PartialInterpretation, 43793 problem:LogicProblem, interpretation:PartialInterpretation,
55931 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 43794 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
55932 container:DefinedElement) 43795 container:DefinedElement)
55933{ 43796{
55934 find interpretation(problem,interpretation); 43797 find interpretation(problem,interpretation);
55935 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 43798 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
55936 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EDataType class"); 43799 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class");
55937 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 43800 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
55938 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eClassifiers reference EPackage"); 43801 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"terminator reference FunctionalData");
55939 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 43802 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
55940 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"ePackage reference EClassifier"); 43803 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"data reference FAMTerminator");
55941 find mustInstanceOfEPackage_class(problem,interpretation,container); 43804 find mustInstanceOfFunctionalData_class(problem,interpretation,container);
55942 find mayInstanceOfEDataType_class(problem,interpretation,newObject); 43805 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject);
55943 find mayInRelationeClassifiers_reference_EPackage(problem,interpretation,container,newObject); 43806 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,container,newObject);
55944 find mustExist(problem, interpretation, container);
55945 neg find mustExist(problem, interpretation, newObject);
55946}
55947pattern createObject_EDataType_class(
55948 problem:LogicProblem, interpretation:PartialInterpretation,
55949 typeInterpretation:PartialComplexTypeInterpretation)
55950{
55951 find interpretation(problem,interpretation);
55952 neg find hasElementInContainment(problem,interpretation);
55953 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
55954 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EDataType class");
55955 find mayInstanceOfEDataType_class(problem,interpretation,newObject);
55956 find mayExist(problem, interpretation, newObject);
55957 neg find mustExist(problem, interpretation, newObject);
55958}
55959pattern createObject_EGenericType_class_by_eGenericSuperTypes_reference_EClass(
55960 problem:LogicProblem, interpretation:PartialInterpretation,
55961 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
55962 container:DefinedElement)
55963{
55964 find interpretation(problem,interpretation);
55965 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
55966 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class");
55967 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
55968 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eGenericSuperTypes reference EClass");
55969 find mustInstanceOfEClass_class(problem,interpretation,container);
55970 find mayInstanceOfEGenericType_class(problem,interpretation,newObject);
55971 find mayInRelationeGenericSuperTypes_reference_EClass(problem,interpretation,container,newObject);
55972 find mustExist(problem, interpretation, container);
55973 neg find mustExist(problem, interpretation, newObject);
55974}
55975pattern createObject_EGenericType_class_by_eGenericExceptions_reference_EOperation(
55976 problem:LogicProblem, interpretation:PartialInterpretation,
55977 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
55978 container:DefinedElement)
55979{
55980 find interpretation(problem,interpretation);
55981 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
55982 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class");
55983 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
55984 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eGenericExceptions reference EOperation");
55985 find mustInstanceOfEOperation_class(problem,interpretation,container);
55986 find mayInstanceOfEGenericType_class(problem,interpretation,newObject);
55987 find mayInRelationeGenericExceptions_reference_EOperation(problem,interpretation,container,newObject);
55988 find mustExist(problem, interpretation, container);
55989 neg find mustExist(problem, interpretation, newObject);
55990}
55991pattern createObject_EGenericType_class_by_eGenericType_reference_ETypedElement(
55992 problem:LogicProblem, interpretation:PartialInterpretation,
55993 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
55994 container:DefinedElement)
55995{
55996 find interpretation(problem,interpretation);
55997 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
55998 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class");
55999 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
56000 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eGenericType reference ETypedElement");
56001 find mustInstanceOfETypedElement_class(problem,interpretation,container);
56002 find mayInstanceOfEGenericType_class(problem,interpretation,newObject);
56003 find mayInRelationeGenericType_reference_ETypedElement(problem,interpretation,container,newObject);
56004 find mustExist(problem, interpretation, container);
56005 neg find mustExist(problem, interpretation, newObject);
56006}
56007pattern createObject_EGenericType_class_by_eUpperBound_reference_EGenericType(
56008 problem:LogicProblem, interpretation:PartialInterpretation,
56009 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
56010 container:DefinedElement)
56011{
56012 find interpretation(problem,interpretation);
56013 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
56014 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class");
56015 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
56016 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eUpperBound reference EGenericType");
56017 find mustInstanceOfEGenericType_class(problem,interpretation,container);
56018 find mayInstanceOfEGenericType_class(problem,interpretation,newObject);
56019 find mayInRelationeUpperBound_reference_EGenericType(problem,interpretation,container,newObject);
56020 find mustExist(problem, interpretation, container);
56021 neg find mustExist(problem, interpretation, newObject);
56022}
56023pattern createObject_EGenericType_class_by_eTypeArguments_reference_EGenericType(
56024 problem:LogicProblem, interpretation:PartialInterpretation,
56025 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
56026 container:DefinedElement)
56027{
56028 find interpretation(problem,interpretation);
56029 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
56030 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class");
56031 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
56032 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eTypeArguments reference EGenericType");
56033 find mustInstanceOfEGenericType_class(problem,interpretation,container);
56034 find mayInstanceOfEGenericType_class(problem,interpretation,newObject);
56035 find mayInRelationeTypeArguments_reference_EGenericType(problem,interpretation,container,newObject);
56036 find mustExist(problem, interpretation, container);
56037 neg find mustExist(problem, interpretation, newObject);
56038}
56039pattern createObject_EGenericType_class_by_eLowerBound_reference_EGenericType(
56040 problem:LogicProblem, interpretation:PartialInterpretation,
56041 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
56042 container:DefinedElement)
56043{
56044 find interpretation(problem,interpretation);
56045 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
56046 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class");
56047 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
56048 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eLowerBound reference EGenericType");
56049 find mustInstanceOfEGenericType_class(problem,interpretation,container);
56050 find mayInstanceOfEGenericType_class(problem,interpretation,newObject);
56051 find mayInRelationeLowerBound_reference_EGenericType(problem,interpretation,container,newObject);
56052 find mustExist(problem, interpretation, container);
56053 neg find mustExist(problem, interpretation, newObject);
56054}
56055pattern createObject_EGenericType_class_by_eBounds_reference_ETypeParameter(
56056 problem:LogicProblem, interpretation:PartialInterpretation,
56057 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
56058 container:DefinedElement)
56059{
56060 find interpretation(problem,interpretation);
56061 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
56062 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class");
56063 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
56064 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eBounds reference ETypeParameter");
56065 find mustInstanceOfETypeParameter_class(problem,interpretation,container);
56066 find mayInstanceOfEGenericType_class(problem,interpretation,newObject);
56067 find mayInRelationeBounds_reference_ETypeParameter(problem,interpretation,container,newObject);
56068 find mustExist(problem, interpretation, container);
56069 neg find mustExist(problem, interpretation, newObject);
56070}
56071pattern createObject_EGenericType_class(
56072 problem:LogicProblem, interpretation:PartialInterpretation,
56073 typeInterpretation:PartialComplexTypeInterpretation)
56074{
56075 find interpretation(problem,interpretation);
56076 neg find hasElementInContainment(problem,interpretation);
56077 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
56078 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class");
56079 find mayInstanceOfEGenericType_class(problem,interpretation,newObject);
56080 find mayExist(problem, interpretation, newObject);
56081 neg find mustExist(problem, interpretation, newObject);
56082}
56083pattern createObject_EStringToStringMapEntry_class_by_details_reference_EAnnotation(
56084 problem:LogicProblem, interpretation:PartialInterpretation,
56085 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
56086 container:DefinedElement)
56087{
56088 find interpretation(problem,interpretation);
56089 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
56090 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EStringToStringMapEntry class");
56091 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
56092 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"details reference EAnnotation");
56093 find mustInstanceOfEAnnotation_class(problem,interpretation,container);
56094 find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,newObject);
56095 find mayInRelationdetails_reference_EAnnotation(problem,interpretation,container,newObject);
56096 find mustExist(problem, interpretation, container);
56097 neg find mustExist(problem, interpretation, newObject);
56098}
56099pattern createObject_EStringToStringMapEntry_class(
56100 problem:LogicProblem, interpretation:PartialInterpretation,
56101 typeInterpretation:PartialComplexTypeInterpretation)
56102{
56103 find interpretation(problem,interpretation);
56104 neg find hasElementInContainment(problem,interpretation);
56105 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
56106 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EStringToStringMapEntry class");
56107 find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,newObject);
56108 find mayExist(problem, interpretation, newObject);
56109 neg find mustExist(problem, interpretation, newObject);
56110}
56111pattern createObject_ETypeParameter_class_by_eTypeParameters_reference_EClassifier(
56112 problem:LogicProblem, interpretation:PartialInterpretation,
56113 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
56114 container:DefinedElement)
56115{
56116 find interpretation(problem,interpretation);
56117 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
56118 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"ETypeParameter class");
56119 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
56120 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eTypeParameters reference EClassifier");
56121 find mustInstanceOfEClassifier_class(problem,interpretation,container);
56122 find mayInstanceOfETypeParameter_class(problem,interpretation,newObject);
56123 find mayInRelationeTypeParameters_reference_EClassifier(problem,interpretation,container,newObject);
56124 find mustExist(problem, interpretation, container);
56125 neg find mustExist(problem, interpretation, newObject);
56126}
56127pattern createObject_ETypeParameter_class_by_eTypeParameters_reference_EOperation(
56128 problem:LogicProblem, interpretation:PartialInterpretation,
56129 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
56130 container:DefinedElement)
56131{
56132 find interpretation(problem,interpretation);
56133 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
56134 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"ETypeParameter class");
56135 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
56136 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eTypeParameters reference EOperation");
56137 find mustInstanceOfEOperation_class(problem,interpretation,container);
56138 find mayInstanceOfETypeParameter_class(problem,interpretation,newObject);
56139 find mayInRelationeTypeParameters_reference_EOperation(problem,interpretation,container,newObject);
56140 find mustExist(problem, interpretation, container); 43807 find mustExist(problem, interpretation, container);
56141 neg find mustExist(problem, interpretation, newObject); 43808 neg find mustExist(problem, interpretation, newObject);
56142} 43809}
56143pattern createObject_ETypeParameter_class( 43810pattern createObject_FAMTerminator_class(
56144 problem:LogicProblem, interpretation:PartialInterpretation, 43811 problem:LogicProblem, interpretation:PartialInterpretation,
56145 typeInterpretation:PartialComplexTypeInterpretation) 43812 typeInterpretation:PartialComplexTypeInterpretation)
56146{ 43813{
56147 find interpretation(problem,interpretation); 43814 find interpretation(problem,interpretation);
56148 neg find hasElementInContainment(problem,interpretation); 43815 neg find hasElementInContainment(problem,interpretation);
56149 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 43816 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
56150 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"ETypeParameter class"); 43817 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class");
56151 find mayInstanceOfETypeParameter_class(problem,interpretation,newObject); 43818 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject);
56152 find mayExist(problem, interpretation, newObject); 43819 find mayExist(problem, interpretation, newObject);
56153 neg find mustExist(problem, interpretation, newObject); 43820 neg find mustExist(problem, interpretation, newObject);
56154} 43821}
@@ -56156,950 +43823,135 @@ pattern createObject_ETypeParameter_class(
56156////////// 43823//////////
56157// 4.2 Type refinement 43824// 4.2 Type refinement
56158////////// 43825//////////
56159pattern refineTypeTo_EAnnotation_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 43826pattern refineTypeTo_FunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
56160 find interpretation(problem,interpretation);
56161 PartialInterpretation.newElements(interpretation,element);
56162 find mayInstanceOfEAnnotation_class(problem,interpretation,element);
56163 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
56164 neg find mustInstanceOfENamedElement_class(problem,interpretation,element);
56165 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
56166 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
56167 neg find mustInstanceOfEObject_class(problem,interpretation,element);
56168}
56169pattern refineTypeTo_EEnum_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
56170 find interpretation(problem,interpretation);
56171 PartialInterpretation.newElements(interpretation,element);
56172 find mayInstanceOfEEnum_class(problem,interpretation,element);
56173 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
56174 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
56175 neg find mustInstanceOfEEnum_class(problem,interpretation,element);
56176 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
56177 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
56178 neg find mustInstanceOfEClass_class(problem,interpretation,element);
56179 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
56180 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
56181 neg find mustInstanceOfEObject_class(problem,interpretation,element);
56182 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
56183}
56184pattern refineTypeTo_EParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
56185 find interpretation(problem,interpretation);
56186 PartialInterpretation.newElements(interpretation,element);
56187 find mayInstanceOfEParameter_class(problem,interpretation,element);
56188 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
56189 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
56190 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
56191 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
56192 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
56193 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
56194 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
56195 neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element);
56196 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
56197 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
56198 neg find mustInstanceOfEObject_class(problem,interpretation,element);
56199}
56200pattern refineTypeTo_EPackage_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
56201 find interpretation(problem,interpretation);
56202 PartialInterpretation.newElements(interpretation,element);
56203 find mayInstanceOfEPackage_class_UndefinedPart(problem,interpretation,element);
56204 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
56205 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
56206 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
56207 neg find mustInstanceOfEPackage_class_UndefinedPart(problem,interpretation,element);
56208 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
56209 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
56210 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
56211 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
56212 neg find mustInstanceOfEObject_class(problem,interpretation,element);
56213}
56214pattern refineTypeTo_EClass_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
56215 find interpretation(problem,interpretation);
56216 PartialInterpretation.newElements(interpretation,element);
56217 find mayInstanceOfEClass_class(problem,interpretation,element);
56218 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
56219 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
56220 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
56221 neg find mustInstanceOfEDataType_class(problem,interpretation,element);
56222 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
56223 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
56224 neg find mustInstanceOfEClass_class(problem,interpretation,element);
56225 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
56226 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
56227 neg find mustInstanceOfEObject_class(problem,interpretation,element);
56228}
56229pattern refineTypeTo_EOperation_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
56230 find interpretation(problem,interpretation);
56231 PartialInterpretation.newElements(interpretation,element);
56232 find mayInstanceOfEOperation_class(problem,interpretation,element);
56233 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
56234 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
56235 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
56236 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
56237 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
56238 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
56239 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
56240 neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element);
56241 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
56242 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
56243 neg find mustInstanceOfEObject_class(problem,interpretation,element);
56244}
56245pattern refineTypeTo_EReference_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
56246 find interpretation(problem,interpretation);
56247 PartialInterpretation.newElements(interpretation,element);
56248 find mayInstanceOfEReference_class(problem,interpretation,element);
56249 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
56250 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
56251 neg find mustInstanceOfEAttribute_class(problem,interpretation,element);
56252 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
56253 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
56254 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
56255 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
56256 neg find mustInstanceOfEReference_class(problem,interpretation,element);
56257 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
56258 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
56259 neg find mustInstanceOfEObject_class(problem,interpretation,element);
56260 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
56261}
56262pattern refineTypeTo_EObject_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
56263 find interpretation(problem,interpretation);
56264 PartialInterpretation.newElements(interpretation,element);
56265 find mayInstanceOfEObject_class(problem,interpretation,element);
56266 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
56267 neg find mustInstanceOfEModelElement_class(problem,interpretation,element);
56268 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
56269 neg find mustInstanceOfEObject_class(problem,interpretation,element);
56270}
56271pattern refineTypeTo_EEnumLiteral_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
56272 find interpretation(problem,interpretation);
56273 PartialInterpretation.newElements(interpretation,element);
56274 find mayInstanceOfEEnumLiteral_class(problem,interpretation,element);
56275 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
56276 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
56277 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
56278 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
56279 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
56280 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
56281 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
56282 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
56283 neg find mustInstanceOfEObject_class(problem,interpretation,element);
56284}
56285pattern refineTypeTo_EAttribute_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
56286 find interpretation(problem,interpretation);
56287 PartialInterpretation.newElements(interpretation,element);
56288 find mayInstanceOfEAttribute_class(problem,interpretation,element);
56289 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
56290 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
56291 neg find mustInstanceOfEAttribute_class(problem,interpretation,element);
56292 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
56293 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
56294 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
56295 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
56296 neg find mustInstanceOfEReference_class(problem,interpretation,element);
56297 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
56298 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
56299 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
56300 neg find mustInstanceOfEObject_class(problem,interpretation,element);
56301}
56302pattern refineTypeTo_EDataType_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
56303 find interpretation(problem,interpretation);
56304 PartialInterpretation.newElements(interpretation,element);
56305 find mayInstanceOfEDataType_class(problem,interpretation,element);
56306 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
56307 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
56308 neg find mustInstanceOfEDataType_class(problem,interpretation,element);
56309 neg find mustInstanceOfEEnum_class(problem,interpretation,element);
56310 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
56311 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
56312 neg find mustInstanceOfEClass_class(problem,interpretation,element);
56313 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
56314 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
56315 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
56316 neg find mustInstanceOfEObject_class(problem,interpretation,element);
56317}
56318pattern refineTypeTo_EGenericType_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
56319 find interpretation(problem,interpretation);
56320 PartialInterpretation.newElements(interpretation,element);
56321 find mayInstanceOfEGenericType_class(problem,interpretation,element);
56322 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
56323 neg find mustInstanceOfEModelElement_class(problem,interpretation,element);
56324 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
56325 neg find mustInstanceOfEObject_class(problem,interpretation,element);
56326}
56327pattern refineTypeTo_EStringToStringMapEntry_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
56328 find interpretation(problem,interpretation);
56329 PartialInterpretation.newElements(interpretation,element);
56330 find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
56331 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
56332 neg find mustInstanceOfEModelElement_class(problem,interpretation,element);
56333 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
56334 neg find mustInstanceOfEObject_class(problem,interpretation,element);
56335}
56336pattern refineTypeTo_ETypeParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
56337 find interpretation(problem,interpretation);
56338 PartialInterpretation.newElements(interpretation,element);
56339 find mayInstanceOfETypeParameter_class(problem,interpretation,element);
56340 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
56341 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
56342 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
56343 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
56344 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
56345 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
56346 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
56347 neg find mustInstanceOfEObject_class(problem,interpretation,element);
56348 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
56349}
56350
56351//////////
56352// 4.3 Relation refinement
56353//////////
56354pattern refineRelation_eAttributeType_reference_EAttribute(
56355 problem:LogicProblem, interpretation:PartialInterpretation,
56356 relationIterpretation:PartialRelationInterpretation,
56357 from: DefinedElement, to: DefinedElement)
56358{
56359 find interpretation(problem,interpretation);
56360 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
56361 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAttributeType reference EAttribute");
56362 find mustExist(problem, interpretation, from);
56363 find mustExist(problem, interpretation, to);
56364 find mustInstanceOfEAttribute_class(problem,interpretation,from);
56365 find mustInstanceOfEDataType_class(problem,interpretation,to);
56366 find mayInRelationeAttributeType_reference_EAttribute(problem,interpretation,from,to);
56367 neg find mustInRelationeAttributeType_reference_EAttribute(problem,interpretation,from,to);
56368}
56369pattern refineRelation_references_reference_EAnnotation(
56370 problem:LogicProblem, interpretation:PartialInterpretation,
56371 relationIterpretation:PartialRelationInterpretation,
56372 from: DefinedElement, to: DefinedElement)
56373{
56374 find interpretation(problem,interpretation);
56375 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
56376 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"references reference EAnnotation");
56377 find mustExist(problem, interpretation, from);
56378 find mustExist(problem, interpretation, to);
56379 find mustInstanceOfEAnnotation_class(problem,interpretation,from);
56380 find mustInstanceOfEObject_class(problem,interpretation,to);
56381 find mayInRelationreferences_reference_EAnnotation(problem,interpretation,from,to);
56382 neg find mustInRelationreferences_reference_EAnnotation(problem,interpretation,from,to);
56383}
56384pattern refineRelation_eSuperTypes_reference_EClass(
56385 problem:LogicProblem, interpretation:PartialInterpretation,
56386 relationIterpretation:PartialRelationInterpretation,
56387 from: DefinedElement, to: DefinedElement)
56388{
56389 find interpretation(problem,interpretation);
56390 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
56391 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eSuperTypes reference EClass");
56392 find mustExist(problem, interpretation, from);
56393 find mustExist(problem, interpretation, to);
56394 find mustInstanceOfEClass_class(problem,interpretation,from);
56395 find mustInstanceOfEClass_class(problem,interpretation,to);
56396 find mayInRelationeSuperTypes_reference_EClass(problem,interpretation,from,to);
56397 neg find mustInRelationeSuperTypes_reference_EClass(problem,interpretation,from,to);
56398}
56399pattern refineRelation_eAllAttributes_reference_EClass(
56400 problem:LogicProblem, interpretation:PartialInterpretation,
56401 relationIterpretation:PartialRelationInterpretation,
56402 from: DefinedElement, to: DefinedElement)
56403{
56404 find interpretation(problem,interpretation);
56405 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
56406 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllAttributes reference EClass");
56407 find mustExist(problem, interpretation, from);
56408 find mustExist(problem, interpretation, to);
56409 find mustInstanceOfEClass_class(problem,interpretation,from);
56410 find mustInstanceOfEAttribute_class(problem,interpretation,to);
56411 find mayInRelationeAllAttributes_reference_EClass(problem,interpretation,from,to);
56412 neg find mustInRelationeAllAttributes_reference_EClass(problem,interpretation,from,to);
56413}
56414pattern refineRelation_eAllReferences_reference_EClass(
56415 problem:LogicProblem, interpretation:PartialInterpretation,
56416 relationIterpretation:PartialRelationInterpretation,
56417 from: DefinedElement, to: DefinedElement)
56418{
56419 find interpretation(problem,interpretation);
56420 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
56421 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllReferences reference EClass");
56422 find mustExist(problem, interpretation, from);
56423 find mustExist(problem, interpretation, to);
56424 find mustInstanceOfEClass_class(problem,interpretation,from);
56425 find mustInstanceOfEReference_class(problem,interpretation,to);
56426 find mayInRelationeAllReferences_reference_EClass(problem,interpretation,from,to);
56427 neg find mustInRelationeAllReferences_reference_EClass(problem,interpretation,from,to);
56428}
56429pattern refineRelation_eReferences_reference_EClass(
56430 problem:LogicProblem, interpretation:PartialInterpretation,
56431 relationIterpretation:PartialRelationInterpretation,
56432 from: DefinedElement, to: DefinedElement)
56433{
56434 find interpretation(problem,interpretation);
56435 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
56436 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eReferences reference EClass");
56437 find mustExist(problem, interpretation, from);
56438 find mustExist(problem, interpretation, to);
56439 find mustInstanceOfEClass_class(problem,interpretation,from);
56440 find mustInstanceOfEReference_class(problem,interpretation,to);
56441 find mayInRelationeReferences_reference_EClass(problem,interpretation,from,to);
56442 neg find mustInRelationeReferences_reference_EClass(problem,interpretation,from,to);
56443}
56444pattern refineRelation_eAttributes_reference_EClass(
56445 problem:LogicProblem, interpretation:PartialInterpretation,
56446 relationIterpretation:PartialRelationInterpretation,
56447 from: DefinedElement, to: DefinedElement)
56448{
56449 find interpretation(problem,interpretation);
56450 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
56451 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAttributes reference EClass");
56452 find mustExist(problem, interpretation, from);
56453 find mustExist(problem, interpretation, to);
56454 find mustInstanceOfEClass_class(problem,interpretation,from);
56455 find mustInstanceOfEAttribute_class(problem,interpretation,to);
56456 find mayInRelationeAttributes_reference_EClass(problem,interpretation,from,to);
56457 neg find mustInRelationeAttributes_reference_EClass(problem,interpretation,from,to);
56458}
56459pattern refineRelation_eAllContainments_reference_EClass(
56460 problem:LogicProblem, interpretation:PartialInterpretation,
56461 relationIterpretation:PartialRelationInterpretation,
56462 from: DefinedElement, to: DefinedElement)
56463{
56464 find interpretation(problem,interpretation);
56465 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
56466 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllContainments reference EClass");
56467 find mustExist(problem, interpretation, from);
56468 find mustExist(problem, interpretation, to);
56469 find mustInstanceOfEClass_class(problem,interpretation,from);
56470 find mustInstanceOfEReference_class(problem,interpretation,to);
56471 find mayInRelationeAllContainments_reference_EClass(problem,interpretation,from,to);
56472 neg find mustInRelationeAllContainments_reference_EClass(problem,interpretation,from,to);
56473}
56474pattern refineRelation_eAllOperations_reference_EClass(
56475 problem:LogicProblem, interpretation:PartialInterpretation,
56476 relationIterpretation:PartialRelationInterpretation,
56477 from: DefinedElement, to: DefinedElement)
56478{
56479 find interpretation(problem,interpretation);
56480 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
56481 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllOperations reference EClass");
56482 find mustExist(problem, interpretation, from);
56483 find mustExist(problem, interpretation, to);
56484 find mustInstanceOfEClass_class(problem,interpretation,from);
56485 find mustInstanceOfEOperation_class(problem,interpretation,to);
56486 find mayInRelationeAllOperations_reference_EClass(problem,interpretation,from,to);
56487 neg find mustInRelationeAllOperations_reference_EClass(problem,interpretation,from,to);
56488}
56489pattern refineRelation_eAllStructuralFeatures_reference_EClass(
56490 problem:LogicProblem, interpretation:PartialInterpretation,
56491 relationIterpretation:PartialRelationInterpretation,
56492 from: DefinedElement, to: DefinedElement)
56493{
56494 find interpretation(problem,interpretation);
56495 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
56496 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllStructuralFeatures reference EClass");
56497 find mustExist(problem, interpretation, from);
56498 find mustExist(problem, interpretation, to);
56499 find mustInstanceOfEClass_class(problem,interpretation,from);
56500 find mustInstanceOfEStructuralFeature_class(problem,interpretation,to);
56501 find mayInRelationeAllStructuralFeatures_reference_EClass(problem,interpretation,from,to);
56502 neg find mustInRelationeAllStructuralFeatures_reference_EClass(problem,interpretation,from,to);
56503}
56504pattern refineRelation_eAllSuperTypes_reference_EClass(
56505 problem:LogicProblem, interpretation:PartialInterpretation,
56506 relationIterpretation:PartialRelationInterpretation,
56507 from: DefinedElement, to: DefinedElement)
56508{
56509 find interpretation(problem,interpretation);
56510 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
56511 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllSuperTypes reference EClass");
56512 find mustExist(problem, interpretation, from);
56513 find mustExist(problem, interpretation, to);
56514 find mustInstanceOfEClass_class(problem,interpretation,from);
56515 find mustInstanceOfEClass_class(problem,interpretation,to);
56516 find mayInRelationeAllSuperTypes_reference_EClass(problem,interpretation,from,to);
56517 neg find mustInRelationeAllSuperTypes_reference_EClass(problem,interpretation,from,to);
56518}
56519pattern refineRelation_eIDAttribute_reference_EClass(
56520 problem:LogicProblem, interpretation:PartialInterpretation,
56521 relationIterpretation:PartialRelationInterpretation,
56522 from: DefinedElement, to: DefinedElement)
56523{
56524 find interpretation(problem,interpretation);
56525 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
56526 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eIDAttribute reference EClass");
56527 find mustExist(problem, interpretation, from);
56528 find mustExist(problem, interpretation, to);
56529 find mustInstanceOfEClass_class(problem,interpretation,from);
56530 find mustInstanceOfEAttribute_class(problem,interpretation,to);
56531 find mayInRelationeIDAttribute_reference_EClass(problem,interpretation,from,to);
56532 neg find mustInRelationeIDAttribute_reference_EClass(problem,interpretation,from,to);
56533}
56534pattern refineRelation_eAllGenericSuperTypes_reference_EClass(
56535 problem:LogicProblem, interpretation:PartialInterpretation,
56536 relationIterpretation:PartialRelationInterpretation,
56537 from: DefinedElement, to: DefinedElement)
56538{
56539 find interpretation(problem,interpretation);
56540 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
56541 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllGenericSuperTypes reference EClass");
56542 find mustExist(problem, interpretation, from);
56543 find mustExist(problem, interpretation, to);
56544 find mustInstanceOfEClass_class(problem,interpretation,from);
56545 find mustInstanceOfEGenericType_class(problem,interpretation,to);
56546 find mayInRelationeAllGenericSuperTypes_reference_EClass(problem,interpretation,from,to);
56547 neg find mustInRelationeAllGenericSuperTypes_reference_EClass(problem,interpretation,from,to);
56548}
56549pattern refineRelation_eExceptions_reference_EOperation(
56550 problem:LogicProblem, interpretation:PartialInterpretation,
56551 relationIterpretation:PartialRelationInterpretation,
56552 from: DefinedElement, to: DefinedElement)
56553{
56554 find interpretation(problem,interpretation);
56555 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
56556 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eExceptions reference EOperation");
56557 find mustExist(problem, interpretation, from);
56558 find mustExist(problem, interpretation, to);
56559 find mustInstanceOfEOperation_class(problem,interpretation,from);
56560 find mustInstanceOfEClassifier_class(problem,interpretation,to);
56561 find mayInRelationeExceptions_reference_EOperation(problem,interpretation,from,to);
56562 neg find mustInRelationeExceptions_reference_EOperation(problem,interpretation,from,to);
56563}
56564pattern refineRelation_eOpposite_reference_EReference(
56565 problem:LogicProblem, interpretation:PartialInterpretation,
56566 relationIterpretation:PartialRelationInterpretation,
56567 from: DefinedElement, to: DefinedElement)
56568{
56569 find interpretation(problem,interpretation);
56570 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
56571 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eOpposite reference EReference");
56572 find mustExist(problem, interpretation, from);
56573 find mustExist(problem, interpretation, to);
56574 find mustInstanceOfEReference_class(problem,interpretation,from);
56575 find mustInstanceOfEReference_class(problem,interpretation,to);
56576 find mayInRelationeOpposite_reference_EReference(problem,interpretation,from,to);
56577 neg find mustInRelationeOpposite_reference_EReference(problem,interpretation,from,to);
56578}
56579pattern refineRelation_eReferenceType_reference_EReference(
56580 problem:LogicProblem, interpretation:PartialInterpretation,
56581 relationIterpretation:PartialRelationInterpretation,
56582 from: DefinedElement, to: DefinedElement)
56583{
56584 find interpretation(problem,interpretation);
56585 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
56586 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eReferenceType reference EReference");
56587 find mustExist(problem, interpretation, from);
56588 find mustExist(problem, interpretation, to);
56589 find mustInstanceOfEReference_class(problem,interpretation,from);
56590 find mustInstanceOfEClass_class(problem,interpretation,to);
56591 find mayInRelationeReferenceType_reference_EReference(problem,interpretation,from,to);
56592 neg find mustInRelationeReferenceType_reference_EReference(problem,interpretation,from,to);
56593}
56594pattern refineRelation_eKeys_reference_EReference(
56595 problem:LogicProblem, interpretation:PartialInterpretation,
56596 relationIterpretation:PartialRelationInterpretation,
56597 from: DefinedElement, to: DefinedElement)
56598{
56599 find interpretation(problem,interpretation);
56600 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
56601 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eKeys reference EReference");
56602 find mustExist(problem, interpretation, from);
56603 find mustExist(problem, interpretation, to);
56604 find mustInstanceOfEReference_class(problem,interpretation,from);
56605 find mustInstanceOfEAttribute_class(problem,interpretation,to);
56606 find mayInRelationeKeys_reference_EReference(problem,interpretation,from,to);
56607 neg find mustInRelationeKeys_reference_EReference(problem,interpretation,from,to);
56608}
56609pattern refineRelation_eType_reference_ETypedElement(
56610 problem:LogicProblem, interpretation:PartialInterpretation,
56611 relationIterpretation:PartialRelationInterpretation,
56612 from: DefinedElement, to: DefinedElement)
56613{
56614 find interpretation(problem,interpretation);
56615 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
56616 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eType reference ETypedElement");
56617 find mustExist(problem, interpretation, from);
56618 find mustExist(problem, interpretation, to);
56619 find mustInstanceOfETypedElement_class(problem,interpretation,from);
56620 find mustInstanceOfEClassifier_class(problem,interpretation,to);
56621 find mayInRelationeType_reference_ETypedElement(problem,interpretation,from,to);
56622 neg find mustInRelationeType_reference_ETypedElement(problem,interpretation,from,to);
56623}
56624pattern refineRelation_eRawType_reference_EGenericType(
56625 problem:LogicProblem, interpretation:PartialInterpretation,
56626 relationIterpretation:PartialRelationInterpretation,
56627 from: DefinedElement, to: DefinedElement)
56628{
56629 find interpretation(problem,interpretation);
56630 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
56631 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eRawType reference EGenericType");
56632 find mustExist(problem, interpretation, from);
56633 find mustExist(problem, interpretation, to);
56634 find mustInstanceOfEGenericType_class(problem,interpretation,from);
56635 find mustInstanceOfEClassifier_class(problem,interpretation,to);
56636 find mayInRelationeRawType_reference_EGenericType(problem,interpretation,from,to);
56637 neg find mustInRelationeRawType_reference_EGenericType(problem,interpretation,from,to);
56638}
56639pattern refineRelation_eTypeParameter_reference_EGenericType(
56640 problem:LogicProblem, interpretation:PartialInterpretation,
56641 relationIterpretation:PartialRelationInterpretation,
56642 from: DefinedElement, to: DefinedElement)
56643{
56644 find interpretation(problem,interpretation);
56645 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
56646 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eTypeParameter reference EGenericType");
56647 find mustExist(problem, interpretation, from);
56648 find mustExist(problem, interpretation, to);
56649 find mustInstanceOfEGenericType_class(problem,interpretation,from);
56650 find mustInstanceOfETypeParameter_class(problem,interpretation,to);
56651 find mayInRelationeTypeParameter_reference_EGenericType(problem,interpretation,from,to);
56652 neg find mustInRelationeTypeParameter_reference_EGenericType(problem,interpretation,from,to);
56653}
56654pattern refineRelation_eClassifier_reference_EGenericType(
56655 problem:LogicProblem, interpretation:PartialInterpretation,
56656 relationIterpretation:PartialRelationInterpretation,
56657 from: DefinedElement, to: DefinedElement)
56658{
56659 find interpretation(problem,interpretation);
56660 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
56661 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eClassifier reference EGenericType");
56662 find mustExist(problem, interpretation, from);
56663 find mustExist(problem, interpretation, to);
56664 find mustInstanceOfEGenericType_class(problem,interpretation,from);
56665 find mustInstanceOfEClassifier_class(problem,interpretation,to);
56666 find mayInRelationeClassifier_reference_EGenericType(problem,interpretation,from,to);
56667 neg find mustInRelationeClassifier_reference_EGenericType(problem,interpretation,from,to);
56668}
56669pattern refineRelation_iD_attribute_EAttribute(
56670 problem:LogicProblem, interpretation:PartialInterpretation,
56671 relationIterpretation:PartialRelationInterpretation,
56672 from: DefinedElement, to: DefinedElement)
56673{
56674 find interpretation(problem,interpretation);
56675 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
56676 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"iD attribute EAttribute");
56677 find mustExist(problem, interpretation, from);
56678 find mustExist(problem, interpretation, to);
56679 find mustInstanceOfEAttribute_class(problem,interpretation,from);
56680 BooleanElement(to);
56681 find mayInRelationiD_attribute_EAttribute(problem,interpretation,from,to);
56682 neg find mustInRelationiD_attribute_EAttribute(problem,interpretation,from,to);
56683}
56684pattern refineRelation_source_attribute_EAnnotation(
56685 problem:LogicProblem, interpretation:PartialInterpretation,
56686 relationIterpretation:PartialRelationInterpretation,
56687 from: DefinedElement, to: DefinedElement)
56688{
56689 find interpretation(problem,interpretation);
56690 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
56691 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"source attribute EAnnotation");
56692 find mustExist(problem, interpretation, from);
56693 find mustExist(problem, interpretation, to);
56694 find mustInstanceOfEAnnotation_class(problem,interpretation,from);
56695 StringElement(to);
56696 find mayInRelationsource_attribute_EAnnotation(problem,interpretation,from,to);
56697 neg find mustInRelationsource_attribute_EAnnotation(problem,interpretation,from,to);
56698}
56699pattern refineRelation_abstract_attribute_EClass(
56700 problem:LogicProblem, interpretation:PartialInterpretation,
56701 relationIterpretation:PartialRelationInterpretation,
56702 from: DefinedElement, to: DefinedElement)
56703{
56704 find interpretation(problem,interpretation);
56705 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
56706 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"abstract attribute EClass");
56707 find mustExist(problem, interpretation, from);
56708 find mustExist(problem, interpretation, to);
56709 find mustInstanceOfEClass_class(problem,interpretation,from);
56710 BooleanElement(to);
56711 find mayInRelationabstract_attribute_EClass(problem,interpretation,from,to);
56712 neg find mustInRelationabstract_attribute_EClass(problem,interpretation,from,to);
56713}
56714pattern refineRelation_interface_attribute_EClass(
56715 problem:LogicProblem, interpretation:PartialInterpretation,
56716 relationIterpretation:PartialRelationInterpretation,
56717 from: DefinedElement, to: DefinedElement)
56718{
56719 find interpretation(problem,interpretation);
56720 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
56721 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"interface attribute EClass");
56722 find mustExist(problem, interpretation, from);
56723 find mustExist(problem, interpretation, to);
56724 find mustInstanceOfEClass_class(problem,interpretation,from);
56725 BooleanElement(to);
56726 find mayInRelationinterface_attribute_EClass(problem,interpretation,from,to);
56727 neg find mustInRelationinterface_attribute_EClass(problem,interpretation,from,to);
56728}
56729pattern refineRelation_instanceClassName_attribute_EClassifier(
56730 problem:LogicProblem, interpretation:PartialInterpretation,
56731 relationIterpretation:PartialRelationInterpretation,
56732 from: DefinedElement, to: DefinedElement)
56733{
56734 find interpretation(problem,interpretation);
56735 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
56736 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"instanceClassName attribute EClassifier");
56737 find mustExist(problem, interpretation, from);
56738 find mustExist(problem, interpretation, to);
56739 find mustInstanceOfEClassifier_class(problem,interpretation,from);
56740 StringElement(to);
56741 find mayInRelationinstanceClassName_attribute_EClassifier(problem,interpretation,from,to);
56742 neg find mustInRelationinstanceClassName_attribute_EClassifier(problem,interpretation,from,to);
56743}
56744pattern refineRelation_instanceTypeName_attribute_EClassifier(
56745 problem:LogicProblem, interpretation:PartialInterpretation,
56746 relationIterpretation:PartialRelationInterpretation,
56747 from: DefinedElement, to: DefinedElement)
56748{
56749 find interpretation(problem,interpretation);
56750 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
56751 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"instanceTypeName attribute EClassifier");
56752 find mustExist(problem, interpretation, from);
56753 find mustExist(problem, interpretation, to);
56754 find mustInstanceOfEClassifier_class(problem,interpretation,from);
56755 StringElement(to);
56756 find mayInRelationinstanceTypeName_attribute_EClassifier(problem,interpretation,from,to);
56757 neg find mustInRelationinstanceTypeName_attribute_EClassifier(problem,interpretation,from,to);
56758}
56759pattern refineRelation_serializable_attribute_EDataType(
56760 problem:LogicProblem, interpretation:PartialInterpretation,
56761 relationIterpretation:PartialRelationInterpretation,
56762 from: DefinedElement, to: DefinedElement)
56763{
56764 find interpretation(problem,interpretation);
56765 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
56766 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"serializable attribute EDataType");
56767 find mustExist(problem, interpretation, from);
56768 find mustExist(problem, interpretation, to);
56769 find mustInstanceOfEDataType_class(problem,interpretation,from);
56770 BooleanElement(to);
56771 find mayInRelationserializable_attribute_EDataType(problem,interpretation,from,to);
56772 neg find mustInRelationserializable_attribute_EDataType(problem,interpretation,from,to);
56773}
56774pattern refineRelation_value_attribute_EEnumLiteral(
56775 problem:LogicProblem, interpretation:PartialInterpretation,
56776 relationIterpretation:PartialRelationInterpretation,
56777 from: DefinedElement, to: DefinedElement)
56778{
56779 find interpretation(problem,interpretation);
56780 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
56781 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"value attribute EEnumLiteral");
56782 find mustExist(problem, interpretation, from);
56783 find mustExist(problem, interpretation, to);
56784 find mustInstanceOfEEnumLiteral_class(problem,interpretation,from);
56785 IntegerElement(to);
56786 find mayInRelationvalue_attribute_EEnumLiteral(problem,interpretation,from,to);
56787 neg find mustInRelationvalue_attribute_EEnumLiteral(problem,interpretation,from,to);
56788}
56789pattern refineRelation_literal_attribute_EEnumLiteral(
56790 problem:LogicProblem, interpretation:PartialInterpretation,
56791 relationIterpretation:PartialRelationInterpretation,
56792 from: DefinedElement, to: DefinedElement)
56793{
56794 find interpretation(problem,interpretation);
56795 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
56796 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"literal attribute EEnumLiteral");
56797 find mustExist(problem, interpretation, from);
56798 find mustExist(problem, interpretation, to);
56799 find mustInstanceOfEEnumLiteral_class(problem,interpretation,from);
56800 StringElement(to);
56801 find mayInRelationliteral_attribute_EEnumLiteral(problem,interpretation,from,to);
56802 neg find mustInRelationliteral_attribute_EEnumLiteral(problem,interpretation,from,to);
56803}
56804pattern refineRelation_name_attribute_ENamedElement(
56805 problem:LogicProblem, interpretation:PartialInterpretation,
56806 relationIterpretation:PartialRelationInterpretation,
56807 from: DefinedElement, to: DefinedElement)
56808{
56809 find interpretation(problem,interpretation);
56810 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
56811 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"name attribute ENamedElement");
56812 find mustExist(problem, interpretation, from);
56813 find mustExist(problem, interpretation, to);
56814 find mustInstanceOfENamedElement_class(problem,interpretation,from);
56815 StringElement(to);
56816 find mayInRelationname_attribute_ENamedElement(problem,interpretation,from,to);
56817 neg find mustInRelationname_attribute_ENamedElement(problem,interpretation,from,to);
56818}
56819pattern refineRelation_nsURI_attribute_EPackage(
56820 problem:LogicProblem, interpretation:PartialInterpretation,
56821 relationIterpretation:PartialRelationInterpretation,
56822 from: DefinedElement, to: DefinedElement)
56823{
56824 find interpretation(problem,interpretation);
56825 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
56826 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"nsURI attribute EPackage");
56827 find mustExist(problem, interpretation, from);
56828 find mustExist(problem, interpretation, to);
56829 find mustInstanceOfEPackage_class(problem,interpretation,from);
56830 StringElement(to);
56831 find mayInRelationnsURI_attribute_EPackage(problem,interpretation,from,to);
56832 neg find mustInRelationnsURI_attribute_EPackage(problem,interpretation,from,to);
56833}
56834pattern refineRelation_nsPrefix_attribute_EPackage(
56835 problem:LogicProblem, interpretation:PartialInterpretation,
56836 relationIterpretation:PartialRelationInterpretation,
56837 from: DefinedElement, to: DefinedElement)
56838{
56839 find interpretation(problem,interpretation);
56840 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
56841 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"nsPrefix attribute EPackage");
56842 find mustExist(problem, interpretation, from);
56843 find mustExist(problem, interpretation, to);
56844 find mustInstanceOfEPackage_class(problem,interpretation,from);
56845 StringElement(to);
56846 find mayInRelationnsPrefix_attribute_EPackage(problem,interpretation,from,to);
56847 neg find mustInRelationnsPrefix_attribute_EPackage(problem,interpretation,from,to);
56848}
56849pattern refineRelation_containment_attribute_EReference(
56850 problem:LogicProblem, interpretation:PartialInterpretation,
56851 relationIterpretation:PartialRelationInterpretation,
56852 from: DefinedElement, to: DefinedElement)
56853{
56854 find interpretation(problem,interpretation);
56855 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
56856 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"containment attribute EReference");
56857 find mustExist(problem, interpretation, from);
56858 find mustExist(problem, interpretation, to);
56859 find mustInstanceOfEReference_class(problem,interpretation,from);
56860 BooleanElement(to);
56861 find mayInRelationcontainment_attribute_EReference(problem,interpretation,from,to);
56862 neg find mustInRelationcontainment_attribute_EReference(problem,interpretation,from,to);
56863}
56864pattern refineRelation_container_attribute_EReference(
56865 problem:LogicProblem, interpretation:PartialInterpretation,
56866 relationIterpretation:PartialRelationInterpretation,
56867 from: DefinedElement, to: DefinedElement)
56868{
56869 find interpretation(problem,interpretation);
56870 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
56871 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"container attribute EReference");
56872 find mustExist(problem, interpretation, from);
56873 find mustExist(problem, interpretation, to);
56874 find mustInstanceOfEReference_class(problem,interpretation,from);
56875 BooleanElement(to);
56876 find mayInRelationcontainer_attribute_EReference(problem,interpretation,from,to);
56877 neg find mustInRelationcontainer_attribute_EReference(problem,interpretation,from,to);
56878}
56879pattern refineRelation_resolveProxies_attribute_EReference(
56880 problem:LogicProblem, interpretation:PartialInterpretation,
56881 relationIterpretation:PartialRelationInterpretation,
56882 from: DefinedElement, to: DefinedElement)
56883{
56884 find interpretation(problem,interpretation);
56885 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
56886 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"resolveProxies attribute EReference");
56887 find mustExist(problem, interpretation, from);
56888 find mustExist(problem, interpretation, to);
56889 find mustInstanceOfEReference_class(problem,interpretation,from);
56890 BooleanElement(to);
56891 find mayInRelationresolveProxies_attribute_EReference(problem,interpretation,from,to);
56892 neg find mustInRelationresolveProxies_attribute_EReference(problem,interpretation,from,to);
56893}
56894pattern refineRelation_changeable_attribute_EStructuralFeature(
56895 problem:LogicProblem, interpretation:PartialInterpretation,
56896 relationIterpretation:PartialRelationInterpretation,
56897 from: DefinedElement, to: DefinedElement)
56898{
56899 find interpretation(problem,interpretation);
56900 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
56901 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"changeable attribute EStructuralFeature");
56902 find mustExist(problem, interpretation, from);
56903 find mustExist(problem, interpretation, to);
56904 find mustInstanceOfEStructuralFeature_class(problem,interpretation,from);
56905 BooleanElement(to);
56906 find mayInRelationchangeable_attribute_EStructuralFeature(problem,interpretation,from,to);
56907 neg find mustInRelationchangeable_attribute_EStructuralFeature(problem,interpretation,from,to);
56908}
56909pattern refineRelation_volatile_attribute_EStructuralFeature(
56910 problem:LogicProblem, interpretation:PartialInterpretation,
56911 relationIterpretation:PartialRelationInterpretation,
56912 from: DefinedElement, to: DefinedElement)
56913{
56914 find interpretation(problem,interpretation);
56915 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
56916 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"volatile attribute EStructuralFeature");
56917 find mustExist(problem, interpretation, from);
56918 find mustExist(problem, interpretation, to);
56919 find mustInstanceOfEStructuralFeature_class(problem,interpretation,from);
56920 BooleanElement(to);
56921 find mayInRelationvolatile_attribute_EStructuralFeature(problem,interpretation,from,to);
56922 neg find mustInRelationvolatile_attribute_EStructuralFeature(problem,interpretation,from,to);
56923}
56924pattern refineRelation_transient_attribute_EStructuralFeature(
56925 problem:LogicProblem, interpretation:PartialInterpretation,
56926 relationIterpretation:PartialRelationInterpretation,
56927 from: DefinedElement, to: DefinedElement)
56928{
56929 find interpretation(problem,interpretation);
56930 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
56931 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"transient attribute EStructuralFeature");
56932 find mustExist(problem, interpretation, from);
56933 find mustExist(problem, interpretation, to);
56934 find mustInstanceOfEStructuralFeature_class(problem,interpretation,from);
56935 BooleanElement(to);
56936 find mayInRelationtransient_attribute_EStructuralFeature(problem,interpretation,from,to);
56937 neg find mustInRelationtransient_attribute_EStructuralFeature(problem,interpretation,from,to);
56938}
56939pattern refineRelation_defaultValueLiteral_attribute_EStructuralFeature(
56940 problem:LogicProblem, interpretation:PartialInterpretation,
56941 relationIterpretation:PartialRelationInterpretation,
56942 from: DefinedElement, to: DefinedElement)
56943{
56944 find interpretation(problem,interpretation);
56945 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
56946 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"defaultValueLiteral attribute EStructuralFeature");
56947 find mustExist(problem, interpretation, from);
56948 find mustExist(problem, interpretation, to);
56949 find mustInstanceOfEStructuralFeature_class(problem,interpretation,from);
56950 StringElement(to);
56951 find mayInRelationdefaultValueLiteral_attribute_EStructuralFeature(problem,interpretation,from,to);
56952 neg find mustInRelationdefaultValueLiteral_attribute_EStructuralFeature(problem,interpretation,from,to);
56953}
56954pattern refineRelation_unsettable_attribute_EStructuralFeature(
56955 problem:LogicProblem, interpretation:PartialInterpretation,
56956 relationIterpretation:PartialRelationInterpretation,
56957 from: DefinedElement, to: DefinedElement)
56958{
56959 find interpretation(problem,interpretation); 43827 find interpretation(problem,interpretation);
56960 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 43828 PartialInterpretation.newElements(interpretation,element);
56961 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"unsettable attribute EStructuralFeature"); 43829 find mayInstanceOfFunctionalInput_class(problem,interpretation,element);
56962 find mustExist(problem, interpretation, from); 43830 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
56963 find mustExist(problem, interpretation, to); 43831 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
56964 find mustInstanceOfEStructuralFeature_class(problem,interpretation,from); 43832 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
56965 BooleanElement(to); 43833 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
56966 find mayInRelationunsettable_attribute_EStructuralFeature(problem,interpretation,from,to); 43834 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
56967 neg find mustInRelationunsettable_attribute_EStructuralFeature(problem,interpretation,from,to); 43835 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
43836 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
56968} 43837}
56969pattern refineRelation_derived_attribute_EStructuralFeature( 43838pattern refineTypeTo_FunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
56970 problem:LogicProblem, interpretation:PartialInterpretation,
56971 relationIterpretation:PartialRelationInterpretation,
56972 from: DefinedElement, to: DefinedElement)
56973{
56974 find interpretation(problem,interpretation); 43839 find interpretation(problem,interpretation);
56975 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 43840 PartialInterpretation.newElements(interpretation,element);
56976 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"derived attribute EStructuralFeature"); 43841 find mayInstanceOfFunctionalInterface_class(problem,interpretation,element);
56977 find mustExist(problem, interpretation, from); 43842 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
56978 find mustExist(problem, interpretation, to); 43843 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
56979 find mustInstanceOfEStructuralFeature_class(problem,interpretation,from); 43844 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
56980 BooleanElement(to); 43845 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
56981 find mayInRelationderived_attribute_EStructuralFeature(problem,interpretation,from,to); 43846 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
56982 neg find mustInRelationderived_attribute_EStructuralFeature(problem,interpretation,from,to); 43847 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
56983} 43848}
56984pattern refineRelation_ordered_attribute_ETypedElement( 43849pattern refineTypeTo_FunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
56985 problem:LogicProblem, interpretation:PartialInterpretation,
56986 relationIterpretation:PartialRelationInterpretation,
56987 from: DefinedElement, to: DefinedElement)
56988{
56989 find interpretation(problem,interpretation); 43850 find interpretation(problem,interpretation);
56990 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 43851 PartialInterpretation.newElements(interpretation,element);
56991 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"ordered attribute ETypedElement"); 43852 find mayInstanceOfFunctionalOutput_class(problem,interpretation,element);
56992 find mustExist(problem, interpretation, from); 43853 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
56993 find mustExist(problem, interpretation, to); 43854 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
56994 find mustInstanceOfETypedElement_class(problem,interpretation,from); 43855 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
56995 BooleanElement(to); 43856 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
56996 find mayInRelationordered_attribute_ETypedElement(problem,interpretation,from,to); 43857 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
56997 neg find mustInRelationordered_attribute_ETypedElement(problem,interpretation,from,to); 43858 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
43859 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
56998} 43860}
56999pattern refineRelation_unique_attribute_ETypedElement( 43861pattern refineTypeTo_Function_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
57000 problem:LogicProblem, interpretation:PartialInterpretation,
57001 relationIterpretation:PartialRelationInterpretation,
57002 from: DefinedElement, to: DefinedElement)
57003{
57004 find interpretation(problem,interpretation); 43862 find interpretation(problem,interpretation);
57005 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 43863 PartialInterpretation.newElements(interpretation,element);
57006 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"unique attribute ETypedElement"); 43864 find mayInstanceOfFunction_class(problem,interpretation,element);
57007 find mustExist(problem, interpretation, from); 43865 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
57008 find mustExist(problem, interpretation, to); 43866 neg find mustInstanceOfFunction_class(problem,interpretation,element);
57009 find mustInstanceOfETypedElement_class(problem,interpretation,from); 43867 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
57010 BooleanElement(to); 43868 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
57011 find mayInRelationunique_attribute_ETypedElement(problem,interpretation,from,to); 43869 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
57012 neg find mustInRelationunique_attribute_ETypedElement(problem,interpretation,from,to); 43870 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
57013} 43871}
57014pattern refineRelation_lowerBound_attribute_ETypedElement( 43872pattern refineTypeTo_InformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
57015 problem:LogicProblem, interpretation:PartialInterpretation,
57016 relationIterpretation:PartialRelationInterpretation,
57017 from: DefinedElement, to: DefinedElement)
57018{
57019 find interpretation(problem,interpretation); 43873 find interpretation(problem,interpretation);
57020 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 43874 PartialInterpretation.newElements(interpretation,element);
57021 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"lowerBound attribute ETypedElement"); 43875 find mayInstanceOfInformationLink_class(problem,interpretation,element);
57022 find mustExist(problem, interpretation, from); 43876 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
57023 find mustExist(problem, interpretation, to); 43877 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
57024 find mustInstanceOfETypedElement_class(problem,interpretation,from); 43878 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
57025 IntegerElement(to); 43879 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
57026 find mayInRelationlowerBound_attribute_ETypedElement(problem,interpretation,from,to); 43880 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
57027 neg find mustInRelationlowerBound_attribute_ETypedElement(problem,interpretation,from,to); 43881 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
57028} 43882}
57029pattern refineRelation_upperBound_attribute_ETypedElement( 43883pattern refineTypeTo_FunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
57030 problem:LogicProblem, interpretation:PartialInterpretation,
57031 relationIterpretation:PartialRelationInterpretation,
57032 from: DefinedElement, to: DefinedElement)
57033{
57034 find interpretation(problem,interpretation); 43884 find interpretation(problem,interpretation);
57035 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 43885 PartialInterpretation.newElements(interpretation,element);
57036 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"upperBound attribute ETypedElement"); 43886 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
57037 find mustExist(problem, interpretation, from); 43887 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
57038 find mustExist(problem, interpretation, to); 43888 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
57039 find mustInstanceOfETypedElement_class(problem,interpretation,from); 43889 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
57040 IntegerElement(to); 43890 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
57041 find mayInRelationupperBound_attribute_ETypedElement(problem,interpretation,from,to); 43891 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
57042 neg find mustInRelationupperBound_attribute_ETypedElement(problem,interpretation,from,to); 43892 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
57043} 43893}
57044pattern refineRelation_many_attribute_ETypedElement( 43894pattern refineTypeTo_FAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
57045 problem:LogicProblem, interpretation:PartialInterpretation,
57046 relationIterpretation:PartialRelationInterpretation,
57047 from: DefinedElement, to: DefinedElement)
57048{
57049 find interpretation(problem,interpretation); 43895 find interpretation(problem,interpretation);
57050 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 43896 PartialInterpretation.newElements(interpretation,element);
57051 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"many attribute ETypedElement"); 43897 find mayInstanceOfFAMTerminator_class(problem,interpretation,element);
57052 find mustExist(problem, interpretation, from); 43898 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
57053 find mustExist(problem, interpretation, to); 43899 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
57054 find mustInstanceOfETypedElement_class(problem,interpretation,from); 43900 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
57055 BooleanElement(to); 43901 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
57056 find mayInRelationmany_attribute_ETypedElement(problem,interpretation,from,to); 43902 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
57057 neg find mustInRelationmany_attribute_ETypedElement(problem,interpretation,from,to); 43903 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
57058} 43904}
57059pattern refineRelation_required_attribute_ETypedElement( 43905
43906//////////
43907// 4.3 Relation refinement
43908//////////
43909pattern refineRelation_model_reference_FunctionalElement(
57060 problem:LogicProblem, interpretation:PartialInterpretation, 43910 problem:LogicProblem, interpretation:PartialInterpretation,
57061 relationIterpretation:PartialRelationInterpretation, 43911 relationIterpretation:PartialRelationInterpretation,
57062 from: DefinedElement, to: DefinedElement) 43912 from: DefinedElement, to: DefinedElement)
57063{ 43913{
57064 find interpretation(problem,interpretation); 43914 find interpretation(problem,interpretation);
57065 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 43915 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
57066 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"required attribute ETypedElement"); 43916 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement");
57067 find mustExist(problem, interpretation, from); 43917 find mustExist(problem, interpretation, from);
57068 find mustExist(problem, interpretation, to); 43918 find mustExist(problem, interpretation, to);
57069 find mustInstanceOfETypedElement_class(problem,interpretation,from); 43919 find mustInstanceOfFunctionalElement_class(problem,interpretation,from);
57070 BooleanElement(to); 43920 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,to);
57071 find mayInRelationrequired_attribute_ETypedElement(problem,interpretation,from,to); 43921 find mayInRelationmodel_reference_FunctionalElement(problem,interpretation,from,to);
57072 neg find mustInRelationrequired_attribute_ETypedElement(problem,interpretation,from,to); 43922 neg find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,from,to);
57073} 43923}
57074pattern refineRelation_key_attribute_EStringToStringMapEntry( 43924pattern refineRelation_IncomingLinks_reference_FunctionalInput_and_to_reference_InformationLink(
57075 problem:LogicProblem, interpretation:PartialInterpretation, 43925 problem:LogicProblem, interpretation:PartialInterpretation,
57076 relationIterpretation:PartialRelationInterpretation, 43926 relationIterpretation:PartialRelationInterpretation, oppositeInterpretation:PartialRelationInterpretation,
57077 from: DefinedElement, to: DefinedElement) 43927 from: DefinedElement, to: DefinedElement)
57078{ 43928{
57079 find interpretation(problem,interpretation); 43929 find interpretation(problem,interpretation);
57080 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 43930 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
57081 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"key attribute EStringToStringMapEntry"); 43931 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"IncomingLinks reference FunctionalInput");
43932 PartialInterpretation.partialrelationinterpretation(interpretation,oppositeInterpretation);
43933 PartialRelationInterpretation.interpretationOf.name(oppositeInterpretation,"to reference InformationLink");
57082 find mustExist(problem, interpretation, from); 43934 find mustExist(problem, interpretation, from);
57083 find mustExist(problem, interpretation, to); 43935 find mustExist(problem, interpretation, to);
57084 find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,from); 43936 find mustInstanceOfFunctionalInput_class(problem,interpretation,from);
57085 StringElement(to); 43937 find mustInstanceOfInformationLink_class(problem,interpretation,to);
57086 find mayInRelationkey_attribute_EStringToStringMapEntry(problem,interpretation,from,to); 43938 find mayInRelationIncomingLinks_reference_FunctionalInput(problem,interpretation,from,to);
57087 neg find mustInRelationkey_attribute_EStringToStringMapEntry(problem,interpretation,from,to); 43939 neg find mustInRelationIncomingLinks_reference_FunctionalInput(problem,interpretation,from,to);
57088} 43940}
57089pattern refineRelation_value_attribute_EStringToStringMapEntry( 43941pattern refineRelation_type_attribute_Function(
57090 problem:LogicProblem, interpretation:PartialInterpretation, 43942 problem:LogicProblem, interpretation:PartialInterpretation,
57091 relationIterpretation:PartialRelationInterpretation, 43943 relationIterpretation:PartialRelationInterpretation,
57092 from: DefinedElement, to: DefinedElement) 43944 from: DefinedElement, to: DefinedElement)
57093{ 43945{
57094 find interpretation(problem,interpretation); 43946 find interpretation(problem,interpretation);
57095 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 43947 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
57096 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"value attribute EStringToStringMapEntry"); 43948 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function");
57097 find mustExist(problem, interpretation, from); 43949 find mustExist(problem, interpretation, from);
57098 find mustExist(problem, interpretation, to); 43950 find mustExist(problem, interpretation, to);
57099 find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,from); 43951 find mustInstanceOfFunction_class(problem,interpretation,from);
57100 StringElement(to); 43952 find mustInstanceOfFunctionType_enum(problem,interpretation,to);
57101 find mayInRelationvalue_attribute_EStringToStringMapEntry(problem,interpretation,from,to); 43953 find mayInRelationtype_attribute_Function(problem,interpretation,from,to);
57102 neg find mustInRelationvalue_attribute_EStringToStringMapEntry(problem,interpretation,from,to); 43954 neg find mustInRelationtype_attribute_Function(problem,interpretation,from,to);
57103} 43955}
57104import epackage "http://www.bme.hu/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage" 43956import epackage "http://www.bme.hu/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage"
57105import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem" 43957import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem"
@@ -57207,22 +44059,22 @@ private pattern mayInstanceOfFunctionalElement_class(problem:LogicProblem, inter
57207{ 44059{
57208 find interpretation(problem,interpretation); 44060 find interpretation(problem,interpretation);
57209 PartialInterpretation.newElements(interpretation,element); 44061 PartialInterpretation.newElements(interpretation,element);
57210 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
57211 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
57212 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 44062 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
57213 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 44063 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
44064 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
57214 neg find mustInstanceOfFunction_class(problem,interpretation,element); 44065 neg find mustInstanceOfFunction_class(problem,interpretation,element);
44066 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
57215 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 44067 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
57216 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation); 44068 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
57217 neg find isPrimitive(element); 44069 neg find isPrimitive(element);
57218} or { 44070} or {
57219 find interpretation(problem,interpretation); 44071 find interpretation(problem,interpretation);
57220 PartialInterpretation.openWorldElements(interpretation,element); 44072 PartialInterpretation.openWorldElements(interpretation,element);
57221 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
57222 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
57223 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 44073 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
57224 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 44074 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
44075 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
57225 neg find mustInstanceOfFunction_class(problem,interpretation,element); 44076 neg find mustInstanceOfFunction_class(problem,interpretation,element);
44077 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
57226 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 44078 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
57227 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation); 44079 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
57228 neg find isPrimitive(element); 44080 neg find isPrimitive(element);
@@ -57251,10 +44103,9 @@ private pattern mayInstanceOfFunctionalArchitectureModel_class(problem:LogicProb
57251{ 44103{
57252 find interpretation(problem,interpretation); 44104 find interpretation(problem,interpretation);
57253 PartialInterpretation.newElements(interpretation,element); 44105 PartialInterpretation.newElements(interpretation,element);
57254 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
57255 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
57256 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 44106 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
57257 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); 44107 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
44108 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
57258 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 44109 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
57259 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 44110 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
57260 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation); 44111 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
@@ -57262,10 +44113,9 @@ private pattern mayInstanceOfFunctionalArchitectureModel_class(problem:LogicProb
57262} or { 44113} or {
57263 find interpretation(problem,interpretation); 44114 find interpretation(problem,interpretation);
57264 PartialInterpretation.openWorldElements(interpretation,element); 44115 PartialInterpretation.openWorldElements(interpretation,element);
57265 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
57266 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
57267 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 44116 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
57268 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); 44117 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
44118 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
57269 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 44119 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
57270 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 44120 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
57271 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation); 44121 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
@@ -57295,9 +44145,9 @@ private pattern mayInstanceOfFunction_class(problem:LogicProblem, interpretation
57295{ 44145{
57296 find interpretation(problem,interpretation); 44146 find interpretation(problem,interpretation);
57297 PartialInterpretation.newElements(interpretation,element); 44147 PartialInterpretation.newElements(interpretation,element);
44148 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
57298 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 44149 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
57299 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 44150 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
57300 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
57301 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 44151 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
57302 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 44152 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
57303 neg find scopeDisallowsNewFunction_class(problem, interpretation); 44153 neg find scopeDisallowsNewFunction_class(problem, interpretation);
@@ -57305,9 +44155,9 @@ private pattern mayInstanceOfFunction_class(problem:LogicProblem, interpretation
57305} or { 44155} or {
57306 find interpretation(problem,interpretation); 44156 find interpretation(problem,interpretation);
57307 PartialInterpretation.openWorldElements(interpretation,element); 44157 PartialInterpretation.openWorldElements(interpretation,element);
44158 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
57308 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); 44159 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
57309 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 44160 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
57310 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
57311 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 44161 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
57312 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 44162 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
57313 neg find scopeDisallowsNewFunction_class(problem, interpretation); 44163 neg find scopeDisallowsNewFunction_class(problem, interpretation);
@@ -57337,9 +44187,9 @@ private pattern mayInstanceOfFAMTerminator_class(problem:LogicProblem, interpret
57337{ 44187{
57338 find interpretation(problem,interpretation); 44188 find interpretation(problem,interpretation);
57339 PartialInterpretation.newElements(interpretation,element); 44189 PartialInterpretation.newElements(interpretation,element);
57340 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
57341 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 44190 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
57342 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 44191 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
44192 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
57343 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 44193 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
57344 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 44194 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
57345 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation); 44195 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
@@ -57347,9 +44197,9 @@ private pattern mayInstanceOfFAMTerminator_class(problem:LogicProblem, interpret
57347} or { 44197} or {
57348 find interpretation(problem,interpretation); 44198 find interpretation(problem,interpretation);
57349 PartialInterpretation.openWorldElements(interpretation,element); 44199 PartialInterpretation.openWorldElements(interpretation,element);
57350 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
57351 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 44200 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
57352 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 44201 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
44202 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
57353 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 44203 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
57354 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 44204 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
57355 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation); 44205 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
@@ -57379,20 +44229,20 @@ private pattern mayInstanceOfInformationLink_class(problem:LogicProblem, interpr
57379{ 44229{
57380 find interpretation(problem,interpretation); 44230 find interpretation(problem,interpretation);
57381 PartialInterpretation.newElements(interpretation,element); 44231 PartialInterpretation.newElements(interpretation,element);
57382 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
57383 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
57384 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 44232 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
57385 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 44233 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
44234 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
44235 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
57386 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 44236 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
57387 neg find scopeDisallowsNewInformationLink_class(problem, interpretation); 44237 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
57388 neg find isPrimitive(element); 44238 neg find isPrimitive(element);
57389} or { 44239} or {
57390 find interpretation(problem,interpretation); 44240 find interpretation(problem,interpretation);
57391 PartialInterpretation.openWorldElements(interpretation,element); 44241 PartialInterpretation.openWorldElements(interpretation,element);
57392 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
57393 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
57394 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 44242 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
57395 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 44243 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
44244 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
44245 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
57396 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 44246 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
57397 neg find scopeDisallowsNewInformationLink_class(problem, interpretation); 44247 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
57398 neg find isPrimitive(element); 44248 neg find isPrimitive(element);
@@ -57421,9 +44271,9 @@ private pattern mayInstanceOfFunctionalInterface_class(problem:LogicProblem, int
57421{ 44271{
57422 find interpretation(problem,interpretation); 44272 find interpretation(problem,interpretation);
57423 PartialInterpretation.newElements(interpretation,element); 44273 PartialInterpretation.newElements(interpretation,element);
57424 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
57425 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 44274 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
57426 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 44275 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
44276 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
57427 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 44277 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
57428 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 44278 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
57429 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation); 44279 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
@@ -57431,9 +44281,9 @@ private pattern mayInstanceOfFunctionalInterface_class(problem:LogicProblem, int
57431} or { 44281} or {
57432 find interpretation(problem,interpretation); 44282 find interpretation(problem,interpretation);
57433 PartialInterpretation.openWorldElements(interpretation,element); 44283 PartialInterpretation.openWorldElements(interpretation,element);
57434 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
57435 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 44284 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
57436 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 44285 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
44286 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
57437 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 44287 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
57438 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 44288 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
57439 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation); 44289 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
@@ -57464,10 +44314,10 @@ private pattern mayInstanceOfFunctionalInput_class(problem:LogicProblem, interpr
57464 find interpretation(problem,interpretation); 44314 find interpretation(problem,interpretation);
57465 PartialInterpretation.newElements(interpretation,element); 44315 PartialInterpretation.newElements(interpretation,element);
57466 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 44316 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
57467 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
57468 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
57469 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 44317 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
57470 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 44318 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
44319 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
44320 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
57471 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 44321 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
57472 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation); 44322 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
57473 neg find isPrimitive(element); 44323 neg find isPrimitive(element);
@@ -57475,10 +44325,10 @@ private pattern mayInstanceOfFunctionalInput_class(problem:LogicProblem, interpr
57475 find interpretation(problem,interpretation); 44325 find interpretation(problem,interpretation);
57476 PartialInterpretation.openWorldElements(interpretation,element); 44326 PartialInterpretation.openWorldElements(interpretation,element);
57477 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 44327 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
57478 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
57479 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
57480 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 44328 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
57481 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 44329 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
44330 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
44331 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
57482 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 44332 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
57483 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation); 44333 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
57484 neg find isPrimitive(element); 44334 neg find isPrimitive(element);
@@ -57507,23 +44357,23 @@ private pattern mayInstanceOfFunctionalOutput_class(problem:LogicProblem, interp
57507{ 44357{
57508 find interpretation(problem,interpretation); 44358 find interpretation(problem,interpretation);
57509 PartialInterpretation.newElements(interpretation,element); 44359 PartialInterpretation.newElements(interpretation,element);
57510 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
57511 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
57512 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 44360 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
57513 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 44361 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
57514 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 44362 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
44363 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
57515 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); 44364 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
44365 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
57516 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation); 44366 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
57517 neg find isPrimitive(element); 44367 neg find isPrimitive(element);
57518} or { 44368} or {
57519 find interpretation(problem,interpretation); 44369 find interpretation(problem,interpretation);
57520 PartialInterpretation.openWorldElements(interpretation,element); 44370 PartialInterpretation.openWorldElements(interpretation,element);
57521 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
57522 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
57523 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 44371 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
57524 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 44372 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
57525 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 44373 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
44374 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
57526 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); 44375 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
44376 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
57527 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation); 44377 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
57528 neg find isPrimitive(element); 44378 neg find isPrimitive(element);
57529} or 44379} or
@@ -57552,24 +44402,24 @@ private pattern mayInstanceOfFunctionalData_class(problem:LogicProblem, interpre
57552 find interpretation(problem,interpretation); 44402 find interpretation(problem,interpretation);
57553 PartialInterpretation.newElements(interpretation,element); 44403 PartialInterpretation.newElements(interpretation,element);
57554 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 44404 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
57555 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
57556 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
57557 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 44405 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
57558 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 44406 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
57559 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 44407 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
44408 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
57560 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); 44409 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
44410 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
57561 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation); 44411 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
57562 neg find isPrimitive(element); 44412 neg find isPrimitive(element);
57563} or { 44413} or {
57564 find interpretation(problem,interpretation); 44414 find interpretation(problem,interpretation);
57565 PartialInterpretation.openWorldElements(interpretation,element); 44415 PartialInterpretation.openWorldElements(interpretation,element);
57566 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 44416 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
57567 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
57568 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
57569 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 44417 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
57570 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 44418 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
57571 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 44419 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
44420 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
57572 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); 44421 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
44422 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
57573 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation); 44423 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
57574 neg find isPrimitive(element); 44424 neg find isPrimitive(element);
57575} or 44425} or
@@ -57595,69 +44445,6 @@ private pattern scopeDisallowsNewFunctionType_enum(problem:LogicProblem, interpr
57595 */ 44445 */
57596private pattern mayInstanceOfFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 44446private pattern mayInstanceOfFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
57597{ find mustInstanceOfFunctionType_enum(problem,interpretation,element); } 44447{ find mustInstanceOfFunctionType_enum(problem,interpretation,element); }
57598/**
57599 * An element must be an instance of type "FunctionalArchitectureModel class DefinedPart".
57600 */
57601private pattern mustInstanceOfFunctionalArchitectureModel_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
57602 Type.name(type,"FunctionalArchitectureModel class DefinedPart");
57603 find directInstanceOf(problem,interpretation,element,type);
57604}
57605private pattern scopeDisallowsNewFunctionalArchitectureModel_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
57606 find interpretation(problem,interpretation);
57607 PartialInterpretation.scopes(interpretation,scope);
57608 Scope.targetTypeInterpretation(scope,typeInterpretation);
57609 Scope.maxNewElements(scope,0);
57610 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
57611 Type.name(type,"FunctionalArchitectureModel class DefinedPart");
57612}
57613
57614/**
57615 * An element may be an instance of type "FunctionalArchitectureModel class DefinedPart".
57616 */
57617private pattern mayInstanceOfFunctionalArchitectureModel_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
57618{ find mustInstanceOfFunctionalArchitectureModel_class_DefinedPart(problem,interpretation,element); }
57619/**
57620 * An element must be an instance of type "FunctionalArchitectureModel class UndefinedPart".
57621 */
57622private pattern mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
57623 Type.name(type,"FunctionalArchitectureModel class UndefinedPart");
57624 find directInstanceOf(problem,interpretation,element,type);
57625}
57626private pattern scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
57627 find interpretation(problem,interpretation);
57628 PartialInterpretation.scopes(interpretation,scope);
57629 Scope.targetTypeInterpretation(scope,typeInterpretation);
57630 Scope.maxNewElements(scope,0);
57631 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
57632 Type.name(type,"FunctionalArchitectureModel class UndefinedPart");
57633}
57634
57635/**
57636 * An element may be an instance of type "FunctionalArchitectureModel class UndefinedPart".
57637 */
57638private pattern mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
57639{
57640 find interpretation(problem,interpretation);
57641 PartialInterpretation.newElements(interpretation,element);
57642 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
57643 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
57644 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
57645 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
57646 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
57647 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation);
57648 neg find isPrimitive(element);
57649} or {
57650 find interpretation(problem,interpretation);
57651 PartialInterpretation.openWorldElements(interpretation,element);
57652 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
57653 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
57654 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
57655 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
57656 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
57657 neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation);
57658 neg find isPrimitive(element);
57659} or
57660{ find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); }
57661 44448
57662////////// 44449//////////
57663// 1.2 Relation Declaration Indexers 44450// 1.2 Relation Declaration Indexers
@@ -58335,15 +45122,15 @@ pattern unfinishedLowerMultiplicity_type_attribute_Function(problem:LogicProblem
58335private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation) 45122private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation)
58336{ 45123{
58337 find interpretation(problem,interpretation); 45124 find interpretation(problem,interpretation);
58338 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,root); 45125 find mustInstanceOfFunctionalInterface_class(problem,interpretation,root);
58339 find mustExist(problem, interpretation, root); 45126 find mustExist(problem, interpretation, root);
58340}or{ 45127}or{
58341 find interpretation(problem,interpretation); 45128 find interpretation(problem,interpretation);
58342 find mustInstanceOfFunctionalData_class(problem,interpretation,root); 45129 find mustInstanceOfInformationLink_class(problem,interpretation,root);
58343 find mustExist(problem, interpretation, root); 45130 find mustExist(problem, interpretation, root);
58344}or{ 45131}or{
58345 find interpretation(problem,interpretation); 45132 find interpretation(problem,interpretation);
58346 find mustInstanceOfFunction_class(problem,interpretation,root); 45133 find mustInstanceOfFunctionalElement_class(problem,interpretation,root);
58347 find mustExist(problem, interpretation, root); 45134 find mustExist(problem, interpretation, root);
58348}or{ 45135}or{
58349 find interpretation(problem,interpretation); 45136 find interpretation(problem,interpretation);
@@ -58351,15 +45138,7 @@ private pattern hasElementInContainment(problem:LogicProblem, interpretation:Par
58351 find mustExist(problem, interpretation, root); 45138 find mustExist(problem, interpretation, root);
58352}or{ 45139}or{
58353 find interpretation(problem,interpretation); 45140 find interpretation(problem,interpretation);
58354 find mustInstanceOfInformationLink_class(problem,interpretation,root); 45141 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,root);
58355 find mustExist(problem, interpretation, root);
58356}or{
58357 find interpretation(problem,interpretation);
58358 find mustInstanceOfFunctionalInterface_class(problem,interpretation,root);
58359 find mustExist(problem, interpretation, root);
58360}or{
58361 find interpretation(problem,interpretation);
58362 find mustInstanceOfFunctionalElement_class(problem,interpretation,root);
58363 find mustExist(problem, interpretation, root); 45142 find mustExist(problem, interpretation, root);
58364}or{ 45143}or{
58365 find interpretation(problem,interpretation); 45144 find interpretation(problem,interpretation);
@@ -58367,15 +45146,15 @@ private pattern hasElementInContainment(problem:LogicProblem, interpretation:Par
58367 find mustExist(problem, interpretation, root); 45146 find mustExist(problem, interpretation, root);
58368}or{ 45147}or{
58369 find interpretation(problem,interpretation); 45148 find interpretation(problem,interpretation);
58370 find mustInstanceOfFunctionalOutput_class(problem,interpretation,root); 45149 find mustInstanceOfFunction_class(problem,interpretation,root);
58371 find mustExist(problem, interpretation, root); 45150 find mustExist(problem, interpretation, root);
58372}or{ 45151}or{
58373 find interpretation(problem,interpretation); 45152 find interpretation(problem,interpretation);
58374 find mustInstanceOfFunctionalArchitectureModel_class_DefinedPart(problem,interpretation,root); 45153 find mustInstanceOfFunctionalOutput_class(problem,interpretation,root);
58375 find mustExist(problem, interpretation, root); 45154 find mustExist(problem, interpretation, root);
58376}or{ 45155}or{
58377 find interpretation(problem,interpretation); 45156 find interpretation(problem,interpretation);
58378 find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,root); 45157 find mustInstanceOfFunctionalData_class(problem,interpretation,root);
58379 find mustExist(problem, interpretation, root); 45158 find mustExist(problem, interpretation, root);
58380} 45159}
58381pattern createObject_FunctionalOutput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData( 45160pattern createObject_FunctionalOutput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData(
@@ -58408,6 +45187,18 @@ pattern createObject_FunctionalOutput_class(
58408 find mayExist(problem, interpretation, newObject); 45187 find mayExist(problem, interpretation, newObject);
58409 neg find mustExist(problem, interpretation, newObject); 45188 neg find mustExist(problem, interpretation, newObject);
58410} 45189}
45190pattern createObject_FunctionalArchitectureModel_class(
45191 problem:LogicProblem, interpretation:PartialInterpretation,
45192 typeInterpretation:PartialComplexTypeInterpretation)
45193{
45194 find interpretation(problem,interpretation);
45195 neg find hasElementInContainment(problem,interpretation);
45196 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
45197 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalArchitectureModel class");
45198 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,newObject);
45199 find mayExist(problem, interpretation, newObject);
45200 neg find mustExist(problem, interpretation, newObject);
45201}
58411pattern createObject_FAMTerminator_class_by_terminator_reference_FunctionalData_with_data_reference_FAMTerminator( 45202pattern createObject_FAMTerminator_class_by_terminator_reference_FunctionalData_with_data_reference_FAMTerminator(
58412 problem:LogicProblem, interpretation:PartialInterpretation, 45203 problem:LogicProblem, interpretation:PartialInterpretation,
58413 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 45204 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
@@ -58468,18 +45259,6 @@ pattern createObject_FunctionalInterface_class(
58468 find mayExist(problem, interpretation, newObject); 45259 find mayExist(problem, interpretation, newObject);
58469 neg find mustExist(problem, interpretation, newObject); 45260 neg find mustExist(problem, interpretation, newObject);
58470} 45261}
58471pattern createObject_FunctionalArchitectureModel_class_UndefinedPart(
58472 problem:LogicProblem, interpretation:PartialInterpretation,
58473 typeInterpretation:PartialComplexTypeInterpretation)
58474{
58475 find interpretation(problem,interpretation);
58476 neg find hasElementInContainment(problem,interpretation);
58477 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
58478 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalArchitectureModel class UndefinedPart");
58479 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,newObject);
58480 find mayExist(problem, interpretation, newObject);
58481 neg find mustExist(problem, interpretation, newObject);
58482}
58483pattern createObject_Function_class_by_rootElements_reference_FunctionalArchitectureModel( 45262pattern createObject_Function_class_by_rootElements_reference_FunctionalArchitectureModel(
58484 problem:LogicProblem, interpretation:PartialInterpretation, 45263 problem:LogicProblem, interpretation:PartialInterpretation,
58485 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 45264 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
@@ -58595,43 +45374,43 @@ pattern refineTypeTo_FunctionalOutput_class(problem:LogicProblem, interpretation
58595 PartialInterpretation.newElements(interpretation,element); 45374 PartialInterpretation.newElements(interpretation,element);
58596 find mayInstanceOfFunctionalOutput_class(problem,interpretation,element); 45375 find mayInstanceOfFunctionalOutput_class(problem,interpretation,element);
58597 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 45376 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
58598 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
58599 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
58600 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 45377 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
58601 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 45378 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
58602 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 45379 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
45380 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
58603 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); 45381 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
45382 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
58604} 45383}
58605pattern refineTypeTo_FAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 45384pattern refineTypeTo_FunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
58606 find interpretation(problem,interpretation); 45385 find interpretation(problem,interpretation);
58607 PartialInterpretation.newElements(interpretation,element); 45386 PartialInterpretation.newElements(interpretation,element);
58608 find mayInstanceOfFAMTerminator_class(problem,interpretation,element); 45387 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
58609 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
58610 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
58611 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 45388 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
58612 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 45389 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
45390 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
45391 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
58613 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 45392 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
58614 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 45393 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
58615} 45394}
58616pattern refineTypeTo_FunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 45395pattern refineTypeTo_FAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
58617 find interpretation(problem,interpretation); 45396 find interpretation(problem,interpretation);
58618 PartialInterpretation.newElements(interpretation,element); 45397 PartialInterpretation.newElements(interpretation,element);
58619 find mayInstanceOfFunctionalInterface_class(problem,interpretation,element); 45398 find mayInstanceOfFAMTerminator_class(problem,interpretation,element);
58620 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
58621 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
58622 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 45399 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
58623 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 45400 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
45401 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
45402 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
58624 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 45403 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
58625 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 45404 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
58626} 45405}
58627pattern refineTypeTo_FunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 45406pattern refineTypeTo_FunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
58628 find interpretation(problem,interpretation); 45407 find interpretation(problem,interpretation);
58629 PartialInterpretation.newElements(interpretation,element); 45408 PartialInterpretation.newElements(interpretation,element);
58630 find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); 45409 find mayInstanceOfFunctionalInterface_class(problem,interpretation,element);
58631 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); 45410 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
58632 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
58633 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 45411 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
58634 neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); 45412 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
45413 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
58635 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 45414 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
58636 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 45415 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
58637} 45416}
@@ -58639,33 +45418,33 @@ pattern refineTypeTo_Function_class(problem:LogicProblem, interpretation:Partial
58639 find interpretation(problem,interpretation); 45418 find interpretation(problem,interpretation);
58640 PartialInterpretation.newElements(interpretation,element); 45419 PartialInterpretation.newElements(interpretation,element);
58641 find mayInstanceOfFunction_class(problem,interpretation,element); 45420 find mayInstanceOfFunction_class(problem,interpretation,element);
58642 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
58643 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
58644 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 45421 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
58645 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 45422 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
45423 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
58646 neg find mustInstanceOfFunction_class(problem,interpretation,element); 45424 neg find mustInstanceOfFunction_class(problem,interpretation,element);
45425 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
58647 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 45426 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
58648} 45427}
58649pattern refineTypeTo_InformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 45428pattern refineTypeTo_InformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
58650 find interpretation(problem,interpretation); 45429 find interpretation(problem,interpretation);
58651 PartialInterpretation.newElements(interpretation,element); 45430 PartialInterpretation.newElements(interpretation,element);
58652 find mayInstanceOfInformationLink_class(problem,interpretation,element); 45431 find mayInstanceOfInformationLink_class(problem,interpretation,element);
58653 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
58654 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
58655 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 45432 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
58656 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 45433 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
58657 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); 45434 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
45435 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
58658 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 45436 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
45437 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
58659} 45438}
58660pattern refineTypeTo_FunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 45439pattern refineTypeTo_FunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
58661 find interpretation(problem,interpretation); 45440 find interpretation(problem,interpretation);
58662 PartialInterpretation.newElements(interpretation,element); 45441 PartialInterpretation.newElements(interpretation,element);
58663 find mayInstanceOfFunctionalInput_class(problem,interpretation,element); 45442 find mayInstanceOfFunctionalInput_class(problem,interpretation,element);
58664 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); 45443 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
58665 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
58666 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
58667 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); 45444 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
58668 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); 45445 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
45446 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
45447 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
58669 neg find mustInstanceOfInformationLink_class(problem,interpretation,element); 45448 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
58670 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); 45449 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
58671} 45450}
@@ -58804,1201 +45583,436 @@ private pattern isPrimitive(element: PrimitiveElement) {
58804// 1.1.2 domain-specific Type Indexers 45583// 1.1.2 domain-specific Type Indexers
58805////////// 45584//////////
58806/** 45585/**
58807 * An element must be an instance of type "EAttribute class". 45586 * An element must be an instance of type "FunctionalElement class".
58808 */
58809private pattern mustInstanceOfEAttribute_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
58810 Type.name(type,"EAttribute class");
58811 find directInstanceOf(problem,interpretation,element,type);
58812}
58813private pattern scopeDisallowsNewEAttribute_class(problem:LogicProblem, interpretation:PartialInterpretation) {
58814 find interpretation(problem,interpretation);
58815 PartialInterpretation.scopes(interpretation,scope);
58816 Scope.targetTypeInterpretation(scope,typeInterpretation);
58817 Scope.maxNewElements(scope,0);
58818 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
58819 Type.name(type,"EAttribute class");
58820}
58821
58822/**
58823 * An element may be an instance of type "EAttribute class".
58824 */
58825private pattern mayInstanceOfEAttribute_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
58826{
58827 find interpretation(problem,interpretation);
58828 PartialInterpretation.newElements(interpretation,element);
58829 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
58830 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
58831 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
58832 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
58833 neg find mustInstanceOfEReference_class(problem,interpretation,element);
58834 neg find mustInstanceOfEObject_class(problem,interpretation,element);
58835 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
58836 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
58837 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
58838 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
58839 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
58840 neg find scopeDisallowsNewEAttribute_class(problem, interpretation);
58841 neg find isPrimitive(element);
58842} or {
58843 find interpretation(problem,interpretation);
58844 PartialInterpretation.openWorldElements(interpretation,element);
58845 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
58846 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
58847 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
58848 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
58849 neg find mustInstanceOfEReference_class(problem,interpretation,element);
58850 neg find mustInstanceOfEObject_class(problem,interpretation,element);
58851 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
58852 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
58853 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
58854 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
58855 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
58856 neg find scopeDisallowsNewEAttribute_class(problem, interpretation);
58857 neg find isPrimitive(element);
58858} or
58859{ find mustInstanceOfEAttribute_class(problem,interpretation,element); }
58860/**
58861 * An element must be an instance of type "EAnnotation class".
58862 */
58863private pattern mustInstanceOfEAnnotation_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
58864 Type.name(type,"EAnnotation class");
58865 find directInstanceOf(problem,interpretation,element,type);
58866}
58867private pattern scopeDisallowsNewEAnnotation_class(problem:LogicProblem, interpretation:PartialInterpretation) {
58868 find interpretation(problem,interpretation);
58869 PartialInterpretation.scopes(interpretation,scope);
58870 Scope.targetTypeInterpretation(scope,typeInterpretation);
58871 Scope.maxNewElements(scope,0);
58872 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
58873 Type.name(type,"EAnnotation class");
58874}
58875
58876/**
58877 * An element may be an instance of type "EAnnotation class".
58878 */
58879private pattern mayInstanceOfEAnnotation_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
58880{
58881 find interpretation(problem,interpretation);
58882 PartialInterpretation.newElements(interpretation,element);
58883 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
58884 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
58885 neg find mustInstanceOfEObject_class(problem,interpretation,element);
58886 neg find mustInstanceOfENamedElement_class(problem,interpretation,element);
58887 neg find scopeDisallowsNewEAnnotation_class(problem, interpretation);
58888 neg find isPrimitive(element);
58889} or {
58890 find interpretation(problem,interpretation);
58891 PartialInterpretation.openWorldElements(interpretation,element);
58892 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
58893 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
58894 neg find mustInstanceOfEObject_class(problem,interpretation,element);
58895 neg find mustInstanceOfENamedElement_class(problem,interpretation,element);
58896 neg find scopeDisallowsNewEAnnotation_class(problem, interpretation);
58897 neg find isPrimitive(element);
58898} or
58899{ find mustInstanceOfEAnnotation_class(problem,interpretation,element); }
58900/**
58901 * An element must be an instance of type "EClass class".
58902 */
58903private pattern mustInstanceOfEClass_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
58904 Type.name(type,"EClass class");
58905 find directInstanceOf(problem,interpretation,element,type);
58906}
58907private pattern scopeDisallowsNewEClass_class(problem:LogicProblem, interpretation:PartialInterpretation) {
58908 find interpretation(problem,interpretation);
58909 PartialInterpretation.scopes(interpretation,scope);
58910 Scope.targetTypeInterpretation(scope,typeInterpretation);
58911 Scope.maxNewElements(scope,0);
58912 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
58913 Type.name(type,"EClass class");
58914}
58915
58916/**
58917 * An element may be an instance of type "EClass class".
58918 */
58919private pattern mayInstanceOfEClass_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
58920{
58921 find interpretation(problem,interpretation);
58922 PartialInterpretation.newElements(interpretation,element);
58923 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
58924 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
58925 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
58926 neg find mustInstanceOfEObject_class(problem,interpretation,element);
58927 neg find mustInstanceOfEDataType_class(problem,interpretation,element);
58928 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
58929 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
58930 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
58931 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
58932 neg find scopeDisallowsNewEClass_class(problem, interpretation);
58933 neg find isPrimitive(element);
58934} or {
58935 find interpretation(problem,interpretation);
58936 PartialInterpretation.openWorldElements(interpretation,element);
58937 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
58938 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
58939 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
58940 neg find mustInstanceOfEObject_class(problem,interpretation,element);
58941 neg find mustInstanceOfEDataType_class(problem,interpretation,element);
58942 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
58943 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
58944 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
58945 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
58946 neg find scopeDisallowsNewEClass_class(problem, interpretation);
58947 neg find isPrimitive(element);
58948} or
58949{ find mustInstanceOfEClass_class(problem,interpretation,element); }
58950/**
58951 * An element must be an instance of type "EClassifier class".
58952 */
58953private pattern mustInstanceOfEClassifier_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
58954 Type.name(type,"EClassifier class");
58955 find directInstanceOf(problem,interpretation,element,type);
58956}
58957private pattern scopeDisallowsNewEClassifier_class(problem:LogicProblem, interpretation:PartialInterpretation) {
58958 find interpretation(problem,interpretation);
58959 PartialInterpretation.scopes(interpretation,scope);
58960 Scope.targetTypeInterpretation(scope,typeInterpretation);
58961 Scope.maxNewElements(scope,0);
58962 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
58963 Type.name(type,"EClassifier class");
58964}
58965
58966/**
58967 * An element may be an instance of type "EClassifier class".
58968 */
58969private pattern mayInstanceOfEClassifier_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
58970{
58971 find interpretation(problem,interpretation);
58972 PartialInterpretation.newElements(interpretation,element);
58973 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
58974 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
58975 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
58976 neg find mustInstanceOfEObject_class(problem,interpretation,element);
58977 neg find mustInstanceOfEDataType_class(problem,interpretation,element);
58978 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
58979 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
58980 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
58981 neg find mustInstanceOfEClass_class(problem,interpretation,element);
58982 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
58983 neg find scopeDisallowsNewEClassifier_class(problem, interpretation);
58984 neg find isPrimitive(element);
58985} or {
58986 find interpretation(problem,interpretation);
58987 PartialInterpretation.openWorldElements(interpretation,element);
58988 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
58989 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
58990 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
58991 neg find mustInstanceOfEObject_class(problem,interpretation,element);
58992 neg find mustInstanceOfEDataType_class(problem,interpretation,element);
58993 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
58994 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
58995 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
58996 neg find mustInstanceOfEClass_class(problem,interpretation,element);
58997 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
58998 neg find scopeDisallowsNewEClassifier_class(problem, interpretation);
58999 neg find isPrimitive(element);
59000} or
59001{ find mustInstanceOfEClassifier_class(problem,interpretation,element); }
59002/**
59003 * An element must be an instance of type "EDataType class".
59004 */
59005private pattern mustInstanceOfEDataType_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
59006 Type.name(type,"EDataType class");
59007 find directInstanceOf(problem,interpretation,element,type);
59008}
59009private pattern scopeDisallowsNewEDataType_class(problem:LogicProblem, interpretation:PartialInterpretation) {
59010 find interpretation(problem,interpretation);
59011 PartialInterpretation.scopes(interpretation,scope);
59012 Scope.targetTypeInterpretation(scope,typeInterpretation);
59013 Scope.maxNewElements(scope,0);
59014 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
59015 Type.name(type,"EDataType class");
59016}
59017
59018/**
59019 * An element may be an instance of type "EDataType class".
59020 */
59021private pattern mayInstanceOfEDataType_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
59022{
59023 find interpretation(problem,interpretation);
59024 PartialInterpretation.newElements(interpretation,element);
59025 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
59026 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
59027 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
59028 neg find mustInstanceOfEEnum_class(problem,interpretation,element);
59029 neg find mustInstanceOfEObject_class(problem,interpretation,element);
59030 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
59031 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
59032 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
59033 neg find mustInstanceOfEClass_class(problem,interpretation,element);
59034 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
59035 neg find scopeDisallowsNewEDataType_class(problem, interpretation);
59036 neg find isPrimitive(element);
59037} or {
59038 find interpretation(problem,interpretation);
59039 PartialInterpretation.openWorldElements(interpretation,element);
59040 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
59041 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
59042 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
59043 neg find mustInstanceOfEEnum_class(problem,interpretation,element);
59044 neg find mustInstanceOfEObject_class(problem,interpretation,element);
59045 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
59046 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
59047 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
59048 neg find mustInstanceOfEClass_class(problem,interpretation,element);
59049 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
59050 neg find scopeDisallowsNewEDataType_class(problem, interpretation);
59051 neg find isPrimitive(element);
59052} or
59053{ find mustInstanceOfEDataType_class(problem,interpretation,element); }
59054/**
59055 * An element must be an instance of type "EEnum class".
59056 */
59057private pattern mustInstanceOfEEnum_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
59058 Type.name(type,"EEnum class");
59059 find directInstanceOf(problem,interpretation,element,type);
59060}
59061private pattern scopeDisallowsNewEEnum_class(problem:LogicProblem, interpretation:PartialInterpretation) {
59062 find interpretation(problem,interpretation);
59063 PartialInterpretation.scopes(interpretation,scope);
59064 Scope.targetTypeInterpretation(scope,typeInterpretation);
59065 Scope.maxNewElements(scope,0);
59066 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
59067 Type.name(type,"EEnum class");
59068}
59069
59070/**
59071 * An element may be an instance of type "EEnum class".
59072 */
59073private pattern mayInstanceOfEEnum_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
59074{
59075 find interpretation(problem,interpretation);
59076 PartialInterpretation.newElements(interpretation,element);
59077 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
59078 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
59079 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
59080 neg find mustInstanceOfEObject_class(problem,interpretation,element);
59081 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
59082 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
59083 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
59084 neg find mustInstanceOfEClass_class(problem,interpretation,element);
59085 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
59086 neg find scopeDisallowsNewEEnum_class(problem, interpretation);
59087 neg find isPrimitive(element);
59088} or {
59089 find interpretation(problem,interpretation);
59090 PartialInterpretation.openWorldElements(interpretation,element);
59091 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
59092 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
59093 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
59094 neg find mustInstanceOfEObject_class(problem,interpretation,element);
59095 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
59096 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
59097 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
59098 neg find mustInstanceOfEClass_class(problem,interpretation,element);
59099 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
59100 neg find scopeDisallowsNewEEnum_class(problem, interpretation);
59101 neg find isPrimitive(element);
59102} or
59103{ find mustInstanceOfEEnum_class(problem,interpretation,element); }
59104/**
59105 * An element must be an instance of type "EEnumLiteral class".
59106 */
59107private pattern mustInstanceOfEEnumLiteral_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
59108 Type.name(type,"EEnumLiteral class");
59109 find directInstanceOf(problem,interpretation,element,type);
59110}
59111private pattern scopeDisallowsNewEEnumLiteral_class(problem:LogicProblem, interpretation:PartialInterpretation) {
59112 find interpretation(problem,interpretation);
59113 PartialInterpretation.scopes(interpretation,scope);
59114 Scope.targetTypeInterpretation(scope,typeInterpretation);
59115 Scope.maxNewElements(scope,0);
59116 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
59117 Type.name(type,"EEnumLiteral class");
59118}
59119
59120/**
59121 * An element may be an instance of type "EEnumLiteral class".
59122 */
59123private pattern mayInstanceOfEEnumLiteral_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
59124{
59125 find interpretation(problem,interpretation);
59126 PartialInterpretation.newElements(interpretation,element);
59127 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
59128 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
59129 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
59130 neg find mustInstanceOfEObject_class(problem,interpretation,element);
59131 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
59132 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
59133 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
59134 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
59135 neg find scopeDisallowsNewEEnumLiteral_class(problem, interpretation);
59136 neg find isPrimitive(element);
59137} or {
59138 find interpretation(problem,interpretation);
59139 PartialInterpretation.openWorldElements(interpretation,element);
59140 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
59141 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
59142 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
59143 neg find mustInstanceOfEObject_class(problem,interpretation,element);
59144 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
59145 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
59146 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
59147 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
59148 neg find scopeDisallowsNewEEnumLiteral_class(problem, interpretation);
59149 neg find isPrimitive(element);
59150} or
59151{ find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); }
59152/**
59153 * An element must be an instance of type "EModelElement class".
59154 */
59155private pattern mustInstanceOfEModelElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
59156 Type.name(type,"EModelElement class");
59157 find directInstanceOf(problem,interpretation,element,type);
59158}
59159private pattern scopeDisallowsNewEModelElement_class(problem:LogicProblem, interpretation:PartialInterpretation) {
59160 find interpretation(problem,interpretation);
59161 PartialInterpretation.scopes(interpretation,scope);
59162 Scope.targetTypeInterpretation(scope,typeInterpretation);
59163 Scope.maxNewElements(scope,0);
59164 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
59165 Type.name(type,"EModelElement class");
59166}
59167
59168/**
59169 * An element may be an instance of type "EModelElement class".
59170 */
59171private pattern mayInstanceOfEModelElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
59172{
59173 find interpretation(problem,interpretation);
59174 PartialInterpretation.newElements(interpretation,element);
59175 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
59176 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
59177 neg find mustInstanceOfEObject_class(problem,interpretation,element);
59178 neg find mustInstanceOfENamedElement_class(problem,interpretation,element);
59179 neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element);
59180 neg find scopeDisallowsNewEModelElement_class(problem, interpretation);
59181 neg find isPrimitive(element);
59182} or {
59183 find interpretation(problem,interpretation);
59184 PartialInterpretation.openWorldElements(interpretation,element);
59185 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
59186 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
59187 neg find mustInstanceOfEObject_class(problem,interpretation,element);
59188 neg find mustInstanceOfENamedElement_class(problem,interpretation,element);
59189 neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element);
59190 neg find scopeDisallowsNewEModelElement_class(problem, interpretation);
59191 neg find isPrimitive(element);
59192} or
59193{ find mustInstanceOfEModelElement_class(problem,interpretation,element); }
59194/**
59195 * An element must be an instance of type "ENamedElement class".
59196 */
59197private pattern mustInstanceOfENamedElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
59198 Type.name(type,"ENamedElement class");
59199 find directInstanceOf(problem,interpretation,element,type);
59200}
59201private pattern scopeDisallowsNewENamedElement_class(problem:LogicProblem, interpretation:PartialInterpretation) {
59202 find interpretation(problem,interpretation);
59203 PartialInterpretation.scopes(interpretation,scope);
59204 Scope.targetTypeInterpretation(scope,typeInterpretation);
59205 Scope.maxNewElements(scope,0);
59206 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
59207 Type.name(type,"ENamedElement class");
59208}
59209
59210/**
59211 * An element may be an instance of type "ENamedElement class".
59212 */
59213private pattern mayInstanceOfENamedElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
59214{
59215 find interpretation(problem,interpretation);
59216 PartialInterpretation.newElements(interpretation,element);
59217 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
59218 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
59219 neg find mustInstanceOfEObject_class(problem,interpretation,element);
59220 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
59221 neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element);
59222 neg find scopeDisallowsNewENamedElement_class(problem, interpretation);
59223 neg find isPrimitive(element);
59224} or {
59225 find interpretation(problem,interpretation);
59226 PartialInterpretation.openWorldElements(interpretation,element);
59227 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
59228 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
59229 neg find mustInstanceOfEObject_class(problem,interpretation,element);
59230 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
59231 neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element);
59232 neg find scopeDisallowsNewENamedElement_class(problem, interpretation);
59233 neg find isPrimitive(element);
59234} or
59235{ find mustInstanceOfENamedElement_class(problem,interpretation,element); }
59236/**
59237 * An element must be an instance of type "EObject class".
59238 */
59239private pattern mustInstanceOfEObject_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
59240 Type.name(type,"EObject class");
59241 find directInstanceOf(problem,interpretation,element,type);
59242}
59243private pattern scopeDisallowsNewEObject_class(problem:LogicProblem, interpretation:PartialInterpretation) {
59244 find interpretation(problem,interpretation);
59245 PartialInterpretation.scopes(interpretation,scope);
59246 Scope.targetTypeInterpretation(scope,typeInterpretation);
59247 Scope.maxNewElements(scope,0);
59248 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
59249 Type.name(type,"EObject class");
59250}
59251
59252/**
59253 * An element may be an instance of type "EObject class".
59254 */
59255private pattern mayInstanceOfEObject_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
59256{
59257 find interpretation(problem,interpretation);
59258 PartialInterpretation.newElements(interpretation,element);
59259 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
59260 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
59261 neg find mustInstanceOfEModelElement_class(problem,interpretation,element);
59262 neg find scopeDisallowsNewEObject_class(problem, interpretation);
59263 neg find isPrimitive(element);
59264} or {
59265 find interpretation(problem,interpretation);
59266 PartialInterpretation.openWorldElements(interpretation,element);
59267 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
59268 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
59269 neg find mustInstanceOfEModelElement_class(problem,interpretation,element);
59270 neg find scopeDisallowsNewEObject_class(problem, interpretation);
59271 neg find isPrimitive(element);
59272} or
59273{ find mustInstanceOfEObject_class(problem,interpretation,element); }
59274/**
59275 * An element must be an instance of type "EOperation class".
59276 */
59277private pattern mustInstanceOfEOperation_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
59278 Type.name(type,"EOperation class");
59279 find directInstanceOf(problem,interpretation,element,type);
59280}
59281private pattern scopeDisallowsNewEOperation_class(problem:LogicProblem, interpretation:PartialInterpretation) {
59282 find interpretation(problem,interpretation);
59283 PartialInterpretation.scopes(interpretation,scope);
59284 Scope.targetTypeInterpretation(scope,typeInterpretation);
59285 Scope.maxNewElements(scope,0);
59286 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
59287 Type.name(type,"EOperation class");
59288}
59289
59290/**
59291 * An element may be an instance of type "EOperation class".
59292 */
59293private pattern mayInstanceOfEOperation_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
59294{
59295 find interpretation(problem,interpretation);
59296 PartialInterpretation.newElements(interpretation,element);
59297 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
59298 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
59299 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
59300 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
59301 neg find mustInstanceOfEObject_class(problem,interpretation,element);
59302 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
59303 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
59304 neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element);
59305 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
59306 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
59307 neg find scopeDisallowsNewEOperation_class(problem, interpretation);
59308 neg find isPrimitive(element);
59309} or {
59310 find interpretation(problem,interpretation);
59311 PartialInterpretation.openWorldElements(interpretation,element);
59312 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
59313 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
59314 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
59315 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
59316 neg find mustInstanceOfEObject_class(problem,interpretation,element);
59317 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
59318 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
59319 neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element);
59320 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
59321 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
59322 neg find scopeDisallowsNewEOperation_class(problem, interpretation);
59323 neg find isPrimitive(element);
59324} or
59325{ find mustInstanceOfEOperation_class(problem,interpretation,element); }
59326/**
59327 * An element must be an instance of type "EPackage class".
59328 */
59329private pattern mustInstanceOfEPackage_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
59330 Type.name(type,"EPackage class");
59331 find directInstanceOf(problem,interpretation,element,type);
59332}
59333private pattern scopeDisallowsNewEPackage_class(problem:LogicProblem, interpretation:PartialInterpretation) {
59334 find interpretation(problem,interpretation);
59335 PartialInterpretation.scopes(interpretation,scope);
59336 Scope.targetTypeInterpretation(scope,typeInterpretation);
59337 Scope.maxNewElements(scope,0);
59338 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
59339 Type.name(type,"EPackage class");
59340}
59341
59342/**
59343 * An element may be an instance of type "EPackage class".
59344 */
59345private pattern mayInstanceOfEPackage_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
59346{
59347 find interpretation(problem,interpretation);
59348 PartialInterpretation.newElements(interpretation,element);
59349 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
59350 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
59351 neg find mustInstanceOfEObject_class(problem,interpretation,element);
59352 neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element);
59353 neg find scopeDisallowsNewEPackage_class(problem, interpretation);
59354 neg find isPrimitive(element);
59355} or {
59356 find interpretation(problem,interpretation);
59357 PartialInterpretation.openWorldElements(interpretation,element);
59358 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
59359 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
59360 neg find mustInstanceOfEObject_class(problem,interpretation,element);
59361 neg find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element);
59362 neg find scopeDisallowsNewEPackage_class(problem, interpretation);
59363 neg find isPrimitive(element);
59364} or
59365{ find mustInstanceOfEPackage_class(problem,interpretation,element); }
59366/**
59367 * An element must be an instance of type "EParameter class".
59368 */ 45587 */
59369private pattern mustInstanceOfEParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 45588private pattern mustInstanceOfFunctionalElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
59370 Type.name(type,"EParameter class"); 45589 Type.name(type,"FunctionalElement class");
59371 find directInstanceOf(problem,interpretation,element,type); 45590 find directInstanceOf(problem,interpretation,element,type);
59372} 45591}
59373private pattern scopeDisallowsNewEParameter_class(problem:LogicProblem, interpretation:PartialInterpretation) { 45592private pattern scopeDisallowsNewFunctionalElement_class(problem:LogicProblem, interpretation:PartialInterpretation) {
59374 find interpretation(problem,interpretation); 45593 find interpretation(problem,interpretation);
59375 PartialInterpretation.scopes(interpretation,scope); 45594 PartialInterpretation.scopes(interpretation,scope);
59376 Scope.targetTypeInterpretation(scope,typeInterpretation); 45595 Scope.targetTypeInterpretation(scope,typeInterpretation);
59377 Scope.maxNewElements(scope,0); 45596 Scope.maxNewElements(scope,0);
59378 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 45597 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
59379 Type.name(type,"EParameter class"); 45598 Type.name(type,"FunctionalElement class");
59380} 45599}
59381 45600
59382/** 45601/**
59383 * An element may be an instance of type "EParameter class". 45602 * An element may be an instance of type "FunctionalElement class".
59384 */ 45603 */
59385private pattern mayInstanceOfEParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 45604private pattern mayInstanceOfFunctionalElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
59386{ 45605{
59387 find interpretation(problem,interpretation); 45606 find interpretation(problem,interpretation);
59388 PartialInterpretation.newElements(interpretation,element); 45607 PartialInterpretation.newElements(interpretation,element);
59389 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 45608 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
59390 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 45609 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
59391 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 45610 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
59392 neg find mustInstanceOfEObject_class(problem,interpretation,element); 45611 neg find mustInstanceOfFunction_class(problem,interpretation,element);
59393 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); 45612 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
59394 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); 45613 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
59395 neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); 45614 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
59396 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
59397 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
59398 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
59399 neg find scopeDisallowsNewEParameter_class(problem, interpretation);
59400 neg find isPrimitive(element); 45615 neg find isPrimitive(element);
59401} or { 45616} or {
59402 find interpretation(problem,interpretation); 45617 find interpretation(problem,interpretation);
59403 PartialInterpretation.openWorldElements(interpretation,element); 45618 PartialInterpretation.openWorldElements(interpretation,element);
59404 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 45619 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
59405 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 45620 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
59406 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 45621 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
59407 neg find mustInstanceOfEObject_class(problem,interpretation,element); 45622 neg find mustInstanceOfFunction_class(problem,interpretation,element);
59408 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); 45623 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
59409 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); 45624 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
59410 neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); 45625 neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation);
59411 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
59412 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
59413 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
59414 neg find scopeDisallowsNewEParameter_class(problem, interpretation);
59415 neg find isPrimitive(element); 45626 neg find isPrimitive(element);
59416} or 45627} or
59417{ find mustInstanceOfEParameter_class(problem,interpretation,element); } 45628{ find mustInstanceOfFunctionalElement_class(problem,interpretation,element); }
59418/** 45629/**
59419 * An element must be an instance of type "EReference class". 45630 * An element must be an instance of type "FunctionalArchitectureModel class".
59420 */ 45631 */
59421private pattern mustInstanceOfEReference_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 45632private pattern mustInstanceOfFunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
59422 Type.name(type,"EReference class"); 45633 Type.name(type,"FunctionalArchitectureModel class");
59423 find directInstanceOf(problem,interpretation,element,type); 45634 find directInstanceOf(problem,interpretation,element,type);
59424} 45635}
59425private pattern scopeDisallowsNewEReference_class(problem:LogicProblem, interpretation:PartialInterpretation) { 45636private pattern scopeDisallowsNewFunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation) {
59426 find interpretation(problem,interpretation); 45637 find interpretation(problem,interpretation);
59427 PartialInterpretation.scopes(interpretation,scope); 45638 PartialInterpretation.scopes(interpretation,scope);
59428 Scope.targetTypeInterpretation(scope,typeInterpretation); 45639 Scope.targetTypeInterpretation(scope,typeInterpretation);
59429 Scope.maxNewElements(scope,0); 45640 Scope.maxNewElements(scope,0);
59430 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 45641 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
59431 Type.name(type,"EReference class"); 45642 Type.name(type,"FunctionalArchitectureModel class");
59432} 45643}
59433 45644
59434/** 45645/**
59435 * An element may be an instance of type "EReference class". 45646 * An element may be an instance of type "FunctionalArchitectureModel class".
59436 */ 45647 */
59437private pattern mayInstanceOfEReference_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 45648private pattern mayInstanceOfFunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
59438{ 45649{
59439 find interpretation(problem,interpretation); 45650 find interpretation(problem,interpretation);
59440 PartialInterpretation.newElements(interpretation,element); 45651 PartialInterpretation.newElements(interpretation,element);
59441 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 45652 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
59442 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 45653 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
59443 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 45654 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
59444 neg find mustInstanceOfEParameter_class(problem,interpretation,element); 45655 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
59445 neg find mustInstanceOfEObject_class(problem,interpretation,element); 45656 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
59446 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); 45657 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
59447 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
59448 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
59449 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
59450 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
59451 neg find mustInstanceOfEAttribute_class(problem,interpretation,element);
59452 neg find scopeDisallowsNewEReference_class(problem, interpretation);
59453 neg find isPrimitive(element); 45658 neg find isPrimitive(element);
59454} or { 45659} or {
59455 find interpretation(problem,interpretation); 45660 find interpretation(problem,interpretation);
59456 PartialInterpretation.openWorldElements(interpretation,element); 45661 PartialInterpretation.openWorldElements(interpretation,element);
59457 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 45662 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
59458 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 45663 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
59459 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 45664 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
59460 neg find mustInstanceOfEParameter_class(problem,interpretation,element); 45665 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
59461 neg find mustInstanceOfEObject_class(problem,interpretation,element); 45666 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
59462 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); 45667 neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation);
59463 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
59464 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
59465 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
59466 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
59467 neg find mustInstanceOfEAttribute_class(problem,interpretation,element);
59468 neg find scopeDisallowsNewEReference_class(problem, interpretation);
59469 neg find isPrimitive(element); 45668 neg find isPrimitive(element);
59470} or 45669} or
59471{ find mustInstanceOfEReference_class(problem,interpretation,element); } 45670{ find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); }
59472/** 45671/**
59473 * An element must be an instance of type "EStructuralFeature class". 45672 * An element must be an instance of type "Function class".
59474 */ 45673 */
59475private pattern mustInstanceOfEStructuralFeature_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 45674private pattern mustInstanceOfFunction_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
59476 Type.name(type,"EStructuralFeature class"); 45675 Type.name(type,"Function class");
59477 find directInstanceOf(problem,interpretation,element,type); 45676 find directInstanceOf(problem,interpretation,element,type);
59478} 45677}
59479private pattern scopeDisallowsNewEStructuralFeature_class(problem:LogicProblem, interpretation:PartialInterpretation) { 45678private pattern scopeDisallowsNewFunction_class(problem:LogicProblem, interpretation:PartialInterpretation) {
59480 find interpretation(problem,interpretation); 45679 find interpretation(problem,interpretation);
59481 PartialInterpretation.scopes(interpretation,scope); 45680 PartialInterpretation.scopes(interpretation,scope);
59482 Scope.targetTypeInterpretation(scope,typeInterpretation); 45681 Scope.targetTypeInterpretation(scope,typeInterpretation);
59483 Scope.maxNewElements(scope,0); 45682 Scope.maxNewElements(scope,0);
59484 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 45683 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
59485 Type.name(type,"EStructuralFeature class"); 45684 Type.name(type,"Function class");
59486} 45685}
59487 45686
59488/** 45687/**
59489 * An element may be an instance of type "EStructuralFeature class". 45688 * An element may be an instance of type "Function class".
59490 */ 45689 */
59491private pattern mayInstanceOfEStructuralFeature_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 45690private pattern mayInstanceOfFunction_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
59492{ 45691{
59493 find interpretation(problem,interpretation); 45692 find interpretation(problem,interpretation);
59494 PartialInterpretation.newElements(interpretation,element); 45693 PartialInterpretation.newElements(interpretation,element);
59495 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 45694 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
59496 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 45695 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
59497 neg find mustInstanceOfEParameter_class(problem,interpretation,element); 45696 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
59498 neg find mustInstanceOfEReference_class(problem,interpretation,element); 45697 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
59499 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 45698 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
59500 neg find mustInstanceOfEObject_class(problem,interpretation,element); 45699 neg find scopeDisallowsNewFunction_class(problem, interpretation);
59501 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
59502 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
59503 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
59504 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
59505 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
59506 neg find mustInstanceOfEAttribute_class(problem,interpretation,element);
59507 neg find scopeDisallowsNewEStructuralFeature_class(problem, interpretation);
59508 neg find isPrimitive(element); 45700 neg find isPrimitive(element);
59509} or { 45701} or {
59510 find interpretation(problem,interpretation); 45702 find interpretation(problem,interpretation);
59511 PartialInterpretation.openWorldElements(interpretation,element); 45703 PartialInterpretation.openWorldElements(interpretation,element);
59512 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 45704 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
59513 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 45705 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
59514 neg find mustInstanceOfEParameter_class(problem,interpretation,element); 45706 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
59515 neg find mustInstanceOfEReference_class(problem,interpretation,element); 45707 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
59516 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 45708 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
59517 neg find mustInstanceOfEObject_class(problem,interpretation,element); 45709 neg find scopeDisallowsNewFunction_class(problem, interpretation);
59518 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
59519 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
59520 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
59521 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
59522 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
59523 neg find mustInstanceOfEAttribute_class(problem,interpretation,element);
59524 neg find scopeDisallowsNewEStructuralFeature_class(problem, interpretation);
59525 neg find isPrimitive(element); 45710 neg find isPrimitive(element);
59526} or 45711} or
59527{ find mustInstanceOfEStructuralFeature_class(problem,interpretation,element); } 45712{ find mustInstanceOfFunction_class(problem,interpretation,element); }
59528/** 45713/**
59529 * An element must be an instance of type "ETypedElement class". 45714 * An element must be an instance of type "FAMTerminator class".
59530 */ 45715 */
59531private pattern mustInstanceOfETypedElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 45716private pattern mustInstanceOfFAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
59532 Type.name(type,"ETypedElement class"); 45717 Type.name(type,"FAMTerminator class");
59533 find directInstanceOf(problem,interpretation,element,type); 45718 find directInstanceOf(problem,interpretation,element,type);
59534} 45719}
59535private pattern scopeDisallowsNewETypedElement_class(problem:LogicProblem, interpretation:PartialInterpretation) { 45720private pattern scopeDisallowsNewFAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation) {
59536 find interpretation(problem,interpretation); 45721 find interpretation(problem,interpretation);
59537 PartialInterpretation.scopes(interpretation,scope); 45722 PartialInterpretation.scopes(interpretation,scope);
59538 Scope.targetTypeInterpretation(scope,typeInterpretation); 45723 Scope.targetTypeInterpretation(scope,typeInterpretation);
59539 Scope.maxNewElements(scope,0); 45724 Scope.maxNewElements(scope,0);
59540 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 45725 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
59541 Type.name(type,"ETypedElement class"); 45726 Type.name(type,"FAMTerminator class");
59542} 45727}
59543 45728
59544/** 45729/**
59545 * An element may be an instance of type "ETypedElement class". 45730 * An element may be an instance of type "FAMTerminator class".
59546 */ 45731 */
59547private pattern mayInstanceOfETypedElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 45732private pattern mayInstanceOfFAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
59548{ 45733{
59549 find interpretation(problem,interpretation); 45734 find interpretation(problem,interpretation);
59550 PartialInterpretation.newElements(interpretation,element); 45735 PartialInterpretation.newElements(interpretation,element);
59551 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 45736 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
59552 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 45737 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
59553 neg find mustInstanceOfEParameter_class(problem,interpretation,element); 45738 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
59554 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 45739 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
59555 neg find mustInstanceOfEObject_class(problem,interpretation,element); 45740 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
59556 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); 45741 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
59557 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
59558 neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element);
59559 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
59560 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
59561 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
59562 neg find scopeDisallowsNewETypedElement_class(problem, interpretation);
59563 neg find isPrimitive(element); 45742 neg find isPrimitive(element);
59564} or { 45743} or {
59565 find interpretation(problem,interpretation); 45744 find interpretation(problem,interpretation);
59566 PartialInterpretation.openWorldElements(interpretation,element); 45745 PartialInterpretation.openWorldElements(interpretation,element);
59567 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 45746 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
59568 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 45747 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
59569 neg find mustInstanceOfEParameter_class(problem,interpretation,element); 45748 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
59570 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 45749 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
59571 neg find mustInstanceOfEObject_class(problem,interpretation,element); 45750 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
59572 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); 45751 neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation);
59573 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
59574 neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element);
59575 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
59576 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
59577 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
59578 neg find scopeDisallowsNewETypedElement_class(problem, interpretation);
59579 neg find isPrimitive(element); 45752 neg find isPrimitive(element);
59580} or 45753} or
59581{ find mustInstanceOfETypedElement_class(problem,interpretation,element); } 45754{ find mustInstanceOfFAMTerminator_class(problem,interpretation,element); }
59582/** 45755/**
59583 * An element must be an instance of type "EStringToStringMapEntry class". 45756 * An element must be an instance of type "InformationLink class".
59584 */ 45757 */
59585private pattern mustInstanceOfEStringToStringMapEntry_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 45758private pattern mustInstanceOfInformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
59586 Type.name(type,"EStringToStringMapEntry class"); 45759 Type.name(type,"InformationLink class");
59587 find directInstanceOf(problem,interpretation,element,type); 45760 find directInstanceOf(problem,interpretation,element,type);
59588} 45761}
59589private pattern scopeDisallowsNewEStringToStringMapEntry_class(problem:LogicProblem, interpretation:PartialInterpretation) { 45762private pattern scopeDisallowsNewInformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation) {
59590 find interpretation(problem,interpretation); 45763 find interpretation(problem,interpretation);
59591 PartialInterpretation.scopes(interpretation,scope); 45764 PartialInterpretation.scopes(interpretation,scope);
59592 Scope.targetTypeInterpretation(scope,typeInterpretation); 45765 Scope.targetTypeInterpretation(scope,typeInterpretation);
59593 Scope.maxNewElements(scope,0); 45766 Scope.maxNewElements(scope,0);
59594 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 45767 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
59595 Type.name(type,"EStringToStringMapEntry class"); 45768 Type.name(type,"InformationLink class");
59596} 45769}
59597 45770
59598/** 45771/**
59599 * An element may be an instance of type "EStringToStringMapEntry class". 45772 * An element may be an instance of type "InformationLink class".
59600 */ 45773 */
59601private pattern mayInstanceOfEStringToStringMapEntry_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 45774private pattern mayInstanceOfInformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
59602{ 45775{
59603 find interpretation(problem,interpretation); 45776 find interpretation(problem,interpretation);
59604 PartialInterpretation.newElements(interpretation,element); 45777 PartialInterpretation.newElements(interpretation,element);
59605 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 45778 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
59606 neg find mustInstanceOfEObject_class(problem,interpretation,element); 45779 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
59607 neg find mustInstanceOfEModelElement_class(problem,interpretation,element); 45780 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
59608 neg find scopeDisallowsNewEStringToStringMapEntry_class(problem, interpretation); 45781 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
45782 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
45783 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
59609 neg find isPrimitive(element); 45784 neg find isPrimitive(element);
59610} or { 45785} or {
59611 find interpretation(problem,interpretation); 45786 find interpretation(problem,interpretation);
59612 PartialInterpretation.openWorldElements(interpretation,element); 45787 PartialInterpretation.openWorldElements(interpretation,element);
59613 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 45788 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
59614 neg find mustInstanceOfEObject_class(problem,interpretation,element); 45789 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
59615 neg find mustInstanceOfEModelElement_class(problem,interpretation,element); 45790 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
59616 neg find scopeDisallowsNewEStringToStringMapEntry_class(problem, interpretation); 45791 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
45792 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
45793 neg find scopeDisallowsNewInformationLink_class(problem, interpretation);
59617 neg find isPrimitive(element); 45794 neg find isPrimitive(element);
59618} or 45795} or
59619{ find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); } 45796{ find mustInstanceOfInformationLink_class(problem,interpretation,element); }
59620/** 45797/**
59621 * An element must be an instance of type "EGenericType class". 45798 * An element must be an instance of type "FunctionalInterface class".
59622 */ 45799 */
59623private pattern mustInstanceOfEGenericType_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 45800private pattern mustInstanceOfFunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
59624 Type.name(type,"EGenericType class"); 45801 Type.name(type,"FunctionalInterface class");
59625 find directInstanceOf(problem,interpretation,element,type); 45802 find directInstanceOf(problem,interpretation,element,type);
59626} 45803}
59627private pattern scopeDisallowsNewEGenericType_class(problem:LogicProblem, interpretation:PartialInterpretation) { 45804private pattern scopeDisallowsNewFunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation) {
59628 find interpretation(problem,interpretation); 45805 find interpretation(problem,interpretation);
59629 PartialInterpretation.scopes(interpretation,scope); 45806 PartialInterpretation.scopes(interpretation,scope);
59630 Scope.targetTypeInterpretation(scope,typeInterpretation); 45807 Scope.targetTypeInterpretation(scope,typeInterpretation);
59631 Scope.maxNewElements(scope,0); 45808 Scope.maxNewElements(scope,0);
59632 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 45809 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
59633 Type.name(type,"EGenericType class"); 45810 Type.name(type,"FunctionalInterface class");
59634} 45811}
59635 45812
59636/** 45813/**
59637 * An element may be an instance of type "EGenericType class". 45814 * An element may be an instance of type "FunctionalInterface class".
59638 */ 45815 */
59639private pattern mayInstanceOfEGenericType_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 45816private pattern mayInstanceOfFunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
59640{ 45817{
59641 find interpretation(problem,interpretation); 45818 find interpretation(problem,interpretation);
59642 PartialInterpretation.newElements(interpretation,element); 45819 PartialInterpretation.newElements(interpretation,element);
59643 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 45820 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
59644 neg find mustInstanceOfEObject_class(problem,interpretation,element); 45821 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
59645 neg find mustInstanceOfEModelElement_class(problem,interpretation,element); 45822 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
59646 neg find scopeDisallowsNewEGenericType_class(problem, interpretation); 45823 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
45824 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
45825 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
59647 neg find isPrimitive(element); 45826 neg find isPrimitive(element);
59648} or { 45827} or {
59649 find interpretation(problem,interpretation); 45828 find interpretation(problem,interpretation);
59650 PartialInterpretation.openWorldElements(interpretation,element); 45829 PartialInterpretation.openWorldElements(interpretation,element);
59651 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 45830 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
59652 neg find mustInstanceOfEObject_class(problem,interpretation,element); 45831 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
59653 neg find mustInstanceOfEModelElement_class(problem,interpretation,element); 45832 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
59654 neg find scopeDisallowsNewEGenericType_class(problem, interpretation); 45833 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
45834 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
45835 neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation);
59655 neg find isPrimitive(element); 45836 neg find isPrimitive(element);
59656} or 45837} or
59657{ find mustInstanceOfEGenericType_class(problem,interpretation,element); } 45838{ find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); }
59658/** 45839/**
59659 * An element must be an instance of type "ETypeParameter class". 45840 * An element must be an instance of type "FunctionalInput class".
59660 */ 45841 */
59661private pattern mustInstanceOfETypeParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 45842private pattern mustInstanceOfFunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
59662 Type.name(type,"ETypeParameter class"); 45843 Type.name(type,"FunctionalInput class");
59663 find directInstanceOf(problem,interpretation,element,type); 45844 find directInstanceOf(problem,interpretation,element,type);
59664} 45845}
59665private pattern scopeDisallowsNewETypeParameter_class(problem:LogicProblem, interpretation:PartialInterpretation) { 45846private pattern scopeDisallowsNewFunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation) {
59666 find interpretation(problem,interpretation); 45847 find interpretation(problem,interpretation);
59667 PartialInterpretation.scopes(interpretation,scope); 45848 PartialInterpretation.scopes(interpretation,scope);
59668 Scope.targetTypeInterpretation(scope,typeInterpretation); 45849 Scope.targetTypeInterpretation(scope,typeInterpretation);
59669 Scope.maxNewElements(scope,0); 45850 Scope.maxNewElements(scope,0);
59670 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 45851 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
59671 Type.name(type,"ETypeParameter class"); 45852 Type.name(type,"FunctionalInput class");
59672} 45853}
59673 45854
59674/** 45855/**
59675 * An element may be an instance of type "ETypeParameter class". 45856 * An element may be an instance of type "FunctionalInput class".
59676 */ 45857 */
59677private pattern mayInstanceOfETypeParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 45858private pattern mayInstanceOfFunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
59678{ 45859{
59679 find interpretation(problem,interpretation); 45860 find interpretation(problem,interpretation);
59680 PartialInterpretation.newElements(interpretation,element); 45861 PartialInterpretation.newElements(interpretation,element);
59681 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 45862 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
59682 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 45863 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
59683 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 45864 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
59684 neg find mustInstanceOfEObject_class(problem,interpretation,element); 45865 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
59685 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); 45866 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
59686 neg find mustInstanceOfETypedElement_class(problem,interpretation,element); 45867 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
59687 neg find mustInstanceOfEClassifier_class(problem,interpretation,element); 45868 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
59688 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
59689 neg find scopeDisallowsNewETypeParameter_class(problem, interpretation);
59690 neg find isPrimitive(element); 45869 neg find isPrimitive(element);
59691} or { 45870} or {
59692 find interpretation(problem,interpretation); 45871 find interpretation(problem,interpretation);
59693 PartialInterpretation.openWorldElements(interpretation,element); 45872 PartialInterpretation.openWorldElements(interpretation,element);
59694 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 45873 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
59695 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 45874 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
59696 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 45875 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
59697 neg find mustInstanceOfEObject_class(problem,interpretation,element); 45876 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
59698 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); 45877 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
59699 neg find mustInstanceOfETypedElement_class(problem,interpretation,element); 45878 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
59700 neg find mustInstanceOfEClassifier_class(problem,interpretation,element); 45879 neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation);
59701 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
59702 neg find scopeDisallowsNewETypeParameter_class(problem, interpretation);
59703 neg find isPrimitive(element); 45880 neg find isPrimitive(element);
59704} or 45881} or
59705{ find mustInstanceOfETypeParameter_class(problem,interpretation,element); } 45882{ find mustInstanceOfFunctionalInput_class(problem,interpretation,element); }
59706/**
59707 * An element must be an instance of type "EModelElement class DefinedPart".
59708 */
59709private pattern mustInstanceOfEModelElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
59710 Type.name(type,"EModelElement class DefinedPart");
59711 find directInstanceOf(problem,interpretation,element,type);
59712}
59713private pattern scopeDisallowsNewEModelElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
59714 find interpretation(problem,interpretation);
59715 PartialInterpretation.scopes(interpretation,scope);
59716 Scope.targetTypeInterpretation(scope,typeInterpretation);
59717 Scope.maxNewElements(scope,0);
59718 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
59719 Type.name(type,"EModelElement class DefinedPart");
59720}
59721
59722/**
59723 * An element may be an instance of type "EModelElement class DefinedPart".
59724 */
59725private pattern mayInstanceOfEModelElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
59726{ find mustInstanceOfEModelElement_class_DefinedPart(problem,interpretation,element); }
59727/** 45883/**
59728 * An element must be an instance of type "EModelElement class UndefinedPart". 45884 * An element must be an instance of type "FunctionalOutput class".
59729 */ 45885 */
59730private pattern mustInstanceOfEModelElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 45886private pattern mustInstanceOfFunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
59731 Type.name(type,"EModelElement class UndefinedPart"); 45887 Type.name(type,"FunctionalOutput class");
59732 find directInstanceOf(problem,interpretation,element,type); 45888 find directInstanceOf(problem,interpretation,element,type);
59733} 45889}
59734private pattern scopeDisallowsNewEModelElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { 45890private pattern scopeDisallowsNewFunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation) {
59735 find interpretation(problem,interpretation); 45891 find interpretation(problem,interpretation);
59736 PartialInterpretation.scopes(interpretation,scope); 45892 PartialInterpretation.scopes(interpretation,scope);
59737 Scope.targetTypeInterpretation(scope,typeInterpretation); 45893 Scope.targetTypeInterpretation(scope,typeInterpretation);
59738 Scope.maxNewElements(scope,0); 45894 Scope.maxNewElements(scope,0);
59739 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 45895 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
59740 Type.name(type,"EModelElement class UndefinedPart"); 45896 Type.name(type,"FunctionalOutput class");
59741} 45897}
59742 45898
59743/** 45899/**
59744 * An element may be an instance of type "EModelElement class UndefinedPart". 45900 * An element may be an instance of type "FunctionalOutput class".
59745 */ 45901 */
59746private pattern mayInstanceOfEModelElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 45902private pattern mayInstanceOfFunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
59747{ 45903{
59748 find interpretation(problem,interpretation); 45904 find interpretation(problem,interpretation);
59749 PartialInterpretation.newElements(interpretation,element); 45905 PartialInterpretation.newElements(interpretation,element);
59750 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 45906 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
59751 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 45907 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
59752 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 45908 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
59753 neg find mustInstanceOfEObject_class(problem,interpretation,element); 45909 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
59754 neg find mustInstanceOfENamedElement_class(problem,interpretation,element); 45910 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
59755 neg find scopeDisallowsNewEModelElement_class_UndefinedPart(problem, interpretation); 45911 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
45912 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
59756 neg find isPrimitive(element); 45913 neg find isPrimitive(element);
59757} or { 45914} or {
59758 find interpretation(problem,interpretation); 45915 find interpretation(problem,interpretation);
59759 PartialInterpretation.openWorldElements(interpretation,element); 45916 PartialInterpretation.openWorldElements(interpretation,element);
59760 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 45917 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
59761 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 45918 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
59762 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 45919 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
59763 neg find mustInstanceOfEObject_class(problem,interpretation,element); 45920 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
59764 neg find mustInstanceOfENamedElement_class(problem,interpretation,element); 45921 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
59765 neg find scopeDisallowsNewEModelElement_class_UndefinedPart(problem, interpretation); 45922 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
45923 neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation);
59766 neg find isPrimitive(element); 45924 neg find isPrimitive(element);
59767} or 45925} or
59768{ find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,element); } 45926{ find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); }
59769/**
59770 * An element must be an instance of type "ENamedElement class DefinedPart".
59771 */
59772private pattern mustInstanceOfENamedElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
59773 Type.name(type,"ENamedElement class DefinedPart");
59774 find directInstanceOf(problem,interpretation,element,type);
59775}
59776private pattern scopeDisallowsNewENamedElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
59777 find interpretation(problem,interpretation);
59778 PartialInterpretation.scopes(interpretation,scope);
59779 Scope.targetTypeInterpretation(scope,typeInterpretation);
59780 Scope.maxNewElements(scope,0);
59781 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
59782 Type.name(type,"ENamedElement class DefinedPart");
59783}
59784
59785/**
59786 * An element may be an instance of type "ENamedElement class DefinedPart".
59787 */
59788private pattern mayInstanceOfENamedElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
59789{ find mustInstanceOfENamedElement_class_DefinedPart(problem,interpretation,element); }
59790/** 45927/**
59791 * An element must be an instance of type "ENamedElement class UndefinedPart". 45928 * An element must be an instance of type "FunctionalData class".
59792 */ 45929 */
59793private pattern mustInstanceOfENamedElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 45930private pattern mustInstanceOfFunctionalData_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
59794 Type.name(type,"ENamedElement class UndefinedPart"); 45931 Type.name(type,"FunctionalData class");
59795 find directInstanceOf(problem,interpretation,element,type); 45932 find directInstanceOf(problem,interpretation,element,type);
59796} 45933}
59797private pattern scopeDisallowsNewENamedElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { 45934private pattern scopeDisallowsNewFunctionalData_class(problem:LogicProblem, interpretation:PartialInterpretation) {
59798 find interpretation(problem,interpretation); 45935 find interpretation(problem,interpretation);
59799 PartialInterpretation.scopes(interpretation,scope); 45936 PartialInterpretation.scopes(interpretation,scope);
59800 Scope.targetTypeInterpretation(scope,typeInterpretation); 45937 Scope.targetTypeInterpretation(scope,typeInterpretation);
59801 Scope.maxNewElements(scope,0); 45938 Scope.maxNewElements(scope,0);
59802 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 45939 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
59803 Type.name(type,"ENamedElement class UndefinedPart"); 45940 Type.name(type,"FunctionalData class");
59804} 45941}
59805 45942
59806/** 45943/**
59807 * An element may be an instance of type "ENamedElement class UndefinedPart". 45944 * An element may be an instance of type "FunctionalData class".
59808 */ 45945 */
59809private pattern mayInstanceOfENamedElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 45946private pattern mayInstanceOfFunctionalData_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
59810{ 45947{
59811 find interpretation(problem,interpretation); 45948 find interpretation(problem,interpretation);
59812 PartialInterpretation.newElements(interpretation,element); 45949 PartialInterpretation.newElements(interpretation,element);
59813 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 45950 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
59814 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 45951 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
59815 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 45952 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
59816 neg find mustInstanceOfEObject_class(problem,interpretation,element); 45953 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
59817 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); 45954 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
59818 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); 45955 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
59819 neg find mustInstanceOfETypedElement_class(problem,interpretation,element); 45956 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
59820 neg find mustInstanceOfEClassifier_class(problem,interpretation,element); 45957 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
59821 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
59822 neg find scopeDisallowsNewENamedElement_class_UndefinedPart(problem, interpretation);
59823 neg find isPrimitive(element); 45958 neg find isPrimitive(element);
59824} or { 45959} or {
59825 find interpretation(problem,interpretation); 45960 find interpretation(problem,interpretation);
59826 PartialInterpretation.openWorldElements(interpretation,element); 45961 PartialInterpretation.openWorldElements(interpretation,element);
59827 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element); 45962 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
59828 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 45963 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
59829 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 45964 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
59830 neg find mustInstanceOfEObject_class(problem,interpretation,element); 45965 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
59831 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element); 45966 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
59832 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element); 45967 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
59833 neg find mustInstanceOfETypedElement_class(problem,interpretation,element); 45968 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
59834 neg find mustInstanceOfEClassifier_class(problem,interpretation,element); 45969 neg find scopeDisallowsNewFunctionalData_class(problem, interpretation);
59835 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
59836 neg find scopeDisallowsNewENamedElement_class_UndefinedPart(problem, interpretation);
59837 neg find isPrimitive(element); 45970 neg find isPrimitive(element);
59838} or 45971} or
59839{ find mustInstanceOfENamedElement_class_UndefinedPart(problem,interpretation,element); } 45972{ find mustInstanceOfFunctionalData_class(problem,interpretation,element); }
59840/**
59841 * An element must be an instance of type "EPackage class DefinedPart".
59842 */
59843private pattern mustInstanceOfEPackage_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
59844 Type.name(type,"EPackage class DefinedPart");
59845 find directInstanceOf(problem,interpretation,element,type);
59846}
59847private pattern scopeDisallowsNewEPackage_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
59848 find interpretation(problem,interpretation);
59849 PartialInterpretation.scopes(interpretation,scope);
59850 Scope.targetTypeInterpretation(scope,typeInterpretation);
59851 Scope.maxNewElements(scope,0);
59852 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
59853 Type.name(type,"EPackage class DefinedPart");
59854}
59855
59856/**
59857 * An element may be an instance of type "EPackage class DefinedPart".
59858 */
59859private pattern mayInstanceOfEPackage_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
59860{ find mustInstanceOfEPackage_class_DefinedPart(problem,interpretation,element); }
59861/** 45973/**
59862 * An element must be an instance of type "EPackage class UndefinedPart". 45974 * An element must be an instance of type "FunctionType enum".
59863 */ 45975 */
59864private pattern mustInstanceOfEPackage_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { 45976private pattern mustInstanceOfFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
59865 Type.name(type,"EPackage class UndefinedPart"); 45977 Type.name(type,"FunctionType enum");
59866 find directInstanceOf(problem,interpretation,element,type); 45978 find directInstanceOf(problem,interpretation,element,type);
59867} 45979}
59868private pattern scopeDisallowsNewEPackage_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { 45980private pattern scopeDisallowsNewFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation) {
59869 find interpretation(problem,interpretation); 45981 find interpretation(problem,interpretation);
59870 PartialInterpretation.scopes(interpretation,scope); 45982 PartialInterpretation.scopes(interpretation,scope);
59871 Scope.targetTypeInterpretation(scope,typeInterpretation); 45983 Scope.targetTypeInterpretation(scope,typeInterpretation);
59872 Scope.maxNewElements(scope,0); 45984 Scope.maxNewElements(scope,0);
59873 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); 45985 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
59874 Type.name(type,"EPackage class UndefinedPart"); 45986 Type.name(type,"FunctionType enum");
59875} 45987}
59876 45988
59877/** 45989/**
59878 * An element may be an instance of type "EPackage class UndefinedPart". 45990 * An element may be an instance of type "FunctionType enum".
59879 */ 45991 */
59880private pattern mayInstanceOfEPackage_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) 45992private pattern mayInstanceOfFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
59881{ 45993{ find mustInstanceOfFunctionType_enum(problem,interpretation,element); }
59882 find interpretation(problem,interpretation);
59883 PartialInterpretation.newElements(interpretation,element);
59884 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
59885 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
59886 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
59887 neg find mustInstanceOfEObject_class(problem,interpretation,element);
59888 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
59889 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
59890 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
59891 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
59892 neg find scopeDisallowsNewEPackage_class_UndefinedPart(problem, interpretation);
59893 neg find isPrimitive(element);
59894} or {
59895 find interpretation(problem,interpretation);
59896 PartialInterpretation.openWorldElements(interpretation,element);
59897 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
59898 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
59899 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
59900 neg find mustInstanceOfEObject_class(problem,interpretation,element);
59901 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
59902 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
59903 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
59904 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
59905 neg find scopeDisallowsNewEPackage_class_UndefinedPart(problem, interpretation);
59906 neg find isPrimitive(element);
59907} or
59908{ find mustInstanceOfEPackage_class_UndefinedPart(problem,interpretation,element); }
59909 45994
59910////////// 45995//////////
59911// 1.2 Relation Declaration Indexers 45996// 1.2 Relation Declaration Indexers
59912////////// 45997//////////
59913/** 45998/**
59914 * Matcher for detecting tuples t where []eAttributeType reference EAttribute(source,target) 45999 * Matcher for detecting tuples t where []interface reference FunctionalElement(source,target)
59915 */
59916private pattern mustInRelationeAttributeType_reference_EAttribute(
59917 problem:LogicProblem, interpretation:PartialInterpretation,
59918 source: DefinedElement, target:DefinedElement)
59919{
59920 find interpretation(problem,interpretation);
59921 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
59922 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAttributeType reference EAttribute");
59923 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
59924 BinaryElementRelationLink.param1(link,source);
59925 BinaryElementRelationLink.param2(link,target);
59926}
59927/**
59928 * Matcher for detecting tuples t where <>eAttributeType reference EAttribute(source,target)
59929 */
59930private pattern mayInRelationeAttributeType_reference_EAttribute(
59931 problem:LogicProblem, interpretation:PartialInterpretation,
59932 source: DefinedElement, target:DefinedElement)
59933{
59934 find interpretation(problem,interpretation);
59935 // The two endpoint of the link have to exist
59936 find mayExist(problem, interpretation, source);
59937 find mayExist(problem, interpretation, target);
59938 // Type consistency
59939 find mayInstanceOfEAttribute_class(problem,interpretation,source);
59940 find mayInstanceOfEDataType_class(problem,interpretation,target);
59941 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
59942 // the upper bound of the multiplicity should be considered.
59943 numberOfExistingReferences == count find mustInRelationeAttributeType_reference_EAttribute(problem,interpretation,source,_);
59944 check(numberOfExistingReferences < 1);
59945} or {
59946 find mustInRelationeAttributeType_reference_EAttribute(problem,interpretation,source,target);
59947}
59948/**
59949 * Matcher for detecting tuples t where []details reference EAnnotation(source,target)
59950 */
59951private pattern mustInRelationdetails_reference_EAnnotation(
59952 problem:LogicProblem, interpretation:PartialInterpretation,
59953 source: DefinedElement, target:DefinedElement)
59954{
59955 find interpretation(problem,interpretation);
59956 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
59957 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"details reference EAnnotation");
59958 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
59959 BinaryElementRelationLink.param1(link,source);
59960 BinaryElementRelationLink.param2(link,target);
59961}
59962/**
59963 * Matcher for detecting tuples t where <>details reference EAnnotation(source,target)
59964 */
59965private pattern mayInRelationdetails_reference_EAnnotation(
59966 problem:LogicProblem, interpretation:PartialInterpretation,
59967 source: DefinedElement, target:DefinedElement)
59968{
59969 find interpretation(problem,interpretation);
59970 // The two endpoint of the link have to exist
59971 find mayExist(problem, interpretation, source);
59972 find mayExist(problem, interpretation, target);
59973 // Type consistency
59974 find mayInstanceOfEAnnotation_class(problem,interpretation,source);
59975 find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,target);
59976 // The reference is containment, then a new reference cannot be create if:
59977 // 1. Multiple parents
59978 neg find mustContains4(problem,interpretation,_,target);
59979 // 2. Circle in the containment hierarchy
59980 neg find mustTransitiveContains(source,target);
59981} or {
59982 find mustInRelationdetails_reference_EAnnotation(problem,interpretation,source,target);
59983}
59984/**
59985 * Matcher for detecting tuples t where []eModelElement reference EAnnotation(source,target)
59986 */ 46000 */
59987private pattern mustInRelationeModelElement_reference_EAnnotation( 46001private pattern mustInRelationinterface_reference_FunctionalElement(
59988 problem:LogicProblem, interpretation:PartialInterpretation, 46002 problem:LogicProblem, interpretation:PartialInterpretation,
59989 source: DefinedElement, target:DefinedElement) 46003 source: DefinedElement, target:DefinedElement)
59990{ 46004{
59991 find interpretation(problem,interpretation); 46005 find interpretation(problem,interpretation);
59992 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 46006 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
59993 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eModelElement reference EAnnotation"); 46007 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"interface reference FunctionalElement");
59994 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 46008 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
59995 BinaryElementRelationLink.param1(link,source); 46009 BinaryElementRelationLink.param1(link,source);
59996 BinaryElementRelationLink.param2(link,target); 46010 BinaryElementRelationLink.param2(link,target);
59997} 46011}
59998/** 46012/**
59999 * Matcher for detecting tuples t where <>eModelElement reference EAnnotation(source,target) 46013 * Matcher for detecting tuples t where <>interface reference FunctionalElement(source,target)
60000 */ 46014 */
60001private pattern mayInRelationeModelElement_reference_EAnnotation( 46015private pattern mayInRelationinterface_reference_FunctionalElement(
60002 problem:LogicProblem, interpretation:PartialInterpretation, 46016 problem:LogicProblem, interpretation:PartialInterpretation,
60003 source: DefinedElement, target:DefinedElement) 46017 source: DefinedElement, target:DefinedElement)
60004{ 46018{
@@ -60007,149 +46021,15 @@ private pattern mayInRelationeModelElement_reference_EAnnotation(
60007 find mayExist(problem, interpretation, source); 46021 find mayExist(problem, interpretation, source);
60008 find mayExist(problem, interpretation, target); 46022 find mayExist(problem, interpretation, target);
60009 // Type consistency 46023 // Type consistency
60010 find mayInstanceOfEAnnotation_class(problem,interpretation,source); 46024 find mayInstanceOfFunctionalElement_class(problem,interpretation,source);
60011 find mayInstanceOfEModelElement_class(problem,interpretation,target); 46025 find mayInstanceOfFunctionalInterface_class(problem,interpretation,target);
60012 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 46026 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
60013 // the upper bound of the multiplicity should be considered. 46027 // the upper bound of the multiplicity should be considered.
60014 numberOfExistingReferences == count find mustInRelationeModelElement_reference_EAnnotation(problem,interpretation,source,_); 46028 numberOfExistingReferences == count find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,source,_);
60015 check(numberOfExistingReferences < 1); 46029 check(numberOfExistingReferences < 1);
60016 // The eOpposite of the reference is containment, then a referene cannot be created if
60017 // 1. Multiple parents
60018 neg find mustContains4(problem,interpretation,source,_);
60019 // 2. Circle in the containment hierarchy
60020 neg find mustTransitiveContains(source,target);
60021} or {
60022 find mustInRelationeModelElement_reference_EAnnotation(problem,interpretation,source,target);
60023}
60024/**
60025 * Matcher for detecting tuples t where []contents reference EAnnotation(source,target)
60026 */
60027private pattern mustInRelationcontents_reference_EAnnotation(
60028 problem:LogicProblem, interpretation:PartialInterpretation,
60029 source: DefinedElement, target:DefinedElement)
60030{
60031 find interpretation(problem,interpretation);
60032 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
60033 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"contents reference EAnnotation");
60034 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
60035 BinaryElementRelationLink.param1(link,source);
60036 BinaryElementRelationLink.param2(link,target);
60037}
60038/**
60039 * Matcher for detecting tuples t where <>contents reference EAnnotation(source,target)
60040 */
60041private pattern mayInRelationcontents_reference_EAnnotation(
60042 problem:LogicProblem, interpretation:PartialInterpretation,
60043 source: DefinedElement, target:DefinedElement)
60044{
60045 find interpretation(problem,interpretation);
60046 // The two endpoint of the link have to exist
60047 find mayExist(problem, interpretation, source);
60048 find mayExist(problem, interpretation, target);
60049 // Type consistency
60050 find mayInstanceOfEAnnotation_class(problem,interpretation,source);
60051 find mayInstanceOfEObject_class(problem,interpretation,target);
60052 // The reference is containment, then a new reference cannot be create if:
60053 // 1. Multiple parents
60054 neg find mustContains4(problem,interpretation,_,target);
60055 // 2. Circle in the containment hierarchy
60056 neg find mustTransitiveContains(source,target);
60057} or {
60058 find mustInRelationcontents_reference_EAnnotation(problem,interpretation,source,target);
60059}
60060/**
60061 * Matcher for detecting tuples t where []references reference EAnnotation(source,target)
60062 */
60063private pattern mustInRelationreferences_reference_EAnnotation(
60064 problem:LogicProblem, interpretation:PartialInterpretation,
60065 source: DefinedElement, target:DefinedElement)
60066{
60067 find interpretation(problem,interpretation);
60068 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
60069 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"references reference EAnnotation");
60070 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
60071 BinaryElementRelationLink.param1(link,source);
60072 BinaryElementRelationLink.param2(link,target);
60073}
60074/**
60075 * Matcher for detecting tuples t where <>references reference EAnnotation(source,target)
60076 */
60077private pattern mayInRelationreferences_reference_EAnnotation(
60078 problem:LogicProblem, interpretation:PartialInterpretation,
60079 source: DefinedElement, target:DefinedElement)
60080{
60081 find interpretation(problem,interpretation);
60082 // The two endpoint of the link have to exist
60083 find mayExist(problem, interpretation, source);
60084 find mayExist(problem, interpretation, target);
60085 // Type consistency
60086 find mayInstanceOfEAnnotation_class(problem,interpretation,source);
60087 find mayInstanceOfEObject_class(problem,interpretation,target);
60088} or {
60089 find mustInRelationreferences_reference_EAnnotation(problem,interpretation,source,target);
60090}
60091/**
60092 * Matcher for detecting tuples t where []eSuperTypes reference EClass(source,target)
60093 */
60094private pattern mustInRelationeSuperTypes_reference_EClass(
60095 problem:LogicProblem, interpretation:PartialInterpretation,
60096 source: DefinedElement, target:DefinedElement)
60097{
60098 find interpretation(problem,interpretation);
60099 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
60100 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eSuperTypes reference EClass");
60101 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
60102 BinaryElementRelationLink.param1(link,source);
60103 BinaryElementRelationLink.param2(link,target);
60104}
60105/**
60106 * Matcher for detecting tuples t where <>eSuperTypes reference EClass(source,target)
60107 */
60108private pattern mayInRelationeSuperTypes_reference_EClass(
60109 problem:LogicProblem, interpretation:PartialInterpretation,
60110 source: DefinedElement, target:DefinedElement)
60111{
60112 find interpretation(problem,interpretation);
60113 // The two endpoint of the link have to exist
60114 find mayExist(problem, interpretation, source);
60115 find mayExist(problem, interpretation, target);
60116 // Type consistency
60117 find mayInstanceOfEClass_class(problem,interpretation,source);
60118 find mayInstanceOfEClass_class(problem,interpretation,target);
60119} or {
60120 find mustInRelationeSuperTypes_reference_EClass(problem,interpretation,source,target);
60121}
60122/**
60123 * Matcher for detecting tuples t where []eOperations reference EClass(source,target)
60124 */
60125private pattern mustInRelationeOperations_reference_EClass(
60126 problem:LogicProblem, interpretation:PartialInterpretation,
60127 source: DefinedElement, target:DefinedElement)
60128{
60129 find interpretation(problem,interpretation);
60130 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
60131 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eOperations reference EClass");
60132 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
60133 BinaryElementRelationLink.param1(link,source);
60134 BinaryElementRelationLink.param2(link,target);
60135}
60136/**
60137 * Matcher for detecting tuples t where <>eOperations reference EClass(source,target)
60138 */
60139private pattern mayInRelationeOperations_reference_EClass(
60140 problem:LogicProblem, interpretation:PartialInterpretation,
60141 source: DefinedElement, target:DefinedElement)
60142{
60143 find interpretation(problem,interpretation);
60144 // The two endpoint of the link have to exist
60145 find mayExist(problem, interpretation, source);
60146 find mayExist(problem, interpretation, target);
60147 // Type consistency
60148 find mayInstanceOfEClass_class(problem,interpretation,source);
60149 find mayInstanceOfEOperation_class(problem,interpretation,target);
60150 // There are "numberOfExistingReferences" currently existing instances of the reference to the target, 46030 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
60151 // the upper bound of the opposite reference multiplicity should be considered. 46031 // the upper bound of the opposite reference multiplicity should be considered.
60152 numberOfExistingOppositeReferences == count find mustInRelationeContainingClass_reference_EOperation(problem,interpretation,target,_); 46032 numberOfExistingOppositeReferences == count find mustInRelationelement_reference_FunctionalInterface(problem,interpretation,target,_);
60153 check(numberOfExistingOppositeReferences < 1); 46033 check(numberOfExistingOppositeReferences < 1);
60154 // The reference is containment, then a new reference cannot be create if: 46034 // The reference is containment, then a new reference cannot be create if:
60155 // 1. Multiple parents 46035 // 1. Multiple parents
@@ -60157,274 +46037,26 @@ private pattern mayInRelationeOperations_reference_EClass(
60157 // 2. Circle in the containment hierarchy 46037 // 2. Circle in the containment hierarchy
60158 neg find mustTransitiveContains(source,target); 46038 neg find mustTransitiveContains(source,target);
60159} or { 46039} or {
60160 find mustInRelationeOperations_reference_EClass(problem,interpretation,source,target); 46040 find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,source,target);
60161}
60162/**
60163 * Matcher for detecting tuples t where []eAllAttributes reference EClass(source,target)
60164 */
60165private pattern mustInRelationeAllAttributes_reference_EClass(
60166 problem:LogicProblem, interpretation:PartialInterpretation,
60167 source: DefinedElement, target:DefinedElement)
60168{
60169 find interpretation(problem,interpretation);
60170 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
60171 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllAttributes reference EClass");
60172 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
60173 BinaryElementRelationLink.param1(link,source);
60174 BinaryElementRelationLink.param2(link,target);
60175}
60176/**
60177 * Matcher for detecting tuples t where <>eAllAttributes reference EClass(source,target)
60178 */
60179private pattern mayInRelationeAllAttributes_reference_EClass(
60180 problem:LogicProblem, interpretation:PartialInterpretation,
60181 source: DefinedElement, target:DefinedElement)
60182{
60183 find interpretation(problem,interpretation);
60184 // The two endpoint of the link have to exist
60185 find mayExist(problem, interpretation, source);
60186 find mayExist(problem, interpretation, target);
60187 // Type consistency
60188 find mayInstanceOfEClass_class(problem,interpretation,source);
60189 find mayInstanceOfEAttribute_class(problem,interpretation,target);
60190} or {
60191 find mustInRelationeAllAttributes_reference_EClass(problem,interpretation,source,target);
60192}
60193/**
60194 * Matcher for detecting tuples t where []eAllReferences reference EClass(source,target)
60195 */
60196private pattern mustInRelationeAllReferences_reference_EClass(
60197 problem:LogicProblem, interpretation:PartialInterpretation,
60198 source: DefinedElement, target:DefinedElement)
60199{
60200 find interpretation(problem,interpretation);
60201 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
60202 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllReferences reference EClass");
60203 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
60204 BinaryElementRelationLink.param1(link,source);
60205 BinaryElementRelationLink.param2(link,target);
60206}
60207/**
60208 * Matcher for detecting tuples t where <>eAllReferences reference EClass(source,target)
60209 */
60210private pattern mayInRelationeAllReferences_reference_EClass(
60211 problem:LogicProblem, interpretation:PartialInterpretation,
60212 source: DefinedElement, target:DefinedElement)
60213{
60214 find interpretation(problem,interpretation);
60215 // The two endpoint of the link have to exist
60216 find mayExist(problem, interpretation, source);
60217 find mayExist(problem, interpretation, target);
60218 // Type consistency
60219 find mayInstanceOfEClass_class(problem,interpretation,source);
60220 find mayInstanceOfEReference_class(problem,interpretation,target);
60221} or {
60222 find mustInRelationeAllReferences_reference_EClass(problem,interpretation,source,target);
60223}
60224/**
60225 * Matcher for detecting tuples t where []eReferences reference EClass(source,target)
60226 */
60227private pattern mustInRelationeReferences_reference_EClass(
60228 problem:LogicProblem, interpretation:PartialInterpretation,
60229 source: DefinedElement, target:DefinedElement)
60230{
60231 find interpretation(problem,interpretation);
60232 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
60233 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eReferences reference EClass");
60234 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
60235 BinaryElementRelationLink.param1(link,source);
60236 BinaryElementRelationLink.param2(link,target);
60237}
60238/**
60239 * Matcher for detecting tuples t where <>eReferences reference EClass(source,target)
60240 */
60241private pattern mayInRelationeReferences_reference_EClass(
60242 problem:LogicProblem, interpretation:PartialInterpretation,
60243 source: DefinedElement, target:DefinedElement)
60244{
60245 find interpretation(problem,interpretation);
60246 // The two endpoint of the link have to exist
60247 find mayExist(problem, interpretation, source);
60248 find mayExist(problem, interpretation, target);
60249 // Type consistency
60250 find mayInstanceOfEClass_class(problem,interpretation,source);
60251 find mayInstanceOfEReference_class(problem,interpretation,target);
60252} or {
60253 find mustInRelationeReferences_reference_EClass(problem,interpretation,source,target);
60254}
60255/**
60256 * Matcher for detecting tuples t where []eAttributes reference EClass(source,target)
60257 */
60258private pattern mustInRelationeAttributes_reference_EClass(
60259 problem:LogicProblem, interpretation:PartialInterpretation,
60260 source: DefinedElement, target:DefinedElement)
60261{
60262 find interpretation(problem,interpretation);
60263 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
60264 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAttributes reference EClass");
60265 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
60266 BinaryElementRelationLink.param1(link,source);
60267 BinaryElementRelationLink.param2(link,target);
60268}
60269/**
60270 * Matcher for detecting tuples t where <>eAttributes reference EClass(source,target)
60271 */
60272private pattern mayInRelationeAttributes_reference_EClass(
60273 problem:LogicProblem, interpretation:PartialInterpretation,
60274 source: DefinedElement, target:DefinedElement)
60275{
60276 find interpretation(problem,interpretation);
60277 // The two endpoint of the link have to exist
60278 find mayExist(problem, interpretation, source);
60279 find mayExist(problem, interpretation, target);
60280 // Type consistency
60281 find mayInstanceOfEClass_class(problem,interpretation,source);
60282 find mayInstanceOfEAttribute_class(problem,interpretation,target);
60283} or {
60284 find mustInRelationeAttributes_reference_EClass(problem,interpretation,source,target);
60285}
60286/**
60287 * Matcher for detecting tuples t where []eAllContainments reference EClass(source,target)
60288 */
60289private pattern mustInRelationeAllContainments_reference_EClass(
60290 problem:LogicProblem, interpretation:PartialInterpretation,
60291 source: DefinedElement, target:DefinedElement)
60292{
60293 find interpretation(problem,interpretation);
60294 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
60295 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllContainments reference EClass");
60296 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
60297 BinaryElementRelationLink.param1(link,source);
60298 BinaryElementRelationLink.param2(link,target);
60299}
60300/**
60301 * Matcher for detecting tuples t where <>eAllContainments reference EClass(source,target)
60302 */
60303private pattern mayInRelationeAllContainments_reference_EClass(
60304 problem:LogicProblem, interpretation:PartialInterpretation,
60305 source: DefinedElement, target:DefinedElement)
60306{
60307 find interpretation(problem,interpretation);
60308 // The two endpoint of the link have to exist
60309 find mayExist(problem, interpretation, source);
60310 find mayExist(problem, interpretation, target);
60311 // Type consistency
60312 find mayInstanceOfEClass_class(problem,interpretation,source);
60313 find mayInstanceOfEReference_class(problem,interpretation,target);
60314} or {
60315 find mustInRelationeAllContainments_reference_EClass(problem,interpretation,source,target);
60316}
60317/**
60318 * Matcher for detecting tuples t where []eAllOperations reference EClass(source,target)
60319 */
60320private pattern mustInRelationeAllOperations_reference_EClass(
60321 problem:LogicProblem, interpretation:PartialInterpretation,
60322 source: DefinedElement, target:DefinedElement)
60323{
60324 find interpretation(problem,interpretation);
60325 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
60326 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllOperations reference EClass");
60327 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
60328 BinaryElementRelationLink.param1(link,source);
60329 BinaryElementRelationLink.param2(link,target);
60330}
60331/**
60332 * Matcher for detecting tuples t where <>eAllOperations reference EClass(source,target)
60333 */
60334private pattern mayInRelationeAllOperations_reference_EClass(
60335 problem:LogicProblem, interpretation:PartialInterpretation,
60336 source: DefinedElement, target:DefinedElement)
60337{
60338 find interpretation(problem,interpretation);
60339 // The two endpoint of the link have to exist
60340 find mayExist(problem, interpretation, source);
60341 find mayExist(problem, interpretation, target);
60342 // Type consistency
60343 find mayInstanceOfEClass_class(problem,interpretation,source);
60344 find mayInstanceOfEOperation_class(problem,interpretation,target);
60345} or {
60346 find mustInRelationeAllOperations_reference_EClass(problem,interpretation,source,target);
60347}
60348/**
60349 * Matcher for detecting tuples t where []eAllStructuralFeatures reference EClass(source,target)
60350 */
60351private pattern mustInRelationeAllStructuralFeatures_reference_EClass(
60352 problem:LogicProblem, interpretation:PartialInterpretation,
60353 source: DefinedElement, target:DefinedElement)
60354{
60355 find interpretation(problem,interpretation);
60356 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
60357 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllStructuralFeatures reference EClass");
60358 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
60359 BinaryElementRelationLink.param1(link,source);
60360 BinaryElementRelationLink.param2(link,target);
60361}
60362/**
60363 * Matcher for detecting tuples t where <>eAllStructuralFeatures reference EClass(source,target)
60364 */
60365private pattern mayInRelationeAllStructuralFeatures_reference_EClass(
60366 problem:LogicProblem, interpretation:PartialInterpretation,
60367 source: DefinedElement, target:DefinedElement)
60368{
60369 find interpretation(problem,interpretation);
60370 // The two endpoint of the link have to exist
60371 find mayExist(problem, interpretation, source);
60372 find mayExist(problem, interpretation, target);
60373 // Type consistency
60374 find mayInstanceOfEClass_class(problem,interpretation,source);
60375 find mayInstanceOfEStructuralFeature_class(problem,interpretation,target);
60376} or {
60377 find mustInRelationeAllStructuralFeatures_reference_EClass(problem,interpretation,source,target);
60378}
60379/**
60380 * Matcher for detecting tuples t where []eAllSuperTypes reference EClass(source,target)
60381 */
60382private pattern mustInRelationeAllSuperTypes_reference_EClass(
60383 problem:LogicProblem, interpretation:PartialInterpretation,
60384 source: DefinedElement, target:DefinedElement)
60385{
60386 find interpretation(problem,interpretation);
60387 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
60388 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllSuperTypes reference EClass");
60389 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
60390 BinaryElementRelationLink.param1(link,source);
60391 BinaryElementRelationLink.param2(link,target);
60392}
60393/**
60394 * Matcher for detecting tuples t where <>eAllSuperTypes reference EClass(source,target)
60395 */
60396private pattern mayInRelationeAllSuperTypes_reference_EClass(
60397 problem:LogicProblem, interpretation:PartialInterpretation,
60398 source: DefinedElement, target:DefinedElement)
60399{
60400 find interpretation(problem,interpretation);
60401 // The two endpoint of the link have to exist
60402 find mayExist(problem, interpretation, source);
60403 find mayExist(problem, interpretation, target);
60404 // Type consistency
60405 find mayInstanceOfEClass_class(problem,interpretation,source);
60406 find mayInstanceOfEClass_class(problem,interpretation,target);
60407} or {
60408 find mustInRelationeAllSuperTypes_reference_EClass(problem,interpretation,source,target);
60409} 46041}
60410/** 46042/**
60411 * Matcher for detecting tuples t where []eIDAttribute reference EClass(source,target) 46043 * Matcher for detecting tuples t where []model reference FunctionalElement(source,target)
60412 */ 46044 */
60413private pattern mustInRelationeIDAttribute_reference_EClass( 46045private pattern mustInRelationmodel_reference_FunctionalElement(
60414 problem:LogicProblem, interpretation:PartialInterpretation, 46046 problem:LogicProblem, interpretation:PartialInterpretation,
60415 source: DefinedElement, target:DefinedElement) 46047 source: DefinedElement, target:DefinedElement)
60416{ 46048{
60417 find interpretation(problem,interpretation); 46049 find interpretation(problem,interpretation);
60418 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 46050 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
60419 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eIDAttribute reference EClass"); 46051 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement");
60420 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 46052 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
60421 BinaryElementRelationLink.param1(link,source); 46053 BinaryElementRelationLink.param1(link,source);
60422 BinaryElementRelationLink.param2(link,target); 46054 BinaryElementRelationLink.param2(link,target);
60423} 46055}
60424/** 46056/**
60425 * Matcher for detecting tuples t where <>eIDAttribute reference EClass(source,target) 46057 * Matcher for detecting tuples t where <>model reference FunctionalElement(source,target)
60426 */ 46058 */
60427private pattern mayInRelationeIDAttribute_reference_EClass( 46059private pattern mayInRelationmodel_reference_FunctionalElement(
60428 problem:LogicProblem, interpretation:PartialInterpretation, 46060 problem:LogicProblem, interpretation:PartialInterpretation,
60429 source: DefinedElement, target:DefinedElement) 46061 source: DefinedElement, target:DefinedElement)
60430{ 46062{
@@ -60433,140 +46065,33 @@ private pattern mayInRelationeIDAttribute_reference_EClass(
60433 find mayExist(problem, interpretation, source); 46065 find mayExist(problem, interpretation, source);
60434 find mayExist(problem, interpretation, target); 46066 find mayExist(problem, interpretation, target);
60435 // Type consistency 46067 // Type consistency
60436 find mayInstanceOfEClass_class(problem,interpretation,source); 46068 find mayInstanceOfFunctionalElement_class(problem,interpretation,source);
60437 find mayInstanceOfEAttribute_class(problem,interpretation,target); 46069 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,target);
60438 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 46070 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
60439 // the upper bound of the multiplicity should be considered. 46071 // the upper bound of the multiplicity should be considered.
60440 numberOfExistingReferences == count find mustInRelationeIDAttribute_reference_EClass(problem,interpretation,source,_); 46072 numberOfExistingReferences == count find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,source,_);
60441 check(numberOfExistingReferences < 1); 46073 check(numberOfExistingReferences < 1);
60442} or { 46074} or {
60443 find mustInRelationeIDAttribute_reference_EClass(problem,interpretation,source,target); 46075 find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,source,target);
60444}
60445/**
60446 * Matcher for detecting tuples t where []eStructuralFeatures reference EClass(source,target)
60447 */
60448private pattern mustInRelationeStructuralFeatures_reference_EClass(
60449 problem:LogicProblem, interpretation:PartialInterpretation,
60450 source: DefinedElement, target:DefinedElement)
60451{
60452 find interpretation(problem,interpretation);
60453 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
60454 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eStructuralFeatures reference EClass");
60455 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
60456 BinaryElementRelationLink.param1(link,source);
60457 BinaryElementRelationLink.param2(link,target);
60458}
60459/**
60460 * Matcher for detecting tuples t where <>eStructuralFeatures reference EClass(source,target)
60461 */
60462private pattern mayInRelationeStructuralFeatures_reference_EClass(
60463 problem:LogicProblem, interpretation:PartialInterpretation,
60464 source: DefinedElement, target:DefinedElement)
60465{
60466 find interpretation(problem,interpretation);
60467 // The two endpoint of the link have to exist
60468 find mayExist(problem, interpretation, source);
60469 find mayExist(problem, interpretation, target);
60470 // Type consistency
60471 find mayInstanceOfEClass_class(problem,interpretation,source);
60472 find mayInstanceOfEStructuralFeature_class(problem,interpretation,target);
60473 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
60474 // the upper bound of the opposite reference multiplicity should be considered.
60475 numberOfExistingOppositeReferences == count find mustInRelationeContainingClass_reference_EStructuralFeature(problem,interpretation,target,_);
60476 check(numberOfExistingOppositeReferences < 1);
60477 // The reference is containment, then a new reference cannot be create if:
60478 // 1. Multiple parents
60479 neg find mustContains4(problem,interpretation,_,target);
60480 // 2. Circle in the containment hierarchy
60481 neg find mustTransitiveContains(source,target);
60482} or {
60483 find mustInRelationeStructuralFeatures_reference_EClass(problem,interpretation,source,target);
60484}
60485/**
60486 * Matcher for detecting tuples t where []eGenericSuperTypes reference EClass(source,target)
60487 */
60488private pattern mustInRelationeGenericSuperTypes_reference_EClass(
60489 problem:LogicProblem, interpretation:PartialInterpretation,
60490 source: DefinedElement, target:DefinedElement)
60491{
60492 find interpretation(problem,interpretation);
60493 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
60494 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eGenericSuperTypes reference EClass");
60495 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
60496 BinaryElementRelationLink.param1(link,source);
60497 BinaryElementRelationLink.param2(link,target);
60498}
60499/**
60500 * Matcher for detecting tuples t where <>eGenericSuperTypes reference EClass(source,target)
60501 */
60502private pattern mayInRelationeGenericSuperTypes_reference_EClass(
60503 problem:LogicProblem, interpretation:PartialInterpretation,
60504 source: DefinedElement, target:DefinedElement)
60505{
60506 find interpretation(problem,interpretation);
60507 // The two endpoint of the link have to exist
60508 find mayExist(problem, interpretation, source);
60509 find mayExist(problem, interpretation, target);
60510 // Type consistency
60511 find mayInstanceOfEClass_class(problem,interpretation,source);
60512 find mayInstanceOfEGenericType_class(problem,interpretation,target);
60513 // The reference is containment, then a new reference cannot be create if:
60514 // 1. Multiple parents
60515 neg find mustContains4(problem,interpretation,_,target);
60516 // 2. Circle in the containment hierarchy
60517 neg find mustTransitiveContains(source,target);
60518} or {
60519 find mustInRelationeGenericSuperTypes_reference_EClass(problem,interpretation,source,target);
60520}
60521/**
60522 * Matcher for detecting tuples t where []eAllGenericSuperTypes reference EClass(source,target)
60523 */
60524private pattern mustInRelationeAllGenericSuperTypes_reference_EClass(
60525 problem:LogicProblem, interpretation:PartialInterpretation,
60526 source: DefinedElement, target:DefinedElement)
60527{
60528 find interpretation(problem,interpretation);
60529 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
60530 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllGenericSuperTypes reference EClass");
60531 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
60532 BinaryElementRelationLink.param1(link,source);
60533 BinaryElementRelationLink.param2(link,target);
60534}
60535/**
60536 * Matcher for detecting tuples t where <>eAllGenericSuperTypes reference EClass(source,target)
60537 */
60538private pattern mayInRelationeAllGenericSuperTypes_reference_EClass(
60539 problem:LogicProblem, interpretation:PartialInterpretation,
60540 source: DefinedElement, target:DefinedElement)
60541{
60542 find interpretation(problem,interpretation);
60543 // The two endpoint of the link have to exist
60544 find mayExist(problem, interpretation, source);
60545 find mayExist(problem, interpretation, target);
60546 // Type consistency
60547 find mayInstanceOfEClass_class(problem,interpretation,source);
60548 find mayInstanceOfEGenericType_class(problem,interpretation,target);
60549} or {
60550 find mustInRelationeAllGenericSuperTypes_reference_EClass(problem,interpretation,source,target);
60551} 46076}
60552/** 46077/**
60553 * Matcher for detecting tuples t where []ePackage reference EClassifier(source,target) 46078 * Matcher for detecting tuples t where []parent reference FunctionalElement(source,target)
60554 */ 46079 */
60555private pattern mustInRelationePackage_reference_EClassifier( 46080private pattern mustInRelationparent_reference_FunctionalElement(
60556 problem:LogicProblem, interpretation:PartialInterpretation, 46081 problem:LogicProblem, interpretation:PartialInterpretation,
60557 source: DefinedElement, target:DefinedElement) 46082 source: DefinedElement, target:DefinedElement)
60558{ 46083{
60559 find interpretation(problem,interpretation); 46084 find interpretation(problem,interpretation);
60560 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 46085 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
60561 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"ePackage reference EClassifier"); 46086 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"parent reference FunctionalElement");
60562 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 46087 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
60563 BinaryElementRelationLink.param1(link,source); 46088 BinaryElementRelationLink.param1(link,source);
60564 BinaryElementRelationLink.param2(link,target); 46089 BinaryElementRelationLink.param2(link,target);
60565} 46090}
60566/** 46091/**
60567 * Matcher for detecting tuples t where <>ePackage reference EClassifier(source,target) 46092 * Matcher for detecting tuples t where <>parent reference FunctionalElement(source,target)
60568 */ 46093 */
60569private pattern mayInRelationePackage_reference_EClassifier( 46094private pattern mayInRelationparent_reference_FunctionalElement(
60570 problem:LogicProblem, interpretation:PartialInterpretation, 46095 problem:LogicProblem, interpretation:PartialInterpretation,
60571 source: DefinedElement, target:DefinedElement) 46096 source: DefinedElement, target:DefinedElement)
60572{ 46097{
@@ -60575,11 +46100,11 @@ private pattern mayInRelationePackage_reference_EClassifier(
60575 find mayExist(problem, interpretation, source); 46100 find mayExist(problem, interpretation, source);
60576 find mayExist(problem, interpretation, target); 46101 find mayExist(problem, interpretation, target);
60577 // Type consistency 46102 // Type consistency
60578 find mayInstanceOfEClassifier_class(problem,interpretation,source); 46103 find mayInstanceOfFunctionalElement_class(problem,interpretation,source);
60579 find mayInstanceOfEPackage_class(problem,interpretation,target); 46104 find mayInstanceOfFunction_class(problem,interpretation,target);
60580 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 46105 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
60581 // the upper bound of the multiplicity should be considered. 46106 // the upper bound of the multiplicity should be considered.
60582 numberOfExistingReferences == count find mustInRelationePackage_reference_EClassifier(problem,interpretation,source,_); 46107 numberOfExistingReferences == count find mustInRelationparent_reference_FunctionalElement(problem,interpretation,source,_);
60583 check(numberOfExistingReferences < 1); 46108 check(numberOfExistingReferences < 1);
60584 // The eOpposite of the reference is containment, then a referene cannot be created if 46109 // The eOpposite of the reference is containment, then a referene cannot be created if
60585 // 1. Multiple parents 46110 // 1. Multiple parents
@@ -60587,26 +46112,26 @@ private pattern mayInRelationePackage_reference_EClassifier(
60587 // 2. Circle in the containment hierarchy 46112 // 2. Circle in the containment hierarchy
60588 neg find mustTransitiveContains(source,target); 46113 neg find mustTransitiveContains(source,target);
60589} or { 46114} or {
60590 find mustInRelationePackage_reference_EClassifier(problem,interpretation,source,target); 46115 find mustInRelationparent_reference_FunctionalElement(problem,interpretation,source,target);
60591} 46116}
60592/** 46117/**
60593 * Matcher for detecting tuples t where []eTypeParameters reference EClassifier(source,target) 46118 * Matcher for detecting tuples t where []rootElements reference FunctionalArchitectureModel(source,target)
60594 */ 46119 */
60595private pattern mustInRelationeTypeParameters_reference_EClassifier( 46120private pattern mustInRelationrootElements_reference_FunctionalArchitectureModel(
60596 problem:LogicProblem, interpretation:PartialInterpretation, 46121 problem:LogicProblem, interpretation:PartialInterpretation,
60597 source: DefinedElement, target:DefinedElement) 46122 source: DefinedElement, target:DefinedElement)
60598{ 46123{
60599 find interpretation(problem,interpretation); 46124 find interpretation(problem,interpretation);
60600 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 46125 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
60601 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eTypeParameters reference EClassifier"); 46126 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"rootElements reference FunctionalArchitectureModel");
60602 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 46127 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
60603 BinaryElementRelationLink.param1(link,source); 46128 BinaryElementRelationLink.param1(link,source);
60604 BinaryElementRelationLink.param2(link,target); 46129 BinaryElementRelationLink.param2(link,target);
60605} 46130}
60606/** 46131/**
60607 * Matcher for detecting tuples t where <>eTypeParameters reference EClassifier(source,target) 46132 * Matcher for detecting tuples t where <>rootElements reference FunctionalArchitectureModel(source,target)
60608 */ 46133 */
60609private pattern mayInRelationeTypeParameters_reference_EClassifier( 46134private pattern mayInRelationrootElements_reference_FunctionalArchitectureModel(
60610 problem:LogicProblem, interpretation:PartialInterpretation, 46135 problem:LogicProblem, interpretation:PartialInterpretation,
60611 source: DefinedElement, target:DefinedElement) 46136 source: DefinedElement, target:DefinedElement)
60612{ 46137{
@@ -60615,34 +46140,34 @@ private pattern mayInRelationeTypeParameters_reference_EClassifier(
60615 find mayExist(problem, interpretation, source); 46140 find mayExist(problem, interpretation, source);
60616 find mayExist(problem, interpretation, target); 46141 find mayExist(problem, interpretation, target);
60617 // Type consistency 46142 // Type consistency
60618 find mayInstanceOfEClassifier_class(problem,interpretation,source); 46143 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,source);
60619 find mayInstanceOfETypeParameter_class(problem,interpretation,target); 46144 find mayInstanceOfFunctionalElement_class(problem,interpretation,target);
60620 // The reference is containment, then a new reference cannot be create if: 46145 // The reference is containment, then a new reference cannot be create if:
60621 // 1. Multiple parents 46146 // 1. Multiple parents
60622 neg find mustContains4(problem,interpretation,_,target); 46147 neg find mustContains4(problem,interpretation,_,target);
60623 // 2. Circle in the containment hierarchy 46148 // 2. Circle in the containment hierarchy
60624 neg find mustTransitiveContains(source,target); 46149 neg find mustTransitiveContains(source,target);
60625} or { 46150} or {
60626 find mustInRelationeTypeParameters_reference_EClassifier(problem,interpretation,source,target); 46151 find mustInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,source,target);
60627} 46152}
60628/** 46153/**
60629 * Matcher for detecting tuples t where []eLiterals reference EEnum(source,target) 46154 * Matcher for detecting tuples t where []subElements reference Function(source,target)
60630 */ 46155 */
60631private pattern mustInRelationeLiterals_reference_EEnum( 46156private pattern mustInRelationsubElements_reference_Function(
60632 problem:LogicProblem, interpretation:PartialInterpretation, 46157 problem:LogicProblem, interpretation:PartialInterpretation,
60633 source: DefinedElement, target:DefinedElement) 46158 source: DefinedElement, target:DefinedElement)
60634{ 46159{
60635 find interpretation(problem,interpretation); 46160 find interpretation(problem,interpretation);
60636 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 46161 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
60637 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eLiterals reference EEnum"); 46162 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"subElements reference Function");
60638 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 46163 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
60639 BinaryElementRelationLink.param1(link,source); 46164 BinaryElementRelationLink.param1(link,source);
60640 BinaryElementRelationLink.param2(link,target); 46165 BinaryElementRelationLink.param2(link,target);
60641} 46166}
60642/** 46167/**
60643 * Matcher for detecting tuples t where <>eLiterals reference EEnum(source,target) 46168 * Matcher for detecting tuples t where <>subElements reference Function(source,target)
60644 */ 46169 */
60645private pattern mayInRelationeLiterals_reference_EEnum( 46170private pattern mayInRelationsubElements_reference_Function(
60646 problem:LogicProblem, interpretation:PartialInterpretation, 46171 problem:LogicProblem, interpretation:PartialInterpretation,
60647 source: DefinedElement, target:DefinedElement) 46172 source: DefinedElement, target:DefinedElement)
60648{ 46173{
@@ -60651,11 +46176,11 @@ private pattern mayInRelationeLiterals_reference_EEnum(
60651 find mayExist(problem, interpretation, source); 46176 find mayExist(problem, interpretation, source);
60652 find mayExist(problem, interpretation, target); 46177 find mayExist(problem, interpretation, target);
60653 // Type consistency 46178 // Type consistency
60654 find mayInstanceOfEEnum_class(problem,interpretation,source); 46179 find mayInstanceOfFunction_class(problem,interpretation,source);
60655 find mayInstanceOfEEnumLiteral_class(problem,interpretation,target); 46180 find mayInstanceOfFunctionalElement_class(problem,interpretation,target);
60656 // There are "numberOfExistingReferences" currently existing instances of the reference to the target, 46181 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
60657 // the upper bound of the opposite reference multiplicity should be considered. 46182 // the upper bound of the opposite reference multiplicity should be considered.
60658 numberOfExistingOppositeReferences == count find mustInRelationeEnum_reference_EEnumLiteral(problem,interpretation,target,_); 46183 numberOfExistingOppositeReferences == count find mustInRelationparent_reference_FunctionalElement(problem,interpretation,target,_);
60659 check(numberOfExistingOppositeReferences < 1); 46184 check(numberOfExistingOppositeReferences < 1);
60660 // The reference is containment, then a new reference cannot be create if: 46185 // The reference is containment, then a new reference cannot be create if:
60661 // 1. Multiple parents 46186 // 1. Multiple parents
@@ -60663,26 +46188,26 @@ private pattern mayInRelationeLiterals_reference_EEnum(
60663 // 2. Circle in the containment hierarchy 46188 // 2. Circle in the containment hierarchy
60664 neg find mustTransitiveContains(source,target); 46189 neg find mustTransitiveContains(source,target);
60665} or { 46190} or {
60666 find mustInRelationeLiterals_reference_EEnum(problem,interpretation,source,target); 46191 find mustInRelationsubElements_reference_Function(problem,interpretation,source,target);
60667} 46192}
60668/** 46193/**
60669 * Matcher for detecting tuples t where []eEnum reference EEnumLiteral(source,target) 46194 * Matcher for detecting tuples t where []data reference FAMTerminator(source,target)
60670 */ 46195 */
60671private pattern mustInRelationeEnum_reference_EEnumLiteral( 46196private pattern mustInRelationdata_reference_FAMTerminator(
60672 problem:LogicProblem, interpretation:PartialInterpretation, 46197 problem:LogicProblem, interpretation:PartialInterpretation,
60673 source: DefinedElement, target:DefinedElement) 46198 source: DefinedElement, target:DefinedElement)
60674{ 46199{
60675 find interpretation(problem,interpretation); 46200 find interpretation(problem,interpretation);
60676 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 46201 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
60677 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eEnum reference EEnumLiteral"); 46202 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"data reference FAMTerminator");
60678 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 46203 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
60679 BinaryElementRelationLink.param1(link,source); 46204 BinaryElementRelationLink.param1(link,source);
60680 BinaryElementRelationLink.param2(link,target); 46205 BinaryElementRelationLink.param2(link,target);
60681} 46206}
60682/** 46207/**
60683 * Matcher for detecting tuples t where <>eEnum reference EEnumLiteral(source,target) 46208 * Matcher for detecting tuples t where <>data reference FAMTerminator(source,target)
60684 */ 46209 */
60685private pattern mayInRelationeEnum_reference_EEnumLiteral( 46210private pattern mayInRelationdata_reference_FAMTerminator(
60686 problem:LogicProblem, interpretation:PartialInterpretation, 46211 problem:LogicProblem, interpretation:PartialInterpretation,
60687 source: DefinedElement, target:DefinedElement) 46212 source: DefinedElement, target:DefinedElement)
60688{ 46213{
@@ -60691,78 +46216,42 @@ private pattern mayInRelationeEnum_reference_EEnumLiteral(
60691 find mayExist(problem, interpretation, source); 46216 find mayExist(problem, interpretation, source);
60692 find mayExist(problem, interpretation, target); 46217 find mayExist(problem, interpretation, target);
60693 // Type consistency 46218 // Type consistency
60694 find mayInstanceOfEEnumLiteral_class(problem,interpretation,source); 46219 find mayInstanceOfFAMTerminator_class(problem,interpretation,source);
60695 find mayInstanceOfEEnum_class(problem,interpretation,target); 46220 find mayInstanceOfFunctionalData_class(problem,interpretation,target);
60696 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 46221 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
60697 // the upper bound of the multiplicity should be considered. 46222 // the upper bound of the multiplicity should be considered.
60698 numberOfExistingReferences == count find mustInRelationeEnum_reference_EEnumLiteral(problem,interpretation,source,_); 46223 numberOfExistingReferences == count find mustInRelationdata_reference_FAMTerminator(problem,interpretation,source,_);
60699 check(numberOfExistingReferences < 1); 46224 check(numberOfExistingReferences < 1);
60700 // The eOpposite of the reference is containment, then a referene cannot be created if
60701 // 1. Multiple parents
60702 neg find mustContains4(problem,interpretation,source,_);
60703 // 2. Circle in the containment hierarchy
60704 neg find mustTransitiveContains(source,target);
60705} or {
60706 find mustInRelationeEnum_reference_EEnumLiteral(problem,interpretation,source,target);
60707}
60708/**
60709 * Matcher for detecting tuples t where []eAnnotations reference EModelElement(source,target)
60710 */
60711private pattern mustInRelationeAnnotations_reference_EModelElement(
60712 problem:LogicProblem, interpretation:PartialInterpretation,
60713 source: DefinedElement, target:DefinedElement)
60714{
60715 find interpretation(problem,interpretation);
60716 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
60717 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAnnotations reference EModelElement");
60718 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
60719 BinaryElementRelationLink.param1(link,source);
60720 BinaryElementRelationLink.param2(link,target);
60721}
60722/**
60723 * Matcher for detecting tuples t where <>eAnnotations reference EModelElement(source,target)
60724 */
60725private pattern mayInRelationeAnnotations_reference_EModelElement(
60726 problem:LogicProblem, interpretation:PartialInterpretation,
60727 source: DefinedElement, target:DefinedElement)
60728{
60729 find interpretation(problem,interpretation);
60730 // The two endpoint of the link have to exist
60731 find mayExist(problem, interpretation, source);
60732 find mayExist(problem, interpretation, target);
60733 // Type consistency
60734 find mayInstanceOfEModelElement_class(problem,interpretation,source);
60735 find mayInstanceOfEAnnotation_class(problem,interpretation,target);
60736 // There are "numberOfExistingReferences" currently existing instances of the reference to the target, 46225 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
60737 // the upper bound of the opposite reference multiplicity should be considered. 46226 // the upper bound of the opposite reference multiplicity should be considered.
60738 numberOfExistingOppositeReferences == count find mustInRelationeModelElement_reference_EAnnotation(problem,interpretation,target,_); 46227 numberOfExistingOppositeReferences == count find mustInRelationterminator_reference_FunctionalData(problem,interpretation,target,_);
60739 check(numberOfExistingOppositeReferences < 1); 46228 check(numberOfExistingOppositeReferences < 1);
60740 // The reference is containment, then a new reference cannot be create if: 46229 // The eOpposite of the reference is containment, then a referene cannot be created if
60741 // 1. Multiple parents 46230 // 1. Multiple parents
60742 neg find mustContains4(problem,interpretation,_,target); 46231 neg find mustContains4(problem,interpretation,source,_);
60743 // 2. Circle in the containment hierarchy 46232 // 2. Circle in the containment hierarchy
60744 neg find mustTransitiveContains(source,target); 46233 neg find mustTransitiveContains(source,target);
60745} or { 46234} or {
60746 find mustInRelationeAnnotations_reference_EModelElement(problem,interpretation,source,target); 46235 find mustInRelationdata_reference_FAMTerminator(problem,interpretation,source,target);
60747} 46236}
60748/** 46237/**
60749 * Matcher for detecting tuples t where []eContainingClass reference EOperation(source,target) 46238 * Matcher for detecting tuples t where []from reference InformationLink(source,target)
60750 */ 46239 */
60751private pattern mustInRelationeContainingClass_reference_EOperation( 46240private pattern mustInRelationfrom_reference_InformationLink(
60752 problem:LogicProblem, interpretation:PartialInterpretation, 46241 problem:LogicProblem, interpretation:PartialInterpretation,
60753 source: DefinedElement, target:DefinedElement) 46242 source: DefinedElement, target:DefinedElement)
60754{ 46243{
60755 find interpretation(problem,interpretation); 46244 find interpretation(problem,interpretation);
60756 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 46245 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
60757 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eContainingClass reference EOperation"); 46246 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"from reference InformationLink");
60758 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 46247 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
60759 BinaryElementRelationLink.param1(link,source); 46248 BinaryElementRelationLink.param1(link,source);
60760 BinaryElementRelationLink.param2(link,target); 46249 BinaryElementRelationLink.param2(link,target);
60761} 46250}
60762/** 46251/**
60763 * Matcher for detecting tuples t where <>eContainingClass reference EOperation(source,target) 46252 * Matcher for detecting tuples t where <>from reference InformationLink(source,target)
60764 */ 46253 */
60765private pattern mayInRelationeContainingClass_reference_EOperation( 46254private pattern mayInRelationfrom_reference_InformationLink(
60766 problem:LogicProblem, interpretation:PartialInterpretation, 46255 problem:LogicProblem, interpretation:PartialInterpretation,
60767 source: DefinedElement, target:DefinedElement) 46256 source: DefinedElement, target:DefinedElement)
60768{ 46257{
@@ -60771,11 +46260,11 @@ private pattern mayInRelationeContainingClass_reference_EOperation(
60771 find mayExist(problem, interpretation, source); 46260 find mayExist(problem, interpretation, source);
60772 find mayExist(problem, interpretation, target); 46261 find mayExist(problem, interpretation, target);
60773 // Type consistency 46262 // Type consistency
60774 find mayInstanceOfEOperation_class(problem,interpretation,source); 46263 find mayInstanceOfInformationLink_class(problem,interpretation,source);
60775 find mayInstanceOfEClass_class(problem,interpretation,target); 46264 find mayInstanceOfFunctionalOutput_class(problem,interpretation,target);
60776 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 46265 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
60777 // the upper bound of the multiplicity should be considered. 46266 // the upper bound of the multiplicity should be considered.
60778 numberOfExistingReferences == count find mustInRelationeContainingClass_reference_EOperation(problem,interpretation,source,_); 46267 numberOfExistingReferences == count find mustInRelationfrom_reference_InformationLink(problem,interpretation,source,_);
60779 check(numberOfExistingReferences < 1); 46268 check(numberOfExistingReferences < 1);
60780 // The eOpposite of the reference is containment, then a referene cannot be created if 46269 // The eOpposite of the reference is containment, then a referene cannot be created if
60781 // 1. Multiple parents 46270 // 1. Multiple parents
@@ -60783,26 +46272,26 @@ private pattern mayInRelationeContainingClass_reference_EOperation(
60783 // 2. Circle in the containment hierarchy 46272 // 2. Circle in the containment hierarchy
60784 neg find mustTransitiveContains(source,target); 46273 neg find mustTransitiveContains(source,target);
60785} or { 46274} or {
60786 find mustInRelationeContainingClass_reference_EOperation(problem,interpretation,source,target); 46275 find mustInRelationfrom_reference_InformationLink(problem,interpretation,source,target);
60787} 46276}
60788/** 46277/**
60789 * Matcher for detecting tuples t where []eTypeParameters reference EOperation(source,target) 46278 * Matcher for detecting tuples t where []to reference InformationLink(source,target)
60790 */ 46279 */
60791private pattern mustInRelationeTypeParameters_reference_EOperation( 46280private pattern mustInRelationto_reference_InformationLink(
60792 problem:LogicProblem, interpretation:PartialInterpretation, 46281 problem:LogicProblem, interpretation:PartialInterpretation,
60793 source: DefinedElement, target:DefinedElement) 46282 source: DefinedElement, target:DefinedElement)
60794{ 46283{
60795 find interpretation(problem,interpretation); 46284 find interpretation(problem,interpretation);
60796 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 46285 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
60797 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eTypeParameters reference EOperation"); 46286 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"to reference InformationLink");
60798 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 46287 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
60799 BinaryElementRelationLink.param1(link,source); 46288 BinaryElementRelationLink.param1(link,source);
60800 BinaryElementRelationLink.param2(link,target); 46289 BinaryElementRelationLink.param2(link,target);
60801} 46290}
60802/** 46291/**
60803 * Matcher for detecting tuples t where <>eTypeParameters reference EOperation(source,target) 46292 * Matcher for detecting tuples t where <>to reference InformationLink(source,target)
60804 */ 46293 */
60805private pattern mayInRelationeTypeParameters_reference_EOperation( 46294private pattern mayInRelationto_reference_InformationLink(
60806 problem:LogicProblem, interpretation:PartialInterpretation, 46295 problem:LogicProblem, interpretation:PartialInterpretation,
60807 source: DefinedElement, target:DefinedElement) 46296 source: DefinedElement, target:DefinedElement)
60808{ 46297{
@@ -60811,34 +46300,33 @@ private pattern mayInRelationeTypeParameters_reference_EOperation(
60811 find mayExist(problem, interpretation, source); 46300 find mayExist(problem, interpretation, source);
60812 find mayExist(problem, interpretation, target); 46301 find mayExist(problem, interpretation, target);
60813 // Type consistency 46302 // Type consistency
60814 find mayInstanceOfEOperation_class(problem,interpretation,source); 46303 find mayInstanceOfInformationLink_class(problem,interpretation,source);
60815 find mayInstanceOfETypeParameter_class(problem,interpretation,target); 46304 find mayInstanceOfFunctionalInput_class(problem,interpretation,target);
60816 // The reference is containment, then a new reference cannot be create if: 46305 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
60817 // 1. Multiple parents 46306 // the upper bound of the multiplicity should be considered.
60818 neg find mustContains4(problem,interpretation,_,target); 46307 numberOfExistingReferences == count find mustInRelationto_reference_InformationLink(problem,interpretation,source,_);
60819 // 2. Circle in the containment hierarchy 46308 check(numberOfExistingReferences < 1);
60820 neg find mustTransitiveContains(source,target);
60821} or { 46309} or {
60822 find mustInRelationeTypeParameters_reference_EOperation(problem,interpretation,source,target); 46310 find mustInRelationto_reference_InformationLink(problem,interpretation,source,target);
60823} 46311}
60824/** 46312/**
60825 * Matcher for detecting tuples t where []eParameters reference EOperation(source,target) 46313 * Matcher for detecting tuples t where []data reference FunctionalInterface(source,target)
60826 */ 46314 */
60827private pattern mustInRelationeParameters_reference_EOperation( 46315private pattern mustInRelationdata_reference_FunctionalInterface(
60828 problem:LogicProblem, interpretation:PartialInterpretation, 46316 problem:LogicProblem, interpretation:PartialInterpretation,
60829 source: DefinedElement, target:DefinedElement) 46317 source: DefinedElement, target:DefinedElement)
60830{ 46318{
60831 find interpretation(problem,interpretation); 46319 find interpretation(problem,interpretation);
60832 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 46320 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
60833 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eParameters reference EOperation"); 46321 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"data reference FunctionalInterface");
60834 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 46322 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
60835 BinaryElementRelationLink.param1(link,source); 46323 BinaryElementRelationLink.param1(link,source);
60836 BinaryElementRelationLink.param2(link,target); 46324 BinaryElementRelationLink.param2(link,target);
60837} 46325}
60838/** 46326/**
60839 * Matcher for detecting tuples t where <>eParameters reference EOperation(source,target) 46327 * Matcher for detecting tuples t where <>data reference FunctionalInterface(source,target)
60840 */ 46328 */
60841private pattern mayInRelationeParameters_reference_EOperation( 46329private pattern mayInRelationdata_reference_FunctionalInterface(
60842 problem:LogicProblem, interpretation:PartialInterpretation, 46330 problem:LogicProblem, interpretation:PartialInterpretation,
60843 source: DefinedElement, target:DefinedElement) 46331 source: DefinedElement, target:DefinedElement)
60844{ 46332{
@@ -60847,11 +46335,11 @@ private pattern mayInRelationeParameters_reference_EOperation(
60847 find mayExist(problem, interpretation, source); 46335 find mayExist(problem, interpretation, source);
60848 find mayExist(problem, interpretation, target); 46336 find mayExist(problem, interpretation, target);
60849 // Type consistency 46337 // Type consistency
60850 find mayInstanceOfEOperation_class(problem,interpretation,source); 46338 find mayInstanceOfFunctionalInterface_class(problem,interpretation,source);
60851 find mayInstanceOfEParameter_class(problem,interpretation,target); 46339 find mayInstanceOfFunctionalData_class(problem,interpretation,target);
60852 // There are "numberOfExistingReferences" currently existing instances of the reference to the target, 46340 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
60853 // the upper bound of the opposite reference multiplicity should be considered. 46341 // the upper bound of the opposite reference multiplicity should be considered.
60854 numberOfExistingOppositeReferences == count find mustInRelationeOperation_reference_EParameter(problem,interpretation,target,_); 46342 numberOfExistingOppositeReferences == count find mustInRelationinterface_reference_FunctionalData(problem,interpretation,target,_);
60855 check(numberOfExistingOppositeReferences < 1); 46343 check(numberOfExistingOppositeReferences < 1);
60856 // The reference is containment, then a new reference cannot be create if: 46344 // The reference is containment, then a new reference cannot be create if:
60857 // 1. Multiple parents 46345 // 1. Multiple parents
@@ -60859,93 +46347,26 @@ private pattern mayInRelationeParameters_reference_EOperation(
60859 // 2. Circle in the containment hierarchy 46347 // 2. Circle in the containment hierarchy
60860 neg find mustTransitiveContains(source,target); 46348 neg find mustTransitiveContains(source,target);
60861} or { 46349} or {
60862 find mustInRelationeParameters_reference_EOperation(problem,interpretation,source,target); 46350 find mustInRelationdata_reference_FunctionalInterface(problem,interpretation,source,target);
60863}
60864/**
60865 * Matcher for detecting tuples t where []eExceptions reference EOperation(source,target)
60866 */
60867private pattern mustInRelationeExceptions_reference_EOperation(
60868 problem:LogicProblem, interpretation:PartialInterpretation,
60869 source: DefinedElement, target:DefinedElement)
60870{
60871 find interpretation(problem,interpretation);
60872 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
60873 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eExceptions reference EOperation");
60874 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
60875 BinaryElementRelationLink.param1(link,source);
60876 BinaryElementRelationLink.param2(link,target);
60877}
60878/**
60879 * Matcher for detecting tuples t where <>eExceptions reference EOperation(source,target)
60880 */
60881private pattern mayInRelationeExceptions_reference_EOperation(
60882 problem:LogicProblem, interpretation:PartialInterpretation,
60883 source: DefinedElement, target:DefinedElement)
60884{
60885 find interpretation(problem,interpretation);
60886 // The two endpoint of the link have to exist
60887 find mayExist(problem, interpretation, source);
60888 find mayExist(problem, interpretation, target);
60889 // Type consistency
60890 find mayInstanceOfEOperation_class(problem,interpretation,source);
60891 find mayInstanceOfEClassifier_class(problem,interpretation,target);
60892} or {
60893 find mustInRelationeExceptions_reference_EOperation(problem,interpretation,source,target);
60894}
60895/**
60896 * Matcher for detecting tuples t where []eGenericExceptions reference EOperation(source,target)
60897 */
60898private pattern mustInRelationeGenericExceptions_reference_EOperation(
60899 problem:LogicProblem, interpretation:PartialInterpretation,
60900 source: DefinedElement, target:DefinedElement)
60901{
60902 find interpretation(problem,interpretation);
60903 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
60904 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eGenericExceptions reference EOperation");
60905 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
60906 BinaryElementRelationLink.param1(link,source);
60907 BinaryElementRelationLink.param2(link,target);
60908}
60909/**
60910 * Matcher for detecting tuples t where <>eGenericExceptions reference EOperation(source,target)
60911 */
60912private pattern mayInRelationeGenericExceptions_reference_EOperation(
60913 problem:LogicProblem, interpretation:PartialInterpretation,
60914 source: DefinedElement, target:DefinedElement)
60915{
60916 find interpretation(problem,interpretation);
60917 // The two endpoint of the link have to exist
60918 find mayExist(problem, interpretation, source);
60919 find mayExist(problem, interpretation, target);
60920 // Type consistency
60921 find mayInstanceOfEOperation_class(problem,interpretation,source);
60922 find mayInstanceOfEGenericType_class(problem,interpretation,target);
60923 // The reference is containment, then a new reference cannot be create if:
60924 // 1. Multiple parents
60925 neg find mustContains4(problem,interpretation,_,target);
60926 // 2. Circle in the containment hierarchy
60927 neg find mustTransitiveContains(source,target);
60928} or {
60929 find mustInRelationeGenericExceptions_reference_EOperation(problem,interpretation,source,target);
60930} 46351}
60931/** 46352/**
60932 * Matcher for detecting tuples t where []eClassifiers reference EPackage(source,target) 46353 * Matcher for detecting tuples t where []element reference FunctionalInterface(source,target)
60933 */ 46354 */
60934private pattern mustInRelationeClassifiers_reference_EPackage( 46355private pattern mustInRelationelement_reference_FunctionalInterface(
60935 problem:LogicProblem, interpretation:PartialInterpretation, 46356 problem:LogicProblem, interpretation:PartialInterpretation,
60936 source: DefinedElement, target:DefinedElement) 46357 source: DefinedElement, target:DefinedElement)
60937{ 46358{
60938 find interpretation(problem,interpretation); 46359 find interpretation(problem,interpretation);
60939 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 46360 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
60940 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eClassifiers reference EPackage"); 46361 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"element reference FunctionalInterface");
60941 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 46362 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
60942 BinaryElementRelationLink.param1(link,source); 46363 BinaryElementRelationLink.param1(link,source);
60943 BinaryElementRelationLink.param2(link,target); 46364 BinaryElementRelationLink.param2(link,target);
60944} 46365}
60945/** 46366/**
60946 * Matcher for detecting tuples t where <>eClassifiers reference EPackage(source,target) 46367 * Matcher for detecting tuples t where <>element reference FunctionalInterface(source,target)
60947 */ 46368 */
60948private pattern mayInRelationeClassifiers_reference_EPackage( 46369private pattern mayInRelationelement_reference_FunctionalInterface(
60949 problem:LogicProblem, interpretation:PartialInterpretation, 46370 problem:LogicProblem, interpretation:PartialInterpretation,
60950 source: DefinedElement, target:DefinedElement) 46371 source: DefinedElement, target:DefinedElement)
60951{ 46372{
@@ -60954,38 +46375,42 @@ private pattern mayInRelationeClassifiers_reference_EPackage(
60954 find mayExist(problem, interpretation, source); 46375 find mayExist(problem, interpretation, source);
60955 find mayExist(problem, interpretation, target); 46376 find mayExist(problem, interpretation, target);
60956 // Type consistency 46377 // Type consistency
60957 find mayInstanceOfEPackage_class(problem,interpretation,source); 46378 find mayInstanceOfFunctionalInterface_class(problem,interpretation,source);
60958 find mayInstanceOfEClassifier_class(problem,interpretation,target); 46379 find mayInstanceOfFunctionalElement_class(problem,interpretation,target);
46380 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
46381 // the upper bound of the multiplicity should be considered.
46382 numberOfExistingReferences == count find mustInRelationelement_reference_FunctionalInterface(problem,interpretation,source,_);
46383 check(numberOfExistingReferences < 1);
60959 // There are "numberOfExistingReferences" currently existing instances of the reference to the target, 46384 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
60960 // the upper bound of the opposite reference multiplicity should be considered. 46385 // the upper bound of the opposite reference multiplicity should be considered.
60961 numberOfExistingOppositeReferences == count find mustInRelationePackage_reference_EClassifier(problem,interpretation,target,_); 46386 numberOfExistingOppositeReferences == count find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,target,_);
60962 check(numberOfExistingOppositeReferences < 1); 46387 check(numberOfExistingOppositeReferences < 1);
60963 // The reference is containment, then a new reference cannot be create if: 46388 // The eOpposite of the reference is containment, then a referene cannot be created if
60964 // 1. Multiple parents 46389 // 1. Multiple parents
60965 neg find mustContains4(problem,interpretation,_,target); 46390 neg find mustContains4(problem,interpretation,source,_);
60966 // 2. Circle in the containment hierarchy 46391 // 2. Circle in the containment hierarchy
60967 neg find mustTransitiveContains(source,target); 46392 neg find mustTransitiveContains(source,target);
60968} or { 46393} or {
60969 find mustInRelationeClassifiers_reference_EPackage(problem,interpretation,source,target); 46394 find mustInRelationelement_reference_FunctionalInterface(problem,interpretation,source,target);
60970} 46395}
60971/** 46396/**
60972 * Matcher for detecting tuples t where []eSubpackages reference EPackage(source,target) 46397 * Matcher for detecting tuples t where []IncomingLinks reference FunctionalInput(source,target)
60973 */ 46398 */
60974private pattern mustInRelationeSubpackages_reference_EPackage( 46399private pattern mustInRelationIncomingLinks_reference_FunctionalInput(
60975 problem:LogicProblem, interpretation:PartialInterpretation, 46400 problem:LogicProblem, interpretation:PartialInterpretation,
60976 source: DefinedElement, target:DefinedElement) 46401 source: DefinedElement, target:DefinedElement)
60977{ 46402{
60978 find interpretation(problem,interpretation); 46403 find interpretation(problem,interpretation);
60979 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 46404 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
60980 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eSubpackages reference EPackage"); 46405 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"IncomingLinks reference FunctionalInput");
60981 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 46406 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
60982 BinaryElementRelationLink.param1(link,source); 46407 BinaryElementRelationLink.param1(link,source);
60983 BinaryElementRelationLink.param2(link,target); 46408 BinaryElementRelationLink.param2(link,target);
60984} 46409}
60985/** 46410/**
60986 * Matcher for detecting tuples t where <>eSubpackages reference EPackage(source,target) 46411 * Matcher for detecting tuples t where <>IncomingLinks reference FunctionalInput(source,target)
60987 */ 46412 */
60988private pattern mayInRelationeSubpackages_reference_EPackage( 46413private pattern mayInRelationIncomingLinks_reference_FunctionalInput(
60989 problem:LogicProblem, interpretation:PartialInterpretation, 46414 problem:LogicProblem, interpretation:PartialInterpretation,
60990 source: DefinedElement, target:DefinedElement) 46415 source: DefinedElement, target:DefinedElement)
60991{ 46416{
@@ -60994,374 +46419,33 @@ private pattern mayInRelationeSubpackages_reference_EPackage(
60994 find mayExist(problem, interpretation, source); 46419 find mayExist(problem, interpretation, source);
60995 find mayExist(problem, interpretation, target); 46420 find mayExist(problem, interpretation, target);
60996 // Type consistency 46421 // Type consistency
60997 find mayInstanceOfEPackage_class(problem,interpretation,source); 46422 find mayInstanceOfFunctionalInput_class(problem,interpretation,source);
60998 find mayInstanceOfEPackage_class(problem,interpretation,target); 46423 find mayInstanceOfInformationLink_class(problem,interpretation,target);
60999 // There are "numberOfExistingReferences" currently existing instances of the reference to the target, 46424 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
61000 // the upper bound of the opposite reference multiplicity should be considered. 46425 // the upper bound of the opposite reference multiplicity should be considered.
61001 numberOfExistingOppositeReferences == count find mustInRelationeSuperPackage_reference_EPackage(problem,interpretation,target,_); 46426 numberOfExistingOppositeReferences == count find mustInRelationto_reference_InformationLink(problem,interpretation,target,_);
61002 check(numberOfExistingOppositeReferences < 1); 46427 check(numberOfExistingOppositeReferences < 1);
61003 // The reference is containment, then a new reference cannot be create if:
61004 // 1. Multiple parents
61005 neg find mustContains4(problem,interpretation,_,target);
61006 // 2. Circle in the containment hierarchy
61007 neg find mustTransitiveContains(source,target);
61008} or { 46428} or {
61009 find mustInRelationeSubpackages_reference_EPackage(problem,interpretation,source,target); 46429 find mustInRelationIncomingLinks_reference_FunctionalInput(problem,interpretation,source,target);
61010}
61011/**
61012 * Matcher for detecting tuples t where []eSuperPackage reference EPackage(source,target)
61013 */
61014private pattern mustInRelationeSuperPackage_reference_EPackage(
61015 problem:LogicProblem, interpretation:PartialInterpretation,
61016 source: DefinedElement, target:DefinedElement)
61017{
61018 find interpretation(problem,interpretation);
61019 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
61020 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eSuperPackage reference EPackage");
61021 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
61022 BinaryElementRelationLink.param1(link,source);
61023 BinaryElementRelationLink.param2(link,target);
61024}
61025/**
61026 * Matcher for detecting tuples t where <>eSuperPackage reference EPackage(source,target)
61027 */
61028private pattern mayInRelationeSuperPackage_reference_EPackage(
61029 problem:LogicProblem, interpretation:PartialInterpretation,
61030 source: DefinedElement, target:DefinedElement)
61031{
61032 find interpretation(problem,interpretation);
61033 // The two endpoint of the link have to exist
61034 find mayExist(problem, interpretation, source);
61035 find mayExist(problem, interpretation, target);
61036 // Type consistency
61037 find mayInstanceOfEPackage_class(problem,interpretation,source);
61038 find mayInstanceOfEPackage_class(problem,interpretation,target);
61039 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
61040 // the upper bound of the multiplicity should be considered.
61041 numberOfExistingReferences == count find mustInRelationeSuperPackage_reference_EPackage(problem,interpretation,source,_);
61042 check(numberOfExistingReferences < 1);
61043 // The eOpposite of the reference is containment, then a referene cannot be created if
61044 // 1. Multiple parents
61045 neg find mustContains4(problem,interpretation,source,_);
61046 // 2. Circle in the containment hierarchy
61047 neg find mustTransitiveContains(source,target);
61048} or {
61049 find mustInRelationeSuperPackage_reference_EPackage(problem,interpretation,source,target);
61050}
61051/**
61052 * Matcher for detecting tuples t where []eOperation reference EParameter(source,target)
61053 */
61054private pattern mustInRelationeOperation_reference_EParameter(
61055 problem:LogicProblem, interpretation:PartialInterpretation,
61056 source: DefinedElement, target:DefinedElement)
61057{
61058 find interpretation(problem,interpretation);
61059 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
61060 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eOperation reference EParameter");
61061 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
61062 BinaryElementRelationLink.param1(link,source);
61063 BinaryElementRelationLink.param2(link,target);
61064}
61065/**
61066 * Matcher for detecting tuples t where <>eOperation reference EParameter(source,target)
61067 */
61068private pattern mayInRelationeOperation_reference_EParameter(
61069 problem:LogicProblem, interpretation:PartialInterpretation,
61070 source: DefinedElement, target:DefinedElement)
61071{
61072 find interpretation(problem,interpretation);
61073 // The two endpoint of the link have to exist
61074 find mayExist(problem, interpretation, source);
61075 find mayExist(problem, interpretation, target);
61076 // Type consistency
61077 find mayInstanceOfEParameter_class(problem,interpretation,source);
61078 find mayInstanceOfEOperation_class(problem,interpretation,target);
61079 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
61080 // the upper bound of the multiplicity should be considered.
61081 numberOfExistingReferences == count find mustInRelationeOperation_reference_EParameter(problem,interpretation,source,_);
61082 check(numberOfExistingReferences < 1);
61083 // The eOpposite of the reference is containment, then a referene cannot be created if
61084 // 1. Multiple parents
61085 neg find mustContains4(problem,interpretation,source,_);
61086 // 2. Circle in the containment hierarchy
61087 neg find mustTransitiveContains(source,target);
61088} or {
61089 find mustInRelationeOperation_reference_EParameter(problem,interpretation,source,target);
61090}
61091/**
61092 * Matcher for detecting tuples t where []eOpposite reference EReference(source,target)
61093 */
61094private pattern mustInRelationeOpposite_reference_EReference(
61095 problem:LogicProblem, interpretation:PartialInterpretation,
61096 source: DefinedElement, target:DefinedElement)
61097{
61098 find interpretation(problem,interpretation);
61099 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
61100 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eOpposite reference EReference");
61101 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
61102 BinaryElementRelationLink.param1(link,source);
61103 BinaryElementRelationLink.param2(link,target);
61104}
61105/**
61106 * Matcher for detecting tuples t where <>eOpposite reference EReference(source,target)
61107 */
61108private pattern mayInRelationeOpposite_reference_EReference(
61109 problem:LogicProblem, interpretation:PartialInterpretation,
61110 source: DefinedElement, target:DefinedElement)
61111{
61112 find interpretation(problem,interpretation);
61113 // The two endpoint of the link have to exist
61114 find mayExist(problem, interpretation, source);
61115 find mayExist(problem, interpretation, target);
61116 // Type consistency
61117 find mayInstanceOfEReference_class(problem,interpretation,source);
61118 find mayInstanceOfEReference_class(problem,interpretation,target);
61119 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
61120 // the upper bound of the multiplicity should be considered.
61121 numberOfExistingReferences == count find mustInRelationeOpposite_reference_EReference(problem,interpretation,source,_);
61122 check(numberOfExistingReferences < 1);
61123} or {
61124 find mustInRelationeOpposite_reference_EReference(problem,interpretation,source,target);
61125}
61126/**
61127 * Matcher for detecting tuples t where []eReferenceType reference EReference(source,target)
61128 */
61129private pattern mustInRelationeReferenceType_reference_EReference(
61130 problem:LogicProblem, interpretation:PartialInterpretation,
61131 source: DefinedElement, target:DefinedElement)
61132{
61133 find interpretation(problem,interpretation);
61134 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
61135 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eReferenceType reference EReference");
61136 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
61137 BinaryElementRelationLink.param1(link,source);
61138 BinaryElementRelationLink.param2(link,target);
61139}
61140/**
61141 * Matcher for detecting tuples t where <>eReferenceType reference EReference(source,target)
61142 */
61143private pattern mayInRelationeReferenceType_reference_EReference(
61144 problem:LogicProblem, interpretation:PartialInterpretation,
61145 source: DefinedElement, target:DefinedElement)
61146{
61147 find interpretation(problem,interpretation);
61148 // The two endpoint of the link have to exist
61149 find mayExist(problem, interpretation, source);
61150 find mayExist(problem, interpretation, target);
61151 // Type consistency
61152 find mayInstanceOfEReference_class(problem,interpretation,source);
61153 find mayInstanceOfEClass_class(problem,interpretation,target);
61154 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
61155 // the upper bound of the multiplicity should be considered.
61156 numberOfExistingReferences == count find mustInRelationeReferenceType_reference_EReference(problem,interpretation,source,_);
61157 check(numberOfExistingReferences < 1);
61158} or {
61159 find mustInRelationeReferenceType_reference_EReference(problem,interpretation,source,target);
61160}
61161/**
61162 * Matcher for detecting tuples t where []eKeys reference EReference(source,target)
61163 */
61164private pattern mustInRelationeKeys_reference_EReference(
61165 problem:LogicProblem, interpretation:PartialInterpretation,
61166 source: DefinedElement, target:DefinedElement)
61167{
61168 find interpretation(problem,interpretation);
61169 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
61170 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eKeys reference EReference");
61171 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
61172 BinaryElementRelationLink.param1(link,source);
61173 BinaryElementRelationLink.param2(link,target);
61174}
61175/**
61176 * Matcher for detecting tuples t where <>eKeys reference EReference(source,target)
61177 */
61178private pattern mayInRelationeKeys_reference_EReference(
61179 problem:LogicProblem, interpretation:PartialInterpretation,
61180 source: DefinedElement, target:DefinedElement)
61181{
61182 find interpretation(problem,interpretation);
61183 // The two endpoint of the link have to exist
61184 find mayExist(problem, interpretation, source);
61185 find mayExist(problem, interpretation, target);
61186 // Type consistency
61187 find mayInstanceOfEReference_class(problem,interpretation,source);
61188 find mayInstanceOfEAttribute_class(problem,interpretation,target);
61189} or {
61190 find mustInRelationeKeys_reference_EReference(problem,interpretation,source,target);
61191}
61192/**
61193 * Matcher for detecting tuples t where []eContainingClass reference EStructuralFeature(source,target)
61194 */
61195private pattern mustInRelationeContainingClass_reference_EStructuralFeature(
61196 problem:LogicProblem, interpretation:PartialInterpretation,
61197 source: DefinedElement, target:DefinedElement)
61198{
61199 find interpretation(problem,interpretation);
61200 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
61201 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eContainingClass reference EStructuralFeature");
61202 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
61203 BinaryElementRelationLink.param1(link,source);
61204 BinaryElementRelationLink.param2(link,target);
61205}
61206/**
61207 * Matcher for detecting tuples t where <>eContainingClass reference EStructuralFeature(source,target)
61208 */
61209private pattern mayInRelationeContainingClass_reference_EStructuralFeature(
61210 problem:LogicProblem, interpretation:PartialInterpretation,
61211 source: DefinedElement, target:DefinedElement)
61212{
61213 find interpretation(problem,interpretation);
61214 // The two endpoint of the link have to exist
61215 find mayExist(problem, interpretation, source);
61216 find mayExist(problem, interpretation, target);
61217 // Type consistency
61218 find mayInstanceOfEStructuralFeature_class(problem,interpretation,source);
61219 find mayInstanceOfEClass_class(problem,interpretation,target);
61220 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
61221 // the upper bound of the multiplicity should be considered.
61222 numberOfExistingReferences == count find mustInRelationeContainingClass_reference_EStructuralFeature(problem,interpretation,source,_);
61223 check(numberOfExistingReferences < 1);
61224 // The eOpposite of the reference is containment, then a referene cannot be created if
61225 // 1. Multiple parents
61226 neg find mustContains4(problem,interpretation,source,_);
61227 // 2. Circle in the containment hierarchy
61228 neg find mustTransitiveContains(source,target);
61229} or {
61230 find mustInRelationeContainingClass_reference_EStructuralFeature(problem,interpretation,source,target);
61231}
61232/**
61233 * Matcher for detecting tuples t where []eType reference ETypedElement(source,target)
61234 */
61235private pattern mustInRelationeType_reference_ETypedElement(
61236 problem:LogicProblem, interpretation:PartialInterpretation,
61237 source: DefinedElement, target:DefinedElement)
61238{
61239 find interpretation(problem,interpretation);
61240 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
61241 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eType reference ETypedElement");
61242 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
61243 BinaryElementRelationLink.param1(link,source);
61244 BinaryElementRelationLink.param2(link,target);
61245}
61246/**
61247 * Matcher for detecting tuples t where <>eType reference ETypedElement(source,target)
61248 */
61249private pattern mayInRelationeType_reference_ETypedElement(
61250 problem:LogicProblem, interpretation:PartialInterpretation,
61251 source: DefinedElement, target:DefinedElement)
61252{
61253 find interpretation(problem,interpretation);
61254 // The two endpoint of the link have to exist
61255 find mayExist(problem, interpretation, source);
61256 find mayExist(problem, interpretation, target);
61257 // Type consistency
61258 find mayInstanceOfETypedElement_class(problem,interpretation,source);
61259 find mayInstanceOfEClassifier_class(problem,interpretation,target);
61260 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
61261 // the upper bound of the multiplicity should be considered.
61262 numberOfExistingReferences == count find mustInRelationeType_reference_ETypedElement(problem,interpretation,source,_);
61263 check(numberOfExistingReferences < 1);
61264} or {
61265 find mustInRelationeType_reference_ETypedElement(problem,interpretation,source,target);
61266}
61267/**
61268 * Matcher for detecting tuples t where []eGenericType reference ETypedElement(source,target)
61269 */
61270private pattern mustInRelationeGenericType_reference_ETypedElement(
61271 problem:LogicProblem, interpretation:PartialInterpretation,
61272 source: DefinedElement, target:DefinedElement)
61273{
61274 find interpretation(problem,interpretation);
61275 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
61276 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eGenericType reference ETypedElement");
61277 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
61278 BinaryElementRelationLink.param1(link,source);
61279 BinaryElementRelationLink.param2(link,target);
61280}
61281/**
61282 * Matcher for detecting tuples t where <>eGenericType reference ETypedElement(source,target)
61283 */
61284private pattern mayInRelationeGenericType_reference_ETypedElement(
61285 problem:LogicProblem, interpretation:PartialInterpretation,
61286 source: DefinedElement, target:DefinedElement)
61287{
61288 find interpretation(problem,interpretation);
61289 // The two endpoint of the link have to exist
61290 find mayExist(problem, interpretation, source);
61291 find mayExist(problem, interpretation, target);
61292 // Type consistency
61293 find mayInstanceOfETypedElement_class(problem,interpretation,source);
61294 find mayInstanceOfEGenericType_class(problem,interpretation,target);
61295 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
61296 // the upper bound of the multiplicity should be considered.
61297 numberOfExistingReferences == count find mustInRelationeGenericType_reference_ETypedElement(problem,interpretation,source,_);
61298 check(numberOfExistingReferences < 1);
61299 // The reference is containment, then a new reference cannot be create if:
61300 // 1. Multiple parents
61301 neg find mustContains4(problem,interpretation,_,target);
61302 // 2. Circle in the containment hierarchy
61303 neg find mustTransitiveContains(source,target);
61304} or {
61305 find mustInRelationeGenericType_reference_ETypedElement(problem,interpretation,source,target);
61306}
61307/**
61308 * Matcher for detecting tuples t where []eUpperBound reference EGenericType(source,target)
61309 */
61310private pattern mustInRelationeUpperBound_reference_EGenericType(
61311 problem:LogicProblem, interpretation:PartialInterpretation,
61312 source: DefinedElement, target:DefinedElement)
61313{
61314 find interpretation(problem,interpretation);
61315 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
61316 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eUpperBound reference EGenericType");
61317 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
61318 BinaryElementRelationLink.param1(link,source);
61319 BinaryElementRelationLink.param2(link,target);
61320}
61321/**
61322 * Matcher for detecting tuples t where <>eUpperBound reference EGenericType(source,target)
61323 */
61324private pattern mayInRelationeUpperBound_reference_EGenericType(
61325 problem:LogicProblem, interpretation:PartialInterpretation,
61326 source: DefinedElement, target:DefinedElement)
61327{
61328 find interpretation(problem,interpretation);
61329 // The two endpoint of the link have to exist
61330 find mayExist(problem, interpretation, source);
61331 find mayExist(problem, interpretation, target);
61332 // Type consistency
61333 find mayInstanceOfEGenericType_class(problem,interpretation,source);
61334 find mayInstanceOfEGenericType_class(problem,interpretation,target);
61335 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
61336 // the upper bound of the multiplicity should be considered.
61337 numberOfExistingReferences == count find mustInRelationeUpperBound_reference_EGenericType(problem,interpretation,source,_);
61338 check(numberOfExistingReferences < 1);
61339 // The reference is containment, then a new reference cannot be create if:
61340 // 1. Multiple parents
61341 neg find mustContains4(problem,interpretation,_,target);
61342 // 2. Circle in the containment hierarchy
61343 neg find mustTransitiveContains(source,target);
61344} or {
61345 find mustInRelationeUpperBound_reference_EGenericType(problem,interpretation,source,target);
61346} 46430}
61347/** 46431/**
61348 * Matcher for detecting tuples t where []eTypeArguments reference EGenericType(source,target) 46432 * Matcher for detecting tuples t where []outgoingLinks reference FunctionalOutput(source,target)
61349 */ 46433 */
61350private pattern mustInRelationeTypeArguments_reference_EGenericType( 46434private pattern mustInRelationoutgoingLinks_reference_FunctionalOutput(
61351 problem:LogicProblem, interpretation:PartialInterpretation, 46435 problem:LogicProblem, interpretation:PartialInterpretation,
61352 source: DefinedElement, target:DefinedElement) 46436 source: DefinedElement, target:DefinedElement)
61353{ 46437{
61354 find interpretation(problem,interpretation); 46438 find interpretation(problem,interpretation);
61355 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 46439 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
61356 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eTypeArguments reference EGenericType"); 46440 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"outgoingLinks reference FunctionalOutput");
61357 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 46441 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
61358 BinaryElementRelationLink.param1(link,source); 46442 BinaryElementRelationLink.param1(link,source);
61359 BinaryElementRelationLink.param2(link,target); 46443 BinaryElementRelationLink.param2(link,target);
61360} 46444}
61361/** 46445/**
61362 * Matcher for detecting tuples t where <>eTypeArguments reference EGenericType(source,target) 46446 * Matcher for detecting tuples t where <>outgoingLinks reference FunctionalOutput(source,target)
61363 */ 46447 */
61364private pattern mayInRelationeTypeArguments_reference_EGenericType( 46448private pattern mayInRelationoutgoingLinks_reference_FunctionalOutput(
61365 problem:LogicProblem, interpretation:PartialInterpretation, 46449 problem:LogicProblem, interpretation:PartialInterpretation,
61366 source: DefinedElement, target:DefinedElement) 46450 source: DefinedElement, target:DefinedElement)
61367{ 46451{
@@ -61370,69 +46454,38 @@ private pattern mayInRelationeTypeArguments_reference_EGenericType(
61370 find mayExist(problem, interpretation, source); 46454 find mayExist(problem, interpretation, source);
61371 find mayExist(problem, interpretation, target); 46455 find mayExist(problem, interpretation, target);
61372 // Type consistency 46456 // Type consistency
61373 find mayInstanceOfEGenericType_class(problem,interpretation,source); 46457 find mayInstanceOfFunctionalOutput_class(problem,interpretation,source);
61374 find mayInstanceOfEGenericType_class(problem,interpretation,target); 46458 find mayInstanceOfInformationLink_class(problem,interpretation,target);
46459 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
46460 // the upper bound of the opposite reference multiplicity should be considered.
46461 numberOfExistingOppositeReferences == count find mustInRelationfrom_reference_InformationLink(problem,interpretation,target,_);
46462 check(numberOfExistingOppositeReferences < 1);
61375 // The reference is containment, then a new reference cannot be create if: 46463 // The reference is containment, then a new reference cannot be create if:
61376 // 1. Multiple parents 46464 // 1. Multiple parents
61377 neg find mustContains4(problem,interpretation,_,target); 46465 neg find mustContains4(problem,interpretation,_,target);
61378 // 2. Circle in the containment hierarchy 46466 // 2. Circle in the containment hierarchy
61379 neg find mustTransitiveContains(source,target); 46467 neg find mustTransitiveContains(source,target);
61380} or { 46468} or {
61381 find mustInRelationeTypeArguments_reference_EGenericType(problem,interpretation,source,target); 46469 find mustInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,source,target);
61382}
61383/**
61384 * Matcher for detecting tuples t where []eRawType reference EGenericType(source,target)
61385 */
61386private pattern mustInRelationeRawType_reference_EGenericType(
61387 problem:LogicProblem, interpretation:PartialInterpretation,
61388 source: DefinedElement, target:DefinedElement)
61389{
61390 find interpretation(problem,interpretation);
61391 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
61392 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eRawType reference EGenericType");
61393 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
61394 BinaryElementRelationLink.param1(link,source);
61395 BinaryElementRelationLink.param2(link,target);
61396}
61397/**
61398 * Matcher for detecting tuples t where <>eRawType reference EGenericType(source,target)
61399 */
61400private pattern mayInRelationeRawType_reference_EGenericType(
61401 problem:LogicProblem, interpretation:PartialInterpretation,
61402 source: DefinedElement, target:DefinedElement)
61403{
61404 find interpretation(problem,interpretation);
61405 // The two endpoint of the link have to exist
61406 find mayExist(problem, interpretation, source);
61407 find mayExist(problem, interpretation, target);
61408 // Type consistency
61409 find mayInstanceOfEGenericType_class(problem,interpretation,source);
61410 find mayInstanceOfEClassifier_class(problem,interpretation,target);
61411 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
61412 // the upper bound of the multiplicity should be considered.
61413 numberOfExistingReferences == count find mustInRelationeRawType_reference_EGenericType(problem,interpretation,source,_);
61414 check(numberOfExistingReferences < 1);
61415} or {
61416 find mustInRelationeRawType_reference_EGenericType(problem,interpretation,source,target);
61417} 46470}
61418/** 46471/**
61419 * Matcher for detecting tuples t where []eLowerBound reference EGenericType(source,target) 46472 * Matcher for detecting tuples t where []terminator reference FunctionalData(source,target)
61420 */ 46473 */
61421private pattern mustInRelationeLowerBound_reference_EGenericType( 46474private pattern mustInRelationterminator_reference_FunctionalData(
61422 problem:LogicProblem, interpretation:PartialInterpretation, 46475 problem:LogicProblem, interpretation:PartialInterpretation,
61423 source: DefinedElement, target:DefinedElement) 46476 source: DefinedElement, target:DefinedElement)
61424{ 46477{
61425 find interpretation(problem,interpretation); 46478 find interpretation(problem,interpretation);
61426 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 46479 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
61427 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eLowerBound reference EGenericType"); 46480 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"terminator reference FunctionalData");
61428 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 46481 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
61429 BinaryElementRelationLink.param1(link,source); 46482 BinaryElementRelationLink.param1(link,source);
61430 BinaryElementRelationLink.param2(link,target); 46483 BinaryElementRelationLink.param2(link,target);
61431} 46484}
61432/** 46485/**
61433 * Matcher for detecting tuples t where <>eLowerBound reference EGenericType(source,target) 46486 * Matcher for detecting tuples t where <>terminator reference FunctionalData(source,target)
61434 */ 46487 */
61435private pattern mayInRelationeLowerBound_reference_EGenericType( 46488private pattern mayInRelationterminator_reference_FunctionalData(
61436 problem:LogicProblem, interpretation:PartialInterpretation, 46489 problem:LogicProblem, interpretation:PartialInterpretation,
61437 source: DefinedElement, target:DefinedElement) 46490 source: DefinedElement, target:DefinedElement)
61438{ 46491{
@@ -61441,73 +46494,42 @@ private pattern mayInRelationeLowerBound_reference_EGenericType(
61441 find mayExist(problem, interpretation, source); 46494 find mayExist(problem, interpretation, source);
61442 find mayExist(problem, interpretation, target); 46495 find mayExist(problem, interpretation, target);
61443 // Type consistency 46496 // Type consistency
61444 find mayInstanceOfEGenericType_class(problem,interpretation,source); 46497 find mayInstanceOfFunctionalData_class(problem,interpretation,source);
61445 find mayInstanceOfEGenericType_class(problem,interpretation,target); 46498 find mayInstanceOfFAMTerminator_class(problem,interpretation,target);
61446 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 46499 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
61447 // the upper bound of the multiplicity should be considered. 46500 // the upper bound of the multiplicity should be considered.
61448 numberOfExistingReferences == count find mustInRelationeLowerBound_reference_EGenericType(problem,interpretation,source,_); 46501 numberOfExistingReferences == count find mustInRelationterminator_reference_FunctionalData(problem,interpretation,source,_);
61449 check(numberOfExistingReferences < 1); 46502 check(numberOfExistingReferences < 1);
46503 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
46504 // the upper bound of the opposite reference multiplicity should be considered.
46505 numberOfExistingOppositeReferences == count find mustInRelationdata_reference_FAMTerminator(problem,interpretation,target,_);
46506 check(numberOfExistingOppositeReferences < 1);
61450 // The reference is containment, then a new reference cannot be create if: 46507 // The reference is containment, then a new reference cannot be create if:
61451 // 1. Multiple parents 46508 // 1. Multiple parents
61452 neg find mustContains4(problem,interpretation,_,target); 46509 neg find mustContains4(problem,interpretation,_,target);
61453 // 2. Circle in the containment hierarchy 46510 // 2. Circle in the containment hierarchy
61454 neg find mustTransitiveContains(source,target); 46511 neg find mustTransitiveContains(source,target);
61455} or { 46512} or {
61456 find mustInRelationeLowerBound_reference_EGenericType(problem,interpretation,source,target); 46513 find mustInRelationterminator_reference_FunctionalData(problem,interpretation,source,target);
61457}
61458/**
61459 * Matcher for detecting tuples t where []eTypeParameter reference EGenericType(source,target)
61460 */
61461private pattern mustInRelationeTypeParameter_reference_EGenericType(
61462 problem:LogicProblem, interpretation:PartialInterpretation,
61463 source: DefinedElement, target:DefinedElement)
61464{
61465 find interpretation(problem,interpretation);
61466 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
61467 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eTypeParameter reference EGenericType");
61468 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
61469 BinaryElementRelationLink.param1(link,source);
61470 BinaryElementRelationLink.param2(link,target);
61471}
61472/**
61473 * Matcher for detecting tuples t where <>eTypeParameter reference EGenericType(source,target)
61474 */
61475private pattern mayInRelationeTypeParameter_reference_EGenericType(
61476 problem:LogicProblem, interpretation:PartialInterpretation,
61477 source: DefinedElement, target:DefinedElement)
61478{
61479 find interpretation(problem,interpretation);
61480 // The two endpoint of the link have to exist
61481 find mayExist(problem, interpretation, source);
61482 find mayExist(problem, interpretation, target);
61483 // Type consistency
61484 find mayInstanceOfEGenericType_class(problem,interpretation,source);
61485 find mayInstanceOfETypeParameter_class(problem,interpretation,target);
61486 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
61487 // the upper bound of the multiplicity should be considered.
61488 numberOfExistingReferences == count find mustInRelationeTypeParameter_reference_EGenericType(problem,interpretation,source,_);
61489 check(numberOfExistingReferences < 1);
61490} or {
61491 find mustInRelationeTypeParameter_reference_EGenericType(problem,interpretation,source,target);
61492} 46514}
61493/** 46515/**
61494 * Matcher for detecting tuples t where []eClassifier reference EGenericType(source,target) 46516 * Matcher for detecting tuples t where []interface reference FunctionalData(source,target)
61495 */ 46517 */
61496private pattern mustInRelationeClassifier_reference_EGenericType( 46518private pattern mustInRelationinterface_reference_FunctionalData(
61497 problem:LogicProblem, interpretation:PartialInterpretation, 46519 problem:LogicProblem, interpretation:PartialInterpretation,
61498 source: DefinedElement, target:DefinedElement) 46520 source: DefinedElement, target:DefinedElement)
61499{ 46521{
61500 find interpretation(problem,interpretation); 46522 find interpretation(problem,interpretation);
61501 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 46523 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
61502 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eClassifier reference EGenericType"); 46524 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"interface reference FunctionalData");
61503 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 46525 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
61504 BinaryElementRelationLink.param1(link,source); 46526 BinaryElementRelationLink.param1(link,source);
61505 BinaryElementRelationLink.param2(link,target); 46527 BinaryElementRelationLink.param2(link,target);
61506} 46528}
61507/** 46529/**
61508 * Matcher for detecting tuples t where <>eClassifier reference EGenericType(source,target) 46530 * Matcher for detecting tuples t where <>interface reference FunctionalData(source,target)
61509 */ 46531 */
61510private pattern mayInRelationeClassifier_reference_EGenericType( 46532private pattern mayInRelationinterface_reference_FunctionalData(
61511 problem:LogicProblem, interpretation:PartialInterpretation, 46533 problem:LogicProblem, interpretation:PartialInterpretation,
61512 source: DefinedElement, target:DefinedElement) 46534 source: DefinedElement, target:DefinedElement)
61513{ 46535{
@@ -61516,1049 +46538,38 @@ private pattern mayInRelationeClassifier_reference_EGenericType(
61516 find mayExist(problem, interpretation, source); 46538 find mayExist(problem, interpretation, source);
61517 find mayExist(problem, interpretation, target); 46539 find mayExist(problem, interpretation, target);
61518 // Type consistency 46540 // Type consistency
61519 find mayInstanceOfEGenericType_class(problem,interpretation,source); 46541 find mayInstanceOfFunctionalData_class(problem,interpretation,source);
61520 find mayInstanceOfEClassifier_class(problem,interpretation,target); 46542 find mayInstanceOfFunctionalInterface_class(problem,interpretation,target);
61521 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 46543 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
61522 // the upper bound of the multiplicity should be considered. 46544 // the upper bound of the multiplicity should be considered.
61523 numberOfExistingReferences == count find mustInRelationeClassifier_reference_EGenericType(problem,interpretation,source,_); 46545 numberOfExistingReferences == count find mustInRelationinterface_reference_FunctionalData(problem,interpretation,source,_);
61524 check(numberOfExistingReferences < 1); 46546 check(numberOfExistingReferences < 1);
61525} or { 46547 // The eOpposite of the reference is containment, then a referene cannot be created if
61526 find mustInRelationeClassifier_reference_EGenericType(problem,interpretation,source,target);
61527}
61528/**
61529 * Matcher for detecting tuples t where []eBounds reference ETypeParameter(source,target)
61530 */
61531private pattern mustInRelationeBounds_reference_ETypeParameter(
61532 problem:LogicProblem, interpretation:PartialInterpretation,
61533 source: DefinedElement, target:DefinedElement)
61534{
61535 find interpretation(problem,interpretation);
61536 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
61537 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eBounds reference ETypeParameter");
61538 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
61539 BinaryElementRelationLink.param1(link,source);
61540 BinaryElementRelationLink.param2(link,target);
61541}
61542/**
61543 * Matcher for detecting tuples t where <>eBounds reference ETypeParameter(source,target)
61544 */
61545private pattern mayInRelationeBounds_reference_ETypeParameter(
61546 problem:LogicProblem, interpretation:PartialInterpretation,
61547 source: DefinedElement, target:DefinedElement)
61548{
61549 find interpretation(problem,interpretation);
61550 // The two endpoint of the link have to exist
61551 find mayExist(problem, interpretation, source);
61552 find mayExist(problem, interpretation, target);
61553 // Type consistency
61554 find mayInstanceOfETypeParameter_class(problem,interpretation,source);
61555 find mayInstanceOfEGenericType_class(problem,interpretation,target);
61556 // The reference is containment, then a new reference cannot be create if:
61557 // 1. Multiple parents 46548 // 1. Multiple parents
61558 neg find mustContains4(problem,interpretation,_,target); 46549 neg find mustContains4(problem,interpretation,source,_);
61559 // 2. Circle in the containment hierarchy 46550 // 2. Circle in the containment hierarchy
61560 neg find mustTransitiveContains(source,target); 46551 neg find mustTransitiveContains(source,target);
61561} or { 46552} or {
61562 find mustInRelationeBounds_reference_ETypeParameter(problem,interpretation,source,target); 46553 find mustInRelationinterface_reference_FunctionalData(problem,interpretation,source,target);
61563}
61564/**
61565 * Matcher for detecting tuples t where []iD attribute EAttribute(source,target)
61566 */
61567private pattern mustInRelationiD_attribute_EAttribute(
61568 problem:LogicProblem, interpretation:PartialInterpretation,
61569 source: DefinedElement, target:DefinedElement)
61570{
61571 find interpretation(problem,interpretation);
61572 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
61573 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"iD attribute EAttribute");
61574 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
61575 BinaryElementRelationLink.param1(link,source);
61576 BinaryElementRelationLink.param2(link,target);
61577}
61578/**
61579 * Matcher for detecting tuples t where <>iD attribute EAttribute(source,target)
61580 */
61581private pattern mayInRelationiD_attribute_EAttribute(
61582 problem:LogicProblem, interpretation:PartialInterpretation,
61583 source: DefinedElement, target:DefinedElement)
61584{
61585 find interpretation(problem,interpretation);
61586 // The two endpoint of the link have to exist
61587 find mayExist(problem, interpretation, source);
61588 find mayExist(problem, interpretation, target);
61589 // Type consistency
61590 find mayInstanceOfEAttribute_class(problem,interpretation,source);
61591 BooleanElement(target);
61592 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
61593 // the upper bound of the multiplicity should be considered.
61594 numberOfExistingReferences == count find mustInRelationiD_attribute_EAttribute(problem,interpretation,source,_);
61595 check(numberOfExistingReferences < 1);
61596} or {
61597 find mustInRelationiD_attribute_EAttribute(problem,interpretation,source,target);
61598}
61599/**
61600 * Matcher for detecting tuples t where []source attribute EAnnotation(source,target)
61601 */
61602private pattern mustInRelationsource_attribute_EAnnotation(
61603 problem:LogicProblem, interpretation:PartialInterpretation,
61604 source: DefinedElement, target:DefinedElement)
61605{
61606 find interpretation(problem,interpretation);
61607 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
61608 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"source attribute EAnnotation");
61609 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
61610 BinaryElementRelationLink.param1(link,source);
61611 BinaryElementRelationLink.param2(link,target);
61612}
61613/**
61614 * Matcher for detecting tuples t where <>source attribute EAnnotation(source,target)
61615 */
61616private pattern mayInRelationsource_attribute_EAnnotation(
61617 problem:LogicProblem, interpretation:PartialInterpretation,
61618 source: DefinedElement, target:DefinedElement)
61619{
61620 find interpretation(problem,interpretation);
61621 // The two endpoint of the link have to exist
61622 find mayExist(problem, interpretation, source);
61623 find mayExist(problem, interpretation, target);
61624 // Type consistency
61625 find mayInstanceOfEAnnotation_class(problem,interpretation,source);
61626 StringElement(target);
61627 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
61628 // the upper bound of the multiplicity should be considered.
61629 numberOfExistingReferences == count find mustInRelationsource_attribute_EAnnotation(problem,interpretation,source,_);
61630 check(numberOfExistingReferences < 1);
61631} or {
61632 find mustInRelationsource_attribute_EAnnotation(problem,interpretation,source,target);
61633}
61634/**
61635 * Matcher for detecting tuples t where []abstract attribute EClass(source,target)
61636 */
61637private pattern mustInRelationabstract_attribute_EClass(
61638 problem:LogicProblem, interpretation:PartialInterpretation,
61639 source: DefinedElement, target:DefinedElement)
61640{
61641 find interpretation(problem,interpretation);
61642 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
61643 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"abstract attribute EClass");
61644 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
61645 BinaryElementRelationLink.param1(link,source);
61646 BinaryElementRelationLink.param2(link,target);
61647}
61648/**
61649 * Matcher for detecting tuples t where <>abstract attribute EClass(source,target)
61650 */
61651private pattern mayInRelationabstract_attribute_EClass(
61652 problem:LogicProblem, interpretation:PartialInterpretation,
61653 source: DefinedElement, target:DefinedElement)
61654{
61655 find interpretation(problem,interpretation);
61656 // The two endpoint of the link have to exist
61657 find mayExist(problem, interpretation, source);
61658 find mayExist(problem, interpretation, target);
61659 // Type consistency
61660 find mayInstanceOfEClass_class(problem,interpretation,source);
61661 BooleanElement(target);
61662 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
61663 // the upper bound of the multiplicity should be considered.
61664 numberOfExistingReferences == count find mustInRelationabstract_attribute_EClass(problem,interpretation,source,_);
61665 check(numberOfExistingReferences < 1);
61666} or {
61667 find mustInRelationabstract_attribute_EClass(problem,interpretation,source,target);
61668}
61669/**
61670 * Matcher for detecting tuples t where []interface attribute EClass(source,target)
61671 */
61672private pattern mustInRelationinterface_attribute_EClass(
61673 problem:LogicProblem, interpretation:PartialInterpretation,
61674 source: DefinedElement, target:DefinedElement)
61675{
61676 find interpretation(problem,interpretation);
61677 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
61678 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"interface attribute EClass");
61679 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
61680 BinaryElementRelationLink.param1(link,source);
61681 BinaryElementRelationLink.param2(link,target);
61682}
61683/**
61684 * Matcher for detecting tuples t where <>interface attribute EClass(source,target)
61685 */
61686private pattern mayInRelationinterface_attribute_EClass(
61687 problem:LogicProblem, interpretation:PartialInterpretation,
61688 source: DefinedElement, target:DefinedElement)
61689{
61690 find interpretation(problem,interpretation);
61691 // The two endpoint of the link have to exist
61692 find mayExist(problem, interpretation, source);
61693 find mayExist(problem, interpretation, target);
61694 // Type consistency
61695 find mayInstanceOfEClass_class(problem,interpretation,source);
61696 BooleanElement(target);
61697 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
61698 // the upper bound of the multiplicity should be considered.
61699 numberOfExistingReferences == count find mustInRelationinterface_attribute_EClass(problem,interpretation,source,_);
61700 check(numberOfExistingReferences < 1);
61701} or {
61702 find mustInRelationinterface_attribute_EClass(problem,interpretation,source,target);
61703}
61704/**
61705 * Matcher for detecting tuples t where []instanceClassName attribute EClassifier(source,target)
61706 */
61707private pattern mustInRelationinstanceClassName_attribute_EClassifier(
61708 problem:LogicProblem, interpretation:PartialInterpretation,
61709 source: DefinedElement, target:DefinedElement)
61710{
61711 find interpretation(problem,interpretation);
61712 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
61713 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"instanceClassName attribute EClassifier");
61714 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
61715 BinaryElementRelationLink.param1(link,source);
61716 BinaryElementRelationLink.param2(link,target);
61717}
61718/**
61719 * Matcher for detecting tuples t where <>instanceClassName attribute EClassifier(source,target)
61720 */
61721private pattern mayInRelationinstanceClassName_attribute_EClassifier(
61722 problem:LogicProblem, interpretation:PartialInterpretation,
61723 source: DefinedElement, target:DefinedElement)
61724{
61725 find interpretation(problem,interpretation);
61726 // The two endpoint of the link have to exist
61727 find mayExist(problem, interpretation, source);
61728 find mayExist(problem, interpretation, target);
61729 // Type consistency
61730 find mayInstanceOfEClassifier_class(problem,interpretation,source);
61731 StringElement(target);
61732 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
61733 // the upper bound of the multiplicity should be considered.
61734 numberOfExistingReferences == count find mustInRelationinstanceClassName_attribute_EClassifier(problem,interpretation,source,_);
61735 check(numberOfExistingReferences < 1);
61736} or {
61737 find mustInRelationinstanceClassName_attribute_EClassifier(problem,interpretation,source,target);
61738}
61739/**
61740 * Matcher for detecting tuples t where []instanceTypeName attribute EClassifier(source,target)
61741 */
61742private pattern mustInRelationinstanceTypeName_attribute_EClassifier(
61743 problem:LogicProblem, interpretation:PartialInterpretation,
61744 source: DefinedElement, target:DefinedElement)
61745{
61746 find interpretation(problem,interpretation);
61747 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
61748 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"instanceTypeName attribute EClassifier");
61749 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
61750 BinaryElementRelationLink.param1(link,source);
61751 BinaryElementRelationLink.param2(link,target);
61752}
61753/**
61754 * Matcher for detecting tuples t where <>instanceTypeName attribute EClassifier(source,target)
61755 */
61756private pattern mayInRelationinstanceTypeName_attribute_EClassifier(
61757 problem:LogicProblem, interpretation:PartialInterpretation,
61758 source: DefinedElement, target:DefinedElement)
61759{
61760 find interpretation(problem,interpretation);
61761 // The two endpoint of the link have to exist
61762 find mayExist(problem, interpretation, source);
61763 find mayExist(problem, interpretation, target);
61764 // Type consistency
61765 find mayInstanceOfEClassifier_class(problem,interpretation,source);
61766 StringElement(target);
61767 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
61768 // the upper bound of the multiplicity should be considered.
61769 numberOfExistingReferences == count find mustInRelationinstanceTypeName_attribute_EClassifier(problem,interpretation,source,_);
61770 check(numberOfExistingReferences < 1);
61771} or {
61772 find mustInRelationinstanceTypeName_attribute_EClassifier(problem,interpretation,source,target);
61773}
61774/**
61775 * Matcher for detecting tuples t where []serializable attribute EDataType(source,target)
61776 */
61777private pattern mustInRelationserializable_attribute_EDataType(
61778 problem:LogicProblem, interpretation:PartialInterpretation,
61779 source: DefinedElement, target:DefinedElement)
61780{
61781 find interpretation(problem,interpretation);
61782 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
61783 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"serializable attribute EDataType");
61784 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
61785 BinaryElementRelationLink.param1(link,source);
61786 BinaryElementRelationLink.param2(link,target);
61787}
61788/**
61789 * Matcher for detecting tuples t where <>serializable attribute EDataType(source,target)
61790 */
61791private pattern mayInRelationserializable_attribute_EDataType(
61792 problem:LogicProblem, interpretation:PartialInterpretation,
61793 source: DefinedElement, target:DefinedElement)
61794{
61795 find interpretation(problem,interpretation);
61796 // The two endpoint of the link have to exist
61797 find mayExist(problem, interpretation, source);
61798 find mayExist(problem, interpretation, target);
61799 // Type consistency
61800 find mayInstanceOfEDataType_class(problem,interpretation,source);
61801 BooleanElement(target);
61802 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
61803 // the upper bound of the multiplicity should be considered.
61804 numberOfExistingReferences == count find mustInRelationserializable_attribute_EDataType(problem,interpretation,source,_);
61805 check(numberOfExistingReferences < 1);
61806} or {
61807 find mustInRelationserializable_attribute_EDataType(problem,interpretation,source,target);
61808}
61809/**
61810 * Matcher for detecting tuples t where []value attribute EEnumLiteral(source,target)
61811 */
61812private pattern mustInRelationvalue_attribute_EEnumLiteral(
61813 problem:LogicProblem, interpretation:PartialInterpretation,
61814 source: DefinedElement, target:DefinedElement)
61815{
61816 find interpretation(problem,interpretation);
61817 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
61818 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"value attribute EEnumLiteral");
61819 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
61820 BinaryElementRelationLink.param1(link,source);
61821 BinaryElementRelationLink.param2(link,target);
61822}
61823/**
61824 * Matcher for detecting tuples t where <>value attribute EEnumLiteral(source,target)
61825 */
61826private pattern mayInRelationvalue_attribute_EEnumLiteral(
61827 problem:LogicProblem, interpretation:PartialInterpretation,
61828 source: DefinedElement, target:DefinedElement)
61829{
61830 find interpretation(problem,interpretation);
61831 // The two endpoint of the link have to exist
61832 find mayExist(problem, interpretation, source);
61833 find mayExist(problem, interpretation, target);
61834 // Type consistency
61835 find mayInstanceOfEEnumLiteral_class(problem,interpretation,source);
61836 IntegerElement(target);
61837 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
61838 // the upper bound of the multiplicity should be considered.
61839 numberOfExistingReferences == count find mustInRelationvalue_attribute_EEnumLiteral(problem,interpretation,source,_);
61840 check(numberOfExistingReferences < 1);
61841} or {
61842 find mustInRelationvalue_attribute_EEnumLiteral(problem,interpretation,source,target);
61843}
61844/**
61845 * Matcher for detecting tuples t where []literal attribute EEnumLiteral(source,target)
61846 */
61847private pattern mustInRelationliteral_attribute_EEnumLiteral(
61848 problem:LogicProblem, interpretation:PartialInterpretation,
61849 source: DefinedElement, target:DefinedElement)
61850{
61851 find interpretation(problem,interpretation);
61852 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
61853 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"literal attribute EEnumLiteral");
61854 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
61855 BinaryElementRelationLink.param1(link,source);
61856 BinaryElementRelationLink.param2(link,target);
61857}
61858/**
61859 * Matcher for detecting tuples t where <>literal attribute EEnumLiteral(source,target)
61860 */
61861private pattern mayInRelationliteral_attribute_EEnumLiteral(
61862 problem:LogicProblem, interpretation:PartialInterpretation,
61863 source: DefinedElement, target:DefinedElement)
61864{
61865 find interpretation(problem,interpretation);
61866 // The two endpoint of the link have to exist
61867 find mayExist(problem, interpretation, source);
61868 find mayExist(problem, interpretation, target);
61869 // Type consistency
61870 find mayInstanceOfEEnumLiteral_class(problem,interpretation,source);
61871 StringElement(target);
61872 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
61873 // the upper bound of the multiplicity should be considered.
61874 numberOfExistingReferences == count find mustInRelationliteral_attribute_EEnumLiteral(problem,interpretation,source,_);
61875 check(numberOfExistingReferences < 1);
61876} or {
61877 find mustInRelationliteral_attribute_EEnumLiteral(problem,interpretation,source,target);
61878}
61879/**
61880 * Matcher for detecting tuples t where []name attribute ENamedElement(source,target)
61881 */
61882private pattern mustInRelationname_attribute_ENamedElement(
61883 problem:LogicProblem, interpretation:PartialInterpretation,
61884 source: DefinedElement, target:DefinedElement)
61885{
61886 find interpretation(problem,interpretation);
61887 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
61888 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"name attribute ENamedElement");
61889 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
61890 BinaryElementRelationLink.param1(link,source);
61891 BinaryElementRelationLink.param2(link,target);
61892}
61893/**
61894 * Matcher for detecting tuples t where <>name attribute ENamedElement(source,target)
61895 */
61896private pattern mayInRelationname_attribute_ENamedElement(
61897 problem:LogicProblem, interpretation:PartialInterpretation,
61898 source: DefinedElement, target:DefinedElement)
61899{
61900 find interpretation(problem,interpretation);
61901 // The two endpoint of the link have to exist
61902 find mayExist(problem, interpretation, source);
61903 find mayExist(problem, interpretation, target);
61904 // Type consistency
61905 find mayInstanceOfENamedElement_class(problem,interpretation,source);
61906 StringElement(target);
61907 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
61908 // the upper bound of the multiplicity should be considered.
61909 numberOfExistingReferences == count find mustInRelationname_attribute_ENamedElement(problem,interpretation,source,_);
61910 check(numberOfExistingReferences < 1);
61911} or {
61912 find mustInRelationname_attribute_ENamedElement(problem,interpretation,source,target);
61913}
61914/**
61915 * Matcher for detecting tuples t where []nsURI attribute EPackage(source,target)
61916 */
61917private pattern mustInRelationnsURI_attribute_EPackage(
61918 problem:LogicProblem, interpretation:PartialInterpretation,
61919 source: DefinedElement, target:DefinedElement)
61920{
61921 find interpretation(problem,interpretation);
61922 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
61923 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"nsURI attribute EPackage");
61924 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
61925 BinaryElementRelationLink.param1(link,source);
61926 BinaryElementRelationLink.param2(link,target);
61927}
61928/**
61929 * Matcher for detecting tuples t where <>nsURI attribute EPackage(source,target)
61930 */
61931private pattern mayInRelationnsURI_attribute_EPackage(
61932 problem:LogicProblem, interpretation:PartialInterpretation,
61933 source: DefinedElement, target:DefinedElement)
61934{
61935 find interpretation(problem,interpretation);
61936 // The two endpoint of the link have to exist
61937 find mayExist(problem, interpretation, source);
61938 find mayExist(problem, interpretation, target);
61939 // Type consistency
61940 find mayInstanceOfEPackage_class(problem,interpretation,source);
61941 StringElement(target);
61942 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
61943 // the upper bound of the multiplicity should be considered.
61944 numberOfExistingReferences == count find mustInRelationnsURI_attribute_EPackage(problem,interpretation,source,_);
61945 check(numberOfExistingReferences < 1);
61946} or {
61947 find mustInRelationnsURI_attribute_EPackage(problem,interpretation,source,target);
61948}
61949/**
61950 * Matcher for detecting tuples t where []nsPrefix attribute EPackage(source,target)
61951 */
61952private pattern mustInRelationnsPrefix_attribute_EPackage(
61953 problem:LogicProblem, interpretation:PartialInterpretation,
61954 source: DefinedElement, target:DefinedElement)
61955{
61956 find interpretation(problem,interpretation);
61957 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
61958 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"nsPrefix attribute EPackage");
61959 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
61960 BinaryElementRelationLink.param1(link,source);
61961 BinaryElementRelationLink.param2(link,target);
61962}
61963/**
61964 * Matcher for detecting tuples t where <>nsPrefix attribute EPackage(source,target)
61965 */
61966private pattern mayInRelationnsPrefix_attribute_EPackage(
61967 problem:LogicProblem, interpretation:PartialInterpretation,
61968 source: DefinedElement, target:DefinedElement)
61969{
61970 find interpretation(problem,interpretation);
61971 // The two endpoint of the link have to exist
61972 find mayExist(problem, interpretation, source);
61973 find mayExist(problem, interpretation, target);
61974 // Type consistency
61975 find mayInstanceOfEPackage_class(problem,interpretation,source);
61976 StringElement(target);
61977 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
61978 // the upper bound of the multiplicity should be considered.
61979 numberOfExistingReferences == count find mustInRelationnsPrefix_attribute_EPackage(problem,interpretation,source,_);
61980 check(numberOfExistingReferences < 1);
61981} or {
61982 find mustInRelationnsPrefix_attribute_EPackage(problem,interpretation,source,target);
61983}
61984/**
61985 * Matcher for detecting tuples t where []containment attribute EReference(source,target)
61986 */
61987private pattern mustInRelationcontainment_attribute_EReference(
61988 problem:LogicProblem, interpretation:PartialInterpretation,
61989 source: DefinedElement, target:DefinedElement)
61990{
61991 find interpretation(problem,interpretation);
61992 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
61993 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"containment attribute EReference");
61994 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
61995 BinaryElementRelationLink.param1(link,source);
61996 BinaryElementRelationLink.param2(link,target);
61997}
61998/**
61999 * Matcher for detecting tuples t where <>containment attribute EReference(source,target)
62000 */
62001private pattern mayInRelationcontainment_attribute_EReference(
62002 problem:LogicProblem, interpretation:PartialInterpretation,
62003 source: DefinedElement, target:DefinedElement)
62004{
62005 find interpretation(problem,interpretation);
62006 // The two endpoint of the link have to exist
62007 find mayExist(problem, interpretation, source);
62008 find mayExist(problem, interpretation, target);
62009 // Type consistency
62010 find mayInstanceOfEReference_class(problem,interpretation,source);
62011 BooleanElement(target);
62012 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
62013 // the upper bound of the multiplicity should be considered.
62014 numberOfExistingReferences == count find mustInRelationcontainment_attribute_EReference(problem,interpretation,source,_);
62015 check(numberOfExistingReferences < 1);
62016} or {
62017 find mustInRelationcontainment_attribute_EReference(problem,interpretation,source,target);
62018}
62019/**
62020 * Matcher for detecting tuples t where []container attribute EReference(source,target)
62021 */
62022private pattern mustInRelationcontainer_attribute_EReference(
62023 problem:LogicProblem, interpretation:PartialInterpretation,
62024 source: DefinedElement, target:DefinedElement)
62025{
62026 find interpretation(problem,interpretation);
62027 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
62028 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"container attribute EReference");
62029 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
62030 BinaryElementRelationLink.param1(link,source);
62031 BinaryElementRelationLink.param2(link,target);
62032}
62033/**
62034 * Matcher for detecting tuples t where <>container attribute EReference(source,target)
62035 */
62036private pattern mayInRelationcontainer_attribute_EReference(
62037 problem:LogicProblem, interpretation:PartialInterpretation,
62038 source: DefinedElement, target:DefinedElement)
62039{
62040 find interpretation(problem,interpretation);
62041 // The two endpoint of the link have to exist
62042 find mayExist(problem, interpretation, source);
62043 find mayExist(problem, interpretation, target);
62044 // Type consistency
62045 find mayInstanceOfEReference_class(problem,interpretation,source);
62046 BooleanElement(target);
62047 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
62048 // the upper bound of the multiplicity should be considered.
62049 numberOfExistingReferences == count find mustInRelationcontainer_attribute_EReference(problem,interpretation,source,_);
62050 check(numberOfExistingReferences < 1);
62051} or {
62052 find mustInRelationcontainer_attribute_EReference(problem,interpretation,source,target);
62053}
62054/**
62055 * Matcher for detecting tuples t where []resolveProxies attribute EReference(source,target)
62056 */
62057private pattern mustInRelationresolveProxies_attribute_EReference(
62058 problem:LogicProblem, interpretation:PartialInterpretation,
62059 source: DefinedElement, target:DefinedElement)
62060{
62061 find interpretation(problem,interpretation);
62062 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
62063 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"resolveProxies attribute EReference");
62064 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
62065 BinaryElementRelationLink.param1(link,source);
62066 BinaryElementRelationLink.param2(link,target);
62067}
62068/**
62069 * Matcher for detecting tuples t where <>resolveProxies attribute EReference(source,target)
62070 */
62071private pattern mayInRelationresolveProxies_attribute_EReference(
62072 problem:LogicProblem, interpretation:PartialInterpretation,
62073 source: DefinedElement, target:DefinedElement)
62074{
62075 find interpretation(problem,interpretation);
62076 // The two endpoint of the link have to exist
62077 find mayExist(problem, interpretation, source);
62078 find mayExist(problem, interpretation, target);
62079 // Type consistency
62080 find mayInstanceOfEReference_class(problem,interpretation,source);
62081 BooleanElement(target);
62082 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
62083 // the upper bound of the multiplicity should be considered.
62084 numberOfExistingReferences == count find mustInRelationresolveProxies_attribute_EReference(problem,interpretation,source,_);
62085 check(numberOfExistingReferences < 1);
62086} or {
62087 find mustInRelationresolveProxies_attribute_EReference(problem,interpretation,source,target);
62088}
62089/**
62090 * Matcher for detecting tuples t where []changeable attribute EStructuralFeature(source,target)
62091 */
62092private pattern mustInRelationchangeable_attribute_EStructuralFeature(
62093 problem:LogicProblem, interpretation:PartialInterpretation,
62094 source: DefinedElement, target:DefinedElement)
62095{
62096 find interpretation(problem,interpretation);
62097 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
62098 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"changeable attribute EStructuralFeature");
62099 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
62100 BinaryElementRelationLink.param1(link,source);
62101 BinaryElementRelationLink.param2(link,target);
62102}
62103/**
62104 * Matcher for detecting tuples t where <>changeable attribute EStructuralFeature(source,target)
62105 */
62106private pattern mayInRelationchangeable_attribute_EStructuralFeature(
62107 problem:LogicProblem, interpretation:PartialInterpretation,
62108 source: DefinedElement, target:DefinedElement)
62109{
62110 find interpretation(problem,interpretation);
62111 // The two endpoint of the link have to exist
62112 find mayExist(problem, interpretation, source);
62113 find mayExist(problem, interpretation, target);
62114 // Type consistency
62115 find mayInstanceOfEStructuralFeature_class(problem,interpretation,source);
62116 BooleanElement(target);
62117 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
62118 // the upper bound of the multiplicity should be considered.
62119 numberOfExistingReferences == count find mustInRelationchangeable_attribute_EStructuralFeature(problem,interpretation,source,_);
62120 check(numberOfExistingReferences < 1);
62121} or {
62122 find mustInRelationchangeable_attribute_EStructuralFeature(problem,interpretation,source,target);
62123}
62124/**
62125 * Matcher for detecting tuples t where []volatile attribute EStructuralFeature(source,target)
62126 */
62127private pattern mustInRelationvolatile_attribute_EStructuralFeature(
62128 problem:LogicProblem, interpretation:PartialInterpretation,
62129 source: DefinedElement, target:DefinedElement)
62130{
62131 find interpretation(problem,interpretation);
62132 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
62133 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"volatile attribute EStructuralFeature");
62134 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
62135 BinaryElementRelationLink.param1(link,source);
62136 BinaryElementRelationLink.param2(link,target);
62137}
62138/**
62139 * Matcher for detecting tuples t where <>volatile attribute EStructuralFeature(source,target)
62140 */
62141private pattern mayInRelationvolatile_attribute_EStructuralFeature(
62142 problem:LogicProblem, interpretation:PartialInterpretation,
62143 source: DefinedElement, target:DefinedElement)
62144{
62145 find interpretation(problem,interpretation);
62146 // The two endpoint of the link have to exist
62147 find mayExist(problem, interpretation, source);
62148 find mayExist(problem, interpretation, target);
62149 // Type consistency
62150 find mayInstanceOfEStructuralFeature_class(problem,interpretation,source);
62151 BooleanElement(target);
62152 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
62153 // the upper bound of the multiplicity should be considered.
62154 numberOfExistingReferences == count find mustInRelationvolatile_attribute_EStructuralFeature(problem,interpretation,source,_);
62155 check(numberOfExistingReferences < 1);
62156} or {
62157 find mustInRelationvolatile_attribute_EStructuralFeature(problem,interpretation,source,target);
62158}
62159/**
62160 * Matcher for detecting tuples t where []transient attribute EStructuralFeature(source,target)
62161 */
62162private pattern mustInRelationtransient_attribute_EStructuralFeature(
62163 problem:LogicProblem, interpretation:PartialInterpretation,
62164 source: DefinedElement, target:DefinedElement)
62165{
62166 find interpretation(problem,interpretation);
62167 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
62168 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"transient attribute EStructuralFeature");
62169 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
62170 BinaryElementRelationLink.param1(link,source);
62171 BinaryElementRelationLink.param2(link,target);
62172}
62173/**
62174 * Matcher for detecting tuples t where <>transient attribute EStructuralFeature(source,target)
62175 */
62176private pattern mayInRelationtransient_attribute_EStructuralFeature(
62177 problem:LogicProblem, interpretation:PartialInterpretation,
62178 source: DefinedElement, target:DefinedElement)
62179{
62180 find interpretation(problem,interpretation);
62181 // The two endpoint of the link have to exist
62182 find mayExist(problem, interpretation, source);
62183 find mayExist(problem, interpretation, target);
62184 // Type consistency
62185 find mayInstanceOfEStructuralFeature_class(problem,interpretation,source);
62186 BooleanElement(target);
62187 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
62188 // the upper bound of the multiplicity should be considered.
62189 numberOfExistingReferences == count find mustInRelationtransient_attribute_EStructuralFeature(problem,interpretation,source,_);
62190 check(numberOfExistingReferences < 1);
62191} or {
62192 find mustInRelationtransient_attribute_EStructuralFeature(problem,interpretation,source,target);
62193}
62194/**
62195 * Matcher for detecting tuples t where []defaultValueLiteral attribute EStructuralFeature(source,target)
62196 */
62197private pattern mustInRelationdefaultValueLiteral_attribute_EStructuralFeature(
62198 problem:LogicProblem, interpretation:PartialInterpretation,
62199 source: DefinedElement, target:DefinedElement)
62200{
62201 find interpretation(problem,interpretation);
62202 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
62203 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"defaultValueLiteral attribute EStructuralFeature");
62204 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
62205 BinaryElementRelationLink.param1(link,source);
62206 BinaryElementRelationLink.param2(link,target);
62207}
62208/**
62209 * Matcher for detecting tuples t where <>defaultValueLiteral attribute EStructuralFeature(source,target)
62210 */
62211private pattern mayInRelationdefaultValueLiteral_attribute_EStructuralFeature(
62212 problem:LogicProblem, interpretation:PartialInterpretation,
62213 source: DefinedElement, target:DefinedElement)
62214{
62215 find interpretation(problem,interpretation);
62216 // The two endpoint of the link have to exist
62217 find mayExist(problem, interpretation, source);
62218 find mayExist(problem, interpretation, target);
62219 // Type consistency
62220 find mayInstanceOfEStructuralFeature_class(problem,interpretation,source);
62221 StringElement(target);
62222 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
62223 // the upper bound of the multiplicity should be considered.
62224 numberOfExistingReferences == count find mustInRelationdefaultValueLiteral_attribute_EStructuralFeature(problem,interpretation,source,_);
62225 check(numberOfExistingReferences < 1);
62226} or {
62227 find mustInRelationdefaultValueLiteral_attribute_EStructuralFeature(problem,interpretation,source,target);
62228}
62229/**
62230 * Matcher for detecting tuples t where []unsettable attribute EStructuralFeature(source,target)
62231 */
62232private pattern mustInRelationunsettable_attribute_EStructuralFeature(
62233 problem:LogicProblem, interpretation:PartialInterpretation,
62234 source: DefinedElement, target:DefinedElement)
62235{
62236 find interpretation(problem,interpretation);
62237 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
62238 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"unsettable attribute EStructuralFeature");
62239 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
62240 BinaryElementRelationLink.param1(link,source);
62241 BinaryElementRelationLink.param2(link,target);
62242}
62243/**
62244 * Matcher for detecting tuples t where <>unsettable attribute EStructuralFeature(source,target)
62245 */
62246private pattern mayInRelationunsettable_attribute_EStructuralFeature(
62247 problem:LogicProblem, interpretation:PartialInterpretation,
62248 source: DefinedElement, target:DefinedElement)
62249{
62250 find interpretation(problem,interpretation);
62251 // The two endpoint of the link have to exist
62252 find mayExist(problem, interpretation, source);
62253 find mayExist(problem, interpretation, target);
62254 // Type consistency
62255 find mayInstanceOfEStructuralFeature_class(problem,interpretation,source);
62256 BooleanElement(target);
62257 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
62258 // the upper bound of the multiplicity should be considered.
62259 numberOfExistingReferences == count find mustInRelationunsettable_attribute_EStructuralFeature(problem,interpretation,source,_);
62260 check(numberOfExistingReferences < 1);
62261} or {
62262 find mustInRelationunsettable_attribute_EStructuralFeature(problem,interpretation,source,target);
62263}
62264/**
62265 * Matcher for detecting tuples t where []derived attribute EStructuralFeature(source,target)
62266 */
62267private pattern mustInRelationderived_attribute_EStructuralFeature(
62268 problem:LogicProblem, interpretation:PartialInterpretation,
62269 source: DefinedElement, target:DefinedElement)
62270{
62271 find interpretation(problem,interpretation);
62272 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
62273 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"derived attribute EStructuralFeature");
62274 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
62275 BinaryElementRelationLink.param1(link,source);
62276 BinaryElementRelationLink.param2(link,target);
62277}
62278/**
62279 * Matcher for detecting tuples t where <>derived attribute EStructuralFeature(source,target)
62280 */
62281private pattern mayInRelationderived_attribute_EStructuralFeature(
62282 problem:LogicProblem, interpretation:PartialInterpretation,
62283 source: DefinedElement, target:DefinedElement)
62284{
62285 find interpretation(problem,interpretation);
62286 // The two endpoint of the link have to exist
62287 find mayExist(problem, interpretation, source);
62288 find mayExist(problem, interpretation, target);
62289 // Type consistency
62290 find mayInstanceOfEStructuralFeature_class(problem,interpretation,source);
62291 BooleanElement(target);
62292 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
62293 // the upper bound of the multiplicity should be considered.
62294 numberOfExistingReferences == count find mustInRelationderived_attribute_EStructuralFeature(problem,interpretation,source,_);
62295 check(numberOfExistingReferences < 1);
62296} or {
62297 find mustInRelationderived_attribute_EStructuralFeature(problem,interpretation,source,target);
62298}
62299/**
62300 * Matcher for detecting tuples t where []ordered attribute ETypedElement(source,target)
62301 */
62302private pattern mustInRelationordered_attribute_ETypedElement(
62303 problem:LogicProblem, interpretation:PartialInterpretation,
62304 source: DefinedElement, target:DefinedElement)
62305{
62306 find interpretation(problem,interpretation);
62307 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
62308 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"ordered attribute ETypedElement");
62309 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
62310 BinaryElementRelationLink.param1(link,source);
62311 BinaryElementRelationLink.param2(link,target);
62312}
62313/**
62314 * Matcher for detecting tuples t where <>ordered attribute ETypedElement(source,target)
62315 */
62316private pattern mayInRelationordered_attribute_ETypedElement(
62317 problem:LogicProblem, interpretation:PartialInterpretation,
62318 source: DefinedElement, target:DefinedElement)
62319{
62320 find interpretation(problem,interpretation);
62321 // The two endpoint of the link have to exist
62322 find mayExist(problem, interpretation, source);
62323 find mayExist(problem, interpretation, target);
62324 // Type consistency
62325 find mayInstanceOfETypedElement_class(problem,interpretation,source);
62326 BooleanElement(target);
62327 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
62328 // the upper bound of the multiplicity should be considered.
62329 numberOfExistingReferences == count find mustInRelationordered_attribute_ETypedElement(problem,interpretation,source,_);
62330 check(numberOfExistingReferences < 1);
62331} or {
62332 find mustInRelationordered_attribute_ETypedElement(problem,interpretation,source,target);
62333}
62334/**
62335 * Matcher for detecting tuples t where []unique attribute ETypedElement(source,target)
62336 */
62337private pattern mustInRelationunique_attribute_ETypedElement(
62338 problem:LogicProblem, interpretation:PartialInterpretation,
62339 source: DefinedElement, target:DefinedElement)
62340{
62341 find interpretation(problem,interpretation);
62342 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
62343 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"unique attribute ETypedElement");
62344 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
62345 BinaryElementRelationLink.param1(link,source);
62346 BinaryElementRelationLink.param2(link,target);
62347}
62348/**
62349 * Matcher for detecting tuples t where <>unique attribute ETypedElement(source,target)
62350 */
62351private pattern mayInRelationunique_attribute_ETypedElement(
62352 problem:LogicProblem, interpretation:PartialInterpretation,
62353 source: DefinedElement, target:DefinedElement)
62354{
62355 find interpretation(problem,interpretation);
62356 // The two endpoint of the link have to exist
62357 find mayExist(problem, interpretation, source);
62358 find mayExist(problem, interpretation, target);
62359 // Type consistency
62360 find mayInstanceOfETypedElement_class(problem,interpretation,source);
62361 BooleanElement(target);
62362 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
62363 // the upper bound of the multiplicity should be considered.
62364 numberOfExistingReferences == count find mustInRelationunique_attribute_ETypedElement(problem,interpretation,source,_);
62365 check(numberOfExistingReferences < 1);
62366} or {
62367 find mustInRelationunique_attribute_ETypedElement(problem,interpretation,source,target);
62368}
62369/**
62370 * Matcher for detecting tuples t where []lowerBound attribute ETypedElement(source,target)
62371 */
62372private pattern mustInRelationlowerBound_attribute_ETypedElement(
62373 problem:LogicProblem, interpretation:PartialInterpretation,
62374 source: DefinedElement, target:DefinedElement)
62375{
62376 find interpretation(problem,interpretation);
62377 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
62378 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"lowerBound attribute ETypedElement");
62379 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
62380 BinaryElementRelationLink.param1(link,source);
62381 BinaryElementRelationLink.param2(link,target);
62382}
62383/**
62384 * Matcher for detecting tuples t where <>lowerBound attribute ETypedElement(source,target)
62385 */
62386private pattern mayInRelationlowerBound_attribute_ETypedElement(
62387 problem:LogicProblem, interpretation:PartialInterpretation,
62388 source: DefinedElement, target:DefinedElement)
62389{
62390 find interpretation(problem,interpretation);
62391 // The two endpoint of the link have to exist
62392 find mayExist(problem, interpretation, source);
62393 find mayExist(problem, interpretation, target);
62394 // Type consistency
62395 find mayInstanceOfETypedElement_class(problem,interpretation,source);
62396 IntegerElement(target);
62397 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
62398 // the upper bound of the multiplicity should be considered.
62399 numberOfExistingReferences == count find mustInRelationlowerBound_attribute_ETypedElement(problem,interpretation,source,_);
62400 check(numberOfExistingReferences < 1);
62401} or {
62402 find mustInRelationlowerBound_attribute_ETypedElement(problem,interpretation,source,target);
62403}
62404/**
62405 * Matcher for detecting tuples t where []upperBound attribute ETypedElement(source,target)
62406 */
62407private pattern mustInRelationupperBound_attribute_ETypedElement(
62408 problem:LogicProblem, interpretation:PartialInterpretation,
62409 source: DefinedElement, target:DefinedElement)
62410{
62411 find interpretation(problem,interpretation);
62412 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
62413 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"upperBound attribute ETypedElement");
62414 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
62415 BinaryElementRelationLink.param1(link,source);
62416 BinaryElementRelationLink.param2(link,target);
62417}
62418/**
62419 * Matcher for detecting tuples t where <>upperBound attribute ETypedElement(source,target)
62420 */
62421private pattern mayInRelationupperBound_attribute_ETypedElement(
62422 problem:LogicProblem, interpretation:PartialInterpretation,
62423 source: DefinedElement, target:DefinedElement)
62424{
62425 find interpretation(problem,interpretation);
62426 // The two endpoint of the link have to exist
62427 find mayExist(problem, interpretation, source);
62428 find mayExist(problem, interpretation, target);
62429 // Type consistency
62430 find mayInstanceOfETypedElement_class(problem,interpretation,source);
62431 IntegerElement(target);
62432 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
62433 // the upper bound of the multiplicity should be considered.
62434 numberOfExistingReferences == count find mustInRelationupperBound_attribute_ETypedElement(problem,interpretation,source,_);
62435 check(numberOfExistingReferences < 1);
62436} or {
62437 find mustInRelationupperBound_attribute_ETypedElement(problem,interpretation,source,target);
62438}
62439/**
62440 * Matcher for detecting tuples t where []many attribute ETypedElement(source,target)
62441 */
62442private pattern mustInRelationmany_attribute_ETypedElement(
62443 problem:LogicProblem, interpretation:PartialInterpretation,
62444 source: DefinedElement, target:DefinedElement)
62445{
62446 find interpretation(problem,interpretation);
62447 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
62448 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"many attribute ETypedElement");
62449 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
62450 BinaryElementRelationLink.param1(link,source);
62451 BinaryElementRelationLink.param2(link,target);
62452}
62453/**
62454 * Matcher for detecting tuples t where <>many attribute ETypedElement(source,target)
62455 */
62456private pattern mayInRelationmany_attribute_ETypedElement(
62457 problem:LogicProblem, interpretation:PartialInterpretation,
62458 source: DefinedElement, target:DefinedElement)
62459{
62460 find interpretation(problem,interpretation);
62461 // The two endpoint of the link have to exist
62462 find mayExist(problem, interpretation, source);
62463 find mayExist(problem, interpretation, target);
62464 // Type consistency
62465 find mayInstanceOfETypedElement_class(problem,interpretation,source);
62466 BooleanElement(target);
62467 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
62468 // the upper bound of the multiplicity should be considered.
62469 numberOfExistingReferences == count find mustInRelationmany_attribute_ETypedElement(problem,interpretation,source,_);
62470 check(numberOfExistingReferences < 1);
62471} or {
62472 find mustInRelationmany_attribute_ETypedElement(problem,interpretation,source,target);
62473}
62474/**
62475 * Matcher for detecting tuples t where []required attribute ETypedElement(source,target)
62476 */
62477private pattern mustInRelationrequired_attribute_ETypedElement(
62478 problem:LogicProblem, interpretation:PartialInterpretation,
62479 source: DefinedElement, target:DefinedElement)
62480{
62481 find interpretation(problem,interpretation);
62482 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
62483 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"required attribute ETypedElement");
62484 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
62485 BinaryElementRelationLink.param1(link,source);
62486 BinaryElementRelationLink.param2(link,target);
62487}
62488/**
62489 * Matcher for detecting tuples t where <>required attribute ETypedElement(source,target)
62490 */
62491private pattern mayInRelationrequired_attribute_ETypedElement(
62492 problem:LogicProblem, interpretation:PartialInterpretation,
62493 source: DefinedElement, target:DefinedElement)
62494{
62495 find interpretation(problem,interpretation);
62496 // The two endpoint of the link have to exist
62497 find mayExist(problem, interpretation, source);
62498 find mayExist(problem, interpretation, target);
62499 // Type consistency
62500 find mayInstanceOfETypedElement_class(problem,interpretation,source);
62501 BooleanElement(target);
62502 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
62503 // the upper bound of the multiplicity should be considered.
62504 numberOfExistingReferences == count find mustInRelationrequired_attribute_ETypedElement(problem,interpretation,source,_);
62505 check(numberOfExistingReferences < 1);
62506} or {
62507 find mustInRelationrequired_attribute_ETypedElement(problem,interpretation,source,target);
62508}
62509/**
62510 * Matcher for detecting tuples t where []key attribute EStringToStringMapEntry(source,target)
62511 */
62512private pattern mustInRelationkey_attribute_EStringToStringMapEntry(
62513 problem:LogicProblem, interpretation:PartialInterpretation,
62514 source: DefinedElement, target:DefinedElement)
62515{
62516 find interpretation(problem,interpretation);
62517 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
62518 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"key attribute EStringToStringMapEntry");
62519 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
62520 BinaryElementRelationLink.param1(link,source);
62521 BinaryElementRelationLink.param2(link,target);
62522}
62523/**
62524 * Matcher for detecting tuples t where <>key attribute EStringToStringMapEntry(source,target)
62525 */
62526private pattern mayInRelationkey_attribute_EStringToStringMapEntry(
62527 problem:LogicProblem, interpretation:PartialInterpretation,
62528 source: DefinedElement, target:DefinedElement)
62529{
62530 find interpretation(problem,interpretation);
62531 // The two endpoint of the link have to exist
62532 find mayExist(problem, interpretation, source);
62533 find mayExist(problem, interpretation, target);
62534 // Type consistency
62535 find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,source);
62536 StringElement(target);
62537 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
62538 // the upper bound of the multiplicity should be considered.
62539 numberOfExistingReferences == count find mustInRelationkey_attribute_EStringToStringMapEntry(problem,interpretation,source,_);
62540 check(numberOfExistingReferences < 1);
62541} or {
62542 find mustInRelationkey_attribute_EStringToStringMapEntry(problem,interpretation,source,target);
62543} 46554}
62544/** 46555/**
62545 * Matcher for detecting tuples t where []value attribute EStringToStringMapEntry(source,target) 46556 * Matcher for detecting tuples t where []type attribute Function(source,target)
62546 */ 46557 */
62547private pattern mustInRelationvalue_attribute_EStringToStringMapEntry( 46558private pattern mustInRelationtype_attribute_Function(
62548 problem:LogicProblem, interpretation:PartialInterpretation, 46559 problem:LogicProblem, interpretation:PartialInterpretation,
62549 source: DefinedElement, target:DefinedElement) 46560 source: DefinedElement, target:DefinedElement)
62550{ 46561{
62551 find interpretation(problem,interpretation); 46562 find interpretation(problem,interpretation);
62552 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 46563 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
62553 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"value attribute EStringToStringMapEntry"); 46564 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function");
62554 PartialRelationInterpretation.relationlinks(relationIterpretation,link); 46565 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
62555 BinaryElementRelationLink.param1(link,source); 46566 BinaryElementRelationLink.param1(link,source);
62556 BinaryElementRelationLink.param2(link,target); 46567 BinaryElementRelationLink.param2(link,target);
62557} 46568}
62558/** 46569/**
62559 * Matcher for detecting tuples t where <>value attribute EStringToStringMapEntry(source,target) 46570 * Matcher for detecting tuples t where <>type attribute Function(source,target)
62560 */ 46571 */
62561private pattern mayInRelationvalue_attribute_EStringToStringMapEntry( 46572private pattern mayInRelationtype_attribute_Function(
62562 problem:LogicProblem, interpretation:PartialInterpretation, 46573 problem:LogicProblem, interpretation:PartialInterpretation,
62563 source: DefinedElement, target:DefinedElement) 46574 source: DefinedElement, target:DefinedElement)
62564{ 46575{
@@ -62567,14 +46578,14 @@ private pattern mayInRelationvalue_attribute_EStringToStringMapEntry(
62567 find mayExist(problem, interpretation, source); 46578 find mayExist(problem, interpretation, source);
62568 find mayExist(problem, interpretation, target); 46579 find mayExist(problem, interpretation, target);
62569 // Type consistency 46580 // Type consistency
62570 find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,source); 46581 find mayInstanceOfFunction_class(problem,interpretation,source);
62571 StringElement(target); 46582 find mayInstanceOfFunctionType_enum(problem,interpretation,target);
62572 // There are "numberOfExistingReferences" currently existing instances of the reference from the source, 46583 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
62573 // the upper bound of the multiplicity should be considered. 46584 // the upper bound of the multiplicity should be considered.
62574 numberOfExistingReferences == count find mustInRelationvalue_attribute_EStringToStringMapEntry(problem,interpretation,source,_); 46585 numberOfExistingReferences == count find mustInRelationtype_attribute_Function(problem,interpretation,source,_);
62575 check(numberOfExistingReferences < 1); 46586 check(numberOfExistingReferences < 1);
62576} or { 46587} or {
62577 find mustInRelationvalue_attribute_EStringToStringMapEntry(problem,interpretation,source,target); 46588 find mustInRelationtype_attribute_Function(problem,interpretation,source,target);
62578} 46589}
62579 46590
62580////////// 46591//////////
@@ -62590,41 +46601,17 @@ private pattern mustContains2(source: DefinedElement, target: DefinedElement) {
62590 46601
62591private pattern mustContains4(problem:LogicProblem, interpretation:PartialInterpretation, 46602private pattern mustContains4(problem:LogicProblem, interpretation:PartialInterpretation,
62592 source: DefinedElement, target: DefinedElement) 46603 source: DefinedElement, target: DefinedElement)
62593 { find mustInRelationdetails_reference_EAnnotation(problem,interpretation,source,target); }or 46604 { find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,source,target); }or
62594
62595 { find mustInRelationcontents_reference_EAnnotation(problem,interpretation,source,target); }or
62596
62597 { find mustInRelationeOperations_reference_EClass(problem,interpretation,source,target); }or
62598
62599 { find mustInRelationeStructuralFeatures_reference_EClass(problem,interpretation,source,target); }or
62600
62601 { find mustInRelationeGenericSuperTypes_reference_EClass(problem,interpretation,source,target); }or
62602
62603 { find mustInRelationeTypeParameters_reference_EClassifier(problem,interpretation,source,target); }or
62604
62605 { find mustInRelationeLiterals_reference_EEnum(problem,interpretation,source,target); }or
62606
62607 { find mustInRelationeAnnotations_reference_EModelElement(problem,interpretation,source,target); }or
62608
62609 { find mustInRelationeTypeParameters_reference_EOperation(problem,interpretation,source,target); }or
62610
62611 { find mustInRelationeParameters_reference_EOperation(problem,interpretation,source,target); }or
62612
62613 { find mustInRelationeGenericExceptions_reference_EOperation(problem,interpretation,source,target); }or
62614
62615 { find mustInRelationeClassifiers_reference_EPackage(problem,interpretation,source,target); }or
62616
62617 { find mustInRelationeSubpackages_reference_EPackage(problem,interpretation,source,target); }or
62618 46605
62619 { find mustInRelationeGenericType_reference_ETypedElement(problem,interpretation,source,target); }or 46606 { find mustInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,source,target); }or
62620 46607
62621 { find mustInRelationeUpperBound_reference_EGenericType(problem,interpretation,source,target); }or 46608 { find mustInRelationsubElements_reference_Function(problem,interpretation,source,target); }or
62622 46609
62623 { find mustInRelationeTypeArguments_reference_EGenericType(problem,interpretation,source,target); }or 46610 { find mustInRelationdata_reference_FunctionalInterface(problem,interpretation,source,target); }or
62624 46611
62625 { find mustInRelationeLowerBound_reference_EGenericType(problem,interpretation,source,target); }or 46612 { find mustInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,source,target); }or
62626 46613
62627 { find mustInRelationeBounds_reference_ETypeParameter(problem,interpretation,source,target); } 46614 { find mustInRelationterminator_reference_FunctionalData(problem,interpretation,source,target); }
62628 46615
62629private pattern mustTransitiveContains(source,target) { 46616private pattern mustTransitiveContains(source,target) {
62630 find mustContains2+(source,target); 46617 find mustContains2+(source,target);
@@ -62641,30 +46628,30 @@ private pattern mustTransitiveContains(source,target) {
62641////////// 46628//////////
62642// 3.1 Unfinishedness Measured by Multiplicity 46629// 3.1 Unfinishedness Measured by Multiplicity
62643////////// 46630//////////
62644pattern unfinishedLowerMultiplicity_eAttributeType_reference_EAttribute(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { 46631pattern unfinishedLowerMultiplicity_model_reference_FunctionalElement(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
62645 find interpretation(problem,interpretation); 46632 find interpretation(problem,interpretation);
62646 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 46633 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
62647 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAttributeType reference EAttribute"); 46634 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement");
62648 find mustInstanceOfEAttribute_class(problem,interpretation,object); 46635 find mustInstanceOfFunctionalElement_class(problem,interpretation,object);
62649 numberOfExistingReferences == count find mustInRelationeAttributeType_reference_EAttribute(problem,interpretation,object,_); 46636 numberOfExistingReferences == count find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,object,_);
62650 check(numberOfExistingReferences < 1); 46637 check(numberOfExistingReferences < 1);
62651 missingMultiplicity == eval(1-numberOfExistingReferences); 46638 missingMultiplicity == eval(1-numberOfExistingReferences);
62652} 46639}
62653pattern unfinishedLowerMultiplicity_eReferenceType_reference_EReference(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { 46640pattern unfinishedLowerMultiplicity_to_reference_InformationLink(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
62654 find interpretation(problem,interpretation); 46641 find interpretation(problem,interpretation);
62655 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 46642 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
62656 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eReferenceType reference EReference"); 46643 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"to reference InformationLink");
62657 find mustInstanceOfEReference_class(problem,interpretation,object); 46644 find mustInstanceOfInformationLink_class(problem,interpretation,object);
62658 numberOfExistingReferences == count find mustInRelationeReferenceType_reference_EReference(problem,interpretation,object,_); 46645 numberOfExistingReferences == count find mustInRelationto_reference_InformationLink(problem,interpretation,object,_);
62659 check(numberOfExistingReferences < 1); 46646 check(numberOfExistingReferences < 1);
62660 missingMultiplicity == eval(1-numberOfExistingReferences); 46647 missingMultiplicity == eval(1-numberOfExistingReferences);
62661} 46648}
62662pattern unfinishedLowerMultiplicity_eRawType_reference_EGenericType(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { 46649pattern unfinishedLowerMultiplicity_type_attribute_Function(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
62663 find interpretation(problem,interpretation); 46650 find interpretation(problem,interpretation);
62664 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 46651 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
62665 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eRawType reference EGenericType"); 46652 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function");
62666 find mustInstanceOfEGenericType_class(problem,interpretation,object); 46653 find mustInstanceOfFunction_class(problem,interpretation,object);
62667 numberOfExistingReferences == count find mustInRelationeRawType_reference_EGenericType(problem,interpretation,object,_); 46654 numberOfExistingReferences == count find mustInRelationtype_attribute_Function(problem,interpretation,object,_);
62668 check(numberOfExistingReferences < 1); 46655 check(numberOfExistingReferences < 1);
62669 missingMultiplicity == eval(1-numberOfExistingReferences); 46656 missingMultiplicity == eval(1-numberOfExistingReferences);
62670} 46657}
@@ -62681,626 +46668,246 @@ pattern unfinishedLowerMultiplicity_eRawType_reference_EGenericType(problem:Logi
62681private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation) 46668private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation)
62682{ 46669{
62683 find interpretation(problem,interpretation); 46670 find interpretation(problem,interpretation);
62684 find mustInstanceOfEOperation_class(problem,interpretation,root); 46671 find mustInstanceOfFunctionalInterface_class(problem,interpretation,root);
62685 find mustExist(problem, interpretation, root);
62686}or{
62687 find interpretation(problem,interpretation);
62688 find mustInstanceOfENamedElement_class(problem,interpretation,root);
62689 find mustExist(problem, interpretation, root);
62690}or{
62691 find interpretation(problem,interpretation);
62692 find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,root);
62693 find mustExist(problem, interpretation, root);
62694}or{
62695 find interpretation(problem,interpretation);
62696 find mustInstanceOfEEnumLiteral_class(problem,interpretation,root);
62697 find mustExist(problem, interpretation, root);
62698}or{
62699 find interpretation(problem,interpretation);
62700 find mustInstanceOfEGenericType_class(problem,interpretation,root);
62701 find mustExist(problem, interpretation, root);
62702}or{
62703 find interpretation(problem,interpretation);
62704 find mustInstanceOfEObject_class(problem,interpretation,root);
62705 find mustExist(problem, interpretation, root);
62706}or{
62707 find interpretation(problem,interpretation);
62708 find mustInstanceOfEAttribute_class(problem,interpretation,root);
62709 find mustExist(problem, interpretation, root);
62710}or{
62711 find interpretation(problem,interpretation);
62712 find mustInstanceOfEPackage_class(problem,interpretation,root);
62713 find mustExist(problem, interpretation, root);
62714}or{
62715 find interpretation(problem,interpretation);
62716 find mustInstanceOfEParameter_class(problem,interpretation,root);
62717 find mustExist(problem, interpretation, root);
62718}or{
62719 find interpretation(problem,interpretation);
62720 find mustInstanceOfEDataType_class(problem,interpretation,root);
62721 find mustExist(problem, interpretation, root);
62722}or{
62723 find interpretation(problem,interpretation);
62724 find mustInstanceOfEClassifier_class(problem,interpretation,root);
62725 find mustExist(problem, interpretation, root);
62726}or{
62727 find interpretation(problem,interpretation);
62728 find mustInstanceOfEStructuralFeature_class(problem,interpretation,root);
62729 find mustExist(problem, interpretation, root);
62730}or{
62731 find interpretation(problem,interpretation);
62732 find mustInstanceOfEModelElement_class(problem,interpretation,root);
62733 find mustExist(problem, interpretation, root);
62734}or{
62735 find interpretation(problem,interpretation);
62736 find mustInstanceOfEAnnotation_class(problem,interpretation,root);
62737 find mustExist(problem, interpretation, root);
62738}or{
62739 find interpretation(problem,interpretation);
62740 find mustInstanceOfETypeParameter_class(problem,interpretation,root);
62741 find mustExist(problem, interpretation, root);
62742}or{
62743 find interpretation(problem,interpretation);
62744 find mustInstanceOfEReference_class(problem,interpretation,root);
62745 find mustExist(problem, interpretation, root);
62746}or{
62747 find interpretation(problem,interpretation);
62748 find mustInstanceOfEEnum_class(problem,interpretation,root);
62749 find mustExist(problem, interpretation, root); 46672 find mustExist(problem, interpretation, root);
62750}or{ 46673}or{
62751 find interpretation(problem,interpretation); 46674 find interpretation(problem,interpretation);
62752 find mustInstanceOfETypedElement_class(problem,interpretation,root); 46675 find mustInstanceOfInformationLink_class(problem,interpretation,root);
62753 find mustExist(problem, interpretation, root); 46676 find mustExist(problem, interpretation, root);
62754}or{ 46677}or{
62755 find interpretation(problem,interpretation); 46678 find interpretation(problem,interpretation);
62756 find mustInstanceOfEClass_class(problem,interpretation,root); 46679 find mustInstanceOfFunctionalElement_class(problem,interpretation,root);
62757 find mustExist(problem, interpretation, root); 46680 find mustExist(problem, interpretation, root);
62758}or{ 46681}or{
62759 find interpretation(problem,interpretation); 46682 find interpretation(problem,interpretation);
62760 find mustInstanceOfEModelElement_class_DefinedPart(problem,interpretation,root); 46683 find mustInstanceOfFAMTerminator_class(problem,interpretation,root);
62761 find mustExist(problem, interpretation, root); 46684 find mustExist(problem, interpretation, root);
62762}or{ 46685}or{
62763 find interpretation(problem,interpretation); 46686 find interpretation(problem,interpretation);
62764 find mustInstanceOfEModelElement_class_UndefinedPart(problem,interpretation,root); 46687 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,root);
62765 find mustExist(problem, interpretation, root); 46688 find mustExist(problem, interpretation, root);
62766}or{ 46689}or{
62767 find interpretation(problem,interpretation); 46690 find interpretation(problem,interpretation);
62768 find mustInstanceOfENamedElement_class_DefinedPart(problem,interpretation,root); 46691 find mustInstanceOfFunctionalInput_class(problem,interpretation,root);
62769 find mustExist(problem, interpretation, root); 46692 find mustExist(problem, interpretation, root);
62770}or{ 46693}or{
62771 find interpretation(problem,interpretation); 46694 find interpretation(problem,interpretation);
62772 find mustInstanceOfENamedElement_class_UndefinedPart(problem,interpretation,root); 46695 find mustInstanceOfFunction_class(problem,interpretation,root);
62773 find mustExist(problem, interpretation, root); 46696 find mustExist(problem, interpretation, root);
62774}or{ 46697}or{
62775 find interpretation(problem,interpretation); 46698 find interpretation(problem,interpretation);
62776 find mustInstanceOfEPackage_class_DefinedPart(problem,interpretation,root); 46699 find mustInstanceOfFunctionalOutput_class(problem,interpretation,root);
62777 find mustExist(problem, interpretation, root); 46700 find mustExist(problem, interpretation, root);
62778}or{ 46701}or{
62779 find interpretation(problem,interpretation); 46702 find interpretation(problem,interpretation);
62780 find mustInstanceOfEPackage_class_UndefinedPart(problem,interpretation,root); 46703 find mustInstanceOfFunctionalData_class(problem,interpretation,root);
62781 find mustExist(problem, interpretation, root); 46704 find mustExist(problem, interpretation, root);
62782} 46705}
62783pattern createObject_EStringToStringMapEntry_class_by_details_reference_EAnnotation( 46706pattern createObject_FunctionalInterface_class_by_interface_reference_FunctionalElement_with_element_reference_FunctionalInterface(
62784 problem:LogicProblem, interpretation:PartialInterpretation,
62785 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
62786 container:DefinedElement)
62787{
62788 find interpretation(problem,interpretation);
62789 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
62790 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EStringToStringMapEntry class");
62791 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
62792 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"details reference EAnnotation");
62793 find mustInstanceOfEAnnotation_class(problem,interpretation,container);
62794 find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,newObject);
62795 find mayInRelationdetails_reference_EAnnotation(problem,interpretation,container,newObject);
62796 find mustExist(problem, interpretation, container);
62797 neg find mustExist(problem, interpretation, newObject);
62798}
62799pattern createObject_EStringToStringMapEntry_class(
62800 problem:LogicProblem, interpretation:PartialInterpretation,
62801 typeInterpretation:PartialComplexTypeInterpretation)
62802{
62803 find interpretation(problem,interpretation);
62804 neg find hasElementInContainment(problem,interpretation);
62805 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
62806 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EStringToStringMapEntry class");
62807 find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,newObject);
62808 find mayExist(problem, interpretation, newObject);
62809 neg find mustExist(problem, interpretation, newObject);
62810}
62811pattern createObject_EEnum_class_by_eClassifiers_reference_EPackage_with_ePackage_reference_EClassifier(
62812 problem:LogicProblem, interpretation:PartialInterpretation,
62813 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
62814 container:DefinedElement)
62815{
62816 find interpretation(problem,interpretation);
62817 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
62818 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EEnum class");
62819 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
62820 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eClassifiers reference EPackage");
62821 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
62822 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"ePackage reference EClassifier");
62823 find mustInstanceOfEPackage_class(problem,interpretation,container);
62824 find mayInstanceOfEEnum_class(problem,interpretation,newObject);
62825 find mayInRelationeClassifiers_reference_EPackage(problem,interpretation,container,newObject);
62826 find mustExist(problem, interpretation, container);
62827 neg find mustExist(problem, interpretation, newObject);
62828}
62829pattern createObject_EEnum_class(
62830 problem:LogicProblem, interpretation:PartialInterpretation,
62831 typeInterpretation:PartialComplexTypeInterpretation)
62832{
62833 find interpretation(problem,interpretation);
62834 neg find hasElementInContainment(problem,interpretation);
62835 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
62836 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EEnum class");
62837 find mayInstanceOfEEnum_class(problem,interpretation,newObject);
62838 find mayExist(problem, interpretation, newObject);
62839 neg find mustExist(problem, interpretation, newObject);
62840}
62841pattern createObject_EParameter_class_by_eParameters_reference_EOperation_with_eOperation_reference_EParameter(
62842 problem:LogicProblem, interpretation:PartialInterpretation,
62843 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
62844 container:DefinedElement)
62845{
62846 find interpretation(problem,interpretation);
62847 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
62848 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EParameter class");
62849 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
62850 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eParameters reference EOperation");
62851 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
62852 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eOperation reference EParameter");
62853 find mustInstanceOfEOperation_class(problem,interpretation,container);
62854 find mayInstanceOfEParameter_class(problem,interpretation,newObject);
62855 find mayInRelationeParameters_reference_EOperation(problem,interpretation,container,newObject);
62856 find mustExist(problem, interpretation, container);
62857 neg find mustExist(problem, interpretation, newObject);
62858}
62859pattern createObject_EParameter_class(
62860 problem:LogicProblem, interpretation:PartialInterpretation,
62861 typeInterpretation:PartialComplexTypeInterpretation)
62862{
62863 find interpretation(problem,interpretation);
62864 neg find hasElementInContainment(problem,interpretation);
62865 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
62866 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EParameter class");
62867 find mayInstanceOfEParameter_class(problem,interpretation,newObject);
62868 find mayExist(problem, interpretation, newObject);
62869 neg find mustExist(problem, interpretation, newObject);
62870}
62871pattern createObject_EGenericType_class_by_eGenericSuperTypes_reference_EClass(
62872 problem:LogicProblem, interpretation:PartialInterpretation,
62873 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
62874 container:DefinedElement)
62875{
62876 find interpretation(problem,interpretation);
62877 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
62878 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class");
62879 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
62880 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eGenericSuperTypes reference EClass");
62881 find mustInstanceOfEClass_class(problem,interpretation,container);
62882 find mayInstanceOfEGenericType_class(problem,interpretation,newObject);
62883 find mayInRelationeGenericSuperTypes_reference_EClass(problem,interpretation,container,newObject);
62884 find mustExist(problem, interpretation, container);
62885 neg find mustExist(problem, interpretation, newObject);
62886}
62887pattern createObject_EGenericType_class_by_eGenericExceptions_reference_EOperation(
62888 problem:LogicProblem, interpretation:PartialInterpretation,
62889 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
62890 container:DefinedElement)
62891{
62892 find interpretation(problem,interpretation);
62893 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
62894 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class");
62895 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
62896 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eGenericExceptions reference EOperation");
62897 find mustInstanceOfEOperation_class(problem,interpretation,container);
62898 find mayInstanceOfEGenericType_class(problem,interpretation,newObject);
62899 find mayInRelationeGenericExceptions_reference_EOperation(problem,interpretation,container,newObject);
62900 find mustExist(problem, interpretation, container);
62901 neg find mustExist(problem, interpretation, newObject);
62902}
62903pattern createObject_EGenericType_class_by_eGenericType_reference_ETypedElement(
62904 problem:LogicProblem, interpretation:PartialInterpretation,
62905 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
62906 container:DefinedElement)
62907{
62908 find interpretation(problem,interpretation);
62909 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
62910 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class");
62911 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
62912 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eGenericType reference ETypedElement");
62913 find mustInstanceOfETypedElement_class(problem,interpretation,container);
62914 find mayInstanceOfEGenericType_class(problem,interpretation,newObject);
62915 find mayInRelationeGenericType_reference_ETypedElement(problem,interpretation,container,newObject);
62916 find mustExist(problem, interpretation, container);
62917 neg find mustExist(problem, interpretation, newObject);
62918}
62919pattern createObject_EGenericType_class_by_eUpperBound_reference_EGenericType(
62920 problem:LogicProblem, interpretation:PartialInterpretation,
62921 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
62922 container:DefinedElement)
62923{
62924 find interpretation(problem,interpretation);
62925 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
62926 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class");
62927 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
62928 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eUpperBound reference EGenericType");
62929 find mustInstanceOfEGenericType_class(problem,interpretation,container);
62930 find mayInstanceOfEGenericType_class(problem,interpretation,newObject);
62931 find mayInRelationeUpperBound_reference_EGenericType(problem,interpretation,container,newObject);
62932 find mustExist(problem, interpretation, container);
62933 neg find mustExist(problem, interpretation, newObject);
62934}
62935pattern createObject_EGenericType_class_by_eTypeArguments_reference_EGenericType(
62936 problem:LogicProblem, interpretation:PartialInterpretation,
62937 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
62938 container:DefinedElement)
62939{
62940 find interpretation(problem,interpretation);
62941 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
62942 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class");
62943 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
62944 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eTypeArguments reference EGenericType");
62945 find mustInstanceOfEGenericType_class(problem,interpretation,container);
62946 find mayInstanceOfEGenericType_class(problem,interpretation,newObject);
62947 find mayInRelationeTypeArguments_reference_EGenericType(problem,interpretation,container,newObject);
62948 find mustExist(problem, interpretation, container);
62949 neg find mustExist(problem, interpretation, newObject);
62950}
62951pattern createObject_EGenericType_class_by_eLowerBound_reference_EGenericType(
62952 problem:LogicProblem, interpretation:PartialInterpretation,
62953 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
62954 container:DefinedElement)
62955{
62956 find interpretation(problem,interpretation);
62957 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
62958 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class");
62959 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
62960 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eLowerBound reference EGenericType");
62961 find mustInstanceOfEGenericType_class(problem,interpretation,container);
62962 find mayInstanceOfEGenericType_class(problem,interpretation,newObject);
62963 find mayInRelationeLowerBound_reference_EGenericType(problem,interpretation,container,newObject);
62964 find mustExist(problem, interpretation, container);
62965 neg find mustExist(problem, interpretation, newObject);
62966}
62967pattern createObject_EGenericType_class_by_eBounds_reference_ETypeParameter(
62968 problem:LogicProblem, interpretation:PartialInterpretation,
62969 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
62970 container:DefinedElement)
62971{
62972 find interpretation(problem,interpretation);
62973 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
62974 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class");
62975 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
62976 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eBounds reference ETypeParameter");
62977 find mustInstanceOfETypeParameter_class(problem,interpretation,container);
62978 find mayInstanceOfEGenericType_class(problem,interpretation,newObject);
62979 find mayInRelationeBounds_reference_ETypeParameter(problem,interpretation,container,newObject);
62980 find mustExist(problem, interpretation, container);
62981 neg find mustExist(problem, interpretation, newObject);
62982}
62983pattern createObject_EGenericType_class(
62984 problem:LogicProblem, interpretation:PartialInterpretation,
62985 typeInterpretation:PartialComplexTypeInterpretation)
62986{
62987 find interpretation(problem,interpretation);
62988 neg find hasElementInContainment(problem,interpretation);
62989 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
62990 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EGenericType class");
62991 find mayInstanceOfEGenericType_class(problem,interpretation,newObject);
62992 find mayExist(problem, interpretation, newObject);
62993 neg find mustExist(problem, interpretation, newObject);
62994}
62995pattern createObject_EPackage_class_UndefinedPart_by_eSubpackages_reference_EPackage_with_eSuperPackage_reference_EPackage(
62996 problem:LogicProblem, interpretation:PartialInterpretation, 46707 problem:LogicProblem, interpretation:PartialInterpretation,
62997 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 46708 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
62998 container:DefinedElement) 46709 container:DefinedElement)
62999{ 46710{
63000 find interpretation(problem,interpretation); 46711 find interpretation(problem,interpretation);
63001 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 46712 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
63002 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EPackage class UndefinedPart"); 46713 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
63003 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 46714 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
63004 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eSubpackages reference EPackage"); 46715 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"interface reference FunctionalElement");
63005 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 46716 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
63006 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eSuperPackage reference EPackage"); 46717 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"element reference FunctionalInterface");
63007 find mustInstanceOfEPackage_class(problem,interpretation,container); 46718 find mustInstanceOfFunctionalElement_class(problem,interpretation,container);
63008 find mayInstanceOfEPackage_class_UndefinedPart(problem,interpretation,newObject); 46719 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
63009 find mayInRelationeSubpackages_reference_EPackage(problem,interpretation,container,newObject); 46720 find mayInRelationinterface_reference_FunctionalElement(problem,interpretation,container,newObject);
63010 find mustExist(problem, interpretation, container); 46721 find mustExist(problem, interpretation, container);
63011 neg find mustExist(problem, interpretation, newObject); 46722 neg find mustExist(problem, interpretation, newObject);
63012} 46723}
63013pattern createObject_EPackage_class_UndefinedPart( 46724pattern createObject_FunctionalInterface_class(
63014 problem:LogicProblem, interpretation:PartialInterpretation, 46725 problem:LogicProblem, interpretation:PartialInterpretation,
63015 typeInterpretation:PartialComplexTypeInterpretation) 46726 typeInterpretation:PartialComplexTypeInterpretation)
63016{ 46727{
63017 find interpretation(problem,interpretation); 46728 find interpretation(problem,interpretation);
63018 neg find hasElementInContainment(problem,interpretation); 46729 neg find hasElementInContainment(problem,interpretation);
63019 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 46730 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
63020 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EPackage class UndefinedPart"); 46731 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class");
63021 find mayInstanceOfEPackage_class_UndefinedPart(problem,interpretation,newObject); 46732 find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject);
63022 find mayExist(problem, interpretation, newObject); 46733 find mayExist(problem, interpretation, newObject);
63023 neg find mustExist(problem, interpretation, newObject); 46734 neg find mustExist(problem, interpretation, newObject);
63024} 46735}
63025pattern createObject_EObject_class_by_contents_reference_EAnnotation( 46736pattern createObject_FunctionalArchitectureModel_class(
63026 problem:LogicProblem, interpretation:PartialInterpretation,
63027 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
63028 container:DefinedElement)
63029{
63030 find interpretation(problem,interpretation);
63031 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
63032 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EObject class");
63033 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
63034 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"contents reference EAnnotation");
63035 find mustInstanceOfEAnnotation_class(problem,interpretation,container);
63036 find mayInstanceOfEObject_class(problem,interpretation,newObject);
63037 find mayInRelationcontents_reference_EAnnotation(problem,interpretation,container,newObject);
63038 find mustExist(problem, interpretation, container);
63039 neg find mustExist(problem, interpretation, newObject);
63040}
63041pattern createObject_EObject_class(
63042 problem:LogicProblem, interpretation:PartialInterpretation, 46737 problem:LogicProblem, interpretation:PartialInterpretation,
63043 typeInterpretation:PartialComplexTypeInterpretation) 46738 typeInterpretation:PartialComplexTypeInterpretation)
63044{ 46739{
63045 find interpretation(problem,interpretation); 46740 find interpretation(problem,interpretation);
63046 neg find hasElementInContainment(problem,interpretation); 46741 neg find hasElementInContainment(problem,interpretation);
63047 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 46742 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
63048 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EObject class"); 46743 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalArchitectureModel class");
63049 find mayInstanceOfEObject_class(problem,interpretation,newObject); 46744 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,newObject);
63050 find mayExist(problem, interpretation, newObject); 46745 find mayExist(problem, interpretation, newObject);
63051 neg find mustExist(problem, interpretation, newObject); 46746 neg find mustExist(problem, interpretation, newObject);
63052} 46747}
63053pattern createObject_EEnumLiteral_class_by_eLiterals_reference_EEnum_with_eEnum_reference_EEnumLiteral( 46748pattern createObject_FunctionalInput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData(
63054 problem:LogicProblem, interpretation:PartialInterpretation, 46749 problem:LogicProblem, interpretation:PartialInterpretation,
63055 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 46750 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
63056 container:DefinedElement) 46751 container:DefinedElement)
63057{ 46752{
63058 find interpretation(problem,interpretation); 46753 find interpretation(problem,interpretation);
63059 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 46754 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
63060 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EEnumLiteral class"); 46755 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class");
63061 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 46756 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
63062 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eLiterals reference EEnum"); 46757 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface");
63063 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 46758 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
63064 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eEnum reference EEnumLiteral"); 46759 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData");
63065 find mustInstanceOfEEnum_class(problem,interpretation,container); 46760 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container);
63066 find mayInstanceOfEEnumLiteral_class(problem,interpretation,newObject); 46761 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
63067 find mayInRelationeLiterals_reference_EEnum(problem,interpretation,container,newObject); 46762 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject);
63068 find mustExist(problem, interpretation, container); 46763 find mustExist(problem, interpretation, container);
63069 neg find mustExist(problem, interpretation, newObject); 46764 neg find mustExist(problem, interpretation, newObject);
63070} 46765}
63071pattern createObject_EEnumLiteral_class( 46766pattern createObject_FunctionalInput_class(
63072 problem:LogicProblem, interpretation:PartialInterpretation, 46767 problem:LogicProblem, interpretation:PartialInterpretation,
63073 typeInterpretation:PartialComplexTypeInterpretation) 46768 typeInterpretation:PartialComplexTypeInterpretation)
63074{ 46769{
63075 find interpretation(problem,interpretation); 46770 find interpretation(problem,interpretation);
63076 neg find hasElementInContainment(problem,interpretation); 46771 neg find hasElementInContainment(problem,interpretation);
63077 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 46772 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
63078 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EEnumLiteral class"); 46773 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class");
63079 find mayInstanceOfEEnumLiteral_class(problem,interpretation,newObject); 46774 find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject);
63080 find mayExist(problem, interpretation, newObject); 46775 find mayExist(problem, interpretation, newObject);
63081 neg find mustExist(problem, interpretation, newObject); 46776 neg find mustExist(problem, interpretation, newObject);
63082} 46777}
63083pattern createObject_ETypeParameter_class_by_eTypeParameters_reference_EClassifier( 46778pattern createObject_Function_class_by_rootElements_reference_FunctionalArchitectureModel(
63084 problem:LogicProblem, interpretation:PartialInterpretation,
63085 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
63086 container:DefinedElement)
63087{
63088 find interpretation(problem,interpretation);
63089 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
63090 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"ETypeParameter class");
63091 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
63092 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eTypeParameters reference EClassifier");
63093 find mustInstanceOfEClassifier_class(problem,interpretation,container);
63094 find mayInstanceOfETypeParameter_class(problem,interpretation,newObject);
63095 find mayInRelationeTypeParameters_reference_EClassifier(problem,interpretation,container,newObject);
63096 find mustExist(problem, interpretation, container);
63097 neg find mustExist(problem, interpretation, newObject);
63098}
63099pattern createObject_ETypeParameter_class_by_eTypeParameters_reference_EOperation(
63100 problem:LogicProblem, interpretation:PartialInterpretation, 46779 problem:LogicProblem, interpretation:PartialInterpretation,
63101 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 46780 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
63102 container:DefinedElement) 46781 container:DefinedElement)
63103{ 46782{
63104 find interpretation(problem,interpretation); 46783 find interpretation(problem,interpretation);
63105 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 46784 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
63106 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"ETypeParameter class"); 46785 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class");
63107 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
63108 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eTypeParameters reference EOperation");
63109 find mustInstanceOfEOperation_class(problem,interpretation,container);
63110 find mayInstanceOfETypeParameter_class(problem,interpretation,newObject);
63111 find mayInRelationeTypeParameters_reference_EOperation(problem,interpretation,container,newObject);
63112 find mustExist(problem, interpretation, container);
63113 neg find mustExist(problem, interpretation, newObject);
63114}
63115pattern createObject_ETypeParameter_class(
63116 problem:LogicProblem, interpretation:PartialInterpretation,
63117 typeInterpretation:PartialComplexTypeInterpretation)
63118{
63119 find interpretation(problem,interpretation);
63120 neg find hasElementInContainment(problem,interpretation);
63121 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
63122 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"ETypeParameter class");
63123 find mayInstanceOfETypeParameter_class(problem,interpretation,newObject);
63124 find mayExist(problem, interpretation, newObject);
63125 neg find mustExist(problem, interpretation, newObject);
63126}
63127pattern createObject_EAttribute_class_by_eStructuralFeatures_reference_EClass_with_eContainingClass_reference_EStructuralFeature(
63128 problem:LogicProblem, interpretation:PartialInterpretation,
63129 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
63130 container:DefinedElement)
63131{
63132 find interpretation(problem,interpretation);
63133 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
63134 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EAttribute class");
63135 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
63136 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eStructuralFeatures reference EClass");
63137 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
63138 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eContainingClass reference EStructuralFeature");
63139 find mustInstanceOfEClass_class(problem,interpretation,container);
63140 find mayInstanceOfEAttribute_class(problem,interpretation,newObject);
63141 find mayInRelationeStructuralFeatures_reference_EClass(problem,interpretation,container,newObject);
63142 find mustExist(problem, interpretation, container);
63143 neg find mustExist(problem, interpretation, newObject);
63144}
63145pattern createObject_EAttribute_class(
63146 problem:LogicProblem, interpretation:PartialInterpretation,
63147 typeInterpretation:PartialComplexTypeInterpretation)
63148{
63149 find interpretation(problem,interpretation);
63150 neg find hasElementInContainment(problem,interpretation);
63151 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
63152 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EAttribute class");
63153 find mayInstanceOfEAttribute_class(problem,interpretation,newObject);
63154 find mayExist(problem, interpretation, newObject);
63155 neg find mustExist(problem, interpretation, newObject);
63156}
63157pattern createObject_EOperation_class_by_eOperations_reference_EClass_with_eContainingClass_reference_EOperation(
63158 problem:LogicProblem, interpretation:PartialInterpretation,
63159 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
63160 container:DefinedElement)
63161{
63162 find interpretation(problem,interpretation);
63163 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
63164 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EOperation class");
63165 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 46786 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
63166 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eOperations reference EClass"); 46787 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"rootElements reference FunctionalArchitectureModel");
63167 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 46788 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,container);
63168 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eContainingClass reference EOperation"); 46789 find mayInstanceOfFunction_class(problem,interpretation,newObject);
63169 find mustInstanceOfEClass_class(problem,interpretation,container); 46790 find mayInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,container,newObject);
63170 find mayInstanceOfEOperation_class(problem,interpretation,newObject);
63171 find mayInRelationeOperations_reference_EClass(problem,interpretation,container,newObject);
63172 find mustExist(problem, interpretation, container); 46791 find mustExist(problem, interpretation, container);
63173 neg find mustExist(problem, interpretation, newObject); 46792 neg find mustExist(problem, interpretation, newObject);
63174} 46793}
63175pattern createObject_EOperation_class( 46794pattern createObject_Function_class_by_subElements_reference_Function_with_parent_reference_FunctionalElement(
63176 problem:LogicProblem, interpretation:PartialInterpretation,
63177 typeInterpretation:PartialComplexTypeInterpretation)
63178{
63179 find interpretation(problem,interpretation);
63180 neg find hasElementInContainment(problem,interpretation);
63181 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
63182 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EOperation class");
63183 find mayInstanceOfEOperation_class(problem,interpretation,newObject);
63184 find mayExist(problem, interpretation, newObject);
63185 neg find mustExist(problem, interpretation, newObject);
63186}
63187pattern createObject_EAnnotation_class_by_eAnnotations_reference_EModelElement_with_eModelElement_reference_EAnnotation(
63188 problem:LogicProblem, interpretation:PartialInterpretation, 46795 problem:LogicProblem, interpretation:PartialInterpretation,
63189 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 46796 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
63190 container:DefinedElement) 46797 container:DefinedElement)
63191{ 46798{
63192 find interpretation(problem,interpretation); 46799 find interpretation(problem,interpretation);
63193 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 46800 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
63194 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EAnnotation class"); 46801 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class");
63195 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 46802 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
63196 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eAnnotations reference EModelElement"); 46803 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"subElements reference Function");
63197 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 46804 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
63198 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eModelElement reference EAnnotation"); 46805 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"parent reference FunctionalElement");
63199 find mustInstanceOfEModelElement_class(problem,interpretation,container); 46806 find mustInstanceOfFunction_class(problem,interpretation,container);
63200 find mayInstanceOfEAnnotation_class(problem,interpretation,newObject); 46807 find mayInstanceOfFunction_class(problem,interpretation,newObject);
63201 find mayInRelationeAnnotations_reference_EModelElement(problem,interpretation,container,newObject); 46808 find mayInRelationsubElements_reference_Function(problem,interpretation,container,newObject);
63202 find mustExist(problem, interpretation, container); 46809 find mustExist(problem, interpretation, container);
63203 neg find mustExist(problem, interpretation, newObject); 46810 neg find mustExist(problem, interpretation, newObject);
63204} 46811}
63205pattern createObject_EAnnotation_class( 46812pattern createObject_Function_class(
63206 problem:LogicProblem, interpretation:PartialInterpretation, 46813 problem:LogicProblem, interpretation:PartialInterpretation,
63207 typeInterpretation:PartialComplexTypeInterpretation) 46814 typeInterpretation:PartialComplexTypeInterpretation)
63208{ 46815{
63209 find interpretation(problem,interpretation); 46816 find interpretation(problem,interpretation);
63210 neg find hasElementInContainment(problem,interpretation); 46817 neg find hasElementInContainment(problem,interpretation);
63211 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 46818 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
63212 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EAnnotation class"); 46819 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class");
63213 find mayInstanceOfEAnnotation_class(problem,interpretation,newObject); 46820 find mayInstanceOfFunction_class(problem,interpretation,newObject);
63214 find mayExist(problem, interpretation, newObject); 46821 find mayExist(problem, interpretation, newObject);
63215 neg find mustExist(problem, interpretation, newObject); 46822 neg find mustExist(problem, interpretation, newObject);
63216} 46823}
63217pattern createObject_EReference_class_by_eStructuralFeatures_reference_EClass_with_eContainingClass_reference_EStructuralFeature( 46824pattern createObject_FunctionalOutput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData(
63218 problem:LogicProblem, interpretation:PartialInterpretation, 46825 problem:LogicProblem, interpretation:PartialInterpretation,
63219 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 46826 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
63220 container:DefinedElement) 46827 container:DefinedElement)
63221{ 46828{
63222 find interpretation(problem,interpretation); 46829 find interpretation(problem,interpretation);
63223 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 46830 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
63224 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EReference class"); 46831 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class");
63225 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 46832 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
63226 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eStructuralFeatures reference EClass"); 46833 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface");
63227 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 46834 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
63228 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"eContainingClass reference EStructuralFeature"); 46835 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData");
63229 find mustInstanceOfEClass_class(problem,interpretation,container); 46836 find mustInstanceOfFunctionalInterface_class(problem,interpretation,container);
63230 find mayInstanceOfEReference_class(problem,interpretation,newObject); 46837 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject);
63231 find mayInRelationeStructuralFeatures_reference_EClass(problem,interpretation,container,newObject); 46838 find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject);
63232 find mustExist(problem, interpretation, container); 46839 find mustExist(problem, interpretation, container);
63233 neg find mustExist(problem, interpretation, newObject); 46840 neg find mustExist(problem, interpretation, newObject);
63234} 46841}
63235pattern createObject_EReference_class( 46842pattern createObject_FunctionalOutput_class(
63236 problem:LogicProblem, interpretation:PartialInterpretation, 46843 problem:LogicProblem, interpretation:PartialInterpretation,
63237 typeInterpretation:PartialComplexTypeInterpretation) 46844 typeInterpretation:PartialComplexTypeInterpretation)
63238{ 46845{
63239 find interpretation(problem,interpretation); 46846 find interpretation(problem,interpretation);
63240 neg find hasElementInContainment(problem,interpretation); 46847 neg find hasElementInContainment(problem,interpretation);
63241 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 46848 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
63242 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EReference class"); 46849 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class");
63243 find mayInstanceOfEReference_class(problem,interpretation,newObject); 46850 find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject);
63244 find mayExist(problem, interpretation, newObject); 46851 find mayExist(problem, interpretation, newObject);
63245 neg find mustExist(problem, interpretation, newObject); 46852 neg find mustExist(problem, interpretation, newObject);
63246} 46853}
63247pattern createObject_EDataType_class_by_eClassifiers_reference_EPackage_with_ePackage_reference_EClassifier( 46854pattern createObject_FAMTerminator_class_by_terminator_reference_FunctionalData_with_data_reference_FAMTerminator(
63248 problem:LogicProblem, interpretation:PartialInterpretation, 46855 problem:LogicProblem, interpretation:PartialInterpretation,
63249 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 46856 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
63250 container:DefinedElement) 46857 container:DefinedElement)
63251{ 46858{
63252 find interpretation(problem,interpretation); 46859 find interpretation(problem,interpretation);
63253 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 46860 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
63254 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EDataType class"); 46861 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class");
63255 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 46862 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
63256 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eClassifiers reference EPackage"); 46863 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"terminator reference FunctionalData");
63257 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 46864 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
63258 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"ePackage reference EClassifier"); 46865 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"data reference FAMTerminator");
63259 find mustInstanceOfEPackage_class(problem,interpretation,container); 46866 find mustInstanceOfFunctionalData_class(problem,interpretation,container);
63260 find mayInstanceOfEDataType_class(problem,interpretation,newObject); 46867 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject);
63261 find mayInRelationeClassifiers_reference_EPackage(problem,interpretation,container,newObject); 46868 find mayInRelationterminator_reference_FunctionalData(problem,interpretation,container,newObject);
63262 find mustExist(problem, interpretation, container); 46869 find mustExist(problem, interpretation, container);
63263 neg find mustExist(problem, interpretation, newObject); 46870 neg find mustExist(problem, interpretation, newObject);
63264} 46871}
63265pattern createObject_EDataType_class( 46872pattern createObject_FAMTerminator_class(
63266 problem:LogicProblem, interpretation:PartialInterpretation, 46873 problem:LogicProblem, interpretation:PartialInterpretation,
63267 typeInterpretation:PartialComplexTypeInterpretation) 46874 typeInterpretation:PartialComplexTypeInterpretation)
63268{ 46875{
63269 find interpretation(problem,interpretation); 46876 find interpretation(problem,interpretation);
63270 neg find hasElementInContainment(problem,interpretation); 46877 neg find hasElementInContainment(problem,interpretation);
63271 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 46878 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
63272 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EDataType class"); 46879 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class");
63273 find mayInstanceOfEDataType_class(problem,interpretation,newObject); 46880 find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject);
63274 find mayExist(problem, interpretation, newObject); 46881 find mayExist(problem, interpretation, newObject);
63275 neg find mustExist(problem, interpretation, newObject); 46882 neg find mustExist(problem, interpretation, newObject);
63276} 46883}
63277pattern createObject_EClass_class_by_eClassifiers_reference_EPackage_with_ePackage_reference_EClassifier( 46884pattern createObject_InformationLink_class_by_outgoingLinks_reference_FunctionalOutput_with_from_reference_InformationLink(
63278 problem:LogicProblem, interpretation:PartialInterpretation, 46885 problem:LogicProblem, interpretation:PartialInterpretation,
63279 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, 46886 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
63280 container:DefinedElement) 46887 container:DefinedElement)
63281{ 46888{
63282 find interpretation(problem,interpretation); 46889 find interpretation(problem,interpretation);
63283 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 46890 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
63284 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EClass class"); 46891 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class");
63285 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); 46892 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
63286 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"eClassifiers reference EPackage"); 46893 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"outgoingLinks reference FunctionalOutput");
63287 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); 46894 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
63288 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"ePackage reference EClassifier"); 46895 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"from reference InformationLink");
63289 find mustInstanceOfEPackage_class(problem,interpretation,container); 46896 find mustInstanceOfFunctionalOutput_class(problem,interpretation,container);
63290 find mayInstanceOfEClass_class(problem,interpretation,newObject); 46897 find mayInstanceOfInformationLink_class(problem,interpretation,newObject);
63291 find mayInRelationeClassifiers_reference_EPackage(problem,interpretation,container,newObject); 46898 find mayInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,container,newObject);
63292 find mustExist(problem, interpretation, container); 46899 find mustExist(problem, interpretation, container);
63293 neg find mustExist(problem, interpretation, newObject); 46900 neg find mustExist(problem, interpretation, newObject);
63294} 46901}
63295pattern createObject_EClass_class( 46902pattern createObject_InformationLink_class(
63296 problem:LogicProblem, interpretation:PartialInterpretation, 46903 problem:LogicProblem, interpretation:PartialInterpretation,
63297 typeInterpretation:PartialComplexTypeInterpretation) 46904 typeInterpretation:PartialComplexTypeInterpretation)
63298{ 46905{
63299 find interpretation(problem,interpretation); 46906 find interpretation(problem,interpretation);
63300 neg find hasElementInContainment(problem,interpretation); 46907 neg find hasElementInContainment(problem,interpretation);
63301 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); 46908 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
63302 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"EClass class"); 46909 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class");
63303 find mayInstanceOfEClass_class(problem,interpretation,newObject); 46910 find mayInstanceOfInformationLink_class(problem,interpretation,newObject);
63304 find mayExist(problem, interpretation, newObject); 46911 find mayExist(problem, interpretation, newObject);
63305 neg find mustExist(problem, interpretation, newObject); 46912 neg find mustExist(problem, interpretation, newObject);
63306} 46913}
@@ -63308,948 +46915,133 @@ pattern createObject_EClass_class(
63308////////// 46915//////////
63309// 4.2 Type refinement 46916// 4.2 Type refinement
63310////////// 46917//////////
63311pattern refineTypeTo_EStringToStringMapEntry_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 46918pattern refineTypeTo_FunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
63312 find interpretation(problem,interpretation); 46919 find interpretation(problem,interpretation);
63313 PartialInterpretation.newElements(interpretation,element); 46920 PartialInterpretation.newElements(interpretation,element);
63314 find mayInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 46921 find mayInstanceOfFunctionalInterface_class(problem,interpretation,element);
63315 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element); 46922 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
63316 neg find mustInstanceOfEGenericType_class(problem,interpretation,element); 46923 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
63317 neg find mustInstanceOfEObject_class(problem,interpretation,element); 46924 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
63318 neg find mustInstanceOfEModelElement_class(problem,interpretation,element); 46925 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
63319} 46926 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
63320pattern refineTypeTo_EEnum_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { 46927 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
63321 find interpretation(problem,interpretation);
63322 PartialInterpretation.newElements(interpretation,element);
63323 find mayInstanceOfEEnum_class(problem,interpretation,element);
63324 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
63325 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
63326 neg find mustInstanceOfEEnum_class(problem,interpretation,element);
63327 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
63328 neg find mustInstanceOfEObject_class(problem,interpretation,element);
63329 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
63330 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
63331 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
63332 neg find mustInstanceOfEClass_class(problem,interpretation,element);
63333 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
63334}
63335pattern refineTypeTo_EParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
63336 find interpretation(problem,interpretation);
63337 PartialInterpretation.newElements(interpretation,element);
63338 find mayInstanceOfEParameter_class(problem,interpretation,element);
63339 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
63340 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
63341 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
63342 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
63343 neg find mustInstanceOfEObject_class(problem,interpretation,element);
63344 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
63345 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
63346 neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element);
63347 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
63348 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
63349 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
63350}
63351pattern refineTypeTo_EGenericType_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
63352 find interpretation(problem,interpretation);
63353 PartialInterpretation.newElements(interpretation,element);
63354 find mayInstanceOfEGenericType_class(problem,interpretation,element);
63355 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
63356 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
63357 neg find mustInstanceOfEObject_class(problem,interpretation,element);
63358 neg find mustInstanceOfEModelElement_class(problem,interpretation,element);
63359}
63360pattern refineTypeTo_EPackage_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
63361 find interpretation(problem,interpretation);
63362 PartialInterpretation.newElements(interpretation,element);
63363 find mayInstanceOfEPackage_class_UndefinedPart(problem,interpretation,element);
63364 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
63365 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
63366 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
63367 neg find mustInstanceOfEObject_class(problem,interpretation,element);
63368 neg find mustInstanceOfEPackage_class_UndefinedPart(problem,interpretation,element);
63369 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
63370 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
63371 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
63372 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
63373}
63374pattern refineTypeTo_EObject_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
63375 find interpretation(problem,interpretation);
63376 PartialInterpretation.newElements(interpretation,element);
63377 find mayInstanceOfEObject_class(problem,interpretation,element);
63378 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
63379 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
63380 neg find mustInstanceOfEObject_class(problem,interpretation,element);
63381 neg find mustInstanceOfEModelElement_class(problem,interpretation,element);
63382}
63383pattern refineTypeTo_EEnumLiteral_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
63384 find interpretation(problem,interpretation);
63385 PartialInterpretation.newElements(interpretation,element);
63386 find mayInstanceOfEEnumLiteral_class(problem,interpretation,element);
63387 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
63388 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
63389 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
63390 neg find mustInstanceOfEObject_class(problem,interpretation,element);
63391 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
63392 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
63393 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
63394 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
63395 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
63396}
63397pattern refineTypeTo_ETypeParameter_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
63398 find interpretation(problem,interpretation);
63399 PartialInterpretation.newElements(interpretation,element);
63400 find mayInstanceOfETypeParameter_class(problem,interpretation,element);
63401 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
63402 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
63403 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
63404 neg find mustInstanceOfEObject_class(problem,interpretation,element);
63405 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
63406 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
63407 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
63408 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
63409 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
63410}
63411pattern refineTypeTo_EAttribute_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
63412 find interpretation(problem,interpretation);
63413 PartialInterpretation.newElements(interpretation,element);
63414 find mayInstanceOfEAttribute_class(problem,interpretation,element);
63415 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
63416 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
63417 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
63418 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
63419 neg find mustInstanceOfEReference_class(problem,interpretation,element);
63420 neg find mustInstanceOfEObject_class(problem,interpretation,element);
63421 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
63422 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
63423 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
63424 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
63425 neg find mustInstanceOfEAttribute_class(problem,interpretation,element);
63426 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
63427}
63428pattern refineTypeTo_EOperation_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
63429 find interpretation(problem,interpretation);
63430 PartialInterpretation.newElements(interpretation,element);
63431 find mayInstanceOfEOperation_class(problem,interpretation,element);
63432 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
63433 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
63434 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
63435 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
63436 neg find mustInstanceOfEObject_class(problem,interpretation,element);
63437 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
63438 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
63439 neg find mustInstanceOfEStructuralFeature_class(problem,interpretation,element);
63440 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
63441 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
63442 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
63443}
63444pattern refineTypeTo_EAnnotation_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
63445 find interpretation(problem,interpretation);
63446 PartialInterpretation.newElements(interpretation,element);
63447 find mayInstanceOfEAnnotation_class(problem,interpretation,element);
63448 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
63449 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
63450 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
63451 neg find mustInstanceOfEObject_class(problem,interpretation,element);
63452 neg find mustInstanceOfENamedElement_class(problem,interpretation,element);
63453}
63454pattern refineTypeTo_EReference_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
63455 find interpretation(problem,interpretation);
63456 PartialInterpretation.newElements(interpretation,element);
63457 find mayInstanceOfEReference_class(problem,interpretation,element);
63458 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
63459 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
63460 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
63461 neg find mustInstanceOfEParameter_class(problem,interpretation,element);
63462 neg find mustInstanceOfEReference_class(problem,interpretation,element);
63463 neg find mustInstanceOfEObject_class(problem,interpretation,element);
63464 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
63465 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
63466 neg find mustInstanceOfEClassifier_class(problem,interpretation,element);
63467 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
63468 neg find mustInstanceOfEOperation_class(problem,interpretation,element);
63469 neg find mustInstanceOfEAttribute_class(problem,interpretation,element);
63470}
63471pattern refineTypeTo_EDataType_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
63472 find interpretation(problem,interpretation);
63473 PartialInterpretation.newElements(interpretation,element);
63474 find mayInstanceOfEDataType_class(problem,interpretation,element);
63475 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
63476 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
63477 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
63478 neg find mustInstanceOfEEnum_class(problem,interpretation,element);
63479 neg find mustInstanceOfEObject_class(problem,interpretation,element);
63480 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
63481 neg find mustInstanceOfEDataType_class(problem,interpretation,element);
63482 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
63483 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
63484 neg find mustInstanceOfEClass_class(problem,interpretation,element);
63485 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
63486}
63487pattern refineTypeTo_EClass_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
63488 find interpretation(problem,interpretation);
63489 PartialInterpretation.newElements(interpretation,element);
63490 find mayInstanceOfEClass_class(problem,interpretation,element);
63491 neg find mustInstanceOfEAnnotation_class(problem,interpretation,element);
63492 neg find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,element);
63493 neg find mustInstanceOfEGenericType_class(problem,interpretation,element);
63494 neg find mustInstanceOfEObject_class(problem,interpretation,element);
63495 neg find mustInstanceOfEDataType_class(problem,interpretation,element);
63496 neg find mustInstanceOfEEnumLiteral_class(problem,interpretation,element);
63497 neg find mustInstanceOfETypeParameter_class(problem,interpretation,element);
63498 neg find mustInstanceOfETypedElement_class(problem,interpretation,element);
63499 neg find mustInstanceOfEClass_class(problem,interpretation,element);
63500 neg find mustInstanceOfEPackage_class(problem,interpretation,element);
63501}
63502
63503//////////
63504// 4.3 Relation refinement
63505//////////
63506pattern refineRelation_eAttributeType_reference_EAttribute(
63507 problem:LogicProblem, interpretation:PartialInterpretation,
63508 relationIterpretation:PartialRelationInterpretation,
63509 from: DefinedElement, to: DefinedElement)
63510{
63511 find interpretation(problem,interpretation);
63512 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
63513 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAttributeType reference EAttribute");
63514 find mustExist(problem, interpretation, from);
63515 find mustExist(problem, interpretation, to);
63516 find mustInstanceOfEAttribute_class(problem,interpretation,from);
63517 find mustInstanceOfEDataType_class(problem,interpretation,to);
63518 find mayInRelationeAttributeType_reference_EAttribute(problem,interpretation,from,to);
63519 neg find mustInRelationeAttributeType_reference_EAttribute(problem,interpretation,from,to);
63520}
63521pattern refineRelation_references_reference_EAnnotation(
63522 problem:LogicProblem, interpretation:PartialInterpretation,
63523 relationIterpretation:PartialRelationInterpretation,
63524 from: DefinedElement, to: DefinedElement)
63525{
63526 find interpretation(problem,interpretation);
63527 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
63528 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"references reference EAnnotation");
63529 find mustExist(problem, interpretation, from);
63530 find mustExist(problem, interpretation, to);
63531 find mustInstanceOfEAnnotation_class(problem,interpretation,from);
63532 find mustInstanceOfEObject_class(problem,interpretation,to);
63533 find mayInRelationreferences_reference_EAnnotation(problem,interpretation,from,to);
63534 neg find mustInRelationreferences_reference_EAnnotation(problem,interpretation,from,to);
63535}
63536pattern refineRelation_eSuperTypes_reference_EClass(
63537 problem:LogicProblem, interpretation:PartialInterpretation,
63538 relationIterpretation:PartialRelationInterpretation,
63539 from: DefinedElement, to: DefinedElement)
63540{
63541 find interpretation(problem,interpretation);
63542 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
63543 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eSuperTypes reference EClass");
63544 find mustExist(problem, interpretation, from);
63545 find mustExist(problem, interpretation, to);
63546 find mustInstanceOfEClass_class(problem,interpretation,from);
63547 find mustInstanceOfEClass_class(problem,interpretation,to);
63548 find mayInRelationeSuperTypes_reference_EClass(problem,interpretation,from,to);
63549 neg find mustInRelationeSuperTypes_reference_EClass(problem,interpretation,from,to);
63550}
63551pattern refineRelation_eAllAttributes_reference_EClass(
63552 problem:LogicProblem, interpretation:PartialInterpretation,
63553 relationIterpretation:PartialRelationInterpretation,
63554 from: DefinedElement, to: DefinedElement)
63555{
63556 find interpretation(problem,interpretation);
63557 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
63558 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllAttributes reference EClass");
63559 find mustExist(problem, interpretation, from);
63560 find mustExist(problem, interpretation, to);
63561 find mustInstanceOfEClass_class(problem,interpretation,from);
63562 find mustInstanceOfEAttribute_class(problem,interpretation,to);
63563 find mayInRelationeAllAttributes_reference_EClass(problem,interpretation,from,to);
63564 neg find mustInRelationeAllAttributes_reference_EClass(problem,interpretation,from,to);
63565}
63566pattern refineRelation_eAllReferences_reference_EClass(
63567 problem:LogicProblem, interpretation:PartialInterpretation,
63568 relationIterpretation:PartialRelationInterpretation,
63569 from: DefinedElement, to: DefinedElement)
63570{
63571 find interpretation(problem,interpretation);
63572 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
63573 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllReferences reference EClass");
63574 find mustExist(problem, interpretation, from);
63575 find mustExist(problem, interpretation, to);
63576 find mustInstanceOfEClass_class(problem,interpretation,from);
63577 find mustInstanceOfEReference_class(problem,interpretation,to);
63578 find mayInRelationeAllReferences_reference_EClass(problem,interpretation,from,to);
63579 neg find mustInRelationeAllReferences_reference_EClass(problem,interpretation,from,to);
63580}
63581pattern refineRelation_eReferences_reference_EClass(
63582 problem:LogicProblem, interpretation:PartialInterpretation,
63583 relationIterpretation:PartialRelationInterpretation,
63584 from: DefinedElement, to: DefinedElement)
63585{
63586 find interpretation(problem,interpretation);
63587 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
63588 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eReferences reference EClass");
63589 find mustExist(problem, interpretation, from);
63590 find mustExist(problem, interpretation, to);
63591 find mustInstanceOfEClass_class(problem,interpretation,from);
63592 find mustInstanceOfEReference_class(problem,interpretation,to);
63593 find mayInRelationeReferences_reference_EClass(problem,interpretation,from,to);
63594 neg find mustInRelationeReferences_reference_EClass(problem,interpretation,from,to);
63595}
63596pattern refineRelation_eAttributes_reference_EClass(
63597 problem:LogicProblem, interpretation:PartialInterpretation,
63598 relationIterpretation:PartialRelationInterpretation,
63599 from: DefinedElement, to: DefinedElement)
63600{
63601 find interpretation(problem,interpretation);
63602 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
63603 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAttributes reference EClass");
63604 find mustExist(problem, interpretation, from);
63605 find mustExist(problem, interpretation, to);
63606 find mustInstanceOfEClass_class(problem,interpretation,from);
63607 find mustInstanceOfEAttribute_class(problem,interpretation,to);
63608 find mayInRelationeAttributes_reference_EClass(problem,interpretation,from,to);
63609 neg find mustInRelationeAttributes_reference_EClass(problem,interpretation,from,to);
63610}
63611pattern refineRelation_eAllContainments_reference_EClass(
63612 problem:LogicProblem, interpretation:PartialInterpretation,
63613 relationIterpretation:PartialRelationInterpretation,
63614 from: DefinedElement, to: DefinedElement)
63615{
63616 find interpretation(problem,interpretation);
63617 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
63618 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllContainments reference EClass");
63619 find mustExist(problem, interpretation, from);
63620 find mustExist(problem, interpretation, to);
63621 find mustInstanceOfEClass_class(problem,interpretation,from);
63622 find mustInstanceOfEReference_class(problem,interpretation,to);
63623 find mayInRelationeAllContainments_reference_EClass(problem,interpretation,from,to);
63624 neg find mustInRelationeAllContainments_reference_EClass(problem,interpretation,from,to);
63625}
63626pattern refineRelation_eAllOperations_reference_EClass(
63627 problem:LogicProblem, interpretation:PartialInterpretation,
63628 relationIterpretation:PartialRelationInterpretation,
63629 from: DefinedElement, to: DefinedElement)
63630{
63631 find interpretation(problem,interpretation);
63632 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
63633 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllOperations reference EClass");
63634 find mustExist(problem, interpretation, from);
63635 find mustExist(problem, interpretation, to);
63636 find mustInstanceOfEClass_class(problem,interpretation,from);
63637 find mustInstanceOfEOperation_class(problem,interpretation,to);
63638 find mayInRelationeAllOperations_reference_EClass(problem,interpretation,from,to);
63639 neg find mustInRelationeAllOperations_reference_EClass(problem,interpretation,from,to);
63640}
63641pattern refineRelation_eAllStructuralFeatures_reference_EClass(
63642 problem:LogicProblem, interpretation:PartialInterpretation,
63643 relationIterpretation:PartialRelationInterpretation,
63644 from: DefinedElement, to: DefinedElement)
63645{
63646 find interpretation(problem,interpretation);
63647 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
63648 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllStructuralFeatures reference EClass");
63649 find mustExist(problem, interpretation, from);
63650 find mustExist(problem, interpretation, to);
63651 find mustInstanceOfEClass_class(problem,interpretation,from);
63652 find mustInstanceOfEStructuralFeature_class(problem,interpretation,to);
63653 find mayInRelationeAllStructuralFeatures_reference_EClass(problem,interpretation,from,to);
63654 neg find mustInRelationeAllStructuralFeatures_reference_EClass(problem,interpretation,from,to);
63655}
63656pattern refineRelation_eAllSuperTypes_reference_EClass(
63657 problem:LogicProblem, interpretation:PartialInterpretation,
63658 relationIterpretation:PartialRelationInterpretation,
63659 from: DefinedElement, to: DefinedElement)
63660{
63661 find interpretation(problem,interpretation);
63662 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
63663 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllSuperTypes reference EClass");
63664 find mustExist(problem, interpretation, from);
63665 find mustExist(problem, interpretation, to);
63666 find mustInstanceOfEClass_class(problem,interpretation,from);
63667 find mustInstanceOfEClass_class(problem,interpretation,to);
63668 find mayInRelationeAllSuperTypes_reference_EClass(problem,interpretation,from,to);
63669 neg find mustInRelationeAllSuperTypes_reference_EClass(problem,interpretation,from,to);
63670}
63671pattern refineRelation_eIDAttribute_reference_EClass(
63672 problem:LogicProblem, interpretation:PartialInterpretation,
63673 relationIterpretation:PartialRelationInterpretation,
63674 from: DefinedElement, to: DefinedElement)
63675{
63676 find interpretation(problem,interpretation);
63677 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
63678 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eIDAttribute reference EClass");
63679 find mustExist(problem, interpretation, from);
63680 find mustExist(problem, interpretation, to);
63681 find mustInstanceOfEClass_class(problem,interpretation,from);
63682 find mustInstanceOfEAttribute_class(problem,interpretation,to);
63683 find mayInRelationeIDAttribute_reference_EClass(problem,interpretation,from,to);
63684 neg find mustInRelationeIDAttribute_reference_EClass(problem,interpretation,from,to);
63685}
63686pattern refineRelation_eAllGenericSuperTypes_reference_EClass(
63687 problem:LogicProblem, interpretation:PartialInterpretation,
63688 relationIterpretation:PartialRelationInterpretation,
63689 from: DefinedElement, to: DefinedElement)
63690{
63691 find interpretation(problem,interpretation);
63692 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
63693 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eAllGenericSuperTypes reference EClass");
63694 find mustExist(problem, interpretation, from);
63695 find mustExist(problem, interpretation, to);
63696 find mustInstanceOfEClass_class(problem,interpretation,from);
63697 find mustInstanceOfEGenericType_class(problem,interpretation,to);
63698 find mayInRelationeAllGenericSuperTypes_reference_EClass(problem,interpretation,from,to);
63699 neg find mustInRelationeAllGenericSuperTypes_reference_EClass(problem,interpretation,from,to);
63700}
63701pattern refineRelation_eExceptions_reference_EOperation(
63702 problem:LogicProblem, interpretation:PartialInterpretation,
63703 relationIterpretation:PartialRelationInterpretation,
63704 from: DefinedElement, to: DefinedElement)
63705{
63706 find interpretation(problem,interpretation);
63707 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
63708 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eExceptions reference EOperation");
63709 find mustExist(problem, interpretation, from);
63710 find mustExist(problem, interpretation, to);
63711 find mustInstanceOfEOperation_class(problem,interpretation,from);
63712 find mustInstanceOfEClassifier_class(problem,interpretation,to);
63713 find mayInRelationeExceptions_reference_EOperation(problem,interpretation,from,to);
63714 neg find mustInRelationeExceptions_reference_EOperation(problem,interpretation,from,to);
63715}
63716pattern refineRelation_eOpposite_reference_EReference(
63717 problem:LogicProblem, interpretation:PartialInterpretation,
63718 relationIterpretation:PartialRelationInterpretation,
63719 from: DefinedElement, to: DefinedElement)
63720{
63721 find interpretation(problem,interpretation);
63722 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
63723 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eOpposite reference EReference");
63724 find mustExist(problem, interpretation, from);
63725 find mustExist(problem, interpretation, to);
63726 find mustInstanceOfEReference_class(problem,interpretation,from);
63727 find mustInstanceOfEReference_class(problem,interpretation,to);
63728 find mayInRelationeOpposite_reference_EReference(problem,interpretation,from,to);
63729 neg find mustInRelationeOpposite_reference_EReference(problem,interpretation,from,to);
63730}
63731pattern refineRelation_eReferenceType_reference_EReference(
63732 problem:LogicProblem, interpretation:PartialInterpretation,
63733 relationIterpretation:PartialRelationInterpretation,
63734 from: DefinedElement, to: DefinedElement)
63735{
63736 find interpretation(problem,interpretation);
63737 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
63738 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eReferenceType reference EReference");
63739 find mustExist(problem, interpretation, from);
63740 find mustExist(problem, interpretation, to);
63741 find mustInstanceOfEReference_class(problem,interpretation,from);
63742 find mustInstanceOfEClass_class(problem,interpretation,to);
63743 find mayInRelationeReferenceType_reference_EReference(problem,interpretation,from,to);
63744 neg find mustInRelationeReferenceType_reference_EReference(problem,interpretation,from,to);
63745}
63746pattern refineRelation_eKeys_reference_EReference(
63747 problem:LogicProblem, interpretation:PartialInterpretation,
63748 relationIterpretation:PartialRelationInterpretation,
63749 from: DefinedElement, to: DefinedElement)
63750{
63751 find interpretation(problem,interpretation);
63752 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
63753 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eKeys reference EReference");
63754 find mustExist(problem, interpretation, from);
63755 find mustExist(problem, interpretation, to);
63756 find mustInstanceOfEReference_class(problem,interpretation,from);
63757 find mustInstanceOfEAttribute_class(problem,interpretation,to);
63758 find mayInRelationeKeys_reference_EReference(problem,interpretation,from,to);
63759 neg find mustInRelationeKeys_reference_EReference(problem,interpretation,from,to);
63760}
63761pattern refineRelation_eType_reference_ETypedElement(
63762 problem:LogicProblem, interpretation:PartialInterpretation,
63763 relationIterpretation:PartialRelationInterpretation,
63764 from: DefinedElement, to: DefinedElement)
63765{
63766 find interpretation(problem,interpretation);
63767 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
63768 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eType reference ETypedElement");
63769 find mustExist(problem, interpretation, from);
63770 find mustExist(problem, interpretation, to);
63771 find mustInstanceOfETypedElement_class(problem,interpretation,from);
63772 find mustInstanceOfEClassifier_class(problem,interpretation,to);
63773 find mayInRelationeType_reference_ETypedElement(problem,interpretation,from,to);
63774 neg find mustInRelationeType_reference_ETypedElement(problem,interpretation,from,to);
63775}
63776pattern refineRelation_eRawType_reference_EGenericType(
63777 problem:LogicProblem, interpretation:PartialInterpretation,
63778 relationIterpretation:PartialRelationInterpretation,
63779 from: DefinedElement, to: DefinedElement)
63780{
63781 find interpretation(problem,interpretation);
63782 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
63783 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eRawType reference EGenericType");
63784 find mustExist(problem, interpretation, from);
63785 find mustExist(problem, interpretation, to);
63786 find mustInstanceOfEGenericType_class(problem,interpretation,from);
63787 find mustInstanceOfEClassifier_class(problem,interpretation,to);
63788 find mayInRelationeRawType_reference_EGenericType(problem,interpretation,from,to);
63789 neg find mustInRelationeRawType_reference_EGenericType(problem,interpretation,from,to);
63790}
63791pattern refineRelation_eTypeParameter_reference_EGenericType(
63792 problem:LogicProblem, interpretation:PartialInterpretation,
63793 relationIterpretation:PartialRelationInterpretation,
63794 from: DefinedElement, to: DefinedElement)
63795{
63796 find interpretation(problem,interpretation);
63797 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
63798 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eTypeParameter reference EGenericType");
63799 find mustExist(problem, interpretation, from);
63800 find mustExist(problem, interpretation, to);
63801 find mustInstanceOfEGenericType_class(problem,interpretation,from);
63802 find mustInstanceOfETypeParameter_class(problem,interpretation,to);
63803 find mayInRelationeTypeParameter_reference_EGenericType(problem,interpretation,from,to);
63804 neg find mustInRelationeTypeParameter_reference_EGenericType(problem,interpretation,from,to);
63805}
63806pattern refineRelation_eClassifier_reference_EGenericType(
63807 problem:LogicProblem, interpretation:PartialInterpretation,
63808 relationIterpretation:PartialRelationInterpretation,
63809 from: DefinedElement, to: DefinedElement)
63810{
63811 find interpretation(problem,interpretation);
63812 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
63813 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"eClassifier reference EGenericType");
63814 find mustExist(problem, interpretation, from);
63815 find mustExist(problem, interpretation, to);
63816 find mustInstanceOfEGenericType_class(problem,interpretation,from);
63817 find mustInstanceOfEClassifier_class(problem,interpretation,to);
63818 find mayInRelationeClassifier_reference_EGenericType(problem,interpretation,from,to);
63819 neg find mustInRelationeClassifier_reference_EGenericType(problem,interpretation,from,to);
63820}
63821pattern refineRelation_iD_attribute_EAttribute(
63822 problem:LogicProblem, interpretation:PartialInterpretation,
63823 relationIterpretation:PartialRelationInterpretation,
63824 from: DefinedElement, to: DefinedElement)
63825{
63826 find interpretation(problem,interpretation);
63827 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
63828 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"iD attribute EAttribute");
63829 find mustExist(problem, interpretation, from);
63830 find mustExist(problem, interpretation, to);
63831 find mustInstanceOfEAttribute_class(problem,interpretation,from);
63832 BooleanElement(to);
63833 find mayInRelationiD_attribute_EAttribute(problem,interpretation,from,to);
63834 neg find mustInRelationiD_attribute_EAttribute(problem,interpretation,from,to);
63835}
63836pattern refineRelation_source_attribute_EAnnotation(
63837 problem:LogicProblem, interpretation:PartialInterpretation,
63838 relationIterpretation:PartialRelationInterpretation,
63839 from: DefinedElement, to: DefinedElement)
63840{
63841 find interpretation(problem,interpretation);
63842 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
63843 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"source attribute EAnnotation");
63844 find mustExist(problem, interpretation, from);
63845 find mustExist(problem, interpretation, to);
63846 find mustInstanceOfEAnnotation_class(problem,interpretation,from);
63847 StringElement(to);
63848 find mayInRelationsource_attribute_EAnnotation(problem,interpretation,from,to);
63849 neg find mustInRelationsource_attribute_EAnnotation(problem,interpretation,from,to);
63850}
63851pattern refineRelation_abstract_attribute_EClass(
63852 problem:LogicProblem, interpretation:PartialInterpretation,
63853 relationIterpretation:PartialRelationInterpretation,
63854 from: DefinedElement, to: DefinedElement)
63855{
63856 find interpretation(problem,interpretation);
63857 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
63858 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"abstract attribute EClass");
63859 find mustExist(problem, interpretation, from);
63860 find mustExist(problem, interpretation, to);
63861 find mustInstanceOfEClass_class(problem,interpretation,from);
63862 BooleanElement(to);
63863 find mayInRelationabstract_attribute_EClass(problem,interpretation,from,to);
63864 neg find mustInRelationabstract_attribute_EClass(problem,interpretation,from,to);
63865}
63866pattern refineRelation_interface_attribute_EClass(
63867 problem:LogicProblem, interpretation:PartialInterpretation,
63868 relationIterpretation:PartialRelationInterpretation,
63869 from: DefinedElement, to: DefinedElement)
63870{
63871 find interpretation(problem,interpretation);
63872 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
63873 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"interface attribute EClass");
63874 find mustExist(problem, interpretation, from);
63875 find mustExist(problem, interpretation, to);
63876 find mustInstanceOfEClass_class(problem,interpretation,from);
63877 BooleanElement(to);
63878 find mayInRelationinterface_attribute_EClass(problem,interpretation,from,to);
63879 neg find mustInRelationinterface_attribute_EClass(problem,interpretation,from,to);
63880}
63881pattern refineRelation_instanceClassName_attribute_EClassifier(
63882 problem:LogicProblem, interpretation:PartialInterpretation,
63883 relationIterpretation:PartialRelationInterpretation,
63884 from: DefinedElement, to: DefinedElement)
63885{
63886 find interpretation(problem,interpretation);
63887 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
63888 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"instanceClassName attribute EClassifier");
63889 find mustExist(problem, interpretation, from);
63890 find mustExist(problem, interpretation, to);
63891 find mustInstanceOfEClassifier_class(problem,interpretation,from);
63892 StringElement(to);
63893 find mayInRelationinstanceClassName_attribute_EClassifier(problem,interpretation,from,to);
63894 neg find mustInRelationinstanceClassName_attribute_EClassifier(problem,interpretation,from,to);
63895}
63896pattern refineRelation_instanceTypeName_attribute_EClassifier(
63897 problem:LogicProblem, interpretation:PartialInterpretation,
63898 relationIterpretation:PartialRelationInterpretation,
63899 from: DefinedElement, to: DefinedElement)
63900{
63901 find interpretation(problem,interpretation);
63902 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
63903 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"instanceTypeName attribute EClassifier");
63904 find mustExist(problem, interpretation, from);
63905 find mustExist(problem, interpretation, to);
63906 find mustInstanceOfEClassifier_class(problem,interpretation,from);
63907 StringElement(to);
63908 find mayInRelationinstanceTypeName_attribute_EClassifier(problem,interpretation,from,to);
63909 neg find mustInRelationinstanceTypeName_attribute_EClassifier(problem,interpretation,from,to);
63910}
63911pattern refineRelation_serializable_attribute_EDataType(
63912 problem:LogicProblem, interpretation:PartialInterpretation,
63913 relationIterpretation:PartialRelationInterpretation,
63914 from: DefinedElement, to: DefinedElement)
63915{
63916 find interpretation(problem,interpretation);
63917 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
63918 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"serializable attribute EDataType");
63919 find mustExist(problem, interpretation, from);
63920 find mustExist(problem, interpretation, to);
63921 find mustInstanceOfEDataType_class(problem,interpretation,from);
63922 BooleanElement(to);
63923 find mayInRelationserializable_attribute_EDataType(problem,interpretation,from,to);
63924 neg find mustInRelationserializable_attribute_EDataType(problem,interpretation,from,to);
63925}
63926pattern refineRelation_value_attribute_EEnumLiteral(
63927 problem:LogicProblem, interpretation:PartialInterpretation,
63928 relationIterpretation:PartialRelationInterpretation,
63929 from: DefinedElement, to: DefinedElement)
63930{
63931 find interpretation(problem,interpretation);
63932 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
63933 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"value attribute EEnumLiteral");
63934 find mustExist(problem, interpretation, from);
63935 find mustExist(problem, interpretation, to);
63936 find mustInstanceOfEEnumLiteral_class(problem,interpretation,from);
63937 IntegerElement(to);
63938 find mayInRelationvalue_attribute_EEnumLiteral(problem,interpretation,from,to);
63939 neg find mustInRelationvalue_attribute_EEnumLiteral(problem,interpretation,from,to);
63940}
63941pattern refineRelation_literal_attribute_EEnumLiteral(
63942 problem:LogicProblem, interpretation:PartialInterpretation,
63943 relationIterpretation:PartialRelationInterpretation,
63944 from: DefinedElement, to: DefinedElement)
63945{
63946 find interpretation(problem,interpretation);
63947 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
63948 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"literal attribute EEnumLiteral");
63949 find mustExist(problem, interpretation, from);
63950 find mustExist(problem, interpretation, to);
63951 find mustInstanceOfEEnumLiteral_class(problem,interpretation,from);
63952 StringElement(to);
63953 find mayInRelationliteral_attribute_EEnumLiteral(problem,interpretation,from,to);
63954 neg find mustInRelationliteral_attribute_EEnumLiteral(problem,interpretation,from,to);
63955}
63956pattern refineRelation_name_attribute_ENamedElement(
63957 problem:LogicProblem, interpretation:PartialInterpretation,
63958 relationIterpretation:PartialRelationInterpretation,
63959 from: DefinedElement, to: DefinedElement)
63960{
63961 find interpretation(problem,interpretation);
63962 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
63963 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"name attribute ENamedElement");
63964 find mustExist(problem, interpretation, from);
63965 find mustExist(problem, interpretation, to);
63966 find mustInstanceOfENamedElement_class(problem,interpretation,from);
63967 StringElement(to);
63968 find mayInRelationname_attribute_ENamedElement(problem,interpretation,from,to);
63969 neg find mustInRelationname_attribute_ENamedElement(problem,interpretation,from,to);
63970}
63971pattern refineRelation_nsURI_attribute_EPackage(
63972 problem:LogicProblem, interpretation:PartialInterpretation,
63973 relationIterpretation:PartialRelationInterpretation,
63974 from: DefinedElement, to: DefinedElement)
63975{
63976 find interpretation(problem,interpretation);
63977 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
63978 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"nsURI attribute EPackage");
63979 find mustExist(problem, interpretation, from);
63980 find mustExist(problem, interpretation, to);
63981 find mustInstanceOfEPackage_class(problem,interpretation,from);
63982 StringElement(to);
63983 find mayInRelationnsURI_attribute_EPackage(problem,interpretation,from,to);
63984 neg find mustInRelationnsURI_attribute_EPackage(problem,interpretation,from,to);
63985}
63986pattern refineRelation_nsPrefix_attribute_EPackage(
63987 problem:LogicProblem, interpretation:PartialInterpretation,
63988 relationIterpretation:PartialRelationInterpretation,
63989 from: DefinedElement, to: DefinedElement)
63990{
63991 find interpretation(problem,interpretation);
63992 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
63993 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"nsPrefix attribute EPackage");
63994 find mustExist(problem, interpretation, from);
63995 find mustExist(problem, interpretation, to);
63996 find mustInstanceOfEPackage_class(problem,interpretation,from);
63997 StringElement(to);
63998 find mayInRelationnsPrefix_attribute_EPackage(problem,interpretation,from,to);
63999 neg find mustInRelationnsPrefix_attribute_EPackage(problem,interpretation,from,to);
64000}
64001pattern refineRelation_containment_attribute_EReference(
64002 problem:LogicProblem, interpretation:PartialInterpretation,
64003 relationIterpretation:PartialRelationInterpretation,
64004 from: DefinedElement, to: DefinedElement)
64005{
64006 find interpretation(problem,interpretation);
64007 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
64008 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"containment attribute EReference");
64009 find mustExist(problem, interpretation, from);
64010 find mustExist(problem, interpretation, to);
64011 find mustInstanceOfEReference_class(problem,interpretation,from);
64012 BooleanElement(to);
64013 find mayInRelationcontainment_attribute_EReference(problem,interpretation,from,to);
64014 neg find mustInRelationcontainment_attribute_EReference(problem,interpretation,from,to);
64015}
64016pattern refineRelation_container_attribute_EReference(
64017 problem:LogicProblem, interpretation:PartialInterpretation,
64018 relationIterpretation:PartialRelationInterpretation,
64019 from: DefinedElement, to: DefinedElement)
64020{
64021 find interpretation(problem,interpretation);
64022 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
64023 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"container attribute EReference");
64024 find mustExist(problem, interpretation, from);
64025 find mustExist(problem, interpretation, to);
64026 find mustInstanceOfEReference_class(problem,interpretation,from);
64027 BooleanElement(to);
64028 find mayInRelationcontainer_attribute_EReference(problem,interpretation,from,to);
64029 neg find mustInRelationcontainer_attribute_EReference(problem,interpretation,from,to);
64030}
64031pattern refineRelation_resolveProxies_attribute_EReference(
64032 problem:LogicProblem, interpretation:PartialInterpretation,
64033 relationIterpretation:PartialRelationInterpretation,
64034 from: DefinedElement, to: DefinedElement)
64035{
64036 find interpretation(problem,interpretation);
64037 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
64038 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"resolveProxies attribute EReference");
64039 find mustExist(problem, interpretation, from);
64040 find mustExist(problem, interpretation, to);
64041 find mustInstanceOfEReference_class(problem,interpretation,from);
64042 BooleanElement(to);
64043 find mayInRelationresolveProxies_attribute_EReference(problem,interpretation,from,to);
64044 neg find mustInRelationresolveProxies_attribute_EReference(problem,interpretation,from,to);
64045}
64046pattern refineRelation_changeable_attribute_EStructuralFeature(
64047 problem:LogicProblem, interpretation:PartialInterpretation,
64048 relationIterpretation:PartialRelationInterpretation,
64049 from: DefinedElement, to: DefinedElement)
64050{
64051 find interpretation(problem,interpretation);
64052 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
64053 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"changeable attribute EStructuralFeature");
64054 find mustExist(problem, interpretation, from);
64055 find mustExist(problem, interpretation, to);
64056 find mustInstanceOfEStructuralFeature_class(problem,interpretation,from);
64057 BooleanElement(to);
64058 find mayInRelationchangeable_attribute_EStructuralFeature(problem,interpretation,from,to);
64059 neg find mustInRelationchangeable_attribute_EStructuralFeature(problem,interpretation,from,to);
64060}
64061pattern refineRelation_volatile_attribute_EStructuralFeature(
64062 problem:LogicProblem, interpretation:PartialInterpretation,
64063 relationIterpretation:PartialRelationInterpretation,
64064 from: DefinedElement, to: DefinedElement)
64065{
64066 find interpretation(problem,interpretation);
64067 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
64068 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"volatile attribute EStructuralFeature");
64069 find mustExist(problem, interpretation, from);
64070 find mustExist(problem, interpretation, to);
64071 find mustInstanceOfEStructuralFeature_class(problem,interpretation,from);
64072 BooleanElement(to);
64073 find mayInRelationvolatile_attribute_EStructuralFeature(problem,interpretation,from,to);
64074 neg find mustInRelationvolatile_attribute_EStructuralFeature(problem,interpretation,from,to);
64075}
64076pattern refineRelation_transient_attribute_EStructuralFeature(
64077 problem:LogicProblem, interpretation:PartialInterpretation,
64078 relationIterpretation:PartialRelationInterpretation,
64079 from: DefinedElement, to: DefinedElement)
64080{
64081 find interpretation(problem,interpretation);
64082 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
64083 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"transient attribute EStructuralFeature");
64084 find mustExist(problem, interpretation, from);
64085 find mustExist(problem, interpretation, to);
64086 find mustInstanceOfEStructuralFeature_class(problem,interpretation,from);
64087 BooleanElement(to);
64088 find mayInRelationtransient_attribute_EStructuralFeature(problem,interpretation,from,to);
64089 neg find mustInRelationtransient_attribute_EStructuralFeature(problem,interpretation,from,to);
64090}
64091pattern refineRelation_defaultValueLiteral_attribute_EStructuralFeature(
64092 problem:LogicProblem, interpretation:PartialInterpretation,
64093 relationIterpretation:PartialRelationInterpretation,
64094 from: DefinedElement, to: DefinedElement)
64095{
64096 find interpretation(problem,interpretation);
64097 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
64098 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"defaultValueLiteral attribute EStructuralFeature");
64099 find mustExist(problem, interpretation, from);
64100 find mustExist(problem, interpretation, to);
64101 find mustInstanceOfEStructuralFeature_class(problem,interpretation,from);
64102 StringElement(to);
64103 find mayInRelationdefaultValueLiteral_attribute_EStructuralFeature(problem,interpretation,from,to);
64104 neg find mustInRelationdefaultValueLiteral_attribute_EStructuralFeature(problem,interpretation,from,to);
64105}
64106pattern refineRelation_unsettable_attribute_EStructuralFeature(
64107 problem:LogicProblem, interpretation:PartialInterpretation,
64108 relationIterpretation:PartialRelationInterpretation,
64109 from: DefinedElement, to: DefinedElement)
64110{
64111 find interpretation(problem,interpretation);
64112 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
64113 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"unsettable attribute EStructuralFeature");
64114 find mustExist(problem, interpretation, from);
64115 find mustExist(problem, interpretation, to);
64116 find mustInstanceOfEStructuralFeature_class(problem,interpretation,from);
64117 BooleanElement(to);
64118 find mayInRelationunsettable_attribute_EStructuralFeature(problem,interpretation,from,to);
64119 neg find mustInRelationunsettable_attribute_EStructuralFeature(problem,interpretation,from,to);
64120} 46928}
64121pattern refineRelation_derived_attribute_EStructuralFeature( 46929pattern refineTypeTo_FunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
64122 problem:LogicProblem, interpretation:PartialInterpretation,
64123 relationIterpretation:PartialRelationInterpretation,
64124 from: DefinedElement, to: DefinedElement)
64125{
64126 find interpretation(problem,interpretation); 46930 find interpretation(problem,interpretation);
64127 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 46931 PartialInterpretation.newElements(interpretation,element);
64128 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"derived attribute EStructuralFeature"); 46932 find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
64129 find mustExist(problem, interpretation, from); 46933 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
64130 find mustExist(problem, interpretation, to); 46934 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
64131 find mustInstanceOfEStructuralFeature_class(problem,interpretation,from); 46935 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
64132 BooleanElement(to); 46936 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
64133 find mayInRelationderived_attribute_EStructuralFeature(problem,interpretation,from,to); 46937 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
64134 neg find mustInRelationderived_attribute_EStructuralFeature(problem,interpretation,from,to); 46938 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
64135} 46939}
64136pattern refineRelation_ordered_attribute_ETypedElement( 46940pattern refineTypeTo_FunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
64137 problem:LogicProblem, interpretation:PartialInterpretation,
64138 relationIterpretation:PartialRelationInterpretation,
64139 from: DefinedElement, to: DefinedElement)
64140{
64141 find interpretation(problem,interpretation); 46941 find interpretation(problem,interpretation);
64142 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 46942 PartialInterpretation.newElements(interpretation,element);
64143 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"ordered attribute ETypedElement"); 46943 find mayInstanceOfFunctionalInput_class(problem,interpretation,element);
64144 find mustExist(problem, interpretation, from); 46944 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
64145 find mustExist(problem, interpretation, to); 46945 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
64146 find mustInstanceOfETypedElement_class(problem,interpretation,from); 46946 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
64147 BooleanElement(to); 46947 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
64148 find mayInRelationordered_attribute_ETypedElement(problem,interpretation,from,to); 46948 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
64149 neg find mustInRelationordered_attribute_ETypedElement(problem,interpretation,from,to); 46949 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
46950 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
64150} 46951}
64151pattern refineRelation_unique_attribute_ETypedElement( 46952pattern refineTypeTo_Function_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
64152 problem:LogicProblem, interpretation:PartialInterpretation,
64153 relationIterpretation:PartialRelationInterpretation,
64154 from: DefinedElement, to: DefinedElement)
64155{
64156 find interpretation(problem,interpretation); 46953 find interpretation(problem,interpretation);
64157 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 46954 PartialInterpretation.newElements(interpretation,element);
64158 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"unique attribute ETypedElement"); 46955 find mayInstanceOfFunction_class(problem,interpretation,element);
64159 find mustExist(problem, interpretation, from); 46956 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
64160 find mustExist(problem, interpretation, to); 46957 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
64161 find mustInstanceOfETypedElement_class(problem,interpretation,from); 46958 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
64162 BooleanElement(to); 46959 neg find mustInstanceOfFunction_class(problem,interpretation,element);
64163 find mayInRelationunique_attribute_ETypedElement(problem,interpretation,from,to); 46960 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
64164 neg find mustInRelationunique_attribute_ETypedElement(problem,interpretation,from,to); 46961 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
64165} 46962}
64166pattern refineRelation_lowerBound_attribute_ETypedElement( 46963pattern refineTypeTo_FunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
64167 problem:LogicProblem, interpretation:PartialInterpretation,
64168 relationIterpretation:PartialRelationInterpretation,
64169 from: DefinedElement, to: DefinedElement)
64170{
64171 find interpretation(problem,interpretation); 46964 find interpretation(problem,interpretation);
64172 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 46965 PartialInterpretation.newElements(interpretation,element);
64173 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"lowerBound attribute ETypedElement"); 46966 find mayInstanceOfFunctionalOutput_class(problem,interpretation,element);
64174 find mustExist(problem, interpretation, from); 46967 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
64175 find mustExist(problem, interpretation, to); 46968 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
64176 find mustInstanceOfETypedElement_class(problem,interpretation,from); 46969 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
64177 IntegerElement(to); 46970 neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element);
64178 find mayInRelationlowerBound_attribute_ETypedElement(problem,interpretation,from,to); 46971 neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element);
64179 neg find mustInRelationlowerBound_attribute_ETypedElement(problem,interpretation,from,to); 46972 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
46973 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
64180} 46974}
64181pattern refineRelation_upperBound_attribute_ETypedElement( 46975pattern refineTypeTo_FAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
64182 problem:LogicProblem, interpretation:PartialInterpretation,
64183 relationIterpretation:PartialRelationInterpretation,
64184 from: DefinedElement, to: DefinedElement)
64185{
64186 find interpretation(problem,interpretation); 46976 find interpretation(problem,interpretation);
64187 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 46977 PartialInterpretation.newElements(interpretation,element);
64188 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"upperBound attribute ETypedElement"); 46978 find mayInstanceOfFAMTerminator_class(problem,interpretation,element);
64189 find mustExist(problem, interpretation, from); 46979 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
64190 find mustExist(problem, interpretation, to); 46980 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
64191 find mustInstanceOfETypedElement_class(problem,interpretation,from); 46981 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
64192 IntegerElement(to); 46982 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
64193 find mayInRelationupperBound_attribute_ETypedElement(problem,interpretation,from,to); 46983 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
64194 neg find mustInRelationupperBound_attribute_ETypedElement(problem,interpretation,from,to); 46984 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
64195} 46985}
64196pattern refineRelation_many_attribute_ETypedElement( 46986pattern refineTypeTo_InformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
64197 problem:LogicProblem, interpretation:PartialInterpretation,
64198 relationIterpretation:PartialRelationInterpretation,
64199 from: DefinedElement, to: DefinedElement)
64200{
64201 find interpretation(problem,interpretation); 46987 find interpretation(problem,interpretation);
64202 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 46988 PartialInterpretation.newElements(interpretation,element);
64203 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"many attribute ETypedElement"); 46989 find mayInstanceOfInformationLink_class(problem,interpretation,element);
64204 find mustExist(problem, interpretation, from); 46990 neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element);
64205 find mustExist(problem, interpretation, to); 46991 neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element);
64206 find mustInstanceOfETypedElement_class(problem,interpretation,from); 46992 neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element);
64207 BooleanElement(to); 46993 neg find mustInstanceOfFunctionalData_class(problem,interpretation,element);
64208 find mayInRelationmany_attribute_ETypedElement(problem,interpretation,from,to); 46994 neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element);
64209 neg find mustInRelationmany_attribute_ETypedElement(problem,interpretation,from,to); 46995 neg find mustInstanceOfInformationLink_class(problem,interpretation,element);
64210} 46996}
64211pattern refineRelation_required_attribute_ETypedElement( 46997
46998//////////
46999// 4.3 Relation refinement
47000//////////
47001pattern refineRelation_model_reference_FunctionalElement(
64212 problem:LogicProblem, interpretation:PartialInterpretation, 47002 problem:LogicProblem, interpretation:PartialInterpretation,
64213 relationIterpretation:PartialRelationInterpretation, 47003 relationIterpretation:PartialRelationInterpretation,
64214 from: DefinedElement, to: DefinedElement) 47004 from: DefinedElement, to: DefinedElement)
64215{ 47005{
64216 find interpretation(problem,interpretation); 47006 find interpretation(problem,interpretation);
64217 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 47007 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
64218 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"required attribute ETypedElement"); 47008 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement");
64219 find mustExist(problem, interpretation, from); 47009 find mustExist(problem, interpretation, from);
64220 find mustExist(problem, interpretation, to); 47010 find mustExist(problem, interpretation, to);
64221 find mustInstanceOfETypedElement_class(problem,interpretation,from); 47011 find mustInstanceOfFunctionalElement_class(problem,interpretation,from);
64222 BooleanElement(to); 47012 find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,to);
64223 find mayInRelationrequired_attribute_ETypedElement(problem,interpretation,from,to); 47013 find mayInRelationmodel_reference_FunctionalElement(problem,interpretation,from,to);
64224 neg find mustInRelationrequired_attribute_ETypedElement(problem,interpretation,from,to); 47014 neg find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,from,to);
64225} 47015}
64226pattern refineRelation_key_attribute_EStringToStringMapEntry( 47016pattern refineRelation_IncomingLinks_reference_FunctionalInput_and_to_reference_InformationLink(
64227 problem:LogicProblem, interpretation:PartialInterpretation, 47017 problem:LogicProblem, interpretation:PartialInterpretation,
64228 relationIterpretation:PartialRelationInterpretation, 47018 relationIterpretation:PartialRelationInterpretation, oppositeInterpretation:PartialRelationInterpretation,
64229 from: DefinedElement, to: DefinedElement) 47019 from: DefinedElement, to: DefinedElement)
64230{ 47020{
64231 find interpretation(problem,interpretation); 47021 find interpretation(problem,interpretation);
64232 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 47022 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
64233 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"key attribute EStringToStringMapEntry"); 47023 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"IncomingLinks reference FunctionalInput");
47024 PartialInterpretation.partialrelationinterpretation(interpretation,oppositeInterpretation);
47025 PartialRelationInterpretation.interpretationOf.name(oppositeInterpretation,"to reference InformationLink");
64234 find mustExist(problem, interpretation, from); 47026 find mustExist(problem, interpretation, from);
64235 find mustExist(problem, interpretation, to); 47027 find mustExist(problem, interpretation, to);
64236 find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,from); 47028 find mustInstanceOfFunctionalInput_class(problem,interpretation,from);
64237 StringElement(to); 47029 find mustInstanceOfInformationLink_class(problem,interpretation,to);
64238 find mayInRelationkey_attribute_EStringToStringMapEntry(problem,interpretation,from,to); 47030 find mayInRelationIncomingLinks_reference_FunctionalInput(problem,interpretation,from,to);
64239 neg find mustInRelationkey_attribute_EStringToStringMapEntry(problem,interpretation,from,to); 47031 neg find mustInRelationIncomingLinks_reference_FunctionalInput(problem,interpretation,from,to);
64240} 47032}
64241pattern refineRelation_value_attribute_EStringToStringMapEntry( 47033pattern refineRelation_type_attribute_Function(
64242 problem:LogicProblem, interpretation:PartialInterpretation, 47034 problem:LogicProblem, interpretation:PartialInterpretation,
64243 relationIterpretation:PartialRelationInterpretation, 47035 relationIterpretation:PartialRelationInterpretation,
64244 from: DefinedElement, to: DefinedElement) 47036 from: DefinedElement, to: DefinedElement)
64245{ 47037{
64246 find interpretation(problem,interpretation); 47038 find interpretation(problem,interpretation);
64247 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); 47039 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
64248 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"value attribute EStringToStringMapEntry"); 47040 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function");
64249 find mustExist(problem, interpretation, from); 47041 find mustExist(problem, interpretation, from);
64250 find mustExist(problem, interpretation, to); 47042 find mustExist(problem, interpretation, to);
64251 find mustInstanceOfEStringToStringMapEntry_class(problem,interpretation,from); 47043 find mustInstanceOfFunction_class(problem,interpretation,from);
64252 StringElement(to); 47044 find mustInstanceOfFunctionType_enum(problem,interpretation,to);
64253 find mayInRelationvalue_attribute_EStringToStringMapEntry(problem,interpretation,from,to); 47045 find mayInRelationtype_attribute_Function(problem,interpretation,from,to);
64254 neg find mustInRelationvalue_attribute_EStringToStringMapEntry(problem,interpretation,from,to); 47046 neg find mustInRelationtype_attribute_Function(problem,interpretation,from,to);
64255} 47047}
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/debug/generation.logicproblem b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/debug/generation.logicproblem
index 169eadb3..f221cce7 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/debug/generation.logicproblem
+++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/debug/generation.logicproblem
@@ -1,97 +1,82 @@
1<?xml version="1.0" encoding="ASCII"?> 1<?xml version="1.0" encoding="ASCII"?>
2<language:LogicProblem xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore2logicannotations="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language/ecore2logicannotation" xmlns:language="http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem" xmlns:language_1="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language" xmlns:partial2logicannotations="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language/partial2logicannotation"> 2<language:LogicProblem xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore2logicannotations="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language/ecore2logicannotation" xmlns:language="http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem" xmlns:language_1="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language">
3 <types xsi:type="language_1:TypeDeclaration" name="EAttribute class" supertypes="//@types.14"/> 3 <types xsi:type="language_1:TypeDeclaration" name="FunctionalElement class" subtypes="//@types.2" isAbstract="true"/>
4 <types xsi:type="language_1:TypeDeclaration" name="EAnnotation class" supertypes="//@types.7 //@types.20"/> 4 <types xsi:type="language_1:TypeDeclaration" name="FunctionalArchitectureModel class"/>
5 <types xsi:type="language_1:TypeDeclaration" name="EClass class" supertypes="//@types.3"/> 5 <types xsi:type="language_1:TypeDeclaration" name="Function class" supertypes="//@types.0"/>
6 <types xsi:type="language_1:TypeDeclaration" name="EClassifier class" subtypes="//@types.2 //@types.4" supertypes="//@types.8 //@types.22" isAbstract="true"/> 6 <types xsi:type="language_1:TypeDeclaration" name="FAMTerminator class"/>
7 <types xsi:type="language_1:TypeDeclaration" name="EDataType class" subtypes="//@types.5" supertypes="//@types.3"/> 7 <types xsi:type="language_1:TypeDeclaration" name="InformationLink class"/>
8 <types xsi:type="language_1:TypeDeclaration" name="EEnum class" supertypes="//@types.4"/> 8 <types xsi:type="language_1:TypeDeclaration" name="FunctionalInterface class"/>
9 <types xsi:type="language_1:TypeDeclaration" name="EEnumLiteral class" supertypes="//@types.8 //@types.22"/> 9 <types xsi:type="language_1:TypeDeclaration" name="FunctionalInput class" supertypes="//@types.8"/>
10 <types xsi:type="language_1:TypeDeclaration" name="EModelElement class" subtypes="//@types.1 //@types.8 //@types.19 //@types.20" isAbstract="true"/> 10 <types xsi:type="language_1:TypeDeclaration" name="FunctionalOutput class" supertypes="//@types.8"/>
11 <types xsi:type="language_1:TypeDeclaration" name="ENamedElement class" subtypes="//@types.3 //@types.6 //@types.11 //@types.15 //@types.18 //@types.21 //@types.22" supertypes="//@types.7" isAbstract="true"/> 11 <types xsi:type="language_1:TypeDeclaration" name="FunctionalData class" subtypes="//@types.6 //@types.7" isAbstract="true"/>
12 <types xsi:type="language_1:TypeDeclaration" name="EObject class"/> 12 <types xsi:type="language_1:TypeDefinition" name="FunctionType enum" elements="//@elements.0 //@elements.1 //@elements.2"/>
13 <types xsi:type="language_1:TypeDeclaration" name="EOperation class" supertypes="//@types.15"/> 13 <assertions name="upperMultiplicity interface FunctionalElement" annotations="//@annotations.0">
14 <types xsi:type="language_1:TypeDeclaration" name="EPackage class" subtypes="//@types.23 //@types.24" supertypes="//@types.8" isAbstract="true"/>
15 <types xsi:type="language_1:TypeDeclaration" name="EParameter class" supertypes="//@types.15"/>
16 <types xsi:type="language_1:TypeDeclaration" name="EReference class" supertypes="//@types.14"/>
17 <types xsi:type="language_1:TypeDeclaration" name="EStructuralFeature class" subtypes="//@types.0 //@types.13" supertypes="//@types.15" isAbstract="true"/>
18 <types xsi:type="language_1:TypeDeclaration" name="ETypedElement class" subtypes="//@types.10 //@types.12 //@types.14" supertypes="//@types.8 //@types.22" isAbstract="true"/>
19 <types xsi:type="language_1:TypeDeclaration" name="EStringToStringMapEntry class"/>
20 <types xsi:type="language_1:TypeDeclaration" name="EGenericType class"/>
21 <types xsi:type="language_1:TypeDeclaration" name="ETypeParameter class" supertypes="//@types.8 //@types.22"/>
22 <types xsi:type="language_1:TypeDefinition" name="EModelElement class DefinedPart" subtypes="//@types.21" supertypes="//@types.7" isAbstract="true" elements="//@elements.0"/>
23 <types xsi:type="language_1:TypeDeclaration" name="EModelElement class UndefinedPart" subtypes="//@types.1 //@types.22" supertypes="//@types.7" isAbstract="true"/>
24 <types xsi:type="language_1:TypeDefinition" name="ENamedElement class DefinedPart" subtypes="//@types.23" supertypes="//@types.8 //@types.19" isAbstract="true" elements="//@elements.0"/>
25 <types xsi:type="language_1:TypeDeclaration" name="ENamedElement class UndefinedPart" subtypes="//@types.3 //@types.6 //@types.24 //@types.15 //@types.18" supertypes="//@types.8 //@types.20" isAbstract="true"/>
26 <types xsi:type="language_1:TypeDefinition" name="EPackage class DefinedPart" supertypes="//@types.11 //@types.21" elements="//@elements.0"/>
27 <types xsi:type="language_1:TypeDeclaration" name="EPackage class UndefinedPart" supertypes="//@types.11 //@types.22"/>
28 <assertions name="lowerMultiplicity eAttributeType EAttribute" annotations="//@annotations.0">
29 <value xsi:type="language_1:Forall">
30 <quantifiedVariables name="src">
31 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
32 </quantifiedVariables>
33 <expression xsi:type="language_1:Exists">
34 <quantifiedVariables name="trg 1">
35 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
36 </quantifiedVariables>
37 <expression xsi:type="language_1:And">
38 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.0">
39 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.0"/>
40 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@expression/@quantifiedVariables.0"/>
41 </operands>
42 </expression>
43 </expression>
44 </value>
45 </assertions>
46 <assertions name="upperMultiplicity eAttributeType EAttribute" annotations="//@annotations.1">
47 <value xsi:type="language_1:Forall"> 14 <value xsi:type="language_1:Forall">
48 <quantifiedVariables name="src"> 15 <quantifiedVariables name="src">
49 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> 16 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
50 </quantifiedVariables> 17 </quantifiedVariables>
51 <quantifiedVariables name="trg 1"> 18 <quantifiedVariables name="trg 1">
52 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> 19 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
53 </quantifiedVariables> 20 </quantifiedVariables>
54 <quantifiedVariables name="trg 2"> 21 <quantifiedVariables name="trg 2">
55 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> 22 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
56 </quantifiedVariables> 23 </quantifiedVariables>
57 <expression xsi:type="language_1:Impl"> 24 <expression xsi:type="language_1:Impl">
58 <leftOperand xsi:type="language_1:And"> 25 <leftOperand xsi:type="language_1:And">
59 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.0"> 26 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.0">
60 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.0"/> 27 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.0"/>
61 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.1"/> 28 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.1"/>
62 </operands> 29 </operands>
63 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.0"> 30 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.0">
64 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.0"/> 31 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.0"/>
65 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.2"/> 32 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.2"/>
66 </operands> 33 </operands>
67 </leftOperand> 34 </leftOperand>
68 <rightOperand xsi:type="language_1:Not"> 35 <rightOperand xsi:type="language_1:Not">
69 <operand xsi:type="language_1:Distinct"> 36 <operand xsi:type="language_1:Distinct">
70 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.1"/> 37 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.1"/>
71 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.2"/> 38 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.2"/>
72 </operand> 39 </operand>
73 </rightOperand> 40 </rightOperand>
74 </expression> 41 </expression>
75 </value> 42 </value>
76 </assertions> 43 </assertions>
77 <assertions name="upperMultiplicity eModelElement EAnnotation" annotations="//@annotations.2"> 44 <assertions name="lowerMultiplicity model FunctionalElement" annotations="//@annotations.1">
78 <value xsi:type="language_1:Forall"> 45 <value xsi:type="language_1:Forall">
79 <quantifiedVariables name="src"> 46 <quantifiedVariables name="src">
80 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> 47 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
48 </quantifiedVariables>
49 <expression xsi:type="language_1:Exists">
50 <quantifiedVariables name="trg 1">
51 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
52 </quantifiedVariables>
53 <expression xsi:type="language_1:And">
54 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
55 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.0"/>
56 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@expression/@quantifiedVariables.0"/>
57 </operands>
58 </expression>
59 </expression>
60 </value>
61 </assertions>
62 <assertions name="upperMultiplicity model FunctionalElement" annotations="//@annotations.2">
63 <value xsi:type="language_1:Forall">
64 <quantifiedVariables name="src">
65 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
81 </quantifiedVariables> 66 </quantifiedVariables>
82 <quantifiedVariables name="trg 1"> 67 <quantifiedVariables name="trg 1">
83 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/> 68 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
84 </quantifiedVariables> 69 </quantifiedVariables>
85 <quantifiedVariables name="trg 2"> 70 <quantifiedVariables name="trg 2">
86 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/> 71 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
87 </quantifiedVariables> 72 </quantifiedVariables>
88 <expression xsi:type="language_1:Impl"> 73 <expression xsi:type="language_1:Impl">
89 <leftOperand xsi:type="language_1:And"> 74 <leftOperand xsi:type="language_1:And">
90 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2"> 75 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
91 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.0"/> 76 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.0"/>
92 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.1"/> 77 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.1"/>
93 </operands> 78 </operands>
94 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2"> 79 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
95 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.0"/> 80 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.0"/>
96 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.2"/> 81 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.2"/>
97 </operands> 82 </operands>
@@ -105,24 +90,24 @@
105 </expression> 90 </expression>
106 </value> 91 </value>
107 </assertions> 92 </assertions>
108 <assertions name="upperMultiplicity eIDAttribute EClass" annotations="//@annotations.3"> 93 <assertions name="upperMultiplicity parent FunctionalElement" annotations="//@annotations.3">
109 <value xsi:type="language_1:Forall"> 94 <value xsi:type="language_1:Forall">
110 <quantifiedVariables name="src"> 95 <quantifiedVariables name="src">
111 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> 96 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
112 </quantifiedVariables> 97 </quantifiedVariables>
113 <quantifiedVariables name="trg 1"> 98 <quantifiedVariables name="trg 1">
114 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> 99 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
115 </quantifiedVariables> 100 </quantifiedVariables>
116 <quantifiedVariables name="trg 2"> 101 <quantifiedVariables name="trg 2">
117 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> 102 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
118 </quantifiedVariables> 103 </quantifiedVariables>
119 <expression xsi:type="language_1:Impl"> 104 <expression xsi:type="language_1:Impl">
120 <leftOperand xsi:type="language_1:And"> 105 <leftOperand xsi:type="language_1:And">
121 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15"> 106 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2">
122 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> 107 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
123 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.1"/> 108 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.1"/>
124 </operands> 109 </operands>
125 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15"> 110 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2">
126 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> 111 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
127 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.2"/> 112 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.2"/>
128 </operands> 113 </operands>
@@ -136,24 +121,24 @@
136 </expression> 121 </expression>
137 </value> 122 </value>
138 </assertions> 123 </assertions>
139 <assertions name="upperMultiplicity ePackage EClassifier" annotations="//@annotations.4"> 124 <assertions name="upperMultiplicity data FAMTerminator" annotations="//@annotations.4">
140 <value xsi:type="language_1:Forall"> 125 <value xsi:type="language_1:Forall">
141 <quantifiedVariables name="src"> 126 <quantifiedVariables name="src">
142 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> 127 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
143 </quantifiedVariables> 128 </quantifiedVariables>
144 <quantifiedVariables name="trg 1"> 129 <quantifiedVariables name="trg 1">
145 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/> 130 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
146 </quantifiedVariables> 131 </quantifiedVariables>
147 <quantifiedVariables name="trg 2"> 132 <quantifiedVariables name="trg 2">
148 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/> 133 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
149 </quantifiedVariables> 134 </quantifiedVariables>
150 <expression xsi:type="language_1:Impl"> 135 <expression xsi:type="language_1:Impl">
151 <leftOperand xsi:type="language_1:And"> 136 <leftOperand xsi:type="language_1:And">
152 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19"> 137 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.5">
153 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@quantifiedVariables.0"/> 138 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@quantifiedVariables.0"/>
154 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@quantifiedVariables.1"/> 139 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@quantifiedVariables.1"/>
155 </operands> 140 </operands>
156 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19"> 141 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.5">
157 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@quantifiedVariables.0"/> 142 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@quantifiedVariables.0"/>
158 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@quantifiedVariables.2"/> 143 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@quantifiedVariables.2"/>
159 </operands> 144 </operands>
@@ -167,24 +152,24 @@
167 </expression> 152 </expression>
168 </value> 153 </value>
169 </assertions> 154 </assertions>
170 <assertions name="upperMultiplicity eEnum EEnumLiteral" annotations="//@annotations.5"> 155 <assertions name="upperMultiplicity from InformationLink" annotations="//@annotations.5">
171 <value xsi:type="language_1:Forall"> 156 <value xsi:type="language_1:Forall">
172 <quantifiedVariables name="src"> 157 <quantifiedVariables name="src">
173 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> 158 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
174 </quantifiedVariables> 159 </quantifiedVariables>
175 <quantifiedVariables name="trg 1"> 160 <quantifiedVariables name="trg 1">
176 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> 161 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/>
177 </quantifiedVariables> 162 </quantifiedVariables>
178 <quantifiedVariables name="trg 2"> 163 <quantifiedVariables name="trg 2">
179 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> 164 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/>
180 </quantifiedVariables> 165 </quantifiedVariables>
181 <expression xsi:type="language_1:Impl"> 166 <expression xsi:type="language_1:Impl">
182 <leftOperand xsi:type="language_1:And"> 167 <leftOperand xsi:type="language_1:And">
183 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22"> 168 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6">
184 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.0"/> 169 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.0"/>
185 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.1"/> 170 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.1"/>
186 </operands> 171 </operands>
187 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22"> 172 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6">
188 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.0"/> 173 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.0"/>
189 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.2"/> 174 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.2"/>
190 </operands> 175 </operands>
@@ -198,55 +183,42 @@
198 </expression> 183 </expression>
199 </value> 184 </value>
200 </assertions> 185 </assertions>
201 <assertions name="upperMultiplicity eContainingClass EOperation" annotations="//@annotations.6"> 186 <assertions name="lowerMultiplicity to InformationLink" annotations="//@annotations.6">
202 <value xsi:type="language_1:Forall"> 187 <value xsi:type="language_1:Forall">
203 <quantifiedVariables name="src"> 188 <quantifiedVariables name="src">
204 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.10"/> 189 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
205 </quantifiedVariables>
206 <quantifiedVariables name="trg 1">
207 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
208 </quantifiedVariables>
209 <quantifiedVariables name="trg 2">
210 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
211 </quantifiedVariables> 190 </quantifiedVariables>
212 <expression xsi:type="language_1:Impl"> 191 <expression xsi:type="language_1:Exists">
213 <leftOperand xsi:type="language_1:And"> 192 <quantifiedVariables name="trg 1">
214 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.24"> 193 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
215 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.0"/> 194 </quantifiedVariables>
216 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.1"/> 195 <expression xsi:type="language_1:And">
217 </operands> 196 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7">
218 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.24">
219 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.0"/> 197 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.0"/>
220 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.2"/> 198 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@expression/@quantifiedVariables.0"/>
221 </operands> 199 </operands>
222 </leftOperand> 200 </expression>
223 <rightOperand xsi:type="language_1:Not">
224 <operand xsi:type="language_1:Distinct">
225 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.1"/>
226 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.2"/>
227 </operand>
228 </rightOperand>
229 </expression> 201 </expression>
230 </value> 202 </value>
231 </assertions> 203 </assertions>
232 <assertions name="upperMultiplicity eSuperPackage EPackage" annotations="//@annotations.7"> 204 <assertions name="upperMultiplicity to InformationLink" annotations="//@annotations.7">
233 <value xsi:type="language_1:Forall"> 205 <value xsi:type="language_1:Forall">
234 <quantifiedVariables name="src"> 206 <quantifiedVariables name="src">
235 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/> 207 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
236 </quantifiedVariables> 208 </quantifiedVariables>
237 <quantifiedVariables name="trg 1"> 209 <quantifiedVariables name="trg 1">
238 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/> 210 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
239 </quantifiedVariables> 211 </quantifiedVariables>
240 <quantifiedVariables name="trg 2"> 212 <quantifiedVariables name="trg 2">
241 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/> 213 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
242 </quantifiedVariables> 214 </quantifiedVariables>
243 <expression xsi:type="language_1:Impl"> 215 <expression xsi:type="language_1:Impl">
244 <leftOperand xsi:type="language_1:And"> 216 <leftOperand xsi:type="language_1:And">
245 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.31"> 217 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7">
246 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@quantifiedVariables.0"/> 218 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@quantifiedVariables.0"/>
247 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@quantifiedVariables.1"/> 219 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@quantifiedVariables.1"/>
248 </operands> 220 </operands>
249 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.31"> 221 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7">
250 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@quantifiedVariables.0"/> 222 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@quantifiedVariables.0"/>
251 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@quantifiedVariables.2"/> 223 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@quantifiedVariables.2"/>
252 </operands> 224 </operands>
@@ -260,24 +232,24 @@
260 </expression> 232 </expression>
261 </value> 233 </value>
262 </assertions> 234 </assertions>
263 <assertions name="upperMultiplicity eOperation EParameter" annotations="//@annotations.8"> 235 <assertions name="upperMultiplicity element FunctionalInterface" annotations="//@annotations.8">
264 <value xsi:type="language_1:Forall"> 236 <value xsi:type="language_1:Forall">
265 <quantifiedVariables name="src"> 237 <quantifiedVariables name="src">
266 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.12"/> 238 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
267 </quantifiedVariables> 239 </quantifiedVariables>
268 <quantifiedVariables name="trg 1"> 240 <quantifiedVariables name="trg 1">
269 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.10"/> 241 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
270 </quantifiedVariables> 242 </quantifiedVariables>
271 <quantifiedVariables name="trg 2"> 243 <quantifiedVariables name="trg 2">
272 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.10"/> 244 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
273 </quantifiedVariables> 245 </quantifiedVariables>
274 <expression xsi:type="language_1:Impl"> 246 <expression xsi:type="language_1:Impl">
275 <leftOperand xsi:type="language_1:And"> 247 <leftOperand xsi:type="language_1:And">
276 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.32"> 248 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9">
277 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@quantifiedVariables.0"/> 249 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@quantifiedVariables.0"/>
278 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@quantifiedVariables.1"/> 250 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@quantifiedVariables.1"/>
279 </operands> 251 </operands>
280 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.32"> 252 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9">
281 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@quantifiedVariables.0"/> 253 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@quantifiedVariables.0"/>
282 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@quantifiedVariables.2"/> 254 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@quantifiedVariables.2"/>
283 </operands> 255 </operands>
@@ -291,24 +263,24 @@
291 </expression> 263 </expression>
292 </value> 264 </value>
293 </assertions> 265 </assertions>
294 <assertions name="upperMultiplicity eOpposite EReference" annotations="//@annotations.9"> 266 <assertions name="upperMultiplicity terminator FunctionalData" annotations="//@annotations.9">
295 <value xsi:type="language_1:Forall"> 267 <value xsi:type="language_1:Forall">
296 <quantifiedVariables name="src"> 268 <quantifiedVariables name="src">
297 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/> 269 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
298 </quantifiedVariables> 270 </quantifiedVariables>
299 <quantifiedVariables name="trg 1"> 271 <quantifiedVariables name="trg 1">
300 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/> 272 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
301 </quantifiedVariables> 273 </quantifiedVariables>
302 <quantifiedVariables name="trg 2"> 274 <quantifiedVariables name="trg 2">
303 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/> 275 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
304 </quantifiedVariables> 276 </quantifiedVariables>
305 <expression xsi:type="language_1:Impl"> 277 <expression xsi:type="language_1:Impl">
306 <leftOperand xsi:type="language_1:And"> 278 <leftOperand xsi:type="language_1:And">
307 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.33"> 279 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12">
308 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.9/@value/@quantifiedVariables.0"/> 280 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.9/@value/@quantifiedVariables.0"/>
309 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.9/@value/@quantifiedVariables.1"/> 281 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.9/@value/@quantifiedVariables.1"/>
310 </operands> 282 </operands>
311 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.33"> 283 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12">
312 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.9/@value/@quantifiedVariables.0"/> 284 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.9/@value/@quantifiedVariables.0"/>
313 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.9/@value/@quantifiedVariables.2"/> 285 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.9/@value/@quantifiedVariables.2"/>
314 </operands> 286 </operands>
@@ -322,1738 +294,287 @@
322 </expression> 294 </expression>
323 </value> 295 </value>
324 </assertions> 296 </assertions>
325 <assertions name="lowerMultiplicity eReferenceType EReference" annotations="//@annotations.10"> 297 <assertions name="upperMultiplicity interface FunctionalData" annotations="//@annotations.10">
326 <value xsi:type="language_1:Forall">
327 <quantifiedVariables name="src">
328 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/>
329 </quantifiedVariables>
330 <expression xsi:type="language_1:Exists">
331 <quantifiedVariables name="trg 1">
332 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
333 </quantifiedVariables>
334 <expression xsi:type="language_1:And">
335 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.34">
336 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.10/@value/@quantifiedVariables.0"/>
337 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.10/@value/@expression/@quantifiedVariables.0"/>
338 </operands>
339 </expression>
340 </expression>
341 </value>
342 </assertions>
343 <assertions name="upperMultiplicity eReferenceType EReference" annotations="//@annotations.11">
344 <value xsi:type="language_1:Forall">
345 <quantifiedVariables name="src">
346 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/>
347 </quantifiedVariables>
348 <quantifiedVariables name="trg 1">
349 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
350 </quantifiedVariables>
351 <quantifiedVariables name="trg 2">
352 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
353 </quantifiedVariables>
354 <expression xsi:type="language_1:Impl">
355 <leftOperand xsi:type="language_1:And">
356 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.34">
357 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.11/@value/@quantifiedVariables.0"/>
358 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.11/@value/@quantifiedVariables.1"/>
359 </operands>
360 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.34">
361 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.11/@value/@quantifiedVariables.0"/>
362 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.11/@value/@quantifiedVariables.2"/>
363 </operands>
364 </leftOperand>
365 <rightOperand xsi:type="language_1:Not">
366 <operand xsi:type="language_1:Distinct">
367 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.11/@value/@quantifiedVariables.1"/>
368 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.11/@value/@quantifiedVariables.2"/>
369 </operand>
370 </rightOperand>
371 </expression>
372 </value>
373 </assertions>
374 <assertions name="upperMultiplicity eContainingClass EStructuralFeature" annotations="//@annotations.12">
375 <value xsi:type="language_1:Forall">
376 <quantifiedVariables name="src">
377 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/>
378 </quantifiedVariables>
379 <quantifiedVariables name="trg 1">
380 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
381 </quantifiedVariables>
382 <quantifiedVariables name="trg 2">
383 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
384 </quantifiedVariables>
385 <expression xsi:type="language_1:Impl">
386 <leftOperand xsi:type="language_1:And">
387 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.36">
388 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.12/@value/@quantifiedVariables.0"/>
389 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.12/@value/@quantifiedVariables.1"/>
390 </operands>
391 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.36">
392 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.12/@value/@quantifiedVariables.0"/>
393 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.12/@value/@quantifiedVariables.2"/>
394 </operands>
395 </leftOperand>
396 <rightOperand xsi:type="language_1:Not">
397 <operand xsi:type="language_1:Distinct">
398 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.12/@value/@quantifiedVariables.1"/>
399 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.12/@value/@quantifiedVariables.2"/>
400 </operand>
401 </rightOperand>
402 </expression>
403 </value>
404 </assertions>
405 <assertions name="upperMultiplicity eType ETypedElement" annotations="//@annotations.13">
406 <value xsi:type="language_1:Forall">
407 <quantifiedVariables name="src">
408 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.15"/>
409 </quantifiedVariables>
410 <quantifiedVariables name="trg 1">
411 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
412 </quantifiedVariables>
413 <quantifiedVariables name="trg 2">
414 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
415 </quantifiedVariables>
416 <expression xsi:type="language_1:Impl">
417 <leftOperand xsi:type="language_1:And">
418 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.37">
419 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.13/@value/@quantifiedVariables.0"/>
420 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.13/@value/@quantifiedVariables.1"/>
421 </operands>
422 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.37">
423 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.13/@value/@quantifiedVariables.0"/>
424 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.13/@value/@quantifiedVariables.2"/>
425 </operands>
426 </leftOperand>
427 <rightOperand xsi:type="language_1:Not">
428 <operand xsi:type="language_1:Distinct">
429 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.13/@value/@quantifiedVariables.1"/>
430 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.13/@value/@quantifiedVariables.2"/>
431 </operand>
432 </rightOperand>
433 </expression>
434 </value>
435 </assertions>
436 <assertions name="upperMultiplicity eGenericType ETypedElement" annotations="//@annotations.14">
437 <value xsi:type="language_1:Forall">
438 <quantifiedVariables name="src">
439 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.15"/>
440 </quantifiedVariables>
441 <quantifiedVariables name="trg 1">
442 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.17"/>
443 </quantifiedVariables>
444 <quantifiedVariables name="trg 2">
445 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.17"/>
446 </quantifiedVariables>
447 <expression xsi:type="language_1:Impl">
448 <leftOperand xsi:type="language_1:And">
449 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.38">
450 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.14/@value/@quantifiedVariables.0"/>
451 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.14/@value/@quantifiedVariables.1"/>
452 </operands>
453 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.38">
454 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.14/@value/@quantifiedVariables.0"/>
455 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.14/@value/@quantifiedVariables.2"/>
456 </operands>
457 </leftOperand>
458 <rightOperand xsi:type="language_1:Not">
459 <operand xsi:type="language_1:Distinct">
460 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.14/@value/@quantifiedVariables.1"/>
461 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.14/@value/@quantifiedVariables.2"/>
462 </operand>
463 </rightOperand>
464 </expression>
465 </value>
466 </assertions>
467 <assertions name="upperMultiplicity eUpperBound EGenericType" annotations="//@annotations.15">
468 <value xsi:type="language_1:Forall">
469 <quantifiedVariables name="src">
470 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.17"/>
471 </quantifiedVariables>
472 <quantifiedVariables name="trg 1">
473 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.17"/>
474 </quantifiedVariables>
475 <quantifiedVariables name="trg 2">
476 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.17"/>
477 </quantifiedVariables>
478 <expression xsi:type="language_1:Impl">
479 <leftOperand xsi:type="language_1:And">
480 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.39">
481 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.15/@value/@quantifiedVariables.0"/>
482 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.15/@value/@quantifiedVariables.1"/>
483 </operands>
484 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.39">
485 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.15/@value/@quantifiedVariables.0"/>
486 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.15/@value/@quantifiedVariables.2"/>
487 </operands>
488 </leftOperand>
489 <rightOperand xsi:type="language_1:Not">
490 <operand xsi:type="language_1:Distinct">
491 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.15/@value/@quantifiedVariables.1"/>
492 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.15/@value/@quantifiedVariables.2"/>
493 </operand>
494 </rightOperand>
495 </expression>
496 </value>
497 </assertions>
498 <assertions name="lowerMultiplicity eRawType EGenericType" annotations="//@annotations.16">
499 <value xsi:type="language_1:Forall">
500 <quantifiedVariables name="src">
501 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.17"/>
502 </quantifiedVariables>
503 <expression xsi:type="language_1:Exists">
504 <quantifiedVariables name="trg 1">
505 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
506 </quantifiedVariables>
507 <expression xsi:type="language_1:And">
508 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.41">
509 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.16/@value/@quantifiedVariables.0"/>
510 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.16/@value/@expression/@quantifiedVariables.0"/>
511 </operands>
512 </expression>
513 </expression>
514 </value>
515 </assertions>
516 <assertions name="upperMultiplicity eRawType EGenericType" annotations="//@annotations.17">
517 <value xsi:type="language_1:Forall">
518 <quantifiedVariables name="src">
519 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.17"/>
520 </quantifiedVariables>
521 <quantifiedVariables name="trg 1">
522 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
523 </quantifiedVariables>
524 <quantifiedVariables name="trg 2">
525 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
526 </quantifiedVariables>
527 <expression xsi:type="language_1:Impl">
528 <leftOperand xsi:type="language_1:And">
529 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.41">
530 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.17/@value/@quantifiedVariables.0"/>
531 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.17/@value/@quantifiedVariables.1"/>
532 </operands>
533 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.41">
534 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.17/@value/@quantifiedVariables.0"/>
535 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.17/@value/@quantifiedVariables.2"/>
536 </operands>
537 </leftOperand>
538 <rightOperand xsi:type="language_1:Not">
539 <operand xsi:type="language_1:Distinct">
540 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.17/@value/@quantifiedVariables.1"/>
541 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.17/@value/@quantifiedVariables.2"/>
542 </operand>
543 </rightOperand>
544 </expression>
545 </value>
546 </assertions>
547 <assertions name="upperMultiplicity eLowerBound EGenericType" annotations="//@annotations.18">
548 <value xsi:type="language_1:Forall">
549 <quantifiedVariables name="src">
550 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.17"/>
551 </quantifiedVariables>
552 <quantifiedVariables name="trg 1">
553 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.17"/>
554 </quantifiedVariables>
555 <quantifiedVariables name="trg 2">
556 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.17"/>
557 </quantifiedVariables>
558 <expression xsi:type="language_1:Impl">
559 <leftOperand xsi:type="language_1:And">
560 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.42">
561 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.18/@value/@quantifiedVariables.0"/>
562 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.18/@value/@quantifiedVariables.1"/>
563 </operands>
564 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.42">
565 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.18/@value/@quantifiedVariables.0"/>
566 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.18/@value/@quantifiedVariables.2"/>
567 </operands>
568 </leftOperand>
569 <rightOperand xsi:type="language_1:Not">
570 <operand xsi:type="language_1:Distinct">
571 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.18/@value/@quantifiedVariables.1"/>
572 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.18/@value/@quantifiedVariables.2"/>
573 </operand>
574 </rightOperand>
575 </expression>
576 </value>
577 </assertions>
578 <assertions name="upperMultiplicity eTypeParameter EGenericType" annotations="//@annotations.19">
579 <value xsi:type="language_1:Forall">
580 <quantifiedVariables name="src">
581 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.17"/>
582 </quantifiedVariables>
583 <quantifiedVariables name="trg 1">
584 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.18"/>
585 </quantifiedVariables>
586 <quantifiedVariables name="trg 2">
587 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.18"/>
588 </quantifiedVariables>
589 <expression xsi:type="language_1:Impl">
590 <leftOperand xsi:type="language_1:And">
591 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.43">
592 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.19/@value/@quantifiedVariables.0"/>
593 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.19/@value/@quantifiedVariables.1"/>
594 </operands>
595 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.43">
596 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.19/@value/@quantifiedVariables.0"/>
597 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.19/@value/@quantifiedVariables.2"/>
598 </operands>
599 </leftOperand>
600 <rightOperand xsi:type="language_1:Not">
601 <operand xsi:type="language_1:Distinct">
602 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.19/@value/@quantifiedVariables.1"/>
603 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.19/@value/@quantifiedVariables.2"/>
604 </operand>
605 </rightOperand>
606 </expression>
607 </value>
608 </assertions>
609 <assertions name="upperMultiplicity eClassifier EGenericType" annotations="//@annotations.20">
610 <value xsi:type="language_1:Forall"> 298 <value xsi:type="language_1:Forall">
611 <quantifiedVariables name="src"> 299 <quantifiedVariables name="src">
612 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.17"/> 300 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
613 </quantifiedVariables> 301 </quantifiedVariables>
614 <quantifiedVariables name="trg 1"> 302 <quantifiedVariables name="trg 1">
615 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> 303 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
616 </quantifiedVariables> 304 </quantifiedVariables>
617 <quantifiedVariables name="trg 2"> 305 <quantifiedVariables name="trg 2">
618 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> 306 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
619 </quantifiedVariables> 307 </quantifiedVariables>
620 <expression xsi:type="language_1:Impl"> 308 <expression xsi:type="language_1:Impl">
621 <leftOperand xsi:type="language_1:And"> 309 <leftOperand xsi:type="language_1:And">
622 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.44"> 310 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13">
623 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.20/@value/@quantifiedVariables.0"/> 311 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.10/@value/@quantifiedVariables.0"/>
624 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.20/@value/@quantifiedVariables.1"/> 312 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.10/@value/@quantifiedVariables.1"/>
625 </operands> 313 </operands>
626 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.44"> 314 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13">
627 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.20/@value/@quantifiedVariables.0"/> 315 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.10/@value/@quantifiedVariables.0"/>
628 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.20/@value/@quantifiedVariables.2"/> 316 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.10/@value/@quantifiedVariables.2"/>
629 </operands> 317 </operands>
630 </leftOperand> 318 </leftOperand>
631 <rightOperand xsi:type="language_1:Not"> 319 <rightOperand xsi:type="language_1:Not">
632 <operand xsi:type="language_1:Distinct"> 320 <operand xsi:type="language_1:Distinct">
633 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.20/@value/@quantifiedVariables.1"/> 321 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.10/@value/@quantifiedVariables.1"/>
634 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.20/@value/@quantifiedVariables.2"/> 322 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.10/@value/@quantifiedVariables.2"/>
635 </operand> 323 </operand>
636 </rightOperand> 324 </rightOperand>
637 </expression> 325 </expression>
638 </value> 326 </value>
639 </assertions> 327 </assertions>
640 <assertions name="oppositeReference eModelElement EAnnotation" annotations="//@annotations.21"> 328 <assertions name="oppositeReference interface FunctionalElement" annotations="//@annotations.11">
641 <value xsi:type="language_1:Forall"> 329 <value xsi:type="language_1:Forall">
642 <quantifiedVariables name="src"> 330 <quantifiedVariables name="src">
643 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> 331 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
644 </quantifiedVariables> 332 </quantifiedVariables>
645 <quantifiedVariables name="trg"> 333 <quantifiedVariables name="trg">
646 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/> 334 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
647 </quantifiedVariables> 335 </quantifiedVariables>
648 <expression xsi:type="language_1:Iff"> 336 <expression xsi:type="language_1:Iff">
649 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2"> 337 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.0">
650 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.21/@value/@quantifiedVariables.0"/> 338 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.11/@value/@quantifiedVariables.0"/>
651 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.21/@value/@quantifiedVariables.1"/> 339 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.11/@value/@quantifiedVariables.1"/>
652 </leftOperand> 340 </leftOperand>
653 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23"> 341 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9">
654 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.21/@value/@quantifiedVariables.1"/> 342 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.11/@value/@quantifiedVariables.1"/>
655 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.21/@value/@quantifiedVariables.0"/> 343 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.11/@value/@quantifiedVariables.0"/>
656 </rightOperand> 344 </rightOperand>
657 </expression> 345 </expression>
658 </value> 346 </value>
659 </assertions> 347 </assertions>
660 <assertions name="oppositeReference eOperations EClass" annotations="//@annotations.22"> 348 <assertions name="oppositeReference parent FunctionalElement" annotations="//@annotations.12">
661 <value xsi:type="language_1:Forall"> 349 <value xsi:type="language_1:Forall">
662 <quantifiedVariables name="src"> 350 <quantifiedVariables name="src">
663 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> 351 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
664 </quantifiedVariables> 352 </quantifiedVariables>
665 <quantifiedVariables name="trg"> 353 <quantifiedVariables name="trg">
666 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.10"/>
667 </quantifiedVariables>
668 <expression xsi:type="language_1:Iff">
669 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6">
670 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.22/@value/@quantifiedVariables.0"/>
671 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.22/@value/@quantifiedVariables.1"/>
672 </leftOperand>
673 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.24">
674 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.22/@value/@quantifiedVariables.1"/>
675 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.22/@value/@quantifiedVariables.0"/>
676 </rightOperand>
677 </expression>
678 </value>
679 </assertions>
680 <assertions name="oppositeReference eStructuralFeatures EClass" annotations="//@annotations.23">
681 <value xsi:type="language_1:Forall">
682 <quantifiedVariables name="src">
683 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> 354 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
684 </quantifiedVariables> 355 </quantifiedVariables>
685 <quantifiedVariables name="trg">
686 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/>
687 </quantifiedVariables>
688 <expression xsi:type="language_1:Iff"> 356 <expression xsi:type="language_1:Iff">
689 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.16"> 357 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2">
690 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.23/@value/@quantifiedVariables.0"/> 358 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.12/@value/@quantifiedVariables.0"/>
691 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.23/@value/@quantifiedVariables.1"/> 359 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.12/@value/@quantifiedVariables.1"/>
692 </leftOperand> 360 </leftOperand>
693 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.36"> 361 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.4">
694 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.23/@value/@quantifiedVariables.1"/> 362 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.12/@value/@quantifiedVariables.1"/>
695 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.23/@value/@quantifiedVariables.0"/> 363 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.12/@value/@quantifiedVariables.0"/>
696 </rightOperand> 364 </rightOperand>
697 </expression> 365 </expression>
698 </value> 366 </value>
699 </assertions> 367 </assertions>
700 <assertions name="oppositeReference ePackage EClassifier" annotations="//@annotations.24"> 368 <assertions name="oppositeReference data FAMTerminator" annotations="//@annotations.13">
701 <value xsi:type="language_1:Forall"> 369 <value xsi:type="language_1:Forall">
702 <quantifiedVariables name="src"> 370 <quantifiedVariables name="src">
703 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> 371 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
704 </quantifiedVariables> 372 </quantifiedVariables>
705 <quantifiedVariables name="trg"> 373 <quantifiedVariables name="trg">
706 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/> 374 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
707 </quantifiedVariables> 375 </quantifiedVariables>
708 <expression xsi:type="language_1:Iff"> 376 <expression xsi:type="language_1:Iff">
709 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19"> 377 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.5">
710 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.24/@value/@quantifiedVariables.0"/> 378 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.13/@value/@quantifiedVariables.0"/>
711 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.24/@value/@quantifiedVariables.1"/> 379 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.13/@value/@quantifiedVariables.1"/>
712 </leftOperand> 380 </leftOperand>
713 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.29"> 381 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12">
714 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.24/@value/@quantifiedVariables.1"/> 382 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.13/@value/@quantifiedVariables.1"/>
715 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.24/@value/@quantifiedVariables.0"/> 383 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.13/@value/@quantifiedVariables.0"/>
716 </rightOperand> 384 </rightOperand>
717 </expression> 385 </expression>
718 </value> 386 </value>
719 </assertions> 387 </assertions>
720 <assertions name="oppositeReference eLiterals EEnum" annotations="//@annotations.25"> 388 <assertions name="oppositeReference from InformationLink" annotations="//@annotations.14">
721 <value xsi:type="language_1:Forall"> 389 <value xsi:type="language_1:Forall">
722 <quantifiedVariables name="src"> 390 <quantifiedVariables name="src">
723 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> 391 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
724 </quantifiedVariables> 392 </quantifiedVariables>
725 <quantifiedVariables name="trg"> 393 <quantifiedVariables name="trg">
726 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> 394 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/>
727 </quantifiedVariables> 395 </quantifiedVariables>
728 <expression xsi:type="language_1:Iff"> 396 <expression xsi:type="language_1:Iff">
729 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21"> 397 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6">
730 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.25/@value/@quantifiedVariables.0"/> 398 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.14/@value/@quantifiedVariables.0"/>
731 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.25/@value/@quantifiedVariables.1"/> 399 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.14/@value/@quantifiedVariables.1"/>
732 </leftOperand> 400 </leftOperand>
733 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22"> 401 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.11">
734 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.25/@value/@quantifiedVariables.1"/> 402 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.14/@value/@quantifiedVariables.1"/>
735 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.25/@value/@quantifiedVariables.0"/> 403 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.14/@value/@quantifiedVariables.0"/>
736 </rightOperand> 404 </rightOperand>
737 </expression> 405 </expression>
738 </value> 406 </value>
739 </assertions> 407 </assertions>
740 <assertions name="oppositeReference eParameters EOperation" annotations="//@annotations.26"> 408 <assertions name="oppositeReference to InformationLink" annotations="//@annotations.15">
741 <value xsi:type="language_1:Forall"> 409 <value xsi:type="language_1:Forall">
742 <quantifiedVariables name="src"> 410 <quantifiedVariables name="src">
743 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.10"/> 411 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
744 </quantifiedVariables> 412 </quantifiedVariables>
745 <quantifiedVariables name="trg"> 413 <quantifiedVariables name="trg">
746 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.12"/> 414 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
747 </quantifiedVariables> 415 </quantifiedVariables>
748 <expression xsi:type="language_1:Iff"> 416 <expression xsi:type="language_1:Iff">
749 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26"> 417 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7">
750 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.26/@value/@quantifiedVariables.0"/> 418 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.15/@value/@quantifiedVariables.0"/>
751 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.26/@value/@quantifiedVariables.1"/> 419 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.15/@value/@quantifiedVariables.1"/>
752 </leftOperand> 420 </leftOperand>
753 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.32"> 421 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10">
754 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.26/@value/@quantifiedVariables.1"/> 422 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.15/@value/@quantifiedVariables.1"/>
755 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.26/@value/@quantifiedVariables.0"/> 423 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.15/@value/@quantifiedVariables.0"/>
756 </rightOperand> 424 </rightOperand>
757 </expression> 425 </expression>
758 </value> 426 </value>
759 </assertions> 427 </assertions>
760 <assertions name="oppositeReference eSubpackages EPackage" annotations="//@annotations.27"> 428 <assertions name="oppositeReference data FunctionalInterface" annotations="//@annotations.16">
761 <value xsi:type="language_1:Forall"> 429 <value xsi:type="language_1:Forall">
762 <quantifiedVariables name="src"> 430 <quantifiedVariables name="src">
763 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/> 431 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
764 </quantifiedVariables> 432 </quantifiedVariables>
765 <quantifiedVariables name="trg"> 433 <quantifiedVariables name="trg">
766 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/> 434 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
767 </quantifiedVariables> 435 </quantifiedVariables>
768 <expression xsi:type="language_1:Iff"> 436 <expression xsi:type="language_1:Iff">
769 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.30"> 437 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8">
770 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.27/@value/@quantifiedVariables.0"/> 438 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.16/@value/@quantifiedVariables.0"/>
771 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.27/@value/@quantifiedVariables.1"/> 439 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.16/@value/@quantifiedVariables.1"/>
772 </leftOperand>
773 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.31">
774 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.27/@value/@quantifiedVariables.1"/>
775 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.27/@value/@quantifiedVariables.0"/>
776 </rightOperand>
777 </expression>
778 </value>
779 </assertions>
780 <assertions name="upperMultiplicity iD EAttribute" annotations="//@annotations.28">
781 <value xsi:type="language_1:Forall">
782 <quantifiedVariables name="src">
783 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
784 </quantifiedVariables>
785 <quantifiedVariables name="trg 1">
786 <range xsi:type="language_1:BoolTypeReference"/>
787 </quantifiedVariables>
788 <quantifiedVariables name="trg 2">
789 <range xsi:type="language_1:BoolTypeReference"/>
790 </quantifiedVariables>
791 <expression xsi:type="language_1:Impl">
792 <leftOperand xsi:type="language_1:And">
793 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.46">
794 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.28/@value/@quantifiedVariables.0"/>
795 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.28/@value/@quantifiedVariables.1"/>
796 </operands>
797 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.46">
798 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.28/@value/@quantifiedVariables.0"/>
799 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.28/@value/@quantifiedVariables.2"/>
800 </operands>
801 </leftOperand>
802 <rightOperand xsi:type="language_1:Not">
803 <operand xsi:type="language_1:Distinct">
804 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.28/@value/@quantifiedVariables.1"/>
805 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.28/@value/@quantifiedVariables.2"/>
806 </operand>
807 </rightOperand>
808 </expression>
809 </value>
810 </assertions>
811 <assertions name="upperMultiplicity source EAnnotation" annotations="//@annotations.29">
812 <value xsi:type="language_1:Forall">
813 <quantifiedVariables name="src">
814 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
815 </quantifiedVariables>
816 <quantifiedVariables name="trg 1">
817 <range xsi:type="language_1:StringTypeReference"/>
818 </quantifiedVariables>
819 <quantifiedVariables name="trg 2">
820 <range xsi:type="language_1:StringTypeReference"/>
821 </quantifiedVariables>
822 <expression xsi:type="language_1:Impl">
823 <leftOperand xsi:type="language_1:And">
824 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.47">
825 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.29/@value/@quantifiedVariables.0"/>
826 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.29/@value/@quantifiedVariables.1"/>
827 </operands>
828 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.47">
829 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.29/@value/@quantifiedVariables.0"/>
830 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.29/@value/@quantifiedVariables.2"/>
831 </operands>
832 </leftOperand> 440 </leftOperand>
833 <rightOperand xsi:type="language_1:Not"> 441 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13">
834 <operand xsi:type="language_1:Distinct"> 442 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.16/@value/@quantifiedVariables.1"/>
835 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.29/@value/@quantifiedVariables.1"/> 443 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.16/@value/@quantifiedVariables.0"/>
836 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.29/@value/@quantifiedVariables.2"/>
837 </operand>
838 </rightOperand> 444 </rightOperand>
839 </expression> 445 </expression>
840 </value> 446 </value>
841 </assertions> 447 </assertions>
842 <assertions name="upperMultiplicity abstract EClass" annotations="//@annotations.30"> 448 <assertions name="lowerMultiplicity type Function" annotations="//@annotations.17">
843 <value xsi:type="language_1:Forall"> 449 <value xsi:type="language_1:Forall">
844 <quantifiedVariables name="src"> 450 <quantifiedVariables name="src">
845 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> 451 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
846 </quantifiedVariables> 452 </quantifiedVariables>
847 <quantifiedVariables name="trg 1"> 453 <expression xsi:type="language_1:Exists">
848 <range xsi:type="language_1:BoolTypeReference"/> 454 <quantifiedVariables name="trg 1">
849 </quantifiedVariables> 455 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/>
850 <quantifiedVariables name="trg 2"> 456 </quantifiedVariables>
851 <range xsi:type="language_1:BoolTypeReference"/> 457 <expression xsi:type="language_1:And">
852 </quantifiedVariables> 458 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14">
853 <expression xsi:type="language_1:Impl"> 459 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.17/@value/@quantifiedVariables.0"/>
854 <leftOperand xsi:type="language_1:And"> 460 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.17/@value/@expression/@quantifiedVariables.0"/>
855 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.48">
856 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.30/@value/@quantifiedVariables.0"/>
857 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.30/@value/@quantifiedVariables.1"/>
858 </operands>
859 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.48">
860 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.30/@value/@quantifiedVariables.0"/>
861 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.30/@value/@quantifiedVariables.2"/>
862 </operands> 461 </operands>
863 </leftOperand> 462 </expression>
864 <rightOperand xsi:type="language_1:Not">
865 <operand xsi:type="language_1:Distinct">
866 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.30/@value/@quantifiedVariables.1"/>
867 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.30/@value/@quantifiedVariables.2"/>
868 </operand>
869 </rightOperand>
870 </expression> 463 </expression>
871 </value> 464 </value>
872 </assertions> 465 </assertions>
873 <assertions name="upperMultiplicity interface EClass" annotations="//@annotations.31"> 466 <assertions name="upperMultiplicity type Function" annotations="//@annotations.18">
874 <value xsi:type="language_1:Forall"> 467 <value xsi:type="language_1:Forall">
875 <quantifiedVariables name="src"> 468 <quantifiedVariables name="src">
876 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> 469 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
877 </quantifiedVariables> 470 </quantifiedVariables>
878 <quantifiedVariables name="trg 1"> 471 <quantifiedVariables name="trg 1">
879 <range xsi:type="language_1:BoolTypeReference"/> 472 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/>
880 </quantifiedVariables>
881 <quantifiedVariables name="trg 2">
882 <range xsi:type="language_1:BoolTypeReference"/>
883 </quantifiedVariables>
884 <expression xsi:type="language_1:Impl">
885 <leftOperand xsi:type="language_1:And">
886 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.49">
887 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.31/@value/@quantifiedVariables.0"/>
888 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.31/@value/@quantifiedVariables.1"/>
889 </operands>
890 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.49">
891 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.31/@value/@quantifiedVariables.0"/>
892 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.31/@value/@quantifiedVariables.2"/>
893 </operands>
894 </leftOperand>
895 <rightOperand xsi:type="language_1:Not">
896 <operand xsi:type="language_1:Distinct">
897 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.31/@value/@quantifiedVariables.1"/>
898 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.31/@value/@quantifiedVariables.2"/>
899 </operand>
900 </rightOperand>
901 </expression>
902 </value>
903 </assertions>
904 <assertions name="upperMultiplicity instanceClassName EClassifier" annotations="//@annotations.32">
905 <value xsi:type="language_1:Forall">
906 <quantifiedVariables name="src">
907 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
908 </quantifiedVariables>
909 <quantifiedVariables name="trg 1">
910 <range xsi:type="language_1:StringTypeReference"/>
911 </quantifiedVariables>
912 <quantifiedVariables name="trg 2">
913 <range xsi:type="language_1:StringTypeReference"/>
914 </quantifiedVariables>
915 <expression xsi:type="language_1:Impl">
916 <leftOperand xsi:type="language_1:And">
917 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.50">
918 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.32/@value/@quantifiedVariables.0"/>
919 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.32/@value/@quantifiedVariables.1"/>
920 </operands>
921 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.50">
922 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.32/@value/@quantifiedVariables.0"/>
923 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.32/@value/@quantifiedVariables.2"/>
924 </operands>
925 </leftOperand>
926 <rightOperand xsi:type="language_1:Not">
927 <operand xsi:type="language_1:Distinct">
928 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.32/@value/@quantifiedVariables.1"/>
929 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.32/@value/@quantifiedVariables.2"/>
930 </operand>
931 </rightOperand>
932 </expression>
933 </value>
934 </assertions>
935 <assertions name="upperMultiplicity instanceTypeName EClassifier" annotations="//@annotations.33">
936 <value xsi:type="language_1:Forall">
937 <quantifiedVariables name="src">
938 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
939 </quantifiedVariables>
940 <quantifiedVariables name="trg 1">
941 <range xsi:type="language_1:StringTypeReference"/>
942 </quantifiedVariables>
943 <quantifiedVariables name="trg 2">
944 <range xsi:type="language_1:StringTypeReference"/>
945 </quantifiedVariables>
946 <expression xsi:type="language_1:Impl">
947 <leftOperand xsi:type="language_1:And">
948 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.51">
949 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.33/@value/@quantifiedVariables.0"/>
950 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.33/@value/@quantifiedVariables.1"/>
951 </operands>
952 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.51">
953 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.33/@value/@quantifiedVariables.0"/>
954 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.33/@value/@quantifiedVariables.2"/>
955 </operands>
956 </leftOperand>
957 <rightOperand xsi:type="language_1:Not">
958 <operand xsi:type="language_1:Distinct">
959 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.33/@value/@quantifiedVariables.1"/>
960 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.33/@value/@quantifiedVariables.2"/>
961 </operand>
962 </rightOperand>
963 </expression>
964 </value>
965 </assertions>
966 <assertions name="upperMultiplicity serializable EDataType" annotations="//@annotations.34">
967 <value xsi:type="language_1:Forall">
968 <quantifiedVariables name="src">
969 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
970 </quantifiedVariables>
971 <quantifiedVariables name="trg 1">
972 <range xsi:type="language_1:BoolTypeReference"/>
973 </quantifiedVariables>
974 <quantifiedVariables name="trg 2">
975 <range xsi:type="language_1:BoolTypeReference"/>
976 </quantifiedVariables>
977 <expression xsi:type="language_1:Impl">
978 <leftOperand xsi:type="language_1:And">
979 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.52">
980 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.34/@value/@quantifiedVariables.0"/>
981 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.34/@value/@quantifiedVariables.1"/>
982 </operands>
983 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.52">
984 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.34/@value/@quantifiedVariables.0"/>
985 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.34/@value/@quantifiedVariables.2"/>
986 </operands>
987 </leftOperand>
988 <rightOperand xsi:type="language_1:Not">
989 <operand xsi:type="language_1:Distinct">
990 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.34/@value/@quantifiedVariables.1"/>
991 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.34/@value/@quantifiedVariables.2"/>
992 </operand>
993 </rightOperand>
994 </expression>
995 </value>
996 </assertions>
997 <assertions name="upperMultiplicity value EEnumLiteral" annotations="//@annotations.35">
998 <value xsi:type="language_1:Forall">
999 <quantifiedVariables name="src">
1000 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
1001 </quantifiedVariables>
1002 <quantifiedVariables name="trg 1">
1003 <range xsi:type="language_1:IntTypeReference"/>
1004 </quantifiedVariables>
1005 <quantifiedVariables name="trg 2">
1006 <range xsi:type="language_1:IntTypeReference"/>
1007 </quantifiedVariables>
1008 <expression xsi:type="language_1:Impl">
1009 <leftOperand xsi:type="language_1:And">
1010 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.53">
1011 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.35/@value/@quantifiedVariables.0"/>
1012 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.35/@value/@quantifiedVariables.1"/>
1013 </operands>
1014 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.53">
1015 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.35/@value/@quantifiedVariables.0"/>
1016 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.35/@value/@quantifiedVariables.2"/>
1017 </operands>
1018 </leftOperand>
1019 <rightOperand xsi:type="language_1:Not">
1020 <operand xsi:type="language_1:Distinct">
1021 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.35/@value/@quantifiedVariables.1"/>
1022 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.35/@value/@quantifiedVariables.2"/>
1023 </operand>
1024 </rightOperand>
1025 </expression>
1026 </value>
1027 </assertions>
1028 <assertions name="upperMultiplicity literal EEnumLiteral" annotations="//@annotations.36">
1029 <value xsi:type="language_1:Forall">
1030 <quantifiedVariables name="src">
1031 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
1032 </quantifiedVariables>
1033 <quantifiedVariables name="trg 1">
1034 <range xsi:type="language_1:StringTypeReference"/>
1035 </quantifiedVariables> 473 </quantifiedVariables>
1036 <quantifiedVariables name="trg 2"> 474 <quantifiedVariables name="trg 2">
1037 <range xsi:type="language_1:StringTypeReference"/> 475 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/>
1038 </quantifiedVariables> 476 </quantifiedVariables>
1039 <expression xsi:type="language_1:Impl"> 477 <expression xsi:type="language_1:Impl">
1040 <leftOperand xsi:type="language_1:And"> 478 <leftOperand xsi:type="language_1:And">
1041 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.54"> 479 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14">
1042 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.36/@value/@quantifiedVariables.0"/> 480 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.18/@value/@quantifiedVariables.0"/>
1043 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.36/@value/@quantifiedVariables.1"/> 481 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.18/@value/@quantifiedVariables.1"/>
1044 </operands>
1045 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.54">
1046 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.36/@value/@quantifiedVariables.0"/>
1047 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.36/@value/@quantifiedVariables.2"/>
1048 </operands>
1049 </leftOperand>
1050 <rightOperand xsi:type="language_1:Not">
1051 <operand xsi:type="language_1:Distinct">
1052 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.36/@value/@quantifiedVariables.1"/>
1053 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.36/@value/@quantifiedVariables.2"/>
1054 </operand>
1055 </rightOperand>
1056 </expression>
1057 </value>
1058 </assertions>
1059 <assertions name="upperMultiplicity name ENamedElement" annotations="//@annotations.37">
1060 <value xsi:type="language_1:Forall">
1061 <quantifiedVariables name="src">
1062 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
1063 </quantifiedVariables>
1064 <quantifiedVariables name="trg 1">
1065 <range xsi:type="language_1:StringTypeReference"/>
1066 </quantifiedVariables>
1067 <quantifiedVariables name="trg 2">
1068 <range xsi:type="language_1:StringTypeReference"/>
1069 </quantifiedVariables>
1070 <expression xsi:type="language_1:Impl">
1071 <leftOperand xsi:type="language_1:And">
1072 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.55">
1073 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.37/@value/@quantifiedVariables.0"/>
1074 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.37/@value/@quantifiedVariables.1"/>
1075 </operands>
1076 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.55">
1077 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.37/@value/@quantifiedVariables.0"/>
1078 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.37/@value/@quantifiedVariables.2"/>
1079 </operands>
1080 </leftOperand>
1081 <rightOperand xsi:type="language_1:Not">
1082 <operand xsi:type="language_1:Distinct">
1083 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.37/@value/@quantifiedVariables.1"/>
1084 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.37/@value/@quantifiedVariables.2"/>
1085 </operand>
1086 </rightOperand>
1087 </expression>
1088 </value>
1089 </assertions>
1090 <assertions name="upperMultiplicity nsURI EPackage" annotations="//@annotations.38">
1091 <value xsi:type="language_1:Forall">
1092 <quantifiedVariables name="src">
1093 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/>
1094 </quantifiedVariables>
1095 <quantifiedVariables name="trg 1">
1096 <range xsi:type="language_1:StringTypeReference"/>
1097 </quantifiedVariables>
1098 <quantifiedVariables name="trg 2">
1099 <range xsi:type="language_1:StringTypeReference"/>
1100 </quantifiedVariables>
1101 <expression xsi:type="language_1:Impl">
1102 <leftOperand xsi:type="language_1:And">
1103 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.56">
1104 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.38/@value/@quantifiedVariables.0"/>
1105 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.38/@value/@quantifiedVariables.1"/>
1106 </operands>
1107 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.56">
1108 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.38/@value/@quantifiedVariables.0"/>
1109 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.38/@value/@quantifiedVariables.2"/>
1110 </operands>
1111 </leftOperand>
1112 <rightOperand xsi:type="language_1:Not">
1113 <operand xsi:type="language_1:Distinct">
1114 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.38/@value/@quantifiedVariables.1"/>
1115 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.38/@value/@quantifiedVariables.2"/>
1116 </operand>
1117 </rightOperand>
1118 </expression>
1119 </value>
1120 </assertions>
1121 <assertions name="upperMultiplicity nsPrefix EPackage" annotations="//@annotations.39">
1122 <value xsi:type="language_1:Forall">
1123 <quantifiedVariables name="src">
1124 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/>
1125 </quantifiedVariables>
1126 <quantifiedVariables name="trg 1">
1127 <range xsi:type="language_1:StringTypeReference"/>
1128 </quantifiedVariables>
1129 <quantifiedVariables name="trg 2">
1130 <range xsi:type="language_1:StringTypeReference"/>
1131 </quantifiedVariables>
1132 <expression xsi:type="language_1:Impl">
1133 <leftOperand xsi:type="language_1:And">
1134 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.57">
1135 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.39/@value/@quantifiedVariables.0"/>
1136 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.39/@value/@quantifiedVariables.1"/>
1137 </operands>
1138 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.57">
1139 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.39/@value/@quantifiedVariables.0"/>
1140 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.39/@value/@quantifiedVariables.2"/>
1141 </operands>
1142 </leftOperand>
1143 <rightOperand xsi:type="language_1:Not">
1144 <operand xsi:type="language_1:Distinct">
1145 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.39/@value/@quantifiedVariables.1"/>
1146 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.39/@value/@quantifiedVariables.2"/>
1147 </operand>
1148 </rightOperand>
1149 </expression>
1150 </value>
1151 </assertions>
1152 <assertions name="upperMultiplicity containment EReference" annotations="//@annotations.40">
1153 <value xsi:type="language_1:Forall">
1154 <quantifiedVariables name="src">
1155 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/>
1156 </quantifiedVariables>
1157 <quantifiedVariables name="trg 1">
1158 <range xsi:type="language_1:BoolTypeReference"/>
1159 </quantifiedVariables>
1160 <quantifiedVariables name="trg 2">
1161 <range xsi:type="language_1:BoolTypeReference"/>
1162 </quantifiedVariables>
1163 <expression xsi:type="language_1:Impl">
1164 <leftOperand xsi:type="language_1:And">
1165 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.58">
1166 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.40/@value/@quantifiedVariables.0"/>
1167 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.40/@value/@quantifiedVariables.1"/>
1168 </operands>
1169 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.58">
1170 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.40/@value/@quantifiedVariables.0"/>
1171 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.40/@value/@quantifiedVariables.2"/>
1172 </operands>
1173 </leftOperand>
1174 <rightOperand xsi:type="language_1:Not">
1175 <operand xsi:type="language_1:Distinct">
1176 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.40/@value/@quantifiedVariables.1"/>
1177 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.40/@value/@quantifiedVariables.2"/>
1178 </operand>
1179 </rightOperand>
1180 </expression>
1181 </value>
1182 </assertions>
1183 <assertions name="upperMultiplicity container EReference" annotations="//@annotations.41">
1184 <value xsi:type="language_1:Forall">
1185 <quantifiedVariables name="src">
1186 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/>
1187 </quantifiedVariables>
1188 <quantifiedVariables name="trg 1">
1189 <range xsi:type="language_1:BoolTypeReference"/>
1190 </quantifiedVariables>
1191 <quantifiedVariables name="trg 2">
1192 <range xsi:type="language_1:BoolTypeReference"/>
1193 </quantifiedVariables>
1194 <expression xsi:type="language_1:Impl">
1195 <leftOperand xsi:type="language_1:And">
1196 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.59">
1197 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.41/@value/@quantifiedVariables.0"/>
1198 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.41/@value/@quantifiedVariables.1"/>
1199 </operands>
1200 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.59">
1201 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.41/@value/@quantifiedVariables.0"/>
1202 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.41/@value/@quantifiedVariables.2"/>
1203 </operands>
1204 </leftOperand>
1205 <rightOperand xsi:type="language_1:Not">
1206 <operand xsi:type="language_1:Distinct">
1207 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.41/@value/@quantifiedVariables.1"/>
1208 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.41/@value/@quantifiedVariables.2"/>
1209 </operand>
1210 </rightOperand>
1211 </expression>
1212 </value>
1213 </assertions>
1214 <assertions name="upperMultiplicity resolveProxies EReference" annotations="//@annotations.42">
1215 <value xsi:type="language_1:Forall">
1216 <quantifiedVariables name="src">
1217 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/>
1218 </quantifiedVariables>
1219 <quantifiedVariables name="trg 1">
1220 <range xsi:type="language_1:BoolTypeReference"/>
1221 </quantifiedVariables>
1222 <quantifiedVariables name="trg 2">
1223 <range xsi:type="language_1:BoolTypeReference"/>
1224 </quantifiedVariables>
1225 <expression xsi:type="language_1:Impl">
1226 <leftOperand xsi:type="language_1:And">
1227 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.60">
1228 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.42/@value/@quantifiedVariables.0"/>
1229 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.42/@value/@quantifiedVariables.1"/>
1230 </operands>
1231 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.60">
1232 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.42/@value/@quantifiedVariables.0"/>
1233 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.42/@value/@quantifiedVariables.2"/>
1234 </operands>
1235 </leftOperand>
1236 <rightOperand xsi:type="language_1:Not">
1237 <operand xsi:type="language_1:Distinct">
1238 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.42/@value/@quantifiedVariables.1"/>
1239 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.42/@value/@quantifiedVariables.2"/>
1240 </operand>
1241 </rightOperand>
1242 </expression>
1243 </value>
1244 </assertions>
1245 <assertions name="upperMultiplicity changeable EStructuralFeature" annotations="//@annotations.43">
1246 <value xsi:type="language_1:Forall">
1247 <quantifiedVariables name="src">
1248 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/>
1249 </quantifiedVariables>
1250 <quantifiedVariables name="trg 1">
1251 <range xsi:type="language_1:BoolTypeReference"/>
1252 </quantifiedVariables>
1253 <quantifiedVariables name="trg 2">
1254 <range xsi:type="language_1:BoolTypeReference"/>
1255 </quantifiedVariables>
1256 <expression xsi:type="language_1:Impl">
1257 <leftOperand xsi:type="language_1:And">
1258 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.61">
1259 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.43/@value/@quantifiedVariables.0"/>
1260 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.43/@value/@quantifiedVariables.1"/>
1261 </operands>
1262 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.61">
1263 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.43/@value/@quantifiedVariables.0"/>
1264 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.43/@value/@quantifiedVariables.2"/>
1265 </operands>
1266 </leftOperand>
1267 <rightOperand xsi:type="language_1:Not">
1268 <operand xsi:type="language_1:Distinct">
1269 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.43/@value/@quantifiedVariables.1"/>
1270 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.43/@value/@quantifiedVariables.2"/>
1271 </operand>
1272 </rightOperand>
1273 </expression>
1274 </value>
1275 </assertions>
1276 <assertions name="upperMultiplicity volatile EStructuralFeature" annotations="//@annotations.44">
1277 <value xsi:type="language_1:Forall">
1278 <quantifiedVariables name="src">
1279 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/>
1280 </quantifiedVariables>
1281 <quantifiedVariables name="trg 1">
1282 <range xsi:type="language_1:BoolTypeReference"/>
1283 </quantifiedVariables>
1284 <quantifiedVariables name="trg 2">
1285 <range xsi:type="language_1:BoolTypeReference"/>
1286 </quantifiedVariables>
1287 <expression xsi:type="language_1:Impl">
1288 <leftOperand xsi:type="language_1:And">
1289 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.62">
1290 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.44/@value/@quantifiedVariables.0"/>
1291 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.44/@value/@quantifiedVariables.1"/>
1292 </operands>
1293 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.62">
1294 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.44/@value/@quantifiedVariables.0"/>
1295 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.44/@value/@quantifiedVariables.2"/>
1296 </operands>
1297 </leftOperand>
1298 <rightOperand xsi:type="language_1:Not">
1299 <operand xsi:type="language_1:Distinct">
1300 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.44/@value/@quantifiedVariables.1"/>
1301 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.44/@value/@quantifiedVariables.2"/>
1302 </operand>
1303 </rightOperand>
1304 </expression>
1305 </value>
1306 </assertions>
1307 <assertions name="upperMultiplicity transient EStructuralFeature" annotations="//@annotations.45">
1308 <value xsi:type="language_1:Forall">
1309 <quantifiedVariables name="src">
1310 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/>
1311 </quantifiedVariables>
1312 <quantifiedVariables name="trg 1">
1313 <range xsi:type="language_1:BoolTypeReference"/>
1314 </quantifiedVariables>
1315 <quantifiedVariables name="trg 2">
1316 <range xsi:type="language_1:BoolTypeReference"/>
1317 </quantifiedVariables>
1318 <expression xsi:type="language_1:Impl">
1319 <leftOperand xsi:type="language_1:And">
1320 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.63">
1321 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.45/@value/@quantifiedVariables.0"/>
1322 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.45/@value/@quantifiedVariables.1"/>
1323 </operands>
1324 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.63">
1325 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.45/@value/@quantifiedVariables.0"/>
1326 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.45/@value/@quantifiedVariables.2"/>
1327 </operands>
1328 </leftOperand>
1329 <rightOperand xsi:type="language_1:Not">
1330 <operand xsi:type="language_1:Distinct">
1331 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.45/@value/@quantifiedVariables.1"/>
1332 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.45/@value/@quantifiedVariables.2"/>
1333 </operand>
1334 </rightOperand>
1335 </expression>
1336 </value>
1337 </assertions>
1338 <assertions name="upperMultiplicity defaultValueLiteral EStructuralFeature" annotations="//@annotations.46">
1339 <value xsi:type="language_1:Forall">
1340 <quantifiedVariables name="src">
1341 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/>
1342 </quantifiedVariables>
1343 <quantifiedVariables name="trg 1">
1344 <range xsi:type="language_1:StringTypeReference"/>
1345 </quantifiedVariables>
1346 <quantifiedVariables name="trg 2">
1347 <range xsi:type="language_1:StringTypeReference"/>
1348 </quantifiedVariables>
1349 <expression xsi:type="language_1:Impl">
1350 <leftOperand xsi:type="language_1:And">
1351 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.64">
1352 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.46/@value/@quantifiedVariables.0"/>
1353 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.46/@value/@quantifiedVariables.1"/>
1354 </operands>
1355 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.64">
1356 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.46/@value/@quantifiedVariables.0"/>
1357 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.46/@value/@quantifiedVariables.2"/>
1358 </operands>
1359 </leftOperand>
1360 <rightOperand xsi:type="language_1:Not">
1361 <operand xsi:type="language_1:Distinct">
1362 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.46/@value/@quantifiedVariables.1"/>
1363 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.46/@value/@quantifiedVariables.2"/>
1364 </operand>
1365 </rightOperand>
1366 </expression>
1367 </value>
1368 </assertions>
1369 <assertions name="upperMultiplicity unsettable EStructuralFeature" annotations="//@annotations.47">
1370 <value xsi:type="language_1:Forall">
1371 <quantifiedVariables name="src">
1372 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/>
1373 </quantifiedVariables>
1374 <quantifiedVariables name="trg 1">
1375 <range xsi:type="language_1:BoolTypeReference"/>
1376 </quantifiedVariables>
1377 <quantifiedVariables name="trg 2">
1378 <range xsi:type="language_1:BoolTypeReference"/>
1379 </quantifiedVariables>
1380 <expression xsi:type="language_1:Impl">
1381 <leftOperand xsi:type="language_1:And">
1382 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.65">
1383 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.47/@value/@quantifiedVariables.0"/>
1384 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.47/@value/@quantifiedVariables.1"/>
1385 </operands>
1386 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.65">
1387 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.47/@value/@quantifiedVariables.0"/>
1388 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.47/@value/@quantifiedVariables.2"/>
1389 </operands>
1390 </leftOperand>
1391 <rightOperand xsi:type="language_1:Not">
1392 <operand xsi:type="language_1:Distinct">
1393 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.47/@value/@quantifiedVariables.1"/>
1394 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.47/@value/@quantifiedVariables.2"/>
1395 </operand>
1396 </rightOperand>
1397 </expression>
1398 </value>
1399 </assertions>
1400 <assertions name="upperMultiplicity derived EStructuralFeature" annotations="//@annotations.48">
1401 <value xsi:type="language_1:Forall">
1402 <quantifiedVariables name="src">
1403 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/>
1404 </quantifiedVariables>
1405 <quantifiedVariables name="trg 1">
1406 <range xsi:type="language_1:BoolTypeReference"/>
1407 </quantifiedVariables>
1408 <quantifiedVariables name="trg 2">
1409 <range xsi:type="language_1:BoolTypeReference"/>
1410 </quantifiedVariables>
1411 <expression xsi:type="language_1:Impl">
1412 <leftOperand xsi:type="language_1:And">
1413 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.66">
1414 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.48/@value/@quantifiedVariables.0"/>
1415 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.48/@value/@quantifiedVariables.1"/>
1416 </operands>
1417 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.66">
1418 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.48/@value/@quantifiedVariables.0"/>
1419 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.48/@value/@quantifiedVariables.2"/>
1420 </operands>
1421 </leftOperand>
1422 <rightOperand xsi:type="language_1:Not">
1423 <operand xsi:type="language_1:Distinct">
1424 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.48/@value/@quantifiedVariables.1"/>
1425 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.48/@value/@quantifiedVariables.2"/>
1426 </operand>
1427 </rightOperand>
1428 </expression>
1429 </value>
1430 </assertions>
1431 <assertions name="upperMultiplicity ordered ETypedElement" annotations="//@annotations.49">
1432 <value xsi:type="language_1:Forall">
1433 <quantifiedVariables name="src">
1434 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.15"/>
1435 </quantifiedVariables>
1436 <quantifiedVariables name="trg 1">
1437 <range xsi:type="language_1:BoolTypeReference"/>
1438 </quantifiedVariables>
1439 <quantifiedVariables name="trg 2">
1440 <range xsi:type="language_1:BoolTypeReference"/>
1441 </quantifiedVariables>
1442 <expression xsi:type="language_1:Impl">
1443 <leftOperand xsi:type="language_1:And">
1444 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.67">
1445 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.49/@value/@quantifiedVariables.0"/>
1446 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.49/@value/@quantifiedVariables.1"/>
1447 </operands>
1448 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.67">
1449 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.49/@value/@quantifiedVariables.0"/>
1450 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.49/@value/@quantifiedVariables.2"/>
1451 </operands>
1452 </leftOperand>
1453 <rightOperand xsi:type="language_1:Not">
1454 <operand xsi:type="language_1:Distinct">
1455 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.49/@value/@quantifiedVariables.1"/>
1456 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.49/@value/@quantifiedVariables.2"/>
1457 </operand>
1458 </rightOperand>
1459 </expression>
1460 </value>
1461 </assertions>
1462 <assertions name="upperMultiplicity unique ETypedElement" annotations="//@annotations.50">
1463 <value xsi:type="language_1:Forall">
1464 <quantifiedVariables name="src">
1465 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.15"/>
1466 </quantifiedVariables>
1467 <quantifiedVariables name="trg 1">
1468 <range xsi:type="language_1:BoolTypeReference"/>
1469 </quantifiedVariables>
1470 <quantifiedVariables name="trg 2">
1471 <range xsi:type="language_1:BoolTypeReference"/>
1472 </quantifiedVariables>
1473 <expression xsi:type="language_1:Impl">
1474 <leftOperand xsi:type="language_1:And">
1475 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.68">
1476 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.50/@value/@quantifiedVariables.0"/>
1477 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.50/@value/@quantifiedVariables.1"/>
1478 </operands>
1479 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.68">
1480 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.50/@value/@quantifiedVariables.0"/>
1481 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.50/@value/@quantifiedVariables.2"/>
1482 </operands>
1483 </leftOperand>
1484 <rightOperand xsi:type="language_1:Not">
1485 <operand xsi:type="language_1:Distinct">
1486 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.50/@value/@quantifiedVariables.1"/>
1487 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.50/@value/@quantifiedVariables.2"/>
1488 </operand>
1489 </rightOperand>
1490 </expression>
1491 </value>
1492 </assertions>
1493 <assertions name="upperMultiplicity lowerBound ETypedElement" annotations="//@annotations.51">
1494 <value xsi:type="language_1:Forall">
1495 <quantifiedVariables name="src">
1496 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.15"/>
1497 </quantifiedVariables>
1498 <quantifiedVariables name="trg 1">
1499 <range xsi:type="language_1:IntTypeReference"/>
1500 </quantifiedVariables>
1501 <quantifiedVariables name="trg 2">
1502 <range xsi:type="language_1:IntTypeReference"/>
1503 </quantifiedVariables>
1504 <expression xsi:type="language_1:Impl">
1505 <leftOperand xsi:type="language_1:And">
1506 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.69">
1507 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.51/@value/@quantifiedVariables.0"/>
1508 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.51/@value/@quantifiedVariables.1"/>
1509 </operands>
1510 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.69">
1511 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.51/@value/@quantifiedVariables.0"/>
1512 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.51/@value/@quantifiedVariables.2"/>
1513 </operands>
1514 </leftOperand>
1515 <rightOperand xsi:type="language_1:Not">
1516 <operand xsi:type="language_1:Distinct">
1517 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.51/@value/@quantifiedVariables.1"/>
1518 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.51/@value/@quantifiedVariables.2"/>
1519 </operand>
1520 </rightOperand>
1521 </expression>
1522 </value>
1523 </assertions>
1524 <assertions name="upperMultiplicity upperBound ETypedElement" annotations="//@annotations.52">
1525 <value xsi:type="language_1:Forall">
1526 <quantifiedVariables name="src">
1527 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.15"/>
1528 </quantifiedVariables>
1529 <quantifiedVariables name="trg 1">
1530 <range xsi:type="language_1:IntTypeReference"/>
1531 </quantifiedVariables>
1532 <quantifiedVariables name="trg 2">
1533 <range xsi:type="language_1:IntTypeReference"/>
1534 </quantifiedVariables>
1535 <expression xsi:type="language_1:Impl">
1536 <leftOperand xsi:type="language_1:And">
1537 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.70">
1538 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.52/@value/@quantifiedVariables.0"/>
1539 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.52/@value/@quantifiedVariables.1"/>
1540 </operands>
1541 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.70">
1542 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.52/@value/@quantifiedVariables.0"/>
1543 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.52/@value/@quantifiedVariables.2"/>
1544 </operands>
1545 </leftOperand>
1546 <rightOperand xsi:type="language_1:Not">
1547 <operand xsi:type="language_1:Distinct">
1548 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.52/@value/@quantifiedVariables.1"/>
1549 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.52/@value/@quantifiedVariables.2"/>
1550 </operand>
1551 </rightOperand>
1552 </expression>
1553 </value>
1554 </assertions>
1555 <assertions name="upperMultiplicity many ETypedElement" annotations="//@annotations.53">
1556 <value xsi:type="language_1:Forall">
1557 <quantifiedVariables name="src">
1558 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.15"/>
1559 </quantifiedVariables>
1560 <quantifiedVariables name="trg 1">
1561 <range xsi:type="language_1:BoolTypeReference"/>
1562 </quantifiedVariables>
1563 <quantifiedVariables name="trg 2">
1564 <range xsi:type="language_1:BoolTypeReference"/>
1565 </quantifiedVariables>
1566 <expression xsi:type="language_1:Impl">
1567 <leftOperand xsi:type="language_1:And">
1568 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.71">
1569 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.53/@value/@quantifiedVariables.0"/>
1570 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.53/@value/@quantifiedVariables.1"/>
1571 </operands>
1572 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.71">
1573 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.53/@value/@quantifiedVariables.0"/>
1574 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.53/@value/@quantifiedVariables.2"/>
1575 </operands>
1576 </leftOperand>
1577 <rightOperand xsi:type="language_1:Not">
1578 <operand xsi:type="language_1:Distinct">
1579 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.53/@value/@quantifiedVariables.1"/>
1580 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.53/@value/@quantifiedVariables.2"/>
1581 </operand>
1582 </rightOperand>
1583 </expression>
1584 </value>
1585 </assertions>
1586 <assertions name="upperMultiplicity required ETypedElement" annotations="//@annotations.54">
1587 <value xsi:type="language_1:Forall">
1588 <quantifiedVariables name="src">
1589 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.15"/>
1590 </quantifiedVariables>
1591 <quantifiedVariables name="trg 1">
1592 <range xsi:type="language_1:BoolTypeReference"/>
1593 </quantifiedVariables>
1594 <quantifiedVariables name="trg 2">
1595 <range xsi:type="language_1:BoolTypeReference"/>
1596 </quantifiedVariables>
1597 <expression xsi:type="language_1:Impl">
1598 <leftOperand xsi:type="language_1:And">
1599 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.72">
1600 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.54/@value/@quantifiedVariables.0"/>
1601 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.54/@value/@quantifiedVariables.1"/>
1602 </operands>
1603 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.72">
1604 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.54/@value/@quantifiedVariables.0"/>
1605 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.54/@value/@quantifiedVariables.2"/>
1606 </operands>
1607 </leftOperand>
1608 <rightOperand xsi:type="language_1:Not">
1609 <operand xsi:type="language_1:Distinct">
1610 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.54/@value/@quantifiedVariables.1"/>
1611 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.54/@value/@quantifiedVariables.2"/>
1612 </operand>
1613 </rightOperand>
1614 </expression>
1615 </value>
1616 </assertions>
1617 <assertions name="upperMultiplicity key EStringToStringMapEntry" annotations="//@annotations.55">
1618 <value xsi:type="language_1:Forall">
1619 <quantifiedVariables name="src">
1620 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.16"/>
1621 </quantifiedVariables>
1622 <quantifiedVariables name="trg 1">
1623 <range xsi:type="language_1:StringTypeReference"/>
1624 </quantifiedVariables>
1625 <quantifiedVariables name="trg 2">
1626 <range xsi:type="language_1:StringTypeReference"/>
1627 </quantifiedVariables>
1628 <expression xsi:type="language_1:Impl">
1629 <leftOperand xsi:type="language_1:And">
1630 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.73">
1631 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.55/@value/@quantifiedVariables.0"/>
1632 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.55/@value/@quantifiedVariables.1"/>
1633 </operands>
1634 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.73">
1635 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.55/@value/@quantifiedVariables.0"/>
1636 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.55/@value/@quantifiedVariables.2"/>
1637 </operands>
1638 </leftOperand>
1639 <rightOperand xsi:type="language_1:Not">
1640 <operand xsi:type="language_1:Distinct">
1641 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.55/@value/@quantifiedVariables.1"/>
1642 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.55/@value/@quantifiedVariables.2"/>
1643 </operand>
1644 </rightOperand>
1645 </expression>
1646 </value>
1647 </assertions>
1648 <assertions name="upperMultiplicity value EStringToStringMapEntry" annotations="//@annotations.56">
1649 <value xsi:type="language_1:Forall">
1650 <quantifiedVariables name="src">
1651 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.16"/>
1652 </quantifiedVariables>
1653 <quantifiedVariables name="trg 1">
1654 <range xsi:type="language_1:StringTypeReference"/>
1655 </quantifiedVariables>
1656 <quantifiedVariables name="trg 2">
1657 <range xsi:type="language_1:StringTypeReference"/>
1658 </quantifiedVariables>
1659 <expression xsi:type="language_1:Impl">
1660 <leftOperand xsi:type="language_1:And">
1661 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.74">
1662 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.56/@value/@quantifiedVariables.0"/>
1663 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.56/@value/@quantifiedVariables.1"/>
1664 </operands> 482 </operands>
1665 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.74"> 483 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14">
1666 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.56/@value/@quantifiedVariables.0"/> 484 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.18/@value/@quantifiedVariables.0"/>
1667 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.56/@value/@quantifiedVariables.2"/> 485 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.18/@value/@quantifiedVariables.2"/>
1668 </operands> 486 </operands>
1669 </leftOperand> 487 </leftOperand>
1670 <rightOperand xsi:type="language_1:Not"> 488 <rightOperand xsi:type="language_1:Not">
1671 <operand xsi:type="language_1:Distinct"> 489 <operand xsi:type="language_1:Distinct">
1672 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.56/@value/@quantifiedVariables.1"/> 490 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.18/@value/@quantifiedVariables.1"/>
1673 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.56/@value/@quantifiedVariables.2"/> 491 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.18/@value/@quantifiedVariables.2"/>
1674 </operand> 492 </operand>
1675 </rightOperand> 493 </rightOperand>
1676 </expression> 494 </expression>
1677 </value> 495 </value>
1678 </assertions> 496 </assertions>
1679 <assertions name="PartialInterpretation name attribute ENamedElement" annotations="//@annotations.57"> 497 <relations xsi:type="language_1:RelationDeclaration" name="interface reference FunctionalElement">
1680 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.55">
1681 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.0"/>
1682 <parameterSubstitutions xsi:type="language_1:StringLiteral" value="packageName"/>
1683 </value>
1684 </assertions>
1685 <assertions name="PartialInterpretation nsURI attribute EPackage" annotations="//@annotations.58">
1686 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.56">
1687 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.0"/>
1688 <parameterSubstitutions xsi:type="language_1:StringLiteral" value="nsUri"/>
1689 </value>
1690 </assertions>
1691 <assertions name="PartialInterpretation nsPrefix attribute EPackage" annotations="//@annotations.59">
1692 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.57">
1693 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.0"/>
1694 <parameterSubstitutions xsi:type="language_1:StringLiteral" value="nsPrefix"/>
1695 </value>
1696 </assertions>
1697 <relations xsi:type="language_1:RelationDeclaration" name="eAttributeType reference EAttribute">
1698 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> 498 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
1699 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> 499 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1700 </relations>
1701 <relations xsi:type="language_1:RelationDeclaration" name="details reference EAnnotation">
1702 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
1703 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.16"/>
1704 </relations>
1705 <relations xsi:type="language_1:RelationDeclaration" name="eModelElement reference EAnnotation">
1706 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
1707 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/>
1708 </relations>
1709 <relations xsi:type="language_1:RelationDeclaration" name="contents reference EAnnotation">
1710 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
1711 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/>
1712 </relations> 500 </relations>
1713 <relations xsi:type="language_1:RelationDeclaration" name="references reference EAnnotation"> 501 <relations xsi:type="language_1:RelationDeclaration" name="model reference FunctionalElement">
502 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
1714 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> 503 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
1715 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/>
1716 </relations> 504 </relations>
1717 <relations xsi:type="language_1:RelationDeclaration" name="eSuperTypes reference EClass"> 505 <relations xsi:type="language_1:RelationDeclaration" name="parent reference FunctionalElement">
1718 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1719 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1720 </relations>
1721 <relations xsi:type="language_1:RelationDeclaration" name="eOperations reference EClass">
1722 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1723 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.10"/>
1724 </relations>
1725 <relations xsi:type="language_1:RelationDeclaration" name="eAllAttributes reference EClass">
1726 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1727 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> 506 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
1728 </relations>
1729 <relations xsi:type="language_1:RelationDeclaration" name="eAllReferences reference EClass">
1730 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> 507 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1731 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/>
1732 </relations> 508 </relations>
1733 <relations xsi:type="language_1:RelationDeclaration" name="eReferences reference EClass"> 509 <relations xsi:type="language_1:RelationDeclaration" name="rootElements reference FunctionalArchitectureModel">
1734 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> 510 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
1735 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/>
1736 </relations>
1737 <relations xsi:type="language_1:RelationDeclaration" name="eAttributes reference EClass">
1738 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1739 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> 511 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
1740 </relations> 512 </relations>
1741 <relations xsi:type="language_1:RelationDeclaration" name="eAllContainments reference EClass"> 513 <relations xsi:type="language_1:RelationDeclaration" name="subElements reference Function">
1742 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1743 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/>
1744 </relations>
1745 <relations xsi:type="language_1:RelationDeclaration" name="eAllOperations reference EClass">
1746 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1747 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.10"/>
1748 </relations>
1749 <relations xsi:type="language_1:RelationDeclaration" name="eAllStructuralFeatures reference EClass">
1750 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1751 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/>
1752 </relations>
1753 <relations xsi:type="language_1:RelationDeclaration" name="eAllSuperTypes reference EClass">
1754 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1755 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1756 </relations>
1757 <relations xsi:type="language_1:RelationDeclaration" name="eIDAttribute reference EClass">
1758 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> 514 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1759 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> 515 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
1760 </relations> 516 </relations>
1761 <relations xsi:type="language_1:RelationDeclaration" name="eStructuralFeatures reference EClass"> 517 <relations xsi:type="language_1:RelationDeclaration" name="data reference FAMTerminator">
1762 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1763 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/>
1764 </relations>
1765 <relations xsi:type="language_1:RelationDeclaration" name="eGenericSuperTypes reference EClass">
1766 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1767 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.17"/>
1768 </relations>
1769 <relations xsi:type="language_1:RelationDeclaration" name="eAllGenericSuperTypes reference EClass">
1770 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1771 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.17"/>
1772 </relations>
1773 <relations xsi:type="language_1:RelationDeclaration" name="ePackage reference EClassifier">
1774 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> 518 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
1775 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/> 519 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
1776 </relations> 520 </relations>
1777 <relations xsi:type="language_1:RelationDeclaration" name="eTypeParameters reference EClassifier"> 521 <relations xsi:type="language_1:RelationDeclaration" name="from reference InformationLink">
1778 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> 522 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
1779 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.18"/> 523 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/>
1780 </relations> 524 </relations>
1781 <relations xsi:type="language_1:RelationDeclaration" name="eLiterals reference EEnum"> 525 <relations xsi:type="language_1:RelationDeclaration" name="to reference InformationLink">
1782 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> 526 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
1783 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> 527 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
1784 </relations> 528 </relations>
1785 <relations xsi:type="language_1:RelationDeclaration" name="eEnum reference EEnumLiteral"> 529 <relations xsi:type="language_1:RelationDeclaration" name="data reference FunctionalInterface">
1786 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
1787 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> 530 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
531 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
1788 </relations> 532 </relations>
1789 <relations xsi:type="language_1:RelationDeclaration" name="eAnnotations reference EModelElement"> 533 <relations xsi:type="language_1:RelationDeclaration" name="element reference FunctionalInterface">
1790 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/> 534 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1791 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
1792 </relations>
1793 <relations xsi:type="language_1:RelationDeclaration" name="eContainingClass reference EOperation">
1794 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.10"/>
1795 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1796 </relations>
1797 <relations xsi:type="language_1:RelationDeclaration" name="eTypeParameters reference EOperation">
1798 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.10"/>
1799 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.18"/>
1800 </relations>
1801 <relations xsi:type="language_1:RelationDeclaration" name="eParameters reference EOperation">
1802 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.10"/>
1803 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.12"/>
1804 </relations>
1805 <relations xsi:type="language_1:RelationDeclaration" name="eExceptions reference EOperation">
1806 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.10"/>
1807 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
1808 </relations>
1809 <relations xsi:type="language_1:RelationDeclaration" name="eGenericExceptions reference EOperation">
1810 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.10"/>
1811 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.17"/>
1812 </relations>
1813 <relations xsi:type="language_1:RelationDeclaration" name="eClassifiers reference EPackage">
1814 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/>
1815 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
1816 </relations>
1817 <relations xsi:type="language_1:RelationDeclaration" name="eSubpackages reference EPackage">
1818 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/>
1819 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/>
1820 </relations>
1821 <relations xsi:type="language_1:RelationDeclaration" name="eSuperPackage reference EPackage">
1822 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/>
1823 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/>
1824 </relations>
1825 <relations xsi:type="language_1:RelationDeclaration" name="eOperation reference EParameter">
1826 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.12"/>
1827 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.10"/>
1828 </relations>
1829 <relations xsi:type="language_1:RelationDeclaration" name="eOpposite reference EReference">
1830 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/>
1831 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/>
1832 </relations>
1833 <relations xsi:type="language_1:RelationDeclaration" name="eReferenceType reference EReference">
1834 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/>
1835 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1836 </relations>
1837 <relations xsi:type="language_1:RelationDeclaration" name="eKeys reference EReference">
1838 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/>
1839 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
1840 </relations>
1841 <relations xsi:type="language_1:RelationDeclaration" name="eContainingClass reference EStructuralFeature">
1842 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/>
1843 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1844 </relations>
1845 <relations xsi:type="language_1:RelationDeclaration" name="eType reference ETypedElement">
1846 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.15"/>
1847 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
1848 </relations>
1849 <relations xsi:type="language_1:RelationDeclaration" name="eGenericType reference ETypedElement">
1850 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.15"/>
1851 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.17"/>
1852 </relations>
1853 <relations xsi:type="language_1:RelationDeclaration" name="eUpperBound reference EGenericType">
1854 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.17"/>
1855 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.17"/>
1856 </relations>
1857 <relations xsi:type="language_1:RelationDeclaration" name="eTypeArguments reference EGenericType">
1858 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.17"/>
1859 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.17"/>
1860 </relations>
1861 <relations xsi:type="language_1:RelationDeclaration" name="eRawType reference EGenericType">
1862 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.17"/>
1863 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
1864 </relations>
1865 <relations xsi:type="language_1:RelationDeclaration" name="eLowerBound reference EGenericType">
1866 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.17"/>
1867 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.17"/>
1868 </relations>
1869 <relations xsi:type="language_1:RelationDeclaration" name="eTypeParameter reference EGenericType">
1870 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.17"/>
1871 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.18"/>
1872 </relations>
1873 <relations xsi:type="language_1:RelationDeclaration" name="eClassifier reference EGenericType">
1874 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.17"/>
1875 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
1876 </relations>
1877 <relations xsi:type="language_1:RelationDeclaration" name="eBounds reference ETypeParameter">
1878 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.18"/>
1879 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.17"/>
1880 </relations>
1881 <relations xsi:type="language_1:RelationDeclaration" name="iD attribute EAttribute">
1882 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> 535 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
1883 <parameters xsi:type="language_1:BoolTypeReference"/>
1884 </relations>
1885 <relations xsi:type="language_1:RelationDeclaration" name="source attribute EAnnotation">
1886 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
1887 <parameters xsi:type="language_1:StringTypeReference"/>
1888 </relations>
1889 <relations xsi:type="language_1:RelationDeclaration" name="abstract attribute EClass">
1890 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1891 <parameters xsi:type="language_1:BoolTypeReference"/>
1892 </relations>
1893 <relations xsi:type="language_1:RelationDeclaration" name="interface attribute EClass">
1894 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1895 <parameters xsi:type="language_1:BoolTypeReference"/>
1896 </relations>
1897 <relations xsi:type="language_1:RelationDeclaration" name="instanceClassName attribute EClassifier">
1898 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
1899 <parameters xsi:type="language_1:StringTypeReference"/>
1900 </relations> 536 </relations>
1901 <relations xsi:type="language_1:RelationDeclaration" name="instanceTypeName attribute EClassifier"> 537 <relations xsi:type="language_1:RelationDeclaration" name="IncomingLinks reference FunctionalInput">
1902 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
1903 <parameters xsi:type="language_1:StringTypeReference"/>
1904 </relations>
1905 <relations xsi:type="language_1:RelationDeclaration" name="serializable attribute EDataType">
1906 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
1907 <parameters xsi:type="language_1:BoolTypeReference"/>
1908 </relations>
1909 <relations xsi:type="language_1:RelationDeclaration" name="value attribute EEnumLiteral">
1910 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> 538 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
1911 <parameters xsi:type="language_1:IntTypeReference"/> 539 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
1912 </relations> 540 </relations>
1913 <relations xsi:type="language_1:RelationDeclaration" name="literal attribute EEnumLiteral"> 541 <relations xsi:type="language_1:RelationDeclaration" name="outgoingLinks reference FunctionalOutput">
1914 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> 542 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/>
1915 <parameters xsi:type="language_1:StringTypeReference"/> 543 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
1916 </relations> 544 </relations>
1917 <relations xsi:type="language_1:RelationDeclaration" name="name attribute ENamedElement"> 545 <relations xsi:type="language_1:RelationDeclaration" name="terminator reference FunctionalData">
1918 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> 546 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
1919 <parameters xsi:type="language_1:StringTypeReference"/> 547 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
1920 </relations>
1921 <relations xsi:type="language_1:RelationDeclaration" name="nsURI attribute EPackage">
1922 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/>
1923 <parameters xsi:type="language_1:StringTypeReference"/>
1924 </relations>
1925 <relations xsi:type="language_1:RelationDeclaration" name="nsPrefix attribute EPackage">
1926 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/>
1927 <parameters xsi:type="language_1:StringTypeReference"/>
1928 </relations>
1929 <relations xsi:type="language_1:RelationDeclaration" name="containment attribute EReference">
1930 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/>
1931 <parameters xsi:type="language_1:BoolTypeReference"/>
1932 </relations>
1933 <relations xsi:type="language_1:RelationDeclaration" name="container attribute EReference">
1934 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/>
1935 <parameters xsi:type="language_1:BoolTypeReference"/>
1936 </relations>
1937 <relations xsi:type="language_1:RelationDeclaration" name="resolveProxies attribute EReference">
1938 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/>
1939 <parameters xsi:type="language_1:BoolTypeReference"/>
1940 </relations>
1941 <relations xsi:type="language_1:RelationDeclaration" name="changeable attribute EStructuralFeature">
1942 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/>
1943 <parameters xsi:type="language_1:BoolTypeReference"/>
1944 </relations>
1945 <relations xsi:type="language_1:RelationDeclaration" name="volatile attribute EStructuralFeature">
1946 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/>
1947 <parameters xsi:type="language_1:BoolTypeReference"/>
1948 </relations>
1949 <relations xsi:type="language_1:RelationDeclaration" name="transient attribute EStructuralFeature">
1950 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/>
1951 <parameters xsi:type="language_1:BoolTypeReference"/>
1952 </relations>
1953 <relations xsi:type="language_1:RelationDeclaration" name="defaultValueLiteral attribute EStructuralFeature">
1954 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/>
1955 <parameters xsi:type="language_1:StringTypeReference"/>
1956 </relations>
1957 <relations xsi:type="language_1:RelationDeclaration" name="unsettable attribute EStructuralFeature">
1958 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/>
1959 <parameters xsi:type="language_1:BoolTypeReference"/>
1960 </relations>
1961 <relations xsi:type="language_1:RelationDeclaration" name="derived attribute EStructuralFeature">
1962 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/>
1963 <parameters xsi:type="language_1:BoolTypeReference"/>
1964 </relations>
1965 <relations xsi:type="language_1:RelationDeclaration" name="ordered attribute ETypedElement">
1966 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.15"/>
1967 <parameters xsi:type="language_1:BoolTypeReference"/>
1968 </relations>
1969 <relations xsi:type="language_1:RelationDeclaration" name="unique attribute ETypedElement">
1970 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.15"/>
1971 <parameters xsi:type="language_1:BoolTypeReference"/>
1972 </relations>
1973 <relations xsi:type="language_1:RelationDeclaration" name="lowerBound attribute ETypedElement">
1974 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.15"/>
1975 <parameters xsi:type="language_1:IntTypeReference"/>
1976 </relations>
1977 <relations xsi:type="language_1:RelationDeclaration" name="upperBound attribute ETypedElement">
1978 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.15"/>
1979 <parameters xsi:type="language_1:IntTypeReference"/>
1980 </relations>
1981 <relations xsi:type="language_1:RelationDeclaration" name="many attribute ETypedElement">
1982 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.15"/>
1983 <parameters xsi:type="language_1:BoolTypeReference"/>
1984 </relations>
1985 <relations xsi:type="language_1:RelationDeclaration" name="required attribute ETypedElement">
1986 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.15"/>
1987 <parameters xsi:type="language_1:BoolTypeReference"/>
1988 </relations> 548 </relations>
1989 <relations xsi:type="language_1:RelationDeclaration" name="key attribute EStringToStringMapEntry"> 549 <relations xsi:type="language_1:RelationDeclaration" name="interface reference FunctionalData">
1990 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.16"/> 550 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
1991 <parameters xsi:type="language_1:StringTypeReference"/> 551 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1992 </relations> 552 </relations>
1993 <relations xsi:type="language_1:RelationDeclaration" name="value attribute EStringToStringMapEntry"> 553 <relations xsi:type="language_1:RelationDeclaration" name="type attribute Function">
1994 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.16"/> 554 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1995 <parameters xsi:type="language_1:StringTypeReference"/> 555 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/>
1996 </relations> 556 </relations>
1997 <elements name="o 1" definedInType="//@types.19 //@types.21 //@types.23"/> 557 <elements name="Root literal FunctionType" definedInType="//@types.9"/>
1998 <containmentHierarchies typesOrderedInHierarchy="//@types.10 //@types.8 //@types.16 //@types.6 //@types.17 //@types.9 //@types.0 //@types.11 //@types.12 //@types.4 //@types.3 //@types.14 //@types.7 //@types.1 //@types.18 //@types.13 //@types.5 //@types.15 //@types.2 //@types.19 //@types.20 //@types.21 //@types.22 //@types.23 //@types.24" containmentRelations="//@relations.1 //@relations.3 //@relations.6 //@relations.16 //@relations.17 //@relations.20 //@relations.21 //@relations.23 //@relations.25 //@relations.26 //@relations.28 //@relations.29 //@relations.30 //@relations.38 //@relations.39 //@relations.40 //@relations.42 //@relations.45"/> 558 <elements name="Intermediate literal FunctionType" definedInType="//@types.9"/>
1999 <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.0" relation="//@relations.0" lower="1"/> 559 <elements name="Leaf literal FunctionType" definedInType="//@types.9"/>
2000 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.1" relation="//@relations.0" upper="1"/> 560 <containmentHierarchies typesOrderedInHierarchy="//@types.5 //@types.4 //@types.0 //@types.3 //@types.1 //@types.6 //@types.2 //@types.7 //@types.8" containmentRelations="//@relations.0 //@relations.3 //@relations.4 //@relations.8 //@relations.11 //@relations.12"/>
2001 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.2" relation="//@relations.2" upper="1"/> 561 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.0" relation="//@relations.0" upper="1"/>
2002 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.3" relation="//@relations.15" upper="1"/> 562 <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.1" relation="//@relations.1" lower="1"/>
2003 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.4" relation="//@relations.19" upper="1"/> 563 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.2" relation="//@relations.1" upper="1"/>
2004 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.5" relation="//@relations.22" upper="1"/> 564 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.3" relation="//@relations.2" upper="1"/>
2005 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.6" relation="//@relations.24" upper="1"/> 565 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.4" relation="//@relations.5" upper="1"/>
2006 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.7" relation="//@relations.31" upper="1"/> 566 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.5" relation="//@relations.6" upper="1"/>
2007 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.8" relation="//@relations.32" upper="1"/> 567 <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.6" relation="//@relations.7" lower="1"/>
2008 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.9" relation="//@relations.33" upper="1"/> 568 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.7" relation="//@relations.7" upper="1"/>
2009 <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.10" relation="//@relations.34" lower="1"/> 569 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.8" relation="//@relations.9" upper="1"/>
2010 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.11" relation="//@relations.34" upper="1"/> 570 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.9" relation="//@relations.12" upper="1"/>
2011 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.12" relation="//@relations.36" upper="1"/> 571 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.10" relation="//@relations.13" upper="1"/>
2012 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.13" relation="//@relations.37" upper="1"/> 572 <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.11" inverseA="//@relations.0" inverseB="//@relations.9"/>
2013 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.14" relation="//@relations.38" upper="1"/> 573 <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.12" inverseA="//@relations.2" inverseB="//@relations.4"/>
2014 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.15" relation="//@relations.39" upper="1"/> 574 <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.13" inverseA="//@relations.5" inverseB="//@relations.12"/>
2015 <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.16" relation="//@relations.41" lower="1"/> 575 <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.14" inverseA="//@relations.6" inverseB="//@relations.11"/>
2016 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.17" relation="//@relations.41" upper="1"/> 576 <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.15" inverseA="//@relations.7" inverseB="//@relations.10"/>
2017 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.18" relation="//@relations.42" upper="1"/> 577 <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.16" inverseA="//@relations.8" inverseB="//@relations.13"/>
2018 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.19" relation="//@relations.43" upper="1"/> 578 <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.17" relation="//@relations.14" lower="1"/>
2019 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.20" relation="//@relations.44" upper="1"/> 579 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.18" relation="//@relations.14" upper="1"/>
2020 <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.21" inverseA="//@relations.2" inverseB="//@relations.23"/>
2021 <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.22" inverseA="//@relations.6" inverseB="//@relations.24"/>
2022 <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.23" inverseA="//@relations.16" inverseB="//@relations.36"/>
2023 <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.24" inverseA="//@relations.19" inverseB="//@relations.29"/>
2024 <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.25" inverseA="//@relations.21" inverseB="//@relations.22"/>
2025 <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.26" inverseA="//@relations.26" inverseB="//@relations.32"/>
2026 <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.27" inverseA="//@relations.30" inverseB="//@relations.31"/>
2027 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.28" relation="//@relations.46" upper="1"/>
2028 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.29" relation="//@relations.47" upper="1"/>
2029 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.30" relation="//@relations.48" upper="1"/>
2030 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.31" relation="//@relations.49" upper="1"/>
2031 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.32" relation="//@relations.50" upper="1"/>
2032 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.33" relation="//@relations.51" upper="1"/>
2033 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.34" relation="//@relations.52" upper="1"/>
2034 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.35" relation="//@relations.53" upper="1"/>
2035 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.36" relation="//@relations.54" upper="1"/>
2036 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.37" relation="//@relations.55" upper="1"/>
2037 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.38" relation="//@relations.56" upper="1"/>
2038 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.39" relation="//@relations.57" upper="1"/>
2039 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.40" relation="//@relations.58" upper="1"/>
2040 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.41" relation="//@relations.59" upper="1"/>
2041 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.42" relation="//@relations.60" upper="1"/>
2042 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.43" relation="//@relations.61" upper="1"/>
2043 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.44" relation="//@relations.62" upper="1"/>
2044 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.45" relation="//@relations.63" upper="1"/>
2045 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.46" relation="//@relations.64" upper="1"/>
2046 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.47" relation="//@relations.65" upper="1"/>
2047 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.48" relation="//@relations.66" upper="1"/>
2048 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.49" relation="//@relations.67" upper="1"/>
2049 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.50" relation="//@relations.68" upper="1"/>
2050 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.51" relation="//@relations.69" upper="1"/>
2051 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.52" relation="//@relations.70" upper="1"/>
2052 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.53" relation="//@relations.71" upper="1"/>
2053 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.54" relation="//@relations.72" upper="1"/>
2054 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.55" relation="//@relations.73" upper="1"/>
2055 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.56" relation="//@relations.74" upper="1"/>
2056 <annotations xsi:type="partial2logicannotations:PartialModelRelation2Assertion" target="//@assertions.57" targetRelation="//@relations.55"/>
2057 <annotations xsi:type="partial2logicannotations:PartialModelRelation2Assertion" target="//@assertions.58" targetRelation="//@relations.56"/>
2058 <annotations xsi:type="partial2logicannotations:PartialModelRelation2Assertion" target="//@assertions.59" targetRelation="//@relations.57"/>
2059</language:LogicProblem> 580</language:LogicProblem>
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/debug/init.partialmodel b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/debug/init.partialmodel
index 985e7346..55020b90 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/debug/init.partialmodel
+++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/debug/init.partialmodel
@@ -1,5 +1,5 @@
1<?xml version="1.0" encoding="ASCII"?> 1<?xml version="1.0" encoding="ASCII"?>
2<partialinterpretation:PartialInterpretation xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:language="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language" xmlns:partialinterpretation="http://www.bme.hu/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage" minNewElements="5" maxNewElements="5"> 2<partialinterpretation:PartialInterpretation xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:language="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language" xmlns:partialinterpretation="http://www.bme.hu/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage" minNewElements="7" maxNewElements="7">
3 <problem href="generation.logicproblem#/"/> 3 <problem href="generation.logicproblem#/"/>
4 <partialrelationinterpretation> 4 <partialrelationinterpretation>
5 <interpretationOf href="generation.logicproblem#//@relations.0"/> 5 <interpretationOf href="generation.logicproblem#//@relations.0"/>
@@ -76,398 +76,39 @@
76 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.14/@parameters.0"/> 76 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.14/@parameters.0"/>
77 <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.14/@parameters.1"/> 77 <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.14/@parameters.1"/>
78 </partialrelationinterpretation> 78 </partialrelationinterpretation>
79 <partialrelationinterpretation>
80 <interpretationOf href="generation.logicproblem#//@relations.15"/>
81 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.15/@parameters.0"/>
82 <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.15/@parameters.1"/>
83 </partialrelationinterpretation>
84 <partialrelationinterpretation>
85 <interpretationOf href="generation.logicproblem#//@relations.16"/>
86 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.16/@parameters.0"/>
87 <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.16/@parameters.1"/>
88 </partialrelationinterpretation>
89 <partialrelationinterpretation>
90 <interpretationOf href="generation.logicproblem#//@relations.17"/>
91 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.17/@parameters.0"/>
92 <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.17/@parameters.1"/>
93 </partialrelationinterpretation>
94 <partialrelationinterpretation>
95 <interpretationOf href="generation.logicproblem#//@relations.18"/>
96 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.18/@parameters.0"/>
97 <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.18/@parameters.1"/>
98 </partialrelationinterpretation>
99 <partialrelationinterpretation>
100 <interpretationOf href="generation.logicproblem#//@relations.19"/>
101 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.19/@parameters.0"/>
102 <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.19/@parameters.1"/>
103 </partialrelationinterpretation>
104 <partialrelationinterpretation>
105 <interpretationOf href="generation.logicproblem#//@relations.20"/>
106 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.20/@parameters.0"/>
107 <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.20/@parameters.1"/>
108 </partialrelationinterpretation>
109 <partialrelationinterpretation>
110 <interpretationOf href="generation.logicproblem#//@relations.21"/>
111 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.21/@parameters.0"/>
112 <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.21/@parameters.1"/>
113 </partialrelationinterpretation>
114 <partialrelationinterpretation>
115 <interpretationOf href="generation.logicproblem#//@relations.22"/>
116 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.22/@parameters.0"/>
117 <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.22/@parameters.1"/>
118 </partialrelationinterpretation>
119 <partialrelationinterpretation>
120 <interpretationOf href="generation.logicproblem#//@relations.23"/>
121 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.23/@parameters.0"/>
122 <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.23/@parameters.1"/>
123 </partialrelationinterpretation>
124 <partialrelationinterpretation>
125 <interpretationOf href="generation.logicproblem#//@relations.24"/>
126 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.24/@parameters.0"/>
127 <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.24/@parameters.1"/>
128 </partialrelationinterpretation>
129 <partialrelationinterpretation>
130 <interpretationOf href="generation.logicproblem#//@relations.25"/>
131 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.25/@parameters.0"/>
132 <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.25/@parameters.1"/>
133 </partialrelationinterpretation>
134 <partialrelationinterpretation>
135 <interpretationOf href="generation.logicproblem#//@relations.26"/>
136 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.26/@parameters.0"/>
137 <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.26/@parameters.1"/>
138 </partialrelationinterpretation>
139 <partialrelationinterpretation>
140 <interpretationOf href="generation.logicproblem#//@relations.27"/>
141 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.27/@parameters.0"/>
142 <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.27/@parameters.1"/>
143 </partialrelationinterpretation>
144 <partialrelationinterpretation>
145 <interpretationOf href="generation.logicproblem#//@relations.28"/>
146 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.28/@parameters.0"/>
147 <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.28/@parameters.1"/>
148 </partialrelationinterpretation>
149 <partialrelationinterpretation>
150 <interpretationOf href="generation.logicproblem#//@relations.29"/>
151 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.29/@parameters.0"/>
152 <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.29/@parameters.1"/>
153 </partialrelationinterpretation>
154 <partialrelationinterpretation>
155 <interpretationOf href="generation.logicproblem#//@relations.30"/>
156 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.30/@parameters.0"/>
157 <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.30/@parameters.1"/>
158 </partialrelationinterpretation>
159 <partialrelationinterpretation>
160 <interpretationOf href="generation.logicproblem#//@relations.31"/>
161 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.31/@parameters.0"/>
162 <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.31/@parameters.1"/>
163 </partialrelationinterpretation>
164 <partialrelationinterpretation>
165 <interpretationOf href="generation.logicproblem#//@relations.32"/>
166 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.32/@parameters.0"/>
167 <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.32/@parameters.1"/>
168 </partialrelationinterpretation>
169 <partialrelationinterpretation>
170 <interpretationOf href="generation.logicproblem#//@relations.33"/>
171 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.33/@parameters.0"/>
172 <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.33/@parameters.1"/>
173 </partialrelationinterpretation>
174 <partialrelationinterpretation>
175 <interpretationOf href="generation.logicproblem#//@relations.34"/>
176 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.34/@parameters.0"/>
177 <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.34/@parameters.1"/>
178 </partialrelationinterpretation>
179 <partialrelationinterpretation>
180 <interpretationOf href="generation.logicproblem#//@relations.35"/>
181 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.35/@parameters.0"/>
182 <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.35/@parameters.1"/>
183 </partialrelationinterpretation>
184 <partialrelationinterpretation>
185 <interpretationOf href="generation.logicproblem#//@relations.36"/>
186 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.36/@parameters.0"/>
187 <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.36/@parameters.1"/>
188 </partialrelationinterpretation>
189 <partialrelationinterpretation>
190 <interpretationOf href="generation.logicproblem#//@relations.37"/>
191 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.37/@parameters.0"/>
192 <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.37/@parameters.1"/>
193 </partialrelationinterpretation>
194 <partialrelationinterpretation>
195 <interpretationOf href="generation.logicproblem#//@relations.38"/>
196 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.38/@parameters.0"/>
197 <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.38/@parameters.1"/>
198 </partialrelationinterpretation>
199 <partialrelationinterpretation>
200 <interpretationOf href="generation.logicproblem#//@relations.39"/>
201 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.39/@parameters.0"/>
202 <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.39/@parameters.1"/>
203 </partialrelationinterpretation>
204 <partialrelationinterpretation>
205 <interpretationOf href="generation.logicproblem#//@relations.40"/>
206 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.40/@parameters.0"/>
207 <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.40/@parameters.1"/>
208 </partialrelationinterpretation>
209 <partialrelationinterpretation>
210 <interpretationOf href="generation.logicproblem#//@relations.41"/>
211 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.41/@parameters.0"/>
212 <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.41/@parameters.1"/>
213 </partialrelationinterpretation>
214 <partialrelationinterpretation>
215 <interpretationOf href="generation.logicproblem#//@relations.42"/>
216 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.42/@parameters.0"/>
217 <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.42/@parameters.1"/>
218 </partialrelationinterpretation>
219 <partialrelationinterpretation>
220 <interpretationOf href="generation.logicproblem#//@relations.43"/>
221 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.43/@parameters.0"/>
222 <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.43/@parameters.1"/>
223 </partialrelationinterpretation>
224 <partialrelationinterpretation>
225 <interpretationOf href="generation.logicproblem#//@relations.44"/>
226 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.44/@parameters.0"/>
227 <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.44/@parameters.1"/>
228 </partialrelationinterpretation>
229 <partialrelationinterpretation>
230 <interpretationOf href="generation.logicproblem#//@relations.45"/>
231 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.45/@parameters.0"/>
232 <param2 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.45/@parameters.1"/>
233 </partialrelationinterpretation>
234 <partialrelationinterpretation>
235 <interpretationOf href="generation.logicproblem#//@relations.46"/>
236 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.46/@parameters.0"/>
237 <param2 xsi:type="language:BoolTypeReference" href="generation.logicproblem#//@relations.46/@parameters.1"/>
238 </partialrelationinterpretation>
239 <partialrelationinterpretation>
240 <interpretationOf href="generation.logicproblem#//@relations.47"/>
241 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.47/@parameters.0"/>
242 <param2 xsi:type="language:StringTypeReference" href="generation.logicproblem#//@relations.47/@parameters.1"/>
243 </partialrelationinterpretation>
244 <partialrelationinterpretation>
245 <interpretationOf href="generation.logicproblem#//@relations.48"/>
246 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.48/@parameters.0"/>
247 <param2 xsi:type="language:BoolTypeReference" href="generation.logicproblem#//@relations.48/@parameters.1"/>
248 </partialrelationinterpretation>
249 <partialrelationinterpretation>
250 <interpretationOf href="generation.logicproblem#//@relations.49"/>
251 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.49/@parameters.0"/>
252 <param2 xsi:type="language:BoolTypeReference" href="generation.logicproblem#//@relations.49/@parameters.1"/>
253 </partialrelationinterpretation>
254 <partialrelationinterpretation>
255 <interpretationOf href="generation.logicproblem#//@relations.50"/>
256 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.50/@parameters.0"/>
257 <param2 xsi:type="language:StringTypeReference" href="generation.logicproblem#//@relations.50/@parameters.1"/>
258 </partialrelationinterpretation>
259 <partialrelationinterpretation>
260 <interpretationOf href="generation.logicproblem#//@relations.51"/>
261 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.51/@parameters.0"/>
262 <param2 xsi:type="language:StringTypeReference" href="generation.logicproblem#//@relations.51/@parameters.1"/>
263 </partialrelationinterpretation>
264 <partialrelationinterpretation>
265 <interpretationOf href="generation.logicproblem#//@relations.52"/>
266 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.52/@parameters.0"/>
267 <param2 xsi:type="language:BoolTypeReference" href="generation.logicproblem#//@relations.52/@parameters.1"/>
268 </partialrelationinterpretation>
269 <partialrelationinterpretation>
270 <interpretationOf href="generation.logicproblem#//@relations.53"/>
271 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.53/@parameters.0"/>
272 <param2 xsi:type="language:IntTypeReference" href="generation.logicproblem#//@relations.53/@parameters.1"/>
273 </partialrelationinterpretation>
274 <partialrelationinterpretation>
275 <interpretationOf href="generation.logicproblem#//@relations.54"/>
276 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.54/@parameters.0"/>
277 <param2 xsi:type="language:StringTypeReference" href="generation.logicproblem#//@relations.54/@parameters.1"/>
278 </partialrelationinterpretation>
279 <partialrelationinterpretation>
280 <interpretationOf href="generation.logicproblem#//@relations.55"/>
281 <relationlinks xsi:type="partialinterpretation:BinaryElementRelationLink" param2="//@newElements.9">
282 <param1 href="generation.logicproblem#//@elements.0"/>
283 </relationlinks>
284 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.55/@parameters.0"/>
285 <param2 xsi:type="language:StringTypeReference" href="generation.logicproblem#//@relations.55/@parameters.1"/>
286 </partialrelationinterpretation>
287 <partialrelationinterpretation>
288 <interpretationOf href="generation.logicproblem#//@relations.56"/>
289 <relationlinks xsi:type="partialinterpretation:BinaryElementRelationLink" param2="//@newElements.8">
290 <param1 href="generation.logicproblem#//@elements.0"/>
291 </relationlinks>
292 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.56/@parameters.0"/>
293 <param2 xsi:type="language:StringTypeReference" href="generation.logicproblem#//@relations.56/@parameters.1"/>
294 </partialrelationinterpretation>
295 <partialrelationinterpretation>
296 <interpretationOf href="generation.logicproblem#//@relations.57"/>
297 <relationlinks xsi:type="partialinterpretation:BinaryElementRelationLink" param2="//@newElements.7">
298 <param1 href="generation.logicproblem#//@elements.0"/>
299 </relationlinks>
300 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.57/@parameters.0"/>
301 <param2 xsi:type="language:StringTypeReference" href="generation.logicproblem#//@relations.57/@parameters.1"/>
302 </partialrelationinterpretation>
303 <partialrelationinterpretation>
304 <interpretationOf href="generation.logicproblem#//@relations.58"/>
305 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.58/@parameters.0"/>
306 <param2 xsi:type="language:BoolTypeReference" href="generation.logicproblem#//@relations.58/@parameters.1"/>
307 </partialrelationinterpretation>
308 <partialrelationinterpretation>
309 <interpretationOf href="generation.logicproblem#//@relations.59"/>
310 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.59/@parameters.0"/>
311 <param2 xsi:type="language:BoolTypeReference" href="generation.logicproblem#//@relations.59/@parameters.1"/>
312 </partialrelationinterpretation>
313 <partialrelationinterpretation>
314 <interpretationOf href="generation.logicproblem#//@relations.60"/>
315 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.60/@parameters.0"/>
316 <param2 xsi:type="language:BoolTypeReference" href="generation.logicproblem#//@relations.60/@parameters.1"/>
317 </partialrelationinterpretation>
318 <partialrelationinterpretation>
319 <interpretationOf href="generation.logicproblem#//@relations.61"/>
320 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.61/@parameters.0"/>
321 <param2 xsi:type="language:BoolTypeReference" href="generation.logicproblem#//@relations.61/@parameters.1"/>
322 </partialrelationinterpretation>
323 <partialrelationinterpretation>
324 <interpretationOf href="generation.logicproblem#//@relations.62"/>
325 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.62/@parameters.0"/>
326 <param2 xsi:type="language:BoolTypeReference" href="generation.logicproblem#//@relations.62/@parameters.1"/>
327 </partialrelationinterpretation>
328 <partialrelationinterpretation>
329 <interpretationOf href="generation.logicproblem#//@relations.63"/>
330 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.63/@parameters.0"/>
331 <param2 xsi:type="language:BoolTypeReference" href="generation.logicproblem#//@relations.63/@parameters.1"/>
332 </partialrelationinterpretation>
333 <partialrelationinterpretation>
334 <interpretationOf href="generation.logicproblem#//@relations.64"/>
335 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.64/@parameters.0"/>
336 <param2 xsi:type="language:StringTypeReference" href="generation.logicproblem#//@relations.64/@parameters.1"/>
337 </partialrelationinterpretation>
338 <partialrelationinterpretation>
339 <interpretationOf href="generation.logicproblem#//@relations.65"/>
340 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.65/@parameters.0"/>
341 <param2 xsi:type="language:BoolTypeReference" href="generation.logicproblem#//@relations.65/@parameters.1"/>
342 </partialrelationinterpretation>
343 <partialrelationinterpretation>
344 <interpretationOf href="generation.logicproblem#//@relations.66"/>
345 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.66/@parameters.0"/>
346 <param2 xsi:type="language:BoolTypeReference" href="generation.logicproblem#//@relations.66/@parameters.1"/>
347 </partialrelationinterpretation>
348 <partialrelationinterpretation>
349 <interpretationOf href="generation.logicproblem#//@relations.67"/>
350 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.67/@parameters.0"/>
351 <param2 xsi:type="language:BoolTypeReference" href="generation.logicproblem#//@relations.67/@parameters.1"/>
352 </partialrelationinterpretation>
353 <partialrelationinterpretation>
354 <interpretationOf href="generation.logicproblem#//@relations.68"/>
355 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.68/@parameters.0"/>
356 <param2 xsi:type="language:BoolTypeReference" href="generation.logicproblem#//@relations.68/@parameters.1"/>
357 </partialrelationinterpretation>
358 <partialrelationinterpretation>
359 <interpretationOf href="generation.logicproblem#//@relations.69"/>
360 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.69/@parameters.0"/>
361 <param2 xsi:type="language:IntTypeReference" href="generation.logicproblem#//@relations.69/@parameters.1"/>
362 </partialrelationinterpretation>
363 <partialrelationinterpretation>
364 <interpretationOf href="generation.logicproblem#//@relations.70"/>
365 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.70/@parameters.0"/>
366 <param2 xsi:type="language:IntTypeReference" href="generation.logicproblem#//@relations.70/@parameters.1"/>
367 </partialrelationinterpretation>
368 <partialrelationinterpretation>
369 <interpretationOf href="generation.logicproblem#//@relations.71"/>
370 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.71/@parameters.0"/>
371 <param2 xsi:type="language:BoolTypeReference" href="generation.logicproblem#//@relations.71/@parameters.1"/>
372 </partialrelationinterpretation>
373 <partialrelationinterpretation>
374 <interpretationOf href="generation.logicproblem#//@relations.72"/>
375 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.72/@parameters.0"/>
376 <param2 xsi:type="language:BoolTypeReference" href="generation.logicproblem#//@relations.72/@parameters.1"/>
377 </partialrelationinterpretation>
378 <partialrelationinterpretation>
379 <interpretationOf href="generation.logicproblem#//@relations.73"/>
380 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.73/@parameters.0"/>
381 <param2 xsi:type="language:StringTypeReference" href="generation.logicproblem#//@relations.73/@parameters.1"/>
382 </partialrelationinterpretation>
383 <partialrelationinterpretation>
384 <interpretationOf href="generation.logicproblem#//@relations.74"/>
385 <param1 xsi:type="language:ComplexTypeReference" href="generation.logicproblem#//@relations.74/@parameters.0"/>
386 <param2 xsi:type="language:StringTypeReference" href="generation.logicproblem#//@relations.74/@parameters.1"/>
387 </partialrelationinterpretation>
388 <newElements xsi:type="partialinterpretation:BooleanElement" name="true" valueSet="true" value="true"/> 79 <newElements xsi:type="partialinterpretation:BooleanElement" name="true" valueSet="true" value="true"/>
389 <newElements xsi:type="partialinterpretation:BooleanElement" name="false" valueSet="true"/> 80 <newElements xsi:type="partialinterpretation:BooleanElement" name="false" valueSet="true"/>
390 <newElements xsi:type="partialinterpretation:IntegerElement" name="-1" valueSet="true" value="-1"/>
391 <newElements xsi:type="partialinterpretation:IntegerElement" name="0" valueSet="true"/>
392 <newElements xsi:type="partialinterpretation:IntegerElement" name="1" valueSet="true" value="1"/>
393 <newElements xsi:type="partialinterpretation:StringElement" name="&quot;A&quot;" valueSet="true" value="A"/>
394 <newElements xsi:type="partialinterpretation:StringElement" name="&quot;B&quot;" valueSet="true" value="B"/>
395 <newElements xsi:type="partialinterpretation:StringElement" name="&quot;nsPrefix&quot;" valueSet="true" value="nsPrefix"/>
396 <newElements xsi:type="partialinterpretation:StringElement" name="&quot;nsUri&quot;" valueSet="true" value="nsUri"/>
397 <newElements xsi:type="partialinterpretation:StringElement" name="&quot;packageName&quot;" valueSet="true" value="packageName"/>
398 <partialtypeinterpratation xsi:type="partialinterpretation:PartialBooleanInterpretation" elements="//@newElements.0 //@newElements.1"/> 81 <partialtypeinterpratation xsi:type="partialinterpretation:PartialBooleanInterpretation" elements="//@newElements.0 //@newElements.1"/>
399 <partialtypeinterpratation xsi:type="partialinterpretation:PartialIntegerInterpretation" elements="//@newElements.2 //@newElements.3 //@newElements.4 //@openWorldElements.0"/> 82 <partialtypeinterpratation xsi:type="partialinterpretation:PartialIntegerInterpretation" elements="//@openWorldElements.0"/>
400 <partialtypeinterpratation xsi:type="partialinterpretation:PartialRealInterpretation" elements="//@openWorldElements.1"/> 83 <partialtypeinterpratation xsi:type="partialinterpretation:PartialRealInterpretation" elements="//@openWorldElements.1"/>
401 <partialtypeinterpratation xsi:type="partialinterpretation:PartialStringInterpretation" elements="//@newElements.5 //@newElements.6 //@newElements.7 //@newElements.8 //@newElements.9 //@openWorldElements.2"/> 84 <partialtypeinterpratation xsi:type="partialinterpretation:PartialStringInterpretation" elements="//@openWorldElements.2"/>
402 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.0" supertypeInterpretation="//@partialtypeinterpratation.18 //@partialtypeinterpratation.19 //@partialtypeinterpratation.12 //@partialtypeinterpratation.11 //@partialtypeinterpratation.24 //@partialtypeinterpratation.23"> 85 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.0">
403 <interpretationOf href="generation.logicproblem#//@types.0"/> 86 <interpretationOf href="generation.logicproblem#//@types.0"/>
404 </partialtypeinterpratation> 87 </partialtypeinterpratation>
405 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.1" supertypeInterpretation="//@partialtypeinterpratation.11 //@partialtypeinterpratation.23"> 88 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.1">
406 <interpretationOf href="generation.logicproblem#//@types.1"/> 89 <interpretationOf href="generation.logicproblem#//@types.1"/>
407 </partialtypeinterpratation> 90 </partialtypeinterpratation>
408 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.2" supertypeInterpretation="//@partialtypeinterpratation.7 //@partialtypeinterpratation.12 //@partialtypeinterpratation.11 //@partialtypeinterpratation.24 //@partialtypeinterpratation.23"> 91 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.2" supertypeInterpretation="//@partialtypeinterpratation.4">
409 <interpretationOf href="generation.logicproblem#//@types.2"/> 92 <interpretationOf href="generation.logicproblem#//@types.2"/>
410 </partialtypeinterpratation> 93 </partialtypeinterpratation>
411 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.3" supertypeInterpretation="//@partialtypeinterpratation.12 //@partialtypeinterpratation.11 //@partialtypeinterpratation.24 //@partialtypeinterpratation.23"> 94 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.3">
412 <interpretationOf href="generation.logicproblem#//@types.3"/> 95 <interpretationOf href="generation.logicproblem#//@types.3"/>
413 </partialtypeinterpratation> 96 </partialtypeinterpratation>
414 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.4" supertypeInterpretation="//@partialtypeinterpratation.7 //@partialtypeinterpratation.12 //@partialtypeinterpratation.11 //@partialtypeinterpratation.24 //@partialtypeinterpratation.23"> 97 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.4">
415 <interpretationOf href="generation.logicproblem#//@types.4"/> 98 <interpretationOf href="generation.logicproblem#//@types.4"/>
416 </partialtypeinterpratation> 99 </partialtypeinterpratation>
417 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.5" supertypeInterpretation="//@partialtypeinterpratation.8 //@partialtypeinterpratation.7 //@partialtypeinterpratation.12 //@partialtypeinterpratation.11 //@partialtypeinterpratation.24 //@partialtypeinterpratation.23"> 100 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.5">
418 <interpretationOf href="generation.logicproblem#//@types.5"/> 101 <interpretationOf href="generation.logicproblem#//@types.5"/>
419 </partialtypeinterpratation> 102 </partialtypeinterpratation>
420 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.6" supertypeInterpretation="//@partialtypeinterpratation.12 //@partialtypeinterpratation.11 //@partialtypeinterpratation.24 //@partialtypeinterpratation.23"> 103 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.6" supertypeInterpretation="//@partialtypeinterpratation.12">
421 <interpretationOf href="generation.logicproblem#//@types.6"/> 104 <interpretationOf href="generation.logicproblem#//@types.6"/>
422 </partialtypeinterpratation> 105 </partialtypeinterpratation>
423 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.7"> 106 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.7" supertypeInterpretation="//@partialtypeinterpratation.12">
424 <elements href="generation.logicproblem#//@elements.0"/>
425 <interpretationOf href="generation.logicproblem#//@types.7"/> 107 <interpretationOf href="generation.logicproblem#//@types.7"/>
426 </partialtypeinterpratation> 108 </partialtypeinterpratation>
427 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.8" supertypeInterpretation="//@partialtypeinterpratation.11"> 109 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.8">
428 <elements href="generation.logicproblem#//@elements.0"/>
429 <interpretationOf href="generation.logicproblem#//@types.8"/> 110 <interpretationOf href="generation.logicproblem#//@types.8"/>
430 </partialtypeinterpratation> 111 </partialtypeinterpratation>
431 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.9">
432 <interpretationOf href="generation.logicproblem#//@types.9"/>
433 </partialtypeinterpratation>
434 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.10" supertypeInterpretation="//@partialtypeinterpratation.19 //@partialtypeinterpratation.12 //@partialtypeinterpratation.11 //@partialtypeinterpratation.24 //@partialtypeinterpratation.23">
435 <interpretationOf href="generation.logicproblem#//@types.10"/>
436 </partialtypeinterpratation>
437 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.11" supertypeInterpretation="//@partialtypeinterpratation.12 //@partialtypeinterpratation.11">
438 <elements href="generation.logicproblem#//@elements.0"/>
439 <interpretationOf href="generation.logicproblem#//@types.11"/>
440 </partialtypeinterpratation>
441 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.12" supertypeInterpretation="//@partialtypeinterpratation.19 //@partialtypeinterpratation.12 //@partialtypeinterpratation.11 //@partialtypeinterpratation.24 //@partialtypeinterpratation.23">
442 <interpretationOf href="generation.logicproblem#//@types.12"/>
443 </partialtypeinterpratation>
444 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.13" supertypeInterpretation="//@partialtypeinterpratation.18 //@partialtypeinterpratation.19 //@partialtypeinterpratation.12 //@partialtypeinterpratation.11 //@partialtypeinterpratation.24 //@partialtypeinterpratation.23">
445 <interpretationOf href="generation.logicproblem#//@types.13"/>
446 </partialtypeinterpratation>
447 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.14" supertypeInterpretation="//@partialtypeinterpratation.19 //@partialtypeinterpratation.12 //@partialtypeinterpratation.11 //@partialtypeinterpratation.24 //@partialtypeinterpratation.23">
448 <interpretationOf href="generation.logicproblem#//@types.14"/>
449 </partialtypeinterpratation>
450 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.15" supertypeInterpretation="//@partialtypeinterpratation.12 //@partialtypeinterpratation.11 //@partialtypeinterpratation.24 //@partialtypeinterpratation.23">
451 <interpretationOf href="generation.logicproblem#//@types.15"/>
452 </partialtypeinterpratation>
453 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.16">
454 <interpretationOf href="generation.logicproblem#//@types.16"/>
455 </partialtypeinterpratation>
456 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.17">
457 <interpretationOf href="generation.logicproblem#//@types.17"/>
458 </partialtypeinterpratation>
459 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.18" supertypeInterpretation="//@partialtypeinterpratation.12 //@partialtypeinterpratation.11 //@partialtypeinterpratation.24 //@partialtypeinterpratation.23">
460 <interpretationOf href="generation.logicproblem#//@types.18"/>
461 </partialtypeinterpratation>
462 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.19" supertypeInterpretation="//@partialtypeinterpratation.11">
463 <interpretationOf href="generation.logicproblem#//@types.20"/>
464 </partialtypeinterpratation>
465 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.20" supertypeInterpretation="//@partialtypeinterpratation.12 //@partialtypeinterpratation.11 //@partialtypeinterpratation.23">
466 <interpretationOf href="generation.logicproblem#//@types.22"/>
467 </partialtypeinterpratation>
468 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.21" supertypeInterpretation="//@partialtypeinterpratation.15 //@partialtypeinterpratation.12 //@partialtypeinterpratation.11 //@partialtypeinterpratation.24 //@partialtypeinterpratation.23">
469 <interpretationOf href="generation.logicproblem#//@types.24"/>
470 </partialtypeinterpratation>
471 <openWorldElements xsi:type="partialinterpretation:IntegerElement" name="New Integers"/> 112 <openWorldElements xsi:type="partialinterpretation:IntegerElement" name="New Integers"/>
472 <openWorldElements xsi:type="partialinterpretation:RealElement" name="New Reals"/> 113 <openWorldElements xsi:type="partialinterpretation:RealElement" name="New Reals"/>
473 <openWorldElements xsi:type="partialinterpretation:StringElement" name="New Strings"/> 114 <openWorldElements xsi:type="partialinterpretation:StringElement" name="New Strings"/>
@@ -481,17 +122,4 @@
481 <scopes targetTypeInterpretation="//@partialtypeinterpratation.10"/> 122 <scopes targetTypeInterpretation="//@partialtypeinterpratation.10"/>
482 <scopes targetTypeInterpretation="//@partialtypeinterpratation.11"/> 123 <scopes targetTypeInterpretation="//@partialtypeinterpratation.11"/>
483 <scopes targetTypeInterpretation="//@partialtypeinterpratation.12"/> 124 <scopes targetTypeInterpretation="//@partialtypeinterpratation.12"/>
484 <scopes targetTypeInterpretation="//@partialtypeinterpratation.13"/>
485 <scopes targetTypeInterpretation="//@partialtypeinterpratation.14"/>
486 <scopes targetTypeInterpretation="//@partialtypeinterpratation.15"/>
487 <scopes targetTypeInterpretation="//@partialtypeinterpratation.16"/>
488 <scopes targetTypeInterpretation="//@partialtypeinterpratation.17"/>
489 <scopes targetTypeInterpretation="//@partialtypeinterpratation.18"/>
490 <scopes targetTypeInterpretation="//@partialtypeinterpratation.19"/>
491 <scopes targetTypeInterpretation="//@partialtypeinterpratation.20"/>
492 <scopes targetTypeInterpretation="//@partialtypeinterpratation.21"/>
493 <scopes targetTypeInterpretation="//@partialtypeinterpratation.22"/>
494 <scopes targetTypeInterpretation="//@partialtypeinterpratation.23"/>
495 <scopes targetTypeInterpretation="//@partialtypeinterpratation.24"/>
496 <scopes targetTypeInterpretation="//@partialtypeinterpratation.25"/>
497</partialinterpretation:PartialInterpretation> 125</partialinterpretation:PartialInterpretation>
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/debug/problem.als b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/debug/problem.als
index 16ff4006..716e4f33 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/debug/problem.als
+++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/debug/problem.als
@@ -1,6 +1,6 @@
1one sig util'language { 1one sig util'language {
2 util'root : one type'FunctionalArchitectureModel'class + (type'FunctionalData'class + (type'Function'class + (type'FAMTerminator'class + (type'InformationLink'class + (type'FunctionalInterface'class + (type'FunctionalElement'class + (type'FunctionalInput'class + (type'FunctionalOutput'class + (type'FunctionalArchitectureModel'class'DefinedPart + type'FunctionalArchitectureModel'class'UndefinedPart))))))))), 2 util'root : one type'InformationLink'class + (type'FunctionalOutput'class + (type'FunctionalInput'class + (type'FunctionalData'class + (type'FunctionalArchitectureModel'class + (type'FAMTerminator'class + (type'Function'class + (type'FunctionalInterface'class + (type'FunctionalElement'class + (type'FunctionalArchitectureModel'class'DefinedPart + type'FunctionalArchitectureModel'class'UndefinedPart))))))))),
3 util'contains : (type'FunctionalArchitectureModel'class + (type'FunctionalData'class + (type'Function'class + (type'FAMTerminator'class + (type'InformationLink'class + (type'FunctionalInterface'class + (type'FunctionalElement'class + (type'FunctionalInput'class + (type'FunctionalOutput'class + (type'FunctionalArchitectureModel'class'DefinedPart + type'FunctionalArchitectureModel'class'UndefinedPart)))))))))) lone->set (type'FunctionalArchitectureModel'class + (type'FunctionalData'class + (type'Function'class + (type'FAMTerminator'class + (type'InformationLink'class + (type'FunctionalInterface'class + (type'FunctionalElement'class + (type'FunctionalInput'class + (type'FunctionalOutput'class + (type'FunctionalArchitectureModel'class'DefinedPart + type'FunctionalArchitectureModel'class'UndefinedPart)))))))))) 3 util'contains : (type'InformationLink'class + (type'FunctionalOutput'class + (type'FunctionalInput'class + (type'FunctionalData'class + (type'FunctionalArchitectureModel'class + (type'FAMTerminator'class + (type'Function'class + (type'FunctionalInterface'class + (type'FunctionalElement'class + (type'FunctionalArchitectureModel'class'DefinedPart + type'FunctionalArchitectureModel'class'UndefinedPart)))))))))) lone->set (type'InformationLink'class + (type'FunctionalOutput'class + (type'FunctionalInput'class + (type'FunctionalData'class + (type'FunctionalArchitectureModel'class + (type'FAMTerminator'class + (type'Function'class + (type'FunctionalInterface'class + (type'FunctionalElement'class + (type'FunctionalArchitectureModel'class'DefinedPart + type'FunctionalArchitectureModel'class'UndefinedPart))))))))))
4} 4}
5abstract sig util'Object { 5abstract sig util'Object {
6} 6}
@@ -12,7 +12,8 @@ sig type'FunctionalArchitectureModel'class in util'Object {
12 rootElements'reference'FunctionalArchitectureModel : set type'FunctionalElement'class 12 rootElements'reference'FunctionalArchitectureModel : set type'FunctionalElement'class
13} 13}
14sig type'Function'class in type'FunctionalElement'class { 14sig type'Function'class in type'FunctionalElement'class {
15 subElements'reference'Function : set type'FunctionalElement'class 15 subElements'reference'Function : set type'FunctionalElement'class,
16 type'attribute'Function : one type'FunctionType'enum
16} 17}
17sig type'FAMTerminator'class in util'Object { 18sig type'FAMTerminator'class in util'Object {
18 data'reference'FAMTerminator : lone type'FunctionalData'class 19 data'reference'FAMTerminator : lone type'FunctionalData'class
@@ -41,17 +42,14 @@ sig type'FunctionalArchitectureModel'class'DefinedPart in type'FunctionalArchite
41} 42}
42sig type'FunctionalArchitectureModel'class'UndefinedPart in type'FunctionalArchitectureModel'class { 43sig type'FunctionalArchitectureModel'class'UndefinedPart in type'FunctionalArchitectureModel'class {
43} 44}
44one sig element'o'1 in type'FunctionalArchitectureModel'class'DefinedPart {
45}
46one sig element'Root'literal'FunctionType, 45one sig element'Root'literal'FunctionType,
47element'Intermediate'literal'FunctionType, 46element'Intermediate'literal'FunctionType,
48element'Leaf'literal'FunctionType in type'FunctionType'enum { 47element'Leaf'literal'FunctionType in type'FunctionType'enum {
49} 48}
50pred pattern'ca'mcgill'ecse'dslreasoner'standalone'test'fam'queries'terminatorAndInformation [parameter'T: type'FAMTerminator'class, parameter'I: type'InformationLink'class] { 49one sig element'o'1 in type'FunctionalArchitectureModel'class'DefinedPart {
51 (some variable'Out: type'FunctionalOutput'class { parameter'I in variable'Out.outgoingLinks'reference'FunctionalOutput && parameter'T in variable'Out.terminator'reference'FunctionalData }) || (some variable'In: type'FunctionalInput'class { variable'In in parameter'I.to'reference'InformationLink && (variable'In in type'FunctionalInput'class && parameter'T in variable'In.terminator'reference'FunctionalData) })
52} 50}
53pred pattern'ca'mcgill'ecse'dslreasoner'standalone'test'fam'queries'type [parameter'This: type'Function'class, parameter'Target: type'FunctionType'enum] { 51pred pattern'ca'mcgill'ecse'dslreasoner'standalone'test'fam'queries'terminatorAndInformation [parameter'T: type'FAMTerminator'class, parameter'I: type'InformationLink'class] {
54 (some variable'Model: type'FunctionalArchitectureModel'class { pattern'ca'mcgill'ecse'dslreasoner'standalone'test'fam'queries'rootElements [ variable'Model , parameter'This ] && parameter'Target = element'Root'literal'FunctionType }) || ((all variable'Child: type'Function'class, variable'Model: type'FunctionalArchitectureModel'class { parameter'This in type'Function'class && (! (pattern'ca'mcgill'ecse'dslreasoner'standalone'test'fam'queries'parent [ variable'Child , parameter'This ]) && (! (pattern'ca'mcgill'ecse'dslreasoner'standalone'test'fam'queries'rootElements [ variable'Model , parameter'This ]) && parameter'Target = element'Leaf'literal'FunctionType)) }) || (some variable'Par: type'Function'class, variable'Child: type'Function'class { pattern'ca'mcgill'ecse'dslreasoner'standalone'test'fam'queries'parent [ parameter'This , variable'Par ] && (pattern'ca'mcgill'ecse'dslreasoner'standalone'test'fam'queries'parent [ variable'Child , parameter'This ] && parameter'Target = element'Intermediate'literal'FunctionType) })) 52 (some variable'Out: type'FunctionalOutput'class { parameter'I in variable'Out.outgoingLinks'reference'FunctionalOutput && parameter'T in variable'Out.terminator'reference'FunctionalData }) or (some variable'In: type'FunctionalInput'class { variable'In in parameter'I.to'reference'InformationLink && (variable'In in type'FunctionalInput'class && parameter'T in variable'In.terminator'reference'FunctionalData) })
55} 53}
56pred pattern'ca'mcgill'ecse'dslreasoner'standalone'test'fam'queries'rootElements [parameter'Model: type'FunctionalArchitectureModel'class, parameter'Root: type'Function'class] { 54pred pattern'ca'mcgill'ecse'dslreasoner'standalone'test'fam'queries'rootElements [parameter'Model: type'FunctionalArchitectureModel'class, parameter'Root: type'Function'class] {
57 parameter'Root in type'Function'class && parameter'Root in parameter'Model.rootElements'reference'FunctionalArchitectureModel 55 parameter'Root in type'Function'class && parameter'Root in parameter'Model.rootElements'reference'FunctionalArchitectureModel
@@ -159,19 +157,19 @@ fact util'containmentDefinition {
159 util'language.util'contains = interface'reference'FunctionalElement + (rootElements'reference'FunctionalArchitectureModel + (subElements'reference'Function + (data'reference'FunctionalInterface + (outgoingLinks'reference'FunctionalOutput + terminator'reference'FunctionalData)))) 157 util'language.util'contains = interface'reference'FunctionalElement + (rootElements'reference'FunctionalArchitectureModel + (subElements'reference'Function + (data'reference'FunctionalInterface + (outgoingLinks'reference'FunctionalOutput + terminator'reference'FunctionalData))))
160} 158}
161fact util'noParentForRoot { 159fact util'noParentForRoot {
162 no parent: type'FunctionalArchitectureModel'class + (type'FunctionalData'class + (type'Function'class + (type'FAMTerminator'class + (type'InformationLink'class + (type'FunctionalInterface'class + (type'FunctionalElement'class + (type'FunctionalInput'class + (type'FunctionalOutput'class + (type'FunctionalArchitectureModel'class'DefinedPart + type'FunctionalArchitectureModel'class'UndefinedPart))))))))) { parent->(util'language.util'root) in util'language.util'contains } 160 no parent: type'InformationLink'class + (type'FunctionalOutput'class + (type'FunctionalInput'class + (type'FunctionalData'class + (type'FunctionalArchitectureModel'class + (type'FAMTerminator'class + (type'Function'class + (type'FunctionalInterface'class + (type'FunctionalElement'class + (type'FunctionalArchitectureModel'class'DefinedPart + type'FunctionalArchitectureModel'class'UndefinedPart))))))))) { parent->(util'language.util'root) in util'language.util'contains }
163} 161}
164fact util'atLeastOneParent { 162fact util'atLeastOneParent {
165 all child: type'FunctionalArchitectureModel'class + (type'FunctionalData'class + (type'Function'class + (type'FAMTerminator'class + (type'InformationLink'class + (type'FunctionalInterface'class + (type'FunctionalElement'class + (type'FunctionalInput'class + (type'FunctionalOutput'class + (type'FunctionalArchitectureModel'class'DefinedPart + type'FunctionalArchitectureModel'class'UndefinedPart))))))))) { child = util'language.util'root || (some parent: type'FunctionalArchitectureModel'class + (type'FunctionalData'class + (type'Function'class + (type'FAMTerminator'class + (type'InformationLink'class + (type'FunctionalInterface'class + (type'FunctionalElement'class + (type'FunctionalInput'class + (type'FunctionalOutput'class + (type'FunctionalArchitectureModel'class'DefinedPart + type'FunctionalArchitectureModel'class'UndefinedPart))))))))) { parent->child in util'language.util'contains }) } 163 all child: type'InformationLink'class + (type'FunctionalOutput'class + (type'FunctionalInput'class + (type'FunctionalData'class + (type'FunctionalArchitectureModel'class + (type'FAMTerminator'class + (type'Function'class + (type'FunctionalInterface'class + (type'FunctionalElement'class + (type'FunctionalArchitectureModel'class'DefinedPart + type'FunctionalArchitectureModel'class'UndefinedPart))))))))) { child = util'language.util'root or (some parent: type'InformationLink'class + (type'FunctionalOutput'class + (type'FunctionalInput'class + (type'FunctionalData'class + (type'FunctionalArchitectureModel'class + (type'FAMTerminator'class + (type'Function'class + (type'FunctionalInterface'class + (type'FunctionalElement'class + (type'FunctionalArchitectureModel'class'DefinedPart + type'FunctionalArchitectureModel'class'UndefinedPart))))))))) { parent->child in util'language.util'contains }) }
166} 164}
167fact util'noCircularContainment { 165fact util'noCircularContainment {
168 no circle: type'FunctionalArchitectureModel'class + (type'FunctionalData'class + (type'Function'class + (type'FAMTerminator'class + (type'InformationLink'class + (type'FunctionalInterface'class + (type'FunctionalElement'class + (type'FunctionalInput'class + (type'FunctionalOutput'class + (type'FunctionalArchitectureModel'class'DefinedPart + type'FunctionalArchitectureModel'class'UndefinedPart))))))))) { circle->circle in ^ (util'language.util'contains) } 166 no circle: type'InformationLink'class + (type'FunctionalOutput'class + (type'FunctionalInput'class + (type'FunctionalData'class + (type'FunctionalArchitectureModel'class + (type'FAMTerminator'class + (type'Function'class + (type'FunctionalInterface'class + (type'FunctionalElement'class + (type'FunctionalArchitectureModel'class'DefinedPart + type'FunctionalArchitectureModel'class'UndefinedPart))))))))) { circle->circle in ^ (util'language.util'contains) }
169} 167}
170fact lowerMultiplicity'model'FunctionalElement { 168fact lowerMultiplicity'model'FunctionalElement {
171 all src: type'FunctionalElement'class { some trg'1: type'FunctionalArchitectureModel'class { pattern'ca'mcgill'ecse'dslreasoner'standalone'test'fam'queries'model [ src , trg'1 ] } } 169 all src: type'FunctionalElement'class { some trg'1: type'FunctionalArchitectureModel'class { pattern'ca'mcgill'ecse'dslreasoner'standalone'test'fam'queries'model [ src , trg'1 ] } }
172} 170}
173fact upperMultiplicity'model'FunctionalElement { 171fact upperMultiplicity'model'FunctionalElement {
174 all src: type'FunctionalElement'class, trg'1: type'FunctionalArchitectureModel'class, trg'2: type'FunctionalArchitectureModel'class { pattern'ca'mcgill'ecse'dslreasoner'standalone'test'fam'queries'model [ src , trg'1 ] && pattern'ca'mcgill'ecse'dslreasoner'standalone'test'fam'queries'model [ src , trg'2 ] => ! (trg'1 != trg'2) } 172 all src: type'FunctionalElement'class, trg'1: type'FunctionalArchitectureModel'class, trg'2: type'FunctionalArchitectureModel'class { pattern'ca'mcgill'ecse'dslreasoner'standalone'test'fam'queries'model [ src , trg'1 ] && pattern'ca'mcgill'ecse'dslreasoner'standalone'test'fam'queries'model [ src , trg'2 ] implies ! (trg'1 != trg'2) }
175} 173}
176fact oppositeReference'interface'FunctionalElement { 174fact oppositeReference'interface'FunctionalElement {
177 interface'reference'FunctionalElement = ~ element'reference'FunctionalInterface 175 interface'reference'FunctionalElement = ~ element'reference'FunctionalInterface
@@ -191,13 +189,7 @@ fact oppositeReference'to'InformationLink {
191fact oppositeReference'data'FunctionalInterface { 189fact oppositeReference'data'FunctionalInterface {
192 data'reference'FunctionalInterface = ~ interface'reference'FunctionalData 190 data'reference'FunctionalInterface = ~ interface'reference'FunctionalData
193} 191}
194fact lowerMultiplicity'type'Function {
195 all src: type'Function'class { some trg'1: type'FunctionType'enum { pattern'ca'mcgill'ecse'dslreasoner'standalone'test'fam'queries'type [ src , trg'1 ] } }
196}
197fact upperMultiplicity'type'Function {
198 all src: type'Function'class, trg'1: type'FunctionType'enum, trg'2: type'FunctionType'enum { pattern'ca'mcgill'ecse'dslreasoner'standalone'test'fam'queries'type [ src , trg'1 ] && pattern'ca'mcgill'ecse'dslreasoner'standalone'test'fam'queries'type [ src , trg'2 ] => ! (trg'1 != trg'2) }
199}
200fact errorpattern'ca'mcgill'ecse'dslreasoner'standalone'test'fam'queries'terminatorAndInformation { 192fact errorpattern'ca'mcgill'ecse'dslreasoner'standalone'test'fam'queries'terminatorAndInformation {
201 all p0: type'FAMTerminator'class, p1: type'InformationLink'class { ! (pattern'ca'mcgill'ecse'dslreasoner'standalone'test'fam'queries'terminatorAndInformation [ p0 , p1 ]) } 193 all p0: type'FAMTerminator'class, p1: type'InformationLink'class { ! (pattern'ca'mcgill'ecse'dslreasoner'standalone'test'fam'queries'terminatorAndInformation [ p0 , p1 ]) }
202} 194}
203run { } for exactly 5 util'Object , 31 Int , exactly 0 String \ No newline at end of file 195run { } for exactly 10 util'Object , 31 Int , exactly 0 String \ No newline at end of file
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/log.txt b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/log.txt
index 8c87a095..7029fce0 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/log.txt
+++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/log.txt
@@ -1 +1 @@
Model generation startedProblem is consistent, a model is generatedModels: [1.xmi]Visualisations: [1.gml]Visualisations: [1.png]Model generation finishedModel generation startedProblem is consistent, a model is generatedModels: [1.xmi]Visualisations: [1.gml]Visualisations: [1.png]Model generation finishedModel generation startedProblem is consistent, a model is generatedModels: [1.xmi]Visualisations: [1.gml]Visualisations: [1.png]Model generation finishedModel generation startedProblem is consistent, a model is generatedModels: [1.xmi]Visualisations: [1.gml]Visualisations: [1.png]Model generation finishedModel generation startedProblem is consistent, 3 models are generated!Models: [1.xmi][2.xmi][3.xmi]Visualisations: [1.gml][2.gml][3.gml]Visualisations: [1.png][2.png][3.png]Model generation finishedModel generation startedProblem is consistent, 3 models are generated!Models: [1.xmi][2.xmi][3.xmi]Visualisations: [1.gml][2.gml][3.gml]Visualisations: [1.png][2.png][3.png]Model generation finishedModel generation startedProblem is consistent, 2 models are generated!Models: [1.xmi][2.xmi]Visualisations: [1.gml][2.gml]Visualisations: [1.png][2.png]Model generation finishedModel generation startedProblem is consistent, 2 models are generated!Models: [1.xmi][2.xmi]Visualisations: [1.gml][2.gml]Visualisations: [1.png][2.png]Model generation finishedModel generation startedProblem is consistent, a model is generatedModels: [1.xmi]Visualisations: [1.gml]Visualisations: [1.png]Model generation finishedModel generation startedProblem is consistent, 2 models are generated!Models: [1.xmi][2.xmi]Visualisations: [1.gml][2.gml]Visualisations: [1.png][2.png]Model generation finishedModel generation startedProblem is consistent, 2 models are generated!Models: [1.xmi][2.xmi]Visualisations: [1.gml][2.gml]Visualisations: [1.png][2.png]Model generation finishedModel generation startedProblem is consistent, 2 models are generated!Models: [1.xmi][2.xmi]Visualisations: [1.gml][2.gml]Visualisations: [1.png][2.png]Model generation finishedModel generation startedProblem is consistent, a model is generatedModels: [1.xmi]Visualisations: [1.gml]Visualisations: [1.png]Model generation finishedModel generation startedProblem is consistent, a model is generatedModels: [1.xmi]Visualisations: [1.gml]Visualisations: [1.png]Model generation finishedModel generation startedProblem is consistent, 2 models are generated!Models: [1.xmi][2.xmi]Visualisations: [1.gml][2.gml]Visualisations: [1.png][2.png]Model generation finishedModel generation startedProblem is consistent, 5 models are generated!Models: [1.xmi][2.xmi][3.xmi][4.xmi][5.xmi]Visualisations: [1.gml][2.gml][3.gml][4.gml][5.gml]Visualisations: [1.png][2.png][3.png][4.png][5.png]Model generation finishedModel generation startedProblem is consistent, 2 models are generated!Models: [1.xmi][2.xmi]Visualisations: [1.gml][2.gml]Visualisations: [1.png][2.png]Model generation finishedModel generation startedProblem is consistent, 2 models are generated!Models: [1.xmi][2.xmi]Visualisations: [1.gml][2.gml]Visualisations: [1.png][2.png]Model generation finishedModel generation startedModel generation startedModel generation startedModel generation startedModel generation startedProblem is consistent, 5 models are generated!Models: [1.xmi][2.xmi][3.xmi][4.xmi][5.xmi]Visualisations: [1.gml][2.gml][3.gml][4.gml][5.gml]Visualisations: [1.png][2.png][3.png][4.png][5.png]Model generation finishedModel generation startedProblem is consistent, 3 models are generated!Models: [1.xmi][2.xmi][3.xmi]Visualisations: [1.gml][2.gml][3.gml]Visualisations: [1.png][2.png][3.png]Model generation finishedModel generation startedProblem is consistent, 3 models are generated!Models: [1.xmi][2.xmi][3.xmi]Visualisations: [1.gml][2.gml][3.gml]Visualisations: [1.png][2.png][3.png]Model generation finishedModel generation startedProblem is consistent, 3 models are generated!Models: [1.xmi][2.xmi][3.xmi]Visualisations: [1.gml][2.gml][3.gml]Visualisations: [1.png][2.png][3.png]Model generation finishedModel generation startedModel generation startedModel generation startedProblem is consistent, 2 models are generated!Models: [1.xmi][2.xmi]Visualisations: [1.gml][2.gml]Visualisations: [1.png][2.png]Model generation finishedModel generation startedModel generation startedProblem is consistent, 3 models are generated!Models: [1.xmi][2.xmi][3.xmi]Visualisations: [1.gml][2.gml][3.gml]Visualisations: [1.png][2.png][3.png]Model generation finished \ No newline at end of file Model generation startedModel generation startedModel generation startedModel generation startedProblem is consistent, 5 models are generated!Model generation startedModel generation startedProblem is consistent, 5 models are generated!Model generation startedProblem is consistent, 5 models are generated!Model generation startedProblem is consistent, 5 models are generated!Model generation startedProblem is consistent, 5 models are generated!Model generation startedProblem is consistent, 5 models are generated!Model generation startedProblem is consistent, 5 models are generated!Model generation startedProblem is consistent, 5 models are generated!Model generation startedModel generation startedModel generation startedProblem is consistent, 5 models are generated!Models: [1.xmi][2.xmi][3.xmi][4.xmi][5.xmi]Visualisations: [1.gml][2.gml][3.gml][4.gml][5.gml]Visualisations: [1.png][2.png][3.png][4.png][5.png]Model generation finishedModel generation startedProblem is consistent, 5 models are generated!Model generation startedProblem is consistent, 5 models are generated!Model generation startedProblem is consistent, 5 models are generated!Model generation startedModel generation startedProblem is consistent, 5 models are generated!Models: [1.xmi][2.xmi][3.xmi][4.xmi][5.xmi]Visualisations: [1.gml][2.gml][3.gml][4.gml][5.gml]Visualisations: [1.png][2.png][3.png][4.png][5.png]Model generation finishedModel generation startedProblem is consistent, 5 models are generated!Models: [1.xmi][2.xmi][3.xmi][4.xmi][5.xmi]Visualisations: [1.gml][2.gml][3.gml][4.gml][5.gml]Visualisations: [1.png][2.png][3.png][4.png][5.png]Model generation finishedModel generation startedProblem is consistent, 5 models are generated!Models: [1.xmi][2.xmi][3.xmi][4.xmi][5.xmi]Visualisations: [1.gml][2.gml][3.gml][4.gml][5.gml]Visualisations: [1.png][2.png][3.png][4.png][5.png]Model generation finishedModel generation startedProblem is consistent, 5 models are generated!Model generation startedProblem is consistent, 5 models are generated!Model generation startedProblem is consistent, 5 models are generated!Models: [1.xmi][2.xmi][3.xmi][4.xmi][5.xmi]Visualisations: [1.gml][2.gml][3.gml][4.gml][5.gml]Visualisations: [1.png][2.png][3.png][4.png][5.png]Model generation finishedModel generation startedProblem is consistent, 5 models are generated!Models: [1.xmi][2.xmi][3.xmi][4.xmi][5.xmi]Visualisations: [1.gml][2.gml][3.gml][4.gml][5.gml]Visualisations: [1.png][2.png][3.png][4.png][5.png]Model generation finishedModel generation startedProblem is consistent, 5 models are generated!Models: [1.xmi][2.xmi][3.xmi][4.xmi][5.xmi]Visualisations: [1.gml][2.gml][3.gml][4.gml][5.gml]Visualisations: [1.png][2.png][3.png][4.png][5.png]Model generation finishedModel generation startedProblem is consistent, 5 models are generated!Models: [1.xmi][2.xmi][3.xmi][4.xmi][5.xmi]Visualisations: [1.gml][2.gml][3.gml][4.gml][5.gml]Visualisations: [1.png][2.png][3.png][4.png][5.png]Model generation finishedModel generation startedProblem is consistent, 5 models are generated!Model generation startedProblem is consistent, 5 models are generated!Models: [1.xmi][2.xmi][3.xmi][4.xmi][5.xmi]Visualisations: [1.gml][2.gml][3.gml][4.gml][5.gml]Visualisations: [1.png][2.png][3.png][4.png][5.png]Model generation finishedModel generation startedProblem is consistent, 5 models are generated!Models: [1.xmi][2.xmi][3.xmi][4.xmi][5.xmi]Visualisations: [1.gml][2.gml][3.gml][4.gml][5.gml]Visualisations: [1.png][2.png][3.png][4.png][5.png]Model generation finishedModel generation startedProblem is consistent, 5 models are generated!Model generation startedProblem is consistent, 5 models are generated!Model generation startedProblem is consistent, 5 models are generated!Model generation startedProblem is consistent, 5 models are generated!Model generation startedProblem is consistent, 5 models are generated! \ No newline at end of file
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/1.gml b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/1.gml
index 9eac10b7..3e4dddc2 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/1.gml
+++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/1.gml
@@ -113,8 +113,8 @@ graph
113 id 3 113 id 3
114 graphics 114 graphics
115 [ 115 [
116 w 361.90000000000003 116 w 41.800000000000004
117 h 54 117 h 26
118 type "rectangle" 118 type "rectangle"
119 fill "#FFFFFF" 119 fill "#FFFFFF"
120 fill2 "#FFFFFF" 120 fill2 "#FFFFFF"
@@ -122,7 +122,7 @@ graph
122 ] 122 ]
123 LabelGraphics 123 LabelGraphics
124 [ 124 [
125 text "o 1" 125 text "true"
126 outline "#000000" 126 outline "#000000"
127 fill "#FFFFFF" 127 fill "#FFFFFF"
128 fontSize 16 128 fontSize 16
@@ -134,8 +134,6 @@ graph
134 LabelGraphics 134 LabelGraphics
135 [ 135 [
136 text " 136 text "
137 FunctionalArchitectureModel class DefinedPart
138 FunctionalArchitectureModel class
139 " 137 "
140 fontSize 14 138 fontSize 14
141 fontName "Consolas" 139 fontName "Consolas"
@@ -150,7 +148,7 @@ graph
150 id 4 148 id 4
151 graphics 149 graphics
152 [ 150 [
153 w 41.800000000000004 151 w 50.6
154 h 26 152 h 26
155 type "rectangle" 153 type "rectangle"
156 fill "#FFFFFF" 154 fill "#FFFFFF"
@@ -159,7 +157,7 @@ graph
159 ] 157 ]
160 LabelGraphics 158 LabelGraphics
161 [ 159 [
162 text "true" 160 text "false"
163 outline "#000000" 161 outline "#000000"
164 fill "#FFFFFF" 162 fill "#FFFFFF"
165 fontSize 16 163 fontSize 16
@@ -185,8 +183,8 @@ graph
185 id 5 183 id 5
186 graphics 184 graphics
187 [ 185 [
188 w 50.6 186 w 207.9
189 h 26 187 h 40
190 type "rectangle" 188 type "rectangle"
191 fill "#FFFFFF" 189 fill "#FFFFFF"
192 fill2 "#FFFFFF" 190 fill2 "#FFFFFF"
@@ -194,7 +192,7 @@ graph
194 ] 192 ]
195 LabelGraphics 193 LabelGraphics
196 [ 194 [
197 text "false" 195 text "null"
198 outline "#000000" 196 outline "#000000"
199 fill "#FFFFFF" 197 fill "#FFFFFF"
200 fontSize 16 198 fontSize 16
@@ -206,6 +204,7 @@ graph
206 LabelGraphics 204 LabelGraphics
207 [ 205 [
208 text " 206 text "
207 FunctionalInterface class
209 " 208 "
210 fontSize 14 209 fontSize 14
211 fontName "Consolas" 210 fontName "Consolas"
@@ -220,7 +219,7 @@ graph
220 id 6 219 id 6
221 graphics 220 graphics
222 [ 221 [
223 w 192.50000000000003 222 w 184.8
224 h 54 223 h 54
225 type "rectangle" 224 type "rectangle"
226 fill "#FFFFFF" 225 fill "#FFFFFF"
@@ -241,8 +240,8 @@ graph
241 LabelGraphics 240 LabelGraphics
242 [ 241 [
243 text " 242 text "
244 FunctionalElement class 243 FunctionalOutput class
245 Function class 244 FunctionalData class
246 " 245 "
247 fontSize 14 246 fontSize 14
248 fontName "Consolas" 247 fontName "Consolas"
@@ -257,8 +256,8 @@ graph
257 id 7 256 id 7
258 graphics 257 graphics
259 [ 258 [
260 w 112.2 259 w 184.8
261 h 26 260 h 54
262 type "rectangle" 261 type "rectangle"
263 fill "#FFFFFF" 262 fill "#FFFFFF"
264 fill2 "#FFFFFF" 263 fill2 "#FFFFFF"
@@ -266,7 +265,7 @@ graph
266 ] 265 ]
267 LabelGraphics 266 LabelGraphics
268 [ 267 [
269 text "New Integers" 268 text "null"
270 outline "#000000" 269 outline "#000000"
271 fill "#FFFFFF" 270 fill "#FFFFFF"
272 fontSize 16 271 fontSize 16
@@ -278,6 +277,8 @@ graph
278 LabelGraphics 277 LabelGraphics
279 [ 278 [
280 text " 279 text "
280 FunctionalOutput class
281 FunctionalData class
281 " 282 "
282 fontSize 14 283 fontSize 14
283 fontName "Consolas" 284 fontName "Consolas"
@@ -292,8 +293,8 @@ graph
292 id 8 293 id 8
293 graphics 294 graphics
294 [ 295 [
295 w 85.80000000000001 296 w 177.10000000000002
296 h 26 297 h 54
297 type "rectangle" 298 type "rectangle"
298 fill "#FFFFFF" 299 fill "#FFFFFF"
299 fill2 "#FFFFFF" 300 fill2 "#FFFFFF"
@@ -301,7 +302,7 @@ graph
301 ] 302 ]
302 LabelGraphics 303 LabelGraphics
303 [ 304 [
304 text "New Reals" 305 text "null"
305 outline "#000000" 306 outline "#000000"
306 fill "#FFFFFF" 307 fill "#FFFFFF"
307 fontSize 16 308 fontSize 16
@@ -313,6 +314,8 @@ graph
313 LabelGraphics 314 LabelGraphics
314 [ 315 [
315 text " 316 text "
317 FunctionalInput class
318 FunctionalData class
316 " 319 "
317 fontSize 14 320 fontSize 14
318 fontName "Consolas" 321 fontName "Consolas"
@@ -327,135 +330,7 @@ graph
327 id 9 330 id 9
328 graphics 331 graphics
329 [ 332 [
330 w 103.4 333 w 177.10000000000002
331 h 26
332 type "rectangle"
333 fill "#FFFFFF"
334 fill2 "#FFFFFF"
335 outline "#000000"
336 ]
337 LabelGraphics
338 [
339 text "New Strings"
340 outline "#000000"
341 fill "#FFFFFF"
342 fontSize 16
343 fontName "Monospace"
344 autoSizePolicy "node_width"
345 anchor "t"
346 borderDistance 0.0
347 ]
348 LabelGraphics
349 [
350 text "
351 "
352 fontSize 14
353 fontName "Consolas"
354 alignment "left"
355 anchor "tl"
356 borderDistance 6
357 ]
358 ]
359
360 node
361 [
362 id 10
363 graphics
364 [
365 w 103.4
366 h 26
367 type "rectangle"
368 fill "#FFFFFF"
369 fill2 "#FFFFFF"
370 outline "#000000"
371 ]
372 LabelGraphics
373 [
374 text "New Objects"
375 outline "#000000"
376 fill "#FFFFFF"
377 fontSize 16
378 fontName "Monospace"
379 autoSizePolicy "node_width"
380 anchor "t"
381 borderDistance 0.0
382 ]
383 LabelGraphics
384 [
385 text "
386 "
387 fontSize 14
388 fontName "Consolas"
389 alignment "left"
390 anchor "tl"
391 borderDistance 6
392 ]
393 ]
394 edge
395 [
396 source 3
397 target 6
398 graphics
399 [
400 fill "#000000"
401 width 3
402 targetArrow "standard"
403 ]
404 LabelGraphics
405 [
406 text "rootElements reference FunctionalArchitectureModel"
407 fontSize 14
408 fontName "Consolas"
409 configuration "AutoFlippingLabel"
410 model "six_pos"
411 position "thead"
412 ]
413 ]
414]
415graph
416[
417 node
418 [
419 id 0
420 graphics
421 [
422 w 226.60000000000002
423 h 40
424 type "rectangle"
425 fill "#FFFFFF"
426 fill2 "#FFFFFF"
427 outline "#000000"
428 ]
429 LabelGraphics
430 [
431 text "Root literal FunctionType"
432 outline "#000000"
433 fill "#FFFFFF"
434 fontSize 16
435 fontName "Monospace"
436 autoSizePolicy "node_width"
437 anchor "t"
438 borderDistance 0.0
439 ]
440 LabelGraphics
441 [
442 text "
443 FunctionType enum
444 "
445 fontSize 14
446 fontName "Consolas"
447 alignment "left"
448 anchor "tl"
449 borderDistance 6
450 ]
451 ]
452
453 node
454 [
455 id 1
456 graphics
457 [
458 w 297.0
459 h 40 334 h 40
460 type "rectangle" 335 type "rectangle"
461 fill "#FFFFFF" 336 fill "#FFFFFF"
@@ -464,7 +339,7 @@ graph
464 ] 339 ]
465 LabelGraphics 340 LabelGraphics
466 [ 341 [
467 text "Intermediate literal FunctionType" 342 text "null"
468 outline "#000000" 343 outline "#000000"
469 fill "#FFFFFF" 344 fill "#FFFFFF"
470 fontSize 16 345 fontSize 16
@@ -476,7 +351,7 @@ graph
476 LabelGraphics 351 LabelGraphics
477 [ 352 [
478 text " 353 text "
479 FunctionType enum 354 InformationLink class
480 " 355 "
481 fontSize 14 356 fontSize 14
482 fontName "Consolas" 357 fontName "Consolas"
@@ -488,10 +363,10 @@ graph
488 363
489 node 364 node
490 [ 365 [
491 id 2 366 id 10
492 graphics 367 graphics
493 [ 368 [
494 w 226.60000000000002 369 w 161.70000000000002
495 h 40 370 h 40
496 type "rectangle" 371 type "rectangle"
497 fill "#FFFFFF" 372 fill "#FFFFFF"
@@ -500,115 +375,7 @@ graph
500 ] 375 ]
501 LabelGraphics 376 LabelGraphics
502 [ 377 [
503 text "Leaf literal FunctionType" 378 text "null"
504 outline "#000000"
505 fill "#FFFFFF"
506 fontSize 16
507 fontName "Monospace"
508 autoSizePolicy "node_width"
509 anchor "t"
510 borderDistance 0.0
511 ]
512 LabelGraphics
513 [
514 text "
515 FunctionType enum
516 "
517 fontSize 14
518 fontName "Consolas"
519 alignment "left"
520 anchor "tl"
521 borderDistance 6
522 ]
523 ]
524
525 node
526 [
527 id 3
528 graphics
529 [
530 w 361.90000000000003
531 h 54
532 type "rectangle"
533 fill "#FFFFFF"
534 fill2 "#FFFFFF"
535 outline "#000000"
536 ]
537 LabelGraphics
538 [
539 text "o 1"
540 outline "#000000"
541 fill "#FFFFFF"
542 fontSize 16
543 fontName "Monospace"
544 autoSizePolicy "node_width"
545 anchor "t"
546 borderDistance 0.0
547 ]
548 LabelGraphics
549 [
550 text "
551 FunctionalArchitectureModel class DefinedPart
552 FunctionalArchitectureModel class
553 "
554 fontSize 14
555 fontName "Consolas"
556 alignment "left"
557 anchor "tl"
558 borderDistance 6
559 ]
560 ]
561
562 node
563 [
564 id 4
565 graphics
566 [
567 w 41.800000000000004
568 h 26
569 type "rectangle"
570 fill "#FFFFFF"
571 fill2 "#FFFFFF"
572 outline "#000000"
573 ]
574 LabelGraphics
575 [
576 text "true"
577 outline "#000000"
578 fill "#FFFFFF"
579 fontSize 16
580 fontName "Monospace"
581 autoSizePolicy "node_width"
582 anchor "t"
583 borderDistance 0.0
584 ]
585 LabelGraphics
586 [
587 text "
588 "
589 fontSize 14
590 fontName "Consolas"
591 alignment "left"
592 anchor "tl"
593 borderDistance 6
594 ]
595 ]
596
597 node
598 [
599 id 5
600 graphics
601 [
602 w 50.6
603 h 26
604 type "rectangle"
605 fill "#FFFFFF"
606 fill2 "#FFFFFF"
607 outline "#000000"
608 ]
609 LabelGraphics
610 [
611 text "false"
612 outline "#000000" 379 outline "#000000"
613 fill "#FFFFFF" 380 fill "#FFFFFF"
614 fontSize 16 381 fontSize 16
@@ -620,6 +387,7 @@ graph
620 LabelGraphics 387 LabelGraphics
621 [ 388 [
622 text " 389 text "
390 FAMTerminator class
623 " 391 "
624 fontSize 14 392 fontSize 14
625 fontName "Consolas" 393 fontName "Consolas"
@@ -631,10 +399,10 @@ graph
631 399
632 node 400 node
633 [ 401 [
634 id 6 402 id 11
635 graphics 403 graphics
636 [ 404 [
637 w 192.50000000000003 405 w 177.10000000000002
638 h 54 406 h 54
639 type "rectangle" 407 type "rectangle"
640 fill "#FFFFFF" 408 fill "#FFFFFF"
@@ -655,8 +423,8 @@ graph
655 LabelGraphics 423 LabelGraphics
656 [ 424 [
657 text " 425 text "
658 FunctionalElement class 426 FunctionalInput class
659 Function class 427 FunctionalData class
660 " 428 "
661 fontSize 14 429 fontSize 14
662 fontName "Consolas" 430 fontName "Consolas"
@@ -668,7 +436,7 @@ graph
668 436
669 node 437 node
670 [ 438 [
671 id 7 439 id 12
672 graphics 440 graphics
673 [ 441 [
674 w 112.2 442 w 112.2
@@ -703,7 +471,7 @@ graph
703 471
704 node 472 node
705 [ 473 [
706 id 8 474 id 13
707 graphics 475 graphics
708 [ 476 [
709 w 85.80000000000001 477 w 85.80000000000001
@@ -738,7 +506,7 @@ graph
738 506
739 node 507 node
740 [ 508 [
741 id 9 509 id 14
742 graphics 510 graphics
743 [ 511 [
744 w 103.4 512 w 103.4
@@ -773,7 +541,7 @@ graph
773 541
774 node 542 node
775 [ 543 [
776 id 10 544 id 15
777 graphics 545 graphics
778 [ 546 [
779 w 103.4 547 w 103.4
@@ -807,7 +575,64 @@ graph
807 ] 575 ]
808 edge 576 edge
809 [ 577 [
810 source 3 578 source 10
579 target 8
580 graphics
581 [
582 fill "#000000"
583 targetArrow "standard"
584 ]
585 LabelGraphics
586 [
587 text "data reference FAMTerminator"
588 fontSize 14
589 fontName "Consolas"
590 configuration "AutoFlippingLabel"
591 model "six_pos"
592 position "thead"
593 ]
594 ]
595 edge
596 [
597 source 9
598 target 7
599 graphics
600 [
601 fill "#000000"
602 targetArrow "standard"
603 ]
604 LabelGraphics
605 [
606 text "from reference InformationLink"
607 fontSize 14
608 fontName "Consolas"
609 configuration "AutoFlippingLabel"
610 model "six_pos"
611 position "thead"
612 ]
613 ]
614 edge
615 [
616 source 9
617 target 11
618 graphics
619 [
620 fill "#000000"
621 targetArrow "standard"
622 ]
623 LabelGraphics
624 [
625 text "to reference InformationLink"
626 fontSize 14
627 fontName "Consolas"
628 configuration "AutoFlippingLabel"
629 model "six_pos"
630 position "thead"
631 ]
632 ]
633 edge
634 [
635 source 5
811 target 6 636 target 6
812 graphics 637 graphics
813 [ 638 [
@@ -817,7 +642,7 @@ graph
817 ] 642 ]
818 LabelGraphics 643 LabelGraphics
819 [ 644 [
820 text "rootElements reference FunctionalArchitectureModel" 645 text "data reference FunctionalInterface"
821 fontSize 14 646 fontSize 14
822 fontName "Consolas" 647 fontName "Consolas"
823 configuration "AutoFlippingLabel" 648 configuration "AutoFlippingLabel"
@@ -825,413 +650,194 @@ graph
825 position "thead" 650 position "thead"
826 ] 651 ]
827 ] 652 ]
828] 653 edge
829graph 654 [
830[ 655 source 5
831 node 656 target 7
657 graphics
832 [ 658 [
833 id 0 659 fill "#000000"
834 graphics 660 width 3
835 [ 661 targetArrow "standard"
836 w 226.60000000000002
837 h 40
838 type "rectangle"
839 fill "#FFFFFF"
840 fill2 "#FFFFFF"
841 outline "#000000"
842 ]
843 LabelGraphics
844 [
845 text "Root literal FunctionType"
846 outline "#000000"
847 fill "#FFFFFF"
848 fontSize 16
849 fontName "Monospace"
850 autoSizePolicy "node_width"
851 anchor "t"
852 borderDistance 0.0
853 ]
854 LabelGraphics
855 [
856 text "
857 FunctionType enum
858 "
859 fontSize 14
860 fontName "Consolas"
861 alignment "left"
862 anchor "tl"
863 borderDistance 6
864 ]
865 ] 662 ]
866 663 LabelGraphics
867 node
868 [ 664 [
869 id 1 665 text "data reference FunctionalInterface"
870 graphics 666 fontSize 14
871 [ 667 fontName "Consolas"
872 w 297.0 668 configuration "AutoFlippingLabel"
873 h 40 669 model "six_pos"
874 type "rectangle" 670 position "thead"
875 fill "#FFFFFF"
876 fill2 "#FFFFFF"
877 outline "#000000"
878 ]
879 LabelGraphics
880 [
881 text "Intermediate literal FunctionType"
882 outline "#000000"
883 fill "#FFFFFF"
884 fontSize 16
885 fontName "Monospace"
886 autoSizePolicy "node_width"
887 anchor "t"
888 borderDistance 0.0
889 ]
890 LabelGraphics
891 [
892 text "
893 FunctionType enum
894 "
895 fontSize 14
896 fontName "Consolas"
897 alignment "left"
898 anchor "tl"
899 borderDistance 6
900 ]
901 ] 671 ]
902 672 ]
903 node 673 edge
674 [
675 source 5
676 target 8
677 graphics
904 [ 678 [
905 id 2 679 fill "#000000"
906 graphics 680 width 3
907 [ 681 targetArrow "standard"
908 w 226.60000000000002
909 h 40
910 type "rectangle"
911 fill "#FFFFFF"
912 fill2 "#FFFFFF"
913 outline "#000000"
914 ]
915 LabelGraphics
916 [
917 text "Leaf literal FunctionType"
918 outline "#000000"
919 fill "#FFFFFF"
920 fontSize 16
921 fontName "Monospace"
922 autoSizePolicy "node_width"
923 anchor "t"
924 borderDistance 0.0
925 ]
926 LabelGraphics
927 [
928 text "
929 FunctionType enum
930 "
931 fontSize 14
932 fontName "Consolas"
933 alignment "left"
934 anchor "tl"
935 borderDistance 6
936 ]
937 ] 682 ]
938 683 LabelGraphics
939 node
940 [ 684 [
941 id 3 685 text "data reference FunctionalInterface"
942 graphics 686 fontSize 14
943 [ 687 fontName "Consolas"
944 w 361.90000000000003 688 configuration "AutoFlippingLabel"
945 h 54 689 model "six_pos"
946 type "rectangle" 690 position "thead"
947 fill "#FFFFFF"
948 fill2 "#FFFFFF"
949 outline "#000000"
950 ]
951 LabelGraphics
952 [
953 text "o 1"
954 outline "#000000"
955 fill "#FFFFFF"
956 fontSize 16
957 fontName "Monospace"
958 autoSizePolicy "node_width"
959 anchor "t"
960 borderDistance 0.0
961 ]
962 LabelGraphics
963 [
964 text "
965 FunctionalArchitectureModel class DefinedPart
966 FunctionalArchitectureModel class
967 "
968 fontSize 14
969 fontName "Consolas"
970 alignment "left"
971 anchor "tl"
972 borderDistance 6
973 ]
974 ] 691 ]
975 692 ]
976 node 693 edge
694 [
695 source 5
696 target 11
697 graphics
977 [ 698 [
978 id 4 699 fill "#000000"
979 graphics 700 width 3
980 [ 701 targetArrow "standard"
981 w 41.800000000000004
982 h 26
983 type "rectangle"
984 fill "#FFFFFF"
985 fill2 "#FFFFFF"
986 outline "#000000"
987 ]
988 LabelGraphics
989 [
990 text "true"
991 outline "#000000"
992 fill "#FFFFFF"
993 fontSize 16
994 fontName "Monospace"
995 autoSizePolicy "node_width"
996 anchor "t"
997 borderDistance 0.0
998 ]
999 LabelGraphics
1000 [
1001 text "
1002 "
1003 fontSize 14
1004 fontName "Consolas"
1005 alignment "left"
1006 anchor "tl"
1007 borderDistance 6
1008 ]
1009 ] 702 ]
1010 703 LabelGraphics
1011 node
1012 [ 704 [
1013 id 5 705 text "data reference FunctionalInterface"
1014 graphics 706 fontSize 14
1015 [ 707 fontName "Consolas"
1016 w 50.6 708 configuration "AutoFlippingLabel"
1017 h 26 709 model "six_pos"
1018 type "rectangle" 710 position "thead"
1019 fill "#FFFFFF"
1020 fill2 "#FFFFFF"
1021 outline "#000000"
1022 ]
1023 LabelGraphics
1024 [
1025 text "false"
1026 outline "#000000"
1027 fill "#FFFFFF"
1028 fontSize 16
1029 fontName "Monospace"
1030 autoSizePolicy "node_width"
1031 anchor "t"
1032 borderDistance 0.0
1033 ]
1034 LabelGraphics
1035 [
1036 text "
1037 "
1038 fontSize 14
1039 fontName "Consolas"
1040 alignment "left"
1041 anchor "tl"
1042 borderDistance 6
1043 ]
1044 ] 711 ]
1045 712 ]
1046 node 713 edge
714 [
715 source 11
716 target 9
717 graphics
1047 [ 718 [
1048 id 6 719 fill "#000000"
1049 graphics 720 targetArrow "standard"
1050 [
1051 w 192.50000000000003
1052 h 54
1053 type "rectangle"
1054 fill "#FFFFFF"
1055 fill2 "#FFFFFF"
1056 outline "#000000"
1057 ]
1058 LabelGraphics
1059 [
1060 text "null"
1061 outline "#000000"
1062 fill "#FFFFFF"
1063 fontSize 16
1064 fontName "Monospace"
1065 autoSizePolicy "node_width"
1066 anchor "t"
1067 borderDistance 0.0
1068 ]
1069 LabelGraphics
1070 [
1071 text "
1072 FunctionalElement class
1073 Function class
1074 "
1075 fontSize 14
1076 fontName "Consolas"
1077 alignment "left"
1078 anchor "tl"
1079 borderDistance 6
1080 ]
1081 ] 721 ]
1082 722 LabelGraphics
1083 node
1084 [ 723 [
1085 id 7 724 text "IncomingLinks reference FunctionalInput"
1086 graphics 725 fontSize 14
1087 [ 726 fontName "Consolas"
1088 w 112.2 727 configuration "AutoFlippingLabel"
1089 h 26 728 model "six_pos"
1090 type "rectangle" 729 position "thead"
1091 fill "#FFFFFF"
1092 fill2 "#FFFFFF"
1093 outline "#000000"
1094 ]
1095 LabelGraphics
1096 [
1097 text "New Integers"
1098 outline "#000000"
1099 fill "#FFFFFF"
1100 fontSize 16
1101 fontName "Monospace"
1102 autoSizePolicy "node_width"
1103 anchor "t"
1104 borderDistance 0.0
1105 ]
1106 LabelGraphics
1107 [
1108 text "
1109 "
1110 fontSize 14
1111 fontName "Consolas"
1112 alignment "left"
1113 anchor "tl"
1114 borderDistance 6
1115 ]
1116 ] 730 ]
1117 731 ]
1118 node 732 edge
733 [
734 source 7
735 target 9
736 graphics
1119 [ 737 [
1120 id 8 738 fill "#000000"
1121 graphics 739 width 3
1122 [ 740 targetArrow "standard"
1123 w 85.80000000000001
1124 h 26
1125 type "rectangle"
1126 fill "#FFFFFF"
1127 fill2 "#FFFFFF"
1128 outline "#000000"
1129 ]
1130 LabelGraphics
1131 [
1132 text "New Reals"
1133 outline "#000000"
1134 fill "#FFFFFF"
1135 fontSize 16
1136 fontName "Monospace"
1137 autoSizePolicy "node_width"
1138 anchor "t"
1139 borderDistance 0.0
1140 ]
1141 LabelGraphics
1142 [
1143 text "
1144 "
1145 fontSize 14
1146 fontName "Consolas"
1147 alignment "left"
1148 anchor "tl"
1149 borderDistance 6
1150 ]
1151 ] 741 ]
1152 742 LabelGraphics
1153 node
1154 [ 743 [
1155 id 9 744 text "outgoingLinks reference FunctionalOutput"
1156 graphics 745 fontSize 14
1157 [ 746 fontName "Consolas"
1158 w 103.4 747 configuration "AutoFlippingLabel"
1159 h 26 748 model "six_pos"
1160 type "rectangle" 749 position "thead"
1161 fill "#FFFFFF"
1162 fill2 "#FFFFFF"
1163 outline "#000000"
1164 ]
1165 LabelGraphics
1166 [
1167 text "New Strings"
1168 outline "#000000"
1169 fill "#FFFFFF"
1170 fontSize 16
1171 fontName "Monospace"
1172 autoSizePolicy "node_width"
1173 anchor "t"
1174 borderDistance 0.0
1175 ]
1176 LabelGraphics
1177 [
1178 text "
1179 "
1180 fontSize 14
1181 fontName "Consolas"
1182 alignment "left"
1183 anchor "tl"
1184 borderDistance 6
1185 ]
1186 ] 750 ]
1187 751 ]
1188 node 752 edge
753 [
754 source 8
755 target 10
756 graphics
1189 [ 757 [
1190 id 10 758 fill "#000000"
1191 graphics 759 width 3
1192 [ 760 targetArrow "standard"
1193 w 103.4 761 ]
1194 h 26 762 LabelGraphics
1195 type "rectangle" 763 [
1196 fill "#FFFFFF" 764 text "terminator reference FunctionalData"
1197 fill2 "#FFFFFF" 765 fontSize 14
1198 outline "#000000" 766 fontName "Consolas"
1199 ] 767 configuration "AutoFlippingLabel"
1200 LabelGraphics 768 model "six_pos"
1201 [ 769 position "thead"
1202 text "New Objects"
1203 outline "#000000"
1204 fill "#FFFFFF"
1205 fontSize 16
1206 fontName "Monospace"
1207 autoSizePolicy "node_width"
1208 anchor "t"
1209 borderDistance 0.0
1210 ]
1211 LabelGraphics
1212 [
1213 text "
1214 "
1215 fontSize 14
1216 fontName "Consolas"
1217 alignment "left"
1218 anchor "tl"
1219 borderDistance 6
1220 ]
1221 ] 770 ]
771 ]
1222 edge 772 edge
1223 [ 773 [
1224 source 3 774 source 6
1225 target 6 775 target 5
1226 graphics 776 graphics
1227 [ 777 [
1228 fill "#000000" 778 fill "#000000"
1229 width 3
1230 targetArrow "standard" 779 targetArrow "standard"
1231 ] 780 ]
1232 LabelGraphics 781 LabelGraphics
1233 [ 782 [
1234 text "rootElements reference FunctionalArchitectureModel" 783 text "interface reference FunctionalData"
784 fontSize 14
785 fontName "Consolas"
786 configuration "AutoFlippingLabel"
787 model "six_pos"
788 position "thead"
789 ]
790 ]
791 edge
792 [
793 source 7
794 target 5
795 graphics
796 [
797 fill "#000000"
798 targetArrow "standard"
799 ]
800 LabelGraphics
801 [
802 text "interface reference FunctionalData"
803 fontSize 14
804 fontName "Consolas"
805 configuration "AutoFlippingLabel"
806 model "six_pos"
807 position "thead"
808 ]
809 ]
810 edge
811 [
812 source 8
813 target 5
814 graphics
815 [
816 fill "#000000"
817 targetArrow "standard"
818 ]
819 LabelGraphics
820 [
821 text "interface reference FunctionalData"
822 fontSize 14
823 fontName "Consolas"
824 configuration "AutoFlippingLabel"
825 model "six_pos"
826 position "thead"
827 ]
828 ]
829 edge
830 [
831 source 11
832 target 5
833 graphics
834 [
835 fill "#000000"
836 targetArrow "standard"
837 ]
838 LabelGraphics
839 [
840 text "interface reference FunctionalData"
1235 fontSize 14 841 fontSize 14
1236 fontName "Consolas" 842 fontName "Consolas"
1237 configuration "AutoFlippingLabel" 843 configuration "AutoFlippingLabel"
@@ -1355,8 +961,8 @@ graph
1355 id 3 961 id 3
1356 graphics 962 graphics
1357 [ 963 [
1358 w 361.90000000000003 964 w 41.800000000000004
1359 h 54 965 h 26
1360 type "rectangle" 966 type "rectangle"
1361 fill "#FFFFFF" 967 fill "#FFFFFF"
1362 fill2 "#FFFFFF" 968 fill2 "#FFFFFF"
@@ -1364,7 +970,7 @@ graph
1364 ] 970 ]
1365 LabelGraphics 971 LabelGraphics
1366 [ 972 [
1367 text "o 1" 973 text "true"
1368 outline "#000000" 974 outline "#000000"
1369 fill "#FFFFFF" 975 fill "#FFFFFF"
1370 fontSize 16 976 fontSize 16
@@ -1376,8 +982,6 @@ graph
1376 LabelGraphics 982 LabelGraphics
1377 [ 983 [
1378 text " 984 text "
1379 FunctionalArchitectureModel class DefinedPart
1380 FunctionalArchitectureModel class
1381 " 985 "
1382 fontSize 14 986 fontSize 14
1383 fontName "Consolas" 987 fontName "Consolas"
@@ -1392,7 +996,7 @@ graph
1392 id 4 996 id 4
1393 graphics 997 graphics
1394 [ 998 [
1395 w 41.800000000000004 999 w 50.6
1396 h 26 1000 h 26
1397 type "rectangle" 1001 type "rectangle"
1398 fill "#FFFFFF" 1002 fill "#FFFFFF"
@@ -1401,7 +1005,7 @@ graph
1401 ] 1005 ]
1402 LabelGraphics 1006 LabelGraphics
1403 [ 1007 [
1404 text "true" 1008 text "false"
1405 outline "#000000" 1009 outline "#000000"
1406 fill "#FFFFFF" 1010 fill "#FFFFFF"
1407 fontSize 16 1011 fontSize 16
@@ -1427,8 +1031,8 @@ graph
1427 id 5 1031 id 5
1428 graphics 1032 graphics
1429 [ 1033 [
1430 w 50.6 1034 w 207.9
1431 h 26 1035 h 40
1432 type "rectangle" 1036 type "rectangle"
1433 fill "#FFFFFF" 1037 fill "#FFFFFF"
1434 fill2 "#FFFFFF" 1038 fill2 "#FFFFFF"
@@ -1436,7 +1040,7 @@ graph
1436 ] 1040 ]
1437 LabelGraphics 1041 LabelGraphics
1438 [ 1042 [
1439 text "false" 1043 text "null"
1440 outline "#000000" 1044 outline "#000000"
1441 fill "#FFFFFF" 1045 fill "#FFFFFF"
1442 fontSize 16 1046 fontSize 16
@@ -1448,6 +1052,7 @@ graph
1448 LabelGraphics 1052 LabelGraphics
1449 [ 1053 [
1450 text " 1054 text "
1055 FunctionalInterface class
1451 " 1056 "
1452 fontSize 14 1057 fontSize 14
1453 fontName "Consolas" 1058 fontName "Consolas"
@@ -1462,7 +1067,7 @@ graph
1462 id 6 1067 id 6
1463 graphics 1068 graphics
1464 [ 1069 [
1465 w 192.50000000000003 1070 w 184.8
1466 h 54 1071 h 54
1467 type "rectangle" 1072 type "rectangle"
1468 fill "#FFFFFF" 1073 fill "#FFFFFF"
@@ -1483,8 +1088,8 @@ graph
1483 LabelGraphics 1088 LabelGraphics
1484 [ 1089 [
1485 text " 1090 text "
1486 FunctionalElement class 1091 FunctionalOutput class
1487 Function class 1092 FunctionalData class
1488 " 1093 "
1489 fontSize 14 1094 fontSize 14
1490 fontName "Consolas" 1095 fontName "Consolas"
@@ -1499,8 +1104,8 @@ graph
1499 id 7 1104 id 7
1500 graphics 1105 graphics
1501 [ 1106 [
1502 w 112.2 1107 w 177.10000000000002
1503 h 26 1108 h 40
1504 type "rectangle" 1109 type "rectangle"
1505 fill "#FFFFFF" 1110 fill "#FFFFFF"
1506 fill2 "#FFFFFF" 1111 fill2 "#FFFFFF"
@@ -1508,7 +1113,7 @@ graph
1508 ] 1113 ]
1509 LabelGraphics 1114 LabelGraphics
1510 [ 1115 [
1511 text "New Integers" 1116 text "null"
1512 outline "#000000" 1117 outline "#000000"
1513 fill "#FFFFFF" 1118 fill "#FFFFFF"
1514 fontSize 16 1119 fontSize 16
@@ -1520,6 +1125,7 @@ graph
1520 LabelGraphics 1125 LabelGraphics
1521 [ 1126 [
1522 text " 1127 text "
1128 InformationLink class
1523 " 1129 "
1524 fontSize 14 1130 fontSize 14
1525 fontName "Consolas" 1131 fontName "Consolas"
@@ -1534,8 +1140,8 @@ graph
1534 id 8 1140 id 8
1535 graphics 1141 graphics
1536 [ 1142 [
1537 w 85.80000000000001 1143 w 177.10000000000002
1538 h 26 1144 h 40
1539 type "rectangle" 1145 type "rectangle"
1540 fill "#FFFFFF" 1146 fill "#FFFFFF"
1541 fill2 "#FFFFFF" 1147 fill2 "#FFFFFF"
@@ -1543,7 +1149,7 @@ graph
1543 ] 1149 ]
1544 LabelGraphics 1150 LabelGraphics
1545 [ 1151 [
1546 text "New Reals" 1152 text "null"
1547 outline "#000000" 1153 outline "#000000"
1548 fill "#FFFFFF" 1154 fill "#FFFFFF"
1549 fontSize 16 1155 fontSize 16
@@ -1555,6 +1161,7 @@ graph
1555 LabelGraphics 1161 LabelGraphics
1556 [ 1162 [
1557 text " 1163 text "
1164 InformationLink class
1558 " 1165 "
1559 fontSize 14 1166 fontSize 14
1560 fontName "Consolas" 1167 fontName "Consolas"
@@ -1569,8 +1176,8 @@ graph
1569 id 9 1176 id 9
1570 graphics 1177 graphics
1571 [ 1178 [
1572 w 103.4 1179 w 177.10000000000002
1573 h 26 1180 h 54
1574 type "rectangle" 1181 type "rectangle"
1575 fill "#FFFFFF" 1182 fill "#FFFFFF"
1576 fill2 "#FFFFFF" 1183 fill2 "#FFFFFF"
@@ -1578,7 +1185,7 @@ graph
1578 ] 1185 ]
1579 LabelGraphics 1186 LabelGraphics
1580 [ 1187 [
1581 text "New Strings" 1188 text "null"
1582 outline "#000000" 1189 outline "#000000"
1583 fill "#FFFFFF" 1190 fill "#FFFFFF"
1584 fontSize 16 1191 fontSize 16
@@ -1590,6 +1197,8 @@ graph
1590 LabelGraphics 1197 LabelGraphics
1591 [ 1198 [
1592 text " 1199 text "
1200 FunctionalInput class
1201 FunctionalData class
1593 " 1202 "
1594 fontSize 14 1203 fontSize 14
1595 fontName "Consolas" 1204 fontName "Consolas"
@@ -1604,172 +1213,7 @@ graph
1604 id 10 1213 id 10
1605 graphics 1214 graphics
1606 [ 1215 [
1607 w 103.4 1216 w 184.8
1608 h 26
1609 type "rectangle"
1610 fill "#FFFFFF"
1611 fill2 "#FFFFFF"
1612 outline "#000000"
1613 ]
1614 LabelGraphics
1615 [
1616 text "New Objects"
1617 outline "#000000"
1618 fill "#FFFFFF"
1619 fontSize 16
1620 fontName "Monospace"
1621 autoSizePolicy "node_width"
1622 anchor "t"
1623 borderDistance 0.0
1624 ]
1625 LabelGraphics
1626 [
1627 text "
1628 "
1629 fontSize 14
1630 fontName "Consolas"
1631 alignment "left"
1632 anchor "tl"
1633 borderDistance 6
1634 ]
1635 ]
1636 edge
1637 [
1638 source 3
1639 target 6
1640 graphics
1641 [
1642 fill "#000000"
1643 width 3
1644 targetArrow "standard"
1645 ]
1646 LabelGraphics
1647 [
1648 text "rootElements reference FunctionalArchitectureModel"
1649 fontSize 14
1650 fontName "Consolas"
1651 configuration "AutoFlippingLabel"
1652 model "six_pos"
1653 position "thead"
1654 ]
1655 ]
1656]
1657graph
1658[
1659 node
1660 [
1661 id 0
1662 graphics
1663 [
1664 w 226.60000000000002
1665 h 40
1666 type "rectangle"
1667 fill "#FFFFFF"
1668 fill2 "#FFFFFF"
1669 outline "#000000"
1670 ]
1671 LabelGraphics
1672 [
1673 text "Root literal FunctionType"
1674 outline "#000000"
1675 fill "#FFFFFF"
1676 fontSize 16
1677 fontName "Monospace"
1678 autoSizePolicy "node_width"
1679 anchor "t"
1680 borderDistance 0.0
1681 ]
1682 LabelGraphics
1683 [
1684 text "
1685 FunctionType enum
1686 "
1687 fontSize 14
1688 fontName "Consolas"
1689 alignment "left"
1690 anchor "tl"
1691 borderDistance 6
1692 ]
1693 ]
1694
1695 node
1696 [
1697 id 1
1698 graphics
1699 [
1700 w 297.0
1701 h 40
1702 type "rectangle"
1703 fill "#FFFFFF"
1704 fill2 "#FFFFFF"
1705 outline "#000000"
1706 ]
1707 LabelGraphics
1708 [
1709 text "Intermediate literal FunctionType"
1710 outline "#000000"
1711 fill "#FFFFFF"
1712 fontSize 16
1713 fontName "Monospace"
1714 autoSizePolicy "node_width"
1715 anchor "t"
1716 borderDistance 0.0
1717 ]
1718 LabelGraphics
1719 [
1720 text "
1721 FunctionType enum
1722 "
1723 fontSize 14
1724 fontName "Consolas"
1725 alignment "left"
1726 anchor "tl"
1727 borderDistance 6
1728 ]
1729 ]
1730
1731 node
1732 [
1733 id 2
1734 graphics
1735 [
1736 w 226.60000000000002
1737 h 40
1738 type "rectangle"
1739 fill "#FFFFFF"
1740 fill2 "#FFFFFF"
1741 outline "#000000"
1742 ]
1743 LabelGraphics
1744 [
1745 text "Leaf literal FunctionType"
1746 outline "#000000"
1747 fill "#FFFFFF"
1748 fontSize 16
1749 fontName "Monospace"
1750 autoSizePolicy "node_width"
1751 anchor "t"
1752 borderDistance 0.0
1753 ]
1754 LabelGraphics
1755 [
1756 text "
1757 FunctionType enum
1758 "
1759 fontSize 14
1760 fontName "Consolas"
1761 alignment "left"
1762 anchor "tl"
1763 borderDistance 6
1764 ]
1765 ]
1766
1767 node
1768 [
1769 id 3
1770 graphics
1771 [
1772 w 361.90000000000003
1773 h 54 1217 h 54
1774 type "rectangle" 1218 type "rectangle"
1775 fill "#FFFFFF" 1219 fill "#FFFFFF"
@@ -1778,79 +1222,7 @@ graph
1778 ] 1222 ]
1779 LabelGraphics 1223 LabelGraphics
1780 [ 1224 [
1781 text "o 1" 1225 text "null"
1782 outline "#000000"
1783 fill "#FFFFFF"
1784 fontSize 16
1785 fontName "Monospace"
1786 autoSizePolicy "node_width"
1787 anchor "t"
1788 borderDistance 0.0
1789 ]
1790 LabelGraphics
1791 [
1792 text "
1793 FunctionalArchitectureModel class DefinedPart
1794 FunctionalArchitectureModel class
1795 "
1796 fontSize 14
1797 fontName "Consolas"
1798 alignment "left"
1799 anchor "tl"
1800 borderDistance 6
1801 ]
1802 ]
1803
1804 node
1805 [
1806 id 4
1807 graphics
1808 [
1809 w 41.800000000000004
1810 h 26
1811 type "rectangle"
1812 fill "#FFFFFF"
1813 fill2 "#FFFFFF"
1814 outline "#000000"
1815 ]
1816 LabelGraphics
1817 [
1818 text "true"
1819 outline "#000000"
1820 fill "#FFFFFF"
1821 fontSize 16
1822 fontName "Monospace"
1823 autoSizePolicy "node_width"
1824 anchor "t"
1825 borderDistance 0.0
1826 ]
1827 LabelGraphics
1828 [
1829 text "
1830 "
1831 fontSize 14
1832 fontName "Consolas"
1833 alignment "left"
1834 anchor "tl"
1835 borderDistance 6
1836 ]
1837 ]
1838
1839 node
1840 [
1841 id 5
1842 graphics
1843 [
1844 w 50.6
1845 h 26
1846 type "rectangle"
1847 fill "#FFFFFF"
1848 fill2 "#FFFFFF"
1849 outline "#000000"
1850 ]
1851 LabelGraphics
1852 [
1853 text "false"
1854 outline "#000000" 1226 outline "#000000"
1855 fill "#FFFFFF" 1227 fill "#FFFFFF"
1856 fontSize 16 1228 fontSize 16
@@ -1862,6 +1234,8 @@ graph
1862 LabelGraphics 1234 LabelGraphics
1863 [ 1235 [
1864 text " 1236 text "
1237 FunctionalOutput class
1238 FunctionalData class
1865 " 1239 "
1866 fontSize 14 1240 fontSize 14
1867 fontName "Consolas" 1241 fontName "Consolas"
@@ -1873,11 +1247,11 @@ graph
1873 1247
1874 node 1248 node
1875 [ 1249 [
1876 id 6 1250 id 11
1877 graphics 1251 graphics
1878 [ 1252 [
1879 w 192.50000000000003 1253 w 161.70000000000002
1880 h 54 1254 h 40
1881 type "rectangle" 1255 type "rectangle"
1882 fill "#FFFFFF" 1256 fill "#FFFFFF"
1883 fill2 "#FFFFFF" 1257 fill2 "#FFFFFF"
@@ -1897,8 +1271,7 @@ graph
1897 LabelGraphics 1271 LabelGraphics
1898 [ 1272 [
1899 text " 1273 text "
1900 FunctionalElement class 1274 FAMTerminator class
1901 Function class
1902 " 1275 "
1903 fontSize 14 1276 fontSize 14
1904 fontName "Consolas" 1277 fontName "Consolas"
@@ -1910,7 +1283,7 @@ graph
1910 1283
1911 node 1284 node
1912 [ 1285 [
1913 id 7 1286 id 12
1914 graphics 1287 graphics
1915 [ 1288 [
1916 w 112.2 1289 w 112.2
@@ -1945,7 +1318,7 @@ graph
1945 1318
1946 node 1319 node
1947 [ 1320 [
1948 id 8 1321 id 13
1949 graphics 1322 graphics
1950 [ 1323 [
1951 w 85.80000000000001 1324 w 85.80000000000001
@@ -1980,7 +1353,7 @@ graph
1980 1353
1981 node 1354 node
1982 [ 1355 [
1983 id 9 1356 id 14
1984 graphics 1357 graphics
1985 [ 1358 [
1986 w 103.4 1359 w 103.4
@@ -2015,7 +1388,7 @@ graph
2015 1388
2016 node 1389 node
2017 [ 1390 [
2018 id 10 1391 id 15
2019 graphics 1392 graphics
2020 [ 1393 [
2021 w 103.4 1394 w 103.4
@@ -2049,8 +1422,8 @@ graph
2049 ] 1422 ]
2050 edge 1423 edge
2051 [ 1424 [
2052 source 6 1425 source 11
2053 target 3 1426 target 9
2054 graphics 1427 graphics
2055 [ 1428 [
2056 fill "#000000" 1429 fill "#000000"
@@ -2058,7 +1431,7 @@ graph
2058 ] 1431 ]
2059 LabelGraphics 1432 LabelGraphics
2060 [ 1433 [
2061 text "model reference FunctionalElement" 1434 text "data reference FAMTerminator"
2062 fontSize 14 1435 fontSize 14
2063 fontName "Consolas" 1436 fontName "Consolas"
2064 configuration "AutoFlippingLabel" 1437 configuration "AutoFlippingLabel"
@@ -2068,17 +1441,16 @@ graph
2068 ] 1441 ]
2069 edge 1442 edge
2070 [ 1443 [
2071 source 3 1444 source 7
2072 target 6 1445 target 6
2073 graphics 1446 graphics
2074 [ 1447 [
2075 fill "#000000" 1448 fill "#000000"
2076 width 3
2077 targetArrow "standard" 1449 targetArrow "standard"
2078 ] 1450 ]
2079 LabelGraphics 1451 LabelGraphics
2080 [ 1452 [
2081 text "rootElements reference FunctionalArchitectureModel" 1453 text "from reference InformationLink"
2082 fontSize 14 1454 fontSize 14
2083 fontName "Consolas" 1455 fontName "Consolas"
2084 configuration "AutoFlippingLabel" 1456 configuration "AutoFlippingLabel"
@@ -2088,8 +1460,8 @@ graph
2088 ] 1460 ]
2089 edge 1461 edge
2090 [ 1462 [
2091 source 6 1463 source 8
2092 target 0 1464 target 6
2093 graphics 1465 graphics
2094 [ 1466 [
2095 fill "#000000" 1467 fill "#000000"
@@ -2097,7 +1469,7 @@ graph
2097 ] 1469 ]
2098 LabelGraphics 1470 LabelGraphics
2099 [ 1471 [
2100 text "type attribute Function" 1472 text "from reference InformationLink"
2101 fontSize 14 1473 fontSize 14
2102 fontName "Consolas" 1474 fontName "Consolas"
2103 configuration "AutoFlippingLabel" 1475 configuration "AutoFlippingLabel"
@@ -2105,404 +1477,29 @@ graph
2105 position "thead" 1477 position "thead"
2106 ] 1478 ]
2107 ] 1479 ]
2108] 1480 edge
2109graph 1481 [
2110[ 1482 source 7
2111 node 1483 target 9
2112 [ 1484 graphics
2113 id 0
2114 graphics
2115 [
2116 w 226.60000000000002
2117 h 40
2118 type "rectangle"
2119 fill "#FFFFFF"
2120 fill2 "#FFFFFF"
2121 outline "#000000"
2122 ]
2123 LabelGraphics
2124 [
2125 text "Root literal FunctionType"
2126 outline "#000000"
2127 fill "#FFFFFF"
2128 fontSize 16
2129 fontName "Monospace"
2130 autoSizePolicy "node_width"
2131 anchor "t"
2132 borderDistance 0.0
2133 ]
2134 LabelGraphics
2135 [
2136 text "
2137 FunctionType enum
2138 "
2139 fontSize 14
2140 fontName "Consolas"
2141 alignment "left"
2142 anchor "tl"
2143 borderDistance 6
2144 ]
2145 ]
2146
2147 node
2148 [
2149 id 1
2150 graphics
2151 [
2152 w 297.0
2153 h 40
2154 type "rectangle"
2155 fill "#FFFFFF"
2156 fill2 "#FFFFFF"
2157 outline "#000000"
2158 ]
2159 LabelGraphics
2160 [
2161 text "Intermediate literal FunctionType"
2162 outline "#000000"
2163 fill "#FFFFFF"
2164 fontSize 16
2165 fontName "Monospace"
2166 autoSizePolicy "node_width"
2167 anchor "t"
2168 borderDistance 0.0
2169 ]
2170 LabelGraphics
2171 [
2172 text "
2173 FunctionType enum
2174 "
2175 fontSize 14
2176 fontName "Consolas"
2177 alignment "left"
2178 anchor "tl"
2179 borderDistance 6
2180 ]
2181 ]
2182
2183 node
2184 [
2185 id 2
2186 graphics
2187 [
2188 w 226.60000000000002
2189 h 40
2190 type "rectangle"
2191 fill "#FFFFFF"
2192 fill2 "#FFFFFF"
2193 outline "#000000"
2194 ]
2195 LabelGraphics
2196 [
2197 text "Leaf literal FunctionType"
2198 outline "#000000"
2199 fill "#FFFFFF"
2200 fontSize 16
2201 fontName "Monospace"
2202 autoSizePolicy "node_width"
2203 anchor "t"
2204 borderDistance 0.0
2205 ]
2206 LabelGraphics
2207 [
2208 text "
2209 FunctionType enum
2210 "
2211 fontSize 14
2212 fontName "Consolas"
2213 alignment "left"
2214 anchor "tl"
2215 borderDistance 6
2216 ]
2217 ]
2218
2219 node
2220 [
2221 id 3
2222 graphics
2223 [
2224 w 361.90000000000003
2225 h 54
2226 type "rectangle"
2227 fill "#FFFFFF"
2228 fill2 "#FFFFFF"
2229 outline "#000000"
2230 ]
2231 LabelGraphics
2232 [
2233 text "o 1"
2234 outline "#000000"
2235 fill "#FFFFFF"
2236 fontSize 16
2237 fontName "Monospace"
2238 autoSizePolicy "node_width"
2239 anchor "t"
2240 borderDistance 0.0
2241 ]
2242 LabelGraphics
2243 [
2244 text "
2245 FunctionalArchitectureModel class DefinedPart
2246 FunctionalArchitectureModel class
2247 "
2248 fontSize 14
2249 fontName "Consolas"
2250 alignment "left"
2251 anchor "tl"
2252 borderDistance 6
2253 ]
2254 ]
2255
2256 node
2257 [
2258 id 4
2259 graphics
2260 [
2261 w 41.800000000000004
2262 h 26
2263 type "rectangle"
2264 fill "#FFFFFF"
2265 fill2 "#FFFFFF"
2266 outline "#000000"
2267 ]
2268 LabelGraphics
2269 [
2270 text "true"
2271 outline "#000000"
2272 fill "#FFFFFF"
2273 fontSize 16
2274 fontName "Monospace"
2275 autoSizePolicy "node_width"
2276 anchor "t"
2277 borderDistance 0.0
2278 ]
2279 LabelGraphics
2280 [
2281 text "
2282 "
2283 fontSize 14
2284 fontName "Consolas"
2285 alignment "left"
2286 anchor "tl"
2287 borderDistance 6
2288 ]
2289 ]
2290
2291 node
2292 [
2293 id 5
2294 graphics
2295 [
2296 w 50.6
2297 h 26
2298 type "rectangle"
2299 fill "#FFFFFF"
2300 fill2 "#FFFFFF"
2301 outline "#000000"
2302 ]
2303 LabelGraphics
2304 [
2305 text "false"
2306 outline "#000000"
2307 fill "#FFFFFF"
2308 fontSize 16
2309 fontName "Monospace"
2310 autoSizePolicy "node_width"
2311 anchor "t"
2312 borderDistance 0.0
2313 ]
2314 LabelGraphics
2315 [
2316 text "
2317 "
2318 fontSize 14
2319 fontName "Consolas"
2320 alignment "left"
2321 anchor "tl"
2322 borderDistance 6
2323 ]
2324 ]
2325
2326 node
2327 [
2328 id 6
2329 graphics
2330 [
2331 w 192.50000000000003
2332 h 54
2333 type "rectangle"
2334 fill "#FFFFFF"
2335 fill2 "#FFFFFF"
2336 outline "#000000"
2337 ]
2338 LabelGraphics
2339 [
2340 text "null"
2341 outline "#000000"
2342 fill "#FFFFFF"
2343 fontSize 16
2344 fontName "Monospace"
2345 autoSizePolicy "node_width"
2346 anchor "t"
2347 borderDistance 0.0
2348 ]
2349 LabelGraphics
2350 [
2351 text "
2352 FunctionalElement class
2353 Function class
2354 "
2355 fontSize 14
2356 fontName "Consolas"
2357 alignment "left"
2358 anchor "tl"
2359 borderDistance 6
2360 ]
2361 ]
2362
2363 node
2364 [
2365 id 7
2366 graphics
2367 [
2368 w 112.2
2369 h 26
2370 type "rectangle"
2371 fill "#FFFFFF"
2372 fill2 "#FFFFFF"
2373 outline "#000000"
2374 ]
2375 LabelGraphics
2376 [
2377 text "New Integers"
2378 outline "#000000"
2379 fill "#FFFFFF"
2380 fontSize 16
2381 fontName "Monospace"
2382 autoSizePolicy "node_width"
2383 anchor "t"
2384 borderDistance 0.0
2385 ]
2386 LabelGraphics
2387 [
2388 text "
2389 "
2390 fontSize 14
2391 fontName "Consolas"
2392 alignment "left"
2393 anchor "tl"
2394 borderDistance 6
2395 ]
2396 ]
2397
2398 node
2399 [
2400 id 8
2401 graphics
2402 [
2403 w 85.80000000000001
2404 h 26
2405 type "rectangle"
2406 fill "#FFFFFF"
2407 fill2 "#FFFFFF"
2408 outline "#000000"
2409 ]
2410 LabelGraphics
2411 [
2412 text "New Reals"
2413 outline "#000000"
2414 fill "#FFFFFF"
2415 fontSize 16
2416 fontName "Monospace"
2417 autoSizePolicy "node_width"
2418 anchor "t"
2419 borderDistance 0.0
2420 ]
2421 LabelGraphics
2422 [
2423 text "
2424 "
2425 fontSize 14
2426 fontName "Consolas"
2427 alignment "left"
2428 anchor "tl"
2429 borderDistance 6
2430 ]
2431 ]
2432
2433 node
2434 [ 1485 [
2435 id 9 1486 fill "#000000"
2436 graphics 1487 targetArrow "standard"
2437 [
2438 w 103.4
2439 h 26
2440 type "rectangle"
2441 fill "#FFFFFF"
2442 fill2 "#FFFFFF"
2443 outline "#000000"
2444 ]
2445 LabelGraphics
2446 [
2447 text "New Strings"
2448 outline "#000000"
2449 fill "#FFFFFF"
2450 fontSize 16
2451 fontName "Monospace"
2452 autoSizePolicy "node_width"
2453 anchor "t"
2454 borderDistance 0.0
2455 ]
2456 LabelGraphics
2457 [
2458 text "
2459 "
2460 fontSize 14
2461 fontName "Consolas"
2462 alignment "left"
2463 anchor "tl"
2464 borderDistance 6
2465 ]
2466 ] 1488 ]
2467 1489 LabelGraphics
2468 node
2469 [ 1490 [
2470 id 10 1491 text "to reference InformationLink"
2471 graphics 1492 fontSize 14
2472 [ 1493 fontName "Consolas"
2473 w 103.4 1494 configuration "AutoFlippingLabel"
2474 h 26 1495 model "six_pos"
2475 type "rectangle" 1496 position "thead"
2476 fill "#FFFFFF"
2477 fill2 "#FFFFFF"
2478 outline "#000000"
2479 ]
2480 LabelGraphics
2481 [
2482 text "New Objects"
2483 outline "#000000"
2484 fill "#FFFFFF"
2485 fontSize 16
2486 fontName "Monospace"
2487 autoSizePolicy "node_width"
2488 anchor "t"
2489 borderDistance 0.0
2490 ]
2491 LabelGraphics
2492 [
2493 text "
2494 "
2495 fontSize 14
2496 fontName "Consolas"
2497 alignment "left"
2498 anchor "tl"
2499 borderDistance 6
2500 ]
2501 ] 1497 ]
1498 ]
2502 edge 1499 edge
2503 [ 1500 [
2504 source 6 1501 source 8
2505 target 3 1502 target 9
2506 graphics 1503 graphics
2507 [ 1504 [
2508 fill "#000000" 1505 fill "#000000"
@@ -2510,7 +1507,7 @@ graph
2510 ] 1507 ]
2511 LabelGraphics 1508 LabelGraphics
2512 [ 1509 [
2513 text "model reference FunctionalElement" 1510 text "to reference InformationLink"
2514 fontSize 14 1511 fontSize 14
2515 fontName "Consolas" 1512 fontName "Consolas"
2516 configuration "AutoFlippingLabel" 1513 configuration "AutoFlippingLabel"
@@ -2520,7 +1517,7 @@ graph
2520 ] 1517 ]
2521 edge 1518 edge
2522 [ 1519 [
2523 source 3 1520 source 5
2524 target 6 1521 target 6
2525 graphics 1522 graphics
2526 [ 1523 [
@@ -2530,7 +1527,7 @@ graph
2530 ] 1527 ]
2531 LabelGraphics 1528 LabelGraphics
2532 [ 1529 [
2533 text "rootElements reference FunctionalArchitectureModel" 1530 text "data reference FunctionalInterface"
2534 fontSize 14 1531 fontSize 14
2535 fontName "Consolas" 1532 fontName "Consolas"
2536 configuration "AutoFlippingLabel" 1533 configuration "AutoFlippingLabel"
@@ -2540,16 +1537,17 @@ graph
2540 ] 1537 ]
2541 edge 1538 edge
2542 [ 1539 [
2543 source 6 1540 source 5
2544 target 1 1541 target 9
2545 graphics 1542 graphics
2546 [ 1543 [
2547 fill "#000000" 1544 fill "#000000"
1545 width 3
2548 targetArrow "standard" 1546 targetArrow "standard"
2549 ] 1547 ]
2550 LabelGraphics 1548 LabelGraphics
2551 [ 1549 [
2552 text "type attribute Function" 1550 text "data reference FunctionalInterface"
2553 fontSize 14 1551 fontSize 14
2554 fontName "Consolas" 1552 fontName "Consolas"
2555 configuration "AutoFlippingLabel" 1553 configuration "AutoFlippingLabel"
@@ -2557,404 +1555,49 @@ graph
2557 position "thead" 1555 position "thead"
2558 ] 1556 ]
2559 ] 1557 ]
2560] 1558 edge
2561graph 1559 [
2562[ 1560 source 5
2563 node 1561 target 10
2564 [ 1562 graphics
2565 id 0
2566 graphics
2567 [
2568 w 226.60000000000002
2569 h 40
2570 type "rectangle"
2571 fill "#FFFFFF"
2572 fill2 "#FFFFFF"
2573 outline "#000000"
2574 ]
2575 LabelGraphics
2576 [
2577 text "Root literal FunctionType"
2578 outline "#000000"
2579 fill "#FFFFFF"
2580 fontSize 16
2581 fontName "Monospace"
2582 autoSizePolicy "node_width"
2583 anchor "t"
2584 borderDistance 0.0
2585 ]
2586 LabelGraphics
2587 [
2588 text "
2589 FunctionType enum
2590 "
2591 fontSize 14
2592 fontName "Consolas"
2593 alignment "left"
2594 anchor "tl"
2595 borderDistance 6
2596 ]
2597 ]
2598
2599 node
2600 [
2601 id 1
2602 graphics
2603 [
2604 w 297.0
2605 h 40
2606 type "rectangle"
2607 fill "#FFFFFF"
2608 fill2 "#FFFFFF"
2609 outline "#000000"
2610 ]
2611 LabelGraphics
2612 [
2613 text "Intermediate literal FunctionType"
2614 outline "#000000"
2615 fill "#FFFFFF"
2616 fontSize 16
2617 fontName "Monospace"
2618 autoSizePolicy "node_width"
2619 anchor "t"
2620 borderDistance 0.0
2621 ]
2622 LabelGraphics
2623 [
2624 text "
2625 FunctionType enum
2626 "
2627 fontSize 14
2628 fontName "Consolas"
2629 alignment "left"
2630 anchor "tl"
2631 borderDistance 6
2632 ]
2633 ]
2634
2635 node
2636 [
2637 id 2
2638 graphics
2639 [
2640 w 226.60000000000002
2641 h 40
2642 type "rectangle"
2643 fill "#FFFFFF"
2644 fill2 "#FFFFFF"
2645 outline "#000000"
2646 ]
2647 LabelGraphics
2648 [
2649 text "Leaf literal FunctionType"
2650 outline "#000000"
2651 fill "#FFFFFF"
2652 fontSize 16
2653 fontName "Monospace"
2654 autoSizePolicy "node_width"
2655 anchor "t"
2656 borderDistance 0.0
2657 ]
2658 LabelGraphics
2659 [
2660 text "
2661 FunctionType enum
2662 "
2663 fontSize 14
2664 fontName "Consolas"
2665 alignment "left"
2666 anchor "tl"
2667 borderDistance 6
2668 ]
2669 ]
2670
2671 node
2672 [
2673 id 3
2674 graphics
2675 [
2676 w 361.90000000000003
2677 h 54
2678 type "rectangle"
2679 fill "#FFFFFF"
2680 fill2 "#FFFFFF"
2681 outline "#000000"
2682 ]
2683 LabelGraphics
2684 [
2685 text "o 1"
2686 outline "#000000"
2687 fill "#FFFFFF"
2688 fontSize 16
2689 fontName "Monospace"
2690 autoSizePolicy "node_width"
2691 anchor "t"
2692 borderDistance 0.0
2693 ]
2694 LabelGraphics
2695 [
2696 text "
2697 FunctionalArchitectureModel class DefinedPart
2698 FunctionalArchitectureModel class
2699 "
2700 fontSize 14
2701 fontName "Consolas"
2702 alignment "left"
2703 anchor "tl"
2704 borderDistance 6
2705 ]
2706 ]
2707
2708 node
2709 [
2710 id 4
2711 graphics
2712 [
2713 w 41.800000000000004
2714 h 26
2715 type "rectangle"
2716 fill "#FFFFFF"
2717 fill2 "#FFFFFF"
2718 outline "#000000"
2719 ]
2720 LabelGraphics
2721 [
2722 text "true"
2723 outline "#000000"
2724 fill "#FFFFFF"
2725 fontSize 16
2726 fontName "Monospace"
2727 autoSizePolicy "node_width"
2728 anchor "t"
2729 borderDistance 0.0
2730 ]
2731 LabelGraphics
2732 [
2733 text "
2734 "
2735 fontSize 14
2736 fontName "Consolas"
2737 alignment "left"
2738 anchor "tl"
2739 borderDistance 6
2740 ]
2741 ]
2742
2743 node
2744 [
2745 id 5
2746 graphics
2747 [
2748 w 50.6
2749 h 26
2750 type "rectangle"
2751 fill "#FFFFFF"
2752 fill2 "#FFFFFF"
2753 outline "#000000"
2754 ]
2755 LabelGraphics
2756 [
2757 text "false"
2758 outline "#000000"
2759 fill "#FFFFFF"
2760 fontSize 16
2761 fontName "Monospace"
2762 autoSizePolicy "node_width"
2763 anchor "t"
2764 borderDistance 0.0
2765 ]
2766 LabelGraphics
2767 [
2768 text "
2769 "
2770 fontSize 14
2771 fontName "Consolas"
2772 alignment "left"
2773 anchor "tl"
2774 borderDistance 6
2775 ]
2776 ]
2777
2778 node
2779 [
2780 id 6
2781 graphics
2782 [
2783 w 192.50000000000003
2784 h 54
2785 type "rectangle"
2786 fill "#FFFFFF"
2787 fill2 "#FFFFFF"
2788 outline "#000000"
2789 ]
2790 LabelGraphics
2791 [
2792 text "null"
2793 outline "#000000"
2794 fill "#FFFFFF"
2795 fontSize 16
2796 fontName "Monospace"
2797 autoSizePolicy "node_width"
2798 anchor "t"
2799 borderDistance 0.0
2800 ]
2801 LabelGraphics
2802 [
2803 text "
2804 FunctionalElement class
2805 Function class
2806 "
2807 fontSize 14
2808 fontName "Consolas"
2809 alignment "left"
2810 anchor "tl"
2811 borderDistance 6
2812 ]
2813 ]
2814
2815 node
2816 [ 1563 [
2817 id 7 1564 fill "#000000"
2818 graphics 1565 width 3
2819 [ 1566 targetArrow "standard"
2820 w 112.2
2821 h 26
2822 type "rectangle"
2823 fill "#FFFFFF"
2824 fill2 "#FFFFFF"
2825 outline "#000000"
2826 ]
2827 LabelGraphics
2828 [
2829 text "New Integers"
2830 outline "#000000"
2831 fill "#FFFFFF"
2832 fontSize 16
2833 fontName "Monospace"
2834 autoSizePolicy "node_width"
2835 anchor "t"
2836 borderDistance 0.0
2837 ]
2838 LabelGraphics
2839 [
2840 text "
2841 "
2842 fontSize 14
2843 fontName "Consolas"
2844 alignment "left"
2845 anchor "tl"
2846 borderDistance 6
2847 ]
2848 ] 1567 ]
2849 1568 LabelGraphics
2850 node
2851 [ 1569 [
2852 id 8 1570 text "data reference FunctionalInterface"
2853 graphics 1571 fontSize 14
2854 [ 1572 fontName "Consolas"
2855 w 85.80000000000001 1573 configuration "AutoFlippingLabel"
2856 h 26 1574 model "six_pos"
2857 type "rectangle" 1575 position "thead"
2858 fill "#FFFFFF"
2859 fill2 "#FFFFFF"
2860 outline "#000000"
2861 ]
2862 LabelGraphics
2863 [
2864 text "New Reals"
2865 outline "#000000"
2866 fill "#FFFFFF"
2867 fontSize 16
2868 fontName "Monospace"
2869 autoSizePolicy "node_width"
2870 anchor "t"
2871 borderDistance 0.0
2872 ]
2873 LabelGraphics
2874 [
2875 text "
2876 "
2877 fontSize 14
2878 fontName "Consolas"
2879 alignment "left"
2880 anchor "tl"
2881 borderDistance 6
2882 ]
2883 ] 1576 ]
2884 1577 ]
2885 node 1578 edge
1579 [
1580 source 9
1581 target 7
1582 graphics
2886 [ 1583 [
2887 id 9 1584 fill "#000000"
2888 graphics 1585 targetArrow "standard"
2889 [
2890 w 103.4
2891 h 26
2892 type "rectangle"
2893 fill "#FFFFFF"
2894 fill2 "#FFFFFF"
2895 outline "#000000"
2896 ]
2897 LabelGraphics
2898 [
2899 text "New Strings"
2900 outline "#000000"
2901 fill "#FFFFFF"
2902 fontSize 16
2903 fontName "Monospace"
2904 autoSizePolicy "node_width"
2905 anchor "t"
2906 borderDistance 0.0
2907 ]
2908 LabelGraphics
2909 [
2910 text "
2911 "
2912 fontSize 14
2913 fontName "Consolas"
2914 alignment "left"
2915 anchor "tl"
2916 borderDistance 6
2917 ]
2918 ] 1586 ]
2919 1587 LabelGraphics
2920 node
2921 [ 1588 [
2922 id 10 1589 text "IncomingLinks reference FunctionalInput"
2923 graphics 1590 fontSize 14
2924 [ 1591 fontName "Consolas"
2925 w 103.4 1592 configuration "AutoFlippingLabel"
2926 h 26 1593 model "six_pos"
2927 type "rectangle" 1594 position "thead"
2928 fill "#FFFFFF"
2929 fill2 "#FFFFFF"
2930 outline "#000000"
2931 ]
2932 LabelGraphics
2933 [
2934 text "New Objects"
2935 outline "#000000"
2936 fill "#FFFFFF"
2937 fontSize 16
2938 fontName "Monospace"
2939 autoSizePolicy "node_width"
2940 anchor "t"
2941 borderDistance 0.0
2942 ]
2943 LabelGraphics
2944 [
2945 text "
2946 "
2947 fontSize 14
2948 fontName "Consolas"
2949 alignment "left"
2950 anchor "tl"
2951 borderDistance 6
2952 ]
2953 ] 1595 ]
1596 ]
2954 edge 1597 edge
2955 [ 1598 [
2956 source 6 1599 source 9
2957 target 3 1600 target 8
2958 graphics 1601 graphics
2959 [ 1602 [
2960 fill "#000000" 1603 fill "#000000"
@@ -2962,7 +1605,7 @@ graph
2962 ] 1605 ]
2963 LabelGraphics 1606 LabelGraphics
2964 [ 1607 [
2965 text "model reference FunctionalElement" 1608 text "IncomingLinks reference FunctionalInput"
2966 fontSize 14 1609 fontSize 14
2967 fontName "Consolas" 1610 fontName "Consolas"
2968 configuration "AutoFlippingLabel" 1611 configuration "AutoFlippingLabel"
@@ -2972,8 +1615,8 @@ graph
2972 ] 1615 ]
2973 edge 1616 edge
2974 [ 1617 [
2975 source 3 1618 source 6
2976 target 6 1619 target 7
2977 graphics 1620 graphics
2978 [ 1621 [
2979 fill "#000000" 1622 fill "#000000"
@@ -2982,7 +1625,7 @@ graph
2982 ] 1625 ]
2983 LabelGraphics 1626 LabelGraphics
2984 [ 1627 [
2985 text "rootElements reference FunctionalArchitectureModel" 1628 text "outgoingLinks reference FunctionalOutput"
2986 fontSize 14 1629 fontSize 14
2987 fontName "Consolas" 1630 fontName "Consolas"
2988 configuration "AutoFlippingLabel" 1631 configuration "AutoFlippingLabel"
@@ -2993,15 +1636,16 @@ graph
2993 edge 1636 edge
2994 [ 1637 [
2995 source 6 1638 source 6
2996 target 2 1639 target 8
2997 graphics 1640 graphics
2998 [ 1641 [
2999 fill "#000000" 1642 fill "#000000"
1643 width 3
3000 targetArrow "standard" 1644 targetArrow "standard"
3001 ] 1645 ]
3002 LabelGraphics 1646 LabelGraphics
3003 [ 1647 [
3004 text "type attribute Function" 1648 text "outgoingLinks reference FunctionalOutput"
3005 fontSize 14 1649 fontSize 14
3006 fontName "Consolas" 1650 fontName "Consolas"
3007 configuration "AutoFlippingLabel" 1651 configuration "AutoFlippingLabel"
@@ -3009,404 +1653,30 @@ graph
3009 position "thead" 1653 position "thead"
3010 ] 1654 ]
3011 ] 1655 ]
3012] 1656 edge
3013graph 1657 [
3014[ 1658 source 9
3015 node 1659 target 11
3016 [ 1660 graphics
3017 id 0
3018 graphics
3019 [
3020 w 226.60000000000002
3021 h 40
3022 type "rectangle"
3023 fill "#FFFFFF"
3024 fill2 "#FFFFFF"
3025 outline "#000000"
3026 ]
3027 LabelGraphics
3028 [
3029 text "Root literal FunctionType"
3030 outline "#000000"
3031 fill "#FFFFFF"
3032 fontSize 16
3033 fontName "Monospace"
3034 autoSizePolicy "node_width"
3035 anchor "t"
3036 borderDistance 0.0
3037 ]
3038 LabelGraphics
3039 [
3040 text "
3041 FunctionType enum
3042 "
3043 fontSize 14
3044 fontName "Consolas"
3045 alignment "left"
3046 anchor "tl"
3047 borderDistance 6
3048 ]
3049 ]
3050
3051 node
3052 [
3053 id 1
3054 graphics
3055 [
3056 w 297.0
3057 h 40
3058 type "rectangle"
3059 fill "#FFFFFF"
3060 fill2 "#FFFFFF"
3061 outline "#000000"
3062 ]
3063 LabelGraphics
3064 [
3065 text "Intermediate literal FunctionType"
3066 outline "#000000"
3067 fill "#FFFFFF"
3068 fontSize 16
3069 fontName "Monospace"
3070 autoSizePolicy "node_width"
3071 anchor "t"
3072 borderDistance 0.0
3073 ]
3074 LabelGraphics
3075 [
3076 text "
3077 FunctionType enum
3078 "
3079 fontSize 14
3080 fontName "Consolas"
3081 alignment "left"
3082 anchor "tl"
3083 borderDistance 6
3084 ]
3085 ]
3086
3087 node
3088 [
3089 id 2
3090 graphics
3091 [
3092 w 226.60000000000002
3093 h 40
3094 type "rectangle"
3095 fill "#FFFFFF"
3096 fill2 "#FFFFFF"
3097 outline "#000000"
3098 ]
3099 LabelGraphics
3100 [
3101 text "Leaf literal FunctionType"
3102 outline "#000000"
3103 fill "#FFFFFF"
3104 fontSize 16
3105 fontName "Monospace"
3106 autoSizePolicy "node_width"
3107 anchor "t"
3108 borderDistance 0.0
3109 ]
3110 LabelGraphics
3111 [
3112 text "
3113 FunctionType enum
3114 "
3115 fontSize 14
3116 fontName "Consolas"
3117 alignment "left"
3118 anchor "tl"
3119 borderDistance 6
3120 ]
3121 ]
3122
3123 node
3124 [
3125 id 3
3126 graphics
3127 [
3128 w 361.90000000000003
3129 h 54
3130 type "rectangle"
3131 fill "#FFFFFF"
3132 fill2 "#FFFFFF"
3133 outline "#000000"
3134 ]
3135 LabelGraphics
3136 [
3137 text "o 1"
3138 outline "#000000"
3139 fill "#FFFFFF"
3140 fontSize 16
3141 fontName "Monospace"
3142 autoSizePolicy "node_width"
3143 anchor "t"
3144 borderDistance 0.0
3145 ]
3146 LabelGraphics
3147 [
3148 text "
3149 FunctionalArchitectureModel class DefinedPart
3150 FunctionalArchitectureModel class
3151 "
3152 fontSize 14
3153 fontName "Consolas"
3154 alignment "left"
3155 anchor "tl"
3156 borderDistance 6
3157 ]
3158 ]
3159
3160 node
3161 [
3162 id 4
3163 graphics
3164 [
3165 w 41.800000000000004
3166 h 26
3167 type "rectangle"
3168 fill "#FFFFFF"
3169 fill2 "#FFFFFF"
3170 outline "#000000"
3171 ]
3172 LabelGraphics
3173 [
3174 text "true"
3175 outline "#000000"
3176 fill "#FFFFFF"
3177 fontSize 16
3178 fontName "Monospace"
3179 autoSizePolicy "node_width"
3180 anchor "t"
3181 borderDistance 0.0
3182 ]
3183 LabelGraphics
3184 [
3185 text "
3186 "
3187 fontSize 14
3188 fontName "Consolas"
3189 alignment "left"
3190 anchor "tl"
3191 borderDistance 6
3192 ]
3193 ]
3194
3195 node
3196 [
3197 id 5
3198 graphics
3199 [
3200 w 50.6
3201 h 26
3202 type "rectangle"
3203 fill "#FFFFFF"
3204 fill2 "#FFFFFF"
3205 outline "#000000"
3206 ]
3207 LabelGraphics
3208 [
3209 text "false"
3210 outline "#000000"
3211 fill "#FFFFFF"
3212 fontSize 16
3213 fontName "Monospace"
3214 autoSizePolicy "node_width"
3215 anchor "t"
3216 borderDistance 0.0
3217 ]
3218 LabelGraphics
3219 [
3220 text "
3221 "
3222 fontSize 14
3223 fontName "Consolas"
3224 alignment "left"
3225 anchor "tl"
3226 borderDistance 6
3227 ]
3228 ]
3229
3230 node
3231 [
3232 id 6
3233 graphics
3234 [
3235 w 192.50000000000003
3236 h 54
3237 type "rectangle"
3238 fill "#FFFFFF"
3239 fill2 "#FFFFFF"
3240 outline "#000000"
3241 ]
3242 LabelGraphics
3243 [
3244 text "null"
3245 outline "#000000"
3246 fill "#FFFFFF"
3247 fontSize 16
3248 fontName "Monospace"
3249 autoSizePolicy "node_width"
3250 anchor "t"
3251 borderDistance 0.0
3252 ]
3253 LabelGraphics
3254 [
3255 text "
3256 FunctionalElement class
3257 Function class
3258 "
3259 fontSize 14
3260 fontName "Consolas"
3261 alignment "left"
3262 anchor "tl"
3263 borderDistance 6
3264 ]
3265 ]
3266
3267 node
3268 [
3269 id 7
3270 graphics
3271 [
3272 w 112.2
3273 h 26
3274 type "rectangle"
3275 fill "#FFFFFF"
3276 fill2 "#FFFFFF"
3277 outline "#000000"
3278 ]
3279 LabelGraphics
3280 [
3281 text "New Integers"
3282 outline "#000000"
3283 fill "#FFFFFF"
3284 fontSize 16
3285 fontName "Monospace"
3286 autoSizePolicy "node_width"
3287 anchor "t"
3288 borderDistance 0.0
3289 ]
3290 LabelGraphics
3291 [
3292 text "
3293 "
3294 fontSize 14
3295 fontName "Consolas"
3296 alignment "left"
3297 anchor "tl"
3298 borderDistance 6
3299 ]
3300 ]
3301
3302 node
3303 [
3304 id 8
3305 graphics
3306 [
3307 w 85.80000000000001
3308 h 26
3309 type "rectangle"
3310 fill "#FFFFFF"
3311 fill2 "#FFFFFF"
3312 outline "#000000"
3313 ]
3314 LabelGraphics
3315 [
3316 text "New Reals"
3317 outline "#000000"
3318 fill "#FFFFFF"
3319 fontSize 16
3320 fontName "Monospace"
3321 autoSizePolicy "node_width"
3322 anchor "t"
3323 borderDistance 0.0
3324 ]
3325 LabelGraphics
3326 [
3327 text "
3328 "
3329 fontSize 14
3330 fontName "Consolas"
3331 alignment "left"
3332 anchor "tl"
3333 borderDistance 6
3334 ]
3335 ]
3336
3337 node
3338 [ 1661 [
3339 id 9 1662 fill "#000000"
3340 graphics 1663 width 3
3341 [ 1664 targetArrow "standard"
3342 w 103.4
3343 h 26
3344 type "rectangle"
3345 fill "#FFFFFF"
3346 fill2 "#FFFFFF"
3347 outline "#000000"
3348 ]
3349 LabelGraphics
3350 [
3351 text "New Strings"
3352 outline "#000000"
3353 fill "#FFFFFF"
3354 fontSize 16
3355 fontName "Monospace"
3356 autoSizePolicy "node_width"
3357 anchor "t"
3358 borderDistance 0.0
3359 ]
3360 LabelGraphics
3361 [
3362 text "
3363 "
3364 fontSize 14
3365 fontName "Consolas"
3366 alignment "left"
3367 anchor "tl"
3368 borderDistance 6
3369 ]
3370 ] 1665 ]
3371 1666 LabelGraphics
3372 node
3373 [ 1667 [
3374 id 10 1668 text "terminator reference FunctionalData"
3375 graphics 1669 fontSize 14
3376 [ 1670 fontName "Consolas"
3377 w 103.4 1671 configuration "AutoFlippingLabel"
3378 h 26 1672 model "six_pos"
3379 type "rectangle" 1673 position "thead"
3380 fill "#FFFFFF"
3381 fill2 "#FFFFFF"
3382 outline "#000000"
3383 ]
3384 LabelGraphics
3385 [
3386 text "New Objects"
3387 outline "#000000"
3388 fill "#FFFFFF"
3389 fontSize 16
3390 fontName "Monospace"
3391 autoSizePolicy "node_width"
3392 anchor "t"
3393 borderDistance 0.0
3394 ]
3395 LabelGraphics
3396 [
3397 text "
3398 "
3399 fontSize 14
3400 fontName "Consolas"
3401 alignment "left"
3402 anchor "tl"
3403 borderDistance 6
3404 ]
3405 ] 1674 ]
1675 ]
3406 edge 1676 edge
3407 [ 1677 [
3408 source 6 1678 source 6
3409 target 3 1679 target 5
3410 graphics 1680 graphics
3411 [ 1681 [
3412 fill "#000000" 1682 fill "#000000"
@@ -3414,7 +1684,7 @@ graph
3414 ] 1684 ]
3415 LabelGraphics 1685 LabelGraphics
3416 [ 1686 [
3417 text "model reference FunctionalElement" 1687 text "interface reference FunctionalData"
3418 fontSize 14 1688 fontSize 14
3419 fontName "Consolas" 1689 fontName "Consolas"
3420 configuration "AutoFlippingLabel" 1690 configuration "AutoFlippingLabel"
@@ -3424,17 +1694,16 @@ graph
3424 ] 1694 ]
3425 edge 1695 edge
3426 [ 1696 [
3427 source 3 1697 source 9
3428 target 6 1698 target 5
3429 graphics 1699 graphics
3430 [ 1700 [
3431 fill "#000000" 1701 fill "#000000"
3432 width 3
3433 targetArrow "standard" 1702 targetArrow "standard"
3434 ] 1703 ]
3435 LabelGraphics 1704 LabelGraphics
3436 [ 1705 [
3437 text "rootElements reference FunctionalArchitectureModel" 1706 text "interface reference FunctionalData"
3438 fontSize 14 1707 fontSize 14
3439 fontName "Consolas" 1708 fontName "Consolas"
3440 configuration "AutoFlippingLabel" 1709 configuration "AutoFlippingLabel"
@@ -3444,8 +1713,8 @@ graph
3444 ] 1713 ]
3445 edge 1714 edge
3446 [ 1715 [
3447 source 6 1716 source 10
3448 target 1 1717 target 5
3449 graphics 1718 graphics
3450 [ 1719 [
3451 fill "#000000" 1720 fill "#000000"
@@ -3453,7 +1722,7 @@ graph
3453 ] 1722 ]
3454 LabelGraphics 1723 LabelGraphics
3455 [ 1724 [
3456 text "type attribute Function" 1725 text "interface reference FunctionalData"
3457 fontSize 14 1726 fontSize 14
3458 fontName "Consolas" 1727 fontName "Consolas"
3459 configuration "AutoFlippingLabel" 1728 configuration "AutoFlippingLabel"
@@ -3577,8 +1846,8 @@ graph
3577 id 3 1846 id 3
3578 graphics 1847 graphics
3579 [ 1848 [
3580 w 361.90000000000003 1849 w 41.800000000000004
3581 h 54 1850 h 26
3582 type "rectangle" 1851 type "rectangle"
3583 fill "#FFFFFF" 1852 fill "#FFFFFF"
3584 fill2 "#FFFFFF" 1853 fill2 "#FFFFFF"
@@ -3586,7 +1855,7 @@ graph
3586 ] 1855 ]
3587 LabelGraphics 1856 LabelGraphics
3588 [ 1857 [
3589 text "o 1" 1858 text "true"
3590 outline "#000000" 1859 outline "#000000"
3591 fill "#FFFFFF" 1860 fill "#FFFFFF"
3592 fontSize 16 1861 fontSize 16
@@ -3598,8 +1867,6 @@ graph
3598 LabelGraphics 1867 LabelGraphics
3599 [ 1868 [
3600 text " 1869 text "
3601 FunctionalArchitectureModel class DefinedPart
3602 FunctionalArchitectureModel class
3603 " 1870 "
3604 fontSize 14 1871 fontSize 14
3605 fontName "Consolas" 1872 fontName "Consolas"
@@ -3614,7 +1881,7 @@ graph
3614 id 4 1881 id 4
3615 graphics 1882 graphics
3616 [ 1883 [
3617 w 41.800000000000004 1884 w 50.6
3618 h 26 1885 h 26
3619 type "rectangle" 1886 type "rectangle"
3620 fill "#FFFFFF" 1887 fill "#FFFFFF"
@@ -3623,7 +1890,7 @@ graph
3623 ] 1890 ]
3624 LabelGraphics 1891 LabelGraphics
3625 [ 1892 [
3626 text "true" 1893 text "false"
3627 outline "#000000" 1894 outline "#000000"
3628 fill "#FFFFFF" 1895 fill "#FFFFFF"
3629 fontSize 16 1896 fontSize 16
@@ -3649,8 +1916,8 @@ graph
3649 id 5 1916 id 5
3650 graphics 1917 graphics
3651 [ 1918 [
3652 w 50.6 1919 w 207.9
3653 h 26 1920 h 40
3654 type "rectangle" 1921 type "rectangle"
3655 fill "#FFFFFF" 1922 fill "#FFFFFF"
3656 fill2 "#FFFFFF" 1923 fill2 "#FFFFFF"
@@ -3658,7 +1925,7 @@ graph
3658 ] 1925 ]
3659 LabelGraphics 1926 LabelGraphics
3660 [ 1927 [
3661 text "false" 1928 text "null"
3662 outline "#000000" 1929 outline "#000000"
3663 fill "#FFFFFF" 1930 fill "#FFFFFF"
3664 fontSize 16 1931 fontSize 16
@@ -3670,6 +1937,7 @@ graph
3670 LabelGraphics 1937 LabelGraphics
3671 [ 1938 [
3672 text " 1939 text "
1940 FunctionalInterface class
3673 " 1941 "
3674 fontSize 14 1942 fontSize 14
3675 fontName "Consolas" 1943 fontName "Consolas"
@@ -3684,7 +1952,7 @@ graph
3684 id 6 1952 id 6
3685 graphics 1953 graphics
3686 [ 1954 [
3687 w 192.50000000000003 1955 w 184.8
3688 h 54 1956 h 54
3689 type "rectangle" 1957 type "rectangle"
3690 fill "#FFFFFF" 1958 fill "#FFFFFF"
@@ -3705,8 +1973,8 @@ graph
3705 LabelGraphics 1973 LabelGraphics
3706 [ 1974 [
3707 text " 1975 text "
3708 FunctionalElement class 1976 FunctionalOutput class
3709 Function class 1977 FunctionalData class
3710 " 1978 "
3711 fontSize 14 1979 fontSize 14
3712 fontName "Consolas" 1980 fontName "Consolas"
@@ -3721,8 +1989,8 @@ graph
3721 id 7 1989 id 7
3722 graphics 1990 graphics
3723 [ 1991 [
3724 w 112.2 1992 w 177.10000000000002
3725 h 26 1993 h 54
3726 type "rectangle" 1994 type "rectangle"
3727 fill "#FFFFFF" 1995 fill "#FFFFFF"
3728 fill2 "#FFFFFF" 1996 fill2 "#FFFFFF"
@@ -3730,7 +1998,7 @@ graph
3730 ] 1998 ]
3731 LabelGraphics 1999 LabelGraphics
3732 [ 2000 [
3733 text "New Integers" 2001 text "null"
3734 outline "#000000" 2002 outline "#000000"
3735 fill "#FFFFFF" 2003 fill "#FFFFFF"
3736 fontSize 16 2004 fontSize 16
@@ -3742,6 +2010,8 @@ graph
3742 LabelGraphics 2010 LabelGraphics
3743 [ 2011 [
3744 text " 2012 text "
2013 FunctionalInput class
2014 FunctionalData class
3745 " 2015 "
3746 fontSize 14 2016 fontSize 14
3747 fontName "Consolas" 2017 fontName "Consolas"
@@ -3756,8 +2026,8 @@ graph
3756 id 8 2026 id 8
3757 graphics 2027 graphics
3758 [ 2028 [
3759 w 85.80000000000001 2029 w 184.8
3760 h 26 2030 h 54
3761 type "rectangle" 2031 type "rectangle"
3762 fill "#FFFFFF" 2032 fill "#FFFFFF"
3763 fill2 "#FFFFFF" 2033 fill2 "#FFFFFF"
@@ -3765,7 +2035,7 @@ graph
3765 ] 2035 ]
3766 LabelGraphics 2036 LabelGraphics
3767 [ 2037 [
3768 text "New Reals" 2038 text "null"
3769 outline "#000000" 2039 outline "#000000"
3770 fill "#FFFFFF" 2040 fill "#FFFFFF"
3771 fontSize 16 2041 fontSize 16
@@ -3777,6 +2047,8 @@ graph
3777 LabelGraphics 2047 LabelGraphics
3778 [ 2048 [
3779 text " 2049 text "
2050 FunctionalOutput class
2051 FunctionalData class
3780 " 2052 "
3781 fontSize 14 2053 fontSize 14
3782 fontName "Consolas" 2054 fontName "Consolas"
@@ -3791,99 +2063,7 @@ graph
3791 id 9 2063 id 9
3792 graphics 2064 graphics
3793 [ 2065 [
3794 w 103.4 2066 w 161.70000000000002
3795 h 26
3796 type "rectangle"
3797 fill "#FFFFFF"
3798 fill2 "#FFFFFF"
3799 outline "#000000"
3800 ]
3801 LabelGraphics
3802 [
3803 text "New Strings"
3804 outline "#000000"
3805 fill "#FFFFFF"
3806 fontSize 16
3807 fontName "Monospace"
3808 autoSizePolicy "node_width"
3809 anchor "t"
3810 borderDistance 0.0
3811 ]
3812 LabelGraphics
3813 [
3814 text "
3815 "
3816 fontSize 14
3817 fontName "Consolas"
3818 alignment "left"
3819 anchor "tl"
3820 borderDistance 6
3821 ]
3822 ]
3823
3824 node
3825 [
3826 id 10
3827 graphics
3828 [
3829 w 103.4
3830 h 26
3831 type "rectangle"
3832 fill "#FFFFFF"
3833 fill2 "#FFFFFF"
3834 outline "#000000"
3835 ]
3836 LabelGraphics
3837 [
3838 text "New Objects"
3839 outline "#000000"
3840 fill "#FFFFFF"
3841 fontSize 16
3842 fontName "Monospace"
3843 autoSizePolicy "node_width"
3844 anchor "t"
3845 borderDistance 0.0
3846 ]
3847 LabelGraphics
3848 [
3849 text "
3850 "
3851 fontSize 14
3852 fontName "Consolas"
3853 alignment "left"
3854 anchor "tl"
3855 borderDistance 6
3856 ]
3857 ]
3858 edge
3859 [
3860 source 3
3861 target 6
3862 graphics
3863 [
3864 fill "#000000"
3865 width 3
3866 targetArrow "standard"
3867 ]
3868 LabelGraphics
3869 [
3870 text "rootElements reference FunctionalArchitectureModel"
3871 fontSize 14
3872 fontName "Consolas"
3873 configuration "AutoFlippingLabel"
3874 model "six_pos"
3875 position "thead"
3876 ]
3877 ]
3878]
3879graph
3880[
3881 node
3882 [
3883 id 0
3884 graphics
3885 [
3886 w 226.60000000000002
3887 h 40 2067 h 40
3888 type "rectangle" 2068 type "rectangle"
3889 fill "#FFFFFF" 2069 fill "#FFFFFF"
@@ -3892,79 +2072,7 @@ graph
3892 ] 2072 ]
3893 LabelGraphics 2073 LabelGraphics
3894 [ 2074 [
3895 text "Root literal FunctionType" 2075 text "null"
3896 outline "#000000"
3897 fill "#FFFFFF"
3898 fontSize 16
3899 fontName "Monospace"
3900 autoSizePolicy "node_width"
3901 anchor "t"
3902 borderDistance 0.0
3903 ]
3904 LabelGraphics
3905 [
3906 text "
3907 FunctionType enum
3908 "
3909 fontSize 14
3910 fontName "Consolas"
3911 alignment "left"
3912 anchor "tl"
3913 borderDistance 6
3914 ]
3915 ]
3916
3917 node
3918 [
3919 id 1
3920 graphics
3921 [
3922 w 297.0
3923 h 40
3924 type "rectangle"
3925 fill "#FFFFFF"
3926 fill2 "#FFFFFF"
3927 outline "#000000"
3928 ]
3929 LabelGraphics
3930 [
3931 text "Intermediate literal FunctionType"
3932 outline "#000000"
3933 fill "#FFFFFF"
3934 fontSize 16
3935 fontName "Monospace"
3936 autoSizePolicy "node_width"
3937 anchor "t"
3938 borderDistance 0.0
3939 ]
3940 LabelGraphics
3941 [
3942 text "
3943 FunctionType enum
3944 "
3945 fontSize 14
3946 fontName "Consolas"
3947 alignment "left"
3948 anchor "tl"
3949 borderDistance 6
3950 ]
3951 ]
3952
3953 node
3954 [
3955 id 2
3956 graphics
3957 [
3958 w 226.60000000000002
3959 h 40
3960 type "rectangle"
3961 fill "#FFFFFF"
3962 fill2 "#FFFFFF"
3963 outline "#000000"
3964 ]
3965 LabelGraphics
3966 [
3967 text "Leaf literal FunctionType"
3968 outline "#000000" 2076 outline "#000000"
3969 fill "#FFFFFF" 2077 fill "#FFFFFF"
3970 fontSize 16 2078 fontSize 16
@@ -3976,7 +2084,7 @@ graph
3976 LabelGraphics 2084 LabelGraphics
3977 [ 2085 [
3978 text " 2086 text "
3979 FunctionType enum 2087 FAMTerminator class
3980 " 2088 "
3981 fontSize 14 2089 fontSize 14
3982 fontName "Consolas" 2090 fontName "Consolas"
@@ -3988,10 +2096,10 @@ graph
3988 2096
3989 node 2097 node
3990 [ 2098 [
3991 id 3 2099 id 10
3992 graphics 2100 graphics
3993 [ 2101 [
3994 w 361.90000000000003 2102 w 184.8
3995 h 54 2103 h 54
3996 type "rectangle" 2104 type "rectangle"
3997 fill "#FFFFFF" 2105 fill "#FFFFFF"
@@ -4000,79 +2108,7 @@ graph
4000 ] 2108 ]
4001 LabelGraphics 2109 LabelGraphics
4002 [ 2110 [
4003 text "o 1" 2111 text "null"
4004 outline "#000000"
4005 fill "#FFFFFF"
4006 fontSize 16
4007 fontName "Monospace"
4008 autoSizePolicy "node_width"
4009 anchor "t"
4010 borderDistance 0.0
4011 ]
4012 LabelGraphics
4013 [
4014 text "
4015 FunctionalArchitectureModel class DefinedPart
4016 FunctionalArchitectureModel class
4017 "
4018 fontSize 14
4019 fontName "Consolas"
4020 alignment "left"
4021 anchor "tl"
4022 borderDistance 6
4023 ]
4024 ]
4025
4026 node
4027 [
4028 id 4
4029 graphics
4030 [
4031 w 41.800000000000004
4032 h 26
4033 type "rectangle"
4034 fill "#FFFFFF"
4035 fill2 "#FFFFFF"
4036 outline "#000000"
4037 ]
4038 LabelGraphics
4039 [
4040 text "true"
4041 outline "#000000"
4042 fill "#FFFFFF"
4043 fontSize 16
4044 fontName "Monospace"
4045 autoSizePolicy "node_width"
4046 anchor "t"
4047 borderDistance 0.0
4048 ]
4049 LabelGraphics
4050 [
4051 text "
4052 "
4053 fontSize 14
4054 fontName "Consolas"
4055 alignment "left"
4056 anchor "tl"
4057 borderDistance 6
4058 ]
4059 ]
4060
4061 node
4062 [
4063 id 5
4064 graphics
4065 [
4066 w 50.6
4067 h 26
4068 type "rectangle"
4069 fill "#FFFFFF"
4070 fill2 "#FFFFFF"
4071 outline "#000000"
4072 ]
4073 LabelGraphics
4074 [
4075 text "false"
4076 outline "#000000" 2112 outline "#000000"
4077 fill "#FFFFFF" 2113 fill "#FFFFFF"
4078 fontSize 16 2114 fontSize 16
@@ -4084,6 +2120,8 @@ graph
4084 LabelGraphics 2120 LabelGraphics
4085 [ 2121 [
4086 text " 2122 text "
2123 FunctionalOutput class
2124 FunctionalData class
4087 " 2125 "
4088 fontSize 14 2126 fontSize 14
4089 fontName "Consolas" 2127 fontName "Consolas"
@@ -4095,10 +2133,10 @@ graph
4095 2133
4096 node 2134 node
4097 [ 2135 [
4098 id 6 2136 id 11
4099 graphics 2137 graphics
4100 [ 2138 [
4101 w 192.50000000000003 2139 w 184.8
4102 h 54 2140 h 54
4103 type "rectangle" 2141 type "rectangle"
4104 fill "#FFFFFF" 2142 fill "#FFFFFF"
@@ -4119,8 +2157,8 @@ graph
4119 LabelGraphics 2157 LabelGraphics
4120 [ 2158 [
4121 text " 2159 text "
4122 FunctionalElement class 2160 FunctionalOutput class
4123 Function class 2161 FunctionalData class
4124 " 2162 "
4125 fontSize 14 2163 fontSize 14
4126 fontName "Consolas" 2164 fontName "Consolas"
@@ -4132,7 +2170,7 @@ graph
4132 2170
4133 node 2171 node
4134 [ 2172 [
4135 id 7 2173 id 12
4136 graphics 2174 graphics
4137 [ 2175 [
4138 w 112.2 2176 w 112.2
@@ -4167,7 +2205,7 @@ graph
4167 2205
4168 node 2206 node
4169 [ 2207 [
4170 id 8 2208 id 13
4171 graphics 2209 graphics
4172 [ 2210 [
4173 w 85.80000000000001 2211 w 85.80000000000001
@@ -4202,7 +2240,7 @@ graph
4202 2240
4203 node 2241 node
4204 [ 2242 [
4205 id 9 2243 id 14
4206 graphics 2244 graphics
4207 [ 2245 [
4208 w 103.4 2246 w 103.4
@@ -4237,7 +2275,7 @@ graph
4237 2275
4238 node 2276 node
4239 [ 2277 [
4240 id 10 2278 id 15
4241 graphics 2279 graphics
4242 [ 2280 [
4243 w 103.4 2281 w 103.4
@@ -4271,8 +2309,8 @@ graph
4271 ] 2309 ]
4272 edge 2310 edge
4273 [ 2311 [
4274 source 6 2312 source 9
4275 target 3 2313 target 7
4276 graphics 2314 graphics
4277 [ 2315 [
4278 fill "#000000" 2316 fill "#000000"
@@ -4280,7 +2318,7 @@ graph
4280 ] 2318 ]
4281 LabelGraphics 2319 LabelGraphics
4282 [ 2320 [
4283 text "model reference FunctionalElement" 2321 text "data reference FAMTerminator"
4284 fontSize 14 2322 fontSize 14
4285 fontName "Consolas" 2323 fontName "Consolas"
4286 configuration "AutoFlippingLabel" 2324 configuration "AutoFlippingLabel"
@@ -4290,7 +2328,7 @@ graph
4290 ] 2328 ]
4291 edge 2329 edge
4292 [ 2330 [
4293 source 3 2331 source 5
4294 target 6 2332 target 6
4295 graphics 2333 graphics
4296 [ 2334 [
@@ -4300,7 +2338,7 @@ graph
4300 ] 2338 ]
4301 LabelGraphics 2339 LabelGraphics
4302 [ 2340 [
4303 text "rootElements reference FunctionalArchitectureModel" 2341 text "data reference FunctionalInterface"
4304 fontSize 14 2342 fontSize 14
4305 fontName "Consolas" 2343 fontName "Consolas"
4306 configuration "AutoFlippingLabel" 2344 configuration "AutoFlippingLabel"
@@ -4310,16 +2348,17 @@ graph
4310 ] 2348 ]
4311 edge 2349 edge
4312 [ 2350 [
4313 source 6 2351 source 5
4314 target 2 2352 target 7
4315 graphics 2353 graphics
4316 [ 2354 [
4317 fill "#000000" 2355 fill "#000000"
2356 width 3
4318 targetArrow "standard" 2357 targetArrow "standard"
4319 ] 2358 ]
4320 LabelGraphics 2359 LabelGraphics
4321 [ 2360 [
4322 text "type attribute Function" 2361 text "data reference FunctionalInterface"
4323 fontSize 14 2362 fontSize 14
4324 fontName "Consolas" 2363 fontName "Consolas"
4325 configuration "AutoFlippingLabel" 2364 configuration "AutoFlippingLabel"
@@ -4327,412 +2366,59 @@ graph
4327 position "thead" 2366 position "thead"
4328 ] 2367 ]
4329 ] 2368 ]
4330] 2369 edge
4331graph 2370 [
4332[ 2371 source 5
4333 node 2372 target 8
4334 [ 2373 graphics
4335 id 0
4336 graphics
4337 [
4338 w 226.60000000000002
4339 h 40
4340 type "rectangle"
4341 fill "#FFFFFF"
4342 fill2 "#FFFFFF"
4343 outline "#000000"
4344 ]
4345 LabelGraphics
4346 [
4347 text "Root literal FunctionType"
4348 outline "#000000"
4349 fill "#FFFFFF"
4350 fontSize 16
4351 fontName "Monospace"
4352 autoSizePolicy "node_width"
4353 anchor "t"
4354 borderDistance 0.0
4355 ]
4356 LabelGraphics
4357 [
4358 text "
4359 FunctionType enum
4360 "
4361 fontSize 14
4362 fontName "Consolas"
4363 alignment "left"
4364 anchor "tl"
4365 borderDistance 6
4366 ]
4367 ]
4368
4369 node
4370 [
4371 id 1
4372 graphics
4373 [
4374 w 297.0
4375 h 40
4376 type "rectangle"
4377 fill "#FFFFFF"
4378 fill2 "#FFFFFF"
4379 outline "#000000"
4380 ]
4381 LabelGraphics
4382 [
4383 text "Intermediate literal FunctionType"
4384 outline "#000000"
4385 fill "#FFFFFF"
4386 fontSize 16
4387 fontName "Monospace"
4388 autoSizePolicy "node_width"
4389 anchor "t"
4390 borderDistance 0.0
4391 ]
4392 LabelGraphics
4393 [
4394 text "
4395 FunctionType enum
4396 "
4397 fontSize 14
4398 fontName "Consolas"
4399 alignment "left"
4400 anchor "tl"
4401 borderDistance 6
4402 ]
4403 ]
4404
4405 node
4406 [
4407 id 2
4408 graphics
4409 [
4410 w 226.60000000000002
4411 h 40
4412 type "rectangle"
4413 fill "#FFFFFF"
4414 fill2 "#FFFFFF"
4415 outline "#000000"
4416 ]
4417 LabelGraphics
4418 [
4419 text "Leaf literal FunctionType"
4420 outline "#000000"
4421 fill "#FFFFFF"
4422 fontSize 16
4423 fontName "Monospace"
4424 autoSizePolicy "node_width"
4425 anchor "t"
4426 borderDistance 0.0
4427 ]
4428 LabelGraphics
4429 [
4430 text "
4431 FunctionType enum
4432 "
4433 fontSize 14
4434 fontName "Consolas"
4435 alignment "left"
4436 anchor "tl"
4437 borderDistance 6
4438 ]
4439 ]
4440
4441 node
4442 [
4443 id 3
4444 graphics
4445 [
4446 w 361.90000000000003
4447 h 54
4448 type "rectangle"
4449 fill "#FFFFFF"
4450 fill2 "#FFFFFF"
4451 outline "#000000"
4452 ]
4453 LabelGraphics
4454 [
4455 text "o 1"
4456 outline "#000000"
4457 fill "#FFFFFF"
4458 fontSize 16
4459 fontName "Monospace"
4460 autoSizePolicy "node_width"
4461 anchor "t"
4462 borderDistance 0.0
4463 ]
4464 LabelGraphics
4465 [
4466 text "
4467 FunctionalArchitectureModel class DefinedPart
4468 FunctionalArchitectureModel class
4469 "
4470 fontSize 14
4471 fontName "Consolas"
4472 alignment "left"
4473 anchor "tl"
4474 borderDistance 6
4475 ]
4476 ]
4477
4478 node
4479 [
4480 id 4
4481 graphics
4482 [
4483 w 41.800000000000004
4484 h 26
4485 type "rectangle"
4486 fill "#FFFFFF"
4487 fill2 "#FFFFFF"
4488 outline "#000000"
4489 ]
4490 LabelGraphics
4491 [
4492 text "true"
4493 outline "#000000"
4494 fill "#FFFFFF"
4495 fontSize 16
4496 fontName "Monospace"
4497 autoSizePolicy "node_width"
4498 anchor "t"
4499 borderDistance 0.0
4500 ]
4501 LabelGraphics
4502 [
4503 text "
4504 "
4505 fontSize 14
4506 fontName "Consolas"
4507 alignment "left"
4508 anchor "tl"
4509 borderDistance 6
4510 ]
4511 ]
4512
4513 node
4514 [
4515 id 5
4516 graphics
4517 [
4518 w 50.6
4519 h 26
4520 type "rectangle"
4521 fill "#FFFFFF"
4522 fill2 "#FFFFFF"
4523 outline "#000000"
4524 ]
4525 LabelGraphics
4526 [
4527 text "false"
4528 outline "#000000"
4529 fill "#FFFFFF"
4530 fontSize 16
4531 fontName "Monospace"
4532 autoSizePolicy "node_width"
4533 anchor "t"
4534 borderDistance 0.0
4535 ]
4536 LabelGraphics
4537 [
4538 text "
4539 "
4540 fontSize 14
4541 fontName "Consolas"
4542 alignment "left"
4543 anchor "tl"
4544 borderDistance 6
4545 ]
4546 ]
4547
4548 node
4549 [
4550 id 6
4551 graphics
4552 [
4553 w 192.50000000000003
4554 h 54
4555 type "rectangle"
4556 fill "#FFFFFF"
4557 fill2 "#FFFFFF"
4558 outline "#000000"
4559 ]
4560 LabelGraphics
4561 [
4562 text "null"
4563 outline "#000000"
4564 fill "#FFFFFF"
4565 fontSize 16
4566 fontName "Monospace"
4567 autoSizePolicy "node_width"
4568 anchor "t"
4569 borderDistance 0.0
4570 ]
4571 LabelGraphics
4572 [
4573 text "
4574 FunctionalElement class
4575 Function class
4576 "
4577 fontSize 14
4578 fontName "Consolas"
4579 alignment "left"
4580 anchor "tl"
4581 borderDistance 6
4582 ]
4583 ]
4584
4585 node
4586 [ 2374 [
4587 id 7 2375 fill "#000000"
4588 graphics 2376 width 3
4589 [ 2377 targetArrow "standard"
4590 w 112.2
4591 h 26
4592 type "rectangle"
4593 fill "#FFFFFF"
4594 fill2 "#FFFFFF"
4595 outline "#000000"
4596 ]
4597 LabelGraphics
4598 [
4599 text "New Integers"
4600 outline "#000000"
4601 fill "#FFFFFF"
4602 fontSize 16
4603 fontName "Monospace"
4604 autoSizePolicy "node_width"
4605 anchor "t"
4606 borderDistance 0.0
4607 ]
4608 LabelGraphics
4609 [
4610 text "
4611 "
4612 fontSize 14
4613 fontName "Consolas"
4614 alignment "left"
4615 anchor "tl"
4616 borderDistance 6
4617 ]
4618 ] 2378 ]
4619 2379 LabelGraphics
4620 node
4621 [ 2380 [
4622 id 8 2381 text "data reference FunctionalInterface"
4623 graphics 2382 fontSize 14
4624 [ 2383 fontName "Consolas"
4625 w 85.80000000000001 2384 configuration "AutoFlippingLabel"
4626 h 26 2385 model "six_pos"
4627 type "rectangle" 2386 position "thead"
4628 fill "#FFFFFF"
4629 fill2 "#FFFFFF"
4630 outline "#000000"
4631 ]
4632 LabelGraphics
4633 [
4634 text "New Reals"
4635 outline "#000000"
4636 fill "#FFFFFF"
4637 fontSize 16
4638 fontName "Monospace"
4639 autoSizePolicy "node_width"
4640 anchor "t"
4641 borderDistance 0.0
4642 ]
4643 LabelGraphics
4644 [
4645 text "
4646 "
4647 fontSize 14
4648 fontName "Consolas"
4649 alignment "left"
4650 anchor "tl"
4651 borderDistance 6
4652 ]
4653 ] 2387 ]
4654 2388 ]
4655 node 2389 edge
2390 [
2391 source 5
2392 target 10
2393 graphics
4656 [ 2394 [
4657 id 9 2395 fill "#000000"
4658 graphics 2396 width 3
4659 [ 2397 targetArrow "standard"
4660 w 103.4
4661 h 26
4662 type "rectangle"
4663 fill "#FFFFFF"
4664 fill2 "#FFFFFF"
4665 outline "#000000"
4666 ]
4667 LabelGraphics
4668 [
4669 text "New Strings"
4670 outline "#000000"
4671 fill "#FFFFFF"
4672 fontSize 16
4673 fontName "Monospace"
4674 autoSizePolicy "node_width"
4675 anchor "t"
4676 borderDistance 0.0
4677 ]
4678 LabelGraphics
4679 [
4680 text "
4681 "
4682 fontSize 14
4683 fontName "Consolas"
4684 alignment "left"
4685 anchor "tl"
4686 borderDistance 6
4687 ]
4688 ] 2398 ]
4689 2399 LabelGraphics
4690 node
4691 [ 2400 [
4692 id 10 2401 text "data reference FunctionalInterface"
4693 graphics 2402 fontSize 14
4694 [ 2403 fontName "Consolas"
4695 w 103.4 2404 configuration "AutoFlippingLabel"
4696 h 26 2405 model "six_pos"
4697 type "rectangle" 2406 position "thead"
4698 fill "#FFFFFF"
4699 fill2 "#FFFFFF"
4700 outline "#000000"
4701 ]
4702 LabelGraphics
4703 [
4704 text "New Objects"
4705 outline "#000000"
4706 fill "#FFFFFF"
4707 fontSize 16
4708 fontName "Monospace"
4709 autoSizePolicy "node_width"
4710 anchor "t"
4711 borderDistance 0.0
4712 ]
4713 LabelGraphics
4714 [
4715 text "
4716 "
4717 fontSize 14
4718 fontName "Consolas"
4719 alignment "left"
4720 anchor "tl"
4721 borderDistance 6
4722 ]
4723 ] 2407 ]
2408 ]
4724 edge 2409 edge
4725 [ 2410 [
4726 source 6 2411 source 5
4727 target 3 2412 target 11
4728 graphics 2413 graphics
4729 [ 2414 [
4730 fill "#000000" 2415 fill "#000000"
2416 width 3
4731 targetArrow "standard" 2417 targetArrow "standard"
4732 ] 2418 ]
4733 LabelGraphics 2419 LabelGraphics
4734 [ 2420 [
4735 text "model reference FunctionalElement" 2421 text "data reference FunctionalInterface"
4736 fontSize 14 2422 fontSize 14
4737 fontName "Consolas" 2423 fontName "Consolas"
4738 configuration "AutoFlippingLabel" 2424 configuration "AutoFlippingLabel"
@@ -4742,8 +2428,8 @@ graph
4742 ] 2428 ]
4743 edge 2429 edge
4744 [ 2430 [
4745 source 3 2431 source 7
4746 target 6 2432 target 9
4747 graphics 2433 graphics
4748 [ 2434 [
4749 fill "#000000" 2435 fill "#000000"
@@ -4752,7 +2438,7 @@ graph
4752 ] 2438 ]
4753 LabelGraphics 2439 LabelGraphics
4754 [ 2440 [
4755 text "rootElements reference FunctionalArchitectureModel" 2441 text "terminator reference FunctionalData"
4756 fontSize 14 2442 fontSize 14
4757 fontName "Consolas" 2443 fontName "Consolas"
4758 configuration "AutoFlippingLabel" 2444 configuration "AutoFlippingLabel"
@@ -4763,7 +2449,7 @@ graph
4763 edge 2449 edge
4764 [ 2450 [
4765 source 6 2451 source 6
4766 target 0 2452 target 5
4767 graphics 2453 graphics
4768 [ 2454 [
4769 fill "#000000" 2455 fill "#000000"
@@ -4771,7 +2457,7 @@ graph
4771 ] 2457 ]
4772 LabelGraphics 2458 LabelGraphics
4773 [ 2459 [
4774 text "type attribute Function" 2460 text "interface reference FunctionalData"
4775 fontSize 14 2461 fontSize 14
4776 fontName "Consolas" 2462 fontName "Consolas"
4777 configuration "AutoFlippingLabel" 2463 configuration "AutoFlippingLabel"
@@ -4779,404 +2465,29 @@ graph
4779 position "thead" 2465 position "thead"
4780 ] 2466 ]
4781 ] 2467 ]
4782] 2468 edge
4783graph 2469 [
4784[ 2470 source 7
4785 node 2471 target 5
4786 [ 2472 graphics
4787 id 0
4788 graphics
4789 [
4790 w 226.60000000000002
4791 h 40
4792 type "rectangle"
4793 fill "#FFFFFF"
4794 fill2 "#FFFFFF"
4795 outline "#000000"
4796 ]
4797 LabelGraphics
4798 [
4799 text "Root literal FunctionType"
4800 outline "#000000"
4801 fill "#FFFFFF"
4802 fontSize 16
4803 fontName "Monospace"
4804 autoSizePolicy "node_width"
4805 anchor "t"
4806 borderDistance 0.0
4807 ]
4808 LabelGraphics
4809 [
4810 text "
4811 FunctionType enum
4812 "
4813 fontSize 14
4814 fontName "Consolas"
4815 alignment "left"
4816 anchor "tl"
4817 borderDistance 6
4818 ]
4819 ]
4820
4821 node
4822 [
4823 id 1
4824 graphics
4825 [
4826 w 297.0
4827 h 40
4828 type "rectangle"
4829 fill "#FFFFFF"
4830 fill2 "#FFFFFF"
4831 outline "#000000"
4832 ]
4833 LabelGraphics
4834 [
4835 text "Intermediate literal FunctionType"
4836 outline "#000000"
4837 fill "#FFFFFF"
4838 fontSize 16
4839 fontName "Monospace"
4840 autoSizePolicy "node_width"
4841 anchor "t"
4842 borderDistance 0.0
4843 ]
4844 LabelGraphics
4845 [
4846 text "
4847 FunctionType enum
4848 "
4849 fontSize 14
4850 fontName "Consolas"
4851 alignment "left"
4852 anchor "tl"
4853 borderDistance 6
4854 ]
4855 ]
4856
4857 node
4858 [
4859 id 2
4860 graphics
4861 [
4862 w 226.60000000000002
4863 h 40
4864 type "rectangle"
4865 fill "#FFFFFF"
4866 fill2 "#FFFFFF"
4867 outline "#000000"
4868 ]
4869 LabelGraphics
4870 [
4871 text "Leaf literal FunctionType"
4872 outline "#000000"
4873 fill "#FFFFFF"
4874 fontSize 16
4875 fontName "Monospace"
4876 autoSizePolicy "node_width"
4877 anchor "t"
4878 borderDistance 0.0
4879 ]
4880 LabelGraphics
4881 [
4882 text "
4883 FunctionType enum
4884 "
4885 fontSize 14
4886 fontName "Consolas"
4887 alignment "left"
4888 anchor "tl"
4889 borderDistance 6
4890 ]
4891 ]
4892
4893 node
4894 [
4895 id 3
4896 graphics
4897 [
4898 w 361.90000000000003
4899 h 54
4900 type "rectangle"
4901 fill "#FFFFFF"
4902 fill2 "#FFFFFF"
4903 outline "#000000"
4904 ]
4905 LabelGraphics
4906 [
4907 text "o 1"
4908 outline "#000000"
4909 fill "#FFFFFF"
4910 fontSize 16
4911 fontName "Monospace"
4912 autoSizePolicy "node_width"
4913 anchor "t"
4914 borderDistance 0.0
4915 ]
4916 LabelGraphics
4917 [
4918 text "
4919 FunctionalArchitectureModel class DefinedPart
4920 FunctionalArchitectureModel class
4921 "
4922 fontSize 14
4923 fontName "Consolas"
4924 alignment "left"
4925 anchor "tl"
4926 borderDistance 6
4927 ]
4928 ]
4929
4930 node
4931 [
4932 id 4
4933 graphics
4934 [
4935 w 41.800000000000004
4936 h 26
4937 type "rectangle"
4938 fill "#FFFFFF"
4939 fill2 "#FFFFFF"
4940 outline "#000000"
4941 ]
4942 LabelGraphics
4943 [
4944 text "true"
4945 outline "#000000"
4946 fill "#FFFFFF"
4947 fontSize 16
4948 fontName "Monospace"
4949 autoSizePolicy "node_width"
4950 anchor "t"
4951 borderDistance 0.0
4952 ]
4953 LabelGraphics
4954 [
4955 text "
4956 "
4957 fontSize 14
4958 fontName "Consolas"
4959 alignment "left"
4960 anchor "tl"
4961 borderDistance 6
4962 ]
4963 ]
4964
4965 node
4966 [
4967 id 5
4968 graphics
4969 [
4970 w 50.6
4971 h 26
4972 type "rectangle"
4973 fill "#FFFFFF"
4974 fill2 "#FFFFFF"
4975 outline "#000000"
4976 ]
4977 LabelGraphics
4978 [
4979 text "false"
4980 outline "#000000"
4981 fill "#FFFFFF"
4982 fontSize 16
4983 fontName "Monospace"
4984 autoSizePolicy "node_width"
4985 anchor "t"
4986 borderDistance 0.0
4987 ]
4988 LabelGraphics
4989 [
4990 text "
4991 "
4992 fontSize 14
4993 fontName "Consolas"
4994 alignment "left"
4995 anchor "tl"
4996 borderDistance 6
4997 ]
4998 ]
4999
5000 node
5001 [
5002 id 6
5003 graphics
5004 [
5005 w 192.50000000000003
5006 h 54
5007 type "rectangle"
5008 fill "#FFFFFF"
5009 fill2 "#FFFFFF"
5010 outline "#000000"
5011 ]
5012 LabelGraphics
5013 [
5014 text "null"
5015 outline "#000000"
5016 fill "#FFFFFF"
5017 fontSize 16
5018 fontName "Monospace"
5019 autoSizePolicy "node_width"
5020 anchor "t"
5021 borderDistance 0.0
5022 ]
5023 LabelGraphics
5024 [
5025 text "
5026 FunctionalElement class
5027 Function class
5028 "
5029 fontSize 14
5030 fontName "Consolas"
5031 alignment "left"
5032 anchor "tl"
5033 borderDistance 6
5034 ]
5035 ]
5036
5037 node
5038 [
5039 id 7
5040 graphics
5041 [
5042 w 112.2
5043 h 26
5044 type "rectangle"
5045 fill "#FFFFFF"
5046 fill2 "#FFFFFF"
5047 outline "#000000"
5048 ]
5049 LabelGraphics
5050 [
5051 text "New Integers"
5052 outline "#000000"
5053 fill "#FFFFFF"
5054 fontSize 16
5055 fontName "Monospace"
5056 autoSizePolicy "node_width"
5057 anchor "t"
5058 borderDistance 0.0
5059 ]
5060 LabelGraphics
5061 [
5062 text "
5063 "
5064 fontSize 14
5065 fontName "Consolas"
5066 alignment "left"
5067 anchor "tl"
5068 borderDistance 6
5069 ]
5070 ]
5071
5072 node
5073 [
5074 id 8
5075 graphics
5076 [
5077 w 85.80000000000001
5078 h 26
5079 type "rectangle"
5080 fill "#FFFFFF"
5081 fill2 "#FFFFFF"
5082 outline "#000000"
5083 ]
5084 LabelGraphics
5085 [
5086 text "New Reals"
5087 outline "#000000"
5088 fill "#FFFFFF"
5089 fontSize 16
5090 fontName "Monospace"
5091 autoSizePolicy "node_width"
5092 anchor "t"
5093 borderDistance 0.0
5094 ]
5095 LabelGraphics
5096 [
5097 text "
5098 "
5099 fontSize 14
5100 fontName "Consolas"
5101 alignment "left"
5102 anchor "tl"
5103 borderDistance 6
5104 ]
5105 ]
5106
5107 node
5108 [ 2473 [
5109 id 9 2474 fill "#000000"
5110 graphics 2475 targetArrow "standard"
5111 [
5112 w 103.4
5113 h 26
5114 type "rectangle"
5115 fill "#FFFFFF"
5116 fill2 "#FFFFFF"
5117 outline "#000000"
5118 ]
5119 LabelGraphics
5120 [
5121 text "New Strings"
5122 outline "#000000"
5123 fill "#FFFFFF"
5124 fontSize 16
5125 fontName "Monospace"
5126 autoSizePolicy "node_width"
5127 anchor "t"
5128 borderDistance 0.0
5129 ]
5130 LabelGraphics
5131 [
5132 text "
5133 "
5134 fontSize 14
5135 fontName "Consolas"
5136 alignment "left"
5137 anchor "tl"
5138 borderDistance 6
5139 ]
5140 ] 2476 ]
5141 2477 LabelGraphics
5142 node
5143 [ 2478 [
5144 id 10 2479 text "interface reference FunctionalData"
5145 graphics 2480 fontSize 14
5146 [ 2481 fontName "Consolas"
5147 w 103.4 2482 configuration "AutoFlippingLabel"
5148 h 26 2483 model "six_pos"
5149 type "rectangle" 2484 position "thead"
5150 fill "#FFFFFF"
5151 fill2 "#FFFFFF"
5152 outline "#000000"
5153 ]
5154 LabelGraphics
5155 [
5156 text "New Objects"
5157 outline "#000000"
5158 fill "#FFFFFF"
5159 fontSize 16
5160 fontName "Monospace"
5161 autoSizePolicy "node_width"
5162 anchor "t"
5163 borderDistance 0.0
5164 ]
5165 LabelGraphics
5166 [
5167 text "
5168 "
5169 fontSize 14
5170 fontName "Consolas"
5171 alignment "left"
5172 anchor "tl"
5173 borderDistance 6
5174 ]
5175 ] 2485 ]
2486 ]
5176 edge 2487 edge
5177 [ 2488 [
5178 source 6 2489 source 8
5179 target 3 2490 target 5
5180 graphics 2491 graphics
5181 [ 2492 [
5182 fill "#000000" 2493 fill "#000000"
@@ -5184,7 +2495,7 @@ graph
5184 ] 2495 ]
5185 LabelGraphics 2496 LabelGraphics
5186 [ 2497 [
5187 text "model reference FunctionalElement" 2498 text "interface reference FunctionalData"
5188 fontSize 14 2499 fontSize 14
5189 fontName "Consolas" 2500 fontName "Consolas"
5190 configuration "AutoFlippingLabel" 2501 configuration "AutoFlippingLabel"
@@ -5194,17 +2505,16 @@ graph
5194 ] 2505 ]
5195 edge 2506 edge
5196 [ 2507 [
5197 source 3 2508 source 10
5198 target 6 2509 target 5
5199 graphics 2510 graphics
5200 [ 2511 [
5201 fill "#000000" 2512 fill "#000000"
5202 width 3
5203 targetArrow "standard" 2513 targetArrow "standard"
5204 ] 2514 ]
5205 LabelGraphics 2515 LabelGraphics
5206 [ 2516 [
5207 text "rootElements reference FunctionalArchitectureModel" 2517 text "interface reference FunctionalData"
5208 fontSize 14 2518 fontSize 14
5209 fontName "Consolas" 2519 fontName "Consolas"
5210 configuration "AutoFlippingLabel" 2520 configuration "AutoFlippingLabel"
@@ -5214,8 +2524,8 @@ graph
5214 ] 2524 ]
5215 edge 2525 edge
5216 [ 2526 [
5217 source 6 2527 source 11
5218 target 0 2528 target 5
5219 graphics 2529 graphics
5220 [ 2530 [
5221 fill "#000000" 2531 fill "#000000"
@@ -5223,7 +2533,7 @@ graph
5223 ] 2533 ]
5224 LabelGraphics 2534 LabelGraphics
5225 [ 2535 [
5226 text "type attribute Function" 2536 text "interface reference FunctionalData"
5227 fontSize 14 2537 fontSize 14
5228 fontName "Consolas" 2538 fontName "Consolas"
5229 configuration "AutoFlippingLabel" 2539 configuration "AutoFlippingLabel"
@@ -5347,8 +2657,8 @@ graph
5347 id 3 2657 id 3
5348 graphics 2658 graphics
5349 [ 2659 [
5350 w 361.90000000000003 2660 w 41.800000000000004
5351 h 54 2661 h 26
5352 type "rectangle" 2662 type "rectangle"
5353 fill "#FFFFFF" 2663 fill "#FFFFFF"
5354 fill2 "#FFFFFF" 2664 fill2 "#FFFFFF"
@@ -5356,7 +2666,7 @@ graph
5356 ] 2666 ]
5357 LabelGraphics 2667 LabelGraphics
5358 [ 2668 [
5359 text "o 1" 2669 text "true"
5360 outline "#000000" 2670 outline "#000000"
5361 fill "#FFFFFF" 2671 fill "#FFFFFF"
5362 fontSize 16 2672 fontSize 16
@@ -5368,8 +2678,6 @@ graph
5368 LabelGraphics 2678 LabelGraphics
5369 [ 2679 [
5370 text " 2680 text "
5371 FunctionalArchitectureModel class DefinedPart
5372 FunctionalArchitectureModel class
5373 " 2681 "
5374 fontSize 14 2682 fontSize 14
5375 fontName "Consolas" 2683 fontName "Consolas"
@@ -5384,7 +2692,7 @@ graph
5384 id 4 2692 id 4
5385 graphics 2693 graphics
5386 [ 2694 [
5387 w 41.800000000000004 2695 w 50.6
5388 h 26 2696 h 26
5389 type "rectangle" 2697 type "rectangle"
5390 fill "#FFFFFF" 2698 fill "#FFFFFF"
@@ -5393,7 +2701,7 @@ graph
5393 ] 2701 ]
5394 LabelGraphics 2702 LabelGraphics
5395 [ 2703 [
5396 text "true" 2704 text "false"
5397 outline "#000000" 2705 outline "#000000"
5398 fill "#FFFFFF" 2706 fill "#FFFFFF"
5399 fontSize 16 2707 fontSize 16
@@ -5419,8 +2727,8 @@ graph
5419 id 5 2727 id 5
5420 graphics 2728 graphics
5421 [ 2729 [
5422 w 50.6 2730 w 207.9
5423 h 26 2731 h 40
5424 type "rectangle" 2732 type "rectangle"
5425 fill "#FFFFFF" 2733 fill "#FFFFFF"
5426 fill2 "#FFFFFF" 2734 fill2 "#FFFFFF"
@@ -5428,7 +2736,7 @@ graph
5428 ] 2736 ]
5429 LabelGraphics 2737 LabelGraphics
5430 [ 2738 [
5431 text "false" 2739 text "null"
5432 outline "#000000" 2740 outline "#000000"
5433 fill "#FFFFFF" 2741 fill "#FFFFFF"
5434 fontSize 16 2742 fontSize 16
@@ -5440,6 +2748,7 @@ graph
5440 LabelGraphics 2748 LabelGraphics
5441 [ 2749 [
5442 text " 2750 text "
2751 FunctionalInterface class
5443 " 2752 "
5444 fontSize 14 2753 fontSize 14
5445 fontName "Consolas" 2754 fontName "Consolas"
@@ -5454,7 +2763,7 @@ graph
5454 id 6 2763 id 6
5455 graphics 2764 graphics
5456 [ 2765 [
5457 w 192.50000000000003 2766 w 184.8
5458 h 54 2767 h 54
5459 type "rectangle" 2768 type "rectangle"
5460 fill "#FFFFFF" 2769 fill "#FFFFFF"
@@ -5475,8 +2784,8 @@ graph
5475 LabelGraphics 2784 LabelGraphics
5476 [ 2785 [
5477 text " 2786 text "
5478 FunctionalElement class 2787 FunctionalOutput class
5479 Function class 2788 FunctionalData class
5480 " 2789 "
5481 fontSize 14 2790 fontSize 14
5482 fontName "Consolas" 2791 fontName "Consolas"
@@ -5491,8 +2800,8 @@ graph
5491 id 7 2800 id 7
5492 graphics 2801 graphics
5493 [ 2802 [
5494 w 112.2 2803 w 177.10000000000002
5495 h 26 2804 h 54
5496 type "rectangle" 2805 type "rectangle"
5497 fill "#FFFFFF" 2806 fill "#FFFFFF"
5498 fill2 "#FFFFFF" 2807 fill2 "#FFFFFF"
@@ -5500,7 +2809,7 @@ graph
5500 ] 2809 ]
5501 LabelGraphics 2810 LabelGraphics
5502 [ 2811 [
5503 text "New Integers" 2812 text "null"
5504 outline "#000000" 2813 outline "#000000"
5505 fill "#FFFFFF" 2814 fill "#FFFFFF"
5506 fontSize 16 2815 fontSize 16
@@ -5512,6 +2821,8 @@ graph
5512 LabelGraphics 2821 LabelGraphics
5513 [ 2822 [
5514 text " 2823 text "
2824 FunctionalInput class
2825 FunctionalData class
5515 " 2826 "
5516 fontSize 14 2827 fontSize 14
5517 fontName "Consolas" 2828 fontName "Consolas"
@@ -5526,8 +2837,8 @@ graph
5526 id 8 2837 id 8
5527 graphics 2838 graphics
5528 [ 2839 [
5529 w 85.80000000000001 2840 w 184.8
5530 h 26 2841 h 54
5531 type "rectangle" 2842 type "rectangle"
5532 fill "#FFFFFF" 2843 fill "#FFFFFF"
5533 fill2 "#FFFFFF" 2844 fill2 "#FFFFFF"
@@ -5535,7 +2846,7 @@ graph
5535 ] 2846 ]
5536 LabelGraphics 2847 LabelGraphics
5537 [ 2848 [
5538 text "New Reals" 2849 text "null"
5539 outline "#000000" 2850 outline "#000000"
5540 fill "#FFFFFF" 2851 fill "#FFFFFF"
5541 fontSize 16 2852 fontSize 16
@@ -5547,6 +2858,8 @@ graph
5547 LabelGraphics 2858 LabelGraphics
5548 [ 2859 [
5549 text " 2860 text "
2861 FunctionalOutput class
2862 FunctionalData class
5550 " 2863 "
5551 fontSize 14 2864 fontSize 14
5552 fontName "Consolas" 2865 fontName "Consolas"
@@ -5561,99 +2874,7 @@ graph
5561 id 9 2874 id 9
5562 graphics 2875 graphics
5563 [ 2876 [
5564 w 103.4 2877 w 161.70000000000002
5565 h 26
5566 type "rectangle"
5567 fill "#FFFFFF"
5568 fill2 "#FFFFFF"
5569 outline "#000000"
5570 ]
5571 LabelGraphics
5572 [
5573 text "New Strings"
5574 outline "#000000"
5575 fill "#FFFFFF"
5576 fontSize 16
5577 fontName "Monospace"
5578 autoSizePolicy "node_width"
5579 anchor "t"
5580 borderDistance 0.0
5581 ]
5582 LabelGraphics
5583 [
5584 text "
5585 "
5586 fontSize 14
5587 fontName "Consolas"
5588 alignment "left"
5589 anchor "tl"
5590 borderDistance 6
5591 ]
5592 ]
5593
5594 node
5595 [
5596 id 10
5597 graphics
5598 [
5599 w 103.4
5600 h 26
5601 type "rectangle"
5602 fill "#FFFFFF"
5603 fill2 "#FFFFFF"
5604 outline "#000000"
5605 ]
5606 LabelGraphics
5607 [
5608 text "New Objects"
5609 outline "#000000"
5610 fill "#FFFFFF"
5611 fontSize 16
5612 fontName "Monospace"
5613 autoSizePolicy "node_width"
5614 anchor "t"
5615 borderDistance 0.0
5616 ]
5617 LabelGraphics
5618 [
5619 text "
5620 "
5621 fontSize 14
5622 fontName "Consolas"
5623 alignment "left"
5624 anchor "tl"
5625 borderDistance 6
5626 ]
5627 ]
5628 edge
5629 [
5630 source 3
5631 target 6
5632 graphics
5633 [
5634 fill "#000000"
5635 width 3
5636 targetArrow "standard"
5637 ]
5638 LabelGraphics
5639 [
5640 text "rootElements reference FunctionalArchitectureModel"
5641 fontSize 14
5642 fontName "Consolas"
5643 configuration "AutoFlippingLabel"
5644 model "six_pos"
5645 position "thead"
5646 ]
5647 ]
5648]
5649graph
5650[
5651 node
5652 [
5653 id 0
5654 graphics
5655 [
5656 w 226.60000000000002
5657 h 40 2878 h 40
5658 type "rectangle" 2879 type "rectangle"
5659 fill "#FFFFFF" 2880 fill "#FFFFFF"
@@ -5662,7 +2883,7 @@ graph
5662 ] 2883 ]
5663 LabelGraphics 2884 LabelGraphics
5664 [ 2885 [
5665 text "Root literal FunctionType" 2886 text "null"
5666 outline "#000000" 2887 outline "#000000"
5667 fill "#FFFFFF" 2888 fill "#FFFFFF"
5668 fontSize 16 2889 fontSize 16
@@ -5674,7 +2895,7 @@ graph
5674 LabelGraphics 2895 LabelGraphics
5675 [ 2896 [
5676 text " 2897 text "
5677 FunctionType enum 2898 FAMTerminator class
5678 " 2899 "
5679 fontSize 14 2900 fontSize 14
5680 fontName "Consolas" 2901 fontName "Consolas"
@@ -5686,10 +2907,10 @@ graph
5686 2907
5687 node 2908 node
5688 [ 2909 [
5689 id 1 2910 id 10
5690 graphics 2911 graphics
5691 [ 2912 [
5692 w 297.0 2913 w 161.70000000000002
5693 h 40 2914 h 40
5694 type "rectangle" 2915 type "rectangle"
5695 fill "#FFFFFF" 2916 fill "#FFFFFF"
@@ -5698,7 +2919,7 @@ graph
5698 ] 2919 ]
5699 LabelGraphics 2920 LabelGraphics
5700 [ 2921 [
5701 text "Intermediate literal FunctionType" 2922 text "null"
5702 outline "#000000" 2923 outline "#000000"
5703 fill "#FFFFFF" 2924 fill "#FFFFFF"
5704 fontSize 16 2925 fontSize 16
@@ -5710,7 +2931,7 @@ graph
5710 LabelGraphics 2931 LabelGraphics
5711 [ 2932 [
5712 text " 2933 text "
5713 FunctionType enum 2934 FAMTerminator class
5714 " 2935 "
5715 fontSize 14 2936 fontSize 14
5716 fontName "Consolas" 2937 fontName "Consolas"
@@ -5722,10 +2943,10 @@ graph
5722 2943
5723 node 2944 node
5724 [ 2945 [
5725 id 2 2946 id 11
5726 graphics 2947 graphics
5727 [ 2948 [
5728 w 226.60000000000002 2949 w 161.70000000000002
5729 h 40 2950 h 40
5730 type "rectangle" 2951 type "rectangle"
5731 fill "#FFFFFF" 2952 fill "#FFFFFF"
@@ -5734,149 +2955,6 @@ graph
5734 ] 2955 ]
5735 LabelGraphics 2956 LabelGraphics
5736 [ 2957 [
5737 text "Leaf literal FunctionType"
5738 outline "#000000"
5739 fill "#FFFFFF"
5740 fontSize 16
5741 fontName "Monospace"
5742 autoSizePolicy "node_width"
5743 anchor "t"
5744 borderDistance 0.0
5745 ]
5746 LabelGraphics
5747 [
5748 text "
5749 FunctionType enum
5750 "
5751 fontSize 14
5752 fontName "Consolas"
5753 alignment "left"
5754 anchor "tl"
5755 borderDistance 6
5756 ]
5757 ]
5758
5759 node
5760 [
5761 id 3
5762 graphics
5763 [
5764 w 361.90000000000003
5765 h 54
5766 type "rectangle"
5767 fill "#FFFFFF"
5768 fill2 "#FFFFFF"
5769 outline "#000000"
5770 ]
5771 LabelGraphics
5772 [
5773 text "o 1"
5774 outline "#000000"
5775 fill "#FFFFFF"
5776 fontSize 16
5777 fontName "Monospace"
5778 autoSizePolicy "node_width"
5779 anchor "t"
5780 borderDistance 0.0
5781 ]
5782 LabelGraphics
5783 [
5784 text "
5785 FunctionalArchitectureModel class DefinedPart
5786 FunctionalArchitectureModel class
5787 "
5788 fontSize 14
5789 fontName "Consolas"
5790 alignment "left"
5791 anchor "tl"
5792 borderDistance 6
5793 ]
5794 ]
5795
5796 node
5797 [
5798 id 4
5799 graphics
5800 [
5801 w 41.800000000000004
5802 h 26
5803 type "rectangle"
5804 fill "#FFFFFF"
5805 fill2 "#FFFFFF"
5806 outline "#000000"
5807 ]
5808 LabelGraphics
5809 [
5810 text "true"
5811 outline "#000000"
5812 fill "#FFFFFF"
5813 fontSize 16
5814 fontName "Monospace"
5815 autoSizePolicy "node_width"
5816 anchor "t"
5817 borderDistance 0.0
5818 ]
5819 LabelGraphics
5820 [
5821 text "
5822 "
5823 fontSize 14
5824 fontName "Consolas"
5825 alignment "left"
5826 anchor "tl"
5827 borderDistance 6
5828 ]
5829 ]
5830
5831 node
5832 [
5833 id 5
5834 graphics
5835 [
5836 w 50.6
5837 h 26
5838 type "rectangle"
5839 fill "#FFFFFF"
5840 fill2 "#FFFFFF"
5841 outline "#000000"
5842 ]
5843 LabelGraphics
5844 [
5845 text "false"
5846 outline "#000000"
5847 fill "#FFFFFF"
5848 fontSize 16
5849 fontName "Monospace"
5850 autoSizePolicy "node_width"
5851 anchor "t"
5852 borderDistance 0.0
5853 ]
5854 LabelGraphics
5855 [
5856 text "
5857 "
5858 fontSize 14
5859 fontName "Consolas"
5860 alignment "left"
5861 anchor "tl"
5862 borderDistance 6
5863 ]
5864 ]
5865
5866 node
5867 [
5868 id 6
5869 graphics
5870 [
5871 w 192.50000000000003
5872 h 54
5873 type "rectangle"
5874 fill "#FFFFFF"
5875 fill2 "#FFFFFF"
5876 outline "#000000"
5877 ]
5878 LabelGraphics
5879 [
5880 text "null" 2958 text "null"
5881 outline "#000000" 2959 outline "#000000"
5882 fill "#FFFFFF" 2960 fill "#FFFFFF"
@@ -5889,8 +2967,7 @@ graph
5889 LabelGraphics 2967 LabelGraphics
5890 [ 2968 [
5891 text " 2969 text "
5892 FunctionalElement class 2970 FAMTerminator class
5893 Function class
5894 " 2971 "
5895 fontSize 14 2972 fontSize 14
5896 fontName "Consolas" 2973 fontName "Consolas"
@@ -5902,7 +2979,7 @@ graph
5902 2979
5903 node 2980 node
5904 [ 2981 [
5905 id 7 2982 id 12
5906 graphics 2983 graphics
5907 [ 2984 [
5908 w 112.2 2985 w 112.2
@@ -5937,7 +3014,7 @@ graph
5937 3014
5938 node 3015 node
5939 [ 3016 [
5940 id 8 3017 id 13
5941 graphics 3018 graphics
5942 [ 3019 [
5943 w 85.80000000000001 3020 w 85.80000000000001
@@ -5972,7 +3049,7 @@ graph
5972 3049
5973 node 3050 node
5974 [ 3051 [
5975 id 9 3052 id 14
5976 graphics 3053 graphics
5977 [ 3054 [
5978 w 103.4 3055 w 103.4
@@ -6007,7 +3084,7 @@ graph
6007 3084
6008 node 3085 node
6009 [ 3086 [
6010 id 10 3087 id 15
6011 graphics 3088 graphics
6012 [ 3089 [
6013 w 103.4 3090 w 103.4
@@ -6041,17 +3118,16 @@ graph
6041 ] 3118 ]
6042 edge 3119 edge
6043 [ 3120 [
6044 source 3 3121 source 9
6045 target 6 3122 target 6
6046 graphics 3123 graphics
6047 [ 3124 [
6048 fill "#000000" 3125 fill "#000000"
6049 width 3
6050 targetArrow "standard" 3126 targetArrow "standard"
6051 ] 3127 ]
6052 LabelGraphics 3128 LabelGraphics
6053 [ 3129 [
6054 text "rootElements reference FunctionalArchitectureModel" 3130 text "data reference FAMTerminator"
6055 fontSize 14 3131 fontSize 14
6056 fontName "Consolas" 3132 fontName "Consolas"
6057 configuration "AutoFlippingLabel" 3133 configuration "AutoFlippingLabel"
@@ -6059,412 +3135,137 @@ graph
6059 position "thead" 3135 position "thead"
6060 ] 3136 ]
6061 ] 3137 ]
6062] 3138 edge
6063graph 3139 [
6064[ 3140 source 10
6065 node 3141 target 7
3142 graphics
6066 [ 3143 [
6067 id 0 3144 fill "#000000"
6068 graphics 3145 targetArrow "standard"
6069 [
6070 w 226.60000000000002
6071 h 40
6072 type "rectangle"
6073 fill "#FFFFFF"
6074 fill2 "#FFFFFF"
6075 outline "#000000"
6076 ]
6077 LabelGraphics
6078 [
6079 text "Root literal FunctionType"
6080 outline "#000000"
6081 fill "#FFFFFF"
6082 fontSize 16
6083 fontName "Monospace"
6084 autoSizePolicy "node_width"
6085 anchor "t"
6086 borderDistance 0.0
6087 ]
6088 LabelGraphics
6089 [
6090 text "
6091 FunctionType enum
6092 "
6093 fontSize 14
6094 fontName "Consolas"
6095 alignment "left"
6096 anchor "tl"
6097 borderDistance 6
6098 ]
6099 ] 3146 ]
6100 3147 LabelGraphics
6101 node
6102 [ 3148 [
6103 id 1 3149 text "data reference FAMTerminator"
6104 graphics 3150 fontSize 14
6105 [ 3151 fontName "Consolas"
6106 w 297.0 3152 configuration "AutoFlippingLabel"
6107 h 40 3153 model "six_pos"
6108 type "rectangle" 3154 position "thead"
6109 fill "#FFFFFF"
6110 fill2 "#FFFFFF"
6111 outline "#000000"
6112 ]
6113 LabelGraphics
6114 [
6115 text "Intermediate literal FunctionType"
6116 outline "#000000"
6117 fill "#FFFFFF"
6118 fontSize 16
6119 fontName "Monospace"
6120 autoSizePolicy "node_width"
6121 anchor "t"
6122 borderDistance 0.0
6123 ]
6124 LabelGraphics
6125 [
6126 text "
6127 FunctionType enum
6128 "
6129 fontSize 14
6130 fontName "Consolas"
6131 alignment "left"
6132 anchor "tl"
6133 borderDistance 6
6134 ]
6135 ] 3155 ]
6136 3156 ]
6137 node 3157 edge
3158 [
3159 source 11
3160 target 8
3161 graphics
6138 [ 3162 [
6139 id 2 3163 fill "#000000"
6140 graphics 3164 targetArrow "standard"
6141 [
6142 w 226.60000000000002
6143 h 40
6144 type "rectangle"
6145 fill "#FFFFFF"
6146 fill2 "#FFFFFF"
6147 outline "#000000"
6148 ]
6149 LabelGraphics
6150 [
6151 text "Leaf literal FunctionType"
6152 outline "#000000"
6153 fill "#FFFFFF"
6154 fontSize 16
6155 fontName "Monospace"
6156 autoSizePolicy "node_width"
6157 anchor "t"
6158 borderDistance 0.0
6159 ]
6160 LabelGraphics
6161 [
6162 text "
6163 FunctionType enum
6164 "
6165 fontSize 14
6166 fontName "Consolas"
6167 alignment "left"
6168 anchor "tl"
6169 borderDistance 6
6170 ]
6171 ] 3165 ]
6172 3166 LabelGraphics
6173 node
6174 [ 3167 [
6175 id 3 3168 text "data reference FAMTerminator"
6176 graphics 3169 fontSize 14
6177 [ 3170 fontName "Consolas"
6178 w 361.90000000000003 3171 configuration "AutoFlippingLabel"
6179 h 54 3172 model "six_pos"
6180 type "rectangle" 3173 position "thead"
6181 fill "#FFFFFF"
6182 fill2 "#FFFFFF"
6183 outline "#000000"
6184 ]
6185 LabelGraphics
6186 [
6187 text "o 1"
6188 outline "#000000"
6189 fill "#FFFFFF"
6190 fontSize 16
6191 fontName "Monospace"
6192 autoSizePolicy "node_width"
6193 anchor "t"
6194 borderDistance 0.0
6195 ]
6196 LabelGraphics
6197 [
6198 text "
6199 FunctionalArchitectureModel class DefinedPart
6200 FunctionalArchitectureModel class
6201 "
6202 fontSize 14
6203 fontName "Consolas"
6204 alignment "left"
6205 anchor "tl"
6206 borderDistance 6
6207 ]
6208 ] 3174 ]
6209 3175 ]
6210 node 3176 edge
3177 [
3178 source 5
3179 target 6
3180 graphics
6211 [ 3181 [
6212 id 4 3182 fill "#000000"
6213 graphics 3183 width 3
6214 [ 3184 targetArrow "standard"
6215 w 41.800000000000004
6216 h 26
6217 type "rectangle"
6218 fill "#FFFFFF"
6219 fill2 "#FFFFFF"
6220 outline "#000000"
6221 ]
6222 LabelGraphics
6223 [
6224 text "true"
6225 outline "#000000"
6226 fill "#FFFFFF"
6227 fontSize 16
6228 fontName "Monospace"
6229 autoSizePolicy "node_width"
6230 anchor "t"
6231 borderDistance 0.0
6232 ]
6233 LabelGraphics
6234 [
6235 text "
6236 "
6237 fontSize 14
6238 fontName "Consolas"
6239 alignment "left"
6240 anchor "tl"
6241 borderDistance 6
6242 ]
6243 ] 3185 ]
6244 3186 LabelGraphics
6245 node
6246 [ 3187 [
6247 id 5 3188 text "data reference FunctionalInterface"
6248 graphics 3189 fontSize 14
6249 [ 3190 fontName "Consolas"
6250 w 50.6 3191 configuration "AutoFlippingLabel"
6251 h 26 3192 model "six_pos"
6252 type "rectangle" 3193 position "thead"
6253 fill "#FFFFFF"
6254 fill2 "#FFFFFF"
6255 outline "#000000"
6256 ]
6257 LabelGraphics
6258 [
6259 text "false"
6260 outline "#000000"
6261 fill "#FFFFFF"
6262 fontSize 16
6263 fontName "Monospace"
6264 autoSizePolicy "node_width"
6265 anchor "t"
6266 borderDistance 0.0
6267 ]
6268 LabelGraphics
6269 [
6270 text "
6271 "
6272 fontSize 14
6273 fontName "Consolas"
6274 alignment "left"
6275 anchor "tl"
6276 borderDistance 6
6277 ]
6278 ] 3194 ]
6279 3195 ]
6280 node 3196 edge
3197 [
3198 source 5
3199 target 7
3200 graphics
6281 [ 3201 [
6282 id 6 3202 fill "#000000"
6283 graphics 3203 width 3
6284 [ 3204 targetArrow "standard"
6285 w 192.50000000000003
6286 h 54
6287 type "rectangle"
6288 fill "#FFFFFF"
6289 fill2 "#FFFFFF"
6290 outline "#000000"
6291 ]
6292 LabelGraphics
6293 [
6294 text "null"
6295 outline "#000000"
6296 fill "#FFFFFF"
6297 fontSize 16
6298 fontName "Monospace"
6299 autoSizePolicy "node_width"
6300 anchor "t"
6301 borderDistance 0.0
6302 ]
6303 LabelGraphics
6304 [
6305 text "
6306 FunctionalElement class
6307 Function class
6308 "
6309 fontSize 14
6310 fontName "Consolas"
6311 alignment "left"
6312 anchor "tl"
6313 borderDistance 6
6314 ]
6315 ] 3205 ]
6316 3206 LabelGraphics
6317 node
6318 [ 3207 [
6319 id 7 3208 text "data reference FunctionalInterface"
6320 graphics 3209 fontSize 14
6321 [ 3210 fontName "Consolas"
6322 w 112.2 3211 configuration "AutoFlippingLabel"
6323 h 26 3212 model "six_pos"
6324 type "rectangle" 3213 position "thead"
6325 fill "#FFFFFF"
6326 fill2 "#FFFFFF"
6327 outline "#000000"
6328 ]
6329 LabelGraphics
6330 [
6331 text "New Integers"
6332 outline "#000000"
6333 fill "#FFFFFF"
6334 fontSize 16
6335 fontName "Monospace"
6336 autoSizePolicy "node_width"
6337 anchor "t"
6338 borderDistance 0.0
6339 ]
6340 LabelGraphics
6341 [
6342 text "
6343 "
6344 fontSize 14
6345 fontName "Consolas"
6346 alignment "left"
6347 anchor "tl"
6348 borderDistance 6
6349 ]
6350 ] 3214 ]
6351 3215 ]
6352 node 3216 edge
3217 [
3218 source 5
3219 target 8
3220 graphics
6353 [ 3221 [
6354 id 8 3222 fill "#000000"
6355 graphics 3223 width 3
6356 [ 3224 targetArrow "standard"
6357 w 85.80000000000001
6358 h 26
6359 type "rectangle"
6360 fill "#FFFFFF"
6361 fill2 "#FFFFFF"
6362 outline "#000000"
6363 ]
6364 LabelGraphics
6365 [
6366 text "New Reals"
6367 outline "#000000"
6368 fill "#FFFFFF"
6369 fontSize 16
6370 fontName "Monospace"
6371 autoSizePolicy "node_width"
6372 anchor "t"
6373 borderDistance 0.0
6374 ]
6375 LabelGraphics
6376 [
6377 text "
6378 "
6379 fontSize 14
6380 fontName "Consolas"
6381 alignment "left"
6382 anchor "tl"
6383 borderDistance 6
6384 ]
6385 ] 3225 ]
6386 3226 LabelGraphics
6387 node
6388 [ 3227 [
6389 id 9 3228 text "data reference FunctionalInterface"
6390 graphics 3229 fontSize 14
6391 [ 3230 fontName "Consolas"
6392 w 103.4 3231 configuration "AutoFlippingLabel"
6393 h 26 3232 model "six_pos"
6394 type "rectangle" 3233 position "thead"
6395 fill "#FFFFFF"
6396 fill2 "#FFFFFF"
6397 outline "#000000"
6398 ]
6399 LabelGraphics
6400 [
6401 text "New Strings"
6402 outline "#000000"
6403 fill "#FFFFFF"
6404 fontSize 16
6405 fontName "Monospace"
6406 autoSizePolicy "node_width"
6407 anchor "t"
6408 borderDistance 0.0
6409 ]
6410 LabelGraphics
6411 [
6412 text "
6413 "
6414 fontSize 14
6415 fontName "Consolas"
6416 alignment "left"
6417 anchor "tl"
6418 borderDistance 6
6419 ]
6420 ] 3234 ]
6421 3235 ]
6422 node 3236 edge
3237 [
3238 source 6
3239 target 9
3240 graphics
6423 [ 3241 [
6424 id 10 3242 fill "#000000"
6425 graphics 3243 width 3
6426 [ 3244 targetArrow "standard"
6427 w 103.4
6428 h 26
6429 type "rectangle"
6430 fill "#FFFFFF"
6431 fill2 "#FFFFFF"
6432 outline "#000000"
6433 ]
6434 LabelGraphics
6435 [
6436 text "New Objects"
6437 outline "#000000"
6438 fill "#FFFFFF"
6439 fontSize 16
6440 fontName "Monospace"
6441 autoSizePolicy "node_width"
6442 anchor "t"
6443 borderDistance 0.0
6444 ]
6445 LabelGraphics
6446 [
6447 text "
6448 "
6449 fontSize 14
6450 fontName "Consolas"
6451 alignment "left"
6452 anchor "tl"
6453 borderDistance 6
6454 ]
6455 ] 3245 ]
3246 LabelGraphics
3247 [
3248 text "terminator reference FunctionalData"
3249 fontSize 14
3250 fontName "Consolas"
3251 configuration "AutoFlippingLabel"
3252 model "six_pos"
3253 position "thead"
3254 ]
3255 ]
6456 edge 3256 edge
6457 [ 3257 [
6458 source 6 3258 source 7
6459 target 3 3259 target 10
6460 graphics 3260 graphics
6461 [ 3261 [
6462 fill "#000000" 3262 fill "#000000"
3263 width 3
6463 targetArrow "standard" 3264 targetArrow "standard"
6464 ] 3265 ]
6465 LabelGraphics 3266 LabelGraphics
6466 [ 3267 [
6467 text "model reference FunctionalElement" 3268 text "terminator reference FunctionalData"
6468 fontSize 14 3269 fontSize 14
6469 fontName "Consolas" 3270 fontName "Consolas"
6470 configuration "AutoFlippingLabel" 3271 configuration "AutoFlippingLabel"
@@ -6474,8 +3275,8 @@ graph
6474 ] 3275 ]
6475 edge 3276 edge
6476 [ 3277 [
6477 source 3 3278 source 8
6478 target 6 3279 target 11
6479 graphics 3280 graphics
6480 [ 3281 [
6481 fill "#000000" 3282 fill "#000000"
@@ -6484,7 +3285,7 @@ graph
6484 ] 3285 ]
6485 LabelGraphics 3286 LabelGraphics
6486 [ 3287 [
6487 text "rootElements reference FunctionalArchitectureModel" 3288 text "terminator reference FunctionalData"
6488 fontSize 14 3289 fontSize 14
6489 fontName "Consolas" 3290 fontName "Consolas"
6490 configuration "AutoFlippingLabel" 3291 configuration "AutoFlippingLabel"
@@ -6495,7 +3296,7 @@ graph
6495 edge 3296 edge
6496 [ 3297 [
6497 source 6 3298 source 6
6498 target 1 3299 target 5
6499 graphics 3300 graphics
6500 [ 3301 [
6501 fill "#000000" 3302 fill "#000000"
@@ -6503,7 +3304,45 @@ graph
6503 ] 3304 ]
6504 LabelGraphics 3305 LabelGraphics
6505 [ 3306 [
6506 text "type attribute Function" 3307 text "interface reference FunctionalData"
3308 fontSize 14
3309 fontName "Consolas"
3310 configuration "AutoFlippingLabel"
3311 model "six_pos"
3312 position "thead"
3313 ]
3314 ]
3315 edge
3316 [
3317 source 7
3318 target 5
3319 graphics
3320 [
3321 fill "#000000"
3322 targetArrow "standard"
3323 ]
3324 LabelGraphics
3325 [
3326 text "interface reference FunctionalData"
3327 fontSize 14
3328 fontName "Consolas"
3329 configuration "AutoFlippingLabel"
3330 model "six_pos"
3331 position "thead"
3332 ]
3333 ]
3334 edge
3335 [
3336 source 8
3337 target 5
3338 graphics
3339 [
3340 fill "#000000"
3341 targetArrow "standard"
3342 ]
3343 LabelGraphics
3344 [
3345 text "interface reference FunctionalData"
6507 fontSize 14 3346 fontSize 14
6508 fontName "Consolas" 3347 fontName "Consolas"
6509 configuration "AutoFlippingLabel" 3348 configuration "AutoFlippingLabel"
@@ -6519,8 +3358,8 @@ graph
6519 id 0 3358 id 0
6520 graphics 3359 graphics
6521 [ 3360 [
6522 w 254.10000000000002 3361 w 226.60000000000002
6523 h 110 3362 h 40
6524 type "rectangle" 3363 type "rectangle"
6525 fill "#FFFFFF" 3364 fill "#FFFFFF"
6526 fill2 "#FFFFFF" 3365 fill2 "#FFFFFF"
@@ -6528,7 +3367,7 @@ graph
6528 ] 3367 ]
6529 LabelGraphics 3368 LabelGraphics
6530 [ 3369 [
6531 text "o 1" 3370 text "Root literal FunctionType"
6532 outline "#000000" 3371 outline "#000000"
6533 fill "#FFFFFF" 3372 fill "#FFFFFF"
6534 fontSize 16 3373 fontSize 16
@@ -6540,12 +3379,7 @@ graph
6540 LabelGraphics 3379 LabelGraphics
6541 [ 3380 [
6542 text " 3381 text "
6543 EModelElement class DefinedPart 3382 FunctionType enum
6544 ENamedElement class DefinedPart
6545 EPackage class DefinedPart
6546 EModelElement class
6547 ENamedElement class
6548 EPackage class
6549 " 3383 "
6550 fontSize 14 3384 fontSize 14
6551 fontName "Consolas" 3385 fontName "Consolas"
@@ -6560,8 +3394,8 @@ graph
6560 id 1 3394 id 1
6561 graphics 3395 graphics
6562 [ 3396 [
6563 w 41.800000000000004 3397 w 297.0
6564 h 26 3398 h 40
6565 type "rectangle" 3399 type "rectangle"
6566 fill "#FFFFFF" 3400 fill "#FFFFFF"
6567 fill2 "#FFFFFF" 3401 fill2 "#FFFFFF"
@@ -6569,7 +3403,7 @@ graph
6569 ] 3403 ]
6570 LabelGraphics 3404 LabelGraphics
6571 [ 3405 [
6572 text "true" 3406 text "Intermediate literal FunctionType"
6573 outline "#000000" 3407 outline "#000000"
6574 fill "#FFFFFF" 3408 fill "#FFFFFF"
6575 fontSize 16 3409 fontSize 16
@@ -6581,6 +3415,7 @@ graph
6581 LabelGraphics 3415 LabelGraphics
6582 [ 3416 [
6583 text " 3417 text "
3418 FunctionType enum
6584 " 3419 "
6585 fontSize 14 3420 fontSize 14
6586 fontName "Consolas" 3421 fontName "Consolas"
@@ -6595,8 +3430,8 @@ graph
6595 id 2 3430 id 2
6596 graphics 3431 graphics
6597 [ 3432 [
6598 w 50.6 3433 w 226.60000000000002
6599 h 26 3434 h 40
6600 type "rectangle" 3435 type "rectangle"
6601 fill "#FFFFFF" 3436 fill "#FFFFFF"
6602 fill2 "#FFFFFF" 3437 fill2 "#FFFFFF"
@@ -6604,7 +3439,7 @@ graph
6604 ] 3439 ]
6605 LabelGraphics 3440 LabelGraphics
6606 [ 3441 [
6607 text "false" 3442 text "Leaf literal FunctionType"
6608 outline "#000000" 3443 outline "#000000"
6609 fill "#FFFFFF" 3444 fill "#FFFFFF"
6610 fontSize 16 3445 fontSize 16
@@ -6616,6 +3451,7 @@ graph
6616 LabelGraphics 3451 LabelGraphics
6617 [ 3452 [
6618 text " 3453 text "
3454 FunctionType enum
6619 " 3455 "
6620 fontSize 14 3456 fontSize 14
6621 fontName "Consolas" 3457 fontName "Consolas"
@@ -6630,7 +3466,7 @@ graph
6630 id 3 3466 id 3
6631 graphics 3467 graphics
6632 [ 3468 [
6633 w 24.200000000000003 3469 w 41.800000000000004
6634 h 26 3470 h 26
6635 type "rectangle" 3471 type "rectangle"
6636 fill "#FFFFFF" 3472 fill "#FFFFFF"
@@ -6639,7 +3475,7 @@ graph
6639 ] 3475 ]
6640 LabelGraphics 3476 LabelGraphics
6641 [ 3477 [
6642 text "-1" 3478 text "true"
6643 outline "#000000" 3479 outline "#000000"
6644 fill "#FFFFFF" 3480 fill "#FFFFFF"
6645 fontSize 16 3481 fontSize 16
@@ -6665,7 +3501,7 @@ graph
6665 id 4 3501 id 4
6666 graphics 3502 graphics
6667 [ 3503 [
6668 w 15.400000000000002 3504 w 50.6
6669 h 26 3505 h 26
6670 type "rectangle" 3506 type "rectangle"
6671 fill "#FFFFFF" 3507 fill "#FFFFFF"
@@ -6674,7 +3510,7 @@ graph
6674 ] 3510 ]
6675 LabelGraphics 3511 LabelGraphics
6676 [ 3512 [
6677 text "0" 3513 text "false"
6678 outline "#000000" 3514 outline "#000000"
6679 fill "#FFFFFF" 3515 fill "#FFFFFF"
6680 fontSize 16 3516 fontSize 16
@@ -6700,8 +3536,8 @@ graph
6700 id 5 3536 id 5
6701 graphics 3537 graphics
6702 [ 3538 [
6703 w 15.400000000000002 3539 w 269.5
6704 h 26 3540 h 40
6705 type "rectangle" 3541 type "rectangle"
6706 fill "#FFFFFF" 3542 fill "#FFFFFF"
6707 fill2 "#FFFFFF" 3543 fill2 "#FFFFFF"
@@ -6709,7 +3545,7 @@ graph
6709 ] 3545 ]
6710 LabelGraphics 3546 LabelGraphics
6711 [ 3547 [
6712 text "1" 3548 text "null"
6713 outline "#000000" 3549 outline "#000000"
6714 fill "#FFFFFF" 3550 fill "#FFFFFF"
6715 fontSize 16 3551 fontSize 16
@@ -6721,6 +3557,7 @@ graph
6721 LabelGraphics 3557 LabelGraphics
6722 [ 3558 [
6723 text " 3559 text "
3560 FunctionalArchitectureModel class
6724 " 3561 "
6725 fontSize 14 3562 fontSize 14
6726 fontName "Consolas" 3563 fontName "Consolas"
@@ -6735,8 +3572,8 @@ graph
6735 id 6 3572 id 6
6736 graphics 3573 graphics
6737 [ 3574 [
6738 w 33.0 3575 w 192.50000000000003
6739 h 26 3576 h 54
6740 type "rectangle" 3577 type "rectangle"
6741 fill "#FFFFFF" 3578 fill "#FFFFFF"
6742 fill2 "#FFFFFF" 3579 fill2 "#FFFFFF"
@@ -6744,7 +3581,7 @@ graph
6744 ] 3581 ]
6745 LabelGraphics 3582 LabelGraphics
6746 [ 3583 [
6747 text ""A"" 3584 text "null"
6748 outline "#000000" 3585 outline "#000000"
6749 fill "#FFFFFF" 3586 fill "#FFFFFF"
6750 fontSize 16 3587 fontSize 16
@@ -6756,6 +3593,8 @@ graph
6756 LabelGraphics 3593 LabelGraphics
6757 [ 3594 [
6758 text " 3595 text "
3596 FunctionalElement class
3597 Function class
6759 " 3598 "
6760 fontSize 14 3599 fontSize 14
6761 fontName "Consolas" 3600 fontName "Consolas"
@@ -6770,8 +3609,8 @@ graph
6770 id 7 3609 id 7
6771 graphics 3610 graphics
6772 [ 3611 [
6773 w 33.0 3612 w 207.9
6774 h 26 3613 h 40
6775 type "rectangle" 3614 type "rectangle"
6776 fill "#FFFFFF" 3615 fill "#FFFFFF"
6777 fill2 "#FFFFFF" 3616 fill2 "#FFFFFF"
@@ -6779,7 +3618,7 @@ graph
6779 ] 3618 ]
6780 LabelGraphics 3619 LabelGraphics
6781 [ 3620 [
6782 text ""B"" 3621 text "null"
6783 outline "#000000" 3622 outline "#000000"
6784 fill "#FFFFFF" 3623 fill "#FFFFFF"
6785 fontSize 16 3624 fontSize 16
@@ -6791,6 +3630,7 @@ graph
6791 LabelGraphics 3630 LabelGraphics
6792 [ 3631 [
6793 text " 3632 text "
3633 FunctionalInterface class
6794 " 3634 "
6795 fontSize 14 3635 fontSize 14
6796 fontName "Consolas" 3636 fontName "Consolas"
@@ -6805,8 +3645,8 @@ graph
6805 id 8 3645 id 8
6806 graphics 3646 graphics
6807 [ 3647 [
6808 w 94.60000000000001 3648 w 184.8
6809 h 26 3649 h 54
6810 type "rectangle" 3650 type "rectangle"
6811 fill "#FFFFFF" 3651 fill "#FFFFFF"
6812 fill2 "#FFFFFF" 3652 fill2 "#FFFFFF"
@@ -6814,7 +3654,7 @@ graph
6814 ] 3654 ]
6815 LabelGraphics 3655 LabelGraphics
6816 [ 3656 [
6817 text ""nsPrefix"" 3657 text "null"
6818 outline "#000000" 3658 outline "#000000"
6819 fill "#FFFFFF" 3659 fill "#FFFFFF"
6820 fontSize 16 3660 fontSize 16
@@ -6826,6 +3666,8 @@ graph
6826 LabelGraphics 3666 LabelGraphics
6827 [ 3667 [
6828 text " 3668 text "
3669 FunctionalOutput class
3670 FunctionalData class
6829 " 3671 "
6830 fontSize 14 3672 fontSize 14
6831 fontName "Consolas" 3673 fontName "Consolas"
@@ -6840,8 +3682,8 @@ graph
6840 id 9 3682 id 9
6841 graphics 3683 graphics
6842 [ 3684 [
6843 w 68.2 3685 w 161.70000000000002
6844 h 26 3686 h 40
6845 type "rectangle" 3687 type "rectangle"
6846 fill "#FFFFFF" 3688 fill "#FFFFFF"
6847 fill2 "#FFFFFF" 3689 fill2 "#FFFFFF"
@@ -6849,7 +3691,7 @@ graph
6849 ] 3691 ]
6850 LabelGraphics 3692 LabelGraphics
6851 [ 3693 [
6852 text ""nsUri"" 3694 text "null"
6853 outline "#000000" 3695 outline "#000000"
6854 fill "#FFFFFF" 3696 fill "#FFFFFF"
6855 fontSize 16 3697 fontSize 16
@@ -6861,6 +3703,7 @@ graph
6861 LabelGraphics 3703 LabelGraphics
6862 [ 3704 [
6863 text " 3705 text "
3706 FAMTerminator class
6864 " 3707 "
6865 fontSize 14 3708 fontSize 14
6866 fontName "Consolas" 3709 fontName "Consolas"
@@ -6875,8 +3718,8 @@ graph
6875 id 10 3718 id 10
6876 graphics 3719 graphics
6877 [ 3720 [
6878 w 121.00000000000001 3721 w 184.8
6879 h 26 3722 h 54
6880 type "rectangle" 3723 type "rectangle"
6881 fill "#FFFFFF" 3724 fill "#FFFFFF"
6882 fill2 "#FFFFFF" 3725 fill2 "#FFFFFF"
@@ -6884,7 +3727,7 @@ graph
6884 ] 3727 ]
6885 LabelGraphics 3728 LabelGraphics
6886 [ 3729 [
6887 text ""packageName"" 3730 text "null"
6888 outline "#000000" 3731 outline "#000000"
6889 fill "#FFFFFF" 3732 fill "#FFFFFF"
6890 fontSize 16 3733 fontSize 16
@@ -6896,6 +3739,8 @@ graph
6896 LabelGraphics 3739 LabelGraphics
6897 [ 3740 [
6898 text " 3741 text "
3742 FunctionalOutput class
3743 FunctionalData class
6899 " 3744 "
6900 fontSize 14 3745 fontSize 14
6901 fontName "Consolas" 3746 fontName "Consolas"
@@ -6910,8 +3755,8 @@ graph
6910 id 11 3755 id 11
6911 graphics 3756 graphics
6912 [ 3757 [
6913 w 269.5 3758 w 184.8
6914 h 124 3759 h 54
6915 type "rectangle" 3760 type "rectangle"
6916 fill "#FFFFFF" 3761 fill "#FFFFFF"
6917 fill2 "#FFFFFF" 3762 fill2 "#FFFFFF"
@@ -6931,13 +3776,8 @@ graph
6931 LabelGraphics 3776 LabelGraphics
6932 [ 3777 [
6933 text " 3778 text "
6934 EClassifier class 3779 FunctionalOutput class
6935 EDataType class 3780 FunctionalData class
6936 EEnum class
6937 EModelElement class
6938 ENamedElement class
6939 EModelElement class UndefinedPart
6940 ENamedElement class UndefinedPart
6941 " 3781 "
6942 fontSize 14 3782 fontSize 14
6943 fontName "Consolas" 3783 fontName "Consolas"
@@ -6952,173 +3792,6 @@ graph
6952 id 12 3792 id 12
6953 graphics 3793 graphics
6954 [ 3794 [
6955 w 269.5
6956 h 124
6957 type "rectangle"
6958 fill "#FFFFFF"
6959 fill2 "#FFFFFF"
6960 outline "#000000"
6961 ]
6962 LabelGraphics
6963 [
6964 text "null"
6965 outline "#000000"
6966 fill "#FFFFFF"
6967 fontSize 16
6968 fontName "Monospace"
6969 autoSizePolicy "node_width"
6970 anchor "t"
6971 borderDistance 0.0
6972 ]
6973 LabelGraphics
6974 [
6975 text "
6976 EClassifier class
6977 EDataType class
6978 EEnum class
6979 EModelElement class
6980 ENamedElement class
6981 EModelElement class UndefinedPart
6982 ENamedElement class UndefinedPart
6983 "
6984 fontSize 14
6985 fontName "Consolas"
6986 alignment "left"
6987 anchor "tl"
6988 borderDistance 6
6989 ]
6990 ]
6991
6992 node
6993 [
6994 id 13
6995 graphics
6996 [
6997 w 269.5
6998 h 110
6999 type "rectangle"
7000 fill "#FFFFFF"
7001 fill2 "#FFFFFF"
7002 outline "#000000"
7003 ]
7004 LabelGraphics
7005 [
7006 text "null"
7007 outline "#000000"
7008 fill "#FFFFFF"
7009 fontSize 16
7010 fontName "Monospace"
7011 autoSizePolicy "node_width"
7012 anchor "t"
7013 borderDistance 0.0
7014 ]
7015 LabelGraphics
7016 [
7017 text "
7018 EModelElement class
7019 ENamedElement class
7020 EPackage class
7021 EModelElement class UndefinedPart
7022 ENamedElement class UndefinedPart
7023 EPackage class UndefinedPart
7024 "
7025 fontSize 14
7026 fontName "Consolas"
7027 alignment "left"
7028 anchor "tl"
7029 borderDistance 6
7030 ]
7031 ]
7032
7033 node
7034 [
7035 id 14
7036 graphics
7037 [
7038 w 269.5
7039 h 124
7040 type "rectangle"
7041 fill "#FFFFFF"
7042 fill2 "#FFFFFF"
7043 outline "#000000"
7044 ]
7045 LabelGraphics
7046 [
7047 text "null"
7048 outline "#000000"
7049 fill "#FFFFFF"
7050 fontSize 16
7051 fontName "Monospace"
7052 autoSizePolicy "node_width"
7053 anchor "t"
7054 borderDistance 0.0
7055 ]
7056 LabelGraphics
7057 [
7058 text "
7059 EClassifier class
7060 EDataType class
7061 EEnum class
7062 EModelElement class
7063 ENamedElement class
7064 EModelElement class UndefinedPart
7065 ENamedElement class UndefinedPart
7066 "
7067 fontSize 14
7068 fontName "Consolas"
7069 alignment "left"
7070 anchor "tl"
7071 borderDistance 6
7072 ]
7073 ]
7074
7075 node
7076 [
7077 id 15
7078 graphics
7079 [
7080 w 269.5
7081 h 124
7082 type "rectangle"
7083 fill "#FFFFFF"
7084 fill2 "#FFFFFF"
7085 outline "#000000"
7086 ]
7087 LabelGraphics
7088 [
7089 text "null"
7090 outline "#000000"
7091 fill "#FFFFFF"
7092 fontSize 16
7093 fontName "Monospace"
7094 autoSizePolicy "node_width"
7095 anchor "t"
7096 borderDistance 0.0
7097 ]
7098 LabelGraphics
7099 [
7100 text "
7101 EClassifier class
7102 EDataType class
7103 EEnum class
7104 EModelElement class
7105 ENamedElement class
7106 EModelElement class UndefinedPart
7107 ENamedElement class UndefinedPart
7108 "
7109 fontSize 14
7110 fontName "Consolas"
7111 alignment "left"
7112 anchor "tl"
7113 borderDistance 6
7114 ]
7115 ]
7116
7117 node
7118 [
7119 id 16
7120 graphics
7121 [
7122 w 112.2 3795 w 112.2
7123 h 26 3796 h 26
7124 type "rectangle" 3797 type "rectangle"
@@ -7151,7 +3824,7 @@ graph
7151 3824
7152 node 3825 node
7153 [ 3826 [
7154 id 17 3827 id 13
7155 graphics 3828 graphics
7156 [ 3829 [
7157 w 85.80000000000001 3830 w 85.80000000000001
@@ -7186,7 +3859,7 @@ graph
7186 3859
7187 node 3860 node
7188 [ 3861 [
7189 id 18 3862 id 14
7190 graphics 3863 graphics
7191 [ 3864 [
7192 w 103.4 3865 w 103.4
@@ -7221,7 +3894,7 @@ graph
7221 3894
7222 node 3895 node
7223 [ 3896 [
7224 id 19 3897 id 15
7225 graphics 3898 graphics
7226 [ 3899 [
7227 w 103.4 3900 w 103.4
@@ -7255,54 +3928,17 @@ graph
7255 ] 3928 ]
7256 edge 3929 edge
7257 [ 3930 [
7258 source 11 3931 source 6
7259 target 0 3932 target 7
7260 graphics
7261 [
7262 fill "#000000"
7263 targetArrow "standard"
7264 ]
7265 LabelGraphics
7266 [
7267 text "ePackage reference EClassifier"
7268 fontSize 14
7269 fontName "Consolas"
7270 configuration "AutoFlippingLabel"
7271 model "six_pos"
7272 position "thead"
7273 ]
7274 ]
7275 edge
7276 [
7277 source 12
7278 target 0
7279 graphics
7280 [
7281 fill "#000000"
7282 targetArrow "standard"
7283 ]
7284 LabelGraphics
7285 [
7286 text "ePackage reference EClassifier"
7287 fontSize 14
7288 fontName "Consolas"
7289 configuration "AutoFlippingLabel"
7290 model "six_pos"
7291 position "thead"
7292 ]
7293 ]
7294 edge
7295 [
7296 source 14
7297 target 0
7298 graphics 3933 graphics
7299 [ 3934 [
7300 fill "#000000" 3935 fill "#000000"
3936 width 3
7301 targetArrow "standard" 3937 targetArrow "standard"
7302 ] 3938 ]
7303 LabelGraphics 3939 LabelGraphics
7304 [ 3940 [
7305 text "ePackage reference EClassifier" 3941 text "interface reference FunctionalElement"
7306 fontSize 14 3942 fontSize 14
7307 fontName "Consolas" 3943 fontName "Consolas"
7308 configuration "AutoFlippingLabel" 3944 configuration "AutoFlippingLabel"
@@ -7312,8 +3948,8 @@ graph
7312 ] 3948 ]
7313 edge 3949 edge
7314 [ 3950 [
7315 source 15 3951 source 6
7316 target 13 3952 target 5
7317 graphics 3953 graphics
7318 [ 3954 [
7319 fill "#000000" 3955 fill "#000000"
@@ -7321,7 +3957,7 @@ graph
7321 ] 3957 ]
7322 LabelGraphics 3958 LabelGraphics
7323 [ 3959 [
7324 text "ePackage reference EClassifier" 3960 text "model reference FunctionalElement"
7325 fontSize 14 3961 fontSize 14
7326 fontName "Consolas" 3962 fontName "Consolas"
7327 configuration "AutoFlippingLabel" 3963 configuration "AutoFlippingLabel"
@@ -7331,8 +3967,8 @@ graph
7331 ] 3967 ]
7332 edge 3968 edge
7333 [ 3969 [
7334 source 0 3970 source 5
7335 target 11 3971 target 6
7336 graphics 3972 graphics
7337 [ 3973 [
7338 fill "#000000" 3974 fill "#000000"
@@ -7341,7 +3977,7 @@ graph
7341 ] 3977 ]
7342 LabelGraphics 3978 LabelGraphics
7343 [ 3979 [
7344 text "eClassifiers reference EPackage" 3980 text "rootElements reference FunctionalArchitectureModel"
7345 fontSize 14 3981 fontSize 14
7346 fontName "Consolas" 3982 fontName "Consolas"
7347 configuration "AutoFlippingLabel" 3983 configuration "AutoFlippingLabel"
@@ -7351,17 +3987,16 @@ graph
7351 ] 3987 ]
7352 edge 3988 edge
7353 [ 3989 [
7354 source 0 3990 source 9
7355 target 12 3991 target 8
7356 graphics 3992 graphics
7357 [ 3993 [
7358 fill "#000000" 3994 fill "#000000"
7359 width 3
7360 targetArrow "standard" 3995 targetArrow "standard"
7361 ] 3996 ]
7362 LabelGraphics 3997 LabelGraphics
7363 [ 3998 [
7364 text "eClassifiers reference EPackage" 3999 text "data reference FAMTerminator"
7365 fontSize 14 4000 fontSize 14
7366 fontName "Consolas" 4001 fontName "Consolas"
7367 configuration "AutoFlippingLabel" 4002 configuration "AutoFlippingLabel"
@@ -7371,8 +4006,8 @@ graph
7371 ] 4006 ]
7372 edge 4007 edge
7373 [ 4008 [
7374 source 0 4009 source 7
7375 target 14 4010 target 8
7376 graphics 4011 graphics
7377 [ 4012 [
7378 fill "#000000" 4013 fill "#000000"
@@ -7381,7 +4016,7 @@ graph
7381 ] 4016 ]
7382 LabelGraphics 4017 LabelGraphics
7383 [ 4018 [
7384 text "eClassifiers reference EPackage" 4019 text "data reference FunctionalInterface"
7385 fontSize 14 4020 fontSize 14
7386 fontName "Consolas" 4021 fontName "Consolas"
7387 configuration "AutoFlippingLabel" 4022 configuration "AutoFlippingLabel"
@@ -7391,8 +4026,8 @@ graph
7391 ] 4026 ]
7392 edge 4027 edge
7393 [ 4028 [
7394 source 13 4029 source 7
7395 target 15 4030 target 10
7396 graphics 4031 graphics
7397 [ 4032 [
7398 fill "#000000" 4033 fill "#000000"
@@ -7401,7 +4036,7 @@ graph
7401 ] 4036 ]
7402 LabelGraphics 4037 LabelGraphics
7403 [ 4038 [
7404 text "eClassifiers reference EPackage" 4039 text "data reference FunctionalInterface"
7405 fontSize 14 4040 fontSize 14
7406 fontName "Consolas" 4041 fontName "Consolas"
7407 configuration "AutoFlippingLabel" 4042 configuration "AutoFlippingLabel"
@@ -7411,8 +4046,8 @@ graph
7411 ] 4046 ]
7412 edge 4047 edge
7413 [ 4048 [
7414 source 0 4049 source 7
7415 target 13 4050 target 11
7416 graphics 4051 graphics
7417 [ 4052 [
7418 fill "#000000" 4053 fill "#000000"
@@ -7421,7 +4056,7 @@ graph
7421 ] 4056 ]
7422 LabelGraphics 4057 LabelGraphics
7423 [ 4058 [
7424 text "eSubpackages reference EPackage" 4059 text "data reference FunctionalInterface"
7425 fontSize 14 4060 fontSize 14
7426 fontName "Consolas" 4061 fontName "Consolas"
7427 configuration "AutoFlippingLabel" 4062 configuration "AutoFlippingLabel"
@@ -7431,45 +4066,7 @@ graph
7431 ] 4066 ]
7432 edge 4067 edge
7433 [ 4068 [
7434 source 13 4069 source 7
7435 target 0
7436 graphics
7437 [
7438 fill "#000000"
7439 targetArrow "standard"
7440 ]
7441 LabelGraphics
7442 [
7443 text "eSuperPackage reference EPackage"
7444 fontSize 14
7445 fontName "Consolas"
7446 configuration "AutoFlippingLabel"
7447 model "six_pos"
7448 position "thead"
7449 ]
7450 ]
7451 edge
7452 [
7453 source 12
7454 target 8
7455 graphics
7456 [
7457 fill "#000000"
7458 targetArrow "standard"
7459 ]
7460 LabelGraphics
7461 [
7462 text "instanceClassName attribute EClassifier"
7463 fontSize 14
7464 fontName "Consolas"
7465 configuration "AutoFlippingLabel"
7466 model "six_pos"
7467 position "thead"
7468 ]
7469 ]
7470 edge
7471 [
7472 source 11
7473 target 6 4070 target 6
7474 graphics 4071 graphics
7475 [ 4072 [
@@ -7478,7 +4075,7 @@ graph
7478 ] 4075 ]
7479 LabelGraphics 4076 LabelGraphics
7480 [ 4077 [
7481 text "instanceClassName attribute EClassifier" 4078 text "element reference FunctionalInterface"
7482 fontSize 14 4079 fontSize 14
7483 fontName "Consolas" 4080 fontName "Consolas"
7484 configuration "AutoFlippingLabel" 4081 configuration "AutoFlippingLabel"
@@ -7488,35 +4085,17 @@ graph
7488 ] 4085 ]
7489 edge 4086 edge
7490 [ 4087 [
7491 source 11 4088 source 8
7492 target 10 4089 target 9
7493 graphics
7494 [
7495 fill "#000000"
7496 targetArrow "standard"
7497 ]
7498 LabelGraphics
7499 [
7500 text "instanceTypeName attribute EClassifier"
7501 fontSize 14
7502 fontName "Consolas"
7503 configuration "AutoFlippingLabel"
7504 model "six_pos"
7505 position "thead"
7506 ]
7507 ]
7508 edge
7509 [
7510 source 12
7511 target 8
7512 graphics 4090 graphics
7513 [ 4091 [
7514 fill "#000000" 4092 fill "#000000"
4093 width 3
7515 targetArrow "standard" 4094 targetArrow "standard"
7516 ] 4095 ]
7517 LabelGraphics 4096 LabelGraphics
7518 [ 4097 [
7519 text "instanceTypeName attribute EClassifier" 4098 text "terminator reference FunctionalData"
7520 fontSize 14 4099 fontSize 14
7521 fontName "Consolas" 4100 fontName "Consolas"
7522 configuration "AutoFlippingLabel" 4101 configuration "AutoFlippingLabel"
@@ -7526,8 +4105,8 @@ graph
7526 ] 4105 ]
7527 edge 4106 edge
7528 [ 4107 [
7529 source 0 4108 source 8
7530 target 10 4109 target 7
7531 graphics 4110 graphics
7532 [ 4111 [
7533 fill "#000000" 4112 fill "#000000"
@@ -7535,7 +4114,7 @@ graph
7535 ] 4114 ]
7536 LabelGraphics 4115 LabelGraphics
7537 [ 4116 [
7538 text "name attribute ENamedElement" 4117 text "interface reference FunctionalData"
7539 fontSize 14 4118 fontSize 14
7540 fontName "Consolas" 4119 fontName "Consolas"
7541 configuration "AutoFlippingLabel" 4120 configuration "AutoFlippingLabel"
@@ -7545,8 +4124,8 @@ graph
7545 ] 4124 ]
7546 edge 4125 edge
7547 [ 4126 [
7548 source 12 4127 source 10
7549 target 10 4128 target 7
7550 graphics 4129 graphics
7551 [ 4130 [
7552 fill "#000000" 4131 fill "#000000"
@@ -7554,7 +4133,7 @@ graph
7554 ] 4133 ]
7555 LabelGraphics 4134 LabelGraphics
7556 [ 4135 [
7557 text "name attribute ENamedElement" 4136 text "interface reference FunctionalData"
7558 fontSize 14 4137 fontSize 14
7559 fontName "Consolas" 4138 fontName "Consolas"
7560 configuration "AutoFlippingLabel" 4139 configuration "AutoFlippingLabel"
@@ -7565,45 +4144,7 @@ graph
7565 edge 4144 edge
7566 [ 4145 [
7567 source 11 4146 source 11
7568 target 10 4147 target 7
7569 graphics
7570 [
7571 fill "#000000"
7572 targetArrow "standard"
7573 ]
7574 LabelGraphics
7575 [
7576 text "name attribute ENamedElement"
7577 fontSize 14
7578 fontName "Consolas"
7579 configuration "AutoFlippingLabel"
7580 model "six_pos"
7581 position "thead"
7582 ]
7583 ]
7584 edge
7585 [
7586 source 13
7587 target 6
7588 graphics
7589 [
7590 fill "#000000"
7591 targetArrow "standard"
7592 ]
7593 LabelGraphics
7594 [
7595 text "name attribute ENamedElement"
7596 fontSize 14
7597 fontName "Consolas"
7598 configuration "AutoFlippingLabel"
7599 model "six_pos"
7600 position "thead"
7601 ]
7602 ]
7603 edge
7604 [
7605 source 0
7606 target 9
7607 graphics 4148 graphics
7608 [ 4149 [
7609 fill "#000000" 4150 fill "#000000"
@@ -7611,7 +4152,7 @@ graph
7611 ] 4152 ]
7612 LabelGraphics 4153 LabelGraphics
7613 [ 4154 [
7614 text "nsURI attribute EPackage" 4155 text "interface reference FunctionalData"
7615 fontSize 14 4156 fontSize 14
7616 fontName "Consolas" 4157 fontName "Consolas"
7617 configuration "AutoFlippingLabel" 4158 configuration "AutoFlippingLabel"
@@ -7621,8 +4162,8 @@ graph
7621 ] 4162 ]
7622 edge 4163 edge
7623 [ 4164 [
7624 source 0 4165 source 6
7625 target 8 4166 target 2
7626 graphics 4167 graphics
7627 [ 4168 [
7628 fill "#000000" 4169 fill "#000000"
@@ -7630,7 +4171,7 @@ graph
7630 ] 4171 ]
7631 LabelGraphics 4172 LabelGraphics
7632 [ 4173 [
7633 text "nsPrefix attribute EPackage" 4174 text "type attribute Function"
7634 fontSize 14 4175 fontSize 14
7635 fontName "Consolas" 4176 fontName "Consolas"
7636 configuration "AutoFlippingLabel" 4177 configuration "AutoFlippingLabel"
@@ -7754,43 +4295,6 @@ graph
7754 id 3 4295 id 3
7755 graphics 4296 graphics
7756 [ 4297 [
7757 w 361.90000000000003
7758 h 54
7759 type "rectangle"
7760 fill "#FFFFFF"
7761 fill2 "#FFFFFF"
7762 outline "#000000"
7763 ]
7764 LabelGraphics
7765 [
7766 text "o 1"
7767 outline "#000000"
7768 fill "#FFFFFF"
7769 fontSize 16
7770 fontName "Monospace"
7771 autoSizePolicy "node_width"
7772 anchor "t"
7773 borderDistance 0.0
7774 ]
7775 LabelGraphics
7776 [
7777 text "
7778 FunctionalArchitectureModel class DefinedPart
7779 FunctionalArchitectureModel class
7780 "
7781 fontSize 14
7782 fontName "Consolas"
7783 alignment "left"
7784 anchor "tl"
7785 borderDistance 6
7786 ]
7787 ]
7788
7789 node
7790 [
7791 id 4
7792 graphics
7793 [
7794 w 41.800000000000004 4298 w 41.800000000000004
7795 h 26 4299 h 26
7796 type "rectangle" 4300 type "rectangle"
@@ -7823,7 +4327,7 @@ graph
7823 4327
7824 node 4328 node
7825 [ 4329 [
7826 id 5 4330 id 4
7827 graphics 4331 graphics
7828 [ 4332 [
7829 w 50.6 4333 w 50.6
@@ -7858,319 +4362,10 @@ graph
7858 4362
7859 node 4363 node
7860 [ 4364 [
7861 id 6 4365 id 5
7862 graphics
7863 [
7864 w 192.50000000000003
7865 h 54
7866 type "rectangle"
7867 fill "#FFFFFF"
7868 fill2 "#FFFFFF"
7869 outline "#000000"
7870 ]
7871 LabelGraphics
7872 [
7873 text "null"
7874 outline "#000000"
7875 fill "#FFFFFF"
7876 fontSize 16
7877 fontName "Monospace"
7878 autoSizePolicy "node_width"
7879 anchor "t"
7880 borderDistance 0.0
7881 ]
7882 LabelGraphics
7883 [
7884 text "
7885 FunctionalElement class
7886 Function class
7887 "
7888 fontSize 14
7889 fontName "Consolas"
7890 alignment "left"
7891 anchor "tl"
7892 borderDistance 6
7893 ]
7894 ]
7895
7896 node
7897 [
7898 id 7
7899 graphics
7900 [
7901 w 112.2
7902 h 26
7903 type "rectangle"
7904 fill "#FFFFFF"
7905 fill2 "#FFFFFF"
7906 outline "#000000"
7907 ]
7908 LabelGraphics
7909 [
7910 text "New Integers"
7911 outline "#000000"
7912 fill "#FFFFFF"
7913 fontSize 16
7914 fontName "Monospace"
7915 autoSizePolicy "node_width"
7916 anchor "t"
7917 borderDistance 0.0
7918 ]
7919 LabelGraphics
7920 [
7921 text "
7922 "
7923 fontSize 14
7924 fontName "Consolas"
7925 alignment "left"
7926 anchor "tl"
7927 borderDistance 6
7928 ]
7929 ]
7930
7931 node
7932 [
7933 id 8
7934 graphics
7935 [
7936 w 85.80000000000001
7937 h 26
7938 type "rectangle"
7939 fill "#FFFFFF"
7940 fill2 "#FFFFFF"
7941 outline "#000000"
7942 ]
7943 LabelGraphics
7944 [
7945 text "New Reals"
7946 outline "#000000"
7947 fill "#FFFFFF"
7948 fontSize 16
7949 fontName "Monospace"
7950 autoSizePolicy "node_width"
7951 anchor "t"
7952 borderDistance 0.0
7953 ]
7954 LabelGraphics
7955 [
7956 text "
7957 "
7958 fontSize 14
7959 fontName "Consolas"
7960 alignment "left"
7961 anchor "tl"
7962 borderDistance 6
7963 ]
7964 ]
7965
7966 node
7967 [
7968 id 9
7969 graphics
7970 [
7971 w 103.4
7972 h 26
7973 type "rectangle"
7974 fill "#FFFFFF"
7975 fill2 "#FFFFFF"
7976 outline "#000000"
7977 ]
7978 LabelGraphics
7979 [
7980 text "New Strings"
7981 outline "#000000"
7982 fill "#FFFFFF"
7983 fontSize 16
7984 fontName "Monospace"
7985 autoSizePolicy "node_width"
7986 anchor "t"
7987 borderDistance 0.0
7988 ]
7989 LabelGraphics
7990 [
7991 text "
7992 "
7993 fontSize 14
7994 fontName "Consolas"
7995 alignment "left"
7996 anchor "tl"
7997 borderDistance 6
7998 ]
7999 ]
8000
8001 node
8002 [
8003 id 10
8004 graphics
8005 [
8006 w 103.4
8007 h 26
8008 type "rectangle"
8009 fill "#FFFFFF"
8010 fill2 "#FFFFFF"
8011 outline "#000000"
8012 ]
8013 LabelGraphics
8014 [
8015 text "New Objects"
8016 outline "#000000"
8017 fill "#FFFFFF"
8018 fontSize 16
8019 fontName "Monospace"
8020 autoSizePolicy "node_width"
8021 anchor "t"
8022 borderDistance 0.0
8023 ]
8024 LabelGraphics
8025 [
8026 text "
8027 "
8028 fontSize 14
8029 fontName "Consolas"
8030 alignment "left"
8031 anchor "tl"
8032 borderDistance 6
8033 ]
8034 ]
8035 edge
8036 [
8037 source 6
8038 target 3
8039 graphics
8040 [
8041 fill "#000000"
8042 targetArrow "standard"
8043 ]
8044 LabelGraphics
8045 [
8046 text "model reference FunctionalElement"
8047 fontSize 14
8048 fontName "Consolas"
8049 configuration "AutoFlippingLabel"
8050 model "six_pos"
8051 position "thead"
8052 ]
8053 ]
8054 edge
8055 [
8056 source 3
8057 target 6
8058 graphics
8059 [
8060 fill "#000000"
8061 width 3
8062 targetArrow "standard"
8063 ]
8064 LabelGraphics
8065 [
8066 text "rootElements reference FunctionalArchitectureModel"
8067 fontSize 14
8068 fontName "Consolas"
8069 configuration "AutoFlippingLabel"
8070 model "six_pos"
8071 position "thead"
8072 ]
8073 ]
8074 edge
8075 [
8076 source 6
8077 target 0
8078 graphics
8079 [
8080 fill "#000000"
8081 targetArrow "standard"
8082 ]
8083 LabelGraphics
8084 [
8085 text "type attribute Function"
8086 fontSize 14
8087 fontName "Consolas"
8088 configuration "AutoFlippingLabel"
8089 model "six_pos"
8090 position "thead"
8091 ]
8092 ]
8093]
8094graph
8095[
8096 node
8097 [
8098 id 0
8099 graphics
8100 [
8101 w 226.60000000000002
8102 h 40
8103 type "rectangle"
8104 fill "#FFFFFF"
8105 fill2 "#FFFFFF"
8106 outline "#000000"
8107 ]
8108 LabelGraphics
8109 [
8110 text "Root literal FunctionType"
8111 outline "#000000"
8112 fill "#FFFFFF"
8113 fontSize 16
8114 fontName "Monospace"
8115 autoSizePolicy "node_width"
8116 anchor "t"
8117 borderDistance 0.0
8118 ]
8119 LabelGraphics
8120 [
8121 text "
8122 FunctionType enum
8123 "
8124 fontSize 14
8125 fontName "Consolas"
8126 alignment "left"
8127 anchor "tl"
8128 borderDistance 6
8129 ]
8130 ]
8131
8132 node
8133 [
8134 id 1
8135 graphics
8136 [
8137 w 297.0
8138 h 40
8139 type "rectangle"
8140 fill "#FFFFFF"
8141 fill2 "#FFFFFF"
8142 outline "#000000"
8143 ]
8144 LabelGraphics
8145 [
8146 text "Intermediate literal FunctionType"
8147 outline "#000000"
8148 fill "#FFFFFF"
8149 fontSize 16
8150 fontName "Monospace"
8151 autoSizePolicy "node_width"
8152 anchor "t"
8153 borderDistance 0.0
8154 ]
8155 LabelGraphics
8156 [
8157 text "
8158 FunctionType enum
8159 "
8160 fontSize 14
8161 fontName "Consolas"
8162 alignment "left"
8163 anchor "tl"
8164 borderDistance 6
8165 ]
8166 ]
8167
8168 node
8169 [
8170 id 2
8171 graphics 4366 graphics
8172 [ 4367 [
8173 w 226.60000000000002 4368 w 269.5
8174 h 40 4369 h 40
8175 type "rectangle" 4370 type "rectangle"
8176 fill "#FFFFFF" 4371 fill "#FFFFFF"
@@ -8179,43 +4374,7 @@ graph
8179 ] 4374 ]
8180 LabelGraphics 4375 LabelGraphics
8181 [ 4376 [
8182 text "Leaf literal FunctionType" 4377 text "null"
8183 outline "#000000"
8184 fill "#FFFFFF"
8185 fontSize 16
8186 fontName "Monospace"
8187 autoSizePolicy "node_width"
8188 anchor "t"
8189 borderDistance 0.0
8190 ]
8191 LabelGraphics
8192 [
8193 text "
8194 FunctionType enum
8195 "
8196 fontSize 14
8197 fontName "Consolas"
8198 alignment "left"
8199 anchor "tl"
8200 borderDistance 6
8201 ]
8202 ]
8203
8204 node
8205 [
8206 id 3
8207 graphics
8208 [
8209 w 361.90000000000003
8210 h 54
8211 type "rectangle"
8212 fill "#FFFFFF"
8213 fill2 "#FFFFFF"
8214 outline "#000000"
8215 ]
8216 LabelGraphics
8217 [
8218 text "o 1"
8219 outline "#000000" 4378 outline "#000000"
8220 fill "#FFFFFF" 4379 fill "#FFFFFF"
8221 fontSize 16 4380 fontSize 16
@@ -8227,7 +4386,6 @@ graph
8227 LabelGraphics 4386 LabelGraphics
8228 [ 4387 [
8229 text " 4388 text "
8230 FunctionalArchitectureModel class DefinedPart
8231 FunctionalArchitectureModel class 4389 FunctionalArchitectureModel class
8232 " 4390 "
8233 fontSize 14 4391 fontSize 14
@@ -8240,76 +4398,6 @@ graph
8240 4398
8241 node 4399 node
8242 [ 4400 [
8243 id 4
8244 graphics
8245 [
8246 w 41.800000000000004
8247 h 26
8248 type "rectangle"
8249 fill "#FFFFFF"
8250 fill2 "#FFFFFF"
8251 outline "#000000"
8252 ]
8253 LabelGraphics
8254 [
8255 text "true"
8256 outline "#000000"
8257 fill "#FFFFFF"
8258 fontSize 16
8259 fontName "Monospace"
8260 autoSizePolicy "node_width"
8261 anchor "t"
8262 borderDistance 0.0
8263 ]
8264 LabelGraphics
8265 [
8266 text "
8267 "
8268 fontSize 14
8269 fontName "Consolas"
8270 alignment "left"
8271 anchor "tl"
8272 borderDistance 6
8273 ]
8274 ]
8275
8276 node
8277 [
8278 id 5
8279 graphics
8280 [
8281 w 50.6
8282 h 26
8283 type "rectangle"
8284 fill "#FFFFFF"
8285 fill2 "#FFFFFF"
8286 outline "#000000"
8287 ]
8288 LabelGraphics
8289 [
8290 text "false"
8291 outline "#000000"
8292 fill "#FFFFFF"
8293 fontSize 16
8294 fontName "Monospace"
8295 autoSizePolicy "node_width"
8296 anchor "t"
8297 borderDistance 0.0
8298 ]
8299 LabelGraphics
8300 [
8301 text "
8302 "
8303 fontSize 14
8304 fontName "Consolas"
8305 alignment "left"
8306 anchor "tl"
8307 borderDistance 6
8308 ]
8309 ]
8310
8311 node
8312 [
8313 id 6 4401 id 6
8314 graphics 4402 graphics
8315 [ 4403 [
@@ -8350,459 +4438,8 @@ graph
8350 id 7 4438 id 7
8351 graphics 4439 graphics
8352 [ 4440 [
8353 w 112.2 4441 w 207.9
8354 h 26 4442 h 40
8355 type "rectangle"
8356 fill "#FFFFFF"
8357 fill2 "#FFFFFF"
8358 outline "#000000"
8359 ]
8360 LabelGraphics
8361 [
8362 text "New Integers"
8363 outline "#000000"
8364 fill "#FFFFFF"
8365 fontSize 16
8366 fontName "Monospace"
8367 autoSizePolicy "node_width"
8368 anchor "t"
8369 borderDistance 0.0
8370 ]
8371 LabelGraphics
8372 [
8373 text "
8374 "
8375 fontSize 14
8376 fontName "Consolas"
8377 alignment "left"
8378 anchor "tl"
8379 borderDistance 6
8380 ]
8381 ]
8382
8383 node
8384 [
8385 id 8
8386 graphics
8387 [
8388 w 85.80000000000001
8389 h 26
8390 type "rectangle"
8391 fill "#FFFFFF"
8392 fill2 "#FFFFFF"
8393 outline "#000000"
8394 ]
8395 LabelGraphics
8396 [
8397 text "New Reals"
8398 outline "#000000"
8399 fill "#FFFFFF"
8400 fontSize 16
8401 fontName "Monospace"
8402 autoSizePolicy "node_width"
8403 anchor "t"
8404 borderDistance 0.0
8405 ]
8406 LabelGraphics
8407 [
8408 text "
8409 "
8410 fontSize 14
8411 fontName "Consolas"
8412 alignment "left"
8413 anchor "tl"
8414 borderDistance 6
8415 ]
8416 ]
8417
8418 node
8419 [
8420 id 9
8421 graphics
8422 [
8423 w 103.4
8424 h 26
8425 type "rectangle"
8426 fill "#FFFFFF"
8427 fill2 "#FFFFFF"
8428 outline "#000000"
8429 ]
8430 LabelGraphics
8431 [
8432 text "New Strings"
8433 outline "#000000"
8434 fill "#FFFFFF"
8435 fontSize 16
8436 fontName "Monospace"
8437 autoSizePolicy "node_width"
8438 anchor "t"
8439 borderDistance 0.0
8440 ]
8441 LabelGraphics
8442 [
8443 text "
8444 "
8445 fontSize 14
8446 fontName "Consolas"
8447 alignment "left"
8448 anchor "tl"
8449 borderDistance 6
8450 ]
8451 ]
8452
8453 node
8454 [
8455 id 10
8456 graphics
8457 [
8458 w 103.4
8459 h 26
8460 type "rectangle"
8461 fill "#FFFFFF"
8462 fill2 "#FFFFFF"
8463 outline "#000000"
8464 ]
8465 LabelGraphics
8466 [
8467 text "New Objects"
8468 outline "#000000"
8469 fill "#FFFFFF"
8470 fontSize 16
8471 fontName "Monospace"
8472 autoSizePolicy "node_width"
8473 anchor "t"
8474 borderDistance 0.0
8475 ]
8476 LabelGraphics
8477 [
8478 text "
8479 "
8480 fontSize 14
8481 fontName "Consolas"
8482 alignment "left"
8483 anchor "tl"
8484 borderDistance 6
8485 ]
8486 ]
8487 edge
8488 [
8489 source 6
8490 target 3
8491 graphics
8492 [
8493 fill "#000000"
8494 targetArrow "standard"
8495 ]
8496 LabelGraphics
8497 [
8498 text "model reference FunctionalElement"
8499 fontSize 14
8500 fontName "Consolas"
8501 configuration "AutoFlippingLabel"
8502 model "six_pos"
8503 position "thead"
8504 ]
8505 ]
8506 edge
8507 [
8508 source 3
8509 target 6
8510 graphics
8511 [
8512 fill "#000000"
8513 width 3
8514 targetArrow "standard"
8515 ]
8516 LabelGraphics
8517 [
8518 text "rootElements reference FunctionalArchitectureModel"
8519 fontSize 14
8520 fontName "Consolas"
8521 configuration "AutoFlippingLabel"
8522 model "six_pos"
8523 position "thead"
8524 ]
8525 ]
8526 edge
8527 [
8528 source 6
8529 target 2
8530 graphics
8531 [
8532 fill "#000000"
8533 targetArrow "standard"
8534 ]
8535 LabelGraphics
8536 [
8537 text "type attribute Function"
8538 fontSize 14
8539 fontName "Consolas"
8540 configuration "AutoFlippingLabel"
8541 model "six_pos"
8542 position "thead"
8543 ]
8544 ]
8545]
8546graph
8547[
8548 node
8549 [
8550 id 0
8551 graphics
8552 [
8553 w 254.10000000000002
8554 h 110
8555 type "rectangle"
8556 fill "#FFFFFF"
8557 fill2 "#FFFFFF"
8558 outline "#000000"
8559 ]
8560 LabelGraphics
8561 [
8562 text "o 1"
8563 outline "#000000"
8564 fill "#FFFFFF"
8565 fontSize 16
8566 fontName "Monospace"
8567 autoSizePolicy "node_width"
8568 anchor "t"
8569 borderDistance 0.0
8570 ]
8571 LabelGraphics
8572 [
8573 text "
8574 EModelElement class DefinedPart
8575 ENamedElement class DefinedPart
8576 EPackage class DefinedPart
8577 EModelElement class
8578 ENamedElement class
8579 EPackage class
8580 "
8581 fontSize 14
8582 fontName "Consolas"
8583 alignment "left"
8584 anchor "tl"
8585 borderDistance 6
8586 ]
8587 ]
8588
8589 node
8590 [
8591 id 1
8592 graphics
8593 [
8594 w 41.800000000000004
8595 h 26
8596 type "rectangle"
8597 fill "#FFFFFF"
8598 fill2 "#FFFFFF"
8599 outline "#000000"
8600 ]
8601 LabelGraphics
8602 [
8603 text "true"
8604 outline "#000000"
8605 fill "#FFFFFF"
8606 fontSize 16
8607 fontName "Monospace"
8608 autoSizePolicy "node_width"
8609 anchor "t"
8610 borderDistance 0.0
8611 ]
8612 LabelGraphics
8613 [
8614 text "
8615 "
8616 fontSize 14
8617 fontName "Consolas"
8618 alignment "left"
8619 anchor "tl"
8620 borderDistance 6
8621 ]
8622 ]
8623
8624 node
8625 [
8626 id 2
8627 graphics
8628 [
8629 w 50.6
8630 h 26
8631 type "rectangle"
8632 fill "#FFFFFF"
8633 fill2 "#FFFFFF"
8634 outline "#000000"
8635 ]
8636 LabelGraphics
8637 [
8638 text "false"
8639 outline "#000000"
8640 fill "#FFFFFF"
8641 fontSize 16
8642 fontName "Monospace"
8643 autoSizePolicy "node_width"
8644 anchor "t"
8645 borderDistance 0.0
8646 ]
8647 LabelGraphics
8648 [
8649 text "
8650 "
8651 fontSize 14
8652 fontName "Consolas"
8653 alignment "left"
8654 anchor "tl"
8655 borderDistance 6
8656 ]
8657 ]
8658
8659 node
8660 [
8661 id 3
8662 graphics
8663 [
8664 w 24.200000000000003
8665 h 26
8666 type "rectangle"
8667 fill "#FFFFFF"
8668 fill2 "#FFFFFF"
8669 outline "#000000"
8670 ]
8671 LabelGraphics
8672 [
8673 text "-1"
8674 outline "#000000"
8675 fill "#FFFFFF"
8676 fontSize 16
8677 fontName "Monospace"
8678 autoSizePolicy "node_width"
8679 anchor "t"
8680 borderDistance 0.0
8681 ]
8682 LabelGraphics
8683 [
8684 text "
8685 "
8686 fontSize 14
8687 fontName "Consolas"
8688 alignment "left"
8689 anchor "tl"
8690 borderDistance 6
8691 ]
8692 ]
8693
8694 node
8695 [
8696 id 4
8697 graphics
8698 [
8699 w 15.400000000000002
8700 h 26
8701 type "rectangle"
8702 fill "#FFFFFF"
8703 fill2 "#FFFFFF"
8704 outline "#000000"
8705 ]
8706 LabelGraphics
8707 [
8708 text "0"
8709 outline "#000000"
8710 fill "#FFFFFF"
8711 fontSize 16
8712 fontName "Monospace"
8713 autoSizePolicy "node_width"
8714 anchor "t"
8715 borderDistance 0.0
8716 ]
8717 LabelGraphics
8718 [
8719 text "
8720 "
8721 fontSize 14
8722 fontName "Consolas"
8723 alignment "left"
8724 anchor "tl"
8725 borderDistance 6
8726 ]
8727 ]
8728
8729 node
8730 [
8731 id 5
8732 graphics
8733 [
8734 w 15.400000000000002
8735 h 26
8736 type "rectangle"
8737 fill "#FFFFFF"
8738 fill2 "#FFFFFF"
8739 outline "#000000"
8740 ]
8741 LabelGraphics
8742 [
8743 text "1"
8744 outline "#000000"
8745 fill "#FFFFFF"
8746 fontSize 16
8747 fontName "Monospace"
8748 autoSizePolicy "node_width"
8749 anchor "t"
8750 borderDistance 0.0
8751 ]
8752 LabelGraphics
8753 [
8754 text "
8755 "
8756 fontSize 14
8757 fontName "Consolas"
8758 alignment "left"
8759 anchor "tl"
8760 borderDistance 6
8761 ]
8762 ]
8763
8764 node
8765 [
8766 id 6
8767 graphics
8768 [
8769 w 33.0
8770 h 26
8771 type "rectangle"
8772 fill "#FFFFFF"
8773 fill2 "#FFFFFF"
8774 outline "#000000"
8775 ]
8776 LabelGraphics
8777 [
8778 text ""A""
8779 outline "#000000"
8780 fill "#FFFFFF"
8781 fontSize 16
8782 fontName "Monospace"
8783 autoSizePolicy "node_width"
8784 anchor "t"
8785 borderDistance 0.0
8786 ]
8787 LabelGraphics
8788 [
8789 text "
8790 "
8791 fontSize 14
8792 fontName "Consolas"
8793 alignment "left"
8794 anchor "tl"
8795 borderDistance 6
8796 ]
8797 ]
8798
8799 node
8800 [
8801 id 7
8802 graphics
8803 [
8804 w 33.0
8805 h 26
8806 type "rectangle" 4443 type "rectangle"
8807 fill "#FFFFFF" 4444 fill "#FFFFFF"
8808 fill2 "#FFFFFF" 4445 fill2 "#FFFFFF"
@@ -8810,7 +4447,7 @@ graph
8810 ] 4447 ]
8811 LabelGraphics 4448 LabelGraphics
8812 [ 4449 [
8813 text ""B"" 4450 text "null"
8814 outline "#000000" 4451 outline "#000000"
8815 fill "#FFFFFF" 4452 fill "#FFFFFF"
8816 fontSize 16 4453 fontSize 16
@@ -8822,6 +4459,7 @@ graph
8822 LabelGraphics 4459 LabelGraphics
8823 [ 4460 [
8824 text " 4461 text "
4462 FunctionalInterface class
8825 " 4463 "
8826 fontSize 14 4464 fontSize 14
8827 fontName "Consolas" 4465 fontName "Consolas"
@@ -8836,8 +4474,8 @@ graph
8836 id 8 4474 id 8
8837 graphics 4475 graphics
8838 [ 4476 [
8839 w 94.60000000000001 4477 w 177.10000000000002
8840 h 26 4478 h 54
8841 type "rectangle" 4479 type "rectangle"
8842 fill "#FFFFFF" 4480 fill "#FFFFFF"
8843 fill2 "#FFFFFF" 4481 fill2 "#FFFFFF"
@@ -8845,7 +4483,7 @@ graph
8845 ] 4483 ]
8846 LabelGraphics 4484 LabelGraphics
8847 [ 4485 [
8848 text ""nsPrefix"" 4486 text "null"
8849 outline "#000000" 4487 outline "#000000"
8850 fill "#FFFFFF" 4488 fill "#FFFFFF"
8851 fontSize 16 4489 fontSize 16
@@ -8857,6 +4495,8 @@ graph
8857 LabelGraphics 4495 LabelGraphics
8858 [ 4496 [
8859 text " 4497 text "
4498 FunctionalInput class
4499 FunctionalData class
8860 " 4500 "
8861 fontSize 14 4501 fontSize 14
8862 fontName "Consolas" 4502 fontName "Consolas"
@@ -8871,8 +4511,8 @@ graph
8871 id 9 4511 id 9
8872 graphics 4512 graphics
8873 [ 4513 [
8874 w 68.2 4514 w 161.70000000000002
8875 h 26 4515 h 40
8876 type "rectangle" 4516 type "rectangle"
8877 fill "#FFFFFF" 4517 fill "#FFFFFF"
8878 fill2 "#FFFFFF" 4518 fill2 "#FFFFFF"
@@ -8880,7 +4520,7 @@ graph
8880 ] 4520 ]
8881 LabelGraphics 4521 LabelGraphics
8882 [ 4522 [
8883 text ""nsUri"" 4523 text "null"
8884 outline "#000000" 4524 outline "#000000"
8885 fill "#FFFFFF" 4525 fill "#FFFFFF"
8886 fontSize 16 4526 fontSize 16
@@ -8892,6 +4532,7 @@ graph
8892 LabelGraphics 4532 LabelGraphics
8893 [ 4533 [
8894 text " 4534 text "
4535 FAMTerminator class
8895 " 4536 "
8896 fontSize 14 4537 fontSize 14
8897 fontName "Consolas" 4538 fontName "Consolas"
@@ -8906,8 +4547,8 @@ graph
8906 id 10 4547 id 10
8907 graphics 4548 graphics
8908 [ 4549 [
8909 w 121.00000000000001 4550 w 184.8
8910 h 26 4551 h 54
8911 type "rectangle" 4552 type "rectangle"
8912 fill "#FFFFFF" 4553 fill "#FFFFFF"
8913 fill2 "#FFFFFF" 4554 fill2 "#FFFFFF"
@@ -8915,7 +4556,7 @@ graph
8915 ] 4556 ]
8916 LabelGraphics 4557 LabelGraphics
8917 [ 4558 [
8918 text ""packageName"" 4559 text "null"
8919 outline "#000000" 4560 outline "#000000"
8920 fill "#FFFFFF" 4561 fill "#FFFFFF"
8921 fontSize 16 4562 fontSize 16
@@ -8927,6 +4568,8 @@ graph
8927 LabelGraphics 4568 LabelGraphics
8928 [ 4569 [
8929 text " 4570 text "
4571 FunctionalOutput class
4572 FunctionalData class
8930 " 4573 "
8931 fontSize 14 4574 fontSize 14
8932 fontName "Consolas" 4575 fontName "Consolas"
@@ -8941,8 +4584,8 @@ graph
8941 id 11 4584 id 11
8942 graphics 4585 graphics
8943 [ 4586 [
8944 w 269.5 4587 w 177.10000000000002
8945 h 110 4588 h 40
8946 type "rectangle" 4589 type "rectangle"
8947 fill "#FFFFFF" 4590 fill "#FFFFFF"
8948 fill2 "#FFFFFF" 4591 fill2 "#FFFFFF"
@@ -8962,12 +4605,7 @@ graph
8962 LabelGraphics 4605 LabelGraphics
8963 [ 4606 [
8964 text " 4607 text "
8965 EClassifier class 4608 InformationLink class
8966 EDataType class
8967 EModelElement class
8968 ENamedElement class
8969 EModelElement class UndefinedPart
8970 ENamedElement class UndefinedPart
8971 " 4609 "
8972 fontSize 14 4610 fontSize 14
8973 fontName "Consolas" 4611 fontName "Consolas"
@@ -8982,164 +4620,6 @@ graph
8982 id 12 4620 id 12
8983 graphics 4621 graphics
8984 [ 4622 [
8985 w 269.5
8986 h 68
8987 type "rectangle"
8988 fill "#FFFFFF"
8989 fill2 "#FFFFFF"
8990 outline "#000000"
8991 ]
8992 LabelGraphics
8993 [
8994 text "null"
8995 outline "#000000"
8996 fill "#FFFFFF"
8997 fontSize 16
8998 fontName "Monospace"
8999 autoSizePolicy "node_width"
9000 anchor "t"
9001 borderDistance 0.0
9002 ]
9003 LabelGraphics
9004 [
9005 text "
9006 EAnnotation class
9007 EModelElement class
9008 EModelElement class UndefinedPart
9009 "
9010 fontSize 14
9011 fontName "Consolas"
9012 alignment "left"
9013 anchor "tl"
9014 borderDistance 6
9015 ]
9016 ]
9017
9018 node
9019 [
9020 id 13
9021 graphics
9022 [
9023 w 269.5
9024 h 110
9025 type "rectangle"
9026 fill "#FFFFFF"
9027 fill2 "#FFFFFF"
9028 outline "#000000"
9029 ]
9030 LabelGraphics
9031 [
9032 text "null"
9033 outline "#000000"
9034 fill "#FFFFFF"
9035 fontSize 16
9036 fontName "Monospace"
9037 autoSizePolicy "node_width"
9038 anchor "t"
9039 borderDistance 0.0
9040 ]
9041 LabelGraphics
9042 [
9043 text "
9044 EClass class
9045 EClassifier class
9046 EModelElement class
9047 ENamedElement class
9048 EModelElement class UndefinedPart
9049 ENamedElement class UndefinedPart
9050 "
9051 fontSize 14
9052 fontName "Consolas"
9053 alignment "left"
9054 anchor "tl"
9055 borderDistance 6
9056 ]
9057 ]
9058
9059 node
9060 [
9061 id 14
9062 graphics
9063 [
9064 w 269.5
9065 h 110
9066 type "rectangle"
9067 fill "#FFFFFF"
9068 fill2 "#FFFFFF"
9069 outline "#000000"
9070 ]
9071 LabelGraphics
9072 [
9073 text "null"
9074 outline "#000000"
9075 fill "#FFFFFF"
9076 fontSize 16
9077 fontName "Monospace"
9078 autoSizePolicy "node_width"
9079 anchor "t"
9080 borderDistance 0.0
9081 ]
9082 LabelGraphics
9083 [
9084 text "
9085 EClassifier class
9086 EDataType class
9087 EModelElement class
9088 ENamedElement class
9089 EModelElement class UndefinedPart
9090 ENamedElement class UndefinedPart
9091 "
9092 fontSize 14
9093 fontName "Consolas"
9094 alignment "left"
9095 anchor "tl"
9096 borderDistance 6
9097 ]
9098 ]
9099
9100 node
9101 [
9102 id 15
9103 graphics
9104 [
9105 w 269.5
9106 h 68
9107 type "rectangle"
9108 fill "#FFFFFF"
9109 fill2 "#FFFFFF"
9110 outline "#000000"
9111 ]
9112 LabelGraphics
9113 [
9114 text "null"
9115 outline "#000000"
9116 fill "#FFFFFF"
9117 fontSize 16
9118 fontName "Monospace"
9119 autoSizePolicy "node_width"
9120 anchor "t"
9121 borderDistance 0.0
9122 ]
9123 LabelGraphics
9124 [
9125 text "
9126 EAnnotation class
9127 EModelElement class
9128 EModelElement class UndefinedPart
9129 "
9130 fontSize 14
9131 fontName "Consolas"
9132 alignment "left"
9133 anchor "tl"
9134 borderDistance 6
9135 ]
9136 ]
9137
9138 node
9139 [
9140 id 16
9141 graphics
9142 [
9143 w 112.2 4623 w 112.2
9144 h 26 4624 h 26
9145 type "rectangle" 4625 type "rectangle"
@@ -9172,7 +4652,7 @@ graph
9172 4652
9173 node 4653 node
9174 [ 4654 [
9175 id 17 4655 id 13
9176 graphics 4656 graphics
9177 [ 4657 [
9178 w 85.80000000000001 4658 w 85.80000000000001
@@ -9207,7 +4687,7 @@ graph
9207 4687
9208 node 4688 node
9209 [ 4689 [
9210 id 18 4690 id 14
9211 graphics 4691 graphics
9212 [ 4692 [
9213 w 103.4 4693 w 103.4
@@ -9242,7 +4722,7 @@ graph
9242 4722
9243 node 4723 node
9244 [ 4724 [
9245 id 19 4725 id 15
9246 graphics 4726 graphics
9247 [ 4727 [
9248 w 103.4 4728 w 103.4
@@ -9276,35 +4756,17 @@ graph
9276 ] 4756 ]
9277 edge 4757 edge
9278 [ 4758 [
9279 source 12 4759 source 6
9280 target 0 4760 target 7
9281 graphics
9282 [
9283 fill "#000000"
9284 targetArrow "standard"
9285 ]
9286 LabelGraphics
9287 [
9288 text "eModelElement reference EAnnotation"
9289 fontSize 14
9290 fontName "Consolas"
9291 configuration "AutoFlippingLabel"
9292 model "six_pos"
9293 position "thead"
9294 ]
9295 ]
9296 edge
9297 [
9298 source 15
9299 target 0
9300 graphics 4761 graphics
9301 [ 4762 [
9302 fill "#000000" 4763 fill "#000000"
4764 width 3
9303 targetArrow "standard" 4765 targetArrow "standard"
9304 ] 4766 ]
9305 LabelGraphics 4767 LabelGraphics
9306 [ 4768 [
9307 text "eModelElement reference EAnnotation" 4769 text "interface reference FunctionalElement"
9308 fontSize 14 4770 fontSize 14
9309 fontName "Consolas" 4771 fontName "Consolas"
9310 configuration "AutoFlippingLabel" 4772 configuration "AutoFlippingLabel"
@@ -9314,8 +4776,8 @@ graph
9314 ] 4776 ]
9315 edge 4777 edge
9316 [ 4778 [
9317 source 11 4779 source 6
9318 target 0 4780 target 5
9319 graphics 4781 graphics
9320 [ 4782 [
9321 fill "#000000" 4783 fill "#000000"
@@ -9323,7 +4785,7 @@ graph
9323 ] 4785 ]
9324 LabelGraphics 4786 LabelGraphics
9325 [ 4787 [
9326 text "ePackage reference EClassifier" 4788 text "model reference FunctionalElement"
9327 fontSize 14 4789 fontSize 14
9328 fontName "Consolas" 4790 fontName "Consolas"
9329 configuration "AutoFlippingLabel" 4791 configuration "AutoFlippingLabel"
@@ -9333,16 +4795,17 @@ graph
9333 ] 4795 ]
9334 edge 4796 edge
9335 [ 4797 [
9336 source 13 4798 source 5
9337 target 0 4799 target 6
9338 graphics 4800 graphics
9339 [ 4801 [
9340 fill "#000000" 4802 fill "#000000"
4803 width 3
9341 targetArrow "standard" 4804 targetArrow "standard"
9342 ] 4805 ]
9343 LabelGraphics 4806 LabelGraphics
9344 [ 4807 [
9345 text "ePackage reference EClassifier" 4808 text "rootElements reference FunctionalArchitectureModel"
9346 fontSize 14 4809 fontSize 14
9347 fontName "Consolas" 4810 fontName "Consolas"
9348 configuration "AutoFlippingLabel" 4811 configuration "AutoFlippingLabel"
@@ -9352,8 +4815,8 @@ graph
9352 ] 4815 ]
9353 edge 4816 edge
9354 [ 4817 [
9355 source 14 4818 source 9
9356 target 0 4819 target 8
9357 graphics 4820 graphics
9358 [ 4821 [
9359 fill "#000000" 4822 fill "#000000"
@@ -9361,7 +4824,7 @@ graph
9361 ] 4824 ]
9362 LabelGraphics 4825 LabelGraphics
9363 [ 4826 [
9364 text "ePackage reference EClassifier" 4827 text "data reference FAMTerminator"
9365 fontSize 14 4828 fontSize 14
9366 fontName "Consolas" 4829 fontName "Consolas"
9367 configuration "AutoFlippingLabel" 4830 configuration "AutoFlippingLabel"
@@ -9371,17 +4834,16 @@ graph
9371 ] 4834 ]
9372 edge 4835 edge
9373 [ 4836 [
9374 source 0 4837 source 11
9375 target 12 4838 target 10
9376 graphics 4839 graphics
9377 [ 4840 [
9378 fill "#000000" 4841 fill "#000000"
9379 width 3
9380 targetArrow "standard" 4842 targetArrow "standard"
9381 ] 4843 ]
9382 LabelGraphics 4844 LabelGraphics
9383 [ 4845 [
9384 text "eAnnotations reference EModelElement" 4846 text "from reference InformationLink"
9385 fontSize 14 4847 fontSize 14
9386 fontName "Consolas" 4848 fontName "Consolas"
9387 configuration "AutoFlippingLabel" 4849 configuration "AutoFlippingLabel"
@@ -9391,17 +4853,16 @@ graph
9391 ] 4853 ]
9392 edge 4854 edge
9393 [ 4855 [
9394 source 0 4856 source 11
9395 target 15 4857 target 8
9396 graphics 4858 graphics
9397 [ 4859 [
9398 fill "#000000" 4860 fill "#000000"
9399 width 3
9400 targetArrow "standard" 4861 targetArrow "standard"
9401 ] 4862 ]
9402 LabelGraphics 4863 LabelGraphics
9403 [ 4864 [
9404 text "eAnnotations reference EModelElement" 4865 text "to reference InformationLink"
9405 fontSize 14 4866 fontSize 14
9406 fontName "Consolas" 4867 fontName "Consolas"
9407 configuration "AutoFlippingLabel" 4868 configuration "AutoFlippingLabel"
@@ -9411,8 +4872,8 @@ graph
9411 ] 4872 ]
9412 edge 4873 edge
9413 [ 4874 [
9414 source 0 4875 source 7
9415 target 11 4876 target 8
9416 graphics 4877 graphics
9417 [ 4878 [
9418 fill "#000000" 4879 fill "#000000"
@@ -9421,7 +4882,7 @@ graph
9421 ] 4882 ]
9422 LabelGraphics 4883 LabelGraphics
9423 [ 4884 [
9424 text "eClassifiers reference EPackage" 4885 text "data reference FunctionalInterface"
9425 fontSize 14 4886 fontSize 14
9426 fontName "Consolas" 4887 fontName "Consolas"
9427 configuration "AutoFlippingLabel" 4888 configuration "AutoFlippingLabel"
@@ -9431,8 +4892,8 @@ graph
9431 ] 4892 ]
9432 edge 4893 edge
9433 [ 4894 [
9434 source 0 4895 source 7
9435 target 13 4896 target 10
9436 graphics 4897 graphics
9437 [ 4898 [
9438 fill "#000000" 4899 fill "#000000"
@@ -9441,7 +4902,7 @@ graph
9441 ] 4902 ]
9442 LabelGraphics 4903 LabelGraphics
9443 [ 4904 [
9444 text "eClassifiers reference EPackage" 4905 text "data reference FunctionalInterface"
9445 fontSize 14 4906 fontSize 14
9446 fontName "Consolas" 4907 fontName "Consolas"
9447 configuration "AutoFlippingLabel" 4908 configuration "AutoFlippingLabel"
@@ -9451,17 +4912,16 @@ graph
9451 ] 4912 ]
9452 edge 4913 edge
9453 [ 4914 [
9454 source 0 4915 source 7
9455 target 14 4916 target 6
9456 graphics 4917 graphics
9457 [ 4918 [
9458 fill "#000000" 4919 fill "#000000"
9459 width 3
9460 targetArrow "standard" 4920 targetArrow "standard"
9461 ] 4921 ]
9462 LabelGraphics 4922 LabelGraphics
9463 [ 4923 [
9464 text "eClassifiers reference EPackage" 4924 text "element reference FunctionalInterface"
9465 fontSize 14 4925 fontSize 14
9466 fontName "Consolas" 4926 fontName "Consolas"
9467 configuration "AutoFlippingLabel" 4927 configuration "AutoFlippingLabel"
@@ -9471,8 +4931,8 @@ graph
9471 ] 4931 ]
9472 edge 4932 edge
9473 [ 4933 [
9474 source 12 4934 source 8
9475 target 7 4935 target 11
9476 graphics 4936 graphics
9477 [ 4937 [
9478 fill "#000000" 4938 fill "#000000"
@@ -9480,7 +4940,7 @@ graph
9480 ] 4940 ]
9481 LabelGraphics 4941 LabelGraphics
9482 [ 4942 [
9483 text "source attribute EAnnotation" 4943 text "IncomingLinks reference FunctionalInput"
9484 fontSize 14 4944 fontSize 14
9485 fontName "Consolas" 4945 fontName "Consolas"
9486 configuration "AutoFlippingLabel" 4946 configuration "AutoFlippingLabel"
@@ -9490,16 +4950,17 @@ graph
9490 ] 4950 ]
9491 edge 4951 edge
9492 [ 4952 [
9493 source 11 4953 source 10
9494 target 8 4954 target 11
9495 graphics 4955 graphics
9496 [ 4956 [
9497 fill "#000000" 4957 fill "#000000"
4958 width 3
9498 targetArrow "standard" 4959 targetArrow "standard"
9499 ] 4960 ]
9500 LabelGraphics 4961 LabelGraphics
9501 [ 4962 [
9502 text "instanceClassName attribute EClassifier" 4963 text "outgoingLinks reference FunctionalOutput"
9503 fontSize 14 4964 fontSize 14
9504 fontName "Consolas" 4965 fontName "Consolas"
9505 configuration "AutoFlippingLabel" 4966 configuration "AutoFlippingLabel"
@@ -9509,54 +4970,17 @@ graph
9509 ] 4970 ]
9510 edge 4971 edge
9511 [ 4972 [
9512 source 11 4973 source 8
9513 target 9 4974 target 9
9514 graphics 4975 graphics
9515 [ 4976 [
9516 fill "#000000" 4977 fill "#000000"
4978 width 3
9517 targetArrow "standard" 4979 targetArrow "standard"
9518 ] 4980 ]
9519 LabelGraphics 4981 LabelGraphics
9520 [ 4982 [
9521 text "instanceTypeName attribute EClassifier" 4983 text "terminator reference FunctionalData"
9522 fontSize 14
9523 fontName "Consolas"
9524 configuration "AutoFlippingLabel"
9525 model "six_pos"
9526 position "thead"
9527 ]
9528 ]
9529 edge
9530 [
9531 source 0
9532 target 10
9533 graphics
9534 [
9535 fill "#000000"
9536 targetArrow "standard"
9537 ]
9538 LabelGraphics
9539 [
9540 text "name attribute ENamedElement"
9541 fontSize 14
9542 fontName "Consolas"
9543 configuration "AutoFlippingLabel"
9544 model "six_pos"
9545 position "thead"
9546 ]
9547 ]
9548 edge
9549 [
9550 source 11
9551 target 8
9552 graphics
9553 [
9554 fill "#000000"
9555 targetArrow "standard"
9556 ]
9557 LabelGraphics
9558 [
9559 text "name attribute ENamedElement"
9560 fontSize 14 4984 fontSize 14
9561 fontName "Consolas" 4985 fontName "Consolas"
9562 configuration "AutoFlippingLabel" 4986 configuration "AutoFlippingLabel"
@@ -9566,8 +4990,8 @@ graph
9566 ] 4990 ]
9567 edge 4991 edge
9568 [ 4992 [
9569 source 13 4993 source 8
9570 target 9 4994 target 7
9571 graphics 4995 graphics
9572 [ 4996 [
9573 fill "#000000" 4997 fill "#000000"
@@ -9575,7 +4999,7 @@ graph
9575 ] 4999 ]
9576 LabelGraphics 5000 LabelGraphics
9577 [ 5001 [
9578 text "name attribute ENamedElement" 5002 text "interface reference FunctionalData"
9579 fontSize 14 5003 fontSize 14
9580 fontName "Consolas" 5004 fontName "Consolas"
9581 configuration "AutoFlippingLabel" 5005 configuration "AutoFlippingLabel"
@@ -9585,8 +5009,8 @@ graph
9585 ] 5009 ]
9586 edge 5010 edge
9587 [ 5011 [
9588 source 0 5012 source 10
9589 target 9 5013 target 7
9590 graphics 5014 graphics
9591 [ 5015 [
9592 fill "#000000" 5016 fill "#000000"
@@ -9594,7 +5018,7 @@ graph
9594 ] 5018 ]
9595 LabelGraphics 5019 LabelGraphics
9596 [ 5020 [
9597 text "nsURI attribute EPackage" 5021 text "interface reference FunctionalData"
9598 fontSize 14 5022 fontSize 14
9599 fontName "Consolas" 5023 fontName "Consolas"
9600 configuration "AutoFlippingLabel" 5024 configuration "AutoFlippingLabel"
@@ -9604,8 +5028,8 @@ graph
9604 ] 5028 ]
9605 edge 5029 edge
9606 [ 5030 [
9607 source 0 5031 source 6
9608 target 8 5032 target 0
9609 graphics 5033 graphics
9610 [ 5034 [
9611 fill "#000000" 5035 fill "#000000"
@@ -9613,7 +5037,7 @@ graph
9613 ] 5037 ]
9614 LabelGraphics 5038 LabelGraphics
9615 [ 5039 [
9616 text "nsPrefix attribute EPackage" 5040 text "type attribute Function"
9617 fontSize 14 5041 fontSize 14
9618 fontName "Consolas" 5042 fontName "Consolas"
9619 configuration "AutoFlippingLabel" 5043 configuration "AutoFlippingLabel"
@@ -9629,8 +5053,8 @@ graph
9629 id 0 5053 id 0
9630 graphics 5054 graphics
9631 [ 5055 [
9632 w 254.10000000000002 5056 w 226.60000000000002
9633 h 110 5057 h 40
9634 type "rectangle" 5058 type "rectangle"
9635 fill "#FFFFFF" 5059 fill "#FFFFFF"
9636 fill2 "#FFFFFF" 5060 fill2 "#FFFFFF"
@@ -9638,7 +5062,7 @@ graph
9638 ] 5062 ]
9639 LabelGraphics 5063 LabelGraphics
9640 [ 5064 [
9641 text "o 1" 5065 text "Root literal FunctionType"
9642 outline "#000000" 5066 outline "#000000"
9643 fill "#FFFFFF" 5067 fill "#FFFFFF"
9644 fontSize 16 5068 fontSize 16
@@ -9650,12 +5074,7 @@ graph
9650 LabelGraphics 5074 LabelGraphics
9651 [ 5075 [
9652 text " 5076 text "
9653 EModelElement class DefinedPart 5077 FunctionType enum
9654 ENamedElement class DefinedPart
9655 EPackage class DefinedPart
9656 EModelElement class
9657 ENamedElement class
9658 EPackage class
9659 " 5078 "
9660 fontSize 14 5079 fontSize 14
9661 fontName "Consolas" 5080 fontName "Consolas"
@@ -9670,8 +5089,8 @@ graph
9670 id 1 5089 id 1
9671 graphics 5090 graphics
9672 [ 5091 [
9673 w 41.800000000000004 5092 w 297.0
9674 h 26 5093 h 40
9675 type "rectangle" 5094 type "rectangle"
9676 fill "#FFFFFF" 5095 fill "#FFFFFF"
9677 fill2 "#FFFFFF" 5096 fill2 "#FFFFFF"
@@ -9679,7 +5098,7 @@ graph
9679 ] 5098 ]
9680 LabelGraphics 5099 LabelGraphics
9681 [ 5100 [
9682 text "true" 5101 text "Intermediate literal FunctionType"
9683 outline "#000000" 5102 outline "#000000"
9684 fill "#FFFFFF" 5103 fill "#FFFFFF"
9685 fontSize 16 5104 fontSize 16
@@ -9691,6 +5110,7 @@ graph
9691 LabelGraphics 5110 LabelGraphics
9692 [ 5111 [
9693 text " 5112 text "
5113 FunctionType enum
9694 " 5114 "
9695 fontSize 14 5115 fontSize 14
9696 fontName "Consolas" 5116 fontName "Consolas"
@@ -9705,8 +5125,8 @@ graph
9705 id 2 5125 id 2
9706 graphics 5126 graphics
9707 [ 5127 [
9708 w 50.6 5128 w 226.60000000000002
9709 h 26 5129 h 40
9710 type "rectangle" 5130 type "rectangle"
9711 fill "#FFFFFF" 5131 fill "#FFFFFF"
9712 fill2 "#FFFFFF" 5132 fill2 "#FFFFFF"
@@ -9714,7 +5134,7 @@ graph
9714 ] 5134 ]
9715 LabelGraphics 5135 LabelGraphics
9716 [ 5136 [
9717 text "false" 5137 text "Leaf literal FunctionType"
9718 outline "#000000" 5138 outline "#000000"
9719 fill "#FFFFFF" 5139 fill "#FFFFFF"
9720 fontSize 16 5140 fontSize 16
@@ -9726,6 +5146,7 @@ graph
9726 LabelGraphics 5146 LabelGraphics
9727 [ 5147 [
9728 text " 5148 text "
5149 FunctionType enum
9729 " 5150 "
9730 fontSize 14 5151 fontSize 14
9731 fontName "Consolas" 5152 fontName "Consolas"
@@ -9740,7 +5161,7 @@ graph
9740 id 3 5161 id 3
9741 graphics 5162 graphics
9742 [ 5163 [
9743 w 24.200000000000003 5164 w 41.800000000000004
9744 h 26 5165 h 26
9745 type "rectangle" 5166 type "rectangle"
9746 fill "#FFFFFF" 5167 fill "#FFFFFF"
@@ -9749,7 +5170,7 @@ graph
9749 ] 5170 ]
9750 LabelGraphics 5171 LabelGraphics
9751 [ 5172 [
9752 text "-1" 5173 text "true"
9753 outline "#000000" 5174 outline "#000000"
9754 fill "#FFFFFF" 5175 fill "#FFFFFF"
9755 fontSize 16 5176 fontSize 16
@@ -9775,7 +5196,7 @@ graph
9775 id 4 5196 id 4
9776 graphics 5197 graphics
9777 [ 5198 [
9778 w 15.400000000000002 5199 w 50.6
9779 h 26 5200 h 26
9780 type "rectangle" 5201 type "rectangle"
9781 fill "#FFFFFF" 5202 fill "#FFFFFF"
@@ -9784,7 +5205,7 @@ graph
9784 ] 5205 ]
9785 LabelGraphics 5206 LabelGraphics
9786 [ 5207 [
9787 text "0" 5208 text "false"
9788 outline "#000000" 5209 outline "#000000"
9789 fill "#FFFFFF" 5210 fill "#FFFFFF"
9790 fontSize 16 5211 fontSize 16
@@ -9810,8 +5231,8 @@ graph
9810 id 5 5231 id 5
9811 graphics 5232 graphics
9812 [ 5233 [
9813 w 15.400000000000002 5234 w 269.5
9814 h 26 5235 h 40
9815 type "rectangle" 5236 type "rectangle"
9816 fill "#FFFFFF" 5237 fill "#FFFFFF"
9817 fill2 "#FFFFFF" 5238 fill2 "#FFFFFF"
@@ -9819,7 +5240,7 @@ graph
9819 ] 5240 ]
9820 LabelGraphics 5241 LabelGraphics
9821 [ 5242 [
9822 text "1" 5243 text "null"
9823 outline "#000000" 5244 outline "#000000"
9824 fill "#FFFFFF" 5245 fill "#FFFFFF"
9825 fontSize 16 5246 fontSize 16
@@ -9831,6 +5252,7 @@ graph
9831 LabelGraphics 5252 LabelGraphics
9832 [ 5253 [
9833 text " 5254 text "
5255 FunctionalArchitectureModel class
9834 " 5256 "
9835 fontSize 14 5257 fontSize 14
9836 fontName "Consolas" 5258 fontName "Consolas"
@@ -9845,8 +5267,8 @@ graph
9845 id 6 5267 id 6
9846 graphics 5268 graphics
9847 [ 5269 [
9848 w 33.0 5270 w 192.50000000000003
9849 h 26 5271 h 54
9850 type "rectangle" 5272 type "rectangle"
9851 fill "#FFFFFF" 5273 fill "#FFFFFF"
9852 fill2 "#FFFFFF" 5274 fill2 "#FFFFFF"
@@ -9854,7 +5276,7 @@ graph
9854 ] 5276 ]
9855 LabelGraphics 5277 LabelGraphics
9856 [ 5278 [
9857 text ""A"" 5279 text "null"
9858 outline "#000000" 5280 outline "#000000"
9859 fill "#FFFFFF" 5281 fill "#FFFFFF"
9860 fontSize 16 5282 fontSize 16
@@ -9866,6 +5288,8 @@ graph
9866 LabelGraphics 5288 LabelGraphics
9867 [ 5289 [
9868 text " 5290 text "
5291 FunctionalElement class
5292 Function class
9869 " 5293 "
9870 fontSize 14 5294 fontSize 14
9871 fontName "Consolas" 5295 fontName "Consolas"
@@ -9880,8 +5304,8 @@ graph
9880 id 7 5304 id 7
9881 graphics 5305 graphics
9882 [ 5306 [
9883 w 33.0 5307 w 207.9
9884 h 26 5308 h 40
9885 type "rectangle" 5309 type "rectangle"
9886 fill "#FFFFFF" 5310 fill "#FFFFFF"
9887 fill2 "#FFFFFF" 5311 fill2 "#FFFFFF"
@@ -9889,7 +5313,7 @@ graph
9889 ] 5313 ]
9890 LabelGraphics 5314 LabelGraphics
9891 [ 5315 [
9892 text ""B"" 5316 text "null"
9893 outline "#000000" 5317 outline "#000000"
9894 fill "#FFFFFF" 5318 fill "#FFFFFF"
9895 fontSize 16 5319 fontSize 16
@@ -9901,6 +5325,7 @@ graph
9901 LabelGraphics 5325 LabelGraphics
9902 [ 5326 [
9903 text " 5327 text "
5328 FunctionalInterface class
9904 " 5329 "
9905 fontSize 14 5330 fontSize 14
9906 fontName "Consolas" 5331 fontName "Consolas"
@@ -9915,8 +5340,8 @@ graph
9915 id 8 5340 id 8
9916 graphics 5341 graphics
9917 [ 5342 [
9918 w 94.60000000000001 5343 w 184.8
9919 h 26 5344 h 54
9920 type "rectangle" 5345 type "rectangle"
9921 fill "#FFFFFF" 5346 fill "#FFFFFF"
9922 fill2 "#FFFFFF" 5347 fill2 "#FFFFFF"
@@ -9924,7 +5349,7 @@ graph
9924 ] 5349 ]
9925 LabelGraphics 5350 LabelGraphics
9926 [ 5351 [
9927 text ""nsPrefix"" 5352 text "null"
9928 outline "#000000" 5353 outline "#000000"
9929 fill "#FFFFFF" 5354 fill "#FFFFFF"
9930 fontSize 16 5355 fontSize 16
@@ -9936,6 +5361,8 @@ graph
9936 LabelGraphics 5361 LabelGraphics
9937 [ 5362 [
9938 text " 5363 text "
5364 FunctionalOutput class
5365 FunctionalData class
9939 " 5366 "
9940 fontSize 14 5367 fontSize 14
9941 fontName "Consolas" 5368 fontName "Consolas"
@@ -9950,8 +5377,8 @@ graph
9950 id 9 5377 id 9
9951 graphics 5378 graphics
9952 [ 5379 [
9953 w 68.2 5380 w 184.8
9954 h 26 5381 h 54
9955 type "rectangle" 5382 type "rectangle"
9956 fill "#FFFFFF" 5383 fill "#FFFFFF"
9957 fill2 "#FFFFFF" 5384 fill2 "#FFFFFF"
@@ -9959,7 +5386,7 @@ graph
9959 ] 5386 ]
9960 LabelGraphics 5387 LabelGraphics
9961 [ 5388 [
9962 text ""nsUri"" 5389 text "null"
9963 outline "#000000" 5390 outline "#000000"
9964 fill "#FFFFFF" 5391 fill "#FFFFFF"
9965 fontSize 16 5392 fontSize 16
@@ -9971,6 +5398,8 @@ graph
9971 LabelGraphics 5398 LabelGraphics
9972 [ 5399 [
9973 text " 5400 text "
5401 FunctionalOutput class
5402 FunctionalData class
9974 " 5403 "
9975 fontSize 14 5404 fontSize 14
9976 fontName "Consolas" 5405 fontName "Consolas"
@@ -9985,8 +5414,8 @@ graph
9985 id 10 5414 id 10
9986 graphics 5415 graphics
9987 [ 5416 [
9988 w 121.00000000000001 5417 w 161.70000000000002
9989 h 26 5418 h 40
9990 type "rectangle" 5419 type "rectangle"
9991 fill "#FFFFFF" 5420 fill "#FFFFFF"
9992 fill2 "#FFFFFF" 5421 fill2 "#FFFFFF"
@@ -9994,7 +5423,7 @@ graph
9994 ] 5423 ]
9995 LabelGraphics 5424 LabelGraphics
9996 [ 5425 [
9997 text ""packageName"" 5426 text "null"
9998 outline "#000000" 5427 outline "#000000"
9999 fill "#FFFFFF" 5428 fill "#FFFFFF"
10000 fontSize 16 5429 fontSize 16
@@ -10006,6 +5435,7 @@ graph
10006 LabelGraphics 5435 LabelGraphics
10007 [ 5436 [
10008 text " 5437 text "
5438 FAMTerminator class
10009 " 5439 "
10010 fontSize 14 5440 fontSize 14
10011 fontName "Consolas" 5441 fontName "Consolas"
@@ -10020,8 +5450,8 @@ graph
10020 id 11 5450 id 11
10021 graphics 5451 graphics
10022 [ 5452 [
10023 w 269.5 5453 w 161.70000000000002
10024 h 124 5454 h 40
10025 type "rectangle" 5455 type "rectangle"
10026 fill "#FFFFFF" 5456 fill "#FFFFFF"
10027 fill2 "#FFFFFF" 5457 fill2 "#FFFFFF"
@@ -10041,13 +5471,7 @@ graph
10041 LabelGraphics 5471 LabelGraphics
10042 [ 5472 [
10043 text " 5473 text "
10044 EClassifier class 5474 FAMTerminator class
10045 EDataType class
10046 EEnum class
10047 EModelElement class
10048 ENamedElement class
10049 EModelElement class UndefinedPart
10050 ENamedElement class UndefinedPart
10051 " 5475 "
10052 fontSize 14 5476 fontSize 14
10053 fontName "Consolas" 5477 fontName "Consolas"
@@ -10062,166 +5486,6 @@ graph
10062 id 12 5486 id 12
10063 graphics 5487 graphics
10064 [ 5488 [
10065 w 269.5
10066 h 124
10067 type "rectangle"
10068 fill "#FFFFFF"
10069 fill2 "#FFFFFF"
10070 outline "#000000"
10071 ]
10072 LabelGraphics
10073 [
10074 text "null"
10075 outline "#000000"
10076 fill "#FFFFFF"
10077 fontSize 16
10078 fontName "Monospace"
10079 autoSizePolicy "node_width"
10080 anchor "t"
10081 borderDistance 0.0
10082 ]
10083 LabelGraphics
10084 [
10085 text "
10086 EClassifier class
10087 EDataType class
10088 EEnum class
10089 EModelElement class
10090 ENamedElement class
10091 EModelElement class UndefinedPart
10092 ENamedElement class UndefinedPart
10093 "
10094 fontSize 14
10095 fontName "Consolas"
10096 alignment "left"
10097 anchor "tl"
10098 borderDistance 6
10099 ]
10100 ]
10101
10102 node
10103 [
10104 id 13
10105 graphics
10106 [
10107 w 269.5
10108 h 96
10109 type "rectangle"
10110 fill "#FFFFFF"
10111 fill2 "#FFFFFF"
10112 outline "#000000"
10113 ]
10114 LabelGraphics
10115 [
10116 text "null"
10117 outline "#000000"
10118 fill "#FFFFFF"
10119 fontSize 16
10120 fontName "Monospace"
10121 autoSizePolicy "node_width"
10122 anchor "t"
10123 borderDistance 0.0
10124 ]
10125 LabelGraphics
10126 [
10127 text "
10128 EEnumLiteral class
10129 EModelElement class
10130 ENamedElement class
10131 EModelElement class UndefinedPart
10132 ENamedElement class UndefinedPart
10133 "
10134 fontSize 14
10135 fontName "Consolas"
10136 alignment "left"
10137 anchor "tl"
10138 borderDistance 6
10139 ]
10140 ]
10141
10142 node
10143 [
10144 id 14
10145 graphics
10146 [
10147 w 269.5
10148 h 68
10149 type "rectangle"
10150 fill "#FFFFFF"
10151 fill2 "#FFFFFF"
10152 outline "#000000"
10153 ]
10154 LabelGraphics
10155 [
10156 text "null"
10157 outline "#000000"
10158 fill "#FFFFFF"
10159 fontSize 16
10160 fontName "Monospace"
10161 autoSizePolicy "node_width"
10162 anchor "t"
10163 borderDistance 0.0
10164 ]
10165 LabelGraphics
10166 [
10167 text "
10168 EAnnotation class
10169 EModelElement class
10170 EModelElement class UndefinedPart
10171 "
10172 fontSize 14
10173 fontName "Consolas"
10174 alignment "left"
10175 anchor "tl"
10176 borderDistance 6
10177 ]
10178 ]
10179
10180 node
10181 [
10182 id 15
10183 graphics
10184 [
10185 w 269.5
10186 h 96
10187 type "rectangle"
10188 fill "#FFFFFF"
10189 fill2 "#FFFFFF"
10190 outline "#000000"
10191 ]
10192 LabelGraphics
10193 [
10194 text "null"
10195 outline "#000000"
10196 fill "#FFFFFF"
10197 fontSize 16
10198 fontName "Monospace"
10199 autoSizePolicy "node_width"
10200 anchor "t"
10201 borderDistance 0.0
10202 ]
10203 LabelGraphics
10204 [
10205 text "
10206 EModelElement class
10207 ENamedElement class
10208 ETypeParameter class
10209 EModelElement class UndefinedPart
10210 ENamedElement class UndefinedPart
10211 "
10212 fontSize 14
10213 fontName "Consolas"
10214 alignment "left"
10215 anchor "tl"
10216 borderDistance 6
10217 ]
10218 ]
10219
10220 node
10221 [
10222 id 16
10223 graphics
10224 [
10225 w 112.2 5489 w 112.2
10226 h 26 5490 h 26
10227 type "rectangle" 5491 type "rectangle"
@@ -10254,7 +5518,7 @@ graph
10254 5518
10255 node 5519 node
10256 [ 5520 [
10257 id 17 5521 id 13
10258 graphics 5522 graphics
10259 [ 5523 [
10260 w 85.80000000000001 5524 w 85.80000000000001
@@ -10289,7 +5553,7 @@ graph
10289 5553
10290 node 5554 node
10291 [ 5555 [
10292 id 18 5556 id 14
10293 graphics 5557 graphics
10294 [ 5558 [
10295 w 103.4 5559 w 103.4
@@ -10324,7 +5588,7 @@ graph
10324 5588
10325 node 5589 node
10326 [ 5590 [
10327 id 19 5591 id 15
10328 graphics 5592 graphics
10329 [ 5593 [
10330 w 103.4 5594 w 103.4
@@ -10358,85 +5622,8 @@ graph
10358 ] 5622 ]
10359 edge 5623 edge
10360 [ 5624 [
10361 source 14 5625 source 6
10362 target 0 5626 target 7
10363 graphics
10364 [
10365 fill "#000000"
10366 targetArrow "standard"
10367 ]
10368 LabelGraphics
10369 [
10370 text "eModelElement reference EAnnotation"
10371 fontSize 14
10372 fontName "Consolas"
10373 configuration "AutoFlippingLabel"
10374 model "six_pos"
10375 position "thead"
10376 ]
10377 ]
10378 edge
10379 [
10380 source 11
10381 target 0
10382 graphics
10383 [
10384 fill "#000000"
10385 targetArrow "standard"
10386 ]
10387 LabelGraphics
10388 [
10389 text "ePackage reference EClassifier"
10390 fontSize 14
10391 fontName "Consolas"
10392 configuration "AutoFlippingLabel"
10393 model "six_pos"
10394 position "thead"
10395 ]
10396 ]
10397 edge
10398 [
10399 source 12
10400 target 0
10401 graphics
10402 [
10403 fill "#000000"
10404 targetArrow "standard"
10405 ]
10406 LabelGraphics
10407 [
10408 text "ePackage reference EClassifier"
10409 fontSize 14
10410 fontName "Consolas"
10411 configuration "AutoFlippingLabel"
10412 model "six_pos"
10413 position "thead"
10414 ]
10415 ]
10416 edge
10417 [
10418 source 12
10419 target 15
10420 graphics
10421 [
10422 fill "#000000"
10423 width 3
10424 targetArrow "standard"
10425 ]
10426 LabelGraphics
10427 [
10428 text "eTypeParameters reference EClassifier"
10429 fontSize 14
10430 fontName "Consolas"
10431 configuration "AutoFlippingLabel"
10432 model "six_pos"
10433 position "thead"
10434 ]
10435 ]
10436 edge
10437 [
10438 source 11
10439 target 13
10440 graphics 5627 graphics
10441 [ 5628 [
10442 fill "#000000" 5629 fill "#000000"
@@ -10445,26 +5632,7 @@ graph
10445 ] 5632 ]
10446 LabelGraphics 5633 LabelGraphics
10447 [ 5634 [
10448 text "eLiterals reference EEnum" 5635 text "interface reference FunctionalElement"
10449 fontSize 14
10450 fontName "Consolas"
10451 configuration "AutoFlippingLabel"
10452 model "six_pos"
10453 position "thead"
10454 ]
10455 ]
10456 edge
10457 [
10458 source 13
10459 target 11
10460 graphics
10461 [
10462 fill "#000000"
10463 targetArrow "standard"
10464 ]
10465 LabelGraphics
10466 [
10467 text "eEnum reference EEnumLiteral"
10468 fontSize 14 5636 fontSize 14
10469 fontName "Consolas" 5637 fontName "Consolas"
10470 configuration "AutoFlippingLabel" 5638 configuration "AutoFlippingLabel"
@@ -10474,17 +5642,16 @@ graph
10474 ] 5642 ]
10475 edge 5643 edge
10476 [ 5644 [
10477 source 0 5645 source 6
10478 target 14 5646 target 5
10479 graphics 5647 graphics
10480 [ 5648 [
10481 fill "#000000" 5649 fill "#000000"
10482 width 3
10483 targetArrow "standard" 5650 targetArrow "standard"
10484 ] 5651 ]
10485 LabelGraphics 5652 LabelGraphics
10486 [ 5653 [
10487 text "eAnnotations reference EModelElement" 5654 text "model reference FunctionalElement"
10488 fontSize 14 5655 fontSize 14
10489 fontName "Consolas" 5656 fontName "Consolas"
10490 configuration "AutoFlippingLabel" 5657 configuration "AutoFlippingLabel"
@@ -10494,8 +5661,8 @@ graph
10494 ] 5661 ]
10495 edge 5662 edge
10496 [ 5663 [
10497 source 0 5664 source 5
10498 target 11 5665 target 6
10499 graphics 5666 graphics
10500 [ 5667 [
10501 fill "#000000" 5668 fill "#000000"
@@ -10504,7 +5671,7 @@ graph
10504 ] 5671 ]
10505 LabelGraphics 5672 LabelGraphics
10506 [ 5673 [
10507 text "eClassifiers reference EPackage" 5674 text "rootElements reference FunctionalArchitectureModel"
10508 fontSize 14 5675 fontSize 14
10509 fontName "Consolas" 5676 fontName "Consolas"
10510 configuration "AutoFlippingLabel" 5677 configuration "AutoFlippingLabel"
@@ -10514,17 +5681,16 @@ graph
10514 ] 5681 ]
10515 edge 5682 edge
10516 [ 5683 [
10517 source 0 5684 source 10
10518 target 12 5685 target 9
10519 graphics 5686 graphics
10520 [ 5687 [
10521 fill "#000000" 5688 fill "#000000"
10522 width 3
10523 targetArrow "standard" 5689 targetArrow "standard"
10524 ] 5690 ]
10525 LabelGraphics 5691 LabelGraphics
10526 [ 5692 [
10527 text "eClassifiers reference EPackage" 5693 text "data reference FAMTerminator"
10528 fontSize 14 5694 fontSize 14
10529 fontName "Consolas" 5695 fontName "Consolas"
10530 configuration "AutoFlippingLabel" 5696 configuration "AutoFlippingLabel"
@@ -10543,7 +5709,7 @@ graph
10543 ] 5709 ]
10544 LabelGraphics 5710 LabelGraphics
10545 [ 5711 [
10546 text "instanceClassName attribute EClassifier" 5712 text "data reference FAMTerminator"
10547 fontSize 14 5713 fontSize 14
10548 fontName "Consolas" 5714 fontName "Consolas"
10549 configuration "AutoFlippingLabel" 5715 configuration "AutoFlippingLabel"
@@ -10553,16 +5719,17 @@ graph
10553 ] 5719 ]
10554 edge 5720 edge
10555 [ 5721 [
10556 source 11 5722 source 7
10557 target 9 5723 target 8
10558 graphics 5724 graphics
10559 [ 5725 [
10560 fill "#000000" 5726 fill "#000000"
5727 width 3
10561 targetArrow "standard" 5728 targetArrow "standard"
10562 ] 5729 ]
10563 LabelGraphics 5730 LabelGraphics
10564 [ 5731 [
10565 text "instanceTypeName attribute EClassifier" 5732 text "data reference FunctionalInterface"
10566 fontSize 14 5733 fontSize 14
10567 fontName "Consolas" 5734 fontName "Consolas"
10568 configuration "AutoFlippingLabel" 5735 configuration "AutoFlippingLabel"
@@ -10572,35 +5739,17 @@ graph
10572 ] 5739 ]
10573 edge 5740 edge
10574 [ 5741 [
10575 source 12 5742 source 7
10576 target 9 5743 target 9
10577 graphics 5744 graphics
10578 [ 5745 [
10579 fill "#000000" 5746 fill "#000000"
5747 width 3
10580 targetArrow "standard" 5748 targetArrow "standard"
10581 ] 5749 ]
10582 LabelGraphics 5750 LabelGraphics
10583 [ 5751 [
10584 text "instanceTypeName attribute EClassifier" 5752 text "data reference FunctionalInterface"
10585 fontSize 14
10586 fontName "Consolas"
10587 configuration "AutoFlippingLabel"
10588 model "six_pos"
10589 position "thead"
10590 ]
10591 ]
10592 edge
10593 [
10594 source 11
10595 target 2
10596 graphics
10597 [
10598 fill "#000000"
10599 targetArrow "standard"
10600 ]
10601 LabelGraphics
10602 [
10603 text "serializable attribute EDataType"
10604 fontSize 14 5753 fontSize 14
10605 fontName "Consolas" 5754 fontName "Consolas"
10606 configuration "AutoFlippingLabel" 5755 configuration "AutoFlippingLabel"
@@ -10610,8 +5759,8 @@ graph
10610 ] 5759 ]
10611 edge 5760 edge
10612 [ 5761 [
10613 source 12 5762 source 7
10614 target 2 5763 target 6
10615 graphics 5764 graphics
10616 [ 5765 [
10617 fill "#000000" 5766 fill "#000000"
@@ -10619,7 +5768,7 @@ graph
10619 ] 5768 ]
10620 LabelGraphics 5769 LabelGraphics
10621 [ 5770 [
10622 text "serializable attribute EDataType" 5771 text "element reference FunctionalInterface"
10623 fontSize 14 5772 fontSize 14
10624 fontName "Consolas" 5773 fontName "Consolas"
10625 configuration "AutoFlippingLabel" 5774 configuration "AutoFlippingLabel"
@@ -10629,16 +5778,17 @@ graph
10629 ] 5778 ]
10630 edge 5779 edge
10631 [ 5780 [
10632 source 13 5781 source 9
10633 target 9 5782 target 10
10634 graphics 5783 graphics
10635 [ 5784 [
10636 fill "#000000" 5785 fill "#000000"
5786 width 3
10637 targetArrow "standard" 5787 targetArrow "standard"
10638 ] 5788 ]
10639 LabelGraphics 5789 LabelGraphics
10640 [ 5790 [
10641 text "literal attribute EEnumLiteral" 5791 text "terminator reference FunctionalData"
10642 fontSize 14 5792 fontSize 14
10643 fontName "Consolas" 5793 fontName "Consolas"
10644 configuration "AutoFlippingLabel" 5794 configuration "AutoFlippingLabel"
@@ -10648,16 +5798,17 @@ graph
10648 ] 5798 ]
10649 edge 5799 edge
10650 [ 5800 [
10651 source 0 5801 source 8
10652 target 10 5802 target 11
10653 graphics 5803 graphics
10654 [ 5804 [
10655 fill "#000000" 5805 fill "#000000"
5806 width 3
10656 targetArrow "standard" 5807 targetArrow "standard"
10657 ] 5808 ]
10658 LabelGraphics 5809 LabelGraphics
10659 [ 5810 [
10660 text "name attribute ENamedElement" 5811 text "terminator reference FunctionalData"
10661 fontSize 14 5812 fontSize 14
10662 fontName "Consolas" 5813 fontName "Consolas"
10663 configuration "AutoFlippingLabel" 5814 configuration "AutoFlippingLabel"
@@ -10667,8 +5818,8 @@ graph
10667 ] 5818 ]
10668 edge 5819 edge
10669 [ 5820 [
10670 source 12 5821 source 8
10671 target 10 5822 target 7
10672 graphics 5823 graphics
10673 [ 5824 [
10674 fill "#000000" 5825 fill "#000000"
@@ -10676,7 +5827,7 @@ graph
10676 ] 5827 ]
10677 LabelGraphics 5828 LabelGraphics
10678 [ 5829 [
10679 text "name attribute ENamedElement" 5830 text "interface reference FunctionalData"
10680 fontSize 14 5831 fontSize 14
10681 fontName "Consolas" 5832 fontName "Consolas"
10682 configuration "AutoFlippingLabel" 5833 configuration "AutoFlippingLabel"
@@ -10686,8 +5837,8 @@ graph
10686 ] 5837 ]
10687 edge 5838 edge
10688 [ 5839 [
10689 source 0 5840 source 9
10690 target 9 5841 target 7
10691 graphics 5842 graphics
10692 [ 5843 [
10693 fill "#000000" 5844 fill "#000000"
@@ -10695,7 +5846,7 @@ graph
10695 ] 5846 ]
10696 LabelGraphics 5847 LabelGraphics
10697 [ 5848 [
10698 text "nsURI attribute EPackage" 5849 text "interface reference FunctionalData"
10699 fontSize 14 5850 fontSize 14
10700 fontName "Consolas" 5851 fontName "Consolas"
10701 configuration "AutoFlippingLabel" 5852 configuration "AutoFlippingLabel"
@@ -10705,8 +5856,8 @@ graph
10705 ] 5856 ]
10706 edge 5857 edge
10707 [ 5858 [
10708 source 0 5859 source 6
10709 target 8 5860 target 0
10710 graphics 5861 graphics
10711 [ 5862 [
10712 fill "#000000" 5863 fill "#000000"
@@ -10714,7 +5865,7 @@ graph
10714 ] 5865 ]
10715 LabelGraphics 5866 LabelGraphics
10716 [ 5867 [
10717 text "nsPrefix attribute EPackage" 5868 text "type attribute Function"
10718 fontSize 14 5869 fontSize 14
10719 fontName "Consolas" 5870 fontName "Consolas"
10720 configuration "AutoFlippingLabel" 5871 configuration "AutoFlippingLabel"
@@ -10730,8 +5881,8 @@ graph
10730 id 0 5881 id 0
10731 graphics 5882 graphics
10732 [ 5883 [
10733 w 254.10000000000002 5884 w 226.60000000000002
10734 h 110 5885 h 40
10735 type "rectangle" 5886 type "rectangle"
10736 fill "#FFFFFF" 5887 fill "#FFFFFF"
10737 fill2 "#FFFFFF" 5888 fill2 "#FFFFFF"
@@ -10739,7 +5890,7 @@ graph
10739 ] 5890 ]
10740 LabelGraphics 5891 LabelGraphics
10741 [ 5892 [
10742 text "o 1" 5893 text "Root literal FunctionType"
10743 outline "#000000" 5894 outline "#000000"
10744 fill "#FFFFFF" 5895 fill "#FFFFFF"
10745 fontSize 16 5896 fontSize 16
@@ -10751,12 +5902,7 @@ graph
10751 LabelGraphics 5902 LabelGraphics
10752 [ 5903 [
10753 text " 5904 text "
10754 EModelElement class DefinedPart 5905 FunctionType enum
10755 ENamedElement class DefinedPart
10756 EPackage class DefinedPart
10757 EModelElement class
10758 ENamedElement class
10759 EPackage class
10760 " 5906 "
10761 fontSize 14 5907 fontSize 14
10762 fontName "Consolas" 5908 fontName "Consolas"
@@ -10771,8 +5917,8 @@ graph
10771 id 1 5917 id 1
10772 graphics 5918 graphics
10773 [ 5919 [
10774 w 41.800000000000004 5920 w 297.0
10775 h 26 5921 h 40
10776 type "rectangle" 5922 type "rectangle"
10777 fill "#FFFFFF" 5923 fill "#FFFFFF"
10778 fill2 "#FFFFFF" 5924 fill2 "#FFFFFF"
@@ -10780,7 +5926,7 @@ graph
10780 ] 5926 ]
10781 LabelGraphics 5927 LabelGraphics
10782 [ 5928 [
10783 text "true" 5929 text "Intermediate literal FunctionType"
10784 outline "#000000" 5930 outline "#000000"
10785 fill "#FFFFFF" 5931 fill "#FFFFFF"
10786 fontSize 16 5932 fontSize 16
@@ -10792,6 +5938,7 @@ graph
10792 LabelGraphics 5938 LabelGraphics
10793 [ 5939 [
10794 text " 5940 text "
5941 FunctionType enum
10795 " 5942 "
10796 fontSize 14 5943 fontSize 14
10797 fontName "Consolas" 5944 fontName "Consolas"
@@ -10806,8 +5953,8 @@ graph
10806 id 2 5953 id 2
10807 graphics 5954 graphics
10808 [ 5955 [
10809 w 50.6 5956 w 226.60000000000002
10810 h 26 5957 h 40
10811 type "rectangle" 5958 type "rectangle"
10812 fill "#FFFFFF" 5959 fill "#FFFFFF"
10813 fill2 "#FFFFFF" 5960 fill2 "#FFFFFF"
@@ -10815,7 +5962,7 @@ graph
10815 ] 5962 ]
10816 LabelGraphics 5963 LabelGraphics
10817 [ 5964 [
10818 text "false" 5965 text "Leaf literal FunctionType"
10819 outline "#000000" 5966 outline "#000000"
10820 fill "#FFFFFF" 5967 fill "#FFFFFF"
10821 fontSize 16 5968 fontSize 16
@@ -10827,6 +5974,7 @@ graph
10827 LabelGraphics 5974 LabelGraphics
10828 [ 5975 [
10829 text " 5976 text "
5977 FunctionType enum
10830 " 5978 "
10831 fontSize 14 5979 fontSize 14
10832 fontName "Consolas" 5980 fontName "Consolas"
@@ -10841,7 +5989,7 @@ graph
10841 id 3 5989 id 3
10842 graphics 5990 graphics
10843 [ 5991 [
10844 w 24.200000000000003 5992 w 41.800000000000004
10845 h 26 5993 h 26
10846 type "rectangle" 5994 type "rectangle"
10847 fill "#FFFFFF" 5995 fill "#FFFFFF"
@@ -10850,7 +5998,7 @@ graph
10850 ] 5998 ]
10851 LabelGraphics 5999 LabelGraphics
10852 [ 6000 [
10853 text "-1" 6001 text "true"
10854 outline "#000000" 6002 outline "#000000"
10855 fill "#FFFFFF" 6003 fill "#FFFFFF"
10856 fontSize 16 6004 fontSize 16
@@ -10876,7 +6024,7 @@ graph
10876 id 4 6024 id 4
10877 graphics 6025 graphics
10878 [ 6026 [
10879 w 15.400000000000002 6027 w 50.6
10880 h 26 6028 h 26
10881 type "rectangle" 6029 type "rectangle"
10882 fill "#FFFFFF" 6030 fill "#FFFFFF"
@@ -10885,7 +6033,7 @@ graph
10885 ] 6033 ]
10886 LabelGraphics 6034 LabelGraphics
10887 [ 6035 [
10888 text "0" 6036 text "false"
10889 outline "#000000" 6037 outline "#000000"
10890 fill "#FFFFFF" 6038 fill "#FFFFFF"
10891 fontSize 16 6039 fontSize 16
@@ -10911,8 +6059,8 @@ graph
10911 id 5 6059 id 5
10912 graphics 6060 graphics
10913 [ 6061 [
10914 w 15.400000000000002 6062 w 207.9
10915 h 26 6063 h 40
10916 type "rectangle" 6064 type "rectangle"
10917 fill "#FFFFFF" 6065 fill "#FFFFFF"
10918 fill2 "#FFFFFF" 6066 fill2 "#FFFFFF"
@@ -10920,7 +6068,7 @@ graph
10920 ] 6068 ]
10921 LabelGraphics 6069 LabelGraphics
10922 [ 6070 [
10923 text "1" 6071 text "null"
10924 outline "#000000" 6072 outline "#000000"
10925 fill "#FFFFFF" 6073 fill "#FFFFFF"
10926 fontSize 16 6074 fontSize 16
@@ -10932,6 +6080,7 @@ graph
10932 LabelGraphics 6080 LabelGraphics
10933 [ 6081 [
10934 text " 6082 text "
6083 FunctionalInterface class
10935 " 6084 "
10936 fontSize 14 6085 fontSize 14
10937 fontName "Consolas" 6086 fontName "Consolas"
@@ -10946,8 +6095,8 @@ graph
10946 id 6 6095 id 6
10947 graphics 6096 graphics
10948 [ 6097 [
10949 w 33.0 6098 w 177.10000000000002
10950 h 26 6099 h 54
10951 type "rectangle" 6100 type "rectangle"
10952 fill "#FFFFFF" 6101 fill "#FFFFFF"
10953 fill2 "#FFFFFF" 6102 fill2 "#FFFFFF"
@@ -10955,7 +6104,7 @@ graph
10955 ] 6104 ]
10956 LabelGraphics 6105 LabelGraphics
10957 [ 6106 [
10958 text ""A"" 6107 text "null"
10959 outline "#000000" 6108 outline "#000000"
10960 fill "#FFFFFF" 6109 fill "#FFFFFF"
10961 fontSize 16 6110 fontSize 16
@@ -10967,6 +6116,8 @@ graph
10967 LabelGraphics 6116 LabelGraphics
10968 [ 6117 [
10969 text " 6118 text "
6119 FunctionalInput class
6120 FunctionalData class
10970 " 6121 "
10971 fontSize 14 6122 fontSize 14
10972 fontName "Consolas" 6123 fontName "Consolas"
@@ -10981,8 +6132,8 @@ graph
10981 id 7 6132 id 7
10982 graphics 6133 graphics
10983 [ 6134 [
10984 w 33.0 6135 w 184.8
10985 h 26 6136 h 54
10986 type "rectangle" 6137 type "rectangle"
10987 fill "#FFFFFF" 6138 fill "#FFFFFF"
10988 fill2 "#FFFFFF" 6139 fill2 "#FFFFFF"
@@ -10990,7 +6141,7 @@ graph
10990 ] 6141 ]
10991 LabelGraphics 6142 LabelGraphics
10992 [ 6143 [
10993 text ""B"" 6144 text "null"
10994 outline "#000000" 6145 outline "#000000"
10995 fill "#FFFFFF" 6146 fill "#FFFFFF"
10996 fontSize 16 6147 fontSize 16
@@ -11002,6 +6153,8 @@ graph
11002 LabelGraphics 6153 LabelGraphics
11003 [ 6154 [
11004 text " 6155 text "
6156 FunctionalOutput class
6157 FunctionalData class
11005 " 6158 "
11006 fontSize 14 6159 fontSize 14
11007 fontName "Consolas" 6160 fontName "Consolas"
@@ -11016,8 +6169,8 @@ graph
11016 id 8 6169 id 8
11017 graphics 6170 graphics
11018 [ 6171 [
11019 w 94.60000000000001 6172 w 161.70000000000002
11020 h 26 6173 h 40
11021 type "rectangle" 6174 type "rectangle"
11022 fill "#FFFFFF" 6175 fill "#FFFFFF"
11023 fill2 "#FFFFFF" 6176 fill2 "#FFFFFF"
@@ -11025,7 +6178,7 @@ graph
11025 ] 6178 ]
11026 LabelGraphics 6179 LabelGraphics
11027 [ 6180 [
11028 text ""nsPrefix"" 6181 text "null"
11029 outline "#000000" 6182 outline "#000000"
11030 fill "#FFFFFF" 6183 fill "#FFFFFF"
11031 fontSize 16 6184 fontSize 16
@@ -11037,6 +6190,7 @@ graph
11037 LabelGraphics 6190 LabelGraphics
11038 [ 6191 [
11039 text " 6192 text "
6193 FAMTerminator class
11040 " 6194 "
11041 fontSize 14 6195 fontSize 14
11042 fontName "Consolas" 6196 fontName "Consolas"
@@ -11051,8 +6205,8 @@ graph
11051 id 9 6205 id 9
11052 graphics 6206 graphics
11053 [ 6207 [
11054 w 68.2 6208 w 177.10000000000002
11055 h 26 6209 h 54
11056 type "rectangle" 6210 type "rectangle"
11057 fill "#FFFFFF" 6211 fill "#FFFFFF"
11058 fill2 "#FFFFFF" 6212 fill2 "#FFFFFF"
@@ -11060,7 +6214,7 @@ graph
11060 ] 6214 ]
11061 LabelGraphics 6215 LabelGraphics
11062 [ 6216 [
11063 text ""nsUri"" 6217 text "null"
11064 outline "#000000" 6218 outline "#000000"
11065 fill "#FFFFFF" 6219 fill "#FFFFFF"
11066 fontSize 16 6220 fontSize 16
@@ -11072,6 +6226,8 @@ graph
11072 LabelGraphics 6226 LabelGraphics
11073 [ 6227 [
11074 text " 6228 text "
6229 FunctionalInput class
6230 FunctionalData class
11075 " 6231 "
11076 fontSize 14 6232 fontSize 14
11077 fontName "Consolas" 6233 fontName "Consolas"
@@ -11086,8 +6242,8 @@ graph
11086 id 10 6242 id 10
11087 graphics 6243 graphics
11088 [ 6244 [
11089 w 121.00000000000001 6245 w 161.70000000000002
11090 h 26 6246 h 40
11091 type "rectangle" 6247 type "rectangle"
11092 fill "#FFFFFF" 6248 fill "#FFFFFF"
11093 fill2 "#FFFFFF" 6249 fill2 "#FFFFFF"
@@ -11095,7 +6251,7 @@ graph
11095 ] 6251 ]
11096 LabelGraphics 6252 LabelGraphics
11097 [ 6253 [
11098 text ""packageName"" 6254 text "null"
11099 outline "#000000" 6255 outline "#000000"
11100 fill "#FFFFFF" 6256 fill "#FFFFFF"
11101 fontSize 16 6257 fontSize 16
@@ -11107,6 +6263,7 @@ graph
11107 LabelGraphics 6263 LabelGraphics
11108 [ 6264 [
11109 text " 6265 text "
6266 FAMTerminator class
11110 " 6267 "
11111 fontSize 14 6268 fontSize 14
11112 fontName "Consolas" 6269 fontName "Consolas"
@@ -11121,8 +6278,8 @@ graph
11121 id 11 6278 id 11
11122 graphics 6279 graphics
11123 [ 6280 [
11124 w 269.5 6281 w 161.70000000000002
11125 h 110 6282 h 40
11126 type "rectangle" 6283 type "rectangle"
11127 fill "#FFFFFF" 6284 fill "#FFFFFF"
11128 fill2 "#FFFFFF" 6285 fill2 "#FFFFFF"
@@ -11142,12 +6299,7 @@ graph
11142 LabelGraphics 6299 LabelGraphics
11143 [ 6300 [
11144 text " 6301 text "
11145 EClassifier class 6302 FAMTerminator class
11146 EDataType class
11147 EModelElement class
11148 ENamedElement class
11149 EModelElement class UndefinedPart
11150 ENamedElement class UndefinedPart
11151 " 6303 "
11152 fontSize 14 6304 fontSize 14
11153 fontName "Consolas" 6305 fontName "Consolas"
@@ -11162,167 +6314,6 @@ graph
11162 id 12 6314 id 12
11163 graphics 6315 graphics
11164 [ 6316 [
11165 w 269.5
11166 h 110
11167 type "rectangle"
11168 fill "#FFFFFF"
11169 fill2 "#FFFFFF"
11170 outline "#000000"
11171 ]
11172 LabelGraphics
11173 [
11174 text "null"
11175 outline "#000000"
11176 fill "#FFFFFF"
11177 fontSize 16
11178 fontName "Monospace"
11179 autoSizePolicy "node_width"
11180 anchor "t"
11181 borderDistance 0.0
11182 ]
11183 LabelGraphics
11184 [
11185 text "
11186 EModelElement class
11187 ENamedElement class
11188 EPackage class
11189 EModelElement class UndefinedPart
11190 ENamedElement class UndefinedPart
11191 EPackage class UndefinedPart
11192 "
11193 fontSize 14
11194 fontName "Consolas"
11195 alignment "left"
11196 anchor "tl"
11197 borderDistance 6
11198 ]
11199 ]
11200
11201 node
11202 [
11203 id 13
11204 graphics
11205 [
11206 w 269.5
11207 h 124
11208 type "rectangle"
11209 fill "#FFFFFF"
11210 fill2 "#FFFFFF"
11211 outline "#000000"
11212 ]
11213 LabelGraphics
11214 [
11215 text "null"
11216 outline "#000000"
11217 fill "#FFFFFF"
11218 fontSize 16
11219 fontName "Monospace"
11220 autoSizePolicy "node_width"
11221 anchor "t"
11222 borderDistance 0.0
11223 ]
11224 LabelGraphics
11225 [
11226 text "
11227 EClassifier class
11228 EDataType class
11229 EEnum class
11230 EModelElement class
11231 ENamedElement class
11232 EModelElement class UndefinedPart
11233 ENamedElement class UndefinedPart
11234 "
11235 fontSize 14
11236 fontName "Consolas"
11237 alignment "left"
11238 anchor "tl"
11239 borderDistance 6
11240 ]
11241 ]
11242
11243 node
11244 [
11245 id 14
11246 graphics
11247 [
11248 w 269.5
11249 h 96
11250 type "rectangle"
11251 fill "#FFFFFF"
11252 fill2 "#FFFFFF"
11253 outline "#000000"
11254 ]
11255 LabelGraphics
11256 [
11257 text "null"
11258 outline "#000000"
11259 fill "#FFFFFF"
11260 fontSize 16
11261 fontName "Monospace"
11262 autoSizePolicy "node_width"
11263 anchor "t"
11264 borderDistance 0.0
11265 ]
11266 LabelGraphics
11267 [
11268 text "
11269 EModelElement class
11270 ENamedElement class
11271 ETypeParameter class
11272 EModelElement class UndefinedPart
11273 ENamedElement class UndefinedPart
11274 "
11275 fontSize 14
11276 fontName "Consolas"
11277 alignment "left"
11278 anchor "tl"
11279 borderDistance 6
11280 ]
11281 ]
11282
11283 node
11284 [
11285 id 15
11286 graphics
11287 [
11288 w 269.5
11289 h 68
11290 type "rectangle"
11291 fill "#FFFFFF"
11292 fill2 "#FFFFFF"
11293 outline "#000000"
11294 ]
11295 LabelGraphics
11296 [
11297 text "null"
11298 outline "#000000"
11299 fill "#FFFFFF"
11300 fontSize 16
11301 fontName "Monospace"
11302 autoSizePolicy "node_width"
11303 anchor "t"
11304 borderDistance 0.0
11305 ]
11306 LabelGraphics
11307 [
11308 text "
11309 EAnnotation class
11310 EModelElement class
11311 EModelElement class UndefinedPart
11312 "
11313 fontSize 14
11314 fontName "Consolas"
11315 alignment "left"
11316 anchor "tl"
11317 borderDistance 6
11318 ]
11319 ]
11320
11321 node
11322 [
11323 id 16
11324 graphics
11325 [
11326 w 112.2 6317 w 112.2
11327 h 26 6318 h 26
11328 type "rectangle" 6319 type "rectangle"
@@ -11355,7 +6346,7 @@ graph
11355 6346
11356 node 6347 node
11357 [ 6348 [
11358 id 17 6349 id 13
11359 graphics 6350 graphics
11360 [ 6351 [
11361 w 85.80000000000001 6352 w 85.80000000000001
@@ -11390,7 +6381,7 @@ graph
11390 6381
11391 node 6382 node
11392 [ 6383 [
11393 id 18 6384 id 14
11394 graphics 6385 graphics
11395 [ 6386 [
11396 w 103.4 6387 w 103.4
@@ -11425,7 +6416,7 @@ graph
11425 6416
11426 node 6417 node
11427 [ 6418 [
11428 id 19 6419 id 15
11429 graphics 6420 graphics
11430 [ 6421 [
11431 w 103.4 6422 w 103.4
@@ -11459,27 +6450,8 @@ graph
11459 ] 6450 ]
11460 edge 6451 edge
11461 [ 6452 [
11462 source 15 6453 source 8
11463 target 0 6454 target 7
11464 graphics
11465 [
11466 fill "#000000"
11467 targetArrow "standard"
11468 ]
11469 LabelGraphics
11470 [
11471 text "eModelElement reference EAnnotation"
11472 fontSize 14
11473 fontName "Consolas"
11474 configuration "AutoFlippingLabel"
11475 model "six_pos"
11476 position "thead"
11477 ]
11478 ]
11479 edge
11480 [
11481 source 11
11482 target 0
11483 graphics 6455 graphics
11484 [ 6456 [
11485 fill "#000000" 6457 fill "#000000"
@@ -11487,7 +6459,7 @@ graph
11487 ] 6459 ]
11488 LabelGraphics 6460 LabelGraphics
11489 [ 6461 [
11490 text "ePackage reference EClassifier" 6462 text "data reference FAMTerminator"
11491 fontSize 14 6463 fontSize 14
11492 fontName "Consolas" 6464 fontName "Consolas"
11493 configuration "AutoFlippingLabel" 6465 configuration "AutoFlippingLabel"
@@ -11497,8 +6469,8 @@ graph
11497 ] 6469 ]
11498 edge 6470 edge
11499 [ 6471 [
11500 source 13 6472 source 10
11501 target 0 6473 target 6
11502 graphics 6474 graphics
11503 [ 6475 [
11504 fill "#000000" 6476 fill "#000000"
@@ -11506,7 +6478,7 @@ graph
11506 ] 6478 ]
11507 LabelGraphics 6479 LabelGraphics
11508 [ 6480 [
11509 text "ePackage reference EClassifier" 6481 text "data reference FAMTerminator"
11510 fontSize 14 6482 fontSize 14
11511 fontName "Consolas" 6483 fontName "Consolas"
11512 configuration "AutoFlippingLabel" 6484 configuration "AutoFlippingLabel"
@@ -11516,17 +6488,16 @@ graph
11516 ] 6488 ]
11517 edge 6489 edge
11518 [ 6490 [
11519 source 13 6491 source 11
11520 target 14 6492 target 9
11521 graphics 6493 graphics
11522 [ 6494 [
11523 fill "#000000" 6495 fill "#000000"
11524 width 3
11525 targetArrow "standard" 6496 targetArrow "standard"
11526 ] 6497 ]
11527 LabelGraphics 6498 LabelGraphics
11528 [ 6499 [
11529 text "eTypeParameters reference EClassifier" 6500 text "data reference FAMTerminator"
11530 fontSize 14 6501 fontSize 14
11531 fontName "Consolas" 6502 fontName "Consolas"
11532 configuration "AutoFlippingLabel" 6503 configuration "AutoFlippingLabel"
@@ -11536,8 +6507,8 @@ graph
11536 ] 6507 ]
11537 edge 6508 edge
11538 [ 6509 [
11539 source 0 6510 source 5
11540 target 15 6511 target 6
11541 graphics 6512 graphics
11542 [ 6513 [
11543 fill "#000000" 6514 fill "#000000"
@@ -11546,7 +6517,7 @@ graph
11546 ] 6517 ]
11547 LabelGraphics 6518 LabelGraphics
11548 [ 6519 [
11549 text "eAnnotations reference EModelElement" 6520 text "data reference FunctionalInterface"
11550 fontSize 14 6521 fontSize 14
11551 fontName "Consolas" 6522 fontName "Consolas"
11552 configuration "AutoFlippingLabel" 6523 configuration "AutoFlippingLabel"
@@ -11556,8 +6527,8 @@ graph
11556 ] 6527 ]
11557 edge 6528 edge
11558 [ 6529 [
11559 source 0 6530 source 5
11560 target 11 6531 target 7
11561 graphics 6532 graphics
11562 [ 6533 [
11563 fill "#000000" 6534 fill "#000000"
@@ -11566,7 +6537,7 @@ graph
11566 ] 6537 ]
11567 LabelGraphics 6538 LabelGraphics
11568 [ 6539 [
11569 text "eClassifiers reference EPackage" 6540 text "data reference FunctionalInterface"
11570 fontSize 14 6541 fontSize 14
11571 fontName "Consolas" 6542 fontName "Consolas"
11572 configuration "AutoFlippingLabel" 6543 configuration "AutoFlippingLabel"
@@ -11576,8 +6547,8 @@ graph
11576 ] 6547 ]
11577 edge 6548 edge
11578 [ 6549 [
11579 source 0 6550 source 5
11580 target 13 6551 target 9
11581 graphics 6552 graphics
11582 [ 6553 [
11583 fill "#000000" 6554 fill "#000000"
@@ -11586,7 +6557,7 @@ graph
11586 ] 6557 ]
11587 LabelGraphics 6558 LabelGraphics
11588 [ 6559 [
11589 text "eClassifiers reference EPackage" 6560 text "data reference FunctionalInterface"
11590 fontSize 14 6561 fontSize 14
11591 fontName "Consolas" 6562 fontName "Consolas"
11592 configuration "AutoFlippingLabel" 6563 configuration "AutoFlippingLabel"
@@ -11596,8 +6567,8 @@ graph
11596 ] 6567 ]
11597 edge 6568 edge
11598 [ 6569 [
11599 source 0 6570 source 7
11600 target 12 6571 target 8
11601 graphics 6572 graphics
11602 [ 6573 [
11603 fill "#000000" 6574 fill "#000000"
@@ -11606,7 +6577,7 @@ graph
11606 ] 6577 ]
11607 LabelGraphics 6578 LabelGraphics
11608 [ 6579 [
11609 text "eSubpackages reference EPackage" 6580 text "terminator reference FunctionalData"
11610 fontSize 14 6581 fontSize 14
11611 fontName "Consolas" 6582 fontName "Consolas"
11612 configuration "AutoFlippingLabel" 6583 configuration "AutoFlippingLabel"
@@ -11616,92 +6587,17 @@ graph
11616 ] 6587 ]
11617 edge 6588 edge
11618 [ 6589 [
11619 source 12 6590 source 6
11620 target 0
11621 graphics
11622 [
11623 fill "#000000"
11624 targetArrow "standard"
11625 ]
11626 LabelGraphics
11627 [
11628 text "eSuperPackage reference EPackage"
11629 fontSize 14
11630 fontName "Consolas"
11631 configuration "AutoFlippingLabel"
11632 model "six_pos"
11633 position "thead"
11634 ]
11635 ]
11636 edge
11637 [
11638 source 11
11639 target 6
11640 graphics
11641 [
11642 fill "#000000"
11643 targetArrow "standard"
11644 ]
11645 LabelGraphics
11646 [
11647 text "instanceClassName attribute EClassifier"
11648 fontSize 14
11649 fontName "Consolas"
11650 configuration "AutoFlippingLabel"
11651 model "six_pos"
11652 position "thead"
11653 ]
11654 ]
11655 edge
11656 [
11657 source 11
11658 target 1
11659 graphics
11660 [
11661 fill "#000000"
11662 targetArrow "standard"
11663 ]
11664 LabelGraphics
11665 [
11666 text "serializable attribute EDataType"
11667 fontSize 14
11668 fontName "Consolas"
11669 configuration "AutoFlippingLabel"
11670 model "six_pos"
11671 position "thead"
11672 ]
11673 ]
11674 edge
11675 [
11676 source 0
11677 target 10 6591 target 10
11678 graphics 6592 graphics
11679 [ 6593 [
11680 fill "#000000" 6594 fill "#000000"
6595 width 3
11681 targetArrow "standard" 6596 targetArrow "standard"
11682 ] 6597 ]
11683 LabelGraphics 6598 LabelGraphics
11684 [ 6599 [
11685 text "name attribute ENamedElement" 6600 text "terminator reference FunctionalData"
11686 fontSize 14
11687 fontName "Consolas"
11688 configuration "AutoFlippingLabel"
11689 model "six_pos"
11690 position "thead"
11691 ]
11692 ]
11693 edge
11694 [
11695 source 12
11696 target 6
11697 graphics
11698 [
11699 fill "#000000"
11700 targetArrow "standard"
11701 ]
11702 LabelGraphics
11703 [
11704 text "name attribute ENamedElement"
11705 fontSize 14 6601 fontSize 14
11706 fontName "Consolas" 6602 fontName "Consolas"
11707 configuration "AutoFlippingLabel" 6603 configuration "AutoFlippingLabel"
@@ -11711,16 +6607,17 @@ graph
11711 ] 6607 ]
11712 edge 6608 edge
11713 [ 6609 [
11714 source 0 6610 source 9
11715 target 9 6611 target 11
11716 graphics 6612 graphics
11717 [ 6613 [
11718 fill "#000000" 6614 fill "#000000"
6615 width 3
11719 targetArrow "standard" 6616 targetArrow "standard"
11720 ] 6617 ]
11721 LabelGraphics 6618 LabelGraphics
11722 [ 6619 [
11723 text "nsURI attribute EPackage" 6620 text "terminator reference FunctionalData"
11724 fontSize 14 6621 fontSize 14
11725 fontName "Consolas" 6622 fontName "Consolas"
11726 configuration "AutoFlippingLabel" 6623 configuration "AutoFlippingLabel"
@@ -11730,8 +6627,8 @@ graph
11730 ] 6627 ]
11731 edge 6628 edge
11732 [ 6629 [
11733 source 12 6630 source 6
11734 target 10 6631 target 5
11735 graphics 6632 graphics
11736 [ 6633 [
11737 fill "#000000" 6634 fill "#000000"
@@ -11739,7 +6636,7 @@ graph
11739 ] 6636 ]
11740 LabelGraphics 6637 LabelGraphics
11741 [ 6638 [
11742 text "nsURI attribute EPackage" 6639 text "interface reference FunctionalData"
11743 fontSize 14 6640 fontSize 14
11744 fontName "Consolas" 6641 fontName "Consolas"
11745 configuration "AutoFlippingLabel" 6642 configuration "AutoFlippingLabel"
@@ -11749,8 +6646,8 @@ graph
11749 ] 6646 ]
11750 edge 6647 edge
11751 [ 6648 [
11752 source 0 6649 source 7
11753 target 8 6650 target 5
11754 graphics 6651 graphics
11755 [ 6652 [
11756 fill "#000000" 6653 fill "#000000"
@@ -11758,7 +6655,7 @@ graph
11758 ] 6655 ]
11759 LabelGraphics 6656 LabelGraphics
11760 [ 6657 [
11761 text "nsPrefix attribute EPackage" 6658 text "interface reference FunctionalData"
11762 fontSize 14 6659 fontSize 14
11763 fontName "Consolas" 6660 fontName "Consolas"
11764 configuration "AutoFlippingLabel" 6661 configuration "AutoFlippingLabel"
@@ -11768,8 +6665,8 @@ graph
11768 ] 6665 ]
11769 edge 6666 edge
11770 [ 6667 [
11771 source 12 6668 source 9
11772 target 8 6669 target 5
11773 graphics 6670 graphics
11774 [ 6671 [
11775 fill "#000000" 6672 fill "#000000"
@@ -11777,7 +6674,7 @@ graph
11777 ] 6674 ]
11778 LabelGraphics 6675 LabelGraphics
11779 [ 6676 [
11780 text "nsPrefix attribute EPackage" 6677 text "interface reference FunctionalData"
11781 fontSize 14 6678 fontSize 14
11782 fontName "Consolas" 6679 fontName "Consolas"
11783 configuration "AutoFlippingLabel" 6680 configuration "AutoFlippingLabel"
@@ -11793,8 +6690,8 @@ graph
11793 id 0 6690 id 0
11794 graphics 6691 graphics
11795 [ 6692 [
11796 w 254.10000000000002 6693 w 226.60000000000002
11797 h 110 6694 h 40
11798 type "rectangle" 6695 type "rectangle"
11799 fill "#FFFFFF" 6696 fill "#FFFFFF"
11800 fill2 "#FFFFFF" 6697 fill2 "#FFFFFF"
@@ -11802,7 +6699,7 @@ graph
11802 ] 6699 ]
11803 LabelGraphics 6700 LabelGraphics
11804 [ 6701 [
11805 text "o 1" 6702 text "Root literal FunctionType"
11806 outline "#000000" 6703 outline "#000000"
11807 fill "#FFFFFF" 6704 fill "#FFFFFF"
11808 fontSize 16 6705 fontSize 16
@@ -11814,12 +6711,7 @@ graph
11814 LabelGraphics 6711 LabelGraphics
11815 [ 6712 [
11816 text " 6713 text "
11817 EModelElement class DefinedPart 6714 FunctionType enum
11818 ENamedElement class DefinedPart
11819 EPackage class DefinedPart
11820 EModelElement class
11821 ENamedElement class
11822 EPackage class
11823 " 6715 "
11824 fontSize 14 6716 fontSize 14
11825 fontName "Consolas" 6717 fontName "Consolas"
@@ -11834,8 +6726,8 @@ graph
11834 id 1 6726 id 1
11835 graphics 6727 graphics
11836 [ 6728 [
11837 w 41.800000000000004 6729 w 297.0
11838 h 26 6730 h 40
11839 type "rectangle" 6731 type "rectangle"
11840 fill "#FFFFFF" 6732 fill "#FFFFFF"
11841 fill2 "#FFFFFF" 6733 fill2 "#FFFFFF"
@@ -11843,7 +6735,7 @@ graph
11843 ] 6735 ]
11844 LabelGraphics 6736 LabelGraphics
11845 [ 6737 [
11846 text "true" 6738 text "Intermediate literal FunctionType"
11847 outline "#000000" 6739 outline "#000000"
11848 fill "#FFFFFF" 6740 fill "#FFFFFF"
11849 fontSize 16 6741 fontSize 16
@@ -11855,6 +6747,7 @@ graph
11855 LabelGraphics 6747 LabelGraphics
11856 [ 6748 [
11857 text " 6749 text "
6750 FunctionType enum
11858 " 6751 "
11859 fontSize 14 6752 fontSize 14
11860 fontName "Consolas" 6753 fontName "Consolas"
@@ -11869,8 +6762,8 @@ graph
11869 id 2 6762 id 2
11870 graphics 6763 graphics
11871 [ 6764 [
11872 w 50.6 6765 w 226.60000000000002
11873 h 26 6766 h 40
11874 type "rectangle" 6767 type "rectangle"
11875 fill "#FFFFFF" 6768 fill "#FFFFFF"
11876 fill2 "#FFFFFF" 6769 fill2 "#FFFFFF"
@@ -11878,7 +6771,7 @@ graph
11878 ] 6771 ]
11879 LabelGraphics 6772 LabelGraphics
11880 [ 6773 [
11881 text "false" 6774 text "Leaf literal FunctionType"
11882 outline "#000000" 6775 outline "#000000"
11883 fill "#FFFFFF" 6776 fill "#FFFFFF"
11884 fontSize 16 6777 fontSize 16
@@ -11890,6 +6783,7 @@ graph
11890 LabelGraphics 6783 LabelGraphics
11891 [ 6784 [
11892 text " 6785 text "
6786 FunctionType enum
11893 " 6787 "
11894 fontSize 14 6788 fontSize 14
11895 fontName "Consolas" 6789 fontName "Consolas"
@@ -11904,7 +6798,7 @@ graph
11904 id 3 6798 id 3
11905 graphics 6799 graphics
11906 [ 6800 [
11907 w 24.200000000000003 6801 w 41.800000000000004
11908 h 26 6802 h 26
11909 type "rectangle" 6803 type "rectangle"
11910 fill "#FFFFFF" 6804 fill "#FFFFFF"
@@ -11913,7 +6807,7 @@ graph
11913 ] 6807 ]
11914 LabelGraphics 6808 LabelGraphics
11915 [ 6809 [
11916 text "-1" 6810 text "true"
11917 outline "#000000" 6811 outline "#000000"
11918 fill "#FFFFFF" 6812 fill "#FFFFFF"
11919 fontSize 16 6813 fontSize 16
@@ -11939,7 +6833,7 @@ graph
11939 id 4 6833 id 4
11940 graphics 6834 graphics
11941 [ 6835 [
11942 w 15.400000000000002 6836 w 50.6
11943 h 26 6837 h 26
11944 type "rectangle" 6838 type "rectangle"
11945 fill "#FFFFFF" 6839 fill "#FFFFFF"
@@ -11948,7 +6842,7 @@ graph
11948 ] 6842 ]
11949 LabelGraphics 6843 LabelGraphics
11950 [ 6844 [
11951 text "0" 6845 text "false"
11952 outline "#000000" 6846 outline "#000000"
11953 fill "#FFFFFF" 6847 fill "#FFFFFF"
11954 fontSize 16 6848 fontSize 16
@@ -11974,8 +6868,8 @@ graph
11974 id 5 6868 id 5
11975 graphics 6869 graphics
11976 [ 6870 [
11977 w 15.400000000000002 6871 w 207.9
11978 h 26 6872 h 40
11979 type "rectangle" 6873 type "rectangle"
11980 fill "#FFFFFF" 6874 fill "#FFFFFF"
11981 fill2 "#FFFFFF" 6875 fill2 "#FFFFFF"
@@ -11983,7 +6877,7 @@ graph
11983 ] 6877 ]
11984 LabelGraphics 6878 LabelGraphics
11985 [ 6879 [
11986 text "1" 6880 text "null"
11987 outline "#000000" 6881 outline "#000000"
11988 fill "#FFFFFF" 6882 fill "#FFFFFF"
11989 fontSize 16 6883 fontSize 16
@@ -11995,6 +6889,7 @@ graph
11995 LabelGraphics 6889 LabelGraphics
11996 [ 6890 [
11997 text " 6891 text "
6892 FunctionalInterface class
11998 " 6893 "
11999 fontSize 14 6894 fontSize 14
12000 fontName "Consolas" 6895 fontName "Consolas"
@@ -12009,8 +6904,8 @@ graph
12009 id 6 6904 id 6
12010 graphics 6905 graphics
12011 [ 6906 [
12012 w 33.0 6907 w 184.8
12013 h 26 6908 h 54
12014 type "rectangle" 6909 type "rectangle"
12015 fill "#FFFFFF" 6910 fill "#FFFFFF"
12016 fill2 "#FFFFFF" 6911 fill2 "#FFFFFF"
@@ -12018,7 +6913,7 @@ graph
12018 ] 6913 ]
12019 LabelGraphics 6914 LabelGraphics
12020 [ 6915 [
12021 text ""A"" 6916 text "null"
12022 outline "#000000" 6917 outline "#000000"
12023 fill "#FFFFFF" 6918 fill "#FFFFFF"
12024 fontSize 16 6919 fontSize 16
@@ -12030,6 +6925,8 @@ graph
12030 LabelGraphics 6925 LabelGraphics
12031 [ 6926 [
12032 text " 6927 text "
6928 FunctionalOutput class
6929 FunctionalData class
12033 " 6930 "
12034 fontSize 14 6931 fontSize 14
12035 fontName "Consolas" 6932 fontName "Consolas"
@@ -12044,8 +6941,8 @@ graph
12044 id 7 6941 id 7
12045 graphics 6942 graphics
12046 [ 6943 [
12047 w 33.0 6944 w 184.8
12048 h 26 6945 h 54
12049 type "rectangle" 6946 type "rectangle"
12050 fill "#FFFFFF" 6947 fill "#FFFFFF"
12051 fill2 "#FFFFFF" 6948 fill2 "#FFFFFF"
@@ -12053,7 +6950,7 @@ graph
12053 ] 6950 ]
12054 LabelGraphics 6951 LabelGraphics
12055 [ 6952 [
12056 text ""B"" 6953 text "null"
12057 outline "#000000" 6954 outline "#000000"
12058 fill "#FFFFFF" 6955 fill "#FFFFFF"
12059 fontSize 16 6956 fontSize 16
@@ -12065,6 +6962,8 @@ graph
12065 LabelGraphics 6962 LabelGraphics
12066 [ 6963 [
12067 text " 6964 text "
6965 FunctionalOutput class
6966 FunctionalData class
12068 " 6967 "
12069 fontSize 14 6968 fontSize 14
12070 fontName "Consolas" 6969 fontName "Consolas"
@@ -12079,8 +6978,8 @@ graph
12079 id 8 6978 id 8
12080 graphics 6979 graphics
12081 [ 6980 [
12082 w 94.60000000000001 6981 w 184.8
12083 h 26 6982 h 54
12084 type "rectangle" 6983 type "rectangle"
12085 fill "#FFFFFF" 6984 fill "#FFFFFF"
12086 fill2 "#FFFFFF" 6985 fill2 "#FFFFFF"
@@ -12088,7 +6987,7 @@ graph
12088 ] 6987 ]
12089 LabelGraphics 6988 LabelGraphics
12090 [ 6989 [
12091 text ""nsPrefix"" 6990 text "null"
12092 outline "#000000" 6991 outline "#000000"
12093 fill "#FFFFFF" 6992 fill "#FFFFFF"
12094 fontSize 16 6993 fontSize 16
@@ -12100,6 +6999,8 @@ graph
12100 LabelGraphics 6999 LabelGraphics
12101 [ 7000 [
12102 text " 7001 text "
7002 FunctionalOutput class
7003 FunctionalData class
12103 " 7004 "
12104 fontSize 14 7005 fontSize 14
12105 fontName "Consolas" 7006 fontName "Consolas"
@@ -12114,8 +7015,8 @@ graph
12114 id 9 7015 id 9
12115 graphics 7016 graphics
12116 [ 7017 [
12117 w 68.2 7018 w 177.10000000000002
12118 h 26 7019 h 54
12119 type "rectangle" 7020 type "rectangle"
12120 fill "#FFFFFF" 7021 fill "#FFFFFF"
12121 fill2 "#FFFFFF" 7022 fill2 "#FFFFFF"
@@ -12123,7 +7024,7 @@ graph
12123 ] 7024 ]
12124 LabelGraphics 7025 LabelGraphics
12125 [ 7026 [
12126 text ""nsUri"" 7027 text "null"
12127 outline "#000000" 7028 outline "#000000"
12128 fill "#FFFFFF" 7029 fill "#FFFFFF"
12129 fontSize 16 7030 fontSize 16
@@ -12135,6 +7036,8 @@ graph
12135 LabelGraphics 7036 LabelGraphics
12136 [ 7037 [
12137 text " 7038 text "
7039 FunctionalInput class
7040 FunctionalData class
12138 " 7041 "
12139 fontSize 14 7042 fontSize 14
12140 fontName "Consolas" 7043 fontName "Consolas"
@@ -12149,8 +7052,8 @@ graph
12149 id 10 7052 id 10
12150 graphics 7053 graphics
12151 [ 7054 [
12152 w 121.00000000000001 7055 w 177.10000000000002
12153 h 26 7056 h 40
12154 type "rectangle" 7057 type "rectangle"
12155 fill "#FFFFFF" 7058 fill "#FFFFFF"
12156 fill2 "#FFFFFF" 7059 fill2 "#FFFFFF"
@@ -12158,7 +7061,7 @@ graph
12158 ] 7061 ]
12159 LabelGraphics 7062 LabelGraphics
12160 [ 7063 [
12161 text ""packageName"" 7064 text "null"
12162 outline "#000000" 7065 outline "#000000"
12163 fill "#FFFFFF" 7066 fill "#FFFFFF"
12164 fontSize 16 7067 fontSize 16
@@ -12170,6 +7073,7 @@ graph
12170 LabelGraphics 7073 LabelGraphics
12171 [ 7074 [
12172 text " 7075 text "
7076 InformationLink class
12173 " 7077 "
12174 fontSize 14 7078 fontSize 14
12175 fontName "Consolas" 7079 fontName "Consolas"
@@ -12184,8 +7088,8 @@ graph
12184 id 11 7088 id 11
12185 graphics 7089 graphics
12186 [ 7090 [
12187 w 269.5 7091 w 177.10000000000002
12188 h 110 7092 h 54
12189 type "rectangle" 7093 type "rectangle"
12190 fill "#FFFFFF" 7094 fill "#FFFFFF"
12191 fill2 "#FFFFFF" 7095 fill2 "#FFFFFF"
@@ -12205,12 +7109,8 @@ graph
12205 LabelGraphics 7109 LabelGraphics
12206 [ 7110 [
12207 text " 7111 text "
12208 EClass class 7112 FunctionalInput class
12209 EClassifier class 7113 FunctionalData class
12210 EModelElement class
12211 ENamedElement class
12212 EModelElement class UndefinedPart
12213 ENamedElement class UndefinedPart
12214 " 7114 "
12215 fontSize 14 7115 fontSize 14
12216 fontName "Consolas" 7116 fontName "Consolas"
@@ -12225,169 +7125,6 @@ graph
12225 id 12 7125 id 12
12226 graphics 7126 graphics
12227 [ 7127 [
12228 w 269.5
12229 h 110
12230 type "rectangle"
12231 fill "#FFFFFF"
12232 fill2 "#FFFFFF"
12233 outline "#000000"
12234 ]
12235 LabelGraphics
12236 [
12237 text "null"
12238 outline "#000000"
12239 fill "#FFFFFF"
12240 fontSize 16
12241 fontName "Monospace"
12242 autoSizePolicy "node_width"
12243 anchor "t"
12244 borderDistance 0.0
12245 ]
12246 LabelGraphics
12247 [
12248 text "
12249 EModelElement class
12250 ENamedElement class
12251 EPackage class
12252 EModelElement class UndefinedPart
12253 ENamedElement class UndefinedPart
12254 EPackage class UndefinedPart
12255 "
12256 fontSize 14
12257 fontName "Consolas"
12258 alignment "left"
12259 anchor "tl"
12260 borderDistance 6
12261 ]
12262 ]
12263
12264 node
12265 [
12266 id 13
12267 graphics
12268 [
12269 w 269.5
12270 h 110
12271 type "rectangle"
12272 fill "#FFFFFF"
12273 fill2 "#FFFFFF"
12274 outline "#000000"
12275 ]
12276 LabelGraphics
12277 [
12278 text "null"
12279 outline "#000000"
12280 fill "#FFFFFF"
12281 fontSize 16
12282 fontName "Monospace"
12283 autoSizePolicy "node_width"
12284 anchor "t"
12285 borderDistance 0.0
12286 ]
12287 LabelGraphics
12288 [
12289 text "
12290 EModelElement class
12291 ENamedElement class
12292 EPackage class
12293 EModelElement class UndefinedPart
12294 ENamedElement class UndefinedPart
12295 EPackage class UndefinedPart
12296 "
12297 fontSize 14
12298 fontName "Consolas"
12299 alignment "left"
12300 anchor "tl"
12301 borderDistance 6
12302 ]
12303 ]
12304
12305 node
12306 [
12307 id 14
12308 graphics
12309 [
12310 w 269.5
12311 h 96
12312 type "rectangle"
12313 fill "#FFFFFF"
12314 fill2 "#FFFFFF"
12315 outline "#000000"
12316 ]
12317 LabelGraphics
12318 [
12319 text "null"
12320 outline "#000000"
12321 fill "#FFFFFF"
12322 fontSize 16
12323 fontName "Monospace"
12324 autoSizePolicy "node_width"
12325 anchor "t"
12326 borderDistance 0.0
12327 ]
12328 LabelGraphics
12329 [
12330 text "
12331 EModelElement class
12332 ENamedElement class
12333 ETypeParameter class
12334 EModelElement class UndefinedPart
12335 ENamedElement class UndefinedPart
12336 "
12337 fontSize 14
12338 fontName "Consolas"
12339 alignment "left"
12340 anchor "tl"
12341 borderDistance 6
12342 ]
12343 ]
12344
12345 node
12346 [
12347 id 15
12348 graphics
12349 [
12350 w 269.5
12351 h 110
12352 type "rectangle"
12353 fill "#FFFFFF"
12354 fill2 "#FFFFFF"
12355 outline "#000000"
12356 ]
12357 LabelGraphics
12358 [
12359 text "null"
12360 outline "#000000"
12361 fill "#FFFFFF"
12362 fontSize 16
12363 fontName "Monospace"
12364 autoSizePolicy "node_width"
12365 anchor "t"
12366 borderDistance 0.0
12367 ]
12368 LabelGraphics
12369 [
12370 text "
12371 EClass class
12372 EClassifier class
12373 EModelElement class
12374 ENamedElement class
12375 EModelElement class UndefinedPart
12376 ENamedElement class UndefinedPart
12377 "
12378 fontSize 14
12379 fontName "Consolas"
12380 alignment "left"
12381 anchor "tl"
12382 borderDistance 6
12383 ]
12384 ]
12385
12386 node
12387 [
12388 id 16
12389 graphics
12390 [
12391 w 112.2 7128 w 112.2
12392 h 26 7129 h 26
12393 type "rectangle" 7130 type "rectangle"
@@ -12420,7 +7157,7 @@ graph
12420 7157
12421 node 7158 node
12422 [ 7159 [
12423 id 17 7160 id 13
12424 graphics 7161 graphics
12425 [ 7162 [
12426 w 85.80000000000001 7163 w 85.80000000000001
@@ -12455,7 +7192,7 @@ graph
12455 7192
12456 node 7193 node
12457 [ 7194 [
12458 id 18 7195 id 14
12459 graphics 7196 graphics
12460 [ 7197 [
12461 w 103.4 7198 w 103.4
@@ -12490,7 +7227,7 @@ graph
12490 7227
12491 node 7228 node
12492 [ 7229 [
12493 id 19 7230 id 15
12494 graphics 7231 graphics
12495 [ 7232 [
12496 w 103.4 7233 w 103.4
@@ -12524,8 +7261,8 @@ graph
12524 ] 7261 ]
12525 edge 7262 edge
12526 [ 7263 [
12527 source 11 7264 source 10
12528 target 0 7265 target 8
12529 graphics 7266 graphics
12530 [ 7267 [
12531 fill "#000000" 7268 fill "#000000"
@@ -12533,7 +7270,7 @@ graph
12533 ] 7270 ]
12534 LabelGraphics 7271 LabelGraphics
12535 [ 7272 [
12536 text "ePackage reference EClassifier" 7273 text "from reference InformationLink"
12537 fontSize 14 7274 fontSize 14
12538 fontName "Consolas" 7275 fontName "Consolas"
12539 configuration "AutoFlippingLabel" 7276 configuration "AutoFlippingLabel"
@@ -12543,8 +7280,8 @@ graph
12543 ] 7280 ]
12544 edge 7281 edge
12545 [ 7282 [
12546 source 15 7283 source 10
12547 target 13 7284 target 9
12548 graphics 7285 graphics
12549 [ 7286 [
12550 fill "#000000" 7287 fill "#000000"
@@ -12552,7 +7289,7 @@ graph
12552 ] 7289 ]
12553 LabelGraphics 7290 LabelGraphics
12554 [ 7291 [
12555 text "ePackage reference EClassifier" 7292 text "to reference InformationLink"
12556 fontSize 14 7293 fontSize 14
12557 fontName "Consolas" 7294 fontName "Consolas"
12558 configuration "AutoFlippingLabel" 7295 configuration "AutoFlippingLabel"
@@ -12562,8 +7299,8 @@ graph
12562 ] 7299 ]
12563 edge 7300 edge
12564 [ 7301 [
12565 source 11 7302 source 5
12566 target 14 7303 target 6
12567 graphics 7304 graphics
12568 [ 7305 [
12569 fill "#000000" 7306 fill "#000000"
@@ -12572,7 +7309,7 @@ graph
12572 ] 7309 ]
12573 LabelGraphics 7310 LabelGraphics
12574 [ 7311 [
12575 text "eTypeParameters reference EClassifier" 7312 text "data reference FunctionalInterface"
12576 fontSize 14 7313 fontSize 14
12577 fontName "Consolas" 7314 fontName "Consolas"
12578 configuration "AutoFlippingLabel" 7315 configuration "AutoFlippingLabel"
@@ -12582,8 +7319,8 @@ graph
12582 ] 7319 ]
12583 edge 7320 edge
12584 [ 7321 [
12585 source 0 7322 source 5
12586 target 11 7323 target 7
12587 graphics 7324 graphics
12588 [ 7325 [
12589 fill "#000000" 7326 fill "#000000"
@@ -12592,7 +7329,7 @@ graph
12592 ] 7329 ]
12593 LabelGraphics 7330 LabelGraphics
12594 [ 7331 [
12595 text "eClassifiers reference EPackage" 7332 text "data reference FunctionalInterface"
12596 fontSize 14 7333 fontSize 14
12597 fontName "Consolas" 7334 fontName "Consolas"
12598 configuration "AutoFlippingLabel" 7335 configuration "AutoFlippingLabel"
@@ -12602,8 +7339,8 @@ graph
12602 ] 7339 ]
12603 edge 7340 edge
12604 [ 7341 [
12605 source 13 7342 source 5
12606 target 15 7343 target 8
12607 graphics 7344 graphics
12608 [ 7345 [
12609 fill "#000000" 7346 fill "#000000"
@@ -12612,7 +7349,7 @@ graph
12612 ] 7349 ]
12613 LabelGraphics 7350 LabelGraphics
12614 [ 7351 [
12615 text "eClassifiers reference EPackage" 7352 text "data reference FunctionalInterface"
12616 fontSize 14 7353 fontSize 14
12617 fontName "Consolas" 7354 fontName "Consolas"
12618 configuration "AutoFlippingLabel" 7355 configuration "AutoFlippingLabel"
@@ -12622,8 +7359,8 @@ graph
12622 ] 7359 ]
12623 edge 7360 edge
12624 [ 7361 [
12625 source 0 7362 source 5
12626 target 12 7363 target 9
12627 graphics 7364 graphics
12628 [ 7365 [
12629 fill "#000000" 7366 fill "#000000"
@@ -12632,7 +7369,7 @@ graph
12632 ] 7369 ]
12633 LabelGraphics 7370 LabelGraphics
12634 [ 7371 [
12635 text "eSubpackages reference EPackage" 7372 text "data reference FunctionalInterface"
12636 fontSize 14 7373 fontSize 14
12637 fontName "Consolas" 7374 fontName "Consolas"
12638 configuration "AutoFlippingLabel" 7375 configuration "AutoFlippingLabel"
@@ -12642,8 +7379,8 @@ graph
12642 ] 7379 ]
12643 edge 7380 edge
12644 [ 7381 [
12645 source 12 7382 source 5
12646 target 13 7383 target 11
12647 graphics 7384 graphics
12648 [ 7385 [
12649 fill "#000000" 7386 fill "#000000"
@@ -12652,64 +7389,7 @@ graph
12652 ] 7389 ]
12653 LabelGraphics 7390 LabelGraphics
12654 [ 7391 [
12655 text "eSubpackages reference EPackage" 7392 text "data reference FunctionalInterface"
12656 fontSize 14
12657 fontName "Consolas"
12658 configuration "AutoFlippingLabel"
12659 model "six_pos"
12660 position "thead"
12661 ]
12662 ]
12663 edge
12664 [
12665 source 12
12666 target 0
12667 graphics
12668 [
12669 fill "#000000"
12670 targetArrow "standard"
12671 ]
12672 LabelGraphics
12673 [
12674 text "eSuperPackage reference EPackage"
12675 fontSize 14
12676 fontName "Consolas"
12677 configuration "AutoFlippingLabel"
12678 model "six_pos"
12679 position "thead"
12680 ]
12681 ]
12682 edge
12683 [
12684 source 13
12685 target 12
12686 graphics
12687 [
12688 fill "#000000"
12689 targetArrow "standard"
12690 ]
12691 LabelGraphics
12692 [
12693 text "eSuperPackage reference EPackage"
12694 fontSize 14
12695 fontName "Consolas"
12696 configuration "AutoFlippingLabel"
12697 model "six_pos"
12698 position "thead"
12699 ]
12700 ]
12701 edge
12702 [
12703 source 11
12704 target 1
12705 graphics
12706 [
12707 fill "#000000"
12708 targetArrow "standard"
12709 ]
12710 LabelGraphics
12711 [
12712 text "abstract attribute EClass"
12713 fontSize 14 7393 fontSize 14
12714 fontName "Consolas" 7394 fontName "Consolas"
12715 configuration "AutoFlippingLabel" 7395 configuration "AutoFlippingLabel"
@@ -12719,27 +7399,8 @@ graph
12719 ] 7399 ]
12720 edge 7400 edge
12721 [ 7401 [
12722 source 11 7402 source 9
12723 target 2 7403 target 10
12724 graphics
12725 [
12726 fill "#000000"
12727 targetArrow "standard"
12728 ]
12729 LabelGraphics
12730 [
12731 text "interface attribute EClass"
12732 fontSize 14
12733 fontName "Consolas"
12734 configuration "AutoFlippingLabel"
12735 model "six_pos"
12736 position "thead"
12737 ]
12738 ]
12739 edge
12740 [
12741 source 11
12742 target 8
12743 graphics 7404 graphics
12744 [ 7405 [
12745 fill "#000000" 7406 fill "#000000"
@@ -12747,7 +7408,7 @@ graph
12747 ] 7408 ]
12748 LabelGraphics 7409 LabelGraphics
12749 [ 7410 [
12750 text "instanceTypeName attribute EClassifier" 7411 text "IncomingLinks reference FunctionalInput"
12751 fontSize 14 7412 fontSize 14
12752 fontName "Consolas" 7413 fontName "Consolas"
12753 configuration "AutoFlippingLabel" 7414 configuration "AutoFlippingLabel"
@@ -12757,16 +7418,17 @@ graph
12757 ] 7418 ]
12758 edge 7419 edge
12759 [ 7420 [
12760 source 0 7421 source 8
12761 target 10 7422 target 10
12762 graphics 7423 graphics
12763 [ 7424 [
12764 fill "#000000" 7425 fill "#000000"
7426 width 3
12765 targetArrow "standard" 7427 targetArrow "standard"
12766 ] 7428 ]
12767 LabelGraphics 7429 LabelGraphics
12768 [ 7430 [
12769 text "name attribute ENamedElement" 7431 text "outgoingLinks reference FunctionalOutput"
12770 fontSize 14 7432 fontSize 14
12771 fontName "Consolas" 7433 fontName "Consolas"
12772 configuration "AutoFlippingLabel" 7434 configuration "AutoFlippingLabel"
@@ -12776,8 +7438,8 @@ graph
12776 ] 7438 ]
12777 edge 7439 edge
12778 [ 7440 [
12779 source 13 7441 source 6
12780 target 8 7442 target 5
12781 graphics 7443 graphics
12782 [ 7444 [
12783 fill "#000000" 7445 fill "#000000"
@@ -12785,7 +7447,7 @@ graph
12785 ] 7447 ]
12786 LabelGraphics 7448 LabelGraphics
12787 [ 7449 [
12788 text "name attribute ENamedElement" 7450 text "interface reference FunctionalData"
12789 fontSize 14 7451 fontSize 14
12790 fontName "Consolas" 7452 fontName "Consolas"
12791 configuration "AutoFlippingLabel" 7453 configuration "AutoFlippingLabel"
@@ -12795,8 +7457,8 @@ graph
12795 ] 7457 ]
12796 edge 7458 edge
12797 [ 7459 [
12798 source 0 7460 source 7
12799 target 9 7461 target 5
12800 graphics 7462 graphics
12801 [ 7463 [
12802 fill "#000000" 7464 fill "#000000"
@@ -12804,7 +7466,7 @@ graph
12804 ] 7466 ]
12805 LabelGraphics 7467 LabelGraphics
12806 [ 7468 [
12807 text "nsURI attribute EPackage" 7469 text "interface reference FunctionalData"
12808 fontSize 14 7470 fontSize 14
12809 fontName "Consolas" 7471 fontName "Consolas"
12810 configuration "AutoFlippingLabel" 7472 configuration "AutoFlippingLabel"
@@ -12814,8 +7476,8 @@ graph
12814 ] 7476 ]
12815 edge 7477 edge
12816 [ 7478 [
12817 source 13 7479 source 8
12818 target 7 7480 target 5
12819 graphics 7481 graphics
12820 [ 7482 [
12821 fill "#000000" 7483 fill "#000000"
@@ -12823,7 +7485,7 @@ graph
12823 ] 7485 ]
12824 LabelGraphics 7486 LabelGraphics
12825 [ 7487 [
12826 text "nsURI attribute EPackage" 7488 text "interface reference FunctionalData"
12827 fontSize 14 7489 fontSize 14
12828 fontName "Consolas" 7490 fontName "Consolas"
12829 configuration "AutoFlippingLabel" 7491 configuration "AutoFlippingLabel"
@@ -12833,8 +7495,8 @@ graph
12833 ] 7495 ]
12834 edge 7496 edge
12835 [ 7497 [
12836 source 12 7498 source 9
12837 target 7 7499 target 5
12838 graphics 7500 graphics
12839 [ 7501 [
12840 fill "#000000" 7502 fill "#000000"
@@ -12842,7 +7504,7 @@ graph
12842 ] 7504 ]
12843 LabelGraphics 7505 LabelGraphics
12844 [ 7506 [
12845 text "nsURI attribute EPackage" 7507 text "interface reference FunctionalData"
12846 fontSize 14 7508 fontSize 14
12847 fontName "Consolas" 7509 fontName "Consolas"
12848 configuration "AutoFlippingLabel" 7510 configuration "AutoFlippingLabel"
@@ -12852,8 +7514,8 @@ graph
12852 ] 7514 ]
12853 edge 7515 edge
12854 [ 7516 [
12855 source 0 7517 source 11
12856 target 8 7518 target 5
12857 graphics 7519 graphics
12858 [ 7520 [
12859 fill "#000000" 7521 fill "#000000"
@@ -12861,7 +7523,7 @@ graph
12861 ] 7523 ]
12862 LabelGraphics 7524 LabelGraphics
12863 [ 7525 [
12864 text "nsPrefix attribute EPackage" 7526 text "interface reference FunctionalData"
12865 fontSize 14 7527 fontSize 14
12866 fontName "Consolas" 7528 fontName "Consolas"
12867 configuration "AutoFlippingLabel" 7529 configuration "AutoFlippingLabel"
@@ -12985,391 +7647,6 @@ graph
12985 id 3 7647 id 3
12986 graphics 7648 graphics
12987 [ 7649 [
12988 w 361.90000000000003
12989 h 54
12990 type "rectangle"
12991 fill "#FFFFFF"
12992 fill2 "#FFFFFF"
12993 outline "#000000"
12994 ]
12995 LabelGraphics
12996 [
12997 text "o 1"
12998 outline "#000000"
12999 fill "#FFFFFF"
13000 fontSize 16
13001 fontName "Monospace"
13002 autoSizePolicy "node_width"
13003 anchor "t"
13004 borderDistance 0.0
13005 ]
13006 LabelGraphics
13007 [
13008 text "
13009 FunctionalArchitectureModel class DefinedPart
13010 FunctionalArchitectureModel class
13011 "
13012 fontSize 14
13013 fontName "Consolas"
13014 alignment "left"
13015 anchor "tl"
13016 borderDistance 6
13017 ]
13018 ]
13019
13020 node
13021 [
13022 id 4
13023 graphics
13024 [
13025 w 41.800000000000004
13026 h 26
13027 type "rectangle"
13028 fill "#FFFFFF"
13029 fill2 "#FFFFFF"
13030 outline "#000000"
13031 ]
13032 LabelGraphics
13033 [
13034 text "true"
13035 outline "#000000"
13036 fill "#FFFFFF"
13037 fontSize 16
13038 fontName "Monospace"
13039 autoSizePolicy "node_width"
13040 anchor "t"
13041 borderDistance 0.0
13042 ]
13043 LabelGraphics
13044 [
13045 text "
13046 "
13047 fontSize 14
13048 fontName "Consolas"
13049 alignment "left"
13050 anchor "tl"
13051 borderDistance 6
13052 ]
13053 ]
13054
13055 node
13056 [
13057 id 5
13058 graphics
13059 [
13060 w 50.6
13061 h 26
13062 type "rectangle"
13063 fill "#FFFFFF"
13064 fill2 "#FFFFFF"
13065 outline "#000000"
13066 ]
13067 LabelGraphics
13068 [
13069 text "false"
13070 outline "#000000"
13071 fill "#FFFFFF"
13072 fontSize 16
13073 fontName "Monospace"
13074 autoSizePolicy "node_width"
13075 anchor "t"
13076 borderDistance 0.0
13077 ]
13078 LabelGraphics
13079 [
13080 text "
13081 "
13082 fontSize 14
13083 fontName "Consolas"
13084 alignment "left"
13085 anchor "tl"
13086 borderDistance 6
13087 ]
13088 ]
13089
13090 node
13091 [
13092 id 6
13093 graphics
13094 [
13095 w 192.50000000000003
13096 h 54
13097 type "rectangle"
13098 fill "#FFFFFF"
13099 fill2 "#FFFFFF"
13100 outline "#000000"
13101 ]
13102 LabelGraphics
13103 [
13104 text "null"
13105 outline "#000000"
13106 fill "#FFFFFF"
13107 fontSize 16
13108 fontName "Monospace"
13109 autoSizePolicy "node_width"
13110 anchor "t"
13111 borderDistance 0.0
13112 ]
13113 LabelGraphics
13114 [
13115 text "
13116 FunctionalElement class
13117 Function class
13118 "
13119 fontSize 14
13120 fontName "Consolas"
13121 alignment "left"
13122 anchor "tl"
13123 borderDistance 6
13124 ]
13125 ]
13126
13127 node
13128 [
13129 id 7
13130 graphics
13131 [
13132 w 112.2
13133 h 26
13134 type "rectangle"
13135 fill "#FFFFFF"
13136 fill2 "#FFFFFF"
13137 outline "#000000"
13138 ]
13139 LabelGraphics
13140 [
13141 text "New Integers"
13142 outline "#000000"
13143 fill "#FFFFFF"
13144 fontSize 16
13145 fontName "Monospace"
13146 autoSizePolicy "node_width"
13147 anchor "t"
13148 borderDistance 0.0
13149 ]
13150 LabelGraphics
13151 [
13152 text "
13153 "
13154 fontSize 14
13155 fontName "Consolas"
13156 alignment "left"
13157 anchor "tl"
13158 borderDistance 6
13159 ]
13160 ]
13161
13162 node
13163 [
13164 id 8
13165 graphics
13166 [
13167 w 85.80000000000001
13168 h 26
13169 type "rectangle"
13170 fill "#FFFFFF"
13171 fill2 "#FFFFFF"
13172 outline "#000000"
13173 ]
13174 LabelGraphics
13175 [
13176 text "New Reals"
13177 outline "#000000"
13178 fill "#FFFFFF"
13179 fontSize 16
13180 fontName "Monospace"
13181 autoSizePolicy "node_width"
13182 anchor "t"
13183 borderDistance 0.0
13184 ]
13185 LabelGraphics
13186 [
13187 text "
13188 "
13189 fontSize 14
13190 fontName "Consolas"
13191 alignment "left"
13192 anchor "tl"
13193 borderDistance 6
13194 ]
13195 ]
13196
13197 node
13198 [
13199 id 9
13200 graphics
13201 [
13202 w 103.4
13203 h 26
13204 type "rectangle"
13205 fill "#FFFFFF"
13206 fill2 "#FFFFFF"
13207 outline "#000000"
13208 ]
13209 LabelGraphics
13210 [
13211 text "New Strings"
13212 outline "#000000"
13213 fill "#FFFFFF"
13214 fontSize 16
13215 fontName "Monospace"
13216 autoSizePolicy "node_width"
13217 anchor "t"
13218 borderDistance 0.0
13219 ]
13220 LabelGraphics
13221 [
13222 text "
13223 "
13224 fontSize 14
13225 fontName "Consolas"
13226 alignment "left"
13227 anchor "tl"
13228 borderDistance 6
13229 ]
13230 ]
13231
13232 node
13233 [
13234 id 10
13235 graphics
13236 [
13237 w 103.4
13238 h 26
13239 type "rectangle"
13240 fill "#FFFFFF"
13241 fill2 "#FFFFFF"
13242 outline "#000000"
13243 ]
13244 LabelGraphics
13245 [
13246 text "New Objects"
13247 outline "#000000"
13248 fill "#FFFFFF"
13249 fontSize 16
13250 fontName "Monospace"
13251 autoSizePolicy "node_width"
13252 anchor "t"
13253 borderDistance 0.0
13254 ]
13255 LabelGraphics
13256 [
13257 text "
13258 "
13259 fontSize 14
13260 fontName "Consolas"
13261 alignment "left"
13262 anchor "tl"
13263 borderDistance 6
13264 ]
13265 ]
13266 edge
13267 [
13268 source 6
13269 target 3
13270 graphics
13271 [
13272 fill "#000000"
13273 targetArrow "standard"
13274 ]
13275 LabelGraphics
13276 [
13277 text "model reference FunctionalElement"
13278 fontSize 14
13279 fontName "Consolas"
13280 configuration "AutoFlippingLabel"
13281 model "six_pos"
13282 position "thead"
13283 ]
13284 ]
13285 edge
13286 [
13287 source 3
13288 target 6
13289 graphics
13290 [
13291 fill "#000000"
13292 width 3
13293 targetArrow "standard"
13294 ]
13295 LabelGraphics
13296 [
13297 text "rootElements reference FunctionalArchitectureModel"
13298 fontSize 14
13299 fontName "Consolas"
13300 configuration "AutoFlippingLabel"
13301 model "six_pos"
13302 position "thead"
13303 ]
13304 ]
13305 edge
13306 [
13307 source 6
13308 target 0
13309 graphics
13310 [
13311 fill "#000000"
13312 targetArrow "standard"
13313 ]
13314 LabelGraphics
13315 [
13316 text "type attribute Function"
13317 fontSize 14
13318 fontName "Consolas"
13319 configuration "AutoFlippingLabel"
13320 model "six_pos"
13321 position "thead"
13322 ]
13323 ]
13324]
13325graph
13326[
13327 node
13328 [
13329 id 0
13330 graphics
13331 [
13332 w 254.10000000000002
13333 h 110
13334 type "rectangle"
13335 fill "#FFFFFF"
13336 fill2 "#FFFFFF"
13337 outline "#000000"
13338 ]
13339 LabelGraphics
13340 [
13341 text "o 1"
13342 outline "#000000"
13343 fill "#FFFFFF"
13344 fontSize 16
13345 fontName "Monospace"
13346 autoSizePolicy "node_width"
13347 anchor "t"
13348 borderDistance 0.0
13349 ]
13350 LabelGraphics
13351 [
13352 text "
13353 EModelElement class DefinedPart
13354 ENamedElement class DefinedPart
13355 EPackage class DefinedPart
13356 EModelElement class
13357 ENamedElement class
13358 EPackage class
13359 "
13360 fontSize 14
13361 fontName "Consolas"
13362 alignment "left"
13363 anchor "tl"
13364 borderDistance 6
13365 ]
13366 ]
13367
13368 node
13369 [
13370 id 1
13371 graphics
13372 [
13373 w 41.800000000000004 7650 w 41.800000000000004
13374 h 26 7651 h 26
13375 type "rectangle" 7652 type "rectangle"
@@ -13402,7 +7679,7 @@ graph
13402 7679
13403 node 7680 node
13404 [ 7681 [
13405 id 2 7682 id 4
13406 graphics 7683 graphics
13407 [ 7684 [
13408 w 50.6 7685 w 50.6
@@ -13437,81 +7714,11 @@ graph
13437 7714
13438 node 7715 node
13439 [ 7716 [
13440 id 3
13441 graphics
13442 [
13443 w 24.200000000000003
13444 h 26
13445 type "rectangle"
13446 fill "#FFFFFF"
13447 fill2 "#FFFFFF"
13448 outline "#000000"
13449 ]
13450 LabelGraphics
13451 [
13452 text "-1"
13453 outline "#000000"
13454 fill "#FFFFFF"
13455 fontSize 16
13456 fontName "Monospace"
13457 autoSizePolicy "node_width"
13458 anchor "t"
13459 borderDistance 0.0
13460 ]
13461 LabelGraphics
13462 [
13463 text "
13464 "
13465 fontSize 14
13466 fontName "Consolas"
13467 alignment "left"
13468 anchor "tl"
13469 borderDistance 6
13470 ]
13471 ]
13472
13473 node
13474 [
13475 id 4
13476 graphics
13477 [
13478 w 15.400000000000002
13479 h 26
13480 type "rectangle"
13481 fill "#FFFFFF"
13482 fill2 "#FFFFFF"
13483 outline "#000000"
13484 ]
13485 LabelGraphics
13486 [
13487 text "0"
13488 outline "#000000"
13489 fill "#FFFFFF"
13490 fontSize 16
13491 fontName "Monospace"
13492 autoSizePolicy "node_width"
13493 anchor "t"
13494 borderDistance 0.0
13495 ]
13496 LabelGraphics
13497 [
13498 text "
13499 "
13500 fontSize 14
13501 fontName "Consolas"
13502 alignment "left"
13503 anchor "tl"
13504 borderDistance 6
13505 ]
13506 ]
13507
13508 node
13509 [
13510 id 5 7717 id 5
13511 graphics 7718 graphics
13512 [ 7719 [
13513 w 15.400000000000002 7720 w 207.9
13514 h 26 7721 h 40
13515 type "rectangle" 7722 type "rectangle"
13516 fill "#FFFFFF" 7723 fill "#FFFFFF"
13517 fill2 "#FFFFFF" 7724 fill2 "#FFFFFF"
@@ -13519,7 +7726,7 @@ graph
13519 ] 7726 ]
13520 LabelGraphics 7727 LabelGraphics
13521 [ 7728 [
13522 text "1" 7729 text "null"
13523 outline "#000000" 7730 outline "#000000"
13524 fill "#FFFFFF" 7731 fill "#FFFFFF"
13525 fontSize 16 7732 fontSize 16
@@ -13531,6 +7738,7 @@ graph
13531 LabelGraphics 7738 LabelGraphics
13532 [ 7739 [
13533 text " 7740 text "
7741 FunctionalInterface class
13534 " 7742 "
13535 fontSize 14 7743 fontSize 14
13536 fontName "Consolas" 7744 fontName "Consolas"
@@ -13545,8 +7753,8 @@ graph
13545 id 6 7753 id 6
13546 graphics 7754 graphics
13547 [ 7755 [
13548 w 33.0 7756 w 184.8
13549 h 26 7757 h 54
13550 type "rectangle" 7758 type "rectangle"
13551 fill "#FFFFFF" 7759 fill "#FFFFFF"
13552 fill2 "#FFFFFF" 7760 fill2 "#FFFFFF"
@@ -13554,7 +7762,7 @@ graph
13554 ] 7762 ]
13555 LabelGraphics 7763 LabelGraphics
13556 [ 7764 [
13557 text ""A"" 7765 text "null"
13558 outline "#000000" 7766 outline "#000000"
13559 fill "#FFFFFF" 7767 fill "#FFFFFF"
13560 fontSize 16 7768 fontSize 16
@@ -13566,6 +7774,8 @@ graph
13566 LabelGraphics 7774 LabelGraphics
13567 [ 7775 [
13568 text " 7776 text "
7777 FunctionalOutput class
7778 FunctionalData class
13569 " 7779 "
13570 fontSize 14 7780 fontSize 14
13571 fontName "Consolas" 7781 fontName "Consolas"
@@ -13580,8 +7790,8 @@ graph
13580 id 7 7790 id 7
13581 graphics 7791 graphics
13582 [ 7792 [
13583 w 33.0 7793 w 184.8
13584 h 26 7794 h 54
13585 type "rectangle" 7795 type "rectangle"
13586 fill "#FFFFFF" 7796 fill "#FFFFFF"
13587 fill2 "#FFFFFF" 7797 fill2 "#FFFFFF"
@@ -13589,7 +7799,7 @@ graph
13589 ] 7799 ]
13590 LabelGraphics 7800 LabelGraphics
13591 [ 7801 [
13592 text ""B"" 7802 text "null"
13593 outline "#000000" 7803 outline "#000000"
13594 fill "#FFFFFF" 7804 fill "#FFFFFF"
13595 fontSize 16 7805 fontSize 16
@@ -13601,6 +7811,8 @@ graph
13601 LabelGraphics 7811 LabelGraphics
13602 [ 7812 [
13603 text " 7813 text "
7814 FunctionalOutput class
7815 FunctionalData class
13604 " 7816 "
13605 fontSize 14 7817 fontSize 14
13606 fontName "Consolas" 7818 fontName "Consolas"
@@ -13615,8 +7827,8 @@ graph
13615 id 8 7827 id 8
13616 graphics 7828 graphics
13617 [ 7829 [
13618 w 94.60000000000001 7830 w 184.8
13619 h 26 7831 h 54
13620 type "rectangle" 7832 type "rectangle"
13621 fill "#FFFFFF" 7833 fill "#FFFFFF"
13622 fill2 "#FFFFFF" 7834 fill2 "#FFFFFF"
@@ -13624,7 +7836,7 @@ graph
13624 ] 7836 ]
13625 LabelGraphics 7837 LabelGraphics
13626 [ 7838 [
13627 text ""nsPrefix"" 7839 text "null"
13628 outline "#000000" 7840 outline "#000000"
13629 fill "#FFFFFF" 7841 fill "#FFFFFF"
13630 fontSize 16 7842 fontSize 16
@@ -13636,6 +7848,8 @@ graph
13636 LabelGraphics 7848 LabelGraphics
13637 [ 7849 [
13638 text " 7850 text "
7851 FunctionalOutput class
7852 FunctionalData class
13639 " 7853 "
13640 fontSize 14 7854 fontSize 14
13641 fontName "Consolas" 7855 fontName "Consolas"
@@ -13650,8 +7864,8 @@ graph
13650 id 9 7864 id 9
13651 graphics 7865 graphics
13652 [ 7866 [
13653 w 68.2 7867 w 161.70000000000002
13654 h 26 7868 h 40
13655 type "rectangle" 7869 type "rectangle"
13656 fill "#FFFFFF" 7870 fill "#FFFFFF"
13657 fill2 "#FFFFFF" 7871 fill2 "#FFFFFF"
@@ -13659,7 +7873,7 @@ graph
13659 ] 7873 ]
13660 LabelGraphics 7874 LabelGraphics
13661 [ 7875 [
13662 text ""nsUri"" 7876 text "null"
13663 outline "#000000" 7877 outline "#000000"
13664 fill "#FFFFFF" 7878 fill "#FFFFFF"
13665 fontSize 16 7879 fontSize 16
@@ -13671,6 +7885,7 @@ graph
13671 LabelGraphics 7885 LabelGraphics
13672 [ 7886 [
13673 text " 7887 text "
7888 FAMTerminator class
13674 " 7889 "
13675 fontSize 14 7890 fontSize 14
13676 fontName "Consolas" 7891 fontName "Consolas"
@@ -13685,8 +7900,8 @@ graph
13685 id 10 7900 id 10
13686 graphics 7901 graphics
13687 [ 7902 [
13688 w 121.00000000000001 7903 w 161.70000000000002
13689 h 26 7904 h 40
13690 type "rectangle" 7905 type "rectangle"
13691 fill "#FFFFFF" 7906 fill "#FFFFFF"
13692 fill2 "#FFFFFF" 7907 fill2 "#FFFFFF"
@@ -13694,7 +7909,7 @@ graph
13694 ] 7909 ]
13695 LabelGraphics 7910 LabelGraphics
13696 [ 7911 [
13697 text ""packageName"" 7912 text "null"
13698 outline "#000000" 7913 outline "#000000"
13699 fill "#FFFFFF" 7914 fill "#FFFFFF"
13700 fontSize 16 7915 fontSize 16
@@ -13706,6 +7921,7 @@ graph
13706 LabelGraphics 7921 LabelGraphics
13707 [ 7922 [
13708 text " 7923 text "
7924 FAMTerminator class
13709 " 7925 "
13710 fontSize 14 7926 fontSize 14
13711 fontName "Consolas" 7927 fontName "Consolas"
@@ -13720,8 +7936,8 @@ graph
13720 id 11 7936 id 11
13721 graphics 7937 graphics
13722 [ 7938 [
13723 w 269.5 7939 w 177.10000000000002
13724 h 110 7940 h 54
13725 type "rectangle" 7941 type "rectangle"
13726 fill "#FFFFFF" 7942 fill "#FFFFFF"
13727 fill2 "#FFFFFF" 7943 fill2 "#FFFFFF"
@@ -13741,12 +7957,8 @@ graph
13741 LabelGraphics 7957 LabelGraphics
13742 [ 7958 [
13743 text " 7959 text "
13744 EClass class 7960 FunctionalInput class
13745 EClassifier class 7961 FunctionalData class
13746 EModelElement class
13747 ENamedElement class
13748 EModelElement class UndefinedPart
13749 ENamedElement class UndefinedPart
13750 " 7962 "
13751 fontSize 14 7963 fontSize 14
13752 fontName "Consolas" 7964 fontName "Consolas"
@@ -13761,162 +7973,6 @@ graph
13761 id 12 7973 id 12
13762 graphics 7974 graphics
13763 [ 7975 [
13764 w 269.5
13765 h 110
13766 type "rectangle"
13767 fill "#FFFFFF"
13768 fill2 "#FFFFFF"
13769 outline "#000000"
13770 ]
13771 LabelGraphics
13772 [
13773 text "null"
13774 outline "#000000"
13775 fill "#FFFFFF"
13776 fontSize 16
13777 fontName "Monospace"
13778 autoSizePolicy "node_width"
13779 anchor "t"
13780 borderDistance 0.0
13781 ]
13782 LabelGraphics
13783 [
13784 text "
13785 EModelElement class
13786 ENamedElement class
13787 EPackage class
13788 EModelElement class UndefinedPart
13789 ENamedElement class UndefinedPart
13790 EPackage class UndefinedPart
13791 "
13792 fontSize 14
13793 fontName "Consolas"
13794 alignment "left"
13795 anchor "tl"
13796 borderDistance 6
13797 ]
13798 ]
13799
13800 node
13801 [
13802 id 13
13803 graphics
13804 [
13805 w 269.5
13806 h 110
13807 type "rectangle"
13808 fill "#FFFFFF"
13809 fill2 "#FFFFFF"
13810 outline "#000000"
13811 ]
13812 LabelGraphics
13813 [
13814 text "null"
13815 outline "#000000"
13816 fill "#FFFFFF"
13817 fontSize 16
13818 fontName "Monospace"
13819 autoSizePolicy "node_width"
13820 anchor "t"
13821 borderDistance 0.0
13822 ]
13823 LabelGraphics
13824 [
13825 text "
13826 EModelElement class
13827 ENamedElement class
13828 EOperation class
13829 ETypedElement class
13830 EModelElement class UndefinedPart
13831 ENamedElement class UndefinedPart
13832 "
13833 fontSize 14
13834 fontName "Consolas"
13835 alignment "left"
13836 anchor "tl"
13837 borderDistance 6
13838 ]
13839 ]
13840
13841 node
13842 [
13843 id 14
13844 graphics
13845 [
13846 w 269.5
13847 h 68
13848 type "rectangle"
13849 fill "#FFFFFF"
13850 fill2 "#FFFFFF"
13851 outline "#000000"
13852 ]
13853 LabelGraphics
13854 [
13855 text "null"
13856 outline "#000000"
13857 fill "#FFFFFF"
13858 fontSize 16
13859 fontName "Monospace"
13860 autoSizePolicy "node_width"
13861 anchor "t"
13862 borderDistance 0.0
13863 ]
13864 LabelGraphics
13865 [
13866 text "
13867 EAnnotation class
13868 EModelElement class
13869 EModelElement class UndefinedPart
13870 "
13871 fontSize 14
13872 fontName "Consolas"
13873 alignment "left"
13874 anchor "tl"
13875 borderDistance 6
13876 ]
13877 ]
13878
13879 node
13880 [
13881 id 15
13882 graphics
13883 [
13884 w 238.70000000000002
13885 h 40
13886 type "rectangle"
13887 fill "#FFFFFF"
13888 fill2 "#FFFFFF"
13889 outline "#000000"
13890 ]
13891 LabelGraphics
13892 [
13893 text "null"
13894 outline "#000000"
13895 fill "#FFFFFF"
13896 fontSize 16
13897 fontName "Monospace"
13898 autoSizePolicy "node_width"
13899 anchor "t"
13900 borderDistance 0.0
13901 ]
13902 LabelGraphics
13903 [
13904 text "
13905 EStringToStringMapEntry class
13906 "
13907 fontSize 14
13908 fontName "Consolas"
13909 alignment "left"
13910 anchor "tl"
13911 borderDistance 6
13912 ]
13913 ]
13914
13915 node
13916 [
13917 id 16
13918 graphics
13919 [
13920 w 112.2 7976 w 112.2
13921 h 26 7977 h 26
13922 type "rectangle" 7978 type "rectangle"
@@ -13949,7 +8005,7 @@ graph
13949 8005
13950 node 8006 node
13951 [ 8007 [
13952 id 17 8008 id 13
13953 graphics 8009 graphics
13954 [ 8010 [
13955 w 85.80000000000001 8011 w 85.80000000000001
@@ -13984,7 +8040,7 @@ graph
13984 8040
13985 node 8041 node
13986 [ 8042 [
13987 id 18 8043 id 14
13988 graphics 8044 graphics
13989 [ 8045 [
13990 w 103.4 8046 w 103.4
@@ -14019,7 +8075,7 @@ graph
14019 8075
14020 node 8076 node
14021 [ 8077 [
14022 id 19 8078 id 15
14023 graphics 8079 graphics
14024 [ 8080 [
14025 w 103.4 8081 w 103.4
@@ -14053,28 +8109,8 @@ graph
14053 ] 8109 ]
14054 edge 8110 edge
14055 [ 8111 [
14056 source 14 8112 source 9
14057 target 15 8113 target 6
14058 graphics
14059 [
14060 fill "#000000"
14061 width 3
14062 targetArrow "standard"
14063 ]
14064 LabelGraphics
14065 [
14066 text "details reference EAnnotation"
14067 fontSize 14
14068 fontName "Consolas"
14069 configuration "AutoFlippingLabel"
14070 model "six_pos"
14071 position "thead"
14072 ]
14073 ]
14074 edge
14075 [
14076 source 14
14077 target 0
14078 graphics 8114 graphics
14079 [ 8115 [
14080 fill "#000000" 8116 fill "#000000"
@@ -14082,7 +8118,7 @@ graph
14082 ] 8118 ]
14083 LabelGraphics 8119 LabelGraphics
14084 [ 8120 [
14085 text "eModelElement reference EAnnotation" 8121 text "data reference FAMTerminator"
14086 fontSize 14 8122 fontSize 14
14087 fontName "Consolas" 8123 fontName "Consolas"
14088 configuration "AutoFlippingLabel" 8124 configuration "AutoFlippingLabel"
@@ -14092,8 +8128,8 @@ graph
14092 ] 8128 ]
14093 edge 8129 edge
14094 [ 8130 [
14095 source 11 8131 source 10
14096 target 11 8132 target 7
14097 graphics 8133 graphics
14098 [ 8134 [
14099 fill "#000000" 8135 fill "#000000"
@@ -14101,7 +8137,7 @@ graph
14101 ] 8137 ]
14102 LabelGraphics 8138 LabelGraphics
14103 [ 8139 [
14104 text "eSuperTypes reference EClass" 8140 text "data reference FAMTerminator"
14105 fontSize 14 8141 fontSize 14
14106 fontName "Consolas" 8142 fontName "Consolas"
14107 configuration "AutoFlippingLabel" 8143 configuration "AutoFlippingLabel"
@@ -14111,8 +8147,8 @@ graph
14111 ] 8147 ]
14112 edge 8148 edge
14113 [ 8149 [
14114 source 11 8150 source 5
14115 target 13 8151 target 6
14116 graphics 8152 graphics
14117 [ 8153 [
14118 fill "#000000" 8154 fill "#000000"
@@ -14121,7 +8157,7 @@ graph
14121 ] 8157 ]
14122 LabelGraphics 8158 LabelGraphics
14123 [ 8159 [
14124 text "eOperations reference EClass" 8160 text "data reference FunctionalInterface"
14125 fontSize 14 8161 fontSize 14
14126 fontName "Consolas" 8162 fontName "Consolas"
14127 configuration "AutoFlippingLabel" 8163 configuration "AutoFlippingLabel"
@@ -14131,46 +8167,8 @@ graph
14131 ] 8167 ]
14132 edge 8168 edge
14133 [ 8169 [
14134 source 11 8170 source 5
14135 target 11 8171 target 7
14136 graphics
14137 [
14138 fill "#000000"
14139 targetArrow "standard"
14140 ]
14141 LabelGraphics
14142 [
14143 text "eAllSuperTypes reference EClass"
14144 fontSize 14
14145 fontName "Consolas"
14146 configuration "AutoFlippingLabel"
14147 model "six_pos"
14148 position "thead"
14149 ]
14150 ]
14151 edge
14152 [
14153 source 11
14154 target 0
14155 graphics
14156 [
14157 fill "#000000"
14158 targetArrow "standard"
14159 ]
14160 LabelGraphics
14161 [
14162 text "ePackage reference EClassifier"
14163 fontSize 14
14164 fontName "Consolas"
14165 configuration "AutoFlippingLabel"
14166 model "six_pos"
14167 position "thead"
14168 ]
14169 ]
14170 edge
14171 [
14172 source 0
14173 target 14
14174 graphics 8172 graphics
14175 [ 8173 [
14176 fill "#000000" 8174 fill "#000000"
@@ -14179,7 +8177,7 @@ graph
14179 ] 8177 ]
14180 LabelGraphics 8178 LabelGraphics
14181 [ 8179 [
14182 text "eAnnotations reference EModelElement" 8180 text "data reference FunctionalInterface"
14183 fontSize 14 8181 fontSize 14
14184 fontName "Consolas" 8182 fontName "Consolas"
14185 configuration "AutoFlippingLabel" 8183 configuration "AutoFlippingLabel"
@@ -14189,16 +8187,17 @@ graph
14189 ] 8187 ]
14190 edge 8188 edge
14191 [ 8189 [
14192 source 13 8190 source 5
14193 target 11 8191 target 8
14194 graphics 8192 graphics
14195 [ 8193 [
14196 fill "#000000" 8194 fill "#000000"
8195 width 3
14197 targetArrow "standard" 8196 targetArrow "standard"
14198 ] 8197 ]
14199 LabelGraphics 8198 LabelGraphics
14200 [ 8199 [
14201 text "eContainingClass reference EOperation" 8200 text "data reference FunctionalInterface"
14202 fontSize 14 8201 fontSize 14
14203 fontName "Consolas" 8202 fontName "Consolas"
14204 configuration "AutoFlippingLabel" 8203 configuration "AutoFlippingLabel"
@@ -14208,7 +8207,7 @@ graph
14208 ] 8207 ]
14209 edge 8208 edge
14210 [ 8209 [
14211 source 0 8210 source 5
14212 target 11 8211 target 11
14213 graphics 8212 graphics
14214 [ 8213 [
@@ -14218,7 +8217,7 @@ graph
14218 ] 8217 ]
14219 LabelGraphics 8218 LabelGraphics
14220 [ 8219 [
14221 text "eClassifiers reference EPackage" 8220 text "data reference FunctionalInterface"
14222 fontSize 14 8221 fontSize 14
14223 fontName "Consolas" 8222 fontName "Consolas"
14224 configuration "AutoFlippingLabel" 8223 configuration "AutoFlippingLabel"
@@ -14228,8 +8227,8 @@ graph
14228 ] 8227 ]
14229 edge 8228 edge
14230 [ 8229 [
14231 source 0 8230 source 6
14232 target 12 8231 target 9
14233 graphics 8232 graphics
14234 [ 8233 [
14235 fill "#000000" 8234 fill "#000000"
@@ -14238,26 +8237,7 @@ graph
14238 ] 8237 ]
14239 LabelGraphics 8238 LabelGraphics
14240 [ 8239 [
14241 text "eSubpackages reference EPackage" 8240 text "terminator reference FunctionalData"
14242 fontSize 14
14243 fontName "Consolas"
14244 configuration "AutoFlippingLabel"
14245 model "six_pos"
14246 position "thead"
14247 ]
14248 ]
14249 edge
14250 [
14251 source 12
14252 target 0
14253 graphics
14254 [
14255 fill "#000000"
14256 targetArrow "standard"
14257 ]
14258 LabelGraphics
14259 [
14260 text "eSuperPackage reference EPackage"
14261 fontSize 14 8241 fontSize 14
14262 fontName "Consolas" 8242 fontName "Consolas"
14263 configuration "AutoFlippingLabel" 8243 configuration "AutoFlippingLabel"
@@ -14267,73 +8247,17 @@ graph
14267 ] 8247 ]
14268 edge 8248 edge
14269 [ 8249 [
14270 source 11 8250 source 7
14271 target 8
14272 graphics
14273 [
14274 fill "#000000"
14275 targetArrow "standard"
14276 ]
14277 LabelGraphics
14278 [
14279 text "instanceClassName attribute EClassifier"
14280 fontSize 14
14281 fontName "Consolas"
14282 configuration "AutoFlippingLabel"
14283 model "six_pos"
14284 position "thead"
14285 ]
14286 ]
14287 edge
14288 [
14289 source 0
14290 target 10 8251 target 10
14291 graphics 8252 graphics
14292 [ 8253 [
14293 fill "#000000" 8254 fill "#000000"
8255 width 3
14294 targetArrow "standard" 8256 targetArrow "standard"
14295 ] 8257 ]
14296 LabelGraphics 8258 LabelGraphics
14297 [ 8259 [
14298 text "name attribute ENamedElement" 8260 text "terminator reference FunctionalData"
14299 fontSize 14
14300 fontName "Consolas"
14301 configuration "AutoFlippingLabel"
14302 model "six_pos"
14303 position "thead"
14304 ]
14305 ]
14306 edge
14307 [
14308 source 12
14309 target 7
14310 graphics
14311 [
14312 fill "#000000"
14313 targetArrow "standard"
14314 ]
14315 LabelGraphics
14316 [
14317 text "name attribute ENamedElement"
14318 fontSize 14
14319 fontName "Consolas"
14320 configuration "AutoFlippingLabel"
14321 model "six_pos"
14322 position "thead"
14323 ]
14324 ]
14325 edge
14326 [
14327 source 0
14328 target 9
14329 graphics
14330 [
14331 fill "#000000"
14332 targetArrow "standard"
14333 ]
14334 LabelGraphics
14335 [
14336 text "nsURI attribute EPackage"
14337 fontSize 14 8261 fontSize 14
14338 fontName "Consolas" 8262 fontName "Consolas"
14339 configuration "AutoFlippingLabel" 8263 configuration "AutoFlippingLabel"
@@ -14343,8 +8267,8 @@ graph
14343 ] 8267 ]
14344 edge 8268 edge
14345 [ 8269 [
14346 source 12 8270 source 6
14347 target 8 8271 target 5
14348 graphics 8272 graphics
14349 [ 8273 [
14350 fill "#000000" 8274 fill "#000000"
@@ -14352,7 +8276,7 @@ graph
14352 ] 8276 ]
14353 LabelGraphics 8277 LabelGraphics
14354 [ 8278 [
14355 text "nsURI attribute EPackage" 8279 text "interface reference FunctionalData"
14356 fontSize 14 8280 fontSize 14
14357 fontName "Consolas" 8281 fontName "Consolas"
14358 configuration "AutoFlippingLabel" 8282 configuration "AutoFlippingLabel"
@@ -14362,8 +8286,8 @@ graph
14362 ] 8286 ]
14363 edge 8287 edge
14364 [ 8288 [
14365 source 0 8289 source 7
14366 target 8 8290 target 5
14367 graphics 8291 graphics
14368 [ 8292 [
14369 fill "#000000" 8293 fill "#000000"
@@ -14371,7 +8295,7 @@ graph
14371 ] 8295 ]
14372 LabelGraphics 8296 LabelGraphics
14373 [ 8297 [
14374 text "nsPrefix attribute EPackage" 8298 text "interface reference FunctionalData"
14375 fontSize 14 8299 fontSize 14
14376 fontName "Consolas" 8300 fontName "Consolas"
14377 configuration "AutoFlippingLabel" 8301 configuration "AutoFlippingLabel"
@@ -14381,8 +8305,8 @@ graph
14381 ] 8305 ]
14382 edge 8306 edge
14383 [ 8307 [
14384 source 13 8308 source 8
14385 target 1 8309 target 5
14386 graphics 8310 graphics
14387 [ 8311 [
14388 fill "#000000" 8312 fill "#000000"
@@ -14390,7 +8314,7 @@ graph
14390 ] 8314 ]
14391 LabelGraphics 8315 LabelGraphics
14392 [ 8316 [
14393 text "unique attribute ETypedElement" 8317 text "interface reference FunctionalData"
14394 fontSize 14 8318 fontSize 14
14395 fontName "Consolas" 8319 fontName "Consolas"
14396 configuration "AutoFlippingLabel" 8320 configuration "AutoFlippingLabel"
@@ -14400,8 +8324,8 @@ graph
14400 ] 8324 ]
14401 edge 8325 edge
14402 [ 8326 [
14403 source 13 8327 source 11
14404 target 4 8328 target 5
14405 graphics 8329 graphics
14406 [ 8330 [
14407 fill "#000000" 8331 fill "#000000"
@@ -14409,7 +8333,7 @@ graph
14409 ] 8333 ]
14410 LabelGraphics 8334 LabelGraphics
14411 [ 8335 [
14412 text "upperBound attribute ETypedElement" 8336 text "interface reference FunctionalData"
14413 fontSize 14 8337 fontSize 14
14414 fontName "Consolas" 8338 fontName "Consolas"
14415 configuration "AutoFlippingLabel" 8339 configuration "AutoFlippingLabel"
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/1.png b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/1.png
index 0ea0ef1b..e33711c3 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/1.png
+++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/1.png
Binary files differ
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/1.xmi b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/1.xmi
index cb79481b..fa323f3d 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/1.xmi
+++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/1.xmi
@@ -1,10 +1,11 @@
1<?xml version="1.0" encoding="ASCII"?> 1<?xml version="1.0" encoding="ASCII"?>
2<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="packageName" nsURI="nsUri" nsPrefix="nsPrefix"> 2<fam:FunctionalInterface xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:fam="FamMetamodel">
3 <eAnnotations> 3 <data xsi:type="fam:FunctionalOutput"/>
4 <details/> 4 <data xsi:type="fam:FunctionalOutput">
5 </eAnnotations> 5 <terminator/>
6 <eClassifiers xsi:type="ecore:EClass" instanceClassName="nsPrefix" eSuperTypes="//%"> 6 </data>
7 <eOperations upperBound="0"/> 7 <data xsi:type="fam:FunctionalInput"/>
8 </eClassifiers> 8 <data xsi:type="fam:FunctionalOutput">
9 <eSubpackages name="B" nsURI="nsPrefix"/> 9 <terminator/>
10</ecore:EPackage> 10 </data>
11</fam:FunctionalInterface>
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/2.gml b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/2.gml
index 77ffa87d..383a7f99 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/2.gml
+++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/2.gml
@@ -113,8 +113,8 @@ graph
113 id 3 113 id 3
114 graphics 114 graphics
115 [ 115 [
116 w 361.90000000000003 116 w 41.800000000000004
117 h 54 117 h 26
118 type "rectangle" 118 type "rectangle"
119 fill "#FFFFFF" 119 fill "#FFFFFF"
120 fill2 "#FFFFFF" 120 fill2 "#FFFFFF"
@@ -122,7 +122,7 @@ graph
122 ] 122 ]
123 LabelGraphics 123 LabelGraphics
124 [ 124 [
125 text "o 1" 125 text "true"
126 outline "#000000" 126 outline "#000000"
127 fill "#FFFFFF" 127 fill "#FFFFFF"
128 fontSize 16 128 fontSize 16
@@ -134,8 +134,6 @@ graph
134 LabelGraphics 134 LabelGraphics
135 [ 135 [
136 text " 136 text "
137 FunctionalArchitectureModel class DefinedPart
138 FunctionalArchitectureModel class
139 " 137 "
140 fontSize 14 138 fontSize 14
141 fontName "Consolas" 139 fontName "Consolas"
@@ -150,7 +148,7 @@ graph
150 id 4 148 id 4
151 graphics 149 graphics
152 [ 150 [
153 w 41.800000000000004 151 w 50.6
154 h 26 152 h 26
155 type "rectangle" 153 type "rectangle"
156 fill "#FFFFFF" 154 fill "#FFFFFF"
@@ -159,7 +157,7 @@ graph
159 ] 157 ]
160 LabelGraphics 158 LabelGraphics
161 [ 159 [
162 text "true" 160 text "false"
163 outline "#000000" 161 outline "#000000"
164 fill "#FFFFFF" 162 fill "#FFFFFF"
165 fontSize 16 163 fontSize 16
@@ -185,8 +183,8 @@ graph
185 id 5 183 id 5
186 graphics 184 graphics
187 [ 185 [
188 w 50.6 186 w 207.9
189 h 26 187 h 40
190 type "rectangle" 188 type "rectangle"
191 fill "#FFFFFF" 189 fill "#FFFFFF"
192 fill2 "#FFFFFF" 190 fill2 "#FFFFFF"
@@ -194,7 +192,7 @@ graph
194 ] 192 ]
195 LabelGraphics 193 LabelGraphics
196 [ 194 [
197 text "false" 195 text "null"
198 outline "#000000" 196 outline "#000000"
199 fill "#FFFFFF" 197 fill "#FFFFFF"
200 fontSize 16 198 fontSize 16
@@ -206,6 +204,7 @@ graph
206 LabelGraphics 204 LabelGraphics
207 [ 205 [
208 text " 206 text "
207 FunctionalInterface class
209 " 208 "
210 fontSize 14 209 fontSize 14
211 fontName "Consolas" 210 fontName "Consolas"
@@ -220,7 +219,7 @@ graph
220 id 6 219 id 6
221 graphics 220 graphics
222 [ 221 [
223 w 192.50000000000003 222 w 184.8
224 h 54 223 h 54
225 type "rectangle" 224 type "rectangle"
226 fill "#FFFFFF" 225 fill "#FFFFFF"
@@ -241,8 +240,8 @@ graph
241 LabelGraphics 240 LabelGraphics
242 [ 241 [
243 text " 242 text "
244 FunctionalElement class 243 FunctionalOutput class
245 Function class 244 FunctionalData class
246 " 245 "
247 fontSize 14 246 fontSize 14
248 fontName "Consolas" 247 fontName "Consolas"
@@ -257,8 +256,8 @@ graph
257 id 7 256 id 7
258 graphics 257 graphics
259 [ 258 [
260 w 112.2 259 w 184.8
261 h 26 260 h 54
262 type "rectangle" 261 type "rectangle"
263 fill "#FFFFFF" 262 fill "#FFFFFF"
264 fill2 "#FFFFFF" 263 fill2 "#FFFFFF"
@@ -266,7 +265,7 @@ graph
266 ] 265 ]
267 LabelGraphics 266 LabelGraphics
268 [ 267 [
269 text "New Integers" 268 text "null"
270 outline "#000000" 269 outline "#000000"
271 fill "#FFFFFF" 270 fill "#FFFFFF"
272 fontSize 16 271 fontSize 16
@@ -278,6 +277,8 @@ graph
278 LabelGraphics 277 LabelGraphics
279 [ 278 [
280 text " 279 text "
280 FunctionalOutput class
281 FunctionalData class
281 " 282 "
282 fontSize 14 283 fontSize 14
283 fontName "Consolas" 284 fontName "Consolas"
@@ -292,8 +293,8 @@ graph
292 id 8 293 id 8
293 graphics 294 graphics
294 [ 295 [
295 w 85.80000000000001 296 w 177.10000000000002
296 h 26 297 h 54
297 type "rectangle" 298 type "rectangle"
298 fill "#FFFFFF" 299 fill "#FFFFFF"
299 fill2 "#FFFFFF" 300 fill2 "#FFFFFF"
@@ -301,7 +302,7 @@ graph
301 ] 302 ]
302 LabelGraphics 303 LabelGraphics
303 [ 304 [
304 text "New Reals" 305 text "null"
305 outline "#000000" 306 outline "#000000"
306 fill "#FFFFFF" 307 fill "#FFFFFF"
307 fontSize 16 308 fontSize 16
@@ -313,6 +314,8 @@ graph
313 LabelGraphics 314 LabelGraphics
314 [ 315 [
315 text " 316 text "
317 FunctionalInput class
318 FunctionalData class
316 " 319 "
317 fontSize 14 320 fontSize 14
318 fontName "Consolas" 321 fontName "Consolas"
@@ -327,137 +330,7 @@ graph
327 id 9 330 id 9
328 graphics 331 graphics
329 [ 332 [
330 w 103.4 333 w 177.10000000000002
331 h 26
332 type "rectangle"
333 fill "#FFFFFF"
334 fill2 "#FFFFFF"
335 outline "#000000"
336 ]
337 LabelGraphics
338 [
339 text "New Strings"
340 outline "#000000"
341 fill "#FFFFFF"
342 fontSize 16
343 fontName "Monospace"
344 autoSizePolicy "node_width"
345 anchor "t"
346 borderDistance 0.0
347 ]
348 LabelGraphics
349 [
350 text "
351 "
352 fontSize 14
353 fontName "Consolas"
354 alignment "left"
355 anchor "tl"
356 borderDistance 6
357 ]
358 ]
359
360 node
361 [
362 id 10
363 graphics
364 [
365 w 103.4
366 h 26
367 type "rectangle"
368 fill "#FFFFFF"
369 fill2 "#FFFFFF"
370 outline "#000000"
371 ]
372 LabelGraphics
373 [
374 text "New Objects"
375 outline "#000000"
376 fill "#FFFFFF"
377 fontSize 16
378 fontName "Monospace"
379 autoSizePolicy "node_width"
380 anchor "t"
381 borderDistance 0.0
382 ]
383 LabelGraphics
384 [
385 text "
386 "
387 fontSize 14
388 fontName "Consolas"
389 alignment "left"
390 anchor "tl"
391 borderDistance 6
392 ]
393 ]
394 edge
395 [
396 source 6
397 target 3
398 graphics
399 [
400 fill "#000000"
401 targetArrow "standard"
402 ]
403 LabelGraphics
404 [
405 text "model reference FunctionalElement"
406 fontSize 14
407 fontName "Consolas"
408 configuration "AutoFlippingLabel"
409 model "six_pos"
410 position "thead"
411 ]
412 ]
413 edge
414 [
415 source 3
416 target 6
417 graphics
418 [
419 fill "#000000"
420 width 3
421 targetArrow "standard"
422 ]
423 LabelGraphics
424 [
425 text "rootElements reference FunctionalArchitectureModel"
426 fontSize 14
427 fontName "Consolas"
428 configuration "AutoFlippingLabel"
429 model "six_pos"
430 position "thead"
431 ]
432 ]
433 edge
434 [
435 source 6
436 target 1
437 graphics
438 [
439 fill "#000000"
440 targetArrow "standard"
441 ]
442 LabelGraphics
443 [
444 text "type attribute Function"
445 fontSize 14
446 fontName "Consolas"
447 configuration "AutoFlippingLabel"
448 model "six_pos"
449 position "thead"
450 ]
451 ]
452]
453graph
454[
455 node
456 [
457 id 0
458 graphics
459 [
460 w 226.60000000000002
461 h 40 334 h 40
462 type "rectangle" 335 type "rectangle"
463 fill "#FFFFFF" 336 fill "#FFFFFF"
@@ -466,7 +339,7 @@ graph
466 ] 339 ]
467 LabelGraphics 340 LabelGraphics
468 [ 341 [
469 text "Root literal FunctionType" 342 text "null"
470 outline "#000000" 343 outline "#000000"
471 fill "#FFFFFF" 344 fill "#FFFFFF"
472 fontSize 16 345 fontSize 16
@@ -478,7 +351,7 @@ graph
478 LabelGraphics 351 LabelGraphics
479 [ 352 [
480 text " 353 text "
481 FunctionType enum 354 InformationLink class
482 " 355 "
483 fontSize 14 356 fontSize 14
484 fontName "Consolas" 357 fontName "Consolas"
@@ -490,10 +363,10 @@ graph
490 363
491 node 364 node
492 [ 365 [
493 id 1 366 id 10
494 graphics 367 graphics
495 [ 368 [
496 w 297.0 369 w 177.10000000000002
497 h 40 370 h 40
498 type "rectangle" 371 type "rectangle"
499 fill "#FFFFFF" 372 fill "#FFFFFF"
@@ -502,7 +375,7 @@ graph
502 ] 375 ]
503 LabelGraphics 376 LabelGraphics
504 [ 377 [
505 text "Intermediate literal FunctionType" 378 text "null"
506 outline "#000000" 379 outline "#000000"
507 fill "#FFFFFF" 380 fill "#FFFFFF"
508 fontSize 16 381 fontSize 16
@@ -514,7 +387,7 @@ graph
514 LabelGraphics 387 LabelGraphics
515 [ 388 [
516 text " 389 text "
517 FunctionType enum 390 InformationLink class
518 " 391 "
519 fontSize 14 392 fontSize 14
520 fontName "Consolas" 393 fontName "Consolas"
@@ -526,10 +399,10 @@ graph
526 399
527 node 400 node
528 [ 401 [
529 id 2 402 id 11
530 graphics 403 graphics
531 [ 404 [
532 w 226.60000000000002 405 w 161.70000000000002
533 h 40 406 h 40
534 type "rectangle" 407 type "rectangle"
535 fill "#FFFFFF" 408 fill "#FFFFFF"
@@ -538,149 +411,6 @@ graph
538 ] 411 ]
539 LabelGraphics 412 LabelGraphics
540 [ 413 [
541 text "Leaf literal FunctionType"
542 outline "#000000"
543 fill "#FFFFFF"
544 fontSize 16
545 fontName "Monospace"
546 autoSizePolicy "node_width"
547 anchor "t"
548 borderDistance 0.0
549 ]
550 LabelGraphics
551 [
552 text "
553 FunctionType enum
554 "
555 fontSize 14
556 fontName "Consolas"
557 alignment "left"
558 anchor "tl"
559 borderDistance 6
560 ]
561 ]
562
563 node
564 [
565 id 3
566 graphics
567 [
568 w 361.90000000000003
569 h 54
570 type "rectangle"
571 fill "#FFFFFF"
572 fill2 "#FFFFFF"
573 outline "#000000"
574 ]
575 LabelGraphics
576 [
577 text "o 1"
578 outline "#000000"
579 fill "#FFFFFF"
580 fontSize 16
581 fontName "Monospace"
582 autoSizePolicy "node_width"
583 anchor "t"
584 borderDistance 0.0
585 ]
586 LabelGraphics
587 [
588 text "
589 FunctionalArchitectureModel class DefinedPart
590 FunctionalArchitectureModel class
591 "
592 fontSize 14
593 fontName "Consolas"
594 alignment "left"
595 anchor "tl"
596 borderDistance 6
597 ]
598 ]
599
600 node
601 [
602 id 4
603 graphics
604 [
605 w 41.800000000000004
606 h 26
607 type "rectangle"
608 fill "#FFFFFF"
609 fill2 "#FFFFFF"
610 outline "#000000"
611 ]
612 LabelGraphics
613 [
614 text "true"
615 outline "#000000"
616 fill "#FFFFFF"
617 fontSize 16
618 fontName "Monospace"
619 autoSizePolicy "node_width"
620 anchor "t"
621 borderDistance 0.0
622 ]
623 LabelGraphics
624 [
625 text "
626 "
627 fontSize 14
628 fontName "Consolas"
629 alignment "left"
630 anchor "tl"
631 borderDistance 6
632 ]
633 ]
634
635 node
636 [
637 id 5
638 graphics
639 [
640 w 50.6
641 h 26
642 type "rectangle"
643 fill "#FFFFFF"
644 fill2 "#FFFFFF"
645 outline "#000000"
646 ]
647 LabelGraphics
648 [
649 text "false"
650 outline "#000000"
651 fill "#FFFFFF"
652 fontSize 16
653 fontName "Monospace"
654 autoSizePolicy "node_width"
655 anchor "t"
656 borderDistance 0.0
657 ]
658 LabelGraphics
659 [
660 text "
661 "
662 fontSize 14
663 fontName "Consolas"
664 alignment "left"
665 anchor "tl"
666 borderDistance 6
667 ]
668 ]
669
670 node
671 [
672 id 6
673 graphics
674 [
675 w 192.50000000000003
676 h 54
677 type "rectangle"
678 fill "#FFFFFF"
679 fill2 "#FFFFFF"
680 outline "#000000"
681 ]
682 LabelGraphics
683 [
684 text "null" 414 text "null"
685 outline "#000000" 415 outline "#000000"
686 fill "#FFFFFF" 416 fill "#FFFFFF"
@@ -693,8 +423,7 @@ graph
693 LabelGraphics 423 LabelGraphics
694 [ 424 [
695 text " 425 text "
696 FunctionalElement class 426 FAMTerminator class
697 Function class
698 " 427 "
699 fontSize 14 428 fontSize 14
700 fontName "Consolas" 429 fontName "Consolas"
@@ -706,7 +435,7 @@ graph
706 435
707 node 436 node
708 [ 437 [
709 id 7 438 id 12
710 graphics 439 graphics
711 [ 440 [
712 w 112.2 441 w 112.2
@@ -741,7 +470,7 @@ graph
741 470
742 node 471 node
743 [ 472 [
744 id 8 473 id 13
745 graphics 474 graphics
746 [ 475 [
747 w 85.80000000000001 476 w 85.80000000000001
@@ -776,7 +505,7 @@ graph
776 505
777 node 506 node
778 [ 507 [
779 id 9 508 id 14
780 graphics 509 graphics
781 [ 510 [
782 w 103.4 511 w 103.4
@@ -811,7 +540,7 @@ graph
811 540
812 node 541 node
813 [ 542 [
814 id 10 543 id 15
815 graphics 544 graphics
816 [ 545 [
817 w 103.4 546 w 103.4
@@ -845,8 +574,8 @@ graph
845 ] 574 ]
846 edge 575 edge
847 [ 576 [
848 source 6 577 source 11
849 target 3 578 target 6
850 graphics 579 graphics
851 [ 580 [
852 fill "#000000" 581 fill "#000000"
@@ -854,7 +583,7 @@ graph
854 ] 583 ]
855 LabelGraphics 584 LabelGraphics
856 [ 585 [
857 text "model reference FunctionalElement" 586 text "data reference FAMTerminator"
858 fontSize 14 587 fontSize 14
859 fontName "Consolas" 588 fontName "Consolas"
860 configuration "AutoFlippingLabel" 589 configuration "AutoFlippingLabel"
@@ -864,17 +593,16 @@ graph
864 ] 593 ]
865 edge 594 edge
866 [ 595 [
867 source 3 596 source 9
868 target 6 597 target 7
869 graphics 598 graphics
870 [ 599 [
871 fill "#000000" 600 fill "#000000"
872 width 3
873 targetArrow "standard" 601 targetArrow "standard"
874 ] 602 ]
875 LabelGraphics 603 LabelGraphics
876 [ 604 [
877 text "rootElements reference FunctionalArchitectureModel" 605 text "from reference InformationLink"
878 fontSize 14 606 fontSize 14
879 fontName "Consolas" 607 fontName "Consolas"
880 configuration "AutoFlippingLabel" 608 configuration "AutoFlippingLabel"
@@ -884,8 +612,8 @@ graph
884 ] 612 ]
885 edge 613 edge
886 [ 614 [
887 source 6 615 source 10
888 target 2 616 target 7
889 graphics 617 graphics
890 [ 618 [
891 fill "#000000" 619 fill "#000000"
@@ -893,7 +621,7 @@ graph
893 ] 621 ]
894 LabelGraphics 622 LabelGraphics
895 [ 623 [
896 text "type attribute Function" 624 text "from reference InformationLink"
897 fontSize 14 625 fontSize 14
898 fontName "Consolas" 626 fontName "Consolas"
899 configuration "AutoFlippingLabel" 627 configuration "AutoFlippingLabel"
@@ -901,412 +629,57 @@ graph
901 position "thead" 629 position "thead"
902 ] 630 ]
903 ] 631 ]
904] 632 edge
905graph 633 [
906[ 634 source 9
907 node 635 target 8
908 [ 636 graphics
909 id 0
910 graphics
911 [
912 w 226.60000000000002
913 h 40
914 type "rectangle"
915 fill "#FFFFFF"
916 fill2 "#FFFFFF"
917 outline "#000000"
918 ]
919 LabelGraphics
920 [
921 text "Root literal FunctionType"
922 outline "#000000"
923 fill "#FFFFFF"
924 fontSize 16
925 fontName "Monospace"
926 autoSizePolicy "node_width"
927 anchor "t"
928 borderDistance 0.0
929 ]
930 LabelGraphics
931 [
932 text "
933 FunctionType enum
934 "
935 fontSize 14
936 fontName "Consolas"
937 alignment "left"
938 anchor "tl"
939 borderDistance 6
940 ]
941 ]
942
943 node
944 [
945 id 1
946 graphics
947 [
948 w 297.0
949 h 40
950 type "rectangle"
951 fill "#FFFFFF"
952 fill2 "#FFFFFF"
953 outline "#000000"
954 ]
955 LabelGraphics
956 [
957 text "Intermediate literal FunctionType"
958 outline "#000000"
959 fill "#FFFFFF"
960 fontSize 16
961 fontName "Monospace"
962 autoSizePolicy "node_width"
963 anchor "t"
964 borderDistance 0.0
965 ]
966 LabelGraphics
967 [
968 text "
969 FunctionType enum
970 "
971 fontSize 14
972 fontName "Consolas"
973 alignment "left"
974 anchor "tl"
975 borderDistance 6
976 ]
977 ]
978
979 node
980 [
981 id 2
982 graphics
983 [
984 w 226.60000000000002
985 h 40
986 type "rectangle"
987 fill "#FFFFFF"
988 fill2 "#FFFFFF"
989 outline "#000000"
990 ]
991 LabelGraphics
992 [
993 text "Leaf literal FunctionType"
994 outline "#000000"
995 fill "#FFFFFF"
996 fontSize 16
997 fontName "Monospace"
998 autoSizePolicy "node_width"
999 anchor "t"
1000 borderDistance 0.0
1001 ]
1002 LabelGraphics
1003 [
1004 text "
1005 FunctionType enum
1006 "
1007 fontSize 14
1008 fontName "Consolas"
1009 alignment "left"
1010 anchor "tl"
1011 borderDistance 6
1012 ]
1013 ]
1014
1015 node
1016 [
1017 id 3
1018 graphics
1019 [
1020 w 361.90000000000003
1021 h 54
1022 type "rectangle"
1023 fill "#FFFFFF"
1024 fill2 "#FFFFFF"
1025 outline "#000000"
1026 ]
1027 LabelGraphics
1028 [
1029 text "o 1"
1030 outline "#000000"
1031 fill "#FFFFFF"
1032 fontSize 16
1033 fontName "Monospace"
1034 autoSizePolicy "node_width"
1035 anchor "t"
1036 borderDistance 0.0
1037 ]
1038 LabelGraphics
1039 [
1040 text "
1041 FunctionalArchitectureModel class DefinedPart
1042 FunctionalArchitectureModel class
1043 "
1044 fontSize 14
1045 fontName "Consolas"
1046 alignment "left"
1047 anchor "tl"
1048 borderDistance 6
1049 ]
1050 ]
1051
1052 node
1053 [
1054 id 4
1055 graphics
1056 [
1057 w 41.800000000000004
1058 h 26
1059 type "rectangle"
1060 fill "#FFFFFF"
1061 fill2 "#FFFFFF"
1062 outline "#000000"
1063 ]
1064 LabelGraphics
1065 [
1066 text "true"
1067 outline "#000000"
1068 fill "#FFFFFF"
1069 fontSize 16
1070 fontName "Monospace"
1071 autoSizePolicy "node_width"
1072 anchor "t"
1073 borderDistance 0.0
1074 ]
1075 LabelGraphics
1076 [
1077 text "
1078 "
1079 fontSize 14
1080 fontName "Consolas"
1081 alignment "left"
1082 anchor "tl"
1083 borderDistance 6
1084 ]
1085 ]
1086
1087 node
1088 [
1089 id 5
1090 graphics
1091 [
1092 w 50.6
1093 h 26
1094 type "rectangle"
1095 fill "#FFFFFF"
1096 fill2 "#FFFFFF"
1097 outline "#000000"
1098 ]
1099 LabelGraphics
1100 [
1101 text "false"
1102 outline "#000000"
1103 fill "#FFFFFF"
1104 fontSize 16
1105 fontName "Monospace"
1106 autoSizePolicy "node_width"
1107 anchor "t"
1108 borderDistance 0.0
1109 ]
1110 LabelGraphics
1111 [
1112 text "
1113 "
1114 fontSize 14
1115 fontName "Consolas"
1116 alignment "left"
1117 anchor "tl"
1118 borderDistance 6
1119 ]
1120 ]
1121
1122 node
1123 [
1124 id 6
1125 graphics
1126 [
1127 w 192.50000000000003
1128 h 54
1129 type "rectangle"
1130 fill "#FFFFFF"
1131 fill2 "#FFFFFF"
1132 outline "#000000"
1133 ]
1134 LabelGraphics
1135 [
1136 text "null"
1137 outline "#000000"
1138 fill "#FFFFFF"
1139 fontSize 16
1140 fontName "Monospace"
1141 autoSizePolicy "node_width"
1142 anchor "t"
1143 borderDistance 0.0
1144 ]
1145 LabelGraphics
1146 [
1147 text "
1148 FunctionalElement class
1149 Function class
1150 "
1151 fontSize 14
1152 fontName "Consolas"
1153 alignment "left"
1154 anchor "tl"
1155 borderDistance 6
1156 ]
1157 ]
1158
1159 node
1160 [ 637 [
1161 id 7 638 fill "#000000"
1162 graphics 639 targetArrow "standard"
1163 [
1164 w 112.2
1165 h 26
1166 type "rectangle"
1167 fill "#FFFFFF"
1168 fill2 "#FFFFFF"
1169 outline "#000000"
1170 ]
1171 LabelGraphics
1172 [
1173 text "New Integers"
1174 outline "#000000"
1175 fill "#FFFFFF"
1176 fontSize 16
1177 fontName "Monospace"
1178 autoSizePolicy "node_width"
1179 anchor "t"
1180 borderDistance 0.0
1181 ]
1182 LabelGraphics
1183 [
1184 text "
1185 "
1186 fontSize 14
1187 fontName "Consolas"
1188 alignment "left"
1189 anchor "tl"
1190 borderDistance 6
1191 ]
1192 ] 640 ]
1193 641 LabelGraphics
1194 node
1195 [ 642 [
1196 id 8 643 text "to reference InformationLink"
1197 graphics 644 fontSize 14
1198 [ 645 fontName "Consolas"
1199 w 85.80000000000001 646 configuration "AutoFlippingLabel"
1200 h 26 647 model "six_pos"
1201 type "rectangle" 648 position "thead"
1202 fill "#FFFFFF"
1203 fill2 "#FFFFFF"
1204 outline "#000000"
1205 ]
1206 LabelGraphics
1207 [
1208 text "New Reals"
1209 outline "#000000"
1210 fill "#FFFFFF"
1211 fontSize 16
1212 fontName "Monospace"
1213 autoSizePolicy "node_width"
1214 anchor "t"
1215 borderDistance 0.0
1216 ]
1217 LabelGraphics
1218 [
1219 text "
1220 "
1221 fontSize 14
1222 fontName "Consolas"
1223 alignment "left"
1224 anchor "tl"
1225 borderDistance 6
1226 ]
1227 ] 649 ]
1228 650 ]
1229 node 651 edge
652 [
653 source 10
654 target 8
655 graphics
1230 [ 656 [
1231 id 9 657 fill "#000000"
1232 graphics 658 targetArrow "standard"
1233 [
1234 w 103.4
1235 h 26
1236 type "rectangle"
1237 fill "#FFFFFF"
1238 fill2 "#FFFFFF"
1239 outline "#000000"
1240 ]
1241 LabelGraphics
1242 [
1243 text "New Strings"
1244 outline "#000000"
1245 fill "#FFFFFF"
1246 fontSize 16
1247 fontName "Monospace"
1248 autoSizePolicy "node_width"
1249 anchor "t"
1250 borderDistance 0.0
1251 ]
1252 LabelGraphics
1253 [
1254 text "
1255 "
1256 fontSize 14
1257 fontName "Consolas"
1258 alignment "left"
1259 anchor "tl"
1260 borderDistance 6
1261 ]
1262 ] 659 ]
1263 660 LabelGraphics
1264 node
1265 [ 661 [
1266 id 10 662 text "to reference InformationLink"
1267 graphics 663 fontSize 14
1268 [ 664 fontName "Consolas"
1269 w 103.4 665 configuration "AutoFlippingLabel"
1270 h 26 666 model "six_pos"
1271 type "rectangle" 667 position "thead"
1272 fill "#FFFFFF"
1273 fill2 "#FFFFFF"
1274 outline "#000000"
1275 ]
1276 LabelGraphics
1277 [
1278 text "New Objects"
1279 outline "#000000"
1280 fill "#FFFFFF"
1281 fontSize 16
1282 fontName "Monospace"
1283 autoSizePolicy "node_width"
1284 anchor "t"
1285 borderDistance 0.0
1286 ]
1287 LabelGraphics
1288 [
1289 text "
1290 "
1291 fontSize 14
1292 fontName "Consolas"
1293 alignment "left"
1294 anchor "tl"
1295 borderDistance 6
1296 ]
1297 ] 668 ]
669 ]
1298 edge 670 edge
1299 [ 671 [
1300 source 6 672 source 5
1301 target 3 673 target 6
1302 graphics 674 graphics
1303 [ 675 [
1304 fill "#000000" 676 fill "#000000"
677 width 3
1305 targetArrow "standard" 678 targetArrow "standard"
1306 ] 679 ]
1307 LabelGraphics 680 LabelGraphics
1308 [ 681 [
1309 text "model reference FunctionalElement" 682 text "data reference FunctionalInterface"
1310 fontSize 14 683 fontSize 14
1311 fontName "Consolas" 684 fontName "Consolas"
1312 configuration "AutoFlippingLabel" 685 configuration "AutoFlippingLabel"
@@ -1316,8 +689,8 @@ graph
1316 ] 689 ]
1317 edge 690 edge
1318 [ 691 [
1319 source 3 692 source 5
1320 target 6 693 target 7
1321 graphics 694 graphics
1322 [ 695 [
1323 fill "#000000" 696 fill "#000000"
@@ -1326,7 +699,7 @@ graph
1326 ] 699 ]
1327 LabelGraphics 700 LabelGraphics
1328 [ 701 [
1329 text "rootElements reference FunctionalArchitectureModel" 702 text "data reference FunctionalInterface"
1330 fontSize 14 703 fontSize 14
1331 fontName "Consolas" 704 fontName "Consolas"
1332 configuration "AutoFlippingLabel" 705 configuration "AutoFlippingLabel"
@@ -1336,16 +709,17 @@ graph
1336 ] 709 ]
1337 edge 710 edge
1338 [ 711 [
1339 source 6 712 source 5
1340 target 0 713 target 8
1341 graphics 714 graphics
1342 [ 715 [
1343 fill "#000000" 716 fill "#000000"
717 width 3
1344 targetArrow "standard" 718 targetArrow "standard"
1345 ] 719 ]
1346 LabelGraphics 720 LabelGraphics
1347 [ 721 [
1348 text "type attribute Function" 722 text "data reference FunctionalInterface"
1349 fontSize 14 723 fontSize 14
1350 fontName "Consolas" 724 fontName "Consolas"
1351 configuration "AutoFlippingLabel" 725 configuration "AutoFlippingLabel"
@@ -1353,404 +727,108 @@ graph
1353 position "thead" 727 position "thead"
1354 ] 728 ]
1355 ] 729 ]
1356] 730 edge
1357graph 731 [
1358[ 732 source 8
1359 node 733 target 9
1360 [ 734 graphics
1361 id 0
1362 graphics
1363 [
1364 w 226.60000000000002
1365 h 40
1366 type "rectangle"
1367 fill "#FFFFFF"
1368 fill2 "#FFFFFF"
1369 outline "#000000"
1370 ]
1371 LabelGraphics
1372 [
1373 text "Root literal FunctionType"
1374 outline "#000000"
1375 fill "#FFFFFF"
1376 fontSize 16
1377 fontName "Monospace"
1378 autoSizePolicy "node_width"
1379 anchor "t"
1380 borderDistance 0.0
1381 ]
1382 LabelGraphics
1383 [
1384 text "
1385 FunctionType enum
1386 "
1387 fontSize 14
1388 fontName "Consolas"
1389 alignment "left"
1390 anchor "tl"
1391 borderDistance 6
1392 ]
1393 ]
1394
1395 node
1396 [ 735 [
1397 id 1 736 fill "#000000"
1398 graphics 737 targetArrow "standard"
1399 [
1400 w 297.0
1401 h 40
1402 type "rectangle"
1403 fill "#FFFFFF"
1404 fill2 "#FFFFFF"
1405 outline "#000000"
1406 ]
1407 LabelGraphics
1408 [
1409 text "Intermediate literal FunctionType"
1410 outline "#000000"
1411 fill "#FFFFFF"
1412 fontSize 16
1413 fontName "Monospace"
1414 autoSizePolicy "node_width"
1415 anchor "t"
1416 borderDistance 0.0
1417 ]
1418 LabelGraphics
1419 [
1420 text "
1421 FunctionType enum
1422 "
1423 fontSize 14
1424 fontName "Consolas"
1425 alignment "left"
1426 anchor "tl"
1427 borderDistance 6
1428 ]
1429 ] 738 ]
1430 739 LabelGraphics
1431 node
1432 [ 740 [
1433 id 2 741 text "IncomingLinks reference FunctionalInput"
1434 graphics 742 fontSize 14
1435 [ 743 fontName "Consolas"
1436 w 226.60000000000002 744 configuration "AutoFlippingLabel"
1437 h 40 745 model "six_pos"
1438 type "rectangle" 746 position "thead"
1439 fill "#FFFFFF"
1440 fill2 "#FFFFFF"
1441 outline "#000000"
1442 ]
1443 LabelGraphics
1444 [
1445 text "Leaf literal FunctionType"
1446 outline "#000000"
1447 fill "#FFFFFF"
1448 fontSize 16
1449 fontName "Monospace"
1450 autoSizePolicy "node_width"
1451 anchor "t"
1452 borderDistance 0.0
1453 ]
1454 LabelGraphics
1455 [
1456 text "
1457 FunctionType enum
1458 "
1459 fontSize 14
1460 fontName "Consolas"
1461 alignment "left"
1462 anchor "tl"
1463 borderDistance 6
1464 ]
1465 ] 747 ]
1466 748 ]
1467 node 749 edge
750 [
751 source 8
752 target 10
753 graphics
1468 [ 754 [
1469 id 3 755 fill "#000000"
1470 graphics 756 targetArrow "standard"
1471 [
1472 w 361.90000000000003
1473 h 54
1474 type "rectangle"
1475 fill "#FFFFFF"
1476 fill2 "#FFFFFF"
1477 outline "#000000"
1478 ]
1479 LabelGraphics
1480 [
1481 text "o 1"
1482 outline "#000000"
1483 fill "#FFFFFF"
1484 fontSize 16
1485 fontName "Monospace"
1486 autoSizePolicy "node_width"
1487 anchor "t"
1488 borderDistance 0.0
1489 ]
1490 LabelGraphics
1491 [
1492 text "
1493 FunctionalArchitectureModel class DefinedPart
1494 FunctionalArchitectureModel class
1495 "
1496 fontSize 14
1497 fontName "Consolas"
1498 alignment "left"
1499 anchor "tl"
1500 borderDistance 6
1501 ]
1502 ] 757 ]
1503 758 LabelGraphics
1504 node
1505 [ 759 [
1506 id 4 760 text "IncomingLinks reference FunctionalInput"
1507 graphics 761 fontSize 14
1508 [ 762 fontName "Consolas"
1509 w 41.800000000000004 763 configuration "AutoFlippingLabel"
1510 h 26 764 model "six_pos"
1511 type "rectangle" 765 position "thead"
1512 fill "#FFFFFF"
1513 fill2 "#FFFFFF"
1514 outline "#000000"
1515 ]
1516 LabelGraphics
1517 [
1518 text "true"
1519 outline "#000000"
1520 fill "#FFFFFF"
1521 fontSize 16
1522 fontName "Monospace"
1523 autoSizePolicy "node_width"
1524 anchor "t"
1525 borderDistance 0.0
1526 ]
1527 LabelGraphics
1528 [
1529 text "
1530 "
1531 fontSize 14
1532 fontName "Consolas"
1533 alignment "left"
1534 anchor "tl"
1535 borderDistance 6
1536 ]
1537 ] 766 ]
1538 767 ]
1539 node 768 edge
769 [
770 source 7
771 target 9
772 graphics
1540 [ 773 [
1541 id 5 774 fill "#000000"
1542 graphics 775 width 3
1543 [ 776 targetArrow "standard"
1544 w 50.6
1545 h 26
1546 type "rectangle"
1547 fill "#FFFFFF"
1548 fill2 "#FFFFFF"
1549 outline "#000000"
1550 ]
1551 LabelGraphics
1552 [
1553 text "false"
1554 outline "#000000"
1555 fill "#FFFFFF"
1556 fontSize 16
1557 fontName "Monospace"
1558 autoSizePolicy "node_width"
1559 anchor "t"
1560 borderDistance 0.0
1561 ]
1562 LabelGraphics
1563 [
1564 text "
1565 "
1566 fontSize 14
1567 fontName "Consolas"
1568 alignment "left"
1569 anchor "tl"
1570 borderDistance 6
1571 ]
1572 ] 777 ]
1573 778 LabelGraphics
1574 node
1575 [ 779 [
1576 id 6 780 text "outgoingLinks reference FunctionalOutput"
1577 graphics 781 fontSize 14
1578 [ 782 fontName "Consolas"
1579 w 192.50000000000003 783 configuration "AutoFlippingLabel"
1580 h 54 784 model "six_pos"
1581 type "rectangle" 785 position "thead"
1582 fill "#FFFFFF"
1583 fill2 "#FFFFFF"
1584 outline "#000000"
1585 ]
1586 LabelGraphics
1587 [
1588 text "null"
1589 outline "#000000"
1590 fill "#FFFFFF"
1591 fontSize 16
1592 fontName "Monospace"
1593 autoSizePolicy "node_width"
1594 anchor "t"
1595 borderDistance 0.0
1596 ]
1597 LabelGraphics
1598 [
1599 text "
1600 FunctionalElement class
1601 Function class
1602 "
1603 fontSize 14
1604 fontName "Consolas"
1605 alignment "left"
1606 anchor "tl"
1607 borderDistance 6
1608 ]
1609 ] 786 ]
1610 787 ]
1611 node 788 edge
789 [
790 source 7
791 target 10
792 graphics
1612 [ 793 [
1613 id 7 794 fill "#000000"
1614 graphics 795 width 3
1615 [ 796 targetArrow "standard"
1616 w 112.2
1617 h 26
1618 type "rectangle"
1619 fill "#FFFFFF"
1620 fill2 "#FFFFFF"
1621 outline "#000000"
1622 ]
1623 LabelGraphics
1624 [
1625 text "New Integers"
1626 outline "#000000"
1627 fill "#FFFFFF"
1628 fontSize 16
1629 fontName "Monospace"
1630 autoSizePolicy "node_width"
1631 anchor "t"
1632 borderDistance 0.0
1633 ]
1634 LabelGraphics
1635 [
1636 text "
1637 "
1638 fontSize 14
1639 fontName "Consolas"
1640 alignment "left"
1641 anchor "tl"
1642 borderDistance 6
1643 ]
1644 ] 797 ]
1645 798 LabelGraphics
1646 node
1647 [ 799 [
1648 id 8 800 text "outgoingLinks reference FunctionalOutput"
1649 graphics 801 fontSize 14
1650 [ 802 fontName "Consolas"
1651 w 85.80000000000001 803 configuration "AutoFlippingLabel"
1652 h 26 804 model "six_pos"
1653 type "rectangle" 805 position "thead"
1654 fill "#FFFFFF"
1655 fill2 "#FFFFFF"
1656 outline "#000000"
1657 ]
1658 LabelGraphics
1659 [
1660 text "New Reals"
1661 outline "#000000"
1662 fill "#FFFFFF"
1663 fontSize 16
1664 fontName "Monospace"
1665 autoSizePolicy "node_width"
1666 anchor "t"
1667 borderDistance 0.0
1668 ]
1669 LabelGraphics
1670 [
1671 text "
1672 "
1673 fontSize 14
1674 fontName "Consolas"
1675 alignment "left"
1676 anchor "tl"
1677 borderDistance 6
1678 ]
1679 ] 806 ]
1680 807 ]
1681 node 808 edge
809 [
810 source 6
811 target 11
812 graphics
1682 [ 813 [
1683 id 9 814 fill "#000000"
1684 graphics 815 width 3
1685 [ 816 targetArrow "standard"
1686 w 103.4
1687 h 26
1688 type "rectangle"
1689 fill "#FFFFFF"
1690 fill2 "#FFFFFF"
1691 outline "#000000"
1692 ]
1693 LabelGraphics
1694 [
1695 text "New Strings"
1696 outline "#000000"
1697 fill "#FFFFFF"
1698 fontSize 16
1699 fontName "Monospace"
1700 autoSizePolicy "node_width"
1701 anchor "t"
1702 borderDistance 0.0
1703 ]
1704 LabelGraphics
1705 [
1706 text "
1707 "
1708 fontSize 14
1709 fontName "Consolas"
1710 alignment "left"
1711 anchor "tl"
1712 borderDistance 6
1713 ]
1714 ] 817 ]
1715 818 LabelGraphics
1716 node
1717 [ 819 [
1718 id 10 820 text "terminator reference FunctionalData"
1719 graphics 821 fontSize 14
1720 [ 822 fontName "Consolas"
1721 w 103.4 823 configuration "AutoFlippingLabel"
1722 h 26 824 model "six_pos"
1723 type "rectangle" 825 position "thead"
1724 fill "#FFFFFF"
1725 fill2 "#FFFFFF"
1726 outline "#000000"
1727 ]
1728 LabelGraphics
1729 [
1730 text "New Objects"
1731 outline "#000000"
1732 fill "#FFFFFF"
1733 fontSize 16
1734 fontName "Monospace"
1735 autoSizePolicy "node_width"
1736 anchor "t"
1737 borderDistance 0.0
1738 ]
1739 LabelGraphics
1740 [
1741 text "
1742 "
1743 fontSize 14
1744 fontName "Consolas"
1745 alignment "left"
1746 anchor "tl"
1747 borderDistance 6
1748 ]
1749 ] 826 ]
827 ]
1750 edge 828 edge
1751 [ 829 [
1752 source 6 830 source 6
1753 target 3 831 target 5
1754 graphics 832 graphics
1755 [ 833 [
1756 fill "#000000" 834 fill "#000000"
@@ -1758,7 +836,7 @@ graph
1758 ] 836 ]
1759 LabelGraphics 837 LabelGraphics
1760 [ 838 [
1761 text "model reference FunctionalElement" 839 text "interface reference FunctionalData"
1762 fontSize 14 840 fontSize 14
1763 fontName "Consolas" 841 fontName "Consolas"
1764 configuration "AutoFlippingLabel" 842 configuration "AutoFlippingLabel"
@@ -1768,17 +846,16 @@ graph
1768 ] 846 ]
1769 edge 847 edge
1770 [ 848 [
1771 source 3 849 source 7
1772 target 6 850 target 5
1773 graphics 851 graphics
1774 [ 852 [
1775 fill "#000000" 853 fill "#000000"
1776 width 3
1777 targetArrow "standard" 854 targetArrow "standard"
1778 ] 855 ]
1779 LabelGraphics 856 LabelGraphics
1780 [ 857 [
1781 text "rootElements reference FunctionalArchitectureModel" 858 text "interface reference FunctionalData"
1782 fontSize 14 859 fontSize 14
1783 fontName "Consolas" 860 fontName "Consolas"
1784 configuration "AutoFlippingLabel" 861 configuration "AutoFlippingLabel"
@@ -1788,8 +865,8 @@ graph
1788 ] 865 ]
1789 edge 866 edge
1790 [ 867 [
1791 source 6 868 source 8
1792 target 2 869 target 5
1793 graphics 870 graphics
1794 [ 871 [
1795 fill "#000000" 872 fill "#000000"
@@ -1797,7 +874,7 @@ graph
1797 ] 874 ]
1798 LabelGraphics 875 LabelGraphics
1799 [ 876 [
1800 text "type attribute Function" 877 text "interface reference FunctionalData"
1801 fontSize 14 878 fontSize 14
1802 fontName "Consolas" 879 fontName "Consolas"
1803 configuration "AutoFlippingLabel" 880 configuration "AutoFlippingLabel"
@@ -1921,8 +998,8 @@ graph
1921 id 3 998 id 3
1922 graphics 999 graphics
1923 [ 1000 [
1924 w 361.90000000000003 1001 w 41.800000000000004
1925 h 54 1002 h 26
1926 type "rectangle" 1003 type "rectangle"
1927 fill "#FFFFFF" 1004 fill "#FFFFFF"
1928 fill2 "#FFFFFF" 1005 fill2 "#FFFFFF"
@@ -1930,7 +1007,7 @@ graph
1930 ] 1007 ]
1931 LabelGraphics 1008 LabelGraphics
1932 [ 1009 [
1933 text "o 1" 1010 text "true"
1934 outline "#000000" 1011 outline "#000000"
1935 fill "#FFFFFF" 1012 fill "#FFFFFF"
1936 fontSize 16 1013 fontSize 16
@@ -1942,8 +1019,6 @@ graph
1942 LabelGraphics 1019 LabelGraphics
1943 [ 1020 [
1944 text " 1021 text "
1945 FunctionalArchitectureModel class DefinedPart
1946 FunctionalArchitectureModel class
1947 " 1022 "
1948 fontSize 14 1023 fontSize 14
1949 fontName "Consolas" 1024 fontName "Consolas"
@@ -1958,7 +1033,7 @@ graph
1958 id 4 1033 id 4
1959 graphics 1034 graphics
1960 [ 1035 [
1961 w 41.800000000000004 1036 w 50.6
1962 h 26 1037 h 26
1963 type "rectangle" 1038 type "rectangle"
1964 fill "#FFFFFF" 1039 fill "#FFFFFF"
@@ -1967,7 +1042,7 @@ graph
1967 ] 1042 ]
1968 LabelGraphics 1043 LabelGraphics
1969 [ 1044 [
1970 text "true" 1045 text "false"
1971 outline "#000000" 1046 outline "#000000"
1972 fill "#FFFFFF" 1047 fill "#FFFFFF"
1973 fontSize 16 1048 fontSize 16
@@ -1993,8 +1068,8 @@ graph
1993 id 5 1068 id 5
1994 graphics 1069 graphics
1995 [ 1070 [
1996 w 50.6 1071 w 207.9
1997 h 26 1072 h 40
1998 type "rectangle" 1073 type "rectangle"
1999 fill "#FFFFFF" 1074 fill "#FFFFFF"
2000 fill2 "#FFFFFF" 1075 fill2 "#FFFFFF"
@@ -2002,7 +1077,7 @@ graph
2002 ] 1077 ]
2003 LabelGraphics 1078 LabelGraphics
2004 [ 1079 [
2005 text "false" 1080 text "null"
2006 outline "#000000" 1081 outline "#000000"
2007 fill "#FFFFFF" 1082 fill "#FFFFFF"
2008 fontSize 16 1083 fontSize 16
@@ -2014,6 +1089,7 @@ graph
2014 LabelGraphics 1089 LabelGraphics
2015 [ 1090 [
2016 text " 1091 text "
1092 FunctionalInterface class
2017 " 1093 "
2018 fontSize 14 1094 fontSize 14
2019 fontName "Consolas" 1095 fontName "Consolas"
@@ -2028,7 +1104,7 @@ graph
2028 id 6 1104 id 6
2029 graphics 1105 graphics
2030 [ 1106 [
2031 w 192.50000000000003 1107 w 184.8
2032 h 54 1108 h 54
2033 type "rectangle" 1109 type "rectangle"
2034 fill "#FFFFFF" 1110 fill "#FFFFFF"
@@ -2049,8 +1125,8 @@ graph
2049 LabelGraphics 1125 LabelGraphics
2050 [ 1126 [
2051 text " 1127 text "
2052 FunctionalElement class 1128 FunctionalOutput class
2053 Function class 1129 FunctionalData class
2054 " 1130 "
2055 fontSize 14 1131 fontSize 14
2056 fontName "Consolas" 1132 fontName "Consolas"
@@ -2065,8 +1141,8 @@ graph
2065 id 7 1141 id 7
2066 graphics 1142 graphics
2067 [ 1143 [
2068 w 112.2 1144 w 177.10000000000002
2069 h 26 1145 h 40
2070 type "rectangle" 1146 type "rectangle"
2071 fill "#FFFFFF" 1147 fill "#FFFFFF"
2072 fill2 "#FFFFFF" 1148 fill2 "#FFFFFF"
@@ -2074,7 +1150,7 @@ graph
2074 ] 1150 ]
2075 LabelGraphics 1151 LabelGraphics
2076 [ 1152 [
2077 text "New Integers" 1153 text "null"
2078 outline "#000000" 1154 outline "#000000"
2079 fill "#FFFFFF" 1155 fill "#FFFFFF"
2080 fontSize 16 1156 fontSize 16
@@ -2086,6 +1162,7 @@ graph
2086 LabelGraphics 1162 LabelGraphics
2087 [ 1163 [
2088 text " 1164 text "
1165 InformationLink class
2089 " 1166 "
2090 fontSize 14 1167 fontSize 14
2091 fontName "Consolas" 1168 fontName "Consolas"
@@ -2100,8 +1177,8 @@ graph
2100 id 8 1177 id 8
2101 graphics 1178 graphics
2102 [ 1179 [
2103 w 85.80000000000001 1180 w 177.10000000000002
2104 h 26 1181 h 40
2105 type "rectangle" 1182 type "rectangle"
2106 fill "#FFFFFF" 1183 fill "#FFFFFF"
2107 fill2 "#FFFFFF" 1184 fill2 "#FFFFFF"
@@ -2109,7 +1186,7 @@ graph
2109 ] 1186 ]
2110 LabelGraphics 1187 LabelGraphics
2111 [ 1188 [
2112 text "New Reals" 1189 text "null"
2113 outline "#000000" 1190 outline "#000000"
2114 fill "#FFFFFF" 1191 fill "#FFFFFF"
2115 fontSize 16 1192 fontSize 16
@@ -2121,6 +1198,7 @@ graph
2121 LabelGraphics 1198 LabelGraphics
2122 [ 1199 [
2123 text " 1200 text "
1201 InformationLink class
2124 " 1202 "
2125 fontSize 14 1203 fontSize 14
2126 fontName "Consolas" 1204 fontName "Consolas"
@@ -2135,8 +1213,8 @@ graph
2135 id 9 1213 id 9
2136 graphics 1214 graphics
2137 [ 1215 [
2138 w 103.4 1216 w 177.10000000000002
2139 h 26 1217 h 54
2140 type "rectangle" 1218 type "rectangle"
2141 fill "#FFFFFF" 1219 fill "#FFFFFF"
2142 fill2 "#FFFFFF" 1220 fill2 "#FFFFFF"
@@ -2144,7 +1222,7 @@ graph
2144 ] 1222 ]
2145 LabelGraphics 1223 LabelGraphics
2146 [ 1224 [
2147 text "New Strings" 1225 text "null"
2148 outline "#000000" 1226 outline "#000000"
2149 fill "#FFFFFF" 1227 fill "#FFFFFF"
2150 fontSize 16 1228 fontSize 16
@@ -2156,6 +1234,8 @@ graph
2156 LabelGraphics 1234 LabelGraphics
2157 [ 1235 [
2158 text " 1236 text "
1237 FunctionalInput class
1238 FunctionalData class
2159 " 1239 "
2160 fontSize 14 1240 fontSize 14
2161 fontName "Consolas" 1241 fontName "Consolas"
@@ -2170,210 +1250,7 @@ graph
2170 id 10 1250 id 10
2171 graphics 1251 graphics
2172 [ 1252 [
2173 w 103.4 1253 w 184.8
2174 h 26
2175 type "rectangle"
2176 fill "#FFFFFF"
2177 fill2 "#FFFFFF"
2178 outline "#000000"
2179 ]
2180 LabelGraphics
2181 [
2182 text "New Objects"
2183 outline "#000000"
2184 fill "#FFFFFF"
2185 fontSize 16
2186 fontName "Monospace"
2187 autoSizePolicy "node_width"
2188 anchor "t"
2189 borderDistance 0.0
2190 ]
2191 LabelGraphics
2192 [
2193 text "
2194 "
2195 fontSize 14
2196 fontName "Consolas"
2197 alignment "left"
2198 anchor "tl"
2199 borderDistance 6
2200 ]
2201 ]
2202 edge
2203 [
2204 source 6
2205 target 3
2206 graphics
2207 [
2208 fill "#000000"
2209 targetArrow "standard"
2210 ]
2211 LabelGraphics
2212 [
2213 text "model reference FunctionalElement"
2214 fontSize 14
2215 fontName "Consolas"
2216 configuration "AutoFlippingLabel"
2217 model "six_pos"
2218 position "thead"
2219 ]
2220 ]
2221 edge
2222 [
2223 source 3
2224 target 6
2225 graphics
2226 [
2227 fill "#000000"
2228 width 3
2229 targetArrow "standard"
2230 ]
2231 LabelGraphics
2232 [
2233 text "rootElements reference FunctionalArchitectureModel"
2234 fontSize 14
2235 fontName "Consolas"
2236 configuration "AutoFlippingLabel"
2237 model "six_pos"
2238 position "thead"
2239 ]
2240 ]
2241 edge
2242 [
2243 source 6
2244 target 1
2245 graphics
2246 [
2247 fill "#000000"
2248 targetArrow "standard"
2249 ]
2250 LabelGraphics
2251 [
2252 text "type attribute Function"
2253 fontSize 14
2254 fontName "Consolas"
2255 configuration "AutoFlippingLabel"
2256 model "six_pos"
2257 position "thead"
2258 ]
2259 ]
2260]
2261graph
2262[
2263 node
2264 [
2265 id 0
2266 graphics
2267 [
2268 w 226.60000000000002
2269 h 40
2270 type "rectangle"
2271 fill "#FFFFFF"
2272 fill2 "#FFFFFF"
2273 outline "#000000"
2274 ]
2275 LabelGraphics
2276 [
2277 text "Root literal FunctionType"
2278 outline "#000000"
2279 fill "#FFFFFF"
2280 fontSize 16
2281 fontName "Monospace"
2282 autoSizePolicy "node_width"
2283 anchor "t"
2284 borderDistance 0.0
2285 ]
2286 LabelGraphics
2287 [
2288 text "
2289 FunctionType enum
2290 "
2291 fontSize 14
2292 fontName "Consolas"
2293 alignment "left"
2294 anchor "tl"
2295 borderDistance 6
2296 ]
2297 ]
2298
2299 node
2300 [
2301 id 1
2302 graphics
2303 [
2304 w 297.0
2305 h 40
2306 type "rectangle"
2307 fill "#FFFFFF"
2308 fill2 "#FFFFFF"
2309 outline "#000000"
2310 ]
2311 LabelGraphics
2312 [
2313 text "Intermediate literal FunctionType"
2314 outline "#000000"
2315 fill "#FFFFFF"
2316 fontSize 16
2317 fontName "Monospace"
2318 autoSizePolicy "node_width"
2319 anchor "t"
2320 borderDistance 0.0
2321 ]
2322 LabelGraphics
2323 [
2324 text "
2325 FunctionType enum
2326 "
2327 fontSize 14
2328 fontName "Consolas"
2329 alignment "left"
2330 anchor "tl"
2331 borderDistance 6
2332 ]
2333 ]
2334
2335 node
2336 [
2337 id 2
2338 graphics
2339 [
2340 w 226.60000000000002
2341 h 40
2342 type "rectangle"
2343 fill "#FFFFFF"
2344 fill2 "#FFFFFF"
2345 outline "#000000"
2346 ]
2347 LabelGraphics
2348 [
2349 text "Leaf literal FunctionType"
2350 outline "#000000"
2351 fill "#FFFFFF"
2352 fontSize 16
2353 fontName "Monospace"
2354 autoSizePolicy "node_width"
2355 anchor "t"
2356 borderDistance 0.0
2357 ]
2358 LabelGraphics
2359 [
2360 text "
2361 FunctionType enum
2362 "
2363 fontSize 14
2364 fontName "Consolas"
2365 alignment "left"
2366 anchor "tl"
2367 borderDistance 6
2368 ]
2369 ]
2370
2371 node
2372 [
2373 id 3
2374 graphics
2375 [
2376 w 361.90000000000003
2377 h 54 1254 h 54
2378 type "rectangle" 1255 type "rectangle"
2379 fill "#FFFFFF" 1256 fill "#FFFFFF"
@@ -2382,79 +1259,7 @@ graph
2382 ] 1259 ]
2383 LabelGraphics 1260 LabelGraphics
2384 [ 1261 [
2385 text "o 1" 1262 text "null"
2386 outline "#000000"
2387 fill "#FFFFFF"
2388 fontSize 16
2389 fontName "Monospace"
2390 autoSizePolicy "node_width"
2391 anchor "t"
2392 borderDistance 0.0
2393 ]
2394 LabelGraphics
2395 [
2396 text "
2397 FunctionalArchitectureModel class DefinedPart
2398 FunctionalArchitectureModel class
2399 "
2400 fontSize 14
2401 fontName "Consolas"
2402 alignment "left"
2403 anchor "tl"
2404 borderDistance 6
2405 ]
2406 ]
2407
2408 node
2409 [
2410 id 4
2411 graphics
2412 [
2413 w 41.800000000000004
2414 h 26
2415 type "rectangle"
2416 fill "#FFFFFF"
2417 fill2 "#FFFFFF"
2418 outline "#000000"
2419 ]
2420 LabelGraphics
2421 [
2422 text "true"
2423 outline "#000000"
2424 fill "#FFFFFF"
2425 fontSize 16
2426 fontName "Monospace"
2427 autoSizePolicy "node_width"
2428 anchor "t"
2429 borderDistance 0.0
2430 ]
2431 LabelGraphics
2432 [
2433 text "
2434 "
2435 fontSize 14
2436 fontName "Consolas"
2437 alignment "left"
2438 anchor "tl"
2439 borderDistance 6
2440 ]
2441 ]
2442
2443 node
2444 [
2445 id 5
2446 graphics
2447 [
2448 w 50.6
2449 h 26
2450 type "rectangle"
2451 fill "#FFFFFF"
2452 fill2 "#FFFFFF"
2453 outline "#000000"
2454 ]
2455 LabelGraphics
2456 [
2457 text "false"
2458 outline "#000000" 1263 outline "#000000"
2459 fill "#FFFFFF" 1264 fill "#FFFFFF"
2460 fontSize 16 1265 fontSize 16
@@ -2466,6 +1271,8 @@ graph
2466 LabelGraphics 1271 LabelGraphics
2467 [ 1272 [
2468 text " 1273 text "
1274 FunctionalOutput class
1275 FunctionalData class
2469 " 1276 "
2470 fontSize 14 1277 fontSize 14
2471 fontName "Consolas" 1278 fontName "Consolas"
@@ -2477,11 +1284,11 @@ graph
2477 1284
2478 node 1285 node
2479 [ 1286 [
2480 id 6 1287 id 11
2481 graphics 1288 graphics
2482 [ 1289 [
2483 w 192.50000000000003 1290 w 161.70000000000002
2484 h 54 1291 h 40
2485 type "rectangle" 1292 type "rectangle"
2486 fill "#FFFFFF" 1293 fill "#FFFFFF"
2487 fill2 "#FFFFFF" 1294 fill2 "#FFFFFF"
@@ -2501,8 +1308,7 @@ graph
2501 LabelGraphics 1308 LabelGraphics
2502 [ 1309 [
2503 text " 1310 text "
2504 FunctionalElement class 1311 FAMTerminator class
2505 Function class
2506 " 1312 "
2507 fontSize 14 1313 fontSize 14
2508 fontName "Consolas" 1314 fontName "Consolas"
@@ -2514,7 +1320,7 @@ graph
2514 1320
2515 node 1321 node
2516 [ 1322 [
2517 id 7 1323 id 12
2518 graphics 1324 graphics
2519 [ 1325 [
2520 w 112.2 1326 w 112.2
@@ -2549,7 +1355,7 @@ graph
2549 1355
2550 node 1356 node
2551 [ 1357 [
2552 id 8 1358 id 13
2553 graphics 1359 graphics
2554 [ 1360 [
2555 w 85.80000000000001 1361 w 85.80000000000001
@@ -2584,7 +1390,7 @@ graph
2584 1390
2585 node 1391 node
2586 [ 1392 [
2587 id 9 1393 id 14
2588 graphics 1394 graphics
2589 [ 1395 [
2590 w 103.4 1396 w 103.4
@@ -2619,7 +1425,7 @@ graph
2619 1425
2620 node 1426 node
2621 [ 1427 [
2622 id 10 1428 id 15
2623 graphics 1429 graphics
2624 [ 1430 [
2625 w 103.4 1431 w 103.4
@@ -2653,8 +1459,8 @@ graph
2653 ] 1459 ]
2654 edge 1460 edge
2655 [ 1461 [
2656 source 6 1462 source 11
2657 target 3 1463 target 6
2658 graphics 1464 graphics
2659 [ 1465 [
2660 fill "#000000" 1466 fill "#000000"
@@ -2662,7 +1468,7 @@ graph
2662 ] 1468 ]
2663 LabelGraphics 1469 LabelGraphics
2664 [ 1470 [
2665 text "model reference FunctionalElement" 1471 text "data reference FAMTerminator"
2666 fontSize 14 1472 fontSize 14
2667 fontName "Consolas" 1473 fontName "Consolas"
2668 configuration "AutoFlippingLabel" 1474 configuration "AutoFlippingLabel"
@@ -2672,17 +1478,16 @@ graph
2672 ] 1478 ]
2673 edge 1479 edge
2674 [ 1480 [
2675 source 3 1481 source 7
2676 target 6 1482 target 6
2677 graphics 1483 graphics
2678 [ 1484 [
2679 fill "#000000" 1485 fill "#000000"
2680 width 3
2681 targetArrow "standard" 1486 targetArrow "standard"
2682 ] 1487 ]
2683 LabelGraphics 1488 LabelGraphics
2684 [ 1489 [
2685 text "rootElements reference FunctionalArchitectureModel" 1490 text "from reference InformationLink"
2686 fontSize 14 1491 fontSize 14
2687 fontName "Consolas" 1492 fontName "Consolas"
2688 configuration "AutoFlippingLabel" 1493 configuration "AutoFlippingLabel"
@@ -2692,8 +1497,8 @@ graph
2692 ] 1497 ]
2693 edge 1498 edge
2694 [ 1499 [
2695 source 6 1500 source 8
2696 target 2 1501 target 6
2697 graphics 1502 graphics
2698 [ 1503 [
2699 fill "#000000" 1504 fill "#000000"
@@ -2701,7 +1506,7 @@ graph
2701 ] 1506 ]
2702 LabelGraphics 1507 LabelGraphics
2703 [ 1508 [
2704 text "type attribute Function" 1509 text "from reference InformationLink"
2705 fontSize 14 1510 fontSize 14
2706 fontName "Consolas" 1511 fontName "Consolas"
2707 configuration "AutoFlippingLabel" 1512 configuration "AutoFlippingLabel"
@@ -2709,412 +1514,57 @@ graph
2709 position "thead" 1514 position "thead"
2710 ] 1515 ]
2711 ] 1516 ]
2712] 1517 edge
2713graph 1518 [
2714[ 1519 source 7
2715 node 1520 target 9
2716 [ 1521 graphics
2717 id 0
2718 graphics
2719 [
2720 w 226.60000000000002
2721 h 40
2722 type "rectangle"
2723 fill "#FFFFFF"
2724 fill2 "#FFFFFF"
2725 outline "#000000"
2726 ]
2727 LabelGraphics
2728 [
2729 text "Root literal FunctionType"
2730 outline "#000000"
2731 fill "#FFFFFF"
2732 fontSize 16
2733 fontName "Monospace"
2734 autoSizePolicy "node_width"
2735 anchor "t"
2736 borderDistance 0.0
2737 ]
2738 LabelGraphics
2739 [
2740 text "
2741 FunctionType enum
2742 "
2743 fontSize 14
2744 fontName "Consolas"
2745 alignment "left"
2746 anchor "tl"
2747 borderDistance 6
2748 ]
2749 ]
2750
2751 node
2752 [
2753 id 1
2754 graphics
2755 [
2756 w 297.0
2757 h 40
2758 type "rectangle"
2759 fill "#FFFFFF"
2760 fill2 "#FFFFFF"
2761 outline "#000000"
2762 ]
2763 LabelGraphics
2764 [
2765 text "Intermediate literal FunctionType"
2766 outline "#000000"
2767 fill "#FFFFFF"
2768 fontSize 16
2769 fontName "Monospace"
2770 autoSizePolicy "node_width"
2771 anchor "t"
2772 borderDistance 0.0
2773 ]
2774 LabelGraphics
2775 [
2776 text "
2777 FunctionType enum
2778 "
2779 fontSize 14
2780 fontName "Consolas"
2781 alignment "left"
2782 anchor "tl"
2783 borderDistance 6
2784 ]
2785 ]
2786
2787 node
2788 [
2789 id 2
2790 graphics
2791 [
2792 w 226.60000000000002
2793 h 40
2794 type "rectangle"
2795 fill "#FFFFFF"
2796 fill2 "#FFFFFF"
2797 outline "#000000"
2798 ]
2799 LabelGraphics
2800 [
2801 text "Leaf literal FunctionType"
2802 outline "#000000"
2803 fill "#FFFFFF"
2804 fontSize 16
2805 fontName "Monospace"
2806 autoSizePolicy "node_width"
2807 anchor "t"
2808 borderDistance 0.0
2809 ]
2810 LabelGraphics
2811 [
2812 text "
2813 FunctionType enum
2814 "
2815 fontSize 14
2816 fontName "Consolas"
2817 alignment "left"
2818 anchor "tl"
2819 borderDistance 6
2820 ]
2821 ]
2822
2823 node
2824 [
2825 id 3
2826 graphics
2827 [
2828 w 361.90000000000003
2829 h 54
2830 type "rectangle"
2831 fill "#FFFFFF"
2832 fill2 "#FFFFFF"
2833 outline "#000000"
2834 ]
2835 LabelGraphics
2836 [
2837 text "o 1"
2838 outline "#000000"
2839 fill "#FFFFFF"
2840 fontSize 16
2841 fontName "Monospace"
2842 autoSizePolicy "node_width"
2843 anchor "t"
2844 borderDistance 0.0
2845 ]
2846 LabelGraphics
2847 [
2848 text "
2849 FunctionalArchitectureModel class DefinedPart
2850 FunctionalArchitectureModel class
2851 "
2852 fontSize 14
2853 fontName "Consolas"
2854 alignment "left"
2855 anchor "tl"
2856 borderDistance 6
2857 ]
2858 ]
2859
2860 node
2861 [
2862 id 4
2863 graphics
2864 [
2865 w 41.800000000000004
2866 h 26
2867 type "rectangle"
2868 fill "#FFFFFF"
2869 fill2 "#FFFFFF"
2870 outline "#000000"
2871 ]
2872 LabelGraphics
2873 [
2874 text "true"
2875 outline "#000000"
2876 fill "#FFFFFF"
2877 fontSize 16
2878 fontName "Monospace"
2879 autoSizePolicy "node_width"
2880 anchor "t"
2881 borderDistance 0.0
2882 ]
2883 LabelGraphics
2884 [
2885 text "
2886 "
2887 fontSize 14
2888 fontName "Consolas"
2889 alignment "left"
2890 anchor "tl"
2891 borderDistance 6
2892 ]
2893 ]
2894
2895 node
2896 [
2897 id 5
2898 graphics
2899 [
2900 w 50.6
2901 h 26
2902 type "rectangle"
2903 fill "#FFFFFF"
2904 fill2 "#FFFFFF"
2905 outline "#000000"
2906 ]
2907 LabelGraphics
2908 [
2909 text "false"
2910 outline "#000000"
2911 fill "#FFFFFF"
2912 fontSize 16
2913 fontName "Monospace"
2914 autoSizePolicy "node_width"
2915 anchor "t"
2916 borderDistance 0.0
2917 ]
2918 LabelGraphics
2919 [
2920 text "
2921 "
2922 fontSize 14
2923 fontName "Consolas"
2924 alignment "left"
2925 anchor "tl"
2926 borderDistance 6
2927 ]
2928 ]
2929
2930 node
2931 [
2932 id 6
2933 graphics
2934 [
2935 w 192.50000000000003
2936 h 54
2937 type "rectangle"
2938 fill "#FFFFFF"
2939 fill2 "#FFFFFF"
2940 outline "#000000"
2941 ]
2942 LabelGraphics
2943 [
2944 text "null"
2945 outline "#000000"
2946 fill "#FFFFFF"
2947 fontSize 16
2948 fontName "Monospace"
2949 autoSizePolicy "node_width"
2950 anchor "t"
2951 borderDistance 0.0
2952 ]
2953 LabelGraphics
2954 [
2955 text "
2956 FunctionalElement class
2957 Function class
2958 "
2959 fontSize 14
2960 fontName "Consolas"
2961 alignment "left"
2962 anchor "tl"
2963 borderDistance 6
2964 ]
2965 ]
2966
2967 node
2968 [ 1522 [
2969 id 7 1523 fill "#000000"
2970 graphics 1524 targetArrow "standard"
2971 [
2972 w 112.2
2973 h 26
2974 type "rectangle"
2975 fill "#FFFFFF"
2976 fill2 "#FFFFFF"
2977 outline "#000000"
2978 ]
2979 LabelGraphics
2980 [
2981 text "New Integers"
2982 outline "#000000"
2983 fill "#FFFFFF"
2984 fontSize 16
2985 fontName "Monospace"
2986 autoSizePolicy "node_width"
2987 anchor "t"
2988 borderDistance 0.0
2989 ]
2990 LabelGraphics
2991 [
2992 text "
2993 "
2994 fontSize 14
2995 fontName "Consolas"
2996 alignment "left"
2997 anchor "tl"
2998 borderDistance 6
2999 ]
3000 ] 1525 ]
3001 1526 LabelGraphics
3002 node
3003 [ 1527 [
3004 id 8 1528 text "to reference InformationLink"
3005 graphics 1529 fontSize 14
3006 [ 1530 fontName "Consolas"
3007 w 85.80000000000001 1531 configuration "AutoFlippingLabel"
3008 h 26 1532 model "six_pos"
3009 type "rectangle" 1533 position "thead"
3010 fill "#FFFFFF"
3011 fill2 "#FFFFFF"
3012 outline "#000000"
3013 ]
3014 LabelGraphics
3015 [
3016 text "New Reals"
3017 outline "#000000"
3018 fill "#FFFFFF"
3019 fontSize 16
3020 fontName "Monospace"
3021 autoSizePolicy "node_width"
3022 anchor "t"
3023 borderDistance 0.0
3024 ]
3025 LabelGraphics
3026 [
3027 text "
3028 "
3029 fontSize 14
3030 fontName "Consolas"
3031 alignment "left"
3032 anchor "tl"
3033 borderDistance 6
3034 ]
3035 ] 1534 ]
3036 1535 ]
3037 node 1536 edge
1537 [
1538 source 8
1539 target 9
1540 graphics
3038 [ 1541 [
3039 id 9 1542 fill "#000000"
3040 graphics 1543 targetArrow "standard"
3041 [
3042 w 103.4
3043 h 26
3044 type "rectangle"
3045 fill "#FFFFFF"
3046 fill2 "#FFFFFF"
3047 outline "#000000"
3048 ]
3049 LabelGraphics
3050 [
3051 text "New Strings"
3052 outline "#000000"
3053 fill "#FFFFFF"
3054 fontSize 16
3055 fontName "Monospace"
3056 autoSizePolicy "node_width"
3057 anchor "t"
3058 borderDistance 0.0
3059 ]
3060 LabelGraphics
3061 [
3062 text "
3063 "
3064 fontSize 14
3065 fontName "Consolas"
3066 alignment "left"
3067 anchor "tl"
3068 borderDistance 6
3069 ]
3070 ] 1544 ]
3071 1545 LabelGraphics
3072 node
3073 [ 1546 [
3074 id 10 1547 text "to reference InformationLink"
3075 graphics 1548 fontSize 14
3076 [ 1549 fontName "Consolas"
3077 w 103.4 1550 configuration "AutoFlippingLabel"
3078 h 26 1551 model "six_pos"
3079 type "rectangle" 1552 position "thead"
3080 fill "#FFFFFF"
3081 fill2 "#FFFFFF"
3082 outline "#000000"
3083 ]
3084 LabelGraphics
3085 [
3086 text "New Objects"
3087 outline "#000000"
3088 fill "#FFFFFF"
3089 fontSize 16
3090 fontName "Monospace"
3091 autoSizePolicy "node_width"
3092 anchor "t"
3093 borderDistance 0.0
3094 ]
3095 LabelGraphics
3096 [
3097 text "
3098 "
3099 fontSize 14
3100 fontName "Consolas"
3101 alignment "left"
3102 anchor "tl"
3103 borderDistance 6
3104 ]
3105 ] 1553 ]
1554 ]
3106 edge 1555 edge
3107 [ 1556 [
3108 source 6 1557 source 5
3109 target 3 1558 target 6
3110 graphics 1559 graphics
3111 [ 1560 [
3112 fill "#000000" 1561 fill "#000000"
1562 width 3
3113 targetArrow "standard" 1563 targetArrow "standard"
3114 ] 1564 ]
3115 LabelGraphics 1565 LabelGraphics
3116 [ 1566 [
3117 text "model reference FunctionalElement" 1567 text "data reference FunctionalInterface"
3118 fontSize 14 1568 fontSize 14
3119 fontName "Consolas" 1569 fontName "Consolas"
3120 configuration "AutoFlippingLabel" 1570 configuration "AutoFlippingLabel"
@@ -3124,8 +1574,8 @@ graph
3124 ] 1574 ]
3125 edge 1575 edge
3126 [ 1576 [
3127 source 3 1577 source 5
3128 target 6 1578 target 9
3129 graphics 1579 graphics
3130 [ 1580 [
3131 fill "#000000" 1581 fill "#000000"
@@ -3134,7 +1584,7 @@ graph
3134 ] 1584 ]
3135 LabelGraphics 1585 LabelGraphics
3136 [ 1586 [
3137 text "rootElements reference FunctionalArchitectureModel" 1587 text "data reference FunctionalInterface"
3138 fontSize 14 1588 fontSize 14
3139 fontName "Consolas" 1589 fontName "Consolas"
3140 configuration "AutoFlippingLabel" 1590 configuration "AutoFlippingLabel"
@@ -3144,16 +1594,17 @@ graph
3144 ] 1594 ]
3145 edge 1595 edge
3146 [ 1596 [
3147 source 6 1597 source 5
3148 target 2 1598 target 10
3149 graphics 1599 graphics
3150 [ 1600 [
3151 fill "#000000" 1601 fill "#000000"
1602 width 3
3152 targetArrow "standard" 1603 targetArrow "standard"
3153 ] 1604 ]
3154 LabelGraphics 1605 LabelGraphics
3155 [ 1606 [
3156 text "type attribute Function" 1607 text "data reference FunctionalInterface"
3157 fontSize 14 1608 fontSize 14
3158 fontName "Consolas" 1609 fontName "Consolas"
3159 configuration "AutoFlippingLabel" 1610 configuration "AutoFlippingLabel"
@@ -3161,404 +1612,108 @@ graph
3161 position "thead" 1612 position "thead"
3162 ] 1613 ]
3163 ] 1614 ]
3164] 1615 edge
3165graph 1616 [
3166[ 1617 source 9
3167 node 1618 target 7
3168 [ 1619 graphics
3169 id 0
3170 graphics
3171 [
3172 w 226.60000000000002
3173 h 40
3174 type "rectangle"
3175 fill "#FFFFFF"
3176 fill2 "#FFFFFF"
3177 outline "#000000"
3178 ]
3179 LabelGraphics
3180 [
3181 text "Root literal FunctionType"
3182 outline "#000000"
3183 fill "#FFFFFF"
3184 fontSize 16
3185 fontName "Monospace"
3186 autoSizePolicy "node_width"
3187 anchor "t"
3188 borderDistance 0.0
3189 ]
3190 LabelGraphics
3191 [
3192 text "
3193 FunctionType enum
3194 "
3195 fontSize 14
3196 fontName "Consolas"
3197 alignment "left"
3198 anchor "tl"
3199 borderDistance 6
3200 ]
3201 ]
3202
3203 node
3204 [ 1620 [
3205 id 1 1621 fill "#000000"
3206 graphics 1622 targetArrow "standard"
3207 [
3208 w 297.0
3209 h 40
3210 type "rectangle"
3211 fill "#FFFFFF"
3212 fill2 "#FFFFFF"
3213 outline "#000000"
3214 ]
3215 LabelGraphics
3216 [
3217 text "Intermediate literal FunctionType"
3218 outline "#000000"
3219 fill "#FFFFFF"
3220 fontSize 16
3221 fontName "Monospace"
3222 autoSizePolicy "node_width"
3223 anchor "t"
3224 borderDistance 0.0
3225 ]
3226 LabelGraphics
3227 [
3228 text "
3229 FunctionType enum
3230 "
3231 fontSize 14
3232 fontName "Consolas"
3233 alignment "left"
3234 anchor "tl"
3235 borderDistance 6
3236 ]
3237 ] 1623 ]
3238 1624 LabelGraphics
3239 node
3240 [ 1625 [
3241 id 2 1626 text "IncomingLinks reference FunctionalInput"
3242 graphics 1627 fontSize 14
3243 [ 1628 fontName "Consolas"
3244 w 226.60000000000002 1629 configuration "AutoFlippingLabel"
3245 h 40 1630 model "six_pos"
3246 type "rectangle" 1631 position "thead"
3247 fill "#FFFFFF"
3248 fill2 "#FFFFFF"
3249 outline "#000000"
3250 ]
3251 LabelGraphics
3252 [
3253 text "Leaf literal FunctionType"
3254 outline "#000000"
3255 fill "#FFFFFF"
3256 fontSize 16
3257 fontName "Monospace"
3258 autoSizePolicy "node_width"
3259 anchor "t"
3260 borderDistance 0.0
3261 ]
3262 LabelGraphics
3263 [
3264 text "
3265 FunctionType enum
3266 "
3267 fontSize 14
3268 fontName "Consolas"
3269 alignment "left"
3270 anchor "tl"
3271 borderDistance 6
3272 ]
3273 ] 1632 ]
3274 1633 ]
3275 node 1634 edge
1635 [
1636 source 9
1637 target 8
1638 graphics
3276 [ 1639 [
3277 id 3 1640 fill "#000000"
3278 graphics 1641 targetArrow "standard"
3279 [
3280 w 361.90000000000003
3281 h 54
3282 type "rectangle"
3283 fill "#FFFFFF"
3284 fill2 "#FFFFFF"
3285 outline "#000000"
3286 ]
3287 LabelGraphics
3288 [
3289 text "o 1"
3290 outline "#000000"
3291 fill "#FFFFFF"
3292 fontSize 16
3293 fontName "Monospace"
3294 autoSizePolicy "node_width"
3295 anchor "t"
3296 borderDistance 0.0
3297 ]
3298 LabelGraphics
3299 [
3300 text "
3301 FunctionalArchitectureModel class DefinedPart
3302 FunctionalArchitectureModel class
3303 "
3304 fontSize 14
3305 fontName "Consolas"
3306 alignment "left"
3307 anchor "tl"
3308 borderDistance 6
3309 ]
3310 ] 1642 ]
3311 1643 LabelGraphics
3312 node
3313 [ 1644 [
3314 id 4 1645 text "IncomingLinks reference FunctionalInput"
3315 graphics 1646 fontSize 14
3316 [ 1647 fontName "Consolas"
3317 w 41.800000000000004 1648 configuration "AutoFlippingLabel"
3318 h 26 1649 model "six_pos"
3319 type "rectangle" 1650 position "thead"
3320 fill "#FFFFFF"
3321 fill2 "#FFFFFF"
3322 outline "#000000"
3323 ]
3324 LabelGraphics
3325 [
3326 text "true"
3327 outline "#000000"
3328 fill "#FFFFFF"
3329 fontSize 16
3330 fontName "Monospace"
3331 autoSizePolicy "node_width"
3332 anchor "t"
3333 borderDistance 0.0
3334 ]
3335 LabelGraphics
3336 [
3337 text "
3338 "
3339 fontSize 14
3340 fontName "Consolas"
3341 alignment "left"
3342 anchor "tl"
3343 borderDistance 6
3344 ]
3345 ] 1651 ]
3346 1652 ]
3347 node 1653 edge
1654 [
1655 source 6
1656 target 7
1657 graphics
3348 [ 1658 [
3349 id 5 1659 fill "#000000"
3350 graphics 1660 width 3
3351 [ 1661 targetArrow "standard"
3352 w 50.6
3353 h 26
3354 type "rectangle"
3355 fill "#FFFFFF"
3356 fill2 "#FFFFFF"
3357 outline "#000000"
3358 ]
3359 LabelGraphics
3360 [
3361 text "false"
3362 outline "#000000"
3363 fill "#FFFFFF"
3364 fontSize 16
3365 fontName "Monospace"
3366 autoSizePolicy "node_width"
3367 anchor "t"
3368 borderDistance 0.0
3369 ]
3370 LabelGraphics
3371 [
3372 text "
3373 "
3374 fontSize 14
3375 fontName "Consolas"
3376 alignment "left"
3377 anchor "tl"
3378 borderDistance 6
3379 ]
3380 ] 1662 ]
3381 1663 LabelGraphics
3382 node
3383 [ 1664 [
3384 id 6 1665 text "outgoingLinks reference FunctionalOutput"
3385 graphics 1666 fontSize 14
3386 [ 1667 fontName "Consolas"
3387 w 192.50000000000003 1668 configuration "AutoFlippingLabel"
3388 h 54 1669 model "six_pos"
3389 type "rectangle" 1670 position "thead"
3390 fill "#FFFFFF"
3391 fill2 "#FFFFFF"
3392 outline "#000000"
3393 ]
3394 LabelGraphics
3395 [
3396 text "null"
3397 outline "#000000"
3398 fill "#FFFFFF"
3399 fontSize 16
3400 fontName "Monospace"
3401 autoSizePolicy "node_width"
3402 anchor "t"
3403 borderDistance 0.0
3404 ]
3405 LabelGraphics
3406 [
3407 text "
3408 FunctionalElement class
3409 Function class
3410 "
3411 fontSize 14
3412 fontName "Consolas"
3413 alignment "left"
3414 anchor "tl"
3415 borderDistance 6
3416 ]
3417 ] 1671 ]
3418 1672 ]
3419 node 1673 edge
1674 [
1675 source 6
1676 target 8
1677 graphics
3420 [ 1678 [
3421 id 7 1679 fill "#000000"
3422 graphics 1680 width 3
3423 [ 1681 targetArrow "standard"
3424 w 112.2
3425 h 26
3426 type "rectangle"
3427 fill "#FFFFFF"
3428 fill2 "#FFFFFF"
3429 outline "#000000"
3430 ]
3431 LabelGraphics
3432 [
3433 text "New Integers"
3434 outline "#000000"
3435 fill "#FFFFFF"
3436 fontSize 16
3437 fontName "Monospace"
3438 autoSizePolicy "node_width"
3439 anchor "t"
3440 borderDistance 0.0
3441 ]
3442 LabelGraphics
3443 [
3444 text "
3445 "
3446 fontSize 14
3447 fontName "Consolas"
3448 alignment "left"
3449 anchor "tl"
3450 borderDistance 6
3451 ]
3452 ] 1682 ]
3453 1683 LabelGraphics
3454 node
3455 [ 1684 [
3456 id 8 1685 text "outgoingLinks reference FunctionalOutput"
3457 graphics 1686 fontSize 14
3458 [ 1687 fontName "Consolas"
3459 w 85.80000000000001 1688 configuration "AutoFlippingLabel"
3460 h 26 1689 model "six_pos"
3461 type "rectangle" 1690 position "thead"
3462 fill "#FFFFFF"
3463 fill2 "#FFFFFF"
3464 outline "#000000"
3465 ]
3466 LabelGraphics
3467 [
3468 text "New Reals"
3469 outline "#000000"
3470 fill "#FFFFFF"
3471 fontSize 16
3472 fontName "Monospace"
3473 autoSizePolicy "node_width"
3474 anchor "t"
3475 borderDistance 0.0
3476 ]
3477 LabelGraphics
3478 [
3479 text "
3480 "
3481 fontSize 14
3482 fontName "Consolas"
3483 alignment "left"
3484 anchor "tl"
3485 borderDistance 6
3486 ]
3487 ] 1691 ]
3488 1692 ]
3489 node 1693 edge
1694 [
1695 source 6
1696 target 11
1697 graphics
3490 [ 1698 [
3491 id 9 1699 fill "#000000"
3492 graphics 1700 width 3
3493 [ 1701 targetArrow "standard"
3494 w 103.4
3495 h 26
3496 type "rectangle"
3497 fill "#FFFFFF"
3498 fill2 "#FFFFFF"
3499 outline "#000000"
3500 ]
3501 LabelGraphics
3502 [
3503 text "New Strings"
3504 outline "#000000"
3505 fill "#FFFFFF"
3506 fontSize 16
3507 fontName "Monospace"
3508 autoSizePolicy "node_width"
3509 anchor "t"
3510 borderDistance 0.0
3511 ]
3512 LabelGraphics
3513 [
3514 text "
3515 "
3516 fontSize 14
3517 fontName "Consolas"
3518 alignment "left"
3519 anchor "tl"
3520 borderDistance 6
3521 ]
3522 ] 1702 ]
3523 1703 LabelGraphics
3524 node
3525 [ 1704 [
3526 id 10 1705 text "terminator reference FunctionalData"
3527 graphics 1706 fontSize 14
3528 [ 1707 fontName "Consolas"
3529 w 103.4 1708 configuration "AutoFlippingLabel"
3530 h 26 1709 model "six_pos"
3531 type "rectangle" 1710 position "thead"
3532 fill "#FFFFFF"
3533 fill2 "#FFFFFF"
3534 outline "#000000"
3535 ]
3536 LabelGraphics
3537 [
3538 text "New Objects"
3539 outline "#000000"
3540 fill "#FFFFFF"
3541 fontSize 16
3542 fontName "Monospace"
3543 autoSizePolicy "node_width"
3544 anchor "t"
3545 borderDistance 0.0
3546 ]
3547 LabelGraphics
3548 [
3549 text "
3550 "
3551 fontSize 14
3552 fontName "Consolas"
3553 alignment "left"
3554 anchor "tl"
3555 borderDistance 6
3556 ]
3557 ] 1711 ]
1712 ]
3558 edge 1713 edge
3559 [ 1714 [
3560 source 6 1715 source 6
3561 target 3 1716 target 5
3562 graphics 1717 graphics
3563 [ 1718 [
3564 fill "#000000" 1719 fill "#000000"
@@ -3566,7 +1721,7 @@ graph
3566 ] 1721 ]
3567 LabelGraphics 1722 LabelGraphics
3568 [ 1723 [
3569 text "model reference FunctionalElement" 1724 text "interface reference FunctionalData"
3570 fontSize 14 1725 fontSize 14
3571 fontName "Consolas" 1726 fontName "Consolas"
3572 configuration "AutoFlippingLabel" 1727 configuration "AutoFlippingLabel"
@@ -3576,17 +1731,16 @@ graph
3576 ] 1731 ]
3577 edge 1732 edge
3578 [ 1733 [
3579 source 3 1734 source 9
3580 target 6 1735 target 5
3581 graphics 1736 graphics
3582 [ 1737 [
3583 fill "#000000" 1738 fill "#000000"
3584 width 3
3585 targetArrow "standard" 1739 targetArrow "standard"
3586 ] 1740 ]
3587 LabelGraphics 1741 LabelGraphics
3588 [ 1742 [
3589 text "rootElements reference FunctionalArchitectureModel" 1743 text "interface reference FunctionalData"
3590 fontSize 14 1744 fontSize 14
3591 fontName "Consolas" 1745 fontName "Consolas"
3592 configuration "AutoFlippingLabel" 1746 configuration "AutoFlippingLabel"
@@ -3596,8 +1750,8 @@ graph
3596 ] 1750 ]
3597 edge 1751 edge
3598 [ 1752 [
3599 source 6 1753 source 10
3600 target 0 1754 target 5
3601 graphics 1755 graphics
3602 [ 1756 [
3603 fill "#000000" 1757 fill "#000000"
@@ -3605,7 +1759,7 @@ graph
3605 ] 1759 ]
3606 LabelGraphics 1760 LabelGraphics
3607 [ 1761 [
3608 text "type attribute Function" 1762 text "interface reference FunctionalData"
3609 fontSize 14 1763 fontSize 14
3610 fontName "Consolas" 1764 fontName "Consolas"
3611 configuration "AutoFlippingLabel" 1765 configuration "AutoFlippingLabel"
@@ -3621,8 +1775,8 @@ graph
3621 id 0 1775 id 0
3622 graphics 1776 graphics
3623 [ 1777 [
3624 w 254.10000000000002 1778 w 226.60000000000002
3625 h 110 1779 h 40
3626 type "rectangle" 1780 type "rectangle"
3627 fill "#FFFFFF" 1781 fill "#FFFFFF"
3628 fill2 "#FFFFFF" 1782 fill2 "#FFFFFF"
@@ -3630,7 +1784,7 @@ graph
3630 ] 1784 ]
3631 LabelGraphics 1785 LabelGraphics
3632 [ 1786 [
3633 text "o 1" 1787 text "Root literal FunctionType"
3634 outline "#000000" 1788 outline "#000000"
3635 fill "#FFFFFF" 1789 fill "#FFFFFF"
3636 fontSize 16 1790 fontSize 16
@@ -3642,12 +1796,7 @@ graph
3642 LabelGraphics 1796 LabelGraphics
3643 [ 1797 [
3644 text " 1798 text "
3645 EModelElement class DefinedPart 1799 FunctionType enum
3646 ENamedElement class DefinedPart
3647 EPackage class DefinedPart
3648 EModelElement class
3649 ENamedElement class
3650 EPackage class
3651 " 1800 "
3652 fontSize 14 1801 fontSize 14
3653 fontName "Consolas" 1802 fontName "Consolas"
@@ -3662,8 +1811,8 @@ graph
3662 id 1 1811 id 1
3663 graphics 1812 graphics
3664 [ 1813 [
3665 w 41.800000000000004 1814 w 297.0
3666 h 26 1815 h 40
3667 type "rectangle" 1816 type "rectangle"
3668 fill "#FFFFFF" 1817 fill "#FFFFFF"
3669 fill2 "#FFFFFF" 1818 fill2 "#FFFFFF"
@@ -3671,7 +1820,7 @@ graph
3671 ] 1820 ]
3672 LabelGraphics 1821 LabelGraphics
3673 [ 1822 [
3674 text "true" 1823 text "Intermediate literal FunctionType"
3675 outline "#000000" 1824 outline "#000000"
3676 fill "#FFFFFF" 1825 fill "#FFFFFF"
3677 fontSize 16 1826 fontSize 16
@@ -3683,6 +1832,7 @@ graph
3683 LabelGraphics 1832 LabelGraphics
3684 [ 1833 [
3685 text " 1834 text "
1835 FunctionType enum
3686 " 1836 "
3687 fontSize 14 1837 fontSize 14
3688 fontName "Consolas" 1838 fontName "Consolas"
@@ -3697,8 +1847,8 @@ graph
3697 id 2 1847 id 2
3698 graphics 1848 graphics
3699 [ 1849 [
3700 w 50.6 1850 w 226.60000000000002
3701 h 26 1851 h 40
3702 type "rectangle" 1852 type "rectangle"
3703 fill "#FFFFFF" 1853 fill "#FFFFFF"
3704 fill2 "#FFFFFF" 1854 fill2 "#FFFFFF"
@@ -3706,7 +1856,7 @@ graph
3706 ] 1856 ]
3707 LabelGraphics 1857 LabelGraphics
3708 [ 1858 [
3709 text "false" 1859 text "Leaf literal FunctionType"
3710 outline "#000000" 1860 outline "#000000"
3711 fill "#FFFFFF" 1861 fill "#FFFFFF"
3712 fontSize 16 1862 fontSize 16
@@ -3718,6 +1868,7 @@ graph
3718 LabelGraphics 1868 LabelGraphics
3719 [ 1869 [
3720 text " 1870 text "
1871 FunctionType enum
3721 " 1872 "
3722 fontSize 14 1873 fontSize 14
3723 fontName "Consolas" 1874 fontName "Consolas"
@@ -3732,7 +1883,7 @@ graph
3732 id 3 1883 id 3
3733 graphics 1884 graphics
3734 [ 1885 [
3735 w 24.200000000000003 1886 w 41.800000000000004
3736 h 26 1887 h 26
3737 type "rectangle" 1888 type "rectangle"
3738 fill "#FFFFFF" 1889 fill "#FFFFFF"
@@ -3741,7 +1892,7 @@ graph
3741 ] 1892 ]
3742 LabelGraphics 1893 LabelGraphics
3743 [ 1894 [
3744 text "-1" 1895 text "true"
3745 outline "#000000" 1896 outline "#000000"
3746 fill "#FFFFFF" 1897 fill "#FFFFFF"
3747 fontSize 16 1898 fontSize 16
@@ -3767,7 +1918,7 @@ graph
3767 id 4 1918 id 4
3768 graphics 1919 graphics
3769 [ 1920 [
3770 w 15.400000000000002 1921 w 50.6
3771 h 26 1922 h 26
3772 type "rectangle" 1923 type "rectangle"
3773 fill "#FFFFFF" 1924 fill "#FFFFFF"
@@ -3776,7 +1927,7 @@ graph
3776 ] 1927 ]
3777 LabelGraphics 1928 LabelGraphics
3778 [ 1929 [
3779 text "0" 1930 text "false"
3780 outline "#000000" 1931 outline "#000000"
3781 fill "#FFFFFF" 1932 fill "#FFFFFF"
3782 fontSize 16 1933 fontSize 16
@@ -3802,8 +1953,8 @@ graph
3802 id 5 1953 id 5
3803 graphics 1954 graphics
3804 [ 1955 [
3805 w 15.400000000000002 1956 w 207.9
3806 h 26 1957 h 40
3807 type "rectangle" 1958 type "rectangle"
3808 fill "#FFFFFF" 1959 fill "#FFFFFF"
3809 fill2 "#FFFFFF" 1960 fill2 "#FFFFFF"
@@ -3811,7 +1962,7 @@ graph
3811 ] 1962 ]
3812 LabelGraphics 1963 LabelGraphics
3813 [ 1964 [
3814 text "1" 1965 text "null"
3815 outline "#000000" 1966 outline "#000000"
3816 fill "#FFFFFF" 1967 fill "#FFFFFF"
3817 fontSize 16 1968 fontSize 16
@@ -3823,6 +1974,7 @@ graph
3823 LabelGraphics 1974 LabelGraphics
3824 [ 1975 [
3825 text " 1976 text "
1977 FunctionalInterface class
3826 " 1978 "
3827 fontSize 14 1979 fontSize 14
3828 fontName "Consolas" 1980 fontName "Consolas"
@@ -3837,8 +1989,8 @@ graph
3837 id 6 1989 id 6
3838 graphics 1990 graphics
3839 [ 1991 [
3840 w 33.0 1992 w 184.8
3841 h 26 1993 h 54
3842 type "rectangle" 1994 type "rectangle"
3843 fill "#FFFFFF" 1995 fill "#FFFFFF"
3844 fill2 "#FFFFFF" 1996 fill2 "#FFFFFF"
@@ -3846,7 +1998,7 @@ graph
3846 ] 1998 ]
3847 LabelGraphics 1999 LabelGraphics
3848 [ 2000 [
3849 text ""A"" 2001 text "null"
3850 outline "#000000" 2002 outline "#000000"
3851 fill "#FFFFFF" 2003 fill "#FFFFFF"
3852 fontSize 16 2004 fontSize 16
@@ -3858,6 +2010,8 @@ graph
3858 LabelGraphics 2010 LabelGraphics
3859 [ 2011 [
3860 text " 2012 text "
2013 FunctionalOutput class
2014 FunctionalData class
3861 " 2015 "
3862 fontSize 14 2016 fontSize 14
3863 fontName "Consolas" 2017 fontName "Consolas"
@@ -3872,8 +2026,8 @@ graph
3872 id 7 2026 id 7
3873 graphics 2027 graphics
3874 [ 2028 [
3875 w 33.0 2029 w 177.10000000000002
3876 h 26 2030 h 54
3877 type "rectangle" 2031 type "rectangle"
3878 fill "#FFFFFF" 2032 fill "#FFFFFF"
3879 fill2 "#FFFFFF" 2033 fill2 "#FFFFFF"
@@ -3881,7 +2035,7 @@ graph
3881 ] 2035 ]
3882 LabelGraphics 2036 LabelGraphics
3883 [ 2037 [
3884 text ""B"" 2038 text "null"
3885 outline "#000000" 2039 outline "#000000"
3886 fill "#FFFFFF" 2040 fill "#FFFFFF"
3887 fontSize 16 2041 fontSize 16
@@ -3893,6 +2047,8 @@ graph
3893 LabelGraphics 2047 LabelGraphics
3894 [ 2048 [
3895 text " 2049 text "
2050 FunctionalInput class
2051 FunctionalData class
3896 " 2052 "
3897 fontSize 14 2053 fontSize 14
3898 fontName "Consolas" 2054 fontName "Consolas"
@@ -3907,8 +2063,8 @@ graph
3907 id 8 2063 id 8
3908 graphics 2064 graphics
3909 [ 2065 [
3910 w 94.60000000000001 2066 w 184.8
3911 h 26 2067 h 54
3912 type "rectangle" 2068 type "rectangle"
3913 fill "#FFFFFF" 2069 fill "#FFFFFF"
3914 fill2 "#FFFFFF" 2070 fill2 "#FFFFFF"
@@ -3916,7 +2072,7 @@ graph
3916 ] 2072 ]
3917 LabelGraphics 2073 LabelGraphics
3918 [ 2074 [
3919 text ""nsPrefix"" 2075 text "null"
3920 outline "#000000" 2076 outline "#000000"
3921 fill "#FFFFFF" 2077 fill "#FFFFFF"
3922 fontSize 16 2078 fontSize 16
@@ -3928,6 +2084,8 @@ graph
3928 LabelGraphics 2084 LabelGraphics
3929 [ 2085 [
3930 text " 2086 text "
2087 FunctionalOutput class
2088 FunctionalData class
3931 " 2089 "
3932 fontSize 14 2090 fontSize 14
3933 fontName "Consolas" 2091 fontName "Consolas"
@@ -3942,8 +2100,8 @@ graph
3942 id 9 2100 id 9
3943 graphics 2101 graphics
3944 [ 2102 [
3945 w 68.2 2103 w 161.70000000000002
3946 h 26 2104 h 40
3947 type "rectangle" 2105 type "rectangle"
3948 fill "#FFFFFF" 2106 fill "#FFFFFF"
3949 fill2 "#FFFFFF" 2107 fill2 "#FFFFFF"
@@ -3951,7 +2109,7 @@ graph
3951 ] 2109 ]
3952 LabelGraphics 2110 LabelGraphics
3953 [ 2111 [
3954 text ""nsUri"" 2112 text "null"
3955 outline "#000000" 2113 outline "#000000"
3956 fill "#FFFFFF" 2114 fill "#FFFFFF"
3957 fontSize 16 2115 fontSize 16
@@ -3963,6 +2121,7 @@ graph
3963 LabelGraphics 2121 LabelGraphics
3964 [ 2122 [
3965 text " 2123 text "
2124 FAMTerminator class
3966 " 2125 "
3967 fontSize 14 2126 fontSize 14
3968 fontName "Consolas" 2127 fontName "Consolas"
@@ -3977,8 +2136,8 @@ graph
3977 id 10 2136 id 10
3978 graphics 2137 graphics
3979 [ 2138 [
3980 w 121.00000000000001 2139 w 184.8
3981 h 26 2140 h 54
3982 type "rectangle" 2141 type "rectangle"
3983 fill "#FFFFFF" 2142 fill "#FFFFFF"
3984 fill2 "#FFFFFF" 2143 fill2 "#FFFFFF"
@@ -3986,7 +2145,7 @@ graph
3986 ] 2145 ]
3987 LabelGraphics 2146 LabelGraphics
3988 [ 2147 [
3989 text ""packageName"" 2148 text "null"
3990 outline "#000000" 2149 outline "#000000"
3991 fill "#FFFFFF" 2150 fill "#FFFFFF"
3992 fontSize 16 2151 fontSize 16
@@ -3998,6 +2157,8 @@ graph
3998 LabelGraphics 2157 LabelGraphics
3999 [ 2158 [
4000 text " 2159 text "
2160 FunctionalOutput class
2161 FunctionalData class
4001 " 2162 "
4002 fontSize 14 2163 fontSize 14
4003 fontName "Consolas" 2164 fontName "Consolas"
@@ -4012,8 +2173,8 @@ graph
4012 id 11 2173 id 11
4013 graphics 2174 graphics
4014 [ 2175 [
4015 w 269.5 2176 w 177.10000000000002
4016 h 124 2177 h 40
4017 type "rectangle" 2178 type "rectangle"
4018 fill "#FFFFFF" 2179 fill "#FFFFFF"
4019 fill2 "#FFFFFF" 2180 fill2 "#FFFFFF"
@@ -4033,13 +2194,7 @@ graph
4033 LabelGraphics 2194 LabelGraphics
4034 [ 2195 [
4035 text " 2196 text "
4036 EClassifier class 2197 InformationLink class
4037 EDataType class
4038 EEnum class
4039 EModelElement class
4040 ENamedElement class
4041 EModelElement class UndefinedPart
4042 ENamedElement class UndefinedPart
4043 " 2198 "
4044 fontSize 14 2199 fontSize 14
4045 fontName "Consolas" 2200 fontName "Consolas"
@@ -4054,173 +2209,6 @@ graph
4054 id 12 2209 id 12
4055 graphics 2210 graphics
4056 [ 2211 [
4057 w 269.5
4058 h 124
4059 type "rectangle"
4060 fill "#FFFFFF"
4061 fill2 "#FFFFFF"
4062 outline "#000000"
4063 ]
4064 LabelGraphics
4065 [
4066 text "null"
4067 outline "#000000"
4068 fill "#FFFFFF"
4069 fontSize 16
4070 fontName "Monospace"
4071 autoSizePolicy "node_width"
4072 anchor "t"
4073 borderDistance 0.0
4074 ]
4075 LabelGraphics
4076 [
4077 text "
4078 EClassifier class
4079 EDataType class
4080 EEnum class
4081 EModelElement class
4082 ENamedElement class
4083 EModelElement class UndefinedPart
4084 ENamedElement class UndefinedPart
4085 "
4086 fontSize 14
4087 fontName "Consolas"
4088 alignment "left"
4089 anchor "tl"
4090 borderDistance 6
4091 ]
4092 ]
4093
4094 node
4095 [
4096 id 13
4097 graphics
4098 [
4099 w 269.5
4100 h 110
4101 type "rectangle"
4102 fill "#FFFFFF"
4103 fill2 "#FFFFFF"
4104 outline "#000000"
4105 ]
4106 LabelGraphics
4107 [
4108 text "null"
4109 outline "#000000"
4110 fill "#FFFFFF"
4111 fontSize 16
4112 fontName "Monospace"
4113 autoSizePolicy "node_width"
4114 anchor "t"
4115 borderDistance 0.0
4116 ]
4117 LabelGraphics
4118 [
4119 text "
4120 EModelElement class
4121 ENamedElement class
4122 EPackage class
4123 EModelElement class UndefinedPart
4124 ENamedElement class UndefinedPart
4125 EPackage class UndefinedPart
4126 "
4127 fontSize 14
4128 fontName "Consolas"
4129 alignment "left"
4130 anchor "tl"
4131 borderDistance 6
4132 ]
4133 ]
4134
4135 node
4136 [
4137 id 14
4138 graphics
4139 [
4140 w 269.5
4141 h 124
4142 type "rectangle"
4143 fill "#FFFFFF"
4144 fill2 "#FFFFFF"
4145 outline "#000000"
4146 ]
4147 LabelGraphics
4148 [
4149 text "null"
4150 outline "#000000"
4151 fill "#FFFFFF"
4152 fontSize 16
4153 fontName "Monospace"
4154 autoSizePolicy "node_width"
4155 anchor "t"
4156 borderDistance 0.0
4157 ]
4158 LabelGraphics
4159 [
4160 text "
4161 EClassifier class
4162 EDataType class
4163 EEnum class
4164 EModelElement class
4165 ENamedElement class
4166 EModelElement class UndefinedPart
4167 ENamedElement class UndefinedPart
4168 "
4169 fontSize 14
4170 fontName "Consolas"
4171 alignment "left"
4172 anchor "tl"
4173 borderDistance 6
4174 ]
4175 ]
4176
4177 node
4178 [
4179 id 15
4180 graphics
4181 [
4182 w 269.5
4183 h 124
4184 type "rectangle"
4185 fill "#FFFFFF"
4186 fill2 "#FFFFFF"
4187 outline "#000000"
4188 ]
4189 LabelGraphics
4190 [
4191 text "null"
4192 outline "#000000"
4193 fill "#FFFFFF"
4194 fontSize 16
4195 fontName "Monospace"
4196 autoSizePolicy "node_width"
4197 anchor "t"
4198 borderDistance 0.0
4199 ]
4200 LabelGraphics
4201 [
4202 text "
4203 EClassifier class
4204 EDataType class
4205 EEnum class
4206 EModelElement class
4207 ENamedElement class
4208 EModelElement class UndefinedPart
4209 ENamedElement class UndefinedPart
4210 "
4211 fontSize 14
4212 fontName "Consolas"
4213 alignment "left"
4214 anchor "tl"
4215 borderDistance 6
4216 ]
4217 ]
4218
4219 node
4220 [
4221 id 16
4222 graphics
4223 [
4224 w 112.2 2212 w 112.2
4225 h 26 2213 h 26
4226 type "rectangle" 2214 type "rectangle"
@@ -4253,7 +2241,7 @@ graph
4253 2241
4254 node 2242 node
4255 [ 2243 [
4256 id 17 2244 id 13
4257 graphics 2245 graphics
4258 [ 2246 [
4259 w 85.80000000000001 2247 w 85.80000000000001
@@ -4288,7 +2276,7 @@ graph
4288 2276
4289 node 2277 node
4290 [ 2278 [
4291 id 18 2279 id 14
4292 graphics 2280 graphics
4293 [ 2281 [
4294 w 103.4 2282 w 103.4
@@ -4323,7 +2311,7 @@ graph
4323 2311
4324 node 2312 node
4325 [ 2313 [
4326 id 19 2314 id 15
4327 graphics 2315 graphics
4328 [ 2316 [
4329 w 103.4 2317 w 103.4
@@ -4357,93 +2345,16 @@ graph
4357 ] 2345 ]
4358 edge 2346 edge
4359 [ 2347 [
4360 source 11 2348 source 9
4361 target 0 2349 target 7
4362 graphics
4363 [
4364 fill "#000000"
4365 targetArrow "standard"
4366 ]
4367 LabelGraphics
4368 [
4369 text "ePackage reference EClassifier"
4370 fontSize 14
4371 fontName "Consolas"
4372 configuration "AutoFlippingLabel"
4373 model "six_pos"
4374 position "thead"
4375 ]
4376 ]
4377 edge
4378 [
4379 source 12
4380 target 0
4381 graphics
4382 [
4383 fill "#000000"
4384 targetArrow "standard"
4385 ]
4386 LabelGraphics
4387 [
4388 text "ePackage reference EClassifier"
4389 fontSize 14
4390 fontName "Consolas"
4391 configuration "AutoFlippingLabel"
4392 model "six_pos"
4393 position "thead"
4394 ]
4395 ]
4396 edge
4397 [
4398 source 14
4399 target 0
4400 graphics
4401 [
4402 fill "#000000"
4403 targetArrow "standard"
4404 ]
4405 LabelGraphics
4406 [
4407 text "ePackage reference EClassifier"
4408 fontSize 14
4409 fontName "Consolas"
4410 configuration "AutoFlippingLabel"
4411 model "six_pos"
4412 position "thead"
4413 ]
4414 ]
4415 edge
4416 [
4417 source 15
4418 target 13
4419 graphics
4420 [
4421 fill "#000000"
4422 targetArrow "standard"
4423 ]
4424 LabelGraphics
4425 [
4426 text "ePackage reference EClassifier"
4427 fontSize 14
4428 fontName "Consolas"
4429 configuration "AutoFlippingLabel"
4430 model "six_pos"
4431 position "thead"
4432 ]
4433 ]
4434 edge
4435 [
4436 source 0
4437 target 11
4438 graphics 2350 graphics
4439 [ 2351 [
4440 fill "#000000" 2352 fill "#000000"
4441 width 3
4442 targetArrow "standard" 2353 targetArrow "standard"
4443 ] 2354 ]
4444 LabelGraphics 2355 LabelGraphics
4445 [ 2356 [
4446 text "eClassifiers reference EPackage" 2357 text "data reference FAMTerminator"
4447 fontSize 14 2358 fontSize 14
4448 fontName "Consolas" 2359 fontName "Consolas"
4449 configuration "AutoFlippingLabel" 2360 configuration "AutoFlippingLabel"
@@ -4453,17 +2364,16 @@ graph
4453 ] 2364 ]
4454 edge 2365 edge
4455 [ 2366 [
4456 source 0 2367 source 11
4457 target 12 2368 target 8
4458 graphics 2369 graphics
4459 [ 2370 [
4460 fill "#000000" 2371 fill "#000000"
4461 width 3
4462 targetArrow "standard" 2372 targetArrow "standard"
4463 ] 2373 ]
4464 LabelGraphics 2374 LabelGraphics
4465 [ 2375 [
4466 text "eClassifiers reference EPackage" 2376 text "from reference InformationLink"
4467 fontSize 14 2377 fontSize 14
4468 fontName "Consolas" 2378 fontName "Consolas"
4469 configuration "AutoFlippingLabel" 2379 configuration "AutoFlippingLabel"
@@ -4473,17 +2383,16 @@ graph
4473 ] 2383 ]
4474 edge 2384 edge
4475 [ 2385 [
4476 source 0 2386 source 11
4477 target 14 2387 target 7
4478 graphics 2388 graphics
4479 [ 2389 [
4480 fill "#000000" 2390 fill "#000000"
4481 width 3
4482 targetArrow "standard" 2391 targetArrow "standard"
4483 ] 2392 ]
4484 LabelGraphics 2393 LabelGraphics
4485 [ 2394 [
4486 text "eClassifiers reference EPackage" 2395 text "to reference InformationLink"
4487 fontSize 14 2396 fontSize 14
4488 fontName "Consolas" 2397 fontName "Consolas"
4489 configuration "AutoFlippingLabel" 2398 configuration "AutoFlippingLabel"
@@ -4493,8 +2402,8 @@ graph
4493 ] 2402 ]
4494 edge 2403 edge
4495 [ 2404 [
4496 source 13 2405 source 5
4497 target 15 2406 target 6
4498 graphics 2407 graphics
4499 [ 2408 [
4500 fill "#000000" 2409 fill "#000000"
@@ -4503,7 +2412,7 @@ graph
4503 ] 2412 ]
4504 LabelGraphics 2413 LabelGraphics
4505 [ 2414 [
4506 text "eClassifiers reference EPackage" 2415 text "data reference FunctionalInterface"
4507 fontSize 14 2416 fontSize 14
4508 fontName "Consolas" 2417 fontName "Consolas"
4509 configuration "AutoFlippingLabel" 2418 configuration "AutoFlippingLabel"
@@ -4513,8 +2422,8 @@ graph
4513 ] 2422 ]
4514 edge 2423 edge
4515 [ 2424 [
4516 source 0 2425 source 5
4517 target 13 2426 target 7
4518 graphics 2427 graphics
4519 [ 2428 [
4520 fill "#000000" 2429 fill "#000000"
@@ -4523,7 +2432,7 @@ graph
4523 ] 2432 ]
4524 LabelGraphics 2433 LabelGraphics
4525 [ 2434 [
4526 text "eSubpackages reference EPackage" 2435 text "data reference FunctionalInterface"
4527 fontSize 14 2436 fontSize 14
4528 fontName "Consolas" 2437 fontName "Consolas"
4529 configuration "AutoFlippingLabel" 2438 configuration "AutoFlippingLabel"
@@ -4533,54 +2442,17 @@ graph
4533 ] 2442 ]
4534 edge 2443 edge
4535 [ 2444 [
4536 source 13 2445 source 5
4537 target 0
4538 graphics
4539 [
4540 fill "#000000"
4541 targetArrow "standard"
4542 ]
4543 LabelGraphics
4544 [
4545 text "eSuperPackage reference EPackage"
4546 fontSize 14
4547 fontName "Consolas"
4548 configuration "AutoFlippingLabel"
4549 model "six_pos"
4550 position "thead"
4551 ]
4552 ]
4553 edge
4554 [
4555 source 12
4556 target 8 2446 target 8
4557 graphics 2447 graphics
4558 [ 2448 [
4559 fill "#000000" 2449 fill "#000000"
2450 width 3
4560 targetArrow "standard" 2451 targetArrow "standard"
4561 ] 2452 ]
4562 LabelGraphics 2453 LabelGraphics
4563 [ 2454 [
4564 text "instanceClassName attribute EClassifier" 2455 text "data reference FunctionalInterface"
4565 fontSize 14
4566 fontName "Consolas"
4567 configuration "AutoFlippingLabel"
4568 model "six_pos"
4569 position "thead"
4570 ]
4571 ]
4572 edge
4573 [
4574 source 11
4575 target 6
4576 graphics
4577 [
4578 fill "#000000"
4579 targetArrow "standard"
4580 ]
4581 LabelGraphics
4582 [
4583 text "instanceClassName attribute EClassifier"
4584 fontSize 14 2456 fontSize 14
4585 fontName "Consolas" 2457 fontName "Consolas"
4586 configuration "AutoFlippingLabel" 2458 configuration "AutoFlippingLabel"
@@ -4590,35 +2462,17 @@ graph
4590 ] 2462 ]
4591 edge 2463 edge
4592 [ 2464 [
4593 source 11 2465 source 5
4594 target 10 2466 target 10
4595 graphics 2467 graphics
4596 [ 2468 [
4597 fill "#000000" 2469 fill "#000000"
2470 width 3
4598 targetArrow "standard" 2471 targetArrow "standard"
4599 ] 2472 ]
4600 LabelGraphics 2473 LabelGraphics
4601 [ 2474 [
4602 text "instanceTypeName attribute EClassifier" 2475 text "data reference FunctionalInterface"
4603 fontSize 14
4604 fontName "Consolas"
4605 configuration "AutoFlippingLabel"
4606 model "six_pos"
4607 position "thead"
4608 ]
4609 ]
4610 edge
4611 [
4612 source 12
4613 target 8
4614 graphics
4615 [
4616 fill "#000000"
4617 targetArrow "standard"
4618 ]
4619 LabelGraphics
4620 [
4621 text "instanceTypeName attribute EClassifier"
4622 fontSize 14 2476 fontSize 14
4623 fontName "Consolas" 2477 fontName "Consolas"
4624 configuration "AutoFlippingLabel" 2478 configuration "AutoFlippingLabel"
@@ -4628,8 +2482,8 @@ graph
4628 ] 2482 ]
4629 edge 2483 edge
4630 [ 2484 [
4631 source 0 2485 source 7
4632 target 10 2486 target 11
4633 graphics 2487 graphics
4634 [ 2488 [
4635 fill "#000000" 2489 fill "#000000"
@@ -4637,7 +2491,7 @@ graph
4637 ] 2491 ]
4638 LabelGraphics 2492 LabelGraphics
4639 [ 2493 [
4640 text "name attribute ENamedElement" 2494 text "IncomingLinks reference FunctionalInput"
4641 fontSize 14 2495 fontSize 14
4642 fontName "Consolas" 2496 fontName "Consolas"
4643 configuration "AutoFlippingLabel" 2497 configuration "AutoFlippingLabel"
@@ -4647,16 +2501,17 @@ graph
4647 ] 2501 ]
4648 edge 2502 edge
4649 [ 2503 [
4650 source 12 2504 source 8
4651 target 10 2505 target 11
4652 graphics 2506 graphics
4653 [ 2507 [
4654 fill "#000000" 2508 fill "#000000"
2509 width 3
4655 targetArrow "standard" 2510 targetArrow "standard"
4656 ] 2511 ]
4657 LabelGraphics 2512 LabelGraphics
4658 [ 2513 [
4659 text "name attribute ENamedElement" 2514 text "outgoingLinks reference FunctionalOutput"
4660 fontSize 14 2515 fontSize 14
4661 fontName "Consolas" 2516 fontName "Consolas"
4662 configuration "AutoFlippingLabel" 2517 configuration "AutoFlippingLabel"
@@ -4666,16 +2521,17 @@ graph
4666 ] 2521 ]
4667 edge 2522 edge
4668 [ 2523 [
4669 source 11 2524 source 7
4670 target 10 2525 target 9
4671 graphics 2526 graphics
4672 [ 2527 [
4673 fill "#000000" 2528 fill "#000000"
2529 width 3
4674 targetArrow "standard" 2530 targetArrow "standard"
4675 ] 2531 ]
4676 LabelGraphics 2532 LabelGraphics
4677 [ 2533 [
4678 text "name attribute ENamedElement" 2534 text "terminator reference FunctionalData"
4679 fontSize 14 2535 fontSize 14
4680 fontName "Consolas" 2536 fontName "Consolas"
4681 configuration "AutoFlippingLabel" 2537 configuration "AutoFlippingLabel"
@@ -4685,8 +2541,8 @@ graph
4685 ] 2541 ]
4686 edge 2542 edge
4687 [ 2543 [
4688 source 13 2544 source 6
4689 target 6 2545 target 5
4690 graphics 2546 graphics
4691 [ 2547 [
4692 fill "#000000" 2548 fill "#000000"
@@ -4694,7 +2550,7 @@ graph
4694 ] 2550 ]
4695 LabelGraphics 2551 LabelGraphics
4696 [ 2552 [
4697 text "name attribute ENamedElement" 2553 text "interface reference FunctionalData"
4698 fontSize 14 2554 fontSize 14
4699 fontName "Consolas" 2555 fontName "Consolas"
4700 configuration "AutoFlippingLabel" 2556 configuration "AutoFlippingLabel"
@@ -4704,8 +2560,8 @@ graph
4704 ] 2560 ]
4705 edge 2561 edge
4706 [ 2562 [
4707 source 0 2563 source 7
4708 target 9 2564 target 5
4709 graphics 2565 graphics
4710 [ 2566 [
4711 fill "#000000" 2567 fill "#000000"
@@ -4713,7 +2569,7 @@ graph
4713 ] 2569 ]
4714 LabelGraphics 2570 LabelGraphics
4715 [ 2571 [
4716 text "nsURI attribute EPackage" 2572 text "interface reference FunctionalData"
4717 fontSize 14 2573 fontSize 14
4718 fontName "Consolas" 2574 fontName "Consolas"
4719 configuration "AutoFlippingLabel" 2575 configuration "AutoFlippingLabel"
@@ -4723,8 +2579,8 @@ graph
4723 ] 2579 ]
4724 edge 2580 edge
4725 [ 2581 [
4726 source 13 2582 source 8
4727 target 8 2583 target 5
4728 graphics 2584 graphics
4729 [ 2585 [
4730 fill "#000000" 2586 fill "#000000"
@@ -4732,7 +2588,7 @@ graph
4732 ] 2588 ]
4733 LabelGraphics 2589 LabelGraphics
4734 [ 2590 [
4735 text "nsURI attribute EPackage" 2591 text "interface reference FunctionalData"
4736 fontSize 14 2592 fontSize 14
4737 fontName "Consolas" 2593 fontName "Consolas"
4738 configuration "AutoFlippingLabel" 2594 configuration "AutoFlippingLabel"
@@ -4742,8 +2598,8 @@ graph
4742 ] 2598 ]
4743 edge 2599 edge
4744 [ 2600 [
4745 source 0 2601 source 10
4746 target 8 2602 target 5
4747 graphics 2603 graphics
4748 [ 2604 [
4749 fill "#000000" 2605 fill "#000000"
@@ -4751,7 +2607,7 @@ graph
4751 ] 2607 ]
4752 LabelGraphics 2608 LabelGraphics
4753 [ 2609 [
4754 text "nsPrefix attribute EPackage" 2610 text "interface reference FunctionalData"
4755 fontSize 14 2611 fontSize 14
4756 fontName "Consolas" 2612 fontName "Consolas"
4757 configuration "AutoFlippingLabel" 2613 configuration "AutoFlippingLabel"
@@ -4875,8 +2731,8 @@ graph
4875 id 3 2731 id 3
4876 graphics 2732 graphics
4877 [ 2733 [
4878 w 361.90000000000003 2734 w 41.800000000000004
4879 h 54 2735 h 26
4880 type "rectangle" 2736 type "rectangle"
4881 fill "#FFFFFF" 2737 fill "#FFFFFF"
4882 fill2 "#FFFFFF" 2738 fill2 "#FFFFFF"
@@ -4884,7 +2740,7 @@ graph
4884 ] 2740 ]
4885 LabelGraphics 2741 LabelGraphics
4886 [ 2742 [
4887 text "o 1" 2743 text "true"
4888 outline "#000000" 2744 outline "#000000"
4889 fill "#FFFFFF" 2745 fill "#FFFFFF"
4890 fontSize 16 2746 fontSize 16
@@ -4896,8 +2752,6 @@ graph
4896 LabelGraphics 2752 LabelGraphics
4897 [ 2753 [
4898 text " 2754 text "
4899 FunctionalArchitectureModel class DefinedPart
4900 FunctionalArchitectureModel class
4901 " 2755 "
4902 fontSize 14 2756 fontSize 14
4903 fontName "Consolas" 2757 fontName "Consolas"
@@ -4912,7 +2766,7 @@ graph
4912 id 4 2766 id 4
4913 graphics 2767 graphics
4914 [ 2768 [
4915 w 41.800000000000004 2769 w 50.6
4916 h 26 2770 h 26
4917 type "rectangle" 2771 type "rectangle"
4918 fill "#FFFFFF" 2772 fill "#FFFFFF"
@@ -4921,7 +2775,7 @@ graph
4921 ] 2775 ]
4922 LabelGraphics 2776 LabelGraphics
4923 [ 2777 [
4924 text "true" 2778 text "false"
4925 outline "#000000" 2779 outline "#000000"
4926 fill "#FFFFFF" 2780 fill "#FFFFFF"
4927 fontSize 16 2781 fontSize 16
@@ -4947,8 +2801,8 @@ graph
4947 id 5 2801 id 5
4948 graphics 2802 graphics
4949 [ 2803 [
4950 w 50.6 2804 w 207.9
4951 h 26 2805 h 40
4952 type "rectangle" 2806 type "rectangle"
4953 fill "#FFFFFF" 2807 fill "#FFFFFF"
4954 fill2 "#FFFFFF" 2808 fill2 "#FFFFFF"
@@ -4956,7 +2810,7 @@ graph
4956 ] 2810 ]
4957 LabelGraphics 2811 LabelGraphics
4958 [ 2812 [
4959 text "false" 2813 text "null"
4960 outline "#000000" 2814 outline "#000000"
4961 fill "#FFFFFF" 2815 fill "#FFFFFF"
4962 fontSize 16 2816 fontSize 16
@@ -4968,6 +2822,7 @@ graph
4968 LabelGraphics 2822 LabelGraphics
4969 [ 2823 [
4970 text " 2824 text "
2825 FunctionalInterface class
4971 " 2826 "
4972 fontSize 14 2827 fontSize 14
4973 fontName "Consolas" 2828 fontName "Consolas"
@@ -4982,7 +2837,7 @@ graph
4982 id 6 2837 id 6
4983 graphics 2838 graphics
4984 [ 2839 [
4985 w 192.50000000000003 2840 w 184.8
4986 h 54 2841 h 54
4987 type "rectangle" 2842 type "rectangle"
4988 fill "#FFFFFF" 2843 fill "#FFFFFF"
@@ -5003,8 +2858,8 @@ graph
5003 LabelGraphics 2858 LabelGraphics
5004 [ 2859 [
5005 text " 2860 text "
5006 FunctionalElement class 2861 FunctionalOutput class
5007 Function class 2862 FunctionalData class
5008 " 2863 "
5009 fontSize 14 2864 fontSize 14
5010 fontName "Consolas" 2865 fontName "Consolas"
@@ -5019,8 +2874,8 @@ graph
5019 id 7 2874 id 7
5020 graphics 2875 graphics
5021 [ 2876 [
5022 w 112.2 2877 w 177.10000000000002
5023 h 26 2878 h 54
5024 type "rectangle" 2879 type "rectangle"
5025 fill "#FFFFFF" 2880 fill "#FFFFFF"
5026 fill2 "#FFFFFF" 2881 fill2 "#FFFFFF"
@@ -5028,7 +2883,7 @@ graph
5028 ] 2883 ]
5029 LabelGraphics 2884 LabelGraphics
5030 [ 2885 [
5031 text "New Integers" 2886 text "null"
5032 outline "#000000" 2887 outline "#000000"
5033 fill "#FFFFFF" 2888 fill "#FFFFFF"
5034 fontSize 16 2889 fontSize 16
@@ -5040,6 +2895,8 @@ graph
5040 LabelGraphics 2895 LabelGraphics
5041 [ 2896 [
5042 text " 2897 text "
2898 FunctionalInput class
2899 FunctionalData class
5043 " 2900 "
5044 fontSize 14 2901 fontSize 14
5045 fontName "Consolas" 2902 fontName "Consolas"
@@ -5054,8 +2911,8 @@ graph
5054 id 8 2911 id 8
5055 graphics 2912 graphics
5056 [ 2913 [
5057 w 85.80000000000001 2914 w 184.8
5058 h 26 2915 h 54
5059 type "rectangle" 2916 type "rectangle"
5060 fill "#FFFFFF" 2917 fill "#FFFFFF"
5061 fill2 "#FFFFFF" 2918 fill2 "#FFFFFF"
@@ -5063,7 +2920,7 @@ graph
5063 ] 2920 ]
5064 LabelGraphics 2921 LabelGraphics
5065 [ 2922 [
5066 text "New Reals" 2923 text "null"
5067 outline "#000000" 2924 outline "#000000"
5068 fill "#FFFFFF" 2925 fill "#FFFFFF"
5069 fontSize 16 2926 fontSize 16
@@ -5075,6 +2932,8 @@ graph
5075 LabelGraphics 2932 LabelGraphics
5076 [ 2933 [
5077 text " 2934 text "
2935 FunctionalOutput class
2936 FunctionalData class
5078 " 2937 "
5079 fontSize 14 2938 fontSize 14
5080 fontName "Consolas" 2939 fontName "Consolas"
@@ -5089,137 +2948,7 @@ graph
5089 id 9 2948 id 9
5090 graphics 2949 graphics
5091 [ 2950 [
5092 w 103.4 2951 w 161.70000000000002
5093 h 26
5094 type "rectangle"
5095 fill "#FFFFFF"
5096 fill2 "#FFFFFF"
5097 outline "#000000"
5098 ]
5099 LabelGraphics
5100 [
5101 text "New Strings"
5102 outline "#000000"
5103 fill "#FFFFFF"
5104 fontSize 16
5105 fontName "Monospace"
5106 autoSizePolicy "node_width"
5107 anchor "t"
5108 borderDistance 0.0
5109 ]
5110 LabelGraphics
5111 [
5112 text "
5113 "
5114 fontSize 14
5115 fontName "Consolas"
5116 alignment "left"
5117 anchor "tl"
5118 borderDistance 6
5119 ]
5120 ]
5121
5122 node
5123 [
5124 id 10
5125 graphics
5126 [
5127 w 103.4
5128 h 26
5129 type "rectangle"
5130 fill "#FFFFFF"
5131 fill2 "#FFFFFF"
5132 outline "#000000"
5133 ]
5134 LabelGraphics
5135 [
5136 text "New Objects"
5137 outline "#000000"
5138 fill "#FFFFFF"
5139 fontSize 16
5140 fontName "Monospace"
5141 autoSizePolicy "node_width"
5142 anchor "t"
5143 borderDistance 0.0
5144 ]
5145 LabelGraphics
5146 [
5147 text "
5148 "
5149 fontSize 14
5150 fontName "Consolas"
5151 alignment "left"
5152 anchor "tl"
5153 borderDistance 6
5154 ]
5155 ]
5156 edge
5157 [
5158 source 6
5159 target 3
5160 graphics
5161 [
5162 fill "#000000"
5163 targetArrow "standard"
5164 ]
5165 LabelGraphics
5166 [
5167 text "model reference FunctionalElement"
5168 fontSize 14
5169 fontName "Consolas"
5170 configuration "AutoFlippingLabel"
5171 model "six_pos"
5172 position "thead"
5173 ]
5174 ]
5175 edge
5176 [
5177 source 3
5178 target 6
5179 graphics
5180 [
5181 fill "#000000"
5182 width 3
5183 targetArrow "standard"
5184 ]
5185 LabelGraphics
5186 [
5187 text "rootElements reference FunctionalArchitectureModel"
5188 fontSize 14
5189 fontName "Consolas"
5190 configuration "AutoFlippingLabel"
5191 model "six_pos"
5192 position "thead"
5193 ]
5194 ]
5195 edge
5196 [
5197 source 6
5198 target 2
5199 graphics
5200 [
5201 fill "#000000"
5202 targetArrow "standard"
5203 ]
5204 LabelGraphics
5205 [
5206 text "type attribute Function"
5207 fontSize 14
5208 fontName "Consolas"
5209 configuration "AutoFlippingLabel"
5210 model "six_pos"
5211 position "thead"
5212 ]
5213 ]
5214]
5215graph
5216[
5217 node
5218 [
5219 id 0
5220 graphics
5221 [
5222 w 226.60000000000002
5223 h 40 2952 h 40
5224 type "rectangle" 2953 type "rectangle"
5225 fill "#FFFFFF" 2954 fill "#FFFFFF"
@@ -5228,43 +2957,7 @@ graph
5228 ] 2957 ]
5229 LabelGraphics 2958 LabelGraphics
5230 [ 2959 [
5231 text "Root literal FunctionType" 2960 text "null"
5232 outline "#000000"
5233 fill "#FFFFFF"
5234 fontSize 16
5235 fontName "Monospace"
5236 autoSizePolicy "node_width"
5237 anchor "t"
5238 borderDistance 0.0
5239 ]
5240 LabelGraphics
5241 [
5242 text "
5243 FunctionType enum
5244 "
5245 fontSize 14
5246 fontName "Consolas"
5247 alignment "left"
5248 anchor "tl"
5249 borderDistance 6
5250 ]
5251 ]
5252
5253 node
5254 [
5255 id 1
5256 graphics
5257 [
5258 w 297.0
5259 h 40
5260 type "rectangle"
5261 fill "#FFFFFF"
5262 fill2 "#FFFFFF"
5263 outline "#000000"
5264 ]
5265 LabelGraphics
5266 [
5267 text "Intermediate literal FunctionType"
5268 outline "#000000" 2961 outline "#000000"
5269 fill "#FFFFFF" 2962 fill "#FFFFFF"
5270 fontSize 16 2963 fontSize 16
@@ -5276,7 +2969,7 @@ graph
5276 LabelGraphics 2969 LabelGraphics
5277 [ 2970 [
5278 text " 2971 text "
5279 FunctionType enum 2972 FAMTerminator class
5280 " 2973 "
5281 fontSize 14 2974 fontSize 14
5282 fontName "Consolas" 2975 fontName "Consolas"
@@ -5288,10 +2981,10 @@ graph
5288 2981
5289 node 2982 node
5290 [ 2983 [
5291 id 2 2984 id 10
5292 graphics 2985 graphics
5293 [ 2986 [
5294 w 226.60000000000002 2987 w 161.70000000000002
5295 h 40 2988 h 40
5296 type "rectangle" 2989 type "rectangle"
5297 fill "#FFFFFF" 2990 fill "#FFFFFF"
@@ -5300,115 +2993,7 @@ graph
5300 ] 2993 ]
5301 LabelGraphics 2994 LabelGraphics
5302 [ 2995 [
5303 text "Leaf literal FunctionType" 2996 text "null"
5304 outline "#000000"
5305 fill "#FFFFFF"
5306 fontSize 16
5307 fontName "Monospace"
5308 autoSizePolicy "node_width"
5309 anchor "t"
5310 borderDistance 0.0
5311 ]
5312 LabelGraphics
5313 [
5314 text "
5315 FunctionType enum
5316 "
5317 fontSize 14
5318 fontName "Consolas"
5319 alignment "left"
5320 anchor "tl"
5321 borderDistance 6
5322 ]
5323 ]
5324
5325 node
5326 [
5327 id 3
5328 graphics
5329 [
5330 w 361.90000000000003
5331 h 54
5332 type "rectangle"
5333 fill "#FFFFFF"
5334 fill2 "#FFFFFF"
5335 outline "#000000"
5336 ]
5337 LabelGraphics
5338 [
5339 text "o 1"
5340 outline "#000000"
5341 fill "#FFFFFF"
5342 fontSize 16
5343 fontName "Monospace"
5344 autoSizePolicy "node_width"
5345 anchor "t"
5346 borderDistance 0.0
5347 ]
5348 LabelGraphics
5349 [
5350 text "
5351 FunctionalArchitectureModel class DefinedPart
5352 FunctionalArchitectureModel class
5353 "
5354 fontSize 14
5355 fontName "Consolas"
5356 alignment "left"
5357 anchor "tl"
5358 borderDistance 6
5359 ]
5360 ]
5361
5362 node
5363 [
5364 id 4
5365 graphics
5366 [
5367 w 41.800000000000004
5368 h 26
5369 type "rectangle"
5370 fill "#FFFFFF"
5371 fill2 "#FFFFFF"
5372 outline "#000000"
5373 ]
5374 LabelGraphics
5375 [
5376 text "true"
5377 outline "#000000"
5378 fill "#FFFFFF"
5379 fontSize 16
5380 fontName "Monospace"
5381 autoSizePolicy "node_width"
5382 anchor "t"
5383 borderDistance 0.0
5384 ]
5385 LabelGraphics
5386 [
5387 text "
5388 "
5389 fontSize 14
5390 fontName "Consolas"
5391 alignment "left"
5392 anchor "tl"
5393 borderDistance 6
5394 ]
5395 ]
5396
5397 node
5398 [
5399 id 5
5400 graphics
5401 [
5402 w 50.6
5403 h 26
5404 type "rectangle"
5405 fill "#FFFFFF"
5406 fill2 "#FFFFFF"
5407 outline "#000000"
5408 ]
5409 LabelGraphics
5410 [
5411 text "false"
5412 outline "#000000" 2997 outline "#000000"
5413 fill "#FFFFFF" 2998 fill "#FFFFFF"
5414 fontSize 16 2999 fontSize 16
@@ -5420,6 +3005,7 @@ graph
5420 LabelGraphics 3005 LabelGraphics
5421 [ 3006 [
5422 text " 3007 text "
3008 FAMTerminator class
5423 " 3009 "
5424 fontSize 14 3010 fontSize 14
5425 fontName "Consolas" 3011 fontName "Consolas"
@@ -5431,10 +3017,10 @@ graph
5431 3017
5432 node 3018 node
5433 [ 3019 [
5434 id 6 3020 id 11
5435 graphics 3021 graphics
5436 [ 3022 [
5437 w 192.50000000000003 3023 w 177.10000000000002
5438 h 54 3024 h 54
5439 type "rectangle" 3025 type "rectangle"
5440 fill "#FFFFFF" 3026 fill "#FFFFFF"
@@ -5455,8 +3041,8 @@ graph
5455 LabelGraphics 3041 LabelGraphics
5456 [ 3042 [
5457 text " 3043 text "
5458 FunctionalElement class 3044 FunctionalInput class
5459 Function class 3045 FunctionalData class
5460 " 3046 "
5461 fontSize 14 3047 fontSize 14
5462 fontName "Consolas" 3048 fontName "Consolas"
@@ -5468,7 +3054,7 @@ graph
5468 3054
5469 node 3055 node
5470 [ 3056 [
5471 id 7 3057 id 12
5472 graphics 3058 graphics
5473 [ 3059 [
5474 w 112.2 3060 w 112.2
@@ -5503,7 +3089,7 @@ graph
5503 3089
5504 node 3090 node
5505 [ 3091 [
5506 id 8 3092 id 13
5507 graphics 3093 graphics
5508 [ 3094 [
5509 w 85.80000000000001 3095 w 85.80000000000001
@@ -5538,7 +3124,7 @@ graph
5538 3124
5539 node 3125 node
5540 [ 3126 [
5541 id 9 3127 id 14
5542 graphics 3128 graphics
5543 [ 3129 [
5544 w 103.4 3130 w 103.4
@@ -5573,7 +3159,7 @@ graph
5573 3159
5574 node 3160 node
5575 [ 3161 [
5576 id 10 3162 id 15
5577 graphics 3163 graphics
5578 [ 3164 [
5579 w 103.4 3165 w 103.4
@@ -5607,8 +3193,8 @@ graph
5607 ] 3193 ]
5608 edge 3194 edge
5609 [ 3195 [
5610 source 6 3196 source 9
5611 target 3 3197 target 6
5612 graphics 3198 graphics
5613 [ 3199 [
5614 fill "#000000" 3200 fill "#000000"
@@ -5616,7 +3202,26 @@ graph
5616 ] 3202 ]
5617 LabelGraphics 3203 LabelGraphics
5618 [ 3204 [
5619 text "model reference FunctionalElement" 3205 text "data reference FAMTerminator"
3206 fontSize 14
3207 fontName "Consolas"
3208 configuration "AutoFlippingLabel"
3209 model "six_pos"
3210 position "thead"
3211 ]
3212 ]
3213 edge
3214 [
3215 source 10
3216 target 7
3217 graphics
3218 [
3219 fill "#000000"
3220 targetArrow "standard"
3221 ]
3222 LabelGraphics
3223 [
3224 text "data reference FAMTerminator"
5620 fontSize 14 3225 fontSize 14
5621 fontName "Consolas" 3226 fontName "Consolas"
5622 configuration "AutoFlippingLabel" 3227 configuration "AutoFlippingLabel"
@@ -5626,7 +3231,7 @@ graph
5626 ] 3231 ]
5627 edge 3232 edge
5628 [ 3233 [
5629 source 3 3234 source 5
5630 target 6 3235 target 6
5631 graphics 3236 graphics
5632 [ 3237 [
@@ -5636,7 +3241,67 @@ graph
5636 ] 3241 ]
5637 LabelGraphics 3242 LabelGraphics
5638 [ 3243 [
5639 text "rootElements reference FunctionalArchitectureModel" 3244 text "data reference FunctionalInterface"
3245 fontSize 14
3246 fontName "Consolas"
3247 configuration "AutoFlippingLabel"
3248 model "six_pos"
3249 position "thead"
3250 ]
3251 ]
3252 edge
3253 [
3254 source 5
3255 target 7
3256 graphics
3257 [
3258 fill "#000000"
3259 width 3
3260 targetArrow "standard"
3261 ]
3262 LabelGraphics
3263 [
3264 text "data reference FunctionalInterface"
3265 fontSize 14
3266 fontName "Consolas"
3267 configuration "AutoFlippingLabel"
3268 model "six_pos"
3269 position "thead"
3270 ]
3271 ]
3272 edge
3273 [
3274 source 5
3275 target 8
3276 graphics
3277 [
3278 fill "#000000"
3279 width 3
3280 targetArrow "standard"
3281 ]
3282 LabelGraphics
3283 [
3284 text "data reference FunctionalInterface"
3285 fontSize 14
3286 fontName "Consolas"
3287 configuration "AutoFlippingLabel"
3288 model "six_pos"
3289 position "thead"
3290 ]
3291 ]
3292 edge
3293 [
3294 source 5
3295 target 11
3296 graphics
3297 [
3298 fill "#000000"
3299 width 3
3300 targetArrow "standard"
3301 ]
3302 LabelGraphics
3303 [
3304 text "data reference FunctionalInterface"
5640 fontSize 14 3305 fontSize 14
5641 fontName "Consolas" 3306 fontName "Consolas"
5642 configuration "AutoFlippingLabel" 3307 configuration "AutoFlippingLabel"
@@ -5647,15 +3312,112 @@ graph
5647 edge 3312 edge
5648 [ 3313 [
5649 source 6 3314 source 6
5650 target 1 3315 target 9
5651 graphics 3316 graphics
5652 [ 3317 [
5653 fill "#000000" 3318 fill "#000000"
3319 width 3
5654 targetArrow "standard" 3320 targetArrow "standard"
5655 ] 3321 ]
5656 LabelGraphics 3322 LabelGraphics
5657 [ 3323 [
5658 text "type attribute Function" 3324 text "terminator reference FunctionalData"
3325 fontSize 14
3326 fontName "Consolas"
3327 configuration "AutoFlippingLabel"
3328 model "six_pos"
3329 position "thead"
3330 ]
3331 ]
3332 edge
3333 [
3334 source 7
3335 target 10
3336 graphics
3337 [
3338 fill "#000000"
3339 width 3
3340 targetArrow "standard"
3341 ]
3342 LabelGraphics
3343 [
3344 text "terminator reference FunctionalData"
3345 fontSize 14
3346 fontName "Consolas"
3347 configuration "AutoFlippingLabel"
3348 model "six_pos"
3349 position "thead"
3350 ]
3351 ]
3352 edge
3353 [
3354 source 6
3355 target 5
3356 graphics
3357 [
3358 fill "#000000"
3359 targetArrow "standard"
3360 ]
3361 LabelGraphics
3362 [
3363 text "interface reference FunctionalData"
3364 fontSize 14
3365 fontName "Consolas"
3366 configuration "AutoFlippingLabel"
3367 model "six_pos"
3368 position "thead"
3369 ]
3370 ]
3371 edge
3372 [
3373 source 7
3374 target 5
3375 graphics
3376 [
3377 fill "#000000"
3378 targetArrow "standard"
3379 ]
3380 LabelGraphics
3381 [
3382 text "interface reference FunctionalData"
3383 fontSize 14
3384 fontName "Consolas"
3385 configuration "AutoFlippingLabel"
3386 model "six_pos"
3387 position "thead"
3388 ]
3389 ]
3390 edge
3391 [
3392 source 8
3393 target 5
3394 graphics
3395 [
3396 fill "#000000"
3397 targetArrow "standard"
3398 ]
3399 LabelGraphics
3400 [
3401 text "interface reference FunctionalData"
3402 fontSize 14
3403 fontName "Consolas"
3404 configuration "AutoFlippingLabel"
3405 model "six_pos"
3406 position "thead"
3407 ]
3408 ]
3409 edge
3410 [
3411 source 11
3412 target 5
3413 graphics
3414 [
3415 fill "#000000"
3416 targetArrow "standard"
3417 ]
3418 LabelGraphics
3419 [
3420 text "interface reference FunctionalData"
5659 fontSize 14 3421 fontSize 14
5660 fontName "Consolas" 3422 fontName "Consolas"
5661 configuration "AutoFlippingLabel" 3423 configuration "AutoFlippingLabel"
@@ -5671,8 +3433,8 @@ graph
5671 id 0 3433 id 0
5672 graphics 3434 graphics
5673 [ 3435 [
5674 w 254.10000000000002 3436 w 226.60000000000002
5675 h 110 3437 h 40
5676 type "rectangle" 3438 type "rectangle"
5677 fill "#FFFFFF" 3439 fill "#FFFFFF"
5678 fill2 "#FFFFFF" 3440 fill2 "#FFFFFF"
@@ -5680,7 +3442,7 @@ graph
5680 ] 3442 ]
5681 LabelGraphics 3443 LabelGraphics
5682 [ 3444 [
5683 text "o 1" 3445 text "Root literal FunctionType"
5684 outline "#000000" 3446 outline "#000000"
5685 fill "#FFFFFF" 3447 fill "#FFFFFF"
5686 fontSize 16 3448 fontSize 16
@@ -5692,12 +3454,7 @@ graph
5692 LabelGraphics 3454 LabelGraphics
5693 [ 3455 [
5694 text " 3456 text "
5695 EModelElement class DefinedPart 3457 FunctionType enum
5696 ENamedElement class DefinedPart
5697 EPackage class DefinedPart
5698 EModelElement class
5699 ENamedElement class
5700 EPackage class
5701 " 3458 "
5702 fontSize 14 3459 fontSize 14
5703 fontName "Consolas" 3460 fontName "Consolas"
@@ -5712,8 +3469,8 @@ graph
5712 id 1 3469 id 1
5713 graphics 3470 graphics
5714 [ 3471 [
5715 w 41.800000000000004 3472 w 297.0
5716 h 26 3473 h 40
5717 type "rectangle" 3474 type "rectangle"
5718 fill "#FFFFFF" 3475 fill "#FFFFFF"
5719 fill2 "#FFFFFF" 3476 fill2 "#FFFFFF"
@@ -5721,7 +3478,7 @@ graph
5721 ] 3478 ]
5722 LabelGraphics 3479 LabelGraphics
5723 [ 3480 [
5724 text "true" 3481 text "Intermediate literal FunctionType"
5725 outline "#000000" 3482 outline "#000000"
5726 fill "#FFFFFF" 3483 fill "#FFFFFF"
5727 fontSize 16 3484 fontSize 16
@@ -5733,6 +3490,7 @@ graph
5733 LabelGraphics 3490 LabelGraphics
5734 [ 3491 [
5735 text " 3492 text "
3493 FunctionType enum
5736 " 3494 "
5737 fontSize 14 3495 fontSize 14
5738 fontName "Consolas" 3496 fontName "Consolas"
@@ -5747,8 +3505,8 @@ graph
5747 id 2 3505 id 2
5748 graphics 3506 graphics
5749 [ 3507 [
5750 w 50.6 3508 w 226.60000000000002
5751 h 26 3509 h 40
5752 type "rectangle" 3510 type "rectangle"
5753 fill "#FFFFFF" 3511 fill "#FFFFFF"
5754 fill2 "#FFFFFF" 3512 fill2 "#FFFFFF"
@@ -5756,7 +3514,7 @@ graph
5756 ] 3514 ]
5757 LabelGraphics 3515 LabelGraphics
5758 [ 3516 [
5759 text "false" 3517 text "Leaf literal FunctionType"
5760 outline "#000000" 3518 outline "#000000"
5761 fill "#FFFFFF" 3519 fill "#FFFFFF"
5762 fontSize 16 3520 fontSize 16
@@ -5768,6 +3526,7 @@ graph
5768 LabelGraphics 3526 LabelGraphics
5769 [ 3527 [
5770 text " 3528 text "
3529 FunctionType enum
5771 " 3530 "
5772 fontSize 14 3531 fontSize 14
5773 fontName "Consolas" 3532 fontName "Consolas"
@@ -5782,7 +3541,7 @@ graph
5782 id 3 3541 id 3
5783 graphics 3542 graphics
5784 [ 3543 [
5785 w 24.200000000000003 3544 w 41.800000000000004
5786 h 26 3545 h 26
5787 type "rectangle" 3546 type "rectangle"
5788 fill "#FFFFFF" 3547 fill "#FFFFFF"
@@ -5791,7 +3550,7 @@ graph
5791 ] 3550 ]
5792 LabelGraphics 3551 LabelGraphics
5793 [ 3552 [
5794 text "-1" 3553 text "true"
5795 outline "#000000" 3554 outline "#000000"
5796 fill "#FFFFFF" 3555 fill "#FFFFFF"
5797 fontSize 16 3556 fontSize 16
@@ -5817,7 +3576,7 @@ graph
5817 id 4 3576 id 4
5818 graphics 3577 graphics
5819 [ 3578 [
5820 w 15.400000000000002 3579 w 50.6
5821 h 26 3580 h 26
5822 type "rectangle" 3581 type "rectangle"
5823 fill "#FFFFFF" 3582 fill "#FFFFFF"
@@ -5826,7 +3585,7 @@ graph
5826 ] 3585 ]
5827 LabelGraphics 3586 LabelGraphics
5828 [ 3587 [
5829 text "0" 3588 text "false"
5830 outline "#000000" 3589 outline "#000000"
5831 fill "#FFFFFF" 3590 fill "#FFFFFF"
5832 fontSize 16 3591 fontSize 16
@@ -5852,8 +3611,8 @@ graph
5852 id 5 3611 id 5
5853 graphics 3612 graphics
5854 [ 3613 [
5855 w 15.400000000000002 3614 w 269.5
5856 h 26 3615 h 40
5857 type "rectangle" 3616 type "rectangle"
5858 fill "#FFFFFF" 3617 fill "#FFFFFF"
5859 fill2 "#FFFFFF" 3618 fill2 "#FFFFFF"
@@ -5861,7 +3620,7 @@ graph
5861 ] 3620 ]
5862 LabelGraphics 3621 LabelGraphics
5863 [ 3622 [
5864 text "1" 3623 text "null"
5865 outline "#000000" 3624 outline "#000000"
5866 fill "#FFFFFF" 3625 fill "#FFFFFF"
5867 fontSize 16 3626 fontSize 16
@@ -5873,6 +3632,7 @@ graph
5873 LabelGraphics 3632 LabelGraphics
5874 [ 3633 [
5875 text " 3634 text "
3635 FunctionalArchitectureModel class
5876 " 3636 "
5877 fontSize 14 3637 fontSize 14
5878 fontName "Consolas" 3638 fontName "Consolas"
@@ -5887,8 +3647,8 @@ graph
5887 id 6 3647 id 6
5888 graphics 3648 graphics
5889 [ 3649 [
5890 w 33.0 3650 w 192.50000000000003
5891 h 26 3651 h 54
5892 type "rectangle" 3652 type "rectangle"
5893 fill "#FFFFFF" 3653 fill "#FFFFFF"
5894 fill2 "#FFFFFF" 3654 fill2 "#FFFFFF"
@@ -5896,7 +3656,7 @@ graph
5896 ] 3656 ]
5897 LabelGraphics 3657 LabelGraphics
5898 [ 3658 [
5899 text ""A"" 3659 text "null"
5900 outline "#000000" 3660 outline "#000000"
5901 fill "#FFFFFF" 3661 fill "#FFFFFF"
5902 fontSize 16 3662 fontSize 16
@@ -5908,6 +3668,8 @@ graph
5908 LabelGraphics 3668 LabelGraphics
5909 [ 3669 [
5910 text " 3670 text "
3671 FunctionalElement class
3672 Function class
5911 " 3673 "
5912 fontSize 14 3674 fontSize 14
5913 fontName "Consolas" 3675 fontName "Consolas"
@@ -5922,8 +3684,8 @@ graph
5922 id 7 3684 id 7
5923 graphics 3685 graphics
5924 [ 3686 [
5925 w 33.0 3687 w 207.9
5926 h 26 3688 h 40
5927 type "rectangle" 3689 type "rectangle"
5928 fill "#FFFFFF" 3690 fill "#FFFFFF"
5929 fill2 "#FFFFFF" 3691 fill2 "#FFFFFF"
@@ -5931,7 +3693,7 @@ graph
5931 ] 3693 ]
5932 LabelGraphics 3694 LabelGraphics
5933 [ 3695 [
5934 text ""B"" 3696 text "null"
5935 outline "#000000" 3697 outline "#000000"
5936 fill "#FFFFFF" 3698 fill "#FFFFFF"
5937 fontSize 16 3699 fontSize 16
@@ -5943,6 +3705,7 @@ graph
5943 LabelGraphics 3705 LabelGraphics
5944 [ 3706 [
5945 text " 3707 text "
3708 FunctionalInterface class
5946 " 3709 "
5947 fontSize 14 3710 fontSize 14
5948 fontName "Consolas" 3711 fontName "Consolas"
@@ -5957,8 +3720,8 @@ graph
5957 id 8 3720 id 8
5958 graphics 3721 graphics
5959 [ 3722 [
5960 w 94.60000000000001 3723 w 184.8
5961 h 26 3724 h 54
5962 type "rectangle" 3725 type "rectangle"
5963 fill "#FFFFFF" 3726 fill "#FFFFFF"
5964 fill2 "#FFFFFF" 3727 fill2 "#FFFFFF"
@@ -5966,7 +3729,7 @@ graph
5966 ] 3729 ]
5967 LabelGraphics 3730 LabelGraphics
5968 [ 3731 [
5969 text ""nsPrefix"" 3732 text "null"
5970 outline "#000000" 3733 outline "#000000"
5971 fill "#FFFFFF" 3734 fill "#FFFFFF"
5972 fontSize 16 3735 fontSize 16
@@ -5978,6 +3741,8 @@ graph
5978 LabelGraphics 3741 LabelGraphics
5979 [ 3742 [
5980 text " 3743 text "
3744 FunctionalOutput class
3745 FunctionalData class
5981 " 3746 "
5982 fontSize 14 3747 fontSize 14
5983 fontName "Consolas" 3748 fontName "Consolas"
@@ -5992,8 +3757,8 @@ graph
5992 id 9 3757 id 9
5993 graphics 3758 graphics
5994 [ 3759 [
5995 w 68.2 3760 w 161.70000000000002
5996 h 26 3761 h 40
5997 type "rectangle" 3762 type "rectangle"
5998 fill "#FFFFFF" 3763 fill "#FFFFFF"
5999 fill2 "#FFFFFF" 3764 fill2 "#FFFFFF"
@@ -6001,7 +3766,7 @@ graph
6001 ] 3766 ]
6002 LabelGraphics 3767 LabelGraphics
6003 [ 3768 [
6004 text ""nsUri"" 3769 text "null"
6005 outline "#000000" 3770 outline "#000000"
6006 fill "#FFFFFF" 3771 fill "#FFFFFF"
6007 fontSize 16 3772 fontSize 16
@@ -6013,6 +3778,7 @@ graph
6013 LabelGraphics 3778 LabelGraphics
6014 [ 3779 [
6015 text " 3780 text "
3781 FAMTerminator class
6016 " 3782 "
6017 fontSize 14 3783 fontSize 14
6018 fontName "Consolas" 3784 fontName "Consolas"
@@ -6027,8 +3793,8 @@ graph
6027 id 10 3793 id 10
6028 graphics 3794 graphics
6029 [ 3795 [
6030 w 121.00000000000001 3796 w 184.8
6031 h 26 3797 h 54
6032 type "rectangle" 3798 type "rectangle"
6033 fill "#FFFFFF" 3799 fill "#FFFFFF"
6034 fill2 "#FFFFFF" 3800 fill2 "#FFFFFF"
@@ -6036,7 +3802,7 @@ graph
6036 ] 3802 ]
6037 LabelGraphics 3803 LabelGraphics
6038 [ 3804 [
6039 text ""packageName"" 3805 text "null"
6040 outline "#000000" 3806 outline "#000000"
6041 fill "#FFFFFF" 3807 fill "#FFFFFF"
6042 fontSize 16 3808 fontSize 16
@@ -6048,6 +3814,8 @@ graph
6048 LabelGraphics 3814 LabelGraphics
6049 [ 3815 [
6050 text " 3816 text "
3817 FunctionalOutput class
3818 FunctionalData class
6051 " 3819 "
6052 fontSize 14 3820 fontSize 14
6053 fontName "Consolas" 3821 fontName "Consolas"
@@ -6062,8 +3830,8 @@ graph
6062 id 11 3830 id 11
6063 graphics 3831 graphics
6064 [ 3832 [
6065 w 269.5 3833 w 177.10000000000002
6066 h 110 3834 h 54
6067 type "rectangle" 3835 type "rectangle"
6068 fill "#FFFFFF" 3836 fill "#FFFFFF"
6069 fill2 "#FFFFFF" 3837 fill2 "#FFFFFF"
@@ -6083,12 +3851,8 @@ graph
6083 LabelGraphics 3851 LabelGraphics
6084 [ 3852 [
6085 text " 3853 text "
6086 EClassifier class 3854 FunctionalInput class
6087 EDataType class 3855 FunctionalData class
6088 EModelElement class
6089 ENamedElement class
6090 EModelElement class UndefinedPart
6091 ENamedElement class UndefinedPart
6092 " 3856 "
6093 fontSize 14 3857 fontSize 14
6094 fontName "Consolas" 3858 fontName "Consolas"
@@ -6103,164 +3867,6 @@ graph
6103 id 12 3867 id 12
6104 graphics 3868 graphics
6105 [ 3869 [
6106 w 269.5
6107 h 68
6108 type "rectangle"
6109 fill "#FFFFFF"
6110 fill2 "#FFFFFF"
6111 outline "#000000"
6112 ]
6113 LabelGraphics
6114 [
6115 text "null"
6116 outline "#000000"
6117 fill "#FFFFFF"
6118 fontSize 16
6119 fontName "Monospace"
6120 autoSizePolicy "node_width"
6121 anchor "t"
6122 borderDistance 0.0
6123 ]
6124 LabelGraphics
6125 [
6126 text "
6127 EAnnotation class
6128 EModelElement class
6129 EModelElement class UndefinedPart
6130 "
6131 fontSize 14
6132 fontName "Consolas"
6133 alignment "left"
6134 anchor "tl"
6135 borderDistance 6
6136 ]
6137 ]
6138
6139 node
6140 [
6141 id 13
6142 graphics
6143 [
6144 w 269.5
6145 h 110
6146 type "rectangle"
6147 fill "#FFFFFF"
6148 fill2 "#FFFFFF"
6149 outline "#000000"
6150 ]
6151 LabelGraphics
6152 [
6153 text "null"
6154 outline "#000000"
6155 fill "#FFFFFF"
6156 fontSize 16
6157 fontName "Monospace"
6158 autoSizePolicy "node_width"
6159 anchor "t"
6160 borderDistance 0.0
6161 ]
6162 LabelGraphics
6163 [
6164 text "
6165 EClass class
6166 EClassifier class
6167 EModelElement class
6168 ENamedElement class
6169 EModelElement class UndefinedPart
6170 ENamedElement class UndefinedPart
6171 "
6172 fontSize 14
6173 fontName "Consolas"
6174 alignment "left"
6175 anchor "tl"
6176 borderDistance 6
6177 ]
6178 ]
6179
6180 node
6181 [
6182 id 14
6183 graphics
6184 [
6185 w 269.5
6186 h 110
6187 type "rectangle"
6188 fill "#FFFFFF"
6189 fill2 "#FFFFFF"
6190 outline "#000000"
6191 ]
6192 LabelGraphics
6193 [
6194 text "null"
6195 outline "#000000"
6196 fill "#FFFFFF"
6197 fontSize 16
6198 fontName "Monospace"
6199 autoSizePolicy "node_width"
6200 anchor "t"
6201 borderDistance 0.0
6202 ]
6203 LabelGraphics
6204 [
6205 text "
6206 EClassifier class
6207 EDataType class
6208 EModelElement class
6209 ENamedElement class
6210 EModelElement class UndefinedPart
6211 ENamedElement class UndefinedPart
6212 "
6213 fontSize 14
6214 fontName "Consolas"
6215 alignment "left"
6216 anchor "tl"
6217 borderDistance 6
6218 ]
6219 ]
6220
6221 node
6222 [
6223 id 15
6224 graphics
6225 [
6226 w 269.5
6227 h 68
6228 type "rectangle"
6229 fill "#FFFFFF"
6230 fill2 "#FFFFFF"
6231 outline "#000000"
6232 ]
6233 LabelGraphics
6234 [
6235 text "null"
6236 outline "#000000"
6237 fill "#FFFFFF"
6238 fontSize 16
6239 fontName "Monospace"
6240 autoSizePolicy "node_width"
6241 anchor "t"
6242 borderDistance 0.0
6243 ]
6244 LabelGraphics
6245 [
6246 text "
6247 EAnnotation class
6248 EModelElement class
6249 EModelElement class UndefinedPart
6250 "
6251 fontSize 14
6252 fontName "Consolas"
6253 alignment "left"
6254 anchor "tl"
6255 borderDistance 6
6256 ]
6257 ]
6258
6259 node
6260 [
6261 id 16
6262 graphics
6263 [
6264 w 112.2 3870 w 112.2
6265 h 26 3871 h 26
6266 type "rectangle" 3872 type "rectangle"
@@ -6293,7 +3899,7 @@ graph
6293 3899
6294 node 3900 node
6295 [ 3901 [
6296 id 17 3902 id 13
6297 graphics 3903 graphics
6298 [ 3904 [
6299 w 85.80000000000001 3905 w 85.80000000000001
@@ -6328,7 +3934,7 @@ graph
6328 3934
6329 node 3935 node
6330 [ 3936 [
6331 id 18 3937 id 14
6332 graphics 3938 graphics
6333 [ 3939 [
6334 w 103.4 3940 w 103.4
@@ -6363,7 +3969,7 @@ graph
6363 3969
6364 node 3970 node
6365 [ 3971 [
6366 id 19 3972 id 15
6367 graphics 3973 graphics
6368 [ 3974 [
6369 w 103.4 3975 w 103.4
@@ -6397,35 +4003,17 @@ graph
6397 ] 4003 ]
6398 edge 4004 edge
6399 [ 4005 [
6400 source 12 4006 source 6
6401 target 0 4007 target 7
6402 graphics
6403 [
6404 fill "#000000"
6405 targetArrow "standard"
6406 ]
6407 LabelGraphics
6408 [
6409 text "eModelElement reference EAnnotation"
6410 fontSize 14
6411 fontName "Consolas"
6412 configuration "AutoFlippingLabel"
6413 model "six_pos"
6414 position "thead"
6415 ]
6416 ]
6417 edge
6418 [
6419 source 15
6420 target 0
6421 graphics 4008 graphics
6422 [ 4009 [
6423 fill "#000000" 4010 fill "#000000"
4011 width 3
6424 targetArrow "standard" 4012 targetArrow "standard"
6425 ] 4013 ]
6426 LabelGraphics 4014 LabelGraphics
6427 [ 4015 [
6428 text "eModelElement reference EAnnotation" 4016 text "interface reference FunctionalElement"
6429 fontSize 14 4017 fontSize 14
6430 fontName "Consolas" 4018 fontName "Consolas"
6431 configuration "AutoFlippingLabel" 4019 configuration "AutoFlippingLabel"
@@ -6435,8 +4023,8 @@ graph
6435 ] 4023 ]
6436 edge 4024 edge
6437 [ 4025 [
6438 source 11 4026 source 6
6439 target 0 4027 target 5
6440 graphics 4028 graphics
6441 [ 4029 [
6442 fill "#000000" 4030 fill "#000000"
@@ -6444,7 +4032,7 @@ graph
6444 ] 4032 ]
6445 LabelGraphics 4033 LabelGraphics
6446 [ 4034 [
6447 text "ePackage reference EClassifier" 4035 text "model reference FunctionalElement"
6448 fontSize 14 4036 fontSize 14
6449 fontName "Consolas" 4037 fontName "Consolas"
6450 configuration "AutoFlippingLabel" 4038 configuration "AutoFlippingLabel"
@@ -6454,16 +4042,17 @@ graph
6454 ] 4042 ]
6455 edge 4043 edge
6456 [ 4044 [
6457 source 13 4045 source 5
6458 target 0 4046 target 6
6459 graphics 4047 graphics
6460 [ 4048 [
6461 fill "#000000" 4049 fill "#000000"
4050 width 3
6462 targetArrow "standard" 4051 targetArrow "standard"
6463 ] 4052 ]
6464 LabelGraphics 4053 LabelGraphics
6465 [ 4054 [
6466 text "ePackage reference EClassifier" 4055 text "rootElements reference FunctionalArchitectureModel"
6467 fontSize 14 4056 fontSize 14
6468 fontName "Consolas" 4057 fontName "Consolas"
6469 configuration "AutoFlippingLabel" 4058 configuration "AutoFlippingLabel"
@@ -6473,8 +4062,8 @@ graph
6473 ] 4062 ]
6474 edge 4063 edge
6475 [ 4064 [
6476 source 14 4065 source 9
6477 target 0 4066 target 8
6478 graphics 4067 graphics
6479 [ 4068 [
6480 fill "#000000" 4069 fill "#000000"
@@ -6482,7 +4071,7 @@ graph
6482 ] 4071 ]
6483 LabelGraphics 4072 LabelGraphics
6484 [ 4073 [
6485 text "ePackage reference EClassifier" 4074 text "data reference FAMTerminator"
6486 fontSize 14 4075 fontSize 14
6487 fontName "Consolas" 4076 fontName "Consolas"
6488 configuration "AutoFlippingLabel" 4077 configuration "AutoFlippingLabel"
@@ -6492,8 +4081,8 @@ graph
6492 ] 4081 ]
6493 edge 4082 edge
6494 [ 4083 [
6495 source 0 4084 source 7
6496 target 12 4085 target 8
6497 graphics 4086 graphics
6498 [ 4087 [
6499 fill "#000000" 4088 fill "#000000"
@@ -6502,7 +4091,7 @@ graph
6502 ] 4091 ]
6503 LabelGraphics 4092 LabelGraphics
6504 [ 4093 [
6505 text "eAnnotations reference EModelElement" 4094 text "data reference FunctionalInterface"
6506 fontSize 14 4095 fontSize 14
6507 fontName "Consolas" 4096 fontName "Consolas"
6508 configuration "AutoFlippingLabel" 4097 configuration "AutoFlippingLabel"
@@ -6512,8 +4101,8 @@ graph
6512 ] 4101 ]
6513 edge 4102 edge
6514 [ 4103 [
6515 source 0 4104 source 7
6516 target 15 4105 target 10
6517 graphics 4106 graphics
6518 [ 4107 [
6519 fill "#000000" 4108 fill "#000000"
@@ -6522,7 +4111,7 @@ graph
6522 ] 4111 ]
6523 LabelGraphics 4112 LabelGraphics
6524 [ 4113 [
6525 text "eAnnotations reference EModelElement" 4114 text "data reference FunctionalInterface"
6526 fontSize 14 4115 fontSize 14
6527 fontName "Consolas" 4116 fontName "Consolas"
6528 configuration "AutoFlippingLabel" 4117 configuration "AutoFlippingLabel"
@@ -6532,7 +4121,7 @@ graph
6532 ] 4121 ]
6533 edge 4122 edge
6534 [ 4123 [
6535 source 0 4124 source 7
6536 target 11 4125 target 11
6537 graphics 4126 graphics
6538 [ 4127 [
@@ -6542,7 +4131,7 @@ graph
6542 ] 4131 ]
6543 LabelGraphics 4132 LabelGraphics
6544 [ 4133 [
6545 text "eClassifiers reference EPackage" 4134 text "data reference FunctionalInterface"
6546 fontSize 14 4135 fontSize 14
6547 fontName "Consolas" 4136 fontName "Consolas"
6548 configuration "AutoFlippingLabel" 4137 configuration "AutoFlippingLabel"
@@ -6552,17 +4141,16 @@ graph
6552 ] 4141 ]
6553 edge 4142 edge
6554 [ 4143 [
6555 source 0 4144 source 7
6556 target 13 4145 target 6
6557 graphics 4146 graphics
6558 [ 4147 [
6559 fill "#000000" 4148 fill "#000000"
6560 width 3
6561 targetArrow "standard" 4149 targetArrow "standard"
6562 ] 4150 ]
6563 LabelGraphics 4151 LabelGraphics
6564 [ 4152 [
6565 text "eClassifiers reference EPackage" 4153 text "element reference FunctionalInterface"
6566 fontSize 14 4154 fontSize 14
6567 fontName "Consolas" 4155 fontName "Consolas"
6568 configuration "AutoFlippingLabel" 4156 configuration "AutoFlippingLabel"
@@ -6572,8 +4160,8 @@ graph
6572 ] 4160 ]
6573 edge 4161 edge
6574 [ 4162 [
6575 source 0 4163 source 8
6576 target 14 4164 target 9
6577 graphics 4165 graphics
6578 [ 4166 [
6579 fill "#000000" 4167 fill "#000000"
@@ -6582,7 +4170,7 @@ graph
6582 ] 4170 ]
6583 LabelGraphics 4171 LabelGraphics
6584 [ 4172 [
6585 text "eClassifiers reference EPackage" 4173 text "terminator reference FunctionalData"
6586 fontSize 14 4174 fontSize 14
6587 fontName "Consolas" 4175 fontName "Consolas"
6588 configuration "AutoFlippingLabel" 4176 configuration "AutoFlippingLabel"
@@ -6592,7 +4180,7 @@ graph
6592 ] 4180 ]
6593 edge 4181 edge
6594 [ 4182 [
6595 source 12 4183 source 8
6596 target 7 4184 target 7
6597 graphics 4185 graphics
6598 [ 4186 [
@@ -6601,7 +4189,7 @@ graph
6601 ] 4189 ]
6602 LabelGraphics 4190 LabelGraphics
6603 [ 4191 [
6604 text "source attribute EAnnotation" 4192 text "interface reference FunctionalData"
6605 fontSize 14 4193 fontSize 14
6606 fontName "Consolas" 4194 fontName "Consolas"
6607 configuration "AutoFlippingLabel" 4195 configuration "AutoFlippingLabel"
@@ -6611,46 +4199,8 @@ graph
6611 ] 4199 ]
6612 edge 4200 edge
6613 [ 4201 [
6614 source 11 4202 source 10
6615 target 8 4203 target 7
6616 graphics
6617 [
6618 fill "#000000"
6619 targetArrow "standard"
6620 ]
6621 LabelGraphics
6622 [
6623 text "instanceClassName attribute EClassifier"
6624 fontSize 14
6625 fontName "Consolas"
6626 configuration "AutoFlippingLabel"
6627 model "six_pos"
6628 position "thead"
6629 ]
6630 ]
6631 edge
6632 [
6633 source 11
6634 target 9
6635 graphics
6636 [
6637 fill "#000000"
6638 targetArrow "standard"
6639 ]
6640 LabelGraphics
6641 [
6642 text "instanceTypeName attribute EClassifier"
6643 fontSize 14
6644 fontName "Consolas"
6645 configuration "AutoFlippingLabel"
6646 model "six_pos"
6647 position "thead"
6648 ]
6649 ]
6650 edge
6651 [
6652 source 0
6653 target 10
6654 graphics 4204 graphics
6655 [ 4205 [
6656 fill "#000000" 4206 fill "#000000"
@@ -6658,7 +4208,7 @@ graph
6658 ] 4208 ]
6659 LabelGraphics 4209 LabelGraphics
6660 [ 4210 [
6661 text "name attribute ENamedElement" 4211 text "interface reference FunctionalData"
6662 fontSize 14 4212 fontSize 14
6663 fontName "Consolas" 4213 fontName "Consolas"
6664 configuration "AutoFlippingLabel" 4214 configuration "AutoFlippingLabel"
@@ -6669,64 +4219,7 @@ graph
6669 edge 4219 edge
6670 [ 4220 [
6671 source 11 4221 source 11
6672 target 8 4222 target 7
6673 graphics
6674 [
6675 fill "#000000"
6676 targetArrow "standard"
6677 ]
6678 LabelGraphics
6679 [
6680 text "name attribute ENamedElement"
6681 fontSize 14
6682 fontName "Consolas"
6683 configuration "AutoFlippingLabel"
6684 model "six_pos"
6685 position "thead"
6686 ]
6687 ]
6688 edge
6689 [
6690 source 13
6691 target 9
6692 graphics
6693 [
6694 fill "#000000"
6695 targetArrow "standard"
6696 ]
6697 LabelGraphics
6698 [
6699 text "name attribute ENamedElement"
6700 fontSize 14
6701 fontName "Consolas"
6702 configuration "AutoFlippingLabel"
6703 model "six_pos"
6704 position "thead"
6705 ]
6706 ]
6707 edge
6708 [
6709 source 14
6710 target 8
6711 graphics
6712 [
6713 fill "#000000"
6714 targetArrow "standard"
6715 ]
6716 LabelGraphics
6717 [
6718 text "name attribute ENamedElement"
6719 fontSize 14
6720 fontName "Consolas"
6721 configuration "AutoFlippingLabel"
6722 model "six_pos"
6723 position "thead"
6724 ]
6725 ]
6726 edge
6727 [
6728 source 0
6729 target 9
6730 graphics 4223 graphics
6731 [ 4224 [
6732 fill "#000000" 4225 fill "#000000"
@@ -6734,7 +4227,7 @@ graph
6734 ] 4227 ]
6735 LabelGraphics 4228 LabelGraphics
6736 [ 4229 [
6737 text "nsURI attribute EPackage" 4230 text "interface reference FunctionalData"
6738 fontSize 14 4231 fontSize 14
6739 fontName "Consolas" 4232 fontName "Consolas"
6740 configuration "AutoFlippingLabel" 4233 configuration "AutoFlippingLabel"
@@ -6744,8 +4237,8 @@ graph
6744 ] 4237 ]
6745 edge 4238 edge
6746 [ 4239 [
6747 source 0 4240 source 6
6748 target 8 4241 target 2
6749 graphics 4242 graphics
6750 [ 4243 [
6751 fill "#000000" 4244 fill "#000000"
@@ -6753,7 +4246,7 @@ graph
6753 ] 4246 ]
6754 LabelGraphics 4247 LabelGraphics
6755 [ 4248 [
6756 text "nsPrefix attribute EPackage" 4249 text "type attribute Function"
6757 fontSize 14 4250 fontSize 14
6758 fontName "Consolas" 4251 fontName "Consolas"
6759 configuration "AutoFlippingLabel" 4252 configuration "AutoFlippingLabel"
@@ -6769,8 +4262,8 @@ graph
6769 id 0 4262 id 0
6770 graphics 4263 graphics
6771 [ 4264 [
6772 w 254.10000000000002 4265 w 226.60000000000002
6773 h 110 4266 h 40
6774 type "rectangle" 4267 type "rectangle"
6775 fill "#FFFFFF" 4268 fill "#FFFFFF"
6776 fill2 "#FFFFFF" 4269 fill2 "#FFFFFF"
@@ -6778,7 +4271,7 @@ graph
6778 ] 4271 ]
6779 LabelGraphics 4272 LabelGraphics
6780 [ 4273 [
6781 text "o 1" 4274 text "Root literal FunctionType"
6782 outline "#000000" 4275 outline "#000000"
6783 fill "#FFFFFF" 4276 fill "#FFFFFF"
6784 fontSize 16 4277 fontSize 16
@@ -6790,12 +4283,7 @@ graph
6790 LabelGraphics 4283 LabelGraphics
6791 [ 4284 [
6792 text " 4285 text "
6793 EModelElement class DefinedPart 4286 FunctionType enum
6794 ENamedElement class DefinedPart
6795 EPackage class DefinedPart
6796 EModelElement class
6797 ENamedElement class
6798 EPackage class
6799 " 4287 "
6800 fontSize 14 4288 fontSize 14
6801 fontName "Consolas" 4289 fontName "Consolas"
@@ -6810,8 +4298,8 @@ graph
6810 id 1 4298 id 1
6811 graphics 4299 graphics
6812 [ 4300 [
6813 w 41.800000000000004 4301 w 297.0
6814 h 26 4302 h 40
6815 type "rectangle" 4303 type "rectangle"
6816 fill "#FFFFFF" 4304 fill "#FFFFFF"
6817 fill2 "#FFFFFF" 4305 fill2 "#FFFFFF"
@@ -6819,7 +4307,7 @@ graph
6819 ] 4307 ]
6820 LabelGraphics 4308 LabelGraphics
6821 [ 4309 [
6822 text "true" 4310 text "Intermediate literal FunctionType"
6823 outline "#000000" 4311 outline "#000000"
6824 fill "#FFFFFF" 4312 fill "#FFFFFF"
6825 fontSize 16 4313 fontSize 16
@@ -6831,6 +4319,7 @@ graph
6831 LabelGraphics 4319 LabelGraphics
6832 [ 4320 [
6833 text " 4321 text "
4322 FunctionType enum
6834 " 4323 "
6835 fontSize 14 4324 fontSize 14
6836 fontName "Consolas" 4325 fontName "Consolas"
@@ -6845,8 +4334,8 @@ graph
6845 id 2 4334 id 2
6846 graphics 4335 graphics
6847 [ 4336 [
6848 w 50.6 4337 w 226.60000000000002
6849 h 26 4338 h 40
6850 type "rectangle" 4339 type "rectangle"
6851 fill "#FFFFFF" 4340 fill "#FFFFFF"
6852 fill2 "#FFFFFF" 4341 fill2 "#FFFFFF"
@@ -6854,7 +4343,7 @@ graph
6854 ] 4343 ]
6855 LabelGraphics 4344 LabelGraphics
6856 [ 4345 [
6857 text "false" 4346 text "Leaf literal FunctionType"
6858 outline "#000000" 4347 outline "#000000"
6859 fill "#FFFFFF" 4348 fill "#FFFFFF"
6860 fontSize 16 4349 fontSize 16
@@ -6866,6 +4355,7 @@ graph
6866 LabelGraphics 4355 LabelGraphics
6867 [ 4356 [
6868 text " 4357 text "
4358 FunctionType enum
6869 " 4359 "
6870 fontSize 14 4360 fontSize 14
6871 fontName "Consolas" 4361 fontName "Consolas"
@@ -6880,7 +4370,7 @@ graph
6880 id 3 4370 id 3
6881 graphics 4371 graphics
6882 [ 4372 [
6883 w 24.200000000000003 4373 w 41.800000000000004
6884 h 26 4374 h 26
6885 type "rectangle" 4375 type "rectangle"
6886 fill "#FFFFFF" 4376 fill "#FFFFFF"
@@ -6889,7 +4379,7 @@ graph
6889 ] 4379 ]
6890 LabelGraphics 4380 LabelGraphics
6891 [ 4381 [
6892 text "-1" 4382 text "true"
6893 outline "#000000" 4383 outline "#000000"
6894 fill "#FFFFFF" 4384 fill "#FFFFFF"
6895 fontSize 16 4385 fontSize 16
@@ -6915,7 +4405,7 @@ graph
6915 id 4 4405 id 4
6916 graphics 4406 graphics
6917 [ 4407 [
6918 w 15.400000000000002 4408 w 50.6
6919 h 26 4409 h 26
6920 type "rectangle" 4410 type "rectangle"
6921 fill "#FFFFFF" 4411 fill "#FFFFFF"
@@ -6924,7 +4414,7 @@ graph
6924 ] 4414 ]
6925 LabelGraphics 4415 LabelGraphics
6926 [ 4416 [
6927 text "0" 4417 text "false"
6928 outline "#000000" 4418 outline "#000000"
6929 fill "#FFFFFF" 4419 fill "#FFFFFF"
6930 fontSize 16 4420 fontSize 16
@@ -6950,8 +4440,8 @@ graph
6950 id 5 4440 id 5
6951 graphics 4441 graphics
6952 [ 4442 [
6953 w 15.400000000000002 4443 w 269.5
6954 h 26 4444 h 40
6955 type "rectangle" 4445 type "rectangle"
6956 fill "#FFFFFF" 4446 fill "#FFFFFF"
6957 fill2 "#FFFFFF" 4447 fill2 "#FFFFFF"
@@ -6959,7 +4449,7 @@ graph
6959 ] 4449 ]
6960 LabelGraphics 4450 LabelGraphics
6961 [ 4451 [
6962 text "1" 4452 text "null"
6963 outline "#000000" 4453 outline "#000000"
6964 fill "#FFFFFF" 4454 fill "#FFFFFF"
6965 fontSize 16 4455 fontSize 16
@@ -6971,6 +4461,7 @@ graph
6971 LabelGraphics 4461 LabelGraphics
6972 [ 4462 [
6973 text " 4463 text "
4464 FunctionalArchitectureModel class
6974 " 4465 "
6975 fontSize 14 4466 fontSize 14
6976 fontName "Consolas" 4467 fontName "Consolas"
@@ -6985,8 +4476,8 @@ graph
6985 id 6 4476 id 6
6986 graphics 4477 graphics
6987 [ 4478 [
6988 w 33.0 4479 w 192.50000000000003
6989 h 26 4480 h 54
6990 type "rectangle" 4481 type "rectangle"
6991 fill "#FFFFFF" 4482 fill "#FFFFFF"
6992 fill2 "#FFFFFF" 4483 fill2 "#FFFFFF"
@@ -6994,7 +4485,7 @@ graph
6994 ] 4485 ]
6995 LabelGraphics 4486 LabelGraphics
6996 [ 4487 [
6997 text ""A"" 4488 text "null"
6998 outline "#000000" 4489 outline "#000000"
6999 fill "#FFFFFF" 4490 fill "#FFFFFF"
7000 fontSize 16 4491 fontSize 16
@@ -7006,6 +4497,8 @@ graph
7006 LabelGraphics 4497 LabelGraphics
7007 [ 4498 [
7008 text " 4499 text "
4500 FunctionalElement class
4501 Function class
7009 " 4502 "
7010 fontSize 14 4503 fontSize 14
7011 fontName "Consolas" 4504 fontName "Consolas"
@@ -7020,8 +4513,8 @@ graph
7020 id 7 4513 id 7
7021 graphics 4514 graphics
7022 [ 4515 [
7023 w 33.0 4516 w 207.9
7024 h 26 4517 h 40
7025 type "rectangle" 4518 type "rectangle"
7026 fill "#FFFFFF" 4519 fill "#FFFFFF"
7027 fill2 "#FFFFFF" 4520 fill2 "#FFFFFF"
@@ -7029,7 +4522,7 @@ graph
7029 ] 4522 ]
7030 LabelGraphics 4523 LabelGraphics
7031 [ 4524 [
7032 text ""B"" 4525 text "null"
7033 outline "#000000" 4526 outline "#000000"
7034 fill "#FFFFFF" 4527 fill "#FFFFFF"
7035 fontSize 16 4528 fontSize 16
@@ -7041,6 +4534,7 @@ graph
7041 LabelGraphics 4534 LabelGraphics
7042 [ 4535 [
7043 text " 4536 text "
4537 FunctionalInterface class
7044 " 4538 "
7045 fontSize 14 4539 fontSize 14
7046 fontName "Consolas" 4540 fontName "Consolas"
@@ -7055,8 +4549,8 @@ graph
7055 id 8 4549 id 8
7056 graphics 4550 graphics
7057 [ 4551 [
7058 w 94.60000000000001 4552 w 177.10000000000002
7059 h 26 4553 h 54
7060 type "rectangle" 4554 type "rectangle"
7061 fill "#FFFFFF" 4555 fill "#FFFFFF"
7062 fill2 "#FFFFFF" 4556 fill2 "#FFFFFF"
@@ -7064,7 +4558,7 @@ graph
7064 ] 4558 ]
7065 LabelGraphics 4559 LabelGraphics
7066 [ 4560 [
7067 text ""nsPrefix"" 4561 text "null"
7068 outline "#000000" 4562 outline "#000000"
7069 fill "#FFFFFF" 4563 fill "#FFFFFF"
7070 fontSize 16 4564 fontSize 16
@@ -7076,6 +4570,8 @@ graph
7076 LabelGraphics 4570 LabelGraphics
7077 [ 4571 [
7078 text " 4572 text "
4573 FunctionalInput class
4574 FunctionalData class
7079 " 4575 "
7080 fontSize 14 4576 fontSize 14
7081 fontName "Consolas" 4577 fontName "Consolas"
@@ -7090,8 +4586,8 @@ graph
7090 id 9 4586 id 9
7091 graphics 4587 graphics
7092 [ 4588 [
7093 w 68.2 4589 w 161.70000000000002
7094 h 26 4590 h 40
7095 type "rectangle" 4591 type "rectangle"
7096 fill "#FFFFFF" 4592 fill "#FFFFFF"
7097 fill2 "#FFFFFF" 4593 fill2 "#FFFFFF"
@@ -7099,7 +4595,7 @@ graph
7099 ] 4595 ]
7100 LabelGraphics 4596 LabelGraphics
7101 [ 4597 [
7102 text ""nsUri"" 4598 text "null"
7103 outline "#000000" 4599 outline "#000000"
7104 fill "#FFFFFF" 4600 fill "#FFFFFF"
7105 fontSize 16 4601 fontSize 16
@@ -7111,6 +4607,7 @@ graph
7111 LabelGraphics 4607 LabelGraphics
7112 [ 4608 [
7113 text " 4609 text "
4610 FAMTerminator class
7114 " 4611 "
7115 fontSize 14 4612 fontSize 14
7116 fontName "Consolas" 4613 fontName "Consolas"
@@ -7125,8 +4622,8 @@ graph
7125 id 10 4622 id 10
7126 graphics 4623 graphics
7127 [ 4624 [
7128 w 121.00000000000001 4625 w 184.8
7129 h 26 4626 h 54
7130 type "rectangle" 4627 type "rectangle"
7131 fill "#FFFFFF" 4628 fill "#FFFFFF"
7132 fill2 "#FFFFFF" 4629 fill2 "#FFFFFF"
@@ -7134,7 +4631,7 @@ graph
7134 ] 4631 ]
7135 LabelGraphics 4632 LabelGraphics
7136 [ 4633 [
7137 text ""packageName"" 4634 text "null"
7138 outline "#000000" 4635 outline "#000000"
7139 fill "#FFFFFF" 4636 fill "#FFFFFF"
7140 fontSize 16 4637 fontSize 16
@@ -7146,6 +4643,8 @@ graph
7146 LabelGraphics 4643 LabelGraphics
7147 [ 4644 [
7148 text " 4645 text "
4646 FunctionalOutput class
4647 FunctionalData class
7149 " 4648 "
7150 fontSize 14 4649 fontSize 14
7151 fontName "Consolas" 4650 fontName "Consolas"
@@ -7160,8 +4659,8 @@ graph
7160 id 11 4659 id 11
7161 graphics 4660 graphics
7162 [ 4661 [
7163 w 269.5 4662 w 161.70000000000002
7164 h 124 4663 h 40
7165 type "rectangle" 4664 type "rectangle"
7166 fill "#FFFFFF" 4665 fill "#FFFFFF"
7167 fill2 "#FFFFFF" 4666 fill2 "#FFFFFF"
@@ -7181,13 +4680,7 @@ graph
7181 LabelGraphics 4680 LabelGraphics
7182 [ 4681 [
7183 text " 4682 text "
7184 EClassifier class 4683 FAMTerminator class
7185 EDataType class
7186 EEnum class
7187 EModelElement class
7188 ENamedElement class
7189 EModelElement class UndefinedPart
7190 ENamedElement class UndefinedPart
7191 " 4684 "
7192 fontSize 14 4685 fontSize 14
7193 fontName "Consolas" 4686 fontName "Consolas"
@@ -7202,166 +4695,6 @@ graph
7202 id 12 4695 id 12
7203 graphics 4696 graphics
7204 [ 4697 [
7205 w 269.5
7206 h 124
7207 type "rectangle"
7208 fill "#FFFFFF"
7209 fill2 "#FFFFFF"
7210 outline "#000000"
7211 ]
7212 LabelGraphics
7213 [
7214 text "null"
7215 outline "#000000"
7216 fill "#FFFFFF"
7217 fontSize 16
7218 fontName "Monospace"
7219 autoSizePolicy "node_width"
7220 anchor "t"
7221 borderDistance 0.0
7222 ]
7223 LabelGraphics
7224 [
7225 text "
7226 EClassifier class
7227 EDataType class
7228 EEnum class
7229 EModelElement class
7230 ENamedElement class
7231 EModelElement class UndefinedPart
7232 ENamedElement class UndefinedPart
7233 "
7234 fontSize 14
7235 fontName "Consolas"
7236 alignment "left"
7237 anchor "tl"
7238 borderDistance 6
7239 ]
7240 ]
7241
7242 node
7243 [
7244 id 13
7245 graphics
7246 [
7247 w 269.5
7248 h 96
7249 type "rectangle"
7250 fill "#FFFFFF"
7251 fill2 "#FFFFFF"
7252 outline "#000000"
7253 ]
7254 LabelGraphics
7255 [
7256 text "null"
7257 outline "#000000"
7258 fill "#FFFFFF"
7259 fontSize 16
7260 fontName "Monospace"
7261 autoSizePolicy "node_width"
7262 anchor "t"
7263 borderDistance 0.0
7264 ]
7265 LabelGraphics
7266 [
7267 text "
7268 EEnumLiteral class
7269 EModelElement class
7270 ENamedElement class
7271 EModelElement class UndefinedPart
7272 ENamedElement class UndefinedPart
7273 "
7274 fontSize 14
7275 fontName "Consolas"
7276 alignment "left"
7277 anchor "tl"
7278 borderDistance 6
7279 ]
7280 ]
7281
7282 node
7283 [
7284 id 14
7285 graphics
7286 [
7287 w 269.5
7288 h 68
7289 type "rectangle"
7290 fill "#FFFFFF"
7291 fill2 "#FFFFFF"
7292 outline "#000000"
7293 ]
7294 LabelGraphics
7295 [
7296 text "null"
7297 outline "#000000"
7298 fill "#FFFFFF"
7299 fontSize 16
7300 fontName "Monospace"
7301 autoSizePolicy "node_width"
7302 anchor "t"
7303 borderDistance 0.0
7304 ]
7305 LabelGraphics
7306 [
7307 text "
7308 EAnnotation class
7309 EModelElement class
7310 EModelElement class UndefinedPart
7311 "
7312 fontSize 14
7313 fontName "Consolas"
7314 alignment "left"
7315 anchor "tl"
7316 borderDistance 6
7317 ]
7318 ]
7319
7320 node
7321 [
7322 id 15
7323 graphics
7324 [
7325 w 269.5
7326 h 96
7327 type "rectangle"
7328 fill "#FFFFFF"
7329 fill2 "#FFFFFF"
7330 outline "#000000"
7331 ]
7332 LabelGraphics
7333 [
7334 text "null"
7335 outline "#000000"
7336 fill "#FFFFFF"
7337 fontSize 16
7338 fontName "Monospace"
7339 autoSizePolicy "node_width"
7340 anchor "t"
7341 borderDistance 0.0
7342 ]
7343 LabelGraphics
7344 [
7345 text "
7346 EModelElement class
7347 ENamedElement class
7348 ETypeParameter class
7349 EModelElement class UndefinedPart
7350 ENamedElement class UndefinedPart
7351 "
7352 fontSize 14
7353 fontName "Consolas"
7354 alignment "left"
7355 anchor "tl"
7356 borderDistance 6
7357 ]
7358 ]
7359
7360 node
7361 [
7362 id 16
7363 graphics
7364 [
7365 w 112.2 4698 w 112.2
7366 h 26 4699 h 26
7367 type "rectangle" 4700 type "rectangle"
@@ -7394,7 +4727,7 @@ graph
7394 4727
7395 node 4728 node
7396 [ 4729 [
7397 id 17 4730 id 13
7398 graphics 4731 graphics
7399 [ 4732 [
7400 w 85.80000000000001 4733 w 85.80000000000001
@@ -7429,7 +4762,7 @@ graph
7429 4762
7430 node 4763 node
7431 [ 4764 [
7432 id 18 4765 id 14
7433 graphics 4766 graphics
7434 [ 4767 [
7435 w 103.4 4768 w 103.4
@@ -7464,7 +4797,7 @@ graph
7464 4797
7465 node 4798 node
7466 [ 4799 [
7467 id 19 4800 id 15
7468 graphics 4801 graphics
7469 [ 4802 [
7470 w 103.4 4803 w 103.4
@@ -7498,124 +4831,8 @@ graph
7498 ] 4831 ]
7499 edge 4832 edge
7500 [ 4833 [
7501 source 14 4834 source 6
7502 target 0 4835 target 7
7503 graphics
7504 [
7505 fill "#000000"
7506 targetArrow "standard"
7507 ]
7508 LabelGraphics
7509 [
7510 text "eModelElement reference EAnnotation"
7511 fontSize 14
7512 fontName "Consolas"
7513 configuration "AutoFlippingLabel"
7514 model "six_pos"
7515 position "thead"
7516 ]
7517 ]
7518 edge
7519 [
7520 source 11
7521 target 0
7522 graphics
7523 [
7524 fill "#000000"
7525 targetArrow "standard"
7526 ]
7527 LabelGraphics
7528 [
7529 text "ePackage reference EClassifier"
7530 fontSize 14
7531 fontName "Consolas"
7532 configuration "AutoFlippingLabel"
7533 model "six_pos"
7534 position "thead"
7535 ]
7536 ]
7537 edge
7538 [
7539 source 12
7540 target 0
7541 graphics
7542 [
7543 fill "#000000"
7544 targetArrow "standard"
7545 ]
7546 LabelGraphics
7547 [
7548 text "ePackage reference EClassifier"
7549 fontSize 14
7550 fontName "Consolas"
7551 configuration "AutoFlippingLabel"
7552 model "six_pos"
7553 position "thead"
7554 ]
7555 ]
7556 edge
7557 [
7558 source 12
7559 target 15
7560 graphics
7561 [
7562 fill "#000000"
7563 width 3
7564 targetArrow "standard"
7565 ]
7566 LabelGraphics
7567 [
7568 text "eTypeParameters reference EClassifier"
7569 fontSize 14
7570 fontName "Consolas"
7571 configuration "AutoFlippingLabel"
7572 model "six_pos"
7573 position "thead"
7574 ]
7575 ]
7576 edge
7577 [
7578 source 11
7579 target 13
7580 graphics
7581 [
7582 fill "#000000"
7583 width 3
7584 targetArrow "standard"
7585 ]
7586 LabelGraphics
7587 [
7588 text "eLiterals reference EEnum"
7589 fontSize 14
7590 fontName "Consolas"
7591 configuration "AutoFlippingLabel"
7592 model "six_pos"
7593 position "thead"
7594 ]
7595 ]
7596 edge
7597 [
7598 source 13
7599 target 11
7600 graphics
7601 [
7602 fill "#000000"
7603 targetArrow "standard"
7604 ]
7605 LabelGraphics
7606 [
7607 text "eEnum reference EEnumLiteral"
7608 fontSize 14
7609 fontName "Consolas"
7610 configuration "AutoFlippingLabel"
7611 model "six_pos"
7612 position "thead"
7613 ]
7614 ]
7615 edge
7616 [
7617 source 0
7618 target 14
7619 graphics 4836 graphics
7620 [ 4837 [
7621 fill "#000000" 4838 fill "#000000"
@@ -7624,7 +4841,7 @@ graph
7624 ] 4841 ]
7625 LabelGraphics 4842 LabelGraphics
7626 [ 4843 [
7627 text "eAnnotations reference EModelElement" 4844 text "interface reference FunctionalElement"
7628 fontSize 14 4845 fontSize 14
7629 fontName "Consolas" 4846 fontName "Consolas"
7630 configuration "AutoFlippingLabel" 4847 configuration "AutoFlippingLabel"
@@ -7634,17 +4851,16 @@ graph
7634 ] 4851 ]
7635 edge 4852 edge
7636 [ 4853 [
7637 source 0 4854 source 6
7638 target 11 4855 target 5
7639 graphics 4856 graphics
7640 [ 4857 [
7641 fill "#000000" 4858 fill "#000000"
7642 width 3
7643 targetArrow "standard" 4859 targetArrow "standard"
7644 ] 4860 ]
7645 LabelGraphics 4861 LabelGraphics
7646 [ 4862 [
7647 text "eClassifiers reference EPackage" 4863 text "model reference FunctionalElement"
7648 fontSize 14 4864 fontSize 14
7649 fontName "Consolas" 4865 fontName "Consolas"
7650 configuration "AutoFlippingLabel" 4866 configuration "AutoFlippingLabel"
@@ -7654,8 +4870,8 @@ graph
7654 ] 4870 ]
7655 edge 4871 edge
7656 [ 4872 [
7657 source 0 4873 source 5
7658 target 12 4874 target 6
7659 graphics 4875 graphics
7660 [ 4876 [
7661 fill "#000000" 4877 fill "#000000"
@@ -7664,26 +4880,7 @@ graph
7664 ] 4880 ]
7665 LabelGraphics 4881 LabelGraphics
7666 [ 4882 [
7667 text "eClassifiers reference EPackage" 4883 text "rootElements reference FunctionalArchitectureModel"
7668 fontSize 14
7669 fontName "Consolas"
7670 configuration "AutoFlippingLabel"
7671 model "six_pos"
7672 position "thead"
7673 ]
7674 ]
7675 edge
7676 [
7677 source 14
7678 target 10
7679 graphics
7680 [
7681 fill "#000000"
7682 targetArrow "standard"
7683 ]
7684 LabelGraphics
7685 [
7686 text "source attribute EAnnotation"
7687 fontSize 14 4884 fontSize 14
7688 fontName "Consolas" 4885 fontName "Consolas"
7689 configuration "AutoFlippingLabel" 4886 configuration "AutoFlippingLabel"
@@ -7693,7 +4890,7 @@ graph
7693 ] 4890 ]
7694 edge 4891 edge
7695 [ 4892 [
7696 source 11 4893 source 9
7697 target 8 4894 target 8
7698 graphics 4895 graphics
7699 [ 4896 [
@@ -7702,7 +4899,7 @@ graph
7702 ] 4899 ]
7703 LabelGraphics 4900 LabelGraphics
7704 [ 4901 [
7705 text "instanceClassName attribute EClassifier" 4902 text "data reference FAMTerminator"
7706 fontSize 14 4903 fontSize 14
7707 fontName "Consolas" 4904 fontName "Consolas"
7708 configuration "AutoFlippingLabel" 4905 configuration "AutoFlippingLabel"
@@ -7713,7 +4910,7 @@ graph
7713 edge 4910 edge
7714 [ 4911 [
7715 source 11 4912 source 11
7716 target 9 4913 target 10
7717 graphics 4914 graphics
7718 [ 4915 [
7719 fill "#000000" 4916 fill "#000000"
@@ -7721,7 +4918,7 @@ graph
7721 ] 4918 ]
7722 LabelGraphics 4919 LabelGraphics
7723 [ 4920 [
7724 text "instanceTypeName attribute EClassifier" 4921 text "data reference FAMTerminator"
7725 fontSize 14 4922 fontSize 14
7726 fontName "Consolas" 4923 fontName "Consolas"
7727 configuration "AutoFlippingLabel" 4924 configuration "AutoFlippingLabel"
@@ -7731,16 +4928,17 @@ graph
7731 ] 4928 ]
7732 edge 4929 edge
7733 [ 4930 [
7734 source 12 4931 source 7
7735 target 9 4932 target 8
7736 graphics 4933 graphics
7737 [ 4934 [
7738 fill "#000000" 4935 fill "#000000"
4936 width 3
7739 targetArrow "standard" 4937 targetArrow "standard"
7740 ] 4938 ]
7741 LabelGraphics 4939 LabelGraphics
7742 [ 4940 [
7743 text "instanceTypeName attribute EClassifier" 4941 text "data reference FunctionalInterface"
7744 fontSize 14 4942 fontSize 14
7745 fontName "Consolas" 4943 fontName "Consolas"
7746 configuration "AutoFlippingLabel" 4944 configuration "AutoFlippingLabel"
@@ -7750,16 +4948,17 @@ graph
7750 ] 4948 ]
7751 edge 4949 edge
7752 [ 4950 [
7753 source 11 4951 source 7
7754 target 2 4952 target 10
7755 graphics 4953 graphics
7756 [ 4954 [
7757 fill "#000000" 4955 fill "#000000"
4956 width 3
7758 targetArrow "standard" 4957 targetArrow "standard"
7759 ] 4958 ]
7760 LabelGraphics 4959 LabelGraphics
7761 [ 4960 [
7762 text "serializable attribute EDataType" 4961 text "data reference FunctionalInterface"
7763 fontSize 14 4962 fontSize 14
7764 fontName "Consolas" 4963 fontName "Consolas"
7765 configuration "AutoFlippingLabel" 4964 configuration "AutoFlippingLabel"
@@ -7769,8 +4968,8 @@ graph
7769 ] 4968 ]
7770 edge 4969 edge
7771 [ 4970 [
7772 source 12 4971 source 7
7773 target 2 4972 target 6
7774 graphics 4973 graphics
7775 [ 4974 [
7776 fill "#000000" 4975 fill "#000000"
@@ -7778,7 +4977,7 @@ graph
7778 ] 4977 ]
7779 LabelGraphics 4978 LabelGraphics
7780 [ 4979 [
7781 text "serializable attribute EDataType" 4980 text "element reference FunctionalInterface"
7782 fontSize 14 4981 fontSize 14
7783 fontName "Consolas" 4982 fontName "Consolas"
7784 configuration "AutoFlippingLabel" 4983 configuration "AutoFlippingLabel"
@@ -7788,16 +4987,17 @@ graph
7788 ] 4987 ]
7789 edge 4988 edge
7790 [ 4989 [
7791 source 13 4990 source 8
7792 target 9 4991 target 9
7793 graphics 4992 graphics
7794 [ 4993 [
7795 fill "#000000" 4994 fill "#000000"
4995 width 3
7796 targetArrow "standard" 4996 targetArrow "standard"
7797 ] 4997 ]
7798 LabelGraphics 4998 LabelGraphics
7799 [ 4999 [
7800 text "literal attribute EEnumLiteral" 5000 text "terminator reference FunctionalData"
7801 fontSize 14 5001 fontSize 14
7802 fontName "Consolas" 5002 fontName "Consolas"
7803 configuration "AutoFlippingLabel" 5003 configuration "AutoFlippingLabel"
@@ -7807,16 +5007,17 @@ graph
7807 ] 5007 ]
7808 edge 5008 edge
7809 [ 5009 [
7810 source 0 5010 source 10
7811 target 10 5011 target 11
7812 graphics 5012 graphics
7813 [ 5013 [
7814 fill "#000000" 5014 fill "#000000"
5015 width 3
7815 targetArrow "standard" 5016 targetArrow "standard"
7816 ] 5017 ]
7817 LabelGraphics 5018 LabelGraphics
7818 [ 5019 [
7819 text "name attribute ENamedElement" 5020 text "terminator reference FunctionalData"
7820 fontSize 14 5021 fontSize 14
7821 fontName "Consolas" 5022 fontName "Consolas"
7822 configuration "AutoFlippingLabel" 5023 configuration "AutoFlippingLabel"
@@ -7826,8 +5027,8 @@ graph
7826 ] 5027 ]
7827 edge 5028 edge
7828 [ 5029 [
7829 source 12 5030 source 8
7830 target 10 5031 target 7
7831 graphics 5032 graphics
7832 [ 5033 [
7833 fill "#000000" 5034 fill "#000000"
@@ -7835,7 +5036,7 @@ graph
7835 ] 5036 ]
7836 LabelGraphics 5037 LabelGraphics
7837 [ 5038 [
7838 text "name attribute ENamedElement" 5039 text "interface reference FunctionalData"
7839 fontSize 14 5040 fontSize 14
7840 fontName "Consolas" 5041 fontName "Consolas"
7841 configuration "AutoFlippingLabel" 5042 configuration "AutoFlippingLabel"
@@ -7845,8 +5046,8 @@ graph
7845 ] 5046 ]
7846 edge 5047 edge
7847 [ 5048 [
7848 source 0 5049 source 10
7849 target 9 5050 target 7
7850 graphics 5051 graphics
7851 [ 5052 [
7852 fill "#000000" 5053 fill "#000000"
@@ -7854,7 +5055,7 @@ graph
7854 ] 5055 ]
7855 LabelGraphics 5056 LabelGraphics
7856 [ 5057 [
7857 text "nsURI attribute EPackage" 5058 text "interface reference FunctionalData"
7858 fontSize 14 5059 fontSize 14
7859 fontName "Consolas" 5060 fontName "Consolas"
7860 configuration "AutoFlippingLabel" 5061 configuration "AutoFlippingLabel"
@@ -7864,8 +5065,8 @@ graph
7864 ] 5065 ]
7865 edge 5066 edge
7866 [ 5067 [
7867 source 0 5068 source 6
7868 target 8 5069 target 0
7869 graphics 5070 graphics
7870 [ 5071 [
7871 fill "#000000" 5072 fill "#000000"
@@ -7873,7 +5074,7 @@ graph
7873 ] 5074 ]
7874 LabelGraphics 5075 LabelGraphics
7875 [ 5076 [
7876 text "nsPrefix attribute EPackage" 5077 text "type attribute Function"
7877 fontSize 14 5078 fontSize 14
7878 fontName "Consolas" 5079 fontName "Consolas"
7879 configuration "AutoFlippingLabel" 5080 configuration "AutoFlippingLabel"
@@ -7889,8 +5090,8 @@ graph
7889 id 0 5090 id 0
7890 graphics 5091 graphics
7891 [ 5092 [
7892 w 254.10000000000002 5093 w 226.60000000000002
7893 h 110 5094 h 40
7894 type "rectangle" 5095 type "rectangle"
7895 fill "#FFFFFF" 5096 fill "#FFFFFF"
7896 fill2 "#FFFFFF" 5097 fill2 "#FFFFFF"
@@ -7898,7 +5099,7 @@ graph
7898 ] 5099 ]
7899 LabelGraphics 5100 LabelGraphics
7900 [ 5101 [
7901 text "o 1" 5102 text "Root literal FunctionType"
7902 outline "#000000" 5103 outline "#000000"
7903 fill "#FFFFFF" 5104 fill "#FFFFFF"
7904 fontSize 16 5105 fontSize 16
@@ -7910,12 +5111,7 @@ graph
7910 LabelGraphics 5111 LabelGraphics
7911 [ 5112 [
7912 text " 5113 text "
7913 EModelElement class DefinedPart 5114 FunctionType enum
7914 ENamedElement class DefinedPart
7915 EPackage class DefinedPart
7916 EModelElement class
7917 ENamedElement class
7918 EPackage class
7919 " 5115 "
7920 fontSize 14 5116 fontSize 14
7921 fontName "Consolas" 5117 fontName "Consolas"
@@ -7930,8 +5126,8 @@ graph
7930 id 1 5126 id 1
7931 graphics 5127 graphics
7932 [ 5128 [
7933 w 41.800000000000004 5129 w 297.0
7934 h 26 5130 h 40
7935 type "rectangle" 5131 type "rectangle"
7936 fill "#FFFFFF" 5132 fill "#FFFFFF"
7937 fill2 "#FFFFFF" 5133 fill2 "#FFFFFF"
@@ -7939,7 +5135,7 @@ graph
7939 ] 5135 ]
7940 LabelGraphics 5136 LabelGraphics
7941 [ 5137 [
7942 text "true" 5138 text "Intermediate literal FunctionType"
7943 outline "#000000" 5139 outline "#000000"
7944 fill "#FFFFFF" 5140 fill "#FFFFFF"
7945 fontSize 16 5141 fontSize 16
@@ -7951,6 +5147,7 @@ graph
7951 LabelGraphics 5147 LabelGraphics
7952 [ 5148 [
7953 text " 5149 text "
5150 FunctionType enum
7954 " 5151 "
7955 fontSize 14 5152 fontSize 14
7956 fontName "Consolas" 5153 fontName "Consolas"
@@ -7965,8 +5162,8 @@ graph
7965 id 2 5162 id 2
7966 graphics 5163 graphics
7967 [ 5164 [
7968 w 50.6 5165 w 226.60000000000002
7969 h 26 5166 h 40
7970 type "rectangle" 5167 type "rectangle"
7971 fill "#FFFFFF" 5168 fill "#FFFFFF"
7972 fill2 "#FFFFFF" 5169 fill2 "#FFFFFF"
@@ -7974,7 +5171,7 @@ graph
7974 ] 5171 ]
7975 LabelGraphics 5172 LabelGraphics
7976 [ 5173 [
7977 text "false" 5174 text "Leaf literal FunctionType"
7978 outline "#000000" 5175 outline "#000000"
7979 fill "#FFFFFF" 5176 fill "#FFFFFF"
7980 fontSize 16 5177 fontSize 16
@@ -7986,6 +5183,7 @@ graph
7986 LabelGraphics 5183 LabelGraphics
7987 [ 5184 [
7988 text " 5185 text "
5186 FunctionType enum
7989 " 5187 "
7990 fontSize 14 5188 fontSize 14
7991 fontName "Consolas" 5189 fontName "Consolas"
@@ -8000,7 +5198,7 @@ graph
8000 id 3 5198 id 3
8001 graphics 5199 graphics
8002 [ 5200 [
8003 w 24.200000000000003 5201 w 41.800000000000004
8004 h 26 5202 h 26
8005 type "rectangle" 5203 type "rectangle"
8006 fill "#FFFFFF" 5204 fill "#FFFFFF"
@@ -8009,7 +5207,7 @@ graph
8009 ] 5207 ]
8010 LabelGraphics 5208 LabelGraphics
8011 [ 5209 [
8012 text "-1" 5210 text "true"
8013 outline "#000000" 5211 outline "#000000"
8014 fill "#FFFFFF" 5212 fill "#FFFFFF"
8015 fontSize 16 5213 fontSize 16
@@ -8035,7 +5233,7 @@ graph
8035 id 4 5233 id 4
8036 graphics 5234 graphics
8037 [ 5235 [
8038 w 15.400000000000002 5236 w 50.6
8039 h 26 5237 h 26
8040 type "rectangle" 5238 type "rectangle"
8041 fill "#FFFFFF" 5239 fill "#FFFFFF"
@@ -8044,7 +5242,7 @@ graph
8044 ] 5242 ]
8045 LabelGraphics 5243 LabelGraphics
8046 [ 5244 [
8047 text "0" 5245 text "false"
8048 outline "#000000" 5246 outline "#000000"
8049 fill "#FFFFFF" 5247 fill "#FFFFFF"
8050 fontSize 16 5248 fontSize 16
@@ -8070,8 +5268,8 @@ graph
8070 id 5 5268 id 5
8071 graphics 5269 graphics
8072 [ 5270 [
8073 w 15.400000000000002 5271 w 269.5
8074 h 26 5272 h 40
8075 type "rectangle" 5273 type "rectangle"
8076 fill "#FFFFFF" 5274 fill "#FFFFFF"
8077 fill2 "#FFFFFF" 5275 fill2 "#FFFFFF"
@@ -8079,7 +5277,7 @@ graph
8079 ] 5277 ]
8080 LabelGraphics 5278 LabelGraphics
8081 [ 5279 [
8082 text "1" 5280 text "null"
8083 outline "#000000" 5281 outline "#000000"
8084 fill "#FFFFFF" 5282 fill "#FFFFFF"
8085 fontSize 16 5283 fontSize 16
@@ -8091,6 +5289,7 @@ graph
8091 LabelGraphics 5289 LabelGraphics
8092 [ 5290 [
8093 text " 5291 text "
5292 FunctionalArchitectureModel class
8094 " 5293 "
8095 fontSize 14 5294 fontSize 14
8096 fontName "Consolas" 5295 fontName "Consolas"
@@ -8105,8 +5304,8 @@ graph
8105 id 6 5304 id 6
8106 graphics 5305 graphics
8107 [ 5306 [
8108 w 33.0 5307 w 192.50000000000003
8109 h 26 5308 h 54
8110 type "rectangle" 5309 type "rectangle"
8111 fill "#FFFFFF" 5310 fill "#FFFFFF"
8112 fill2 "#FFFFFF" 5311 fill2 "#FFFFFF"
@@ -8114,7 +5313,7 @@ graph
8114 ] 5313 ]
8115 LabelGraphics 5314 LabelGraphics
8116 [ 5315 [
8117 text ""A"" 5316 text "null"
8118 outline "#000000" 5317 outline "#000000"
8119 fill "#FFFFFF" 5318 fill "#FFFFFF"
8120 fontSize 16 5319 fontSize 16
@@ -8126,6 +5325,8 @@ graph
8126 LabelGraphics 5325 LabelGraphics
8127 [ 5326 [
8128 text " 5327 text "
5328 FunctionalElement class
5329 Function class
8129 " 5330 "
8130 fontSize 14 5331 fontSize 14
8131 fontName "Consolas" 5332 fontName "Consolas"
@@ -8140,8 +5341,8 @@ graph
8140 id 7 5341 id 7
8141 graphics 5342 graphics
8142 [ 5343 [
8143 w 33.0 5344 w 207.9
8144 h 26 5345 h 40
8145 type "rectangle" 5346 type "rectangle"
8146 fill "#FFFFFF" 5347 fill "#FFFFFF"
8147 fill2 "#FFFFFF" 5348 fill2 "#FFFFFF"
@@ -8149,7 +5350,7 @@ graph
8149 ] 5350 ]
8150 LabelGraphics 5351 LabelGraphics
8151 [ 5352 [
8152 text ""B"" 5353 text "null"
8153 outline "#000000" 5354 outline "#000000"
8154 fill "#FFFFFF" 5355 fill "#FFFFFF"
8155 fontSize 16 5356 fontSize 16
@@ -8161,6 +5362,7 @@ graph
8161 LabelGraphics 5362 LabelGraphics
8162 [ 5363 [
8163 text " 5364 text "
5365 FunctionalInterface class
8164 " 5366 "
8165 fontSize 14 5367 fontSize 14
8166 fontName "Consolas" 5368 fontName "Consolas"
@@ -8175,8 +5377,8 @@ graph
8175 id 8 5377 id 8
8176 graphics 5378 graphics
8177 [ 5379 [
8178 w 94.60000000000001 5380 w 184.8
8179 h 26 5381 h 54
8180 type "rectangle" 5382 type "rectangle"
8181 fill "#FFFFFF" 5383 fill "#FFFFFF"
8182 fill2 "#FFFFFF" 5384 fill2 "#FFFFFF"
@@ -8184,7 +5386,7 @@ graph
8184 ] 5386 ]
8185 LabelGraphics 5387 LabelGraphics
8186 [ 5388 [
8187 text ""nsPrefix"" 5389 text "null"
8188 outline "#000000" 5390 outline "#000000"
8189 fill "#FFFFFF" 5391 fill "#FFFFFF"
8190 fontSize 16 5392 fontSize 16
@@ -8196,6 +5398,8 @@ graph
8196 LabelGraphics 5398 LabelGraphics
8197 [ 5399 [
8198 text " 5400 text "
5401 FunctionalOutput class
5402 FunctionalData class
8199 " 5403 "
8200 fontSize 14 5404 fontSize 14
8201 fontName "Consolas" 5405 fontName "Consolas"
@@ -8210,8 +5414,8 @@ graph
8210 id 9 5414 id 9
8211 graphics 5415 graphics
8212 [ 5416 [
8213 w 68.2 5417 w 184.8
8214 h 26 5418 h 54
8215 type "rectangle" 5419 type "rectangle"
8216 fill "#FFFFFF" 5420 fill "#FFFFFF"
8217 fill2 "#FFFFFF" 5421 fill2 "#FFFFFF"
@@ -8219,7 +5423,7 @@ graph
8219 ] 5423 ]
8220 LabelGraphics 5424 LabelGraphics
8221 [ 5425 [
8222 text ""nsUri"" 5426 text "null"
8223 outline "#000000" 5427 outline "#000000"
8224 fill "#FFFFFF" 5428 fill "#FFFFFF"
8225 fontSize 16 5429 fontSize 16
@@ -8231,6 +5435,8 @@ graph
8231 LabelGraphics 5435 LabelGraphics
8232 [ 5436 [
8233 text " 5437 text "
5438 FunctionalOutput class
5439 FunctionalData class
8234 " 5440 "
8235 fontSize 14 5441 fontSize 14
8236 fontName "Consolas" 5442 fontName "Consolas"
@@ -8245,8 +5451,8 @@ graph
8245 id 10 5451 id 10
8246 graphics 5452 graphics
8247 [ 5453 [
8248 w 121.00000000000001 5454 w 161.70000000000002
8249 h 26 5455 h 40
8250 type "rectangle" 5456 type "rectangle"
8251 fill "#FFFFFF" 5457 fill "#FFFFFF"
8252 fill2 "#FFFFFF" 5458 fill2 "#FFFFFF"
@@ -8254,7 +5460,7 @@ graph
8254 ] 5460 ]
8255 LabelGraphics 5461 LabelGraphics
8256 [ 5462 [
8257 text ""packageName"" 5463 text "null"
8258 outline "#000000" 5464 outline "#000000"
8259 fill "#FFFFFF" 5465 fill "#FFFFFF"
8260 fontSize 16 5466 fontSize 16
@@ -8266,6 +5472,7 @@ graph
8266 LabelGraphics 5472 LabelGraphics
8267 [ 5473 [
8268 text " 5474 text "
5475 FAMTerminator class
8269 " 5476 "
8270 fontSize 14 5477 fontSize 14
8271 fontName "Consolas" 5478 fontName "Consolas"
@@ -8280,8 +5487,8 @@ graph
8280 id 11 5487 id 11
8281 graphics 5488 graphics
8282 [ 5489 [
8283 w 269.5 5490 w 177.10000000000002
8284 h 110 5491 h 54
8285 type "rectangle" 5492 type "rectangle"
8286 fill "#FFFFFF" 5493 fill "#FFFFFF"
8287 fill2 "#FFFFFF" 5494 fill2 "#FFFFFF"
@@ -8301,12 +5508,8 @@ graph
8301 LabelGraphics 5508 LabelGraphics
8302 [ 5509 [
8303 text " 5510 text "
8304 EClassifier class 5511 FunctionalInput class
8305 EDataType class 5512 FunctionalData class
8306 EModelElement class
8307 ENamedElement class
8308 EModelElement class UndefinedPart
8309 ENamedElement class UndefinedPart
8310 " 5513 "
8311 fontSize 14 5514 fontSize 14
8312 fontName "Consolas" 5515 fontName "Consolas"
@@ -8321,167 +5524,6 @@ graph
8321 id 12 5524 id 12
8322 graphics 5525 graphics
8323 [ 5526 [
8324 w 269.5
8325 h 110
8326 type "rectangle"
8327 fill "#FFFFFF"
8328 fill2 "#FFFFFF"
8329 outline "#000000"
8330 ]
8331 LabelGraphics
8332 [
8333 text "null"
8334 outline "#000000"
8335 fill "#FFFFFF"
8336 fontSize 16
8337 fontName "Monospace"
8338 autoSizePolicy "node_width"
8339 anchor "t"
8340 borderDistance 0.0
8341 ]
8342 LabelGraphics
8343 [
8344 text "
8345 EModelElement class
8346 ENamedElement class
8347 EPackage class
8348 EModelElement class UndefinedPart
8349 ENamedElement class UndefinedPart
8350 EPackage class UndefinedPart
8351 "
8352 fontSize 14
8353 fontName "Consolas"
8354 alignment "left"
8355 anchor "tl"
8356 borderDistance 6
8357 ]
8358 ]
8359
8360 node
8361 [
8362 id 13
8363 graphics
8364 [
8365 w 269.5
8366 h 124
8367 type "rectangle"
8368 fill "#FFFFFF"
8369 fill2 "#FFFFFF"
8370 outline "#000000"
8371 ]
8372 LabelGraphics
8373 [
8374 text "null"
8375 outline "#000000"
8376 fill "#FFFFFF"
8377 fontSize 16
8378 fontName "Monospace"
8379 autoSizePolicy "node_width"
8380 anchor "t"
8381 borderDistance 0.0
8382 ]
8383 LabelGraphics
8384 [
8385 text "
8386 EClassifier class
8387 EDataType class
8388 EEnum class
8389 EModelElement class
8390 ENamedElement class
8391 EModelElement class UndefinedPart
8392 ENamedElement class UndefinedPart
8393 "
8394 fontSize 14
8395 fontName "Consolas"
8396 alignment "left"
8397 anchor "tl"
8398 borderDistance 6
8399 ]
8400 ]
8401
8402 node
8403 [
8404 id 14
8405 graphics
8406 [
8407 w 269.5
8408 h 96
8409 type "rectangle"
8410 fill "#FFFFFF"
8411 fill2 "#FFFFFF"
8412 outline "#000000"
8413 ]
8414 LabelGraphics
8415 [
8416 text "null"
8417 outline "#000000"
8418 fill "#FFFFFF"
8419 fontSize 16
8420 fontName "Monospace"
8421 autoSizePolicy "node_width"
8422 anchor "t"
8423 borderDistance 0.0
8424 ]
8425 LabelGraphics
8426 [
8427 text "
8428 EModelElement class
8429 ENamedElement class
8430 ETypeParameter class
8431 EModelElement class UndefinedPart
8432 ENamedElement class UndefinedPart
8433 "
8434 fontSize 14
8435 fontName "Consolas"
8436 alignment "left"
8437 anchor "tl"
8438 borderDistance 6
8439 ]
8440 ]
8441
8442 node
8443 [
8444 id 15
8445 graphics
8446 [
8447 w 269.5
8448 h 68
8449 type "rectangle"
8450 fill "#FFFFFF"
8451 fill2 "#FFFFFF"
8452 outline "#000000"
8453 ]
8454 LabelGraphics
8455 [
8456 text "null"
8457 outline "#000000"
8458 fill "#FFFFFF"
8459 fontSize 16
8460 fontName "Monospace"
8461 autoSizePolicy "node_width"
8462 anchor "t"
8463 borderDistance 0.0
8464 ]
8465 LabelGraphics
8466 [
8467 text "
8468 EAnnotation class
8469 EModelElement class
8470 EModelElement class UndefinedPart
8471 "
8472 fontSize 14
8473 fontName "Consolas"
8474 alignment "left"
8475 anchor "tl"
8476 borderDistance 6
8477 ]
8478 ]
8479
8480 node
8481 [
8482 id 16
8483 graphics
8484 [
8485 w 112.2 5527 w 112.2
8486 h 26 5528 h 26
8487 type "rectangle" 5529 type "rectangle"
@@ -8514,7 +5556,7 @@ graph
8514 5556
8515 node 5557 node
8516 [ 5558 [
8517 id 17 5559 id 13
8518 graphics 5560 graphics
8519 [ 5561 [
8520 w 85.80000000000001 5562 w 85.80000000000001
@@ -8549,7 +5591,7 @@ graph
8549 5591
8550 node 5592 node
8551 [ 5593 [
8552 id 18 5594 id 14
8553 graphics 5595 graphics
8554 [ 5596 [
8555 w 103.4 5597 w 103.4
@@ -8584,7 +5626,7 @@ graph
8584 5626
8585 node 5627 node
8586 [ 5628 [
8587 id 19 5629 id 15
8588 graphics 5630 graphics
8589 [ 5631 [
8590 w 103.4 5632 w 103.4
@@ -8618,35 +5660,17 @@ graph
8618 ] 5660 ]
8619 edge 5661 edge
8620 [ 5662 [
8621 source 15 5663 source 6
8622 target 0 5664 target 7
8623 graphics
8624 [
8625 fill "#000000"
8626 targetArrow "standard"
8627 ]
8628 LabelGraphics
8629 [
8630 text "eModelElement reference EAnnotation"
8631 fontSize 14
8632 fontName "Consolas"
8633 configuration "AutoFlippingLabel"
8634 model "six_pos"
8635 position "thead"
8636 ]
8637 ]
8638 edge
8639 [
8640 source 11
8641 target 0
8642 graphics 5665 graphics
8643 [ 5666 [
8644 fill "#000000" 5667 fill "#000000"
5668 width 3
8645 targetArrow "standard" 5669 targetArrow "standard"
8646 ] 5670 ]
8647 LabelGraphics 5671 LabelGraphics
8648 [ 5672 [
8649 text "ePackage reference EClassifier" 5673 text "interface reference FunctionalElement"
8650 fontSize 14 5674 fontSize 14
8651 fontName "Consolas" 5675 fontName "Consolas"
8652 configuration "AutoFlippingLabel" 5676 configuration "AutoFlippingLabel"
@@ -8656,8 +5680,8 @@ graph
8656 ] 5680 ]
8657 edge 5681 edge
8658 [ 5682 [
8659 source 13 5683 source 6
8660 target 0 5684 target 5
8661 graphics 5685 graphics
8662 [ 5686 [
8663 fill "#000000" 5687 fill "#000000"
@@ -8665,7 +5689,7 @@ graph
8665 ] 5689 ]
8666 LabelGraphics 5690 LabelGraphics
8667 [ 5691 [
8668 text "ePackage reference EClassifier" 5692 text "model reference FunctionalElement"
8669 fontSize 14 5693 fontSize 14
8670 fontName "Consolas" 5694 fontName "Consolas"
8671 configuration "AutoFlippingLabel" 5695 configuration "AutoFlippingLabel"
@@ -8675,8 +5699,8 @@ graph
8675 ] 5699 ]
8676 edge 5700 edge
8677 [ 5701 [
8678 source 13 5702 source 5
8679 target 14 5703 target 6
8680 graphics 5704 graphics
8681 [ 5705 [
8682 fill "#000000" 5706 fill "#000000"
@@ -8685,7 +5709,7 @@ graph
8685 ] 5709 ]
8686 LabelGraphics 5710 LabelGraphics
8687 [ 5711 [
8688 text "eTypeParameters reference EClassifier" 5712 text "rootElements reference FunctionalArchitectureModel"
8689 fontSize 14 5713 fontSize 14
8690 fontName "Consolas" 5714 fontName "Consolas"
8691 configuration "AutoFlippingLabel" 5715 configuration "AutoFlippingLabel"
@@ -8695,17 +5719,16 @@ graph
8695 ] 5719 ]
8696 edge 5720 edge
8697 [ 5721 [
8698 source 0 5722 source 10
8699 target 15 5723 target 9
8700 graphics 5724 graphics
8701 [ 5725 [
8702 fill "#000000" 5726 fill "#000000"
8703 width 3
8704 targetArrow "standard" 5727 targetArrow "standard"
8705 ] 5728 ]
8706 LabelGraphics 5729 LabelGraphics
8707 [ 5730 [
8708 text "eAnnotations reference EModelElement" 5731 text "data reference FAMTerminator"
8709 fontSize 14 5732 fontSize 14
8710 fontName "Consolas" 5733 fontName "Consolas"
8711 configuration "AutoFlippingLabel" 5734 configuration "AutoFlippingLabel"
@@ -8715,8 +5738,8 @@ graph
8715 ] 5738 ]
8716 edge 5739 edge
8717 [ 5740 [
8718 source 0 5741 source 7
8719 target 11 5742 target 8
8720 graphics 5743 graphics
8721 [ 5744 [
8722 fill "#000000" 5745 fill "#000000"
@@ -8725,7 +5748,7 @@ graph
8725 ] 5748 ]
8726 LabelGraphics 5749 LabelGraphics
8727 [ 5750 [
8728 text "eClassifiers reference EPackage" 5751 text "data reference FunctionalInterface"
8729 fontSize 14 5752 fontSize 14
8730 fontName "Consolas" 5753 fontName "Consolas"
8731 configuration "AutoFlippingLabel" 5754 configuration "AutoFlippingLabel"
@@ -8735,8 +5758,8 @@ graph
8735 ] 5758 ]
8736 edge 5759 edge
8737 [ 5760 [
8738 source 0 5761 source 7
8739 target 13 5762 target 9
8740 graphics 5763 graphics
8741 [ 5764 [
8742 fill "#000000" 5765 fill "#000000"
@@ -8745,7 +5768,7 @@ graph
8745 ] 5768 ]
8746 LabelGraphics 5769 LabelGraphics
8747 [ 5770 [
8748 text "eClassifiers reference EPackage" 5771 text "data reference FunctionalInterface"
8749 fontSize 14 5772 fontSize 14
8750 fontName "Consolas" 5773 fontName "Consolas"
8751 configuration "AutoFlippingLabel" 5774 configuration "AutoFlippingLabel"
@@ -8755,8 +5778,8 @@ graph
8755 ] 5778 ]
8756 edge 5779 edge
8757 [ 5780 [
8758 source 0 5781 source 7
8759 target 12 5782 target 11
8760 graphics 5783 graphics
8761 [ 5784 [
8762 fill "#000000" 5785 fill "#000000"
@@ -8765,7 +5788,7 @@ graph
8765 ] 5788 ]
8766 LabelGraphics 5789 LabelGraphics
8767 [ 5790 [
8768 text "eSubpackages reference EPackage" 5791 text "data reference FunctionalInterface"
8769 fontSize 14 5792 fontSize 14
8770 fontName "Consolas" 5793 fontName "Consolas"
8771 configuration "AutoFlippingLabel" 5794 configuration "AutoFlippingLabel"
@@ -8775,26 +5798,7 @@ graph
8775 ] 5798 ]
8776 edge 5799 edge
8777 [ 5800 [
8778 source 12 5801 source 7
8779 target 0
8780 graphics
8781 [
8782 fill "#000000"
8783 targetArrow "standard"
8784 ]
8785 LabelGraphics
8786 [
8787 text "eSuperPackage reference EPackage"
8788 fontSize 14
8789 fontName "Consolas"
8790 configuration "AutoFlippingLabel"
8791 model "six_pos"
8792 position "thead"
8793 ]
8794 ]
8795 edge
8796 [
8797 source 11
8798 target 6 5802 target 6
8799 graphics 5803 graphics
8800 [ 5804 [
@@ -8803,45 +5807,7 @@ graph
8803 ] 5807 ]
8804 LabelGraphics 5808 LabelGraphics
8805 [ 5809 [
8806 text "instanceClassName attribute EClassifier" 5810 text "element reference FunctionalInterface"
8807 fontSize 14
8808 fontName "Consolas"
8809 configuration "AutoFlippingLabel"
8810 model "six_pos"
8811 position "thead"
8812 ]
8813 ]
8814 edge
8815 [
8816 source 13
8817 target 7
8818 graphics
8819 [
8820 fill "#000000"
8821 targetArrow "standard"
8822 ]
8823 LabelGraphics
8824 [
8825 text "instanceClassName attribute EClassifier"
8826 fontSize 14
8827 fontName "Consolas"
8828 configuration "AutoFlippingLabel"
8829 model "six_pos"
8830 position "thead"
8831 ]
8832 ]
8833 edge
8834 [
8835 source 11
8836 target 1
8837 graphics
8838 [
8839 fill "#000000"
8840 targetArrow "standard"
8841 ]
8842 LabelGraphics
8843 [
8844 text "serializable attribute EDataType"
8845 fontSize 14 5811 fontSize 14
8846 fontName "Consolas" 5812 fontName "Consolas"
8847 configuration "AutoFlippingLabel" 5813 configuration "AutoFlippingLabel"
@@ -8851,35 +5817,17 @@ graph
8851 ] 5817 ]
8852 edge 5818 edge
8853 [ 5819 [
8854 source 0 5820 source 9
8855 target 10 5821 target 10
8856 graphics 5822 graphics
8857 [ 5823 [
8858 fill "#000000" 5824 fill "#000000"
5825 width 3
8859 targetArrow "standard" 5826 targetArrow "standard"
8860 ] 5827 ]
8861 LabelGraphics 5828 LabelGraphics
8862 [ 5829 [
8863 text "name attribute ENamedElement" 5830 text "terminator reference FunctionalData"
8864 fontSize 14
8865 fontName "Consolas"
8866 configuration "AutoFlippingLabel"
8867 model "six_pos"
8868 position "thead"
8869 ]
8870 ]
8871 edge
8872 [
8873 source 12
8874 target 6
8875 graphics
8876 [
8877 fill "#000000"
8878 targetArrow "standard"
8879 ]
8880 LabelGraphics
8881 [
8882 text "name attribute ENamedElement"
8883 fontSize 14 5831 fontSize 14
8884 fontName "Consolas" 5832 fontName "Consolas"
8885 configuration "AutoFlippingLabel" 5833 configuration "AutoFlippingLabel"
@@ -8889,8 +5837,8 @@ graph
8889 ] 5837 ]
8890 edge 5838 edge
8891 [ 5839 [
8892 source 0 5840 source 8
8893 target 9 5841 target 7
8894 graphics 5842 graphics
8895 [ 5843 [
8896 fill "#000000" 5844 fill "#000000"
@@ -8898,7 +5846,7 @@ graph
8898 ] 5846 ]
8899 LabelGraphics 5847 LabelGraphics
8900 [ 5848 [
8901 text "nsURI attribute EPackage" 5849 text "interface reference FunctionalData"
8902 fontSize 14 5850 fontSize 14
8903 fontName "Consolas" 5851 fontName "Consolas"
8904 configuration "AutoFlippingLabel" 5852 configuration "AutoFlippingLabel"
@@ -8908,8 +5856,8 @@ graph
8908 ] 5856 ]
8909 edge 5857 edge
8910 [ 5858 [
8911 source 12 5859 source 9
8912 target 10 5860 target 7
8913 graphics 5861 graphics
8914 [ 5862 [
8915 fill "#000000" 5863 fill "#000000"
@@ -8917,7 +5865,7 @@ graph
8917 ] 5865 ]
8918 LabelGraphics 5866 LabelGraphics
8919 [ 5867 [
8920 text "nsURI attribute EPackage" 5868 text "interface reference FunctionalData"
8921 fontSize 14 5869 fontSize 14
8922 fontName "Consolas" 5870 fontName "Consolas"
8923 configuration "AutoFlippingLabel" 5871 configuration "AutoFlippingLabel"
@@ -8927,8 +5875,8 @@ graph
8927 ] 5875 ]
8928 edge 5876 edge
8929 [ 5877 [
8930 source 0 5878 source 11
8931 target 8 5879 target 7
8932 graphics 5880 graphics
8933 [ 5881 [
8934 fill "#000000" 5882 fill "#000000"
@@ -8936,7 +5884,7 @@ graph
8936 ] 5884 ]
8937 LabelGraphics 5885 LabelGraphics
8938 [ 5886 [
8939 text "nsPrefix attribute EPackage" 5887 text "interface reference FunctionalData"
8940 fontSize 14 5888 fontSize 14
8941 fontName "Consolas" 5889 fontName "Consolas"
8942 configuration "AutoFlippingLabel" 5890 configuration "AutoFlippingLabel"
@@ -8946,8 +5894,8 @@ graph
8946 ] 5894 ]
8947 edge 5895 edge
8948 [ 5896 [
8949 source 12 5897 source 6
8950 target 8 5898 target 0
8951 graphics 5899 graphics
8952 [ 5900 [
8953 fill "#000000" 5901 fill "#000000"
@@ -8955,7 +5903,7 @@ graph
8955 ] 5903 ]
8956 LabelGraphics 5904 LabelGraphics
8957 [ 5905 [
8958 text "nsPrefix attribute EPackage" 5906 text "type attribute Function"
8959 fontSize 14 5907 fontSize 14
8960 fontName "Consolas" 5908 fontName "Consolas"
8961 configuration "AutoFlippingLabel" 5909 configuration "AutoFlippingLabel"
@@ -8971,8 +5919,8 @@ graph
8971 id 0 5919 id 0
8972 graphics 5920 graphics
8973 [ 5921 [
8974 w 254.10000000000002 5922 w 226.60000000000002
8975 h 110 5923 h 40
8976 type "rectangle" 5924 type "rectangle"
8977 fill "#FFFFFF" 5925 fill "#FFFFFF"
8978 fill2 "#FFFFFF" 5926 fill2 "#FFFFFF"
@@ -8980,7 +5928,7 @@ graph
8980 ] 5928 ]
8981 LabelGraphics 5929 LabelGraphics
8982 [ 5930 [
8983 text "o 1" 5931 text "Root literal FunctionType"
8984 outline "#000000" 5932 outline "#000000"
8985 fill "#FFFFFF" 5933 fill "#FFFFFF"
8986 fontSize 16 5934 fontSize 16
@@ -8992,12 +5940,7 @@ graph
8992 LabelGraphics 5940 LabelGraphics
8993 [ 5941 [
8994 text " 5942 text "
8995 EModelElement class DefinedPart 5943 FunctionType enum
8996 ENamedElement class DefinedPart
8997 EPackage class DefinedPart
8998 EModelElement class
8999 ENamedElement class
9000 EPackage class
9001 " 5944 "
9002 fontSize 14 5945 fontSize 14
9003 fontName "Consolas" 5946 fontName "Consolas"
@@ -9012,8 +5955,8 @@ graph
9012 id 1 5955 id 1
9013 graphics 5956 graphics
9014 [ 5957 [
9015 w 41.800000000000004 5958 w 297.0
9016 h 26 5959 h 40
9017 type "rectangle" 5960 type "rectangle"
9018 fill "#FFFFFF" 5961 fill "#FFFFFF"
9019 fill2 "#FFFFFF" 5962 fill2 "#FFFFFF"
@@ -9021,7 +5964,7 @@ graph
9021 ] 5964 ]
9022 LabelGraphics 5965 LabelGraphics
9023 [ 5966 [
9024 text "true" 5967 text "Intermediate literal FunctionType"
9025 outline "#000000" 5968 outline "#000000"
9026 fill "#FFFFFF" 5969 fill "#FFFFFF"
9027 fontSize 16 5970 fontSize 16
@@ -9033,6 +5976,7 @@ graph
9033 LabelGraphics 5976 LabelGraphics
9034 [ 5977 [
9035 text " 5978 text "
5979 FunctionType enum
9036 " 5980 "
9037 fontSize 14 5981 fontSize 14
9038 fontName "Consolas" 5982 fontName "Consolas"
@@ -9047,8 +5991,8 @@ graph
9047 id 2 5991 id 2
9048 graphics 5992 graphics
9049 [ 5993 [
9050 w 50.6 5994 w 226.60000000000002
9051 h 26 5995 h 40
9052 type "rectangle" 5996 type "rectangle"
9053 fill "#FFFFFF" 5997 fill "#FFFFFF"
9054 fill2 "#FFFFFF" 5998 fill2 "#FFFFFF"
@@ -9056,7 +6000,7 @@ graph
9056 ] 6000 ]
9057 LabelGraphics 6001 LabelGraphics
9058 [ 6002 [
9059 text "false" 6003 text "Leaf literal FunctionType"
9060 outline "#000000" 6004 outline "#000000"
9061 fill "#FFFFFF" 6005 fill "#FFFFFF"
9062 fontSize 16 6006 fontSize 16
@@ -9068,6 +6012,7 @@ graph
9068 LabelGraphics 6012 LabelGraphics
9069 [ 6013 [
9070 text " 6014 text "
6015 FunctionType enum
9071 " 6016 "
9072 fontSize 14 6017 fontSize 14
9073 fontName "Consolas" 6018 fontName "Consolas"
@@ -9082,7 +6027,7 @@ graph
9082 id 3 6027 id 3
9083 graphics 6028 graphics
9084 [ 6029 [
9085 w 24.200000000000003 6030 w 41.800000000000004
9086 h 26 6031 h 26
9087 type "rectangle" 6032 type "rectangle"
9088 fill "#FFFFFF" 6033 fill "#FFFFFF"
@@ -9091,7 +6036,7 @@ graph
9091 ] 6036 ]
9092 LabelGraphics 6037 LabelGraphics
9093 [ 6038 [
9094 text "-1" 6039 text "true"
9095 outline "#000000" 6040 outline "#000000"
9096 fill "#FFFFFF" 6041 fill "#FFFFFF"
9097 fontSize 16 6042 fontSize 16
@@ -9117,7 +6062,7 @@ graph
9117 id 4 6062 id 4
9118 graphics 6063 graphics
9119 [ 6064 [
9120 w 15.400000000000002 6065 w 50.6
9121 h 26 6066 h 26
9122 type "rectangle" 6067 type "rectangle"
9123 fill "#FFFFFF" 6068 fill "#FFFFFF"
@@ -9126,7 +6071,7 @@ graph
9126 ] 6071 ]
9127 LabelGraphics 6072 LabelGraphics
9128 [ 6073 [
9129 text "0" 6074 text "false"
9130 outline "#000000" 6075 outline "#000000"
9131 fill "#FFFFFF" 6076 fill "#FFFFFF"
9132 fontSize 16 6077 fontSize 16
@@ -9152,8 +6097,8 @@ graph
9152 id 5 6097 id 5
9153 graphics 6098 graphics
9154 [ 6099 [
9155 w 15.400000000000002 6100 w 207.9
9156 h 26 6101 h 40
9157 type "rectangle" 6102 type "rectangle"
9158 fill "#FFFFFF" 6103 fill "#FFFFFF"
9159 fill2 "#FFFFFF" 6104 fill2 "#FFFFFF"
@@ -9161,7 +6106,7 @@ graph
9161 ] 6106 ]
9162 LabelGraphics 6107 LabelGraphics
9163 [ 6108 [
9164 text "1" 6109 text "null"
9165 outline "#000000" 6110 outline "#000000"
9166 fill "#FFFFFF" 6111 fill "#FFFFFF"
9167 fontSize 16 6112 fontSize 16
@@ -9173,6 +6118,7 @@ graph
9173 LabelGraphics 6118 LabelGraphics
9174 [ 6119 [
9175 text " 6120 text "
6121 FunctionalInterface class
9176 " 6122 "
9177 fontSize 14 6123 fontSize 14
9178 fontName "Consolas" 6124 fontName "Consolas"
@@ -9187,8 +6133,8 @@ graph
9187 id 6 6133 id 6
9188 graphics 6134 graphics
9189 [ 6135 [
9190 w 33.0 6136 w 177.10000000000002
9191 h 26 6137 h 54
9192 type "rectangle" 6138 type "rectangle"
9193 fill "#FFFFFF" 6139 fill "#FFFFFF"
9194 fill2 "#FFFFFF" 6140 fill2 "#FFFFFF"
@@ -9196,7 +6142,7 @@ graph
9196 ] 6142 ]
9197 LabelGraphics 6143 LabelGraphics
9198 [ 6144 [
9199 text ""A"" 6145 text "null"
9200 outline "#000000" 6146 outline "#000000"
9201 fill "#FFFFFF" 6147 fill "#FFFFFF"
9202 fontSize 16 6148 fontSize 16
@@ -9208,6 +6154,8 @@ graph
9208 LabelGraphics 6154 LabelGraphics
9209 [ 6155 [
9210 text " 6156 text "
6157 FunctionalInput class
6158 FunctionalData class
9211 " 6159 "
9212 fontSize 14 6160 fontSize 14
9213 fontName "Consolas" 6161 fontName "Consolas"
@@ -9222,8 +6170,8 @@ graph
9222 id 7 6170 id 7
9223 graphics 6171 graphics
9224 [ 6172 [
9225 w 33.0 6173 w 184.8
9226 h 26 6174 h 54
9227 type "rectangle" 6175 type "rectangle"
9228 fill "#FFFFFF" 6176 fill "#FFFFFF"
9229 fill2 "#FFFFFF" 6177 fill2 "#FFFFFF"
@@ -9231,7 +6179,7 @@ graph
9231 ] 6179 ]
9232 LabelGraphics 6180 LabelGraphics
9233 [ 6181 [
9234 text ""B"" 6182 text "null"
9235 outline "#000000" 6183 outline "#000000"
9236 fill "#FFFFFF" 6184 fill "#FFFFFF"
9237 fontSize 16 6185 fontSize 16
@@ -9243,6 +6191,8 @@ graph
9243 LabelGraphics 6191 LabelGraphics
9244 [ 6192 [
9245 text " 6193 text "
6194 FunctionalOutput class
6195 FunctionalData class
9246 " 6196 "
9247 fontSize 14 6197 fontSize 14
9248 fontName "Consolas" 6198 fontName "Consolas"
@@ -9257,8 +6207,8 @@ graph
9257 id 8 6207 id 8
9258 graphics 6208 graphics
9259 [ 6209 [
9260 w 94.60000000000001 6210 w 161.70000000000002
9261 h 26 6211 h 40
9262 type "rectangle" 6212 type "rectangle"
9263 fill "#FFFFFF" 6213 fill "#FFFFFF"
9264 fill2 "#FFFFFF" 6214 fill2 "#FFFFFF"
@@ -9266,7 +6216,7 @@ graph
9266 ] 6216 ]
9267 LabelGraphics 6217 LabelGraphics
9268 [ 6218 [
9269 text ""nsPrefix"" 6219 text "null"
9270 outline "#000000" 6220 outline "#000000"
9271 fill "#FFFFFF" 6221 fill "#FFFFFF"
9272 fontSize 16 6222 fontSize 16
@@ -9278,6 +6228,7 @@ graph
9278 LabelGraphics 6228 LabelGraphics
9279 [ 6229 [
9280 text " 6230 text "
6231 FAMTerminator class
9281 " 6232 "
9282 fontSize 14 6233 fontSize 14
9283 fontName "Consolas" 6234 fontName "Consolas"
@@ -9292,8 +6243,8 @@ graph
9292 id 9 6243 id 9
9293 graphics 6244 graphics
9294 [ 6245 [
9295 w 68.2 6246 w 177.10000000000002
9296 h 26 6247 h 54
9297 type "rectangle" 6248 type "rectangle"
9298 fill "#FFFFFF" 6249 fill "#FFFFFF"
9299 fill2 "#FFFFFF" 6250 fill2 "#FFFFFF"
@@ -9301,7 +6252,7 @@ graph
9301 ] 6252 ]
9302 LabelGraphics 6253 LabelGraphics
9303 [ 6254 [
9304 text ""nsUri"" 6255 text "null"
9305 outline "#000000" 6256 outline "#000000"
9306 fill "#FFFFFF" 6257 fill "#FFFFFF"
9307 fontSize 16 6258 fontSize 16
@@ -9313,6 +6264,8 @@ graph
9313 LabelGraphics 6264 LabelGraphics
9314 [ 6265 [
9315 text " 6266 text "
6267 FunctionalInput class
6268 FunctionalData class
9316 " 6269 "
9317 fontSize 14 6270 fontSize 14
9318 fontName "Consolas" 6271 fontName "Consolas"
@@ -9327,8 +6280,8 @@ graph
9327 id 10 6280 id 10
9328 graphics 6281 graphics
9329 [ 6282 [
9330 w 121.00000000000001 6283 w 161.70000000000002
9331 h 26 6284 h 40
9332 type "rectangle" 6285 type "rectangle"
9333 fill "#FFFFFF" 6286 fill "#FFFFFF"
9334 fill2 "#FFFFFF" 6287 fill2 "#FFFFFF"
@@ -9336,7 +6289,7 @@ graph
9336 ] 6289 ]
9337 LabelGraphics 6290 LabelGraphics
9338 [ 6291 [
9339 text ""packageName"" 6292 text "null"
9340 outline "#000000" 6293 outline "#000000"
9341 fill "#FFFFFF" 6294 fill "#FFFFFF"
9342 fontSize 16 6295 fontSize 16
@@ -9348,6 +6301,7 @@ graph
9348 LabelGraphics 6301 LabelGraphics
9349 [ 6302 [
9350 text " 6303 text "
6304 FAMTerminator class
9351 " 6305 "
9352 fontSize 14 6306 fontSize 14
9353 fontName "Consolas" 6307 fontName "Consolas"
@@ -9362,8 +6316,8 @@ graph
9362 id 11 6316 id 11
9363 graphics 6317 graphics
9364 [ 6318 [
9365 w 269.5 6319 w 177.10000000000002
9366 h 110 6320 h 54
9367 type "rectangle" 6321 type "rectangle"
9368 fill "#FFFFFF" 6322 fill "#FFFFFF"
9369 fill2 "#FFFFFF" 6323 fill2 "#FFFFFF"
@@ -9383,12 +6337,8 @@ graph
9383 LabelGraphics 6337 LabelGraphics
9384 [ 6338 [
9385 text " 6339 text "
9386 EClass class 6340 FunctionalInput class
9387 EClassifier class 6341 FunctionalData class
9388 EModelElement class
9389 ENamedElement class
9390 EModelElement class UndefinedPart
9391 ENamedElement class UndefinedPart
9392 " 6342 "
9393 fontSize 14 6343 fontSize 14
9394 fontName "Consolas" 6344 fontName "Consolas"
@@ -9403,169 +6353,6 @@ graph
9403 id 12 6353 id 12
9404 graphics 6354 graphics
9405 [ 6355 [
9406 w 269.5
9407 h 110
9408 type "rectangle"
9409 fill "#FFFFFF"
9410 fill2 "#FFFFFF"
9411 outline "#000000"
9412 ]
9413 LabelGraphics
9414 [
9415 text "null"
9416 outline "#000000"
9417 fill "#FFFFFF"
9418 fontSize 16
9419 fontName "Monospace"
9420 autoSizePolicy "node_width"
9421 anchor "t"
9422 borderDistance 0.0
9423 ]
9424 LabelGraphics
9425 [
9426 text "
9427 EModelElement class
9428 ENamedElement class
9429 EPackage class
9430 EModelElement class UndefinedPart
9431 ENamedElement class UndefinedPart
9432 EPackage class UndefinedPart
9433 "
9434 fontSize 14
9435 fontName "Consolas"
9436 alignment "left"
9437 anchor "tl"
9438 borderDistance 6
9439 ]
9440 ]
9441
9442 node
9443 [
9444 id 13
9445 graphics
9446 [
9447 w 269.5
9448 h 110
9449 type "rectangle"
9450 fill "#FFFFFF"
9451 fill2 "#FFFFFF"
9452 outline "#000000"
9453 ]
9454 LabelGraphics
9455 [
9456 text "null"
9457 outline "#000000"
9458 fill "#FFFFFF"
9459 fontSize 16
9460 fontName "Monospace"
9461 autoSizePolicy "node_width"
9462 anchor "t"
9463 borderDistance 0.0
9464 ]
9465 LabelGraphics
9466 [
9467 text "
9468 EModelElement class
9469 ENamedElement class
9470 EPackage class
9471 EModelElement class UndefinedPart
9472 ENamedElement class UndefinedPart
9473 EPackage class UndefinedPart
9474 "
9475 fontSize 14
9476 fontName "Consolas"
9477 alignment "left"
9478 anchor "tl"
9479 borderDistance 6
9480 ]
9481 ]
9482
9483 node
9484 [
9485 id 14
9486 graphics
9487 [
9488 w 269.5
9489 h 96
9490 type "rectangle"
9491 fill "#FFFFFF"
9492 fill2 "#FFFFFF"
9493 outline "#000000"
9494 ]
9495 LabelGraphics
9496 [
9497 text "null"
9498 outline "#000000"
9499 fill "#FFFFFF"
9500 fontSize 16
9501 fontName "Monospace"
9502 autoSizePolicy "node_width"
9503 anchor "t"
9504 borderDistance 0.0
9505 ]
9506 LabelGraphics
9507 [
9508 text "
9509 EModelElement class
9510 ENamedElement class
9511 ETypeParameter class
9512 EModelElement class UndefinedPart
9513 ENamedElement class UndefinedPart
9514 "
9515 fontSize 14
9516 fontName "Consolas"
9517 alignment "left"
9518 anchor "tl"
9519 borderDistance 6
9520 ]
9521 ]
9522
9523 node
9524 [
9525 id 15
9526 graphics
9527 [
9528 w 269.5
9529 h 110
9530 type "rectangle"
9531 fill "#FFFFFF"
9532 fill2 "#FFFFFF"
9533 outline "#000000"
9534 ]
9535 LabelGraphics
9536 [
9537 text "null"
9538 outline "#000000"
9539 fill "#FFFFFF"
9540 fontSize 16
9541 fontName "Monospace"
9542 autoSizePolicy "node_width"
9543 anchor "t"
9544 borderDistance 0.0
9545 ]
9546 LabelGraphics
9547 [
9548 text "
9549 EClass class
9550 EClassifier class
9551 EModelElement class
9552 ENamedElement class
9553 EModelElement class UndefinedPart
9554 ENamedElement class UndefinedPart
9555 "
9556 fontSize 14
9557 fontName "Consolas"
9558 alignment "left"
9559 anchor "tl"
9560 borderDistance 6
9561 ]
9562 ]
9563
9564 node
9565 [
9566 id 16
9567 graphics
9568 [
9569 w 112.2 6356 w 112.2
9570 h 26 6357 h 26
9571 type "rectangle" 6358 type "rectangle"
@@ -9598,7 +6385,7 @@ graph
9598 6385
9599 node 6386 node
9600 [ 6387 [
9601 id 17 6388 id 13
9602 graphics 6389 graphics
9603 [ 6390 [
9604 w 85.80000000000001 6391 w 85.80000000000001
@@ -9633,7 +6420,7 @@ graph
9633 6420
9634 node 6421 node
9635 [ 6422 [
9636 id 18 6423 id 14
9637 graphics 6424 graphics
9638 [ 6425 [
9639 w 103.4 6426 w 103.4
@@ -9668,7 +6455,7 @@ graph
9668 6455
9669 node 6456 node
9670 [ 6457 [
9671 id 19 6458 id 15
9672 graphics 6459 graphics
9673 [ 6460 [
9674 w 103.4 6461 w 103.4
@@ -9702,27 +6489,8 @@ graph
9702 ] 6489 ]
9703 edge 6490 edge
9704 [ 6491 [
9705 source 11 6492 source 8
9706 target 0 6493 target 7
9707 graphics
9708 [
9709 fill "#000000"
9710 targetArrow "standard"
9711 ]
9712 LabelGraphics
9713 [
9714 text "ePackage reference EClassifier"
9715 fontSize 14
9716 fontName "Consolas"
9717 configuration "AutoFlippingLabel"
9718 model "six_pos"
9719 position "thead"
9720 ]
9721 ]
9722 edge
9723 [
9724 source 15
9725 target 13
9726 graphics 6494 graphics
9727 [ 6495 [
9728 fill "#000000" 6496 fill "#000000"
@@ -9730,7 +6498,7 @@ graph
9730 ] 6498 ]
9731 LabelGraphics 6499 LabelGraphics
9732 [ 6500 [
9733 text "ePackage reference EClassifier" 6501 text "data reference FAMTerminator"
9734 fontSize 14 6502 fontSize 14
9735 fontName "Consolas" 6503 fontName "Consolas"
9736 configuration "AutoFlippingLabel" 6504 configuration "AutoFlippingLabel"
@@ -9740,17 +6508,16 @@ graph
9740 ] 6508 ]
9741 edge 6509 edge
9742 [ 6510 [
9743 source 11 6511 source 10
9744 target 14 6512 target 6
9745 graphics 6513 graphics
9746 [ 6514 [
9747 fill "#000000" 6515 fill "#000000"
9748 width 3
9749 targetArrow "standard" 6516 targetArrow "standard"
9750 ] 6517 ]
9751 LabelGraphics 6518 LabelGraphics
9752 [ 6519 [
9753 text "eTypeParameters reference EClassifier" 6520 text "data reference FAMTerminator"
9754 fontSize 14 6521 fontSize 14
9755 fontName "Consolas" 6522 fontName "Consolas"
9756 configuration "AutoFlippingLabel" 6523 configuration "AutoFlippingLabel"
@@ -9760,8 +6527,8 @@ graph
9760 ] 6527 ]
9761 edge 6528 edge
9762 [ 6529 [
9763 source 0 6530 source 5
9764 target 11 6531 target 6
9765 graphics 6532 graphics
9766 [ 6533 [
9767 fill "#000000" 6534 fill "#000000"
@@ -9770,7 +6537,7 @@ graph
9770 ] 6537 ]
9771 LabelGraphics 6538 LabelGraphics
9772 [ 6539 [
9773 text "eClassifiers reference EPackage" 6540 text "data reference FunctionalInterface"
9774 fontSize 14 6541 fontSize 14
9775 fontName "Consolas" 6542 fontName "Consolas"
9776 configuration "AutoFlippingLabel" 6543 configuration "AutoFlippingLabel"
@@ -9780,8 +6547,8 @@ graph
9780 ] 6547 ]
9781 edge 6548 edge
9782 [ 6549 [
9783 source 13 6550 source 5
9784 target 15 6551 target 7
9785 graphics 6552 graphics
9786 [ 6553 [
9787 fill "#000000" 6554 fill "#000000"
@@ -9790,7 +6557,7 @@ graph
9790 ] 6557 ]
9791 LabelGraphics 6558 LabelGraphics
9792 [ 6559 [
9793 text "eClassifiers reference EPackage" 6560 text "data reference FunctionalInterface"
9794 fontSize 14 6561 fontSize 14
9795 fontName "Consolas" 6562 fontName "Consolas"
9796 configuration "AutoFlippingLabel" 6563 configuration "AutoFlippingLabel"
@@ -9800,8 +6567,8 @@ graph
9800 ] 6567 ]
9801 edge 6568 edge
9802 [ 6569 [
9803 source 0 6570 source 5
9804 target 12 6571 target 9
9805 graphics 6572 graphics
9806 [ 6573 [
9807 fill "#000000" 6574 fill "#000000"
@@ -9810,7 +6577,7 @@ graph
9810 ] 6577 ]
9811 LabelGraphics 6578 LabelGraphics
9812 [ 6579 [
9813 text "eSubpackages reference EPackage" 6580 text "data reference FunctionalInterface"
9814 fontSize 14 6581 fontSize 14
9815 fontName "Consolas" 6582 fontName "Consolas"
9816 configuration "AutoFlippingLabel" 6583 configuration "AutoFlippingLabel"
@@ -9820,8 +6587,8 @@ graph
9820 ] 6587 ]
9821 edge 6588 edge
9822 [ 6589 [
9823 source 12 6590 source 5
9824 target 13 6591 target 11
9825 graphics 6592 graphics
9826 [ 6593 [
9827 fill "#000000" 6594 fill "#000000"
@@ -9830,26 +6597,7 @@ graph
9830 ] 6597 ]
9831 LabelGraphics 6598 LabelGraphics
9832 [ 6599 [
9833 text "eSubpackages reference EPackage" 6600 text "data reference FunctionalInterface"
9834 fontSize 14
9835 fontName "Consolas"
9836 configuration "AutoFlippingLabel"
9837 model "six_pos"
9838 position "thead"
9839 ]
9840 ]
9841 edge
9842 [
9843 source 12
9844 target 0
9845 graphics
9846 [
9847 fill "#000000"
9848 targetArrow "standard"
9849 ]
9850 LabelGraphics
9851 [
9852 text "eSuperPackage reference EPackage"
9853 fontSize 14 6601 fontSize 14
9854 fontName "Consolas" 6602 fontName "Consolas"
9855 configuration "AutoFlippingLabel" 6603 configuration "AutoFlippingLabel"
@@ -9859,92 +6607,17 @@ graph
9859 ] 6607 ]
9860 edge 6608 edge
9861 [ 6609 [
9862 source 13 6610 source 7
9863 target 12
9864 graphics
9865 [
9866 fill "#000000"
9867 targetArrow "standard"
9868 ]
9869 LabelGraphics
9870 [
9871 text "eSuperPackage reference EPackage"
9872 fontSize 14
9873 fontName "Consolas"
9874 configuration "AutoFlippingLabel"
9875 model "six_pos"
9876 position "thead"
9877 ]
9878 ]
9879 edge
9880 [
9881 source 11
9882 target 1
9883 graphics
9884 [
9885 fill "#000000"
9886 targetArrow "standard"
9887 ]
9888 LabelGraphics
9889 [
9890 text "abstract attribute EClass"
9891 fontSize 14
9892 fontName "Consolas"
9893 configuration "AutoFlippingLabel"
9894 model "six_pos"
9895 position "thead"
9896 ]
9897 ]
9898 edge
9899 [
9900 source 11
9901 target 2
9902 graphics
9903 [
9904 fill "#000000"
9905 targetArrow "standard"
9906 ]
9907 LabelGraphics
9908 [
9909 text "interface attribute EClass"
9910 fontSize 14
9911 fontName "Consolas"
9912 configuration "AutoFlippingLabel"
9913 model "six_pos"
9914 position "thead"
9915 ]
9916 ]
9917 edge
9918 [
9919 source 11
9920 target 8 6611 target 8
9921 graphics 6612 graphics
9922 [ 6613 [
9923 fill "#000000" 6614 fill "#000000"
6615 width 3
9924 targetArrow "standard" 6616 targetArrow "standard"
9925 ] 6617 ]
9926 LabelGraphics 6618 LabelGraphics
9927 [ 6619 [
9928 text "instanceTypeName attribute EClassifier" 6620 text "terminator reference FunctionalData"
9929 fontSize 14
9930 fontName "Consolas"
9931 configuration "AutoFlippingLabel"
9932 model "six_pos"
9933 position "thead"
9934 ]
9935 ]
9936 edge
9937 [
9938 source 15
9939 target 6
9940 graphics
9941 [
9942 fill "#000000"
9943 targetArrow "standard"
9944 ]
9945 LabelGraphics
9946 [
9947 text "instanceTypeName attribute EClassifier"
9948 fontSize 14 6621 fontSize 14
9949 fontName "Consolas" 6622 fontName "Consolas"
9950 configuration "AutoFlippingLabel" 6623 configuration "AutoFlippingLabel"
@@ -9954,35 +6627,17 @@ graph
9954 ] 6627 ]
9955 edge 6628 edge
9956 [ 6629 [
9957 source 0 6630 source 6
9958 target 10 6631 target 10
9959 graphics 6632 graphics
9960 [ 6633 [
9961 fill "#000000" 6634 fill "#000000"
6635 width 3
9962 targetArrow "standard" 6636 targetArrow "standard"
9963 ] 6637 ]
9964 LabelGraphics 6638 LabelGraphics
9965 [ 6639 [
9966 text "name attribute ENamedElement" 6640 text "terminator reference FunctionalData"
9967 fontSize 14
9968 fontName "Consolas"
9969 configuration "AutoFlippingLabel"
9970 model "six_pos"
9971 position "thead"
9972 ]
9973 ]
9974 edge
9975 [
9976 source 13
9977 target 8
9978 graphics
9979 [
9980 fill "#000000"
9981 targetArrow "standard"
9982 ]
9983 LabelGraphics
9984 [
9985 text "name attribute ENamedElement"
9986 fontSize 14 6641 fontSize 14
9987 fontName "Consolas" 6642 fontName "Consolas"
9988 configuration "AutoFlippingLabel" 6643 configuration "AutoFlippingLabel"
@@ -9992,8 +6647,8 @@ graph
9992 ] 6647 ]
9993 edge 6648 edge
9994 [ 6649 [
9995 source 0 6650 source 6
9996 target 9 6651 target 5
9997 graphics 6652 graphics
9998 [ 6653 [
9999 fill "#000000" 6654 fill "#000000"
@@ -10001,7 +6656,7 @@ graph
10001 ] 6656 ]
10002 LabelGraphics 6657 LabelGraphics
10003 [ 6658 [
10004 text "nsURI attribute EPackage" 6659 text "interface reference FunctionalData"
10005 fontSize 14 6660 fontSize 14
10006 fontName "Consolas" 6661 fontName "Consolas"
10007 configuration "AutoFlippingLabel" 6662 configuration "AutoFlippingLabel"
@@ -10011,8 +6666,8 @@ graph
10011 ] 6666 ]
10012 edge 6667 edge
10013 [ 6668 [
10014 source 13 6669 source 7
10015 target 7 6670 target 5
10016 graphics 6671 graphics
10017 [ 6672 [
10018 fill "#000000" 6673 fill "#000000"
@@ -10020,7 +6675,7 @@ graph
10020 ] 6675 ]
10021 LabelGraphics 6676 LabelGraphics
10022 [ 6677 [
10023 text "nsURI attribute EPackage" 6678 text "interface reference FunctionalData"
10024 fontSize 14 6679 fontSize 14
10025 fontName "Consolas" 6680 fontName "Consolas"
10026 configuration "AutoFlippingLabel" 6681 configuration "AutoFlippingLabel"
@@ -10030,8 +6685,8 @@ graph
10030 ] 6685 ]
10031 edge 6686 edge
10032 [ 6687 [
10033 source 12 6688 source 9
10034 target 7 6689 target 5
10035 graphics 6690 graphics
10036 [ 6691 [
10037 fill "#000000" 6692 fill "#000000"
@@ -10039,7 +6694,7 @@ graph
10039 ] 6694 ]
10040 LabelGraphics 6695 LabelGraphics
10041 [ 6696 [
10042 text "nsURI attribute EPackage" 6697 text "interface reference FunctionalData"
10043 fontSize 14 6698 fontSize 14
10044 fontName "Consolas" 6699 fontName "Consolas"
10045 configuration "AutoFlippingLabel" 6700 configuration "AutoFlippingLabel"
@@ -10049,8 +6704,8 @@ graph
10049 ] 6704 ]
10050 edge 6705 edge
10051 [ 6706 [
10052 source 0 6707 source 11
10053 target 8 6708 target 5
10054 graphics 6709 graphics
10055 [ 6710 [
10056 fill "#000000" 6711 fill "#000000"
@@ -10058,7 +6713,7 @@ graph
10058 ] 6713 ]
10059 LabelGraphics 6714 LabelGraphics
10060 [ 6715 [
10061 text "nsPrefix attribute EPackage" 6716 text "interface reference FunctionalData"
10062 fontSize 14 6717 fontSize 14
10063 fontName "Consolas" 6718 fontName "Consolas"
10064 configuration "AutoFlippingLabel" 6719 configuration "AutoFlippingLabel"
@@ -10182,8 +6837,8 @@ graph
10182 id 3 6837 id 3
10183 graphics 6838 graphics
10184 [ 6839 [
10185 w 361.90000000000003 6840 w 41.800000000000004
10186 h 54 6841 h 26
10187 type "rectangle" 6842 type "rectangle"
10188 fill "#FFFFFF" 6843 fill "#FFFFFF"
10189 fill2 "#FFFFFF" 6844 fill2 "#FFFFFF"
@@ -10191,7 +6846,7 @@ graph
10191 ] 6846 ]
10192 LabelGraphics 6847 LabelGraphics
10193 [ 6848 [
10194 text "o 1" 6849 text "true"
10195 outline "#000000" 6850 outline "#000000"
10196 fill "#FFFFFF" 6851 fill "#FFFFFF"
10197 fontSize 16 6852 fontSize 16
@@ -10203,8 +6858,6 @@ graph
10203 LabelGraphics 6858 LabelGraphics
10204 [ 6859 [
10205 text " 6860 text "
10206 FunctionalArchitectureModel class DefinedPart
10207 FunctionalArchitectureModel class
10208 " 6861 "
10209 fontSize 14 6862 fontSize 14
10210 fontName "Consolas" 6863 fontName "Consolas"
@@ -10219,7 +6872,7 @@ graph
10219 id 4 6872 id 4
10220 graphics 6873 graphics
10221 [ 6874 [
10222 w 41.800000000000004 6875 w 50.6
10223 h 26 6876 h 26
10224 type "rectangle" 6877 type "rectangle"
10225 fill "#FFFFFF" 6878 fill "#FFFFFF"
@@ -10228,7 +6881,7 @@ graph
10228 ] 6881 ]
10229 LabelGraphics 6882 LabelGraphics
10230 [ 6883 [
10231 text "true" 6884 text "false"
10232 outline "#000000" 6885 outline "#000000"
10233 fill "#FFFFFF" 6886 fill "#FFFFFF"
10234 fontSize 16 6887 fontSize 16
@@ -10254,8 +6907,8 @@ graph
10254 id 5 6907 id 5
10255 graphics 6908 graphics
10256 [ 6909 [
10257 w 50.6 6910 w 207.9
10258 h 26 6911 h 40
10259 type "rectangle" 6912 type "rectangle"
10260 fill "#FFFFFF" 6913 fill "#FFFFFF"
10261 fill2 "#FFFFFF" 6914 fill2 "#FFFFFF"
@@ -10263,7 +6916,7 @@ graph
10263 ] 6916 ]
10264 LabelGraphics 6917 LabelGraphics
10265 [ 6918 [
10266 text "false" 6919 text "null"
10267 outline "#000000" 6920 outline "#000000"
10268 fill "#FFFFFF" 6921 fill "#FFFFFF"
10269 fontSize 16 6922 fontSize 16
@@ -10275,6 +6928,7 @@ graph
10275 LabelGraphics 6928 LabelGraphics
10276 [ 6929 [
10277 text " 6930 text "
6931 FunctionalInterface class
10278 " 6932 "
10279 fontSize 14 6933 fontSize 14
10280 fontName "Consolas" 6934 fontName "Consolas"
@@ -10289,7 +6943,7 @@ graph
10289 id 6 6943 id 6
10290 graphics 6944 graphics
10291 [ 6945 [
10292 w 192.50000000000003 6946 w 184.8
10293 h 54 6947 h 54
10294 type "rectangle" 6948 type "rectangle"
10295 fill "#FFFFFF" 6949 fill "#FFFFFF"
@@ -10310,8 +6964,8 @@ graph
10310 LabelGraphics 6964 LabelGraphics
10311 [ 6965 [
10312 text " 6966 text "
10313 FunctionalElement class 6967 FunctionalOutput class
10314 Function class 6968 FunctionalData class
10315 " 6969 "
10316 fontSize 14 6970 fontSize 14
10317 fontName "Consolas" 6971 fontName "Consolas"
@@ -10326,8 +6980,8 @@ graph
10326 id 7 6980 id 7
10327 graphics 6981 graphics
10328 [ 6982 [
10329 w 112.2 6983 w 184.8
10330 h 26 6984 h 54
10331 type "rectangle" 6985 type "rectangle"
10332 fill "#FFFFFF" 6986 fill "#FFFFFF"
10333 fill2 "#FFFFFF" 6987 fill2 "#FFFFFF"
@@ -10335,7 +6989,7 @@ graph
10335 ] 6989 ]
10336 LabelGraphics 6990 LabelGraphics
10337 [ 6991 [
10338 text "New Integers" 6992 text "null"
10339 outline "#000000" 6993 outline "#000000"
10340 fill "#FFFFFF" 6994 fill "#FFFFFF"
10341 fontSize 16 6995 fontSize 16
@@ -10347,6 +7001,8 @@ graph
10347 LabelGraphics 7001 LabelGraphics
10348 [ 7002 [
10349 text " 7003 text "
7004 FunctionalOutput class
7005 FunctionalData class
10350 " 7006 "
10351 fontSize 14 7007 fontSize 14
10352 fontName "Consolas" 7008 fontName "Consolas"
@@ -10361,8 +7017,8 @@ graph
10361 id 8 7017 id 8
10362 graphics 7018 graphics
10363 [ 7019 [
10364 w 85.80000000000001 7020 w 184.8
10365 h 26 7021 h 54
10366 type "rectangle" 7022 type "rectangle"
10367 fill "#FFFFFF" 7023 fill "#FFFFFF"
10368 fill2 "#FFFFFF" 7024 fill2 "#FFFFFF"
@@ -10370,7 +7026,7 @@ graph
10370 ] 7026 ]
10371 LabelGraphics 7027 LabelGraphics
10372 [ 7028 [
10373 text "New Reals" 7029 text "null"
10374 outline "#000000" 7030 outline "#000000"
10375 fill "#FFFFFF" 7031 fill "#FFFFFF"
10376 fontSize 16 7032 fontSize 16
@@ -10382,6 +7038,8 @@ graph
10382 LabelGraphics 7038 LabelGraphics
10383 [ 7039 [
10384 text " 7040 text "
7041 FunctionalOutput class
7042 FunctionalData class
10385 " 7043 "
10386 fontSize 14 7044 fontSize 14
10387 fontName "Consolas" 7045 fontName "Consolas"
@@ -10396,8 +7054,8 @@ graph
10396 id 9 7054 id 9
10397 graphics 7055 graphics
10398 [ 7056 [
10399 w 103.4 7057 w 177.10000000000002
10400 h 26 7058 h 54
10401 type "rectangle" 7059 type "rectangle"
10402 fill "#FFFFFF" 7060 fill "#FFFFFF"
10403 fill2 "#FFFFFF" 7061 fill2 "#FFFFFF"
@@ -10405,7 +7063,7 @@ graph
10405 ] 7063 ]
10406 LabelGraphics 7064 LabelGraphics
10407 [ 7065 [
10408 text "New Strings" 7066 text "null"
10409 outline "#000000" 7067 outline "#000000"
10410 fill "#FFFFFF" 7068 fill "#FFFFFF"
10411 fontSize 16 7069 fontSize 16
@@ -10417,6 +7075,8 @@ graph
10417 LabelGraphics 7075 LabelGraphics
10418 [ 7076 [
10419 text " 7077 text "
7078 FunctionalInput class
7079 FunctionalData class
10420 " 7080 "
10421 fontSize 14 7081 fontSize 14
10422 fontName "Consolas" 7082 fontName "Consolas"
@@ -10431,8 +7091,8 @@ graph
10431 id 10 7091 id 10
10432 graphics 7092 graphics
10433 [ 7093 [
10434 w 103.4 7094 w 177.10000000000002
10435 h 26 7095 h 54
10436 type "rectangle" 7096 type "rectangle"
10437 fill "#FFFFFF" 7097 fill "#FFFFFF"
10438 fill2 "#FFFFFF" 7098 fill2 "#FFFFFF"
@@ -10440,7 +7100,7 @@ graph
10440 ] 7100 ]
10441 LabelGraphics 7101 LabelGraphics
10442 [ 7102 [
10443 text "New Objects" 7103 text "null"
10444 outline "#000000" 7104 outline "#000000"
10445 fill "#FFFFFF" 7105 fill "#FFFFFF"
10446 fontSize 16 7106 fontSize 16
@@ -10452,6 +7112,8 @@ graph
10452 LabelGraphics 7112 LabelGraphics
10453 [ 7113 [
10454 text " 7114 text "
7115 FunctionalInput class
7116 FunctionalData class
10455 " 7117 "
10456 fontSize 14 7118 fontSize 14
10457 fontName "Consolas" 7119 fontName "Consolas"
@@ -10460,74 +7122,14 @@ graph
10460 borderDistance 6 7122 borderDistance 6
10461 ] 7123 ]
10462 ] 7124 ]
10463 edge 7125
10464 [
10465 source 6
10466 target 3
10467 graphics
10468 [
10469 fill "#000000"
10470 targetArrow "standard"
10471 ]
10472 LabelGraphics
10473 [
10474 text "model reference FunctionalElement"
10475 fontSize 14
10476 fontName "Consolas"
10477 configuration "AutoFlippingLabel"
10478 model "six_pos"
10479 position "thead"
10480 ]
10481 ]
10482 edge
10483 [
10484 source 3
10485 target 6
10486 graphics
10487 [
10488 fill "#000000"
10489 width 3
10490 targetArrow "standard"
10491 ]
10492 LabelGraphics
10493 [
10494 text "rootElements reference FunctionalArchitectureModel"
10495 fontSize 14
10496 fontName "Consolas"
10497 configuration "AutoFlippingLabel"
10498 model "six_pos"
10499 position "thead"
10500 ]
10501 ]
10502 edge
10503 [
10504 source 6
10505 target 1
10506 graphics
10507 [
10508 fill "#000000"
10509 targetArrow "standard"
10510 ]
10511 LabelGraphics
10512 [
10513 text "type attribute Function"
10514 fontSize 14
10515 fontName "Consolas"
10516 configuration "AutoFlippingLabel"
10517 model "six_pos"
10518 position "thead"
10519 ]
10520 ]
10521]
10522graph
10523[
10524 node 7126 node
10525 [ 7127 [
10526 id 0 7128 id 11
10527 graphics 7129 graphics
10528 [ 7130 [
10529 w 254.10000000000002 7131 w 161.70000000000002
10530 h 110 7132 h 40
10531 type "rectangle" 7133 type "rectangle"
10532 fill "#FFFFFF" 7134 fill "#FFFFFF"
10533 fill2 "#FFFFFF" 7135 fill2 "#FFFFFF"
@@ -10535,7 +7137,7 @@ graph
10535 ] 7137 ]
10536 LabelGraphics 7138 LabelGraphics
10537 [ 7139 [
10538 text "o 1" 7140 text "null"
10539 outline "#000000" 7141 outline "#000000"
10540 fill "#FFFFFF" 7142 fill "#FFFFFF"
10541 fontSize 16 7143 fontSize 16
@@ -10547,12 +7149,7 @@ graph
10547 LabelGraphics 7149 LabelGraphics
10548 [ 7150 [
10549 text " 7151 text "
10550 EModelElement class DefinedPart 7152 FAMTerminator class
10551 ENamedElement class DefinedPart
10552 EPackage class DefinedPart
10553 EModelElement class
10554 ENamedElement class
10555 EPackage class
10556 " 7153 "
10557 fontSize 14 7154 fontSize 14
10558 fontName "Consolas" 7155 fontName "Consolas"
@@ -10564,10 +7161,10 @@ graph
10564 7161
10565 node 7162 node
10566 [ 7163 [
10567 id 1 7164 id 12
10568 graphics 7165 graphics
10569 [ 7166 [
10570 w 41.800000000000004 7167 w 112.2
10571 h 26 7168 h 26
10572 type "rectangle" 7169 type "rectangle"
10573 fill "#FFFFFF" 7170 fill "#FFFFFF"
@@ -10576,7 +7173,7 @@ graph
10576 ] 7173 ]
10577 LabelGraphics 7174 LabelGraphics
10578 [ 7175 [
10579 text "true" 7176 text "New Integers"
10580 outline "#000000" 7177 outline "#000000"
10581 fill "#FFFFFF" 7178 fill "#FFFFFF"
10582 fontSize 16 7179 fontSize 16
@@ -10599,10 +7196,10 @@ graph
10599 7196
10600 node 7197 node
10601 [ 7198 [
10602 id 2 7199 id 13
10603 graphics 7200 graphics
10604 [ 7201 [
10605 w 50.6 7202 w 85.80000000000001
10606 h 26 7203 h 26
10607 type "rectangle" 7204 type "rectangle"
10608 fill "#FFFFFF" 7205 fill "#FFFFFF"
@@ -10611,7 +7208,7 @@ graph
10611 ] 7208 ]
10612 LabelGraphics 7209 LabelGraphics
10613 [ 7210 [
10614 text "false" 7211 text "New Reals"
10615 outline "#000000" 7212 outline "#000000"
10616 fill "#FFFFFF" 7213 fill "#FFFFFF"
10617 fontSize 16 7214 fontSize 16
@@ -10634,10 +7231,10 @@ graph
10634 7231
10635 node 7232 node
10636 [ 7233 [
10637 id 3 7234 id 14
10638 graphics 7235 graphics
10639 [ 7236 [
10640 w 24.200000000000003 7237 w 103.4
10641 h 26 7238 h 26
10642 type "rectangle" 7239 type "rectangle"
10643 fill "#FFFFFF" 7240 fill "#FFFFFF"
@@ -10646,7 +7243,7 @@ graph
10646 ] 7243 ]
10647 LabelGraphics 7244 LabelGraphics
10648 [ 7245 [
10649 text "-1" 7246 text "New Strings"
10650 outline "#000000" 7247 outline "#000000"
10651 fill "#FFFFFF" 7248 fill "#FFFFFF"
10652 fontSize 16 7249 fontSize 16
@@ -10669,10 +7266,10 @@ graph
10669 7266
10670 node 7267 node
10671 [ 7268 [
10672 id 4 7269 id 15
10673 graphics 7270 graphics
10674 [ 7271 [
10675 w 15.400000000000002 7272 w 103.4
10676 h 26 7273 h 26
10677 type "rectangle" 7274 type "rectangle"
10678 fill "#FFFFFF" 7275 fill "#FFFFFF"
@@ -10681,7 +7278,7 @@ graph
10681 ] 7278 ]
10682 LabelGraphics 7279 LabelGraphics
10683 [ 7280 [
10684 text "0" 7281 text "New Objects"
10685 outline "#000000" 7282 outline "#000000"
10686 fill "#FFFFFF" 7283 fill "#FFFFFF"
10687 fontSize 16 7284 fontSize 16
@@ -10701,14 +7298,250 @@ graph
10701 borderDistance 6 7298 borderDistance 6
10702 ] 7299 ]
10703 ] 7300 ]
10704 7301 edge
7302 [
7303 source 11
7304 target 9
7305 graphics
7306 [
7307 fill "#000000"
7308 targetArrow "standard"
7309 ]
7310 LabelGraphics
7311 [
7312 text "data reference FAMTerminator"
7313 fontSize 14
7314 fontName "Consolas"
7315 configuration "AutoFlippingLabel"
7316 model "six_pos"
7317 position "thead"
7318 ]
7319 ]
7320 edge
7321 [
7322 source 5
7323 target 6
7324 graphics
7325 [
7326 fill "#000000"
7327 width 3
7328 targetArrow "standard"
7329 ]
7330 LabelGraphics
7331 [
7332 text "data reference FunctionalInterface"
7333 fontSize 14
7334 fontName "Consolas"
7335 configuration "AutoFlippingLabel"
7336 model "six_pos"
7337 position "thead"
7338 ]
7339 ]
7340 edge
7341 [
7342 source 5
7343 target 7
7344 graphics
7345 [
7346 fill "#000000"
7347 width 3
7348 targetArrow "standard"
7349 ]
7350 LabelGraphics
7351 [
7352 text "data reference FunctionalInterface"
7353 fontSize 14
7354 fontName "Consolas"
7355 configuration "AutoFlippingLabel"
7356 model "six_pos"
7357 position "thead"
7358 ]
7359 ]
7360 edge
7361 [
7362 source 5
7363 target 8
7364 graphics
7365 [
7366 fill "#000000"
7367 width 3
7368 targetArrow "standard"
7369 ]
7370 LabelGraphics
7371 [
7372 text "data reference FunctionalInterface"
7373 fontSize 14
7374 fontName "Consolas"
7375 configuration "AutoFlippingLabel"
7376 model "six_pos"
7377 position "thead"
7378 ]
7379 ]
7380 edge
7381 [
7382 source 5
7383 target 9
7384 graphics
7385 [
7386 fill "#000000"
7387 width 3
7388 targetArrow "standard"
7389 ]
7390 LabelGraphics
7391 [
7392 text "data reference FunctionalInterface"
7393 fontSize 14
7394 fontName "Consolas"
7395 configuration "AutoFlippingLabel"
7396 model "six_pos"
7397 position "thead"
7398 ]
7399 ]
7400 edge
7401 [
7402 source 5
7403 target 10
7404 graphics
7405 [
7406 fill "#000000"
7407 width 3
7408 targetArrow "standard"
7409 ]
7410 LabelGraphics
7411 [
7412 text "data reference FunctionalInterface"
7413 fontSize 14
7414 fontName "Consolas"
7415 configuration "AutoFlippingLabel"
7416 model "six_pos"
7417 position "thead"
7418 ]
7419 ]
7420 edge
7421 [
7422 source 9
7423 target 11
7424 graphics
7425 [
7426 fill "#000000"
7427 width 3
7428 targetArrow "standard"
7429 ]
7430 LabelGraphics
7431 [
7432 text "terminator reference FunctionalData"
7433 fontSize 14
7434 fontName "Consolas"
7435 configuration "AutoFlippingLabel"
7436 model "six_pos"
7437 position "thead"
7438 ]
7439 ]
7440 edge
7441 [
7442 source 6
7443 target 5
7444 graphics
7445 [
7446 fill "#000000"
7447 targetArrow "standard"
7448 ]
7449 LabelGraphics
7450 [
7451 text "interface reference FunctionalData"
7452 fontSize 14
7453 fontName "Consolas"
7454 configuration "AutoFlippingLabel"
7455 model "six_pos"
7456 position "thead"
7457 ]
7458 ]
7459 edge
7460 [
7461 source 7
7462 target 5
7463 graphics
7464 [
7465 fill "#000000"
7466 targetArrow "standard"
7467 ]
7468 LabelGraphics
7469 [
7470 text "interface reference FunctionalData"
7471 fontSize 14
7472 fontName "Consolas"
7473 configuration "AutoFlippingLabel"
7474 model "six_pos"
7475 position "thead"
7476 ]
7477 ]
7478 edge
7479 [
7480 source 8
7481 target 5
7482 graphics
7483 [
7484 fill "#000000"
7485 targetArrow "standard"
7486 ]
7487 LabelGraphics
7488 [
7489 text "interface reference FunctionalData"
7490 fontSize 14
7491 fontName "Consolas"
7492 configuration "AutoFlippingLabel"
7493 model "six_pos"
7494 position "thead"
7495 ]
7496 ]
7497 edge
7498 [
7499 source 9
7500 target 5
7501 graphics
7502 [
7503 fill "#000000"
7504 targetArrow "standard"
7505 ]
7506 LabelGraphics
7507 [
7508 text "interface reference FunctionalData"
7509 fontSize 14
7510 fontName "Consolas"
7511 configuration "AutoFlippingLabel"
7512 model "six_pos"
7513 position "thead"
7514 ]
7515 ]
7516 edge
7517 [
7518 source 10
7519 target 5
7520 graphics
7521 [
7522 fill "#000000"
7523 targetArrow "standard"
7524 ]
7525 LabelGraphics
7526 [
7527 text "interface reference FunctionalData"
7528 fontSize 14
7529 fontName "Consolas"
7530 configuration "AutoFlippingLabel"
7531 model "six_pos"
7532 position "thead"
7533 ]
7534 ]
7535]
7536graph
7537[
10705 node 7538 node
10706 [ 7539 [
10707 id 5 7540 id 0
10708 graphics 7541 graphics
10709 [ 7542 [
10710 w 15.400000000000002 7543 w 226.60000000000002
10711 h 26 7544 h 40
10712 type "rectangle" 7545 type "rectangle"
10713 fill "#FFFFFF" 7546 fill "#FFFFFF"
10714 fill2 "#FFFFFF" 7547 fill2 "#FFFFFF"
@@ -10716,7 +7549,7 @@ graph
10716 ] 7549 ]
10717 LabelGraphics 7550 LabelGraphics
10718 [ 7551 [
10719 text "1" 7552 text "Root literal FunctionType"
10720 outline "#000000" 7553 outline "#000000"
10721 fill "#FFFFFF" 7554 fill "#FFFFFF"
10722 fontSize 16 7555 fontSize 16
@@ -10728,6 +7561,7 @@ graph
10728 LabelGraphics 7561 LabelGraphics
10729 [ 7562 [
10730 text " 7563 text "
7564 FunctionType enum
10731 " 7565 "
10732 fontSize 14 7566 fontSize 14
10733 fontName "Consolas" 7567 fontName "Consolas"
@@ -10739,11 +7573,11 @@ graph
10739 7573
10740 node 7574 node
10741 [ 7575 [
10742 id 6 7576 id 1
10743 graphics 7577 graphics
10744 [ 7578 [
10745 w 33.0 7579 w 297.0
10746 h 26 7580 h 40
10747 type "rectangle" 7581 type "rectangle"
10748 fill "#FFFFFF" 7582 fill "#FFFFFF"
10749 fill2 "#FFFFFF" 7583 fill2 "#FFFFFF"
@@ -10751,7 +7585,7 @@ graph
10751 ] 7585 ]
10752 LabelGraphics 7586 LabelGraphics
10753 [ 7587 [
10754 text ""A"" 7588 text "Intermediate literal FunctionType"
10755 outline "#000000" 7589 outline "#000000"
10756 fill "#FFFFFF" 7590 fill "#FFFFFF"
10757 fontSize 16 7591 fontSize 16
@@ -10763,6 +7597,7 @@ graph
10763 LabelGraphics 7597 LabelGraphics
10764 [ 7598 [
10765 text " 7599 text "
7600 FunctionType enum
10766 " 7601 "
10767 fontSize 14 7602 fontSize 14
10768 fontName "Consolas" 7603 fontName "Consolas"
@@ -10774,11 +7609,11 @@ graph
10774 7609
10775 node 7610 node
10776 [ 7611 [
10777 id 7 7612 id 2
10778 graphics 7613 graphics
10779 [ 7614 [
10780 w 33.0 7615 w 226.60000000000002
10781 h 26 7616 h 40
10782 type "rectangle" 7617 type "rectangle"
10783 fill "#FFFFFF" 7618 fill "#FFFFFF"
10784 fill2 "#FFFFFF" 7619 fill2 "#FFFFFF"
@@ -10786,7 +7621,7 @@ graph
10786 ] 7621 ]
10787 LabelGraphics 7622 LabelGraphics
10788 [ 7623 [
10789 text ""B"" 7624 text "Leaf literal FunctionType"
10790 outline "#000000" 7625 outline "#000000"
10791 fill "#FFFFFF" 7626 fill "#FFFFFF"
10792 fontSize 16 7627 fontSize 16
@@ -10798,6 +7633,7 @@ graph
10798 LabelGraphics 7633 LabelGraphics
10799 [ 7634 [
10800 text " 7635 text "
7636 FunctionType enum
10801 " 7637 "
10802 fontSize 14 7638 fontSize 14
10803 fontName "Consolas" 7639 fontName "Consolas"
@@ -10809,10 +7645,10 @@ graph
10809 7645
10810 node 7646 node
10811 [ 7647 [
10812 id 8 7648 id 3
10813 graphics 7649 graphics
10814 [ 7650 [
10815 w 94.60000000000001 7651 w 41.800000000000004
10816 h 26 7652 h 26
10817 type "rectangle" 7653 type "rectangle"
10818 fill "#FFFFFF" 7654 fill "#FFFFFF"
@@ -10821,7 +7657,7 @@ graph
10821 ] 7657 ]
10822 LabelGraphics 7658 LabelGraphics
10823 [ 7659 [
10824 text ""nsPrefix"" 7660 text "true"
10825 outline "#000000" 7661 outline "#000000"
10826 fill "#FFFFFF" 7662 fill "#FFFFFF"
10827 fontSize 16 7663 fontSize 16
@@ -10844,10 +7680,10 @@ graph
10844 7680
10845 node 7681 node
10846 [ 7682 [
10847 id 9 7683 id 4
10848 graphics 7684 graphics
10849 [ 7685 [
10850 w 68.2 7686 w 50.6
10851 h 26 7687 h 26
10852 type "rectangle" 7688 type "rectangle"
10853 fill "#FFFFFF" 7689 fill "#FFFFFF"
@@ -10856,7 +7692,7 @@ graph
10856 ] 7692 ]
10857 LabelGraphics 7693 LabelGraphics
10858 [ 7694 [
10859 text ""nsUri"" 7695 text "false"
10860 outline "#000000" 7696 outline "#000000"
10861 fill "#FFFFFF" 7697 fill "#FFFFFF"
10862 fontSize 16 7698 fontSize 16
@@ -10879,11 +7715,11 @@ graph
10879 7715
10880 node 7716 node
10881 [ 7717 [
10882 id 10 7718 id 5
10883 graphics 7719 graphics
10884 [ 7720 [
10885 w 121.00000000000001 7721 w 207.9
10886 h 26 7722 h 40
10887 type "rectangle" 7723 type "rectangle"
10888 fill "#FFFFFF" 7724 fill "#FFFFFF"
10889 fill2 "#FFFFFF" 7725 fill2 "#FFFFFF"
@@ -10891,7 +7727,7 @@ graph
10891 ] 7727 ]
10892 LabelGraphics 7728 LabelGraphics
10893 [ 7729 [
10894 text ""packageName"" 7730 text "null"
10895 outline "#000000" 7731 outline "#000000"
10896 fill "#FFFFFF" 7732 fill "#FFFFFF"
10897 fontSize 16 7733 fontSize 16
@@ -10903,6 +7739,7 @@ graph
10903 LabelGraphics 7739 LabelGraphics
10904 [ 7740 [
10905 text " 7741 text "
7742 FunctionalInterface class
10906 " 7743 "
10907 fontSize 14 7744 fontSize 14
10908 fontName "Consolas" 7745 fontName "Consolas"
@@ -10914,11 +7751,11 @@ graph
10914 7751
10915 node 7752 node
10916 [ 7753 [
10917 id 11 7754 id 6
10918 graphics 7755 graphics
10919 [ 7756 [
10920 w 269.5 7757 w 184.8
10921 h 110 7758 h 54
10922 type "rectangle" 7759 type "rectangle"
10923 fill "#FFFFFF" 7760 fill "#FFFFFF"
10924 fill2 "#FFFFFF" 7761 fill2 "#FFFFFF"
@@ -10938,12 +7775,8 @@ graph
10938 LabelGraphics 7775 LabelGraphics
10939 [ 7776 [
10940 text " 7777 text "
10941 EClass class 7778 FunctionalOutput class
10942 EClassifier class 7779 FunctionalData class
10943 EModelElement class
10944 ENamedElement class
10945 EModelElement class UndefinedPart
10946 ENamedElement class UndefinedPart
10947 " 7780 "
10948 fontSize 14 7781 fontSize 14
10949 fontName "Consolas" 7782 fontName "Consolas"
@@ -10955,11 +7788,11 @@ graph
10955 7788
10956 node 7789 node
10957 [ 7790 [
10958 id 12 7791 id 7
10959 graphics 7792 graphics
10960 [ 7793 [
10961 w 269.5 7794 w 184.8
10962 h 110 7795 h 54
10963 type "rectangle" 7796 type "rectangle"
10964 fill "#FFFFFF" 7797 fill "#FFFFFF"
10965 fill2 "#FFFFFF" 7798 fill2 "#FFFFFF"
@@ -10979,12 +7812,8 @@ graph
10979 LabelGraphics 7812 LabelGraphics
10980 [ 7813 [
10981 text " 7814 text "
10982 EModelElement class 7815 FunctionalOutput class
10983 ENamedElement class 7816 FunctionalData class
10984 EPackage class
10985 EModelElement class UndefinedPart
10986 ENamedElement class UndefinedPart
10987 EPackage class UndefinedPart
10988 " 7817 "
10989 fontSize 14 7818 fontSize 14
10990 fontName "Consolas" 7819 fontName "Consolas"
@@ -10996,11 +7825,11 @@ graph
10996 7825
10997 node 7826 node
10998 [ 7827 [
10999 id 13 7828 id 8
11000 graphics 7829 graphics
11001 [ 7830 [
11002 w 269.5 7831 w 184.8
11003 h 110 7832 h 54
11004 type "rectangle" 7833 type "rectangle"
11005 fill "#FFFFFF" 7834 fill "#FFFFFF"
11006 fill2 "#FFFFFF" 7835 fill2 "#FFFFFF"
@@ -11020,12 +7849,8 @@ graph
11020 LabelGraphics 7849 LabelGraphics
11021 [ 7850 [
11022 text " 7851 text "
11023 EModelElement class 7852 FunctionalOutput class
11024 ENamedElement class 7853 FunctionalData class
11025 EOperation class
11026 ETypedElement class
11027 EModelElement class UndefinedPart
11028 ENamedElement class UndefinedPart
11029 " 7854 "
11030 fontSize 14 7855 fontSize 14
11031 fontName "Consolas" 7856 fontName "Consolas"
@@ -11037,11 +7862,11 @@ graph
11037 7862
11038 node 7863 node
11039 [ 7864 [
11040 id 14 7865 id 9
11041 graphics 7866 graphics
11042 [ 7867 [
11043 w 269.5 7868 w 161.70000000000002
11044 h 68 7869 h 40
11045 type "rectangle" 7870 type "rectangle"
11046 fill "#FFFFFF" 7871 fill "#FFFFFF"
11047 fill2 "#FFFFFF" 7872 fill2 "#FFFFFF"
@@ -11061,9 +7886,7 @@ graph
11061 LabelGraphics 7886 LabelGraphics
11062 [ 7887 [
11063 text " 7888 text "
11064 EAnnotation class 7889 FAMTerminator class
11065 EModelElement class
11066 EModelElement class UndefinedPart
11067 " 7890 "
11068 fontSize 14 7891 fontSize 14
11069 fontName "Consolas" 7892 fontName "Consolas"
@@ -11075,10 +7898,10 @@ graph
11075 7898
11076 node 7899 node
11077 [ 7900 [
11078 id 15 7901 id 10
11079 graphics 7902 graphics
11080 [ 7903 [
11081 w 238.70000000000002 7904 w 161.70000000000002
11082 h 40 7905 h 40
11083 type "rectangle" 7906 type "rectangle"
11084 fill "#FFFFFF" 7907 fill "#FFFFFF"
@@ -11099,7 +7922,7 @@ graph
11099 LabelGraphics 7922 LabelGraphics
11100 [ 7923 [
11101 text " 7924 text "
11102 EStringToStringMapEntry class 7925 FAMTerminator class
11103 " 7926 "
11104 fontSize 14 7927 fontSize 14
11105 fontName "Consolas" 7928 fontName "Consolas"
@@ -11111,7 +7934,44 @@ graph
11111 7934
11112 node 7935 node
11113 [ 7936 [
11114 id 16 7937 id 11
7938 graphics
7939 [
7940 w 184.8
7941 h 54
7942 type "rectangle"
7943 fill "#FFFFFF"
7944 fill2 "#FFFFFF"
7945 outline "#000000"
7946 ]
7947 LabelGraphics
7948 [
7949 text "null"
7950 outline "#000000"
7951 fill "#FFFFFF"
7952 fontSize 16
7953 fontName "Monospace"
7954 autoSizePolicy "node_width"
7955 anchor "t"
7956 borderDistance 0.0
7957 ]
7958 LabelGraphics
7959 [
7960 text "
7961 FunctionalOutput class
7962 FunctionalData class
7963 "
7964 fontSize 14
7965 fontName "Consolas"
7966 alignment "left"
7967 anchor "tl"
7968 borderDistance 6
7969 ]
7970 ]
7971
7972 node
7973 [
7974 id 12
11115 graphics 7975 graphics
11116 [ 7976 [
11117 w 112.2 7977 w 112.2
@@ -11146,7 +8006,7 @@ graph
11146 8006
11147 node 8007 node
11148 [ 8008 [
11149 id 17 8009 id 13
11150 graphics 8010 graphics
11151 [ 8011 [
11152 w 85.80000000000001 8012 w 85.80000000000001
@@ -11181,7 +8041,7 @@ graph
11181 8041
11182 node 8042 node
11183 [ 8043 [
11184 id 18 8044 id 14
11185 graphics 8045 graphics
11186 [ 8046 [
11187 w 103.4 8047 w 103.4
@@ -11216,7 +8076,7 @@ graph
11216 8076
11217 node 8077 node
11218 [ 8078 [
11219 id 19 8079 id 15
11220 graphics 8080 graphics
11221 [ 8081 [
11222 w 103.4 8082 w 103.4
@@ -11250,28 +8110,8 @@ graph
11250 ] 8110 ]
11251 edge 8111 edge
11252 [ 8112 [
11253 source 14 8113 source 9
11254 target 15 8114 target 6
11255 graphics
11256 [
11257 fill "#000000"
11258 width 3
11259 targetArrow "standard"
11260 ]
11261 LabelGraphics
11262 [
11263 text "details reference EAnnotation"
11264 fontSize 14
11265 fontName "Consolas"
11266 configuration "AutoFlippingLabel"
11267 model "six_pos"
11268 position "thead"
11269 ]
11270 ]
11271 edge
11272 [
11273 source 14
11274 target 0
11275 graphics 8115 graphics
11276 [ 8116 [
11277 fill "#000000" 8117 fill "#000000"
@@ -11279,7 +8119,7 @@ graph
11279 ] 8119 ]
11280 LabelGraphics 8120 LabelGraphics
11281 [ 8121 [
11282 text "eModelElement reference EAnnotation" 8122 text "data reference FAMTerminator"
11283 fontSize 14 8123 fontSize 14
11284 fontName "Consolas" 8124 fontName "Consolas"
11285 configuration "AutoFlippingLabel" 8125 configuration "AutoFlippingLabel"
@@ -11289,8 +8129,8 @@ graph
11289 ] 8129 ]
11290 edge 8130 edge
11291 [ 8131 [
11292 source 11 8132 source 10
11293 target 11 8133 target 7
11294 graphics 8134 graphics
11295 [ 8135 [
11296 fill "#000000" 8136 fill "#000000"
@@ -11298,7 +8138,7 @@ graph
11298 ] 8138 ]
11299 LabelGraphics 8139 LabelGraphics
11300 [ 8140 [
11301 text "eSuperTypes reference EClass" 8141 text "data reference FAMTerminator"
11302 fontSize 14 8142 fontSize 14
11303 fontName "Consolas" 8143 fontName "Consolas"
11304 configuration "AutoFlippingLabel" 8144 configuration "AutoFlippingLabel"
@@ -11308,8 +8148,8 @@ graph
11308 ] 8148 ]
11309 edge 8149 edge
11310 [ 8150 [
11311 source 11 8151 source 5
11312 target 13 8152 target 6
11313 graphics 8153 graphics
11314 [ 8154 [
11315 fill "#000000" 8155 fill "#000000"
@@ -11318,7 +8158,7 @@ graph
11318 ] 8158 ]
11319 LabelGraphics 8159 LabelGraphics
11320 [ 8160 [
11321 text "eOperations reference EClass" 8161 text "data reference FunctionalInterface"
11322 fontSize 14 8162 fontSize 14
11323 fontName "Consolas" 8163 fontName "Consolas"
11324 configuration "AutoFlippingLabel" 8164 configuration "AutoFlippingLabel"
@@ -11328,46 +8168,8 @@ graph
11328 ] 8168 ]
11329 edge 8169 edge
11330 [ 8170 [
11331 source 11 8171 source 5
11332 target 11 8172 target 7
11333 graphics
11334 [
11335 fill "#000000"
11336 targetArrow "standard"
11337 ]
11338 LabelGraphics
11339 [
11340 text "eAllSuperTypes reference EClass"
11341 fontSize 14
11342 fontName "Consolas"
11343 configuration "AutoFlippingLabel"
11344 model "six_pos"
11345 position "thead"
11346 ]
11347 ]
11348 edge
11349 [
11350 source 11
11351 target 0
11352 graphics
11353 [
11354 fill "#000000"
11355 targetArrow "standard"
11356 ]
11357 LabelGraphics
11358 [
11359 text "ePackage reference EClassifier"
11360 fontSize 14
11361 fontName "Consolas"
11362 configuration "AutoFlippingLabel"
11363 model "six_pos"
11364 position "thead"
11365 ]
11366 ]
11367 edge
11368 [
11369 source 0
11370 target 14
11371 graphics 8173 graphics
11372 [ 8174 [
11373 fill "#000000" 8175 fill "#000000"
@@ -11376,7 +8178,7 @@ graph
11376 ] 8178 ]
11377 LabelGraphics 8179 LabelGraphics
11378 [ 8180 [
11379 text "eAnnotations reference EModelElement" 8181 text "data reference FunctionalInterface"
11380 fontSize 14 8182 fontSize 14
11381 fontName "Consolas" 8183 fontName "Consolas"
11382 configuration "AutoFlippingLabel" 8184 configuration "AutoFlippingLabel"
@@ -11386,27 +8188,8 @@ graph
11386 ] 8188 ]
11387 edge 8189 edge
11388 [ 8190 [
11389 source 13 8191 source 5
11390 target 11 8192 target 8
11391 graphics
11392 [
11393 fill "#000000"
11394 targetArrow "standard"
11395 ]
11396 LabelGraphics
11397 [
11398 text "eContainingClass reference EOperation"
11399 fontSize 14
11400 fontName "Consolas"
11401 configuration "AutoFlippingLabel"
11402 model "six_pos"
11403 position "thead"
11404 ]
11405 ]
11406 edge
11407 [
11408 source 0
11409 target 11
11410 graphics 8193 graphics
11411 [ 8194 [
11412 fill "#000000" 8195 fill "#000000"
@@ -11415,7 +8198,7 @@ graph
11415 ] 8198 ]
11416 LabelGraphics 8199 LabelGraphics
11417 [ 8200 [
11418 text "eClassifiers reference EPackage" 8201 text "data reference FunctionalInterface"
11419 fontSize 14 8202 fontSize 14
11420 fontName "Consolas" 8203 fontName "Consolas"
11421 configuration "AutoFlippingLabel" 8204 configuration "AutoFlippingLabel"
@@ -11425,8 +8208,8 @@ graph
11425 ] 8208 ]
11426 edge 8209 edge
11427 [ 8210 [
11428 source 0 8211 source 5
11429 target 12 8212 target 11
11430 graphics 8213 graphics
11431 [ 8214 [
11432 fill "#000000" 8215 fill "#000000"
@@ -11435,26 +8218,7 @@ graph
11435 ] 8218 ]
11436 LabelGraphics 8219 LabelGraphics
11437 [ 8220 [
11438 text "eSubpackages reference EPackage" 8221 text "data reference FunctionalInterface"
11439 fontSize 14
11440 fontName "Consolas"
11441 configuration "AutoFlippingLabel"
11442 model "six_pos"
11443 position "thead"
11444 ]
11445 ]
11446 edge
11447 [
11448 source 12
11449 target 0
11450 graphics
11451 [
11452 fill "#000000"
11453 targetArrow "standard"
11454 ]
11455 LabelGraphics
11456 [
11457 text "eSuperPackage reference EPackage"
11458 fontSize 14 8222 fontSize 14
11459 fontName "Consolas" 8223 fontName "Consolas"
11460 configuration "AutoFlippingLabel" 8224 configuration "AutoFlippingLabel"
@@ -11464,35 +8228,17 @@ graph
11464 ] 8228 ]
11465 edge 8229 edge
11466 [ 8230 [
11467 source 11 8231 source 6
11468 target 8
11469 graphics
11470 [
11471 fill "#000000"
11472 targetArrow "standard"
11473 ]
11474 LabelGraphics
11475 [
11476 text "instanceClassName attribute EClassifier"
11477 fontSize 14
11478 fontName "Consolas"
11479 configuration "AutoFlippingLabel"
11480 model "six_pos"
11481 position "thead"
11482 ]
11483 ]
11484 edge
11485 [
11486 source 11
11487 target 9 8232 target 9
11488 graphics 8233 graphics
11489 [ 8234 [
11490 fill "#000000" 8235 fill "#000000"
8236 width 3
11491 targetArrow "standard" 8237 targetArrow "standard"
11492 ] 8238 ]
11493 LabelGraphics 8239 LabelGraphics
11494 [ 8240 [
11495 text "instanceTypeName attribute EClassifier" 8241 text "terminator reference FunctionalData"
11496 fontSize 14 8242 fontSize 14
11497 fontName "Consolas" 8243 fontName "Consolas"
11498 configuration "AutoFlippingLabel" 8244 configuration "AutoFlippingLabel"
@@ -11502,54 +8248,17 @@ graph
11502 ] 8248 ]
11503 edge 8249 edge
11504 [ 8250 [
11505 source 0 8251 source 7
11506 target 10 8252 target 10
11507 graphics 8253 graphics
11508 [ 8254 [
11509 fill "#000000" 8255 fill "#000000"
8256 width 3
11510 targetArrow "standard" 8257 targetArrow "standard"
11511 ] 8258 ]
11512 LabelGraphics 8259 LabelGraphics
11513 [ 8260 [
11514 text "name attribute ENamedElement" 8261 text "terminator reference FunctionalData"
11515 fontSize 14
11516 fontName "Consolas"
11517 configuration "AutoFlippingLabel"
11518 model "six_pos"
11519 position "thead"
11520 ]
11521 ]
11522 edge
11523 [
11524 source 12
11525 target 7
11526 graphics
11527 [
11528 fill "#000000"
11529 targetArrow "standard"
11530 ]
11531 LabelGraphics
11532 [
11533 text "name attribute ENamedElement"
11534 fontSize 14
11535 fontName "Consolas"
11536 configuration "AutoFlippingLabel"
11537 model "six_pos"
11538 position "thead"
11539 ]
11540 ]
11541 edge
11542 [
11543 source 0
11544 target 9
11545 graphics
11546 [
11547 fill "#000000"
11548 targetArrow "standard"
11549 ]
11550 LabelGraphics
11551 [
11552 text "nsURI attribute EPackage"
11553 fontSize 14 8262 fontSize 14
11554 fontName "Consolas" 8263 fontName "Consolas"
11555 configuration "AutoFlippingLabel" 8264 configuration "AutoFlippingLabel"
@@ -11559,8 +8268,8 @@ graph
11559 ] 8268 ]
11560 edge 8269 edge
11561 [ 8270 [
11562 source 12 8271 source 6
11563 target 8 8272 target 5
11564 graphics 8273 graphics
11565 [ 8274 [
11566 fill "#000000" 8275 fill "#000000"
@@ -11568,7 +8277,7 @@ graph
11568 ] 8277 ]
11569 LabelGraphics 8278 LabelGraphics
11570 [ 8279 [
11571 text "nsURI attribute EPackage" 8280 text "interface reference FunctionalData"
11572 fontSize 14 8281 fontSize 14
11573 fontName "Consolas" 8282 fontName "Consolas"
11574 configuration "AutoFlippingLabel" 8283 configuration "AutoFlippingLabel"
@@ -11578,8 +8287,8 @@ graph
11578 ] 8287 ]
11579 edge 8288 edge
11580 [ 8289 [
11581 source 0 8290 source 7
11582 target 8 8291 target 5
11583 graphics 8292 graphics
11584 [ 8293 [
11585 fill "#000000" 8294 fill "#000000"
@@ -11587,7 +8296,7 @@ graph
11587 ] 8296 ]
11588 LabelGraphics 8297 LabelGraphics
11589 [ 8298 [
11590 text "nsPrefix attribute EPackage" 8299 text "interface reference FunctionalData"
11591 fontSize 14 8300 fontSize 14
11592 fontName "Consolas" 8301 fontName "Consolas"
11593 configuration "AutoFlippingLabel" 8302 configuration "AutoFlippingLabel"
@@ -11597,8 +8306,8 @@ graph
11597 ] 8306 ]
11598 edge 8307 edge
11599 [ 8308 [
11600 source 13 8309 source 8
11601 target 1 8310 target 5
11602 graphics 8311 graphics
11603 [ 8312 [
11604 fill "#000000" 8313 fill "#000000"
@@ -11606,7 +8315,7 @@ graph
11606 ] 8315 ]
11607 LabelGraphics 8316 LabelGraphics
11608 [ 8317 [
11609 text "unique attribute ETypedElement" 8318 text "interface reference FunctionalData"
11610 fontSize 14 8319 fontSize 14
11611 fontName "Consolas" 8320 fontName "Consolas"
11612 configuration "AutoFlippingLabel" 8321 configuration "AutoFlippingLabel"
@@ -11616,8 +8325,8 @@ graph
11616 ] 8325 ]
11617 edge 8326 edge
11618 [ 8327 [
11619 source 13 8328 source 11
11620 target 4 8329 target 5
11621 graphics 8330 graphics
11622 [ 8331 [
11623 fill "#000000" 8332 fill "#000000"
@@ -11625,7 +8334,7 @@ graph
11625 ] 8334 ]
11626 LabelGraphics 8335 LabelGraphics
11627 [ 8336 [
11628 text "upperBound attribute ETypedElement" 8337 text "interface reference FunctionalData"
11629 fontSize 14 8338 fontSize 14
11630 fontName "Consolas" 8339 fontName "Consolas"
11631 configuration "AutoFlippingLabel" 8340 configuration "AutoFlippingLabel"
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/2.png b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/2.png
index b5fea093..05355ee6 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/2.png
+++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/2.png
Binary files differ
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/2.xmi b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/2.xmi
index 4a9086fe..956b6f1b 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/2.xmi
+++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/2.xmi
@@ -1,10 +1,11 @@
1<?xml version="1.0" encoding="ASCII"?> 1<?xml version="1.0" encoding="ASCII"?>
2<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="packageName" nsURI="nsUri" nsPrefix="nsPrefix"> 2<fam:FunctionalInterface xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:fam="FamMetamodel">
3 <eAnnotations> 3 <data xsi:type="fam:FunctionalOutput"/>
4 <details/> 4 <data xsi:type="fam:FunctionalOutput"/>
5 </eAnnotations> 5 <data xsi:type="fam:FunctionalOutput">
6 <eClassifiers xsi:type="ecore:EClass" instanceTypeName="nsUri" eSuperTypes="//%"> 6 <terminator/>
7 <eOperations upperBound="0"/> 7 </data>
8 </eClassifiers> 8 <data xsi:type="fam:FunctionalOutput">
9 <eSubpackages name="B" nsURI="nsPrefix"/> 9 <terminator/>
10</ecore:EPackage> 10 </data>
11</fam:FunctionalInterface>
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/3.gml b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/3.gml
index 55dc70ba..ed77ebc2 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/3.gml
+++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/3.gml
@@ -113,8 +113,8 @@ graph
113 id 3 113 id 3
114 graphics 114 graphics
115 [ 115 [
116 w 361.90000000000003 116 w 41.800000000000004
117 h 54 117 h 26
118 type "rectangle" 118 type "rectangle"
119 fill "#FFFFFF" 119 fill "#FFFFFF"
120 fill2 "#FFFFFF" 120 fill2 "#FFFFFF"
@@ -122,7 +122,7 @@ graph
122 ] 122 ]
123 LabelGraphics 123 LabelGraphics
124 [ 124 [
125 text "o 1" 125 text "true"
126 outline "#000000" 126 outline "#000000"
127 fill "#FFFFFF" 127 fill "#FFFFFF"
128 fontSize 16 128 fontSize 16
@@ -134,8 +134,6 @@ graph
134 LabelGraphics 134 LabelGraphics
135 [ 135 [
136 text " 136 text "
137 FunctionalArchitectureModel class DefinedPart
138 FunctionalArchitectureModel class
139 " 137 "
140 fontSize 14 138 fontSize 14
141 fontName "Consolas" 139 fontName "Consolas"
@@ -150,7 +148,7 @@ graph
150 id 4 148 id 4
151 graphics 149 graphics
152 [ 150 [
153 w 41.800000000000004 151 w 50.6
154 h 26 152 h 26
155 type "rectangle" 153 type "rectangle"
156 fill "#FFFFFF" 154 fill "#FFFFFF"
@@ -159,7 +157,7 @@ graph
159 ] 157 ]
160 LabelGraphics 158 LabelGraphics
161 [ 159 [
162 text "true" 160 text "false"
163 outline "#000000" 161 outline "#000000"
164 fill "#FFFFFF" 162 fill "#FFFFFF"
165 fontSize 16 163 fontSize 16
@@ -185,8 +183,8 @@ graph
185 id 5 183 id 5
186 graphics 184 graphics
187 [ 185 [
188 w 50.6 186 w 207.9
189 h 26 187 h 40
190 type "rectangle" 188 type "rectangle"
191 fill "#FFFFFF" 189 fill "#FFFFFF"
192 fill2 "#FFFFFF" 190 fill2 "#FFFFFF"
@@ -194,7 +192,7 @@ graph
194 ] 192 ]
195 LabelGraphics 193 LabelGraphics
196 [ 194 [
197 text "false" 195 text "null"
198 outline "#000000" 196 outline "#000000"
199 fill "#FFFFFF" 197 fill "#FFFFFF"
200 fontSize 16 198 fontSize 16
@@ -206,6 +204,7 @@ graph
206 LabelGraphics 204 LabelGraphics
207 [ 205 [
208 text " 206 text "
207 FunctionalInterface class
209 " 208 "
210 fontSize 14 209 fontSize 14
211 fontName "Consolas" 210 fontName "Consolas"
@@ -220,7 +219,7 @@ graph
220 id 6 219 id 6
221 graphics 220 graphics
222 [ 221 [
223 w 192.50000000000003 222 w 184.8
224 h 54 223 h 54
225 type "rectangle" 224 type "rectangle"
226 fill "#FFFFFF" 225 fill "#FFFFFF"
@@ -241,8 +240,8 @@ graph
241 LabelGraphics 240 LabelGraphics
242 [ 241 [
243 text " 242 text "
244 FunctionalElement class 243 FunctionalOutput class
245 Function class 244 FunctionalData class
246 " 245 "
247 fontSize 14 246 fontSize 14
248 fontName "Consolas" 247 fontName "Consolas"
@@ -257,6 +256,189 @@ graph
257 id 7 256 id 7
258 graphics 257 graphics
259 [ 258 [
259 w 184.8
260 h 54
261 type "rectangle"
262 fill "#FFFFFF"
263 fill2 "#FFFFFF"
264 outline "#000000"
265 ]
266 LabelGraphics
267 [
268 text "null"
269 outline "#000000"
270 fill "#FFFFFF"
271 fontSize 16
272 fontName "Monospace"
273 autoSizePolicy "node_width"
274 anchor "t"
275 borderDistance 0.0
276 ]
277 LabelGraphics
278 [
279 text "
280 FunctionalOutput class
281 FunctionalData class
282 "
283 fontSize 14
284 fontName "Consolas"
285 alignment "left"
286 anchor "tl"
287 borderDistance 6
288 ]
289 ]
290
291 node
292 [
293 id 8
294 graphics
295 [
296 w 177.10000000000002
297 h 54
298 type "rectangle"
299 fill "#FFFFFF"
300 fill2 "#FFFFFF"
301 outline "#000000"
302 ]
303 LabelGraphics
304 [
305 text "null"
306 outline "#000000"
307 fill "#FFFFFF"
308 fontSize 16
309 fontName "Monospace"
310 autoSizePolicy "node_width"
311 anchor "t"
312 borderDistance 0.0
313 ]
314 LabelGraphics
315 [
316 text "
317 FunctionalInput class
318 FunctionalData class
319 "
320 fontSize 14
321 fontName "Consolas"
322 alignment "left"
323 anchor "tl"
324 borderDistance 6
325 ]
326 ]
327
328 node
329 [
330 id 9
331 graphics
332 [
333 w 177.10000000000002
334 h 40
335 type "rectangle"
336 fill "#FFFFFF"
337 fill2 "#FFFFFF"
338 outline "#000000"
339 ]
340 LabelGraphics
341 [
342 text "null"
343 outline "#000000"
344 fill "#FFFFFF"
345 fontSize 16
346 fontName "Monospace"
347 autoSizePolicy "node_width"
348 anchor "t"
349 borderDistance 0.0
350 ]
351 LabelGraphics
352 [
353 text "
354 InformationLink class
355 "
356 fontSize 14
357 fontName "Consolas"
358 alignment "left"
359 anchor "tl"
360 borderDistance 6
361 ]
362 ]
363
364 node
365 [
366 id 10
367 graphics
368 [
369 w 177.10000000000002
370 h 40
371 type "rectangle"
372 fill "#FFFFFF"
373 fill2 "#FFFFFF"
374 outline "#000000"
375 ]
376 LabelGraphics
377 [
378 text "null"
379 outline "#000000"
380 fill "#FFFFFF"
381 fontSize 16
382 fontName "Monospace"
383 autoSizePolicy "node_width"
384 anchor "t"
385 borderDistance 0.0
386 ]
387 LabelGraphics
388 [
389 text "
390 InformationLink class
391 "
392 fontSize 14
393 fontName "Consolas"
394 alignment "left"
395 anchor "tl"
396 borderDistance 6
397 ]
398 ]
399
400 node
401 [
402 id 11
403 graphics
404 [
405 w 184.8
406 h 54
407 type "rectangle"
408 fill "#FFFFFF"
409 fill2 "#FFFFFF"
410 outline "#000000"
411 ]
412 LabelGraphics
413 [
414 text "null"
415 outline "#000000"
416 fill "#FFFFFF"
417 fontSize 16
418 fontName "Monospace"
419 autoSizePolicy "node_width"
420 anchor "t"
421 borderDistance 0.0
422 ]
423 LabelGraphics
424 [
425 text "
426 FunctionalOutput class
427 FunctionalData class
428 "
429 fontSize 14
430 fontName "Consolas"
431 alignment "left"
432 anchor "tl"
433 borderDistance 6
434 ]
435 ]
436
437 node
438 [
439 id 12
440 graphics
441 [
260 w 112.2 442 w 112.2
261 h 26 443 h 26
262 type "rectangle" 444 type "rectangle"
@@ -289,7 +471,7 @@ graph
289 471
290 node 472 node
291 [ 473 [
292 id 8 474 id 13
293 graphics 475 graphics
294 [ 476 [
295 w 85.80000000000001 477 w 85.80000000000001
@@ -324,7 +506,7 @@ graph
324 506
325 node 507 node
326 [ 508 [
327 id 9 509 id 14
328 graphics 510 graphics
329 [ 511 [
330 w 103.4 512 w 103.4
@@ -359,7 +541,7 @@ graph
359 541
360 node 542 node
361 [ 543 [
362 id 10 544 id 15
363 graphics 545 graphics
364 [ 546 [
365 w 103.4 547 w 103.4
@@ -393,8 +575,8 @@ graph
393 ] 575 ]
394 edge 576 edge
395 [ 577 [
396 source 6 578 source 9
397 target 3 579 target 7
398 graphics 580 graphics
399 [ 581 [
400 fill "#000000" 582 fill "#000000"
@@ -402,7 +584,26 @@ graph
402 ] 584 ]
403 LabelGraphics 585 LabelGraphics
404 [ 586 [
405 text "model reference FunctionalElement" 587 text "from reference InformationLink"
588 fontSize 14
589 fontName "Consolas"
590 configuration "AutoFlippingLabel"
591 model "six_pos"
592 position "thead"
593 ]
594 ]
595 edge
596 [
597 source 10
598 target 7
599 graphics
600 [
601 fill "#000000"
602 targetArrow "standard"
603 ]
604 LabelGraphics
605 [
606 text "from reference InformationLink"
406 fontSize 14 607 fontSize 14
407 fontName "Consolas" 608 fontName "Consolas"
408 configuration "AutoFlippingLabel" 609 configuration "AutoFlippingLabel"
@@ -412,7 +613,45 @@ graph
412 ] 613 ]
413 edge 614 edge
414 [ 615 [
415 source 3 616 source 9
617 target 8
618 graphics
619 [
620 fill "#000000"
621 targetArrow "standard"
622 ]
623 LabelGraphics
624 [
625 text "to reference InformationLink"
626 fontSize 14
627 fontName "Consolas"
628 configuration "AutoFlippingLabel"
629 model "six_pos"
630 position "thead"
631 ]
632 ]
633 edge
634 [
635 source 10
636 target 8
637 graphics
638 [
639 fill "#000000"
640 targetArrow "standard"
641 ]
642 LabelGraphics
643 [
644 text "to reference InformationLink"
645 fontSize 14
646 fontName "Consolas"
647 configuration "AutoFlippingLabel"
648 model "six_pos"
649 position "thead"
650 ]
651 ]
652 edge
653 [
654 source 5
416 target 6 655 target 6
417 graphics 656 graphics
418 [ 657 [
@@ -422,7 +661,145 @@ graph
422 ] 661 ]
423 LabelGraphics 662 LabelGraphics
424 [ 663 [
425 text "rootElements reference FunctionalArchitectureModel" 664 text "data reference FunctionalInterface"
665 fontSize 14
666 fontName "Consolas"
667 configuration "AutoFlippingLabel"
668 model "six_pos"
669 position "thead"
670 ]
671 ]
672 edge
673 [
674 source 5
675 target 7
676 graphics
677 [
678 fill "#000000"
679 width 3
680 targetArrow "standard"
681 ]
682 LabelGraphics
683 [
684 text "data reference FunctionalInterface"
685 fontSize 14
686 fontName "Consolas"
687 configuration "AutoFlippingLabel"
688 model "six_pos"
689 position "thead"
690 ]
691 ]
692 edge
693 [
694 source 5
695 target 8
696 graphics
697 [
698 fill "#000000"
699 width 3
700 targetArrow "standard"
701 ]
702 LabelGraphics
703 [
704 text "data reference FunctionalInterface"
705 fontSize 14
706 fontName "Consolas"
707 configuration "AutoFlippingLabel"
708 model "six_pos"
709 position "thead"
710 ]
711 ]
712 edge
713 [
714 source 5
715 target 11
716 graphics
717 [
718 fill "#000000"
719 width 3
720 targetArrow "standard"
721 ]
722 LabelGraphics
723 [
724 text "data reference FunctionalInterface"
725 fontSize 14
726 fontName "Consolas"
727 configuration "AutoFlippingLabel"
728 model "six_pos"
729 position "thead"
730 ]
731 ]
732 edge
733 [
734 source 8
735 target 9
736 graphics
737 [
738 fill "#000000"
739 targetArrow "standard"
740 ]
741 LabelGraphics
742 [
743 text "IncomingLinks reference FunctionalInput"
744 fontSize 14
745 fontName "Consolas"
746 configuration "AutoFlippingLabel"
747 model "six_pos"
748 position "thead"
749 ]
750 ]
751 edge
752 [
753 source 8
754 target 10
755 graphics
756 [
757 fill "#000000"
758 targetArrow "standard"
759 ]
760 LabelGraphics
761 [
762 text "IncomingLinks reference FunctionalInput"
763 fontSize 14
764 fontName "Consolas"
765 configuration "AutoFlippingLabel"
766 model "six_pos"
767 position "thead"
768 ]
769 ]
770 edge
771 [
772 source 7
773 target 9
774 graphics
775 [
776 fill "#000000"
777 width 3
778 targetArrow "standard"
779 ]
780 LabelGraphics
781 [
782 text "outgoingLinks reference FunctionalOutput"
783 fontSize 14
784 fontName "Consolas"
785 configuration "AutoFlippingLabel"
786 model "six_pos"
787 position "thead"
788 ]
789 ]
790 edge
791 [
792 source 7
793 target 10
794 graphics
795 [
796 fill "#000000"
797 width 3
798 targetArrow "standard"
799 ]
800 LabelGraphics
801 [
802 text "outgoingLinks reference FunctionalOutput"
426 fontSize 14 803 fontSize 14
427 fontName "Consolas" 804 fontName "Consolas"
428 configuration "AutoFlippingLabel" 805 configuration "AutoFlippingLabel"
@@ -433,7 +810,7 @@ graph
433 edge 810 edge
434 [ 811 [
435 source 6 812 source 6
436 target 2 813 target 5
437 graphics 814 graphics
438 [ 815 [
439 fill "#000000" 816 fill "#000000"
@@ -441,7 +818,64 @@ graph
441 ] 818 ]
442 LabelGraphics 819 LabelGraphics
443 [ 820 [
444 text "type attribute Function" 821 text "interface reference FunctionalData"
822 fontSize 14
823 fontName "Consolas"
824 configuration "AutoFlippingLabel"
825 model "six_pos"
826 position "thead"
827 ]
828 ]
829 edge
830 [
831 source 7
832 target 5
833 graphics
834 [
835 fill "#000000"
836 targetArrow "standard"
837 ]
838 LabelGraphics
839 [
840 text "interface reference FunctionalData"
841 fontSize 14
842 fontName "Consolas"
843 configuration "AutoFlippingLabel"
844 model "six_pos"
845 position "thead"
846 ]
847 ]
848 edge
849 [
850 source 8
851 target 5
852 graphics
853 [
854 fill "#000000"
855 targetArrow "standard"
856 ]
857 LabelGraphics
858 [
859 text "interface reference FunctionalData"
860 fontSize 14
861 fontName "Consolas"
862 configuration "AutoFlippingLabel"
863 model "six_pos"
864 position "thead"
865 ]
866 ]
867 edge
868 [
869 source 11
870 target 5
871 graphics
872 [
873 fill "#000000"
874 targetArrow "standard"
875 ]
876 LabelGraphics
877 [
878 text "interface reference FunctionalData"
445 fontSize 14 879 fontSize 14
446 fontName "Consolas" 880 fontName "Consolas"
447 configuration "AutoFlippingLabel" 881 configuration "AutoFlippingLabel"
@@ -565,8 +999,8 @@ graph
565 id 3 999 id 3
566 graphics 1000 graphics
567 [ 1001 [
568 w 361.90000000000003 1002 w 41.800000000000004
569 h 54 1003 h 26
570 type "rectangle" 1004 type "rectangle"
571 fill "#FFFFFF" 1005 fill "#FFFFFF"
572 fill2 "#FFFFFF" 1006 fill2 "#FFFFFF"
@@ -574,7 +1008,7 @@ graph
574 ] 1008 ]
575 LabelGraphics 1009 LabelGraphics
576 [ 1010 [
577 text "o 1" 1011 text "true"
578 outline "#000000" 1012 outline "#000000"
579 fill "#FFFFFF" 1013 fill "#FFFFFF"
580 fontSize 16 1014 fontSize 16
@@ -586,8 +1020,6 @@ graph
586 LabelGraphics 1020 LabelGraphics
587 [ 1021 [
588 text " 1022 text "
589 FunctionalArchitectureModel class DefinedPart
590 FunctionalArchitectureModel class
591 " 1023 "
592 fontSize 14 1024 fontSize 14
593 fontName "Consolas" 1025 fontName "Consolas"
@@ -602,7 +1034,7 @@ graph
602 id 4 1034 id 4
603 graphics 1035 graphics
604 [ 1036 [
605 w 41.800000000000004 1037 w 50.6
606 h 26 1038 h 26
607 type "rectangle" 1039 type "rectangle"
608 fill "#FFFFFF" 1040 fill "#FFFFFF"
@@ -611,7 +1043,7 @@ graph
611 ] 1043 ]
612 LabelGraphics 1044 LabelGraphics
613 [ 1045 [
614 text "true" 1046 text "false"
615 outline "#000000" 1047 outline "#000000"
616 fill "#FFFFFF" 1048 fill "#FFFFFF"
617 fontSize 16 1049 fontSize 16
@@ -637,8 +1069,8 @@ graph
637 id 5 1069 id 5
638 graphics 1070 graphics
639 [ 1071 [
640 w 50.6 1072 w 207.9
641 h 26 1073 h 40
642 type "rectangle" 1074 type "rectangle"
643 fill "#FFFFFF" 1075 fill "#FFFFFF"
644 fill2 "#FFFFFF" 1076 fill2 "#FFFFFF"
@@ -646,7 +1078,7 @@ graph
646 ] 1078 ]
647 LabelGraphics 1079 LabelGraphics
648 [ 1080 [
649 text "false" 1081 text "null"
650 outline "#000000" 1082 outline "#000000"
651 fill "#FFFFFF" 1083 fill "#FFFFFF"
652 fontSize 16 1084 fontSize 16
@@ -658,6 +1090,7 @@ graph
658 LabelGraphics 1090 LabelGraphics
659 [ 1091 [
660 text " 1092 text "
1093 FunctionalInterface class
661 " 1094 "
662 fontSize 14 1095 fontSize 14
663 fontName "Consolas" 1096 fontName "Consolas"
@@ -672,7 +1105,7 @@ graph
672 id 6 1105 id 6
673 graphics 1106 graphics
674 [ 1107 [
675 w 192.50000000000003 1108 w 184.8
676 h 54 1109 h 54
677 type "rectangle" 1110 type "rectangle"
678 fill "#FFFFFF" 1111 fill "#FFFFFF"
@@ -693,8 +1126,8 @@ graph
693 LabelGraphics 1126 LabelGraphics
694 [ 1127 [
695 text " 1128 text "
696 FunctionalElement class 1129 FunctionalOutput class
697 Function class 1130 FunctionalData class
698 " 1131 "
699 fontSize 14 1132 fontSize 14
700 fontName "Consolas" 1133 fontName "Consolas"
@@ -709,8 +1142,8 @@ graph
709 id 7 1142 id 7
710 graphics 1143 graphics
711 [ 1144 [
712 w 112.2 1145 w 177.10000000000002
713 h 26 1146 h 40
714 type "rectangle" 1147 type "rectangle"
715 fill "#FFFFFF" 1148 fill "#FFFFFF"
716 fill2 "#FFFFFF" 1149 fill2 "#FFFFFF"
@@ -718,7 +1151,7 @@ graph
718 ] 1151 ]
719 LabelGraphics 1152 LabelGraphics
720 [ 1153 [
721 text "New Integers" 1154 text "null"
722 outline "#000000" 1155 outline "#000000"
723 fill "#FFFFFF" 1156 fill "#FFFFFF"
724 fontSize 16 1157 fontSize 16
@@ -730,6 +1163,7 @@ graph
730 LabelGraphics 1163 LabelGraphics
731 [ 1164 [
732 text " 1165 text "
1166 InformationLink class
733 " 1167 "
734 fontSize 14 1168 fontSize 14
735 fontName "Consolas" 1169 fontName "Consolas"
@@ -744,8 +1178,8 @@ graph
744 id 8 1178 id 8
745 graphics 1179 graphics
746 [ 1180 [
747 w 85.80000000000001 1181 w 177.10000000000002
748 h 26 1182 h 40
749 type "rectangle" 1183 type "rectangle"
750 fill "#FFFFFF" 1184 fill "#FFFFFF"
751 fill2 "#FFFFFF" 1185 fill2 "#FFFFFF"
@@ -753,7 +1187,7 @@ graph
753 ] 1187 ]
754 LabelGraphics 1188 LabelGraphics
755 [ 1189 [
756 text "New Reals" 1190 text "null"
757 outline "#000000" 1191 outline "#000000"
758 fill "#FFFFFF" 1192 fill "#FFFFFF"
759 fontSize 16 1193 fontSize 16
@@ -765,6 +1199,7 @@ graph
765 LabelGraphics 1199 LabelGraphics
766 [ 1200 [
767 text " 1201 text "
1202 InformationLink class
768 " 1203 "
769 fontSize 14 1204 fontSize 14
770 fontName "Consolas" 1205 fontName "Consolas"
@@ -779,8 +1214,8 @@ graph
779 id 9 1214 id 9
780 graphics 1215 graphics
781 [ 1216 [
782 w 103.4 1217 w 177.10000000000002
783 h 26 1218 h 54
784 type "rectangle" 1219 type "rectangle"
785 fill "#FFFFFF" 1220 fill "#FFFFFF"
786 fill2 "#FFFFFF" 1221 fill2 "#FFFFFF"
@@ -788,7 +1223,7 @@ graph
788 ] 1223 ]
789 LabelGraphics 1224 LabelGraphics
790 [ 1225 [
791 text "New Strings" 1226 text "null"
792 outline "#000000" 1227 outline "#000000"
793 fill "#FFFFFF" 1228 fill "#FFFFFF"
794 fontSize 16 1229 fontSize 16
@@ -800,6 +1235,8 @@ graph
800 LabelGraphics 1235 LabelGraphics
801 [ 1236 [
802 text " 1237 text "
1238 FunctionalInput class
1239 FunctionalData class
803 " 1240 "
804 fontSize 14 1241 fontSize 14
805 fontName "Consolas" 1242 fontName "Consolas"
@@ -814,8 +1251,8 @@ graph
814 id 10 1251 id 10
815 graphics 1252 graphics
816 [ 1253 [
817 w 103.4 1254 w 184.8
818 h 26 1255 h 54
819 type "rectangle" 1256 type "rectangle"
820 fill "#FFFFFF" 1257 fill "#FFFFFF"
821 fill2 "#FFFFFF" 1258 fill2 "#FFFFFF"
@@ -823,7 +1260,7 @@ graph
823 ] 1260 ]
824 LabelGraphics 1261 LabelGraphics
825 [ 1262 [
826 text "New Objects" 1263 text "null"
827 outline "#000000" 1264 outline "#000000"
828 fill "#FFFFFF" 1265 fill "#FFFFFF"
829 fontSize 16 1266 fontSize 16
@@ -835,6 +1272,8 @@ graph
835 LabelGraphics 1272 LabelGraphics
836 [ 1273 [
837 text " 1274 text "
1275 FunctionalOutput class
1276 FunctionalData class
838 " 1277 "
839 fontSize 14 1278 fontSize 14
840 fontName "Consolas" 1279 fontName "Consolas"
@@ -843,74 +1282,14 @@ graph
843 borderDistance 6 1282 borderDistance 6
844 ] 1283 ]
845 ] 1284 ]
846 edge 1285
847 [
848 source 6
849 target 3
850 graphics
851 [
852 fill "#000000"
853 targetArrow "standard"
854 ]
855 LabelGraphics
856 [
857 text "model reference FunctionalElement"
858 fontSize 14
859 fontName "Consolas"
860 configuration "AutoFlippingLabel"
861 model "six_pos"
862 position "thead"
863 ]
864 ]
865 edge
866 [
867 source 3
868 target 6
869 graphics
870 [
871 fill "#000000"
872 width 3
873 targetArrow "standard"
874 ]
875 LabelGraphics
876 [
877 text "rootElements reference FunctionalArchitectureModel"
878 fontSize 14
879 fontName "Consolas"
880 configuration "AutoFlippingLabel"
881 model "six_pos"
882 position "thead"
883 ]
884 ]
885 edge
886 [
887 source 6
888 target 0
889 graphics
890 [
891 fill "#000000"
892 targetArrow "standard"
893 ]
894 LabelGraphics
895 [
896 text "type attribute Function"
897 fontSize 14
898 fontName "Consolas"
899 configuration "AutoFlippingLabel"
900 model "six_pos"
901 position "thead"
902 ]
903 ]
904]
905graph
906[
907 node 1286 node
908 [ 1287 [
909 id 0 1288 id 11
910 graphics 1289 graphics
911 [ 1290 [
912 w 254.10000000000002 1291 w 177.10000000000002
913 h 110 1292 h 54
914 type "rectangle" 1293 type "rectangle"
915 fill "#FFFFFF" 1294 fill "#FFFFFF"
916 fill2 "#FFFFFF" 1295 fill2 "#FFFFFF"
@@ -918,7 +1297,7 @@ graph
918 ] 1297 ]
919 LabelGraphics 1298 LabelGraphics
920 [ 1299 [
921 text "o 1" 1300 text "null"
922 outline "#000000" 1301 outline "#000000"
923 fill "#FFFFFF" 1302 fill "#FFFFFF"
924 fontSize 16 1303 fontSize 16
@@ -930,12 +1309,8 @@ graph
930 LabelGraphics 1309 LabelGraphics
931 [ 1310 [
932 text " 1311 text "
933 EModelElement class DefinedPart 1312 FunctionalInput class
934 ENamedElement class DefinedPart 1313 FunctionalData class
935 EPackage class DefinedPart
936 EModelElement class
937 ENamedElement class
938 EPackage class
939 " 1314 "
940 fontSize 14 1315 fontSize 14
941 fontName "Consolas" 1316 fontName "Consolas"
@@ -947,10 +1322,10 @@ graph
947 1322
948 node 1323 node
949 [ 1324 [
950 id 1 1325 id 12
951 graphics 1326 graphics
952 [ 1327 [
953 w 41.800000000000004 1328 w 112.2
954 h 26 1329 h 26
955 type "rectangle" 1330 type "rectangle"
956 fill "#FFFFFF" 1331 fill "#FFFFFF"
@@ -959,7 +1334,7 @@ graph
959 ] 1334 ]
960 LabelGraphics 1335 LabelGraphics
961 [ 1336 [
962 text "true" 1337 text "New Integers"
963 outline "#000000" 1338 outline "#000000"
964 fill "#FFFFFF" 1339 fill "#FFFFFF"
965 fontSize 16 1340 fontSize 16
@@ -982,10 +1357,10 @@ graph
982 1357
983 node 1358 node
984 [ 1359 [
985 id 2 1360 id 13
986 graphics 1361 graphics
987 [ 1362 [
988 w 50.6 1363 w 85.80000000000001
989 h 26 1364 h 26
990 type "rectangle" 1365 type "rectangle"
991 fill "#FFFFFF" 1366 fill "#FFFFFF"
@@ -994,7 +1369,7 @@ graph
994 ] 1369 ]
995 LabelGraphics 1370 LabelGraphics
996 [ 1371 [
997 text "false" 1372 text "New Reals"
998 outline "#000000" 1373 outline "#000000"
999 fill "#FFFFFF" 1374 fill "#FFFFFF"
1000 fontSize 16 1375 fontSize 16
@@ -1017,10 +1392,10 @@ graph
1017 1392
1018 node 1393 node
1019 [ 1394 [
1020 id 3 1395 id 14
1021 graphics 1396 graphics
1022 [ 1397 [
1023 w 24.200000000000003 1398 w 103.4
1024 h 26 1399 h 26
1025 type "rectangle" 1400 type "rectangle"
1026 fill "#FFFFFF" 1401 fill "#FFFFFF"
@@ -1029,7 +1404,7 @@ graph
1029 ] 1404 ]
1030 LabelGraphics 1405 LabelGraphics
1031 [ 1406 [
1032 text "-1" 1407 text "New Strings"
1033 outline "#000000" 1408 outline "#000000"
1034 fill "#FFFFFF" 1409 fill "#FFFFFF"
1035 fontSize 16 1410 fontSize 16
@@ -1052,10 +1427,10 @@ graph
1052 1427
1053 node 1428 node
1054 [ 1429 [
1055 id 4 1430 id 15
1056 graphics 1431 graphics
1057 [ 1432 [
1058 w 15.400000000000002 1433 w 103.4
1059 h 26 1434 h 26
1060 type "rectangle" 1435 type "rectangle"
1061 fill "#FFFFFF" 1436 fill "#FFFFFF"
@@ -1064,7 +1439,354 @@ graph
1064 ] 1439 ]
1065 LabelGraphics 1440 LabelGraphics
1066 [ 1441 [
1067 text "0" 1442 text "New Objects"
1443 outline "#000000"
1444 fill "#FFFFFF"
1445 fontSize 16
1446 fontName "Monospace"
1447 autoSizePolicy "node_width"
1448 anchor "t"
1449 borderDistance 0.0
1450 ]
1451 LabelGraphics
1452 [
1453 text "
1454 "
1455 fontSize 14
1456 fontName "Consolas"
1457 alignment "left"
1458 anchor "tl"
1459 borderDistance 6
1460 ]
1461 ]
1462 edge
1463 [
1464 source 7
1465 target 6
1466 graphics
1467 [
1468 fill "#000000"
1469 targetArrow "standard"
1470 ]
1471 LabelGraphics
1472 [
1473 text "from reference InformationLink"
1474 fontSize 14
1475 fontName "Consolas"
1476 configuration "AutoFlippingLabel"
1477 model "six_pos"
1478 position "thead"
1479 ]
1480 ]
1481 edge
1482 [
1483 source 8
1484 target 6
1485 graphics
1486 [
1487 fill "#000000"
1488 targetArrow "standard"
1489 ]
1490 LabelGraphics
1491 [
1492 text "from reference InformationLink"
1493 fontSize 14
1494 fontName "Consolas"
1495 configuration "AutoFlippingLabel"
1496 model "six_pos"
1497 position "thead"
1498 ]
1499 ]
1500 edge
1501 [
1502 source 7
1503 target 9
1504 graphics
1505 [
1506 fill "#000000"
1507 targetArrow "standard"
1508 ]
1509 LabelGraphics
1510 [
1511 text "to reference InformationLink"
1512 fontSize 14
1513 fontName "Consolas"
1514 configuration "AutoFlippingLabel"
1515 model "six_pos"
1516 position "thead"
1517 ]
1518 ]
1519 edge
1520 [
1521 source 8
1522 target 11
1523 graphics
1524 [
1525 fill "#000000"
1526 targetArrow "standard"
1527 ]
1528 LabelGraphics
1529 [
1530 text "to reference InformationLink"
1531 fontSize 14
1532 fontName "Consolas"
1533 configuration "AutoFlippingLabel"
1534 model "six_pos"
1535 position "thead"
1536 ]
1537 ]
1538 edge
1539 [
1540 source 5
1541 target 6
1542 graphics
1543 [
1544 fill "#000000"
1545 width 3
1546 targetArrow "standard"
1547 ]
1548 LabelGraphics
1549 [
1550 text "data reference FunctionalInterface"
1551 fontSize 14
1552 fontName "Consolas"
1553 configuration "AutoFlippingLabel"
1554 model "six_pos"
1555 position "thead"
1556 ]
1557 ]
1558 edge
1559 [
1560 source 5
1561 target 9
1562 graphics
1563 [
1564 fill "#000000"
1565 width 3
1566 targetArrow "standard"
1567 ]
1568 LabelGraphics
1569 [
1570 text "data reference FunctionalInterface"
1571 fontSize 14
1572 fontName "Consolas"
1573 configuration "AutoFlippingLabel"
1574 model "six_pos"
1575 position "thead"
1576 ]
1577 ]
1578 edge
1579 [
1580 source 5
1581 target 10
1582 graphics
1583 [
1584 fill "#000000"
1585 width 3
1586 targetArrow "standard"
1587 ]
1588 LabelGraphics
1589 [
1590 text "data reference FunctionalInterface"
1591 fontSize 14
1592 fontName "Consolas"
1593 configuration "AutoFlippingLabel"
1594 model "six_pos"
1595 position "thead"
1596 ]
1597 ]
1598 edge
1599 [
1600 source 5
1601 target 11
1602 graphics
1603 [
1604 fill "#000000"
1605 width 3
1606 targetArrow "standard"
1607 ]
1608 LabelGraphics
1609 [
1610 text "data reference FunctionalInterface"
1611 fontSize 14
1612 fontName "Consolas"
1613 configuration "AutoFlippingLabel"
1614 model "six_pos"
1615 position "thead"
1616 ]
1617 ]
1618 edge
1619 [
1620 source 9
1621 target 7
1622 graphics
1623 [
1624 fill "#000000"
1625 targetArrow "standard"
1626 ]
1627 LabelGraphics
1628 [
1629 text "IncomingLinks reference FunctionalInput"
1630 fontSize 14
1631 fontName "Consolas"
1632 configuration "AutoFlippingLabel"
1633 model "six_pos"
1634 position "thead"
1635 ]
1636 ]
1637 edge
1638 [
1639 source 11
1640 target 8
1641 graphics
1642 [
1643 fill "#000000"
1644 targetArrow "standard"
1645 ]
1646 LabelGraphics
1647 [
1648 text "IncomingLinks reference FunctionalInput"
1649 fontSize 14
1650 fontName "Consolas"
1651 configuration "AutoFlippingLabel"
1652 model "six_pos"
1653 position "thead"
1654 ]
1655 ]
1656 edge
1657 [
1658 source 6
1659 target 7
1660 graphics
1661 [
1662 fill "#000000"
1663 width 3
1664 targetArrow "standard"
1665 ]
1666 LabelGraphics
1667 [
1668 text "outgoingLinks reference FunctionalOutput"
1669 fontSize 14
1670 fontName "Consolas"
1671 configuration "AutoFlippingLabel"
1672 model "six_pos"
1673 position "thead"
1674 ]
1675 ]
1676 edge
1677 [
1678 source 6
1679 target 8
1680 graphics
1681 [
1682 fill "#000000"
1683 width 3
1684 targetArrow "standard"
1685 ]
1686 LabelGraphics
1687 [
1688 text "outgoingLinks reference FunctionalOutput"
1689 fontSize 14
1690 fontName "Consolas"
1691 configuration "AutoFlippingLabel"
1692 model "six_pos"
1693 position "thead"
1694 ]
1695 ]
1696 edge
1697 [
1698 source 6
1699 target 5
1700 graphics
1701 [
1702 fill "#000000"
1703 targetArrow "standard"
1704 ]
1705 LabelGraphics
1706 [
1707 text "interface reference FunctionalData"
1708 fontSize 14
1709 fontName "Consolas"
1710 configuration "AutoFlippingLabel"
1711 model "six_pos"
1712 position "thead"
1713 ]
1714 ]
1715 edge
1716 [
1717 source 9
1718 target 5
1719 graphics
1720 [
1721 fill "#000000"
1722 targetArrow "standard"
1723 ]
1724 LabelGraphics
1725 [
1726 text "interface reference FunctionalData"
1727 fontSize 14
1728 fontName "Consolas"
1729 configuration "AutoFlippingLabel"
1730 model "six_pos"
1731 position "thead"
1732 ]
1733 ]
1734 edge
1735 [
1736 source 10
1737 target 5
1738 graphics
1739 [
1740 fill "#000000"
1741 targetArrow "standard"
1742 ]
1743 LabelGraphics
1744 [
1745 text "interface reference FunctionalData"
1746 fontSize 14
1747 fontName "Consolas"
1748 configuration "AutoFlippingLabel"
1749 model "six_pos"
1750 position "thead"
1751 ]
1752 ]
1753 edge
1754 [
1755 source 11
1756 target 5
1757 graphics
1758 [
1759 fill "#000000"
1760 targetArrow "standard"
1761 ]
1762 LabelGraphics
1763 [
1764 text "interface reference FunctionalData"
1765 fontSize 14
1766 fontName "Consolas"
1767 configuration "AutoFlippingLabel"
1768 model "six_pos"
1769 position "thead"
1770 ]
1771 ]
1772]
1773graph
1774[
1775 node
1776 [
1777 id 0
1778 graphics
1779 [
1780 w 226.60000000000002
1781 h 40
1782 type "rectangle"
1783 fill "#FFFFFF"
1784 fill2 "#FFFFFF"
1785 outline "#000000"
1786 ]
1787 LabelGraphics
1788 [
1789 text "Root literal FunctionType"
1068 outline "#000000" 1790 outline "#000000"
1069 fill "#FFFFFF" 1791 fill "#FFFFFF"
1070 fontSize 16 1792 fontSize 16
@@ -1076,6 +1798,7 @@ graph
1076 LabelGraphics 1798 LabelGraphics
1077 [ 1799 [
1078 text " 1800 text "
1801 FunctionType enum
1079 " 1802 "
1080 fontSize 14 1803 fontSize 14
1081 fontName "Consolas" 1804 fontName "Consolas"
@@ -1087,11 +1810,11 @@ graph
1087 1810
1088 node 1811 node
1089 [ 1812 [
1090 id 5 1813 id 1
1091 graphics 1814 graphics
1092 [ 1815 [
1093 w 15.400000000000002 1816 w 297.0
1094 h 26 1817 h 40
1095 type "rectangle" 1818 type "rectangle"
1096 fill "#FFFFFF" 1819 fill "#FFFFFF"
1097 fill2 "#FFFFFF" 1820 fill2 "#FFFFFF"
@@ -1099,7 +1822,7 @@ graph
1099 ] 1822 ]
1100 LabelGraphics 1823 LabelGraphics
1101 [ 1824 [
1102 text "1" 1825 text "Intermediate literal FunctionType"
1103 outline "#000000" 1826 outline "#000000"
1104 fill "#FFFFFF" 1827 fill "#FFFFFF"
1105 fontSize 16 1828 fontSize 16
@@ -1111,6 +1834,7 @@ graph
1111 LabelGraphics 1834 LabelGraphics
1112 [ 1835 [
1113 text " 1836 text "
1837 FunctionType enum
1114 " 1838 "
1115 fontSize 14 1839 fontSize 14
1116 fontName "Consolas" 1840 fontName "Consolas"
@@ -1122,11 +1846,11 @@ graph
1122 1846
1123 node 1847 node
1124 [ 1848 [
1125 id 6 1849 id 2
1126 graphics 1850 graphics
1127 [ 1851 [
1128 w 33.0 1852 w 226.60000000000002
1129 h 26 1853 h 40
1130 type "rectangle" 1854 type "rectangle"
1131 fill "#FFFFFF" 1855 fill "#FFFFFF"
1132 fill2 "#FFFFFF" 1856 fill2 "#FFFFFF"
@@ -1134,7 +1858,7 @@ graph
1134 ] 1858 ]
1135 LabelGraphics 1859 LabelGraphics
1136 [ 1860 [
1137 text ""A"" 1861 text "Leaf literal FunctionType"
1138 outline "#000000" 1862 outline "#000000"
1139 fill "#FFFFFF" 1863 fill "#FFFFFF"
1140 fontSize 16 1864 fontSize 16
@@ -1146,6 +1870,7 @@ graph
1146 LabelGraphics 1870 LabelGraphics
1147 [ 1871 [
1148 text " 1872 text "
1873 FunctionType enum
1149 " 1874 "
1150 fontSize 14 1875 fontSize 14
1151 fontName "Consolas" 1876 fontName "Consolas"
@@ -1157,10 +1882,10 @@ graph
1157 1882
1158 node 1883 node
1159 [ 1884 [
1160 id 7 1885 id 3
1161 graphics 1886 graphics
1162 [ 1887 [
1163 w 33.0 1888 w 41.800000000000004
1164 h 26 1889 h 26
1165 type "rectangle" 1890 type "rectangle"
1166 fill "#FFFFFF" 1891 fill "#FFFFFF"
@@ -1169,7 +1894,7 @@ graph
1169 ] 1894 ]
1170 LabelGraphics 1895 LabelGraphics
1171 [ 1896 [
1172 text ""B"" 1897 text "true"
1173 outline "#000000" 1898 outline "#000000"
1174 fill "#FFFFFF" 1899 fill "#FFFFFF"
1175 fontSize 16 1900 fontSize 16
@@ -1192,10 +1917,10 @@ graph
1192 1917
1193 node 1918 node
1194 [ 1919 [
1195 id 8 1920 id 4
1196 graphics 1921 graphics
1197 [ 1922 [
1198 w 94.60000000000001 1923 w 50.6
1199 h 26 1924 h 26
1200 type "rectangle" 1925 type "rectangle"
1201 fill "#FFFFFF" 1926 fill "#FFFFFF"
@@ -1204,7 +1929,7 @@ graph
1204 ] 1929 ]
1205 LabelGraphics 1930 LabelGraphics
1206 [ 1931 [
1207 text ""nsPrefix"" 1932 text "false"
1208 outline "#000000" 1933 outline "#000000"
1209 fill "#FFFFFF" 1934 fill "#FFFFFF"
1210 fontSize 16 1935 fontSize 16
@@ -1227,11 +1952,11 @@ graph
1227 1952
1228 node 1953 node
1229 [ 1954 [
1230 id 9 1955 id 5
1231 graphics 1956 graphics
1232 [ 1957 [
1233 w 68.2 1958 w 207.9
1234 h 26 1959 h 40
1235 type "rectangle" 1960 type "rectangle"
1236 fill "#FFFFFF" 1961 fill "#FFFFFF"
1237 fill2 "#FFFFFF" 1962 fill2 "#FFFFFF"
@@ -1239,7 +1964,7 @@ graph
1239 ] 1964 ]
1240 LabelGraphics 1965 LabelGraphics
1241 [ 1966 [
1242 text ""nsUri"" 1967 text "null"
1243 outline "#000000" 1968 outline "#000000"
1244 fill "#FFFFFF" 1969 fill "#FFFFFF"
1245 fontSize 16 1970 fontSize 16
@@ -1251,6 +1976,7 @@ graph
1251 LabelGraphics 1976 LabelGraphics
1252 [ 1977 [
1253 text " 1978 text "
1979 FunctionalInterface class
1254 " 1980 "
1255 fontSize 14 1981 fontSize 14
1256 fontName "Consolas" 1982 fontName "Consolas"
@@ -1262,11 +1988,11 @@ graph
1262 1988
1263 node 1989 node
1264 [ 1990 [
1265 id 10 1991 id 6
1266 graphics 1992 graphics
1267 [ 1993 [
1268 w 121.00000000000001 1994 w 184.8
1269 h 26 1995 h 54
1270 type "rectangle" 1996 type "rectangle"
1271 fill "#FFFFFF" 1997 fill "#FFFFFF"
1272 fill2 "#FFFFFF" 1998 fill2 "#FFFFFF"
@@ -1274,7 +2000,7 @@ graph
1274 ] 2000 ]
1275 LabelGraphics 2001 LabelGraphics
1276 [ 2002 [
1277 text ""packageName"" 2003 text "null"
1278 outline "#000000" 2004 outline "#000000"
1279 fill "#FFFFFF" 2005 fill "#FFFFFF"
1280 fontSize 16 2006 fontSize 16
@@ -1286,6 +2012,8 @@ graph
1286 LabelGraphics 2012 LabelGraphics
1287 [ 2013 [
1288 text " 2014 text "
2015 FunctionalOutput class
2016 FunctionalData class
1289 " 2017 "
1290 fontSize 14 2018 fontSize 14
1291 fontName "Consolas" 2019 fontName "Consolas"
@@ -1297,11 +2025,11 @@ graph
1297 2025
1298 node 2026 node
1299 [ 2027 [
1300 id 11 2028 id 7
1301 graphics 2029 graphics
1302 [ 2030 [
1303 w 269.5 2031 w 177.10000000000002
1304 h 124 2032 h 54
1305 type "rectangle" 2033 type "rectangle"
1306 fill "#FFFFFF" 2034 fill "#FFFFFF"
1307 fill2 "#FFFFFF" 2035 fill2 "#FFFFFF"
@@ -1321,13 +2049,8 @@ graph
1321 LabelGraphics 2049 LabelGraphics
1322 [ 2050 [
1323 text " 2051 text "
1324 EClassifier class 2052 FunctionalInput class
1325 EDataType class 2053 FunctionalData class
1326 EEnum class
1327 EModelElement class
1328 ENamedElement class
1329 EModelElement class UndefinedPart
1330 ENamedElement class UndefinedPart
1331 " 2054 "
1332 fontSize 14 2055 fontSize 14
1333 fontName "Consolas" 2056 fontName "Consolas"
@@ -1339,11 +2062,11 @@ graph
1339 2062
1340 node 2063 node
1341 [ 2064 [
1342 id 12 2065 id 8
1343 graphics 2066 graphics
1344 [ 2067 [
1345 w 269.5 2068 w 184.8
1346 h 124 2069 h 54
1347 type "rectangle" 2070 type "rectangle"
1348 fill "#FFFFFF" 2071 fill "#FFFFFF"
1349 fill2 "#FFFFFF" 2072 fill2 "#FFFFFF"
@@ -1363,13 +2086,8 @@ graph
1363 LabelGraphics 2086 LabelGraphics
1364 [ 2087 [
1365 text " 2088 text "
1366 EClassifier class 2089 FunctionalOutput class
1367 EDataType class 2090 FunctionalData class
1368 EEnum class
1369 EModelElement class
1370 ENamedElement class
1371 EModelElement class UndefinedPart
1372 ENamedElement class UndefinedPart
1373 " 2091 "
1374 fontSize 14 2092 fontSize 14
1375 fontName "Consolas" 2093 fontName "Consolas"
@@ -1381,11 +2099,11 @@ graph
1381 2099
1382 node 2100 node
1383 [ 2101 [
1384 id 13 2102 id 9
1385 graphics 2103 graphics
1386 [ 2104 [
1387 w 269.5 2105 w 161.70000000000002
1388 h 110 2106 h 40
1389 type "rectangle" 2107 type "rectangle"
1390 fill "#FFFFFF" 2108 fill "#FFFFFF"
1391 fill2 "#FFFFFF" 2109 fill2 "#FFFFFF"
@@ -1405,12 +2123,7 @@ graph
1405 LabelGraphics 2123 LabelGraphics
1406 [ 2124 [
1407 text " 2125 text "
1408 EModelElement class 2126 FAMTerminator class
1409 ENamedElement class
1410 EPackage class
1411 EModelElement class UndefinedPart
1412 ENamedElement class UndefinedPart
1413 EPackage class UndefinedPart
1414 " 2127 "
1415 fontSize 14 2128 fontSize 14
1416 fontName "Consolas" 2129 fontName "Consolas"
@@ -1422,11 +2135,11 @@ graph
1422 2135
1423 node 2136 node
1424 [ 2137 [
1425 id 14 2138 id 10
1426 graphics 2139 graphics
1427 [ 2140 [
1428 w 269.5 2141 w 184.8
1429 h 124 2142 h 54
1430 type "rectangle" 2143 type "rectangle"
1431 fill "#FFFFFF" 2144 fill "#FFFFFF"
1432 fill2 "#FFFFFF" 2145 fill2 "#FFFFFF"
@@ -1446,13 +2159,8 @@ graph
1446 LabelGraphics 2159 LabelGraphics
1447 [ 2160 [
1448 text " 2161 text "
1449 EClassifier class 2162 FunctionalOutput class
1450 EDataType class 2163 FunctionalData class
1451 EEnum class
1452 EModelElement class
1453 ENamedElement class
1454 EModelElement class UndefinedPart
1455 ENamedElement class UndefinedPart
1456 " 2164 "
1457 fontSize 14 2165 fontSize 14
1458 fontName "Consolas" 2166 fontName "Consolas"
@@ -1464,11 +2172,11 @@ graph
1464 2172
1465 node 2173 node
1466 [ 2174 [
1467 id 15 2175 id 11
1468 graphics 2176 graphics
1469 [ 2177 [
1470 w 269.5 2178 w 161.70000000000002
1471 h 124 2179 h 40
1472 type "rectangle" 2180 type "rectangle"
1473 fill "#FFFFFF" 2181 fill "#FFFFFF"
1474 fill2 "#FFFFFF" 2182 fill2 "#FFFFFF"
@@ -1488,13 +2196,7 @@ graph
1488 LabelGraphics 2196 LabelGraphics
1489 [ 2197 [
1490 text " 2198 text "
1491 EClassifier class 2199 FAMTerminator class
1492 EDataType class
1493 EEnum class
1494 EModelElement class
1495 ENamedElement class
1496 EModelElement class UndefinedPart
1497 ENamedElement class UndefinedPart
1498 " 2200 "
1499 fontSize 14 2201 fontSize 14
1500 fontName "Consolas" 2202 fontName "Consolas"
@@ -1506,7 +2208,7 @@ graph
1506 2208
1507 node 2209 node
1508 [ 2210 [
1509 id 16 2211 id 12
1510 graphics 2212 graphics
1511 [ 2213 [
1512 w 112.2 2214 w 112.2
@@ -1541,7 +2243,7 @@ graph
1541 2243
1542 node 2244 node
1543 [ 2245 [
1544 id 17 2246 id 13
1545 graphics 2247 graphics
1546 [ 2248 [
1547 w 85.80000000000001 2249 w 85.80000000000001
@@ -1576,7 +2278,7 @@ graph
1576 2278
1577 node 2279 node
1578 [ 2280 [
1579 id 18 2281 id 14
1580 graphics 2282 graphics
1581 [ 2283 [
1582 w 103.4 2284 w 103.4
@@ -1611,7 +2313,7 @@ graph
1611 2313
1612 node 2314 node
1613 [ 2315 [
1614 id 19 2316 id 15
1615 graphics 2317 graphics
1616 [ 2318 [
1617 w 103.4 2319 w 103.4
@@ -1645,46 +2347,8 @@ graph
1645 ] 2347 ]
1646 edge 2348 edge
1647 [ 2349 [
1648 source 11 2350 source 9
1649 target 0 2351 target 7
1650 graphics
1651 [
1652 fill "#000000"
1653 targetArrow "standard"
1654 ]
1655 LabelGraphics
1656 [
1657 text "ePackage reference EClassifier"
1658 fontSize 14
1659 fontName "Consolas"
1660 configuration "AutoFlippingLabel"
1661 model "six_pos"
1662 position "thead"
1663 ]
1664 ]
1665 edge
1666 [
1667 source 12
1668 target 0
1669 graphics
1670 [
1671 fill "#000000"
1672 targetArrow "standard"
1673 ]
1674 LabelGraphics
1675 [
1676 text "ePackage reference EClassifier"
1677 fontSize 14
1678 fontName "Consolas"
1679 configuration "AutoFlippingLabel"
1680 model "six_pos"
1681 position "thead"
1682 ]
1683 ]
1684 edge
1685 [
1686 source 14
1687 target 0
1688 graphics 2352 graphics
1689 [ 2353 [
1690 fill "#000000" 2354 fill "#000000"
@@ -1692,7 +2356,7 @@ graph
1692 ] 2356 ]
1693 LabelGraphics 2357 LabelGraphics
1694 [ 2358 [
1695 text "ePackage reference EClassifier" 2359 text "data reference FAMTerminator"
1696 fontSize 14 2360 fontSize 14
1697 fontName "Consolas" 2361 fontName "Consolas"
1698 configuration "AutoFlippingLabel" 2362 configuration "AutoFlippingLabel"
@@ -1702,8 +2366,8 @@ graph
1702 ] 2366 ]
1703 edge 2367 edge
1704 [ 2368 [
1705 source 15 2369 source 11
1706 target 13 2370 target 10
1707 graphics 2371 graphics
1708 [ 2372 [
1709 fill "#000000" 2373 fill "#000000"
@@ -1711,7 +2375,7 @@ graph
1711 ] 2375 ]
1712 LabelGraphics 2376 LabelGraphics
1713 [ 2377 [
1714 text "ePackage reference EClassifier" 2378 text "data reference FAMTerminator"
1715 fontSize 14 2379 fontSize 14
1716 fontName "Consolas" 2380 fontName "Consolas"
1717 configuration "AutoFlippingLabel" 2381 configuration "AutoFlippingLabel"
@@ -1721,8 +2385,8 @@ graph
1721 ] 2385 ]
1722 edge 2386 edge
1723 [ 2387 [
1724 source 0 2388 source 5
1725 target 11 2389 target 6
1726 graphics 2390 graphics
1727 [ 2391 [
1728 fill "#000000" 2392 fill "#000000"
@@ -1731,7 +2395,7 @@ graph
1731 ] 2395 ]
1732 LabelGraphics 2396 LabelGraphics
1733 [ 2397 [
1734 text "eClassifiers reference EPackage" 2398 text "data reference FunctionalInterface"
1735 fontSize 14 2399 fontSize 14
1736 fontName "Consolas" 2400 fontName "Consolas"
1737 configuration "AutoFlippingLabel" 2401 configuration "AutoFlippingLabel"
@@ -1741,8 +2405,8 @@ graph
1741 ] 2405 ]
1742 edge 2406 edge
1743 [ 2407 [
1744 source 0 2408 source 5
1745 target 12 2409 target 7
1746 graphics 2410 graphics
1747 [ 2411 [
1748 fill "#000000" 2412 fill "#000000"
@@ -1751,7 +2415,7 @@ graph
1751 ] 2415 ]
1752 LabelGraphics 2416 LabelGraphics
1753 [ 2417 [
1754 text "eClassifiers reference EPackage" 2418 text "data reference FunctionalInterface"
1755 fontSize 14 2419 fontSize 14
1756 fontName "Consolas" 2420 fontName "Consolas"
1757 configuration "AutoFlippingLabel" 2421 configuration "AutoFlippingLabel"
@@ -1761,8 +2425,8 @@ graph
1761 ] 2425 ]
1762 edge 2426 edge
1763 [ 2427 [
1764 source 0 2428 source 5
1765 target 14 2429 target 8
1766 graphics 2430 graphics
1767 [ 2431 [
1768 fill "#000000" 2432 fill "#000000"
@@ -1771,7 +2435,7 @@ graph
1771 ] 2435 ]
1772 LabelGraphics 2436 LabelGraphics
1773 [ 2437 [
1774 text "eClassifiers reference EPackage" 2438 text "data reference FunctionalInterface"
1775 fontSize 14 2439 fontSize 14
1776 fontName "Consolas" 2440 fontName "Consolas"
1777 configuration "AutoFlippingLabel" 2441 configuration "AutoFlippingLabel"
@@ -1781,8 +2445,8 @@ graph
1781 ] 2445 ]
1782 edge 2446 edge
1783 [ 2447 [
1784 source 13 2448 source 5
1785 target 15 2449 target 10
1786 graphics 2450 graphics
1787 [ 2451 [
1788 fill "#000000" 2452 fill "#000000"
@@ -1791,7 +2455,7 @@ graph
1791 ] 2455 ]
1792 LabelGraphics 2456 LabelGraphics
1793 [ 2457 [
1794 text "eClassifiers reference EPackage" 2458 text "data reference FunctionalInterface"
1795 fontSize 14 2459 fontSize 14
1796 fontName "Consolas" 2460 fontName "Consolas"
1797 configuration "AutoFlippingLabel" 2461 configuration "AutoFlippingLabel"
@@ -1801,8 +2465,8 @@ graph
1801 ] 2465 ]
1802 edge 2466 edge
1803 [ 2467 [
1804 source 0 2468 source 7
1805 target 13 2469 target 9
1806 graphics 2470 graphics
1807 [ 2471 [
1808 fill "#000000" 2472 fill "#000000"
@@ -1811,45 +2475,7 @@ graph
1811 ] 2475 ]
1812 LabelGraphics 2476 LabelGraphics
1813 [ 2477 [
1814 text "eSubpackages reference EPackage" 2478 text "terminator reference FunctionalData"
1815 fontSize 14
1816 fontName "Consolas"
1817 configuration "AutoFlippingLabel"
1818 model "six_pos"
1819 position "thead"
1820 ]
1821 ]
1822 edge
1823 [
1824 source 13
1825 target 0
1826 graphics
1827 [
1828 fill "#000000"
1829 targetArrow "standard"
1830 ]
1831 LabelGraphics
1832 [
1833 text "eSuperPackage reference EPackage"
1834 fontSize 14
1835 fontName "Consolas"
1836 configuration "AutoFlippingLabel"
1837 model "six_pos"
1838 position "thead"
1839 ]
1840 ]
1841 edge
1842 [
1843 source 12
1844 target 8
1845 graphics
1846 [
1847 fill "#000000"
1848 targetArrow "standard"
1849 ]
1850 LabelGraphics
1851 [
1852 text "instanceClassName attribute EClassifier"
1853 fontSize 14 2479 fontSize 14
1854 fontName "Consolas" 2480 fontName "Consolas"
1855 configuration "AutoFlippingLabel" 2481 configuration "AutoFlippingLabel"
@@ -1859,130 +2485,17 @@ graph
1859 ] 2485 ]
1860 edge 2486 edge
1861 [ 2487 [
1862 source 11 2488 source 10
1863 target 6 2489 target 11
1864 graphics
1865 [
1866 fill "#000000"
1867 targetArrow "standard"
1868 ]
1869 LabelGraphics
1870 [
1871 text "instanceClassName attribute EClassifier"
1872 fontSize 14
1873 fontName "Consolas"
1874 configuration "AutoFlippingLabel"
1875 model "six_pos"
1876 position "thead"
1877 ]
1878 ]
1879 edge
1880 [
1881 source 11
1882 target 10
1883 graphics
1884 [
1885 fill "#000000"
1886 targetArrow "standard"
1887 ]
1888 LabelGraphics
1889 [
1890 text "instanceTypeName attribute EClassifier"
1891 fontSize 14
1892 fontName "Consolas"
1893 configuration "AutoFlippingLabel"
1894 model "six_pos"
1895 position "thead"
1896 ]
1897 ]
1898 edge
1899 [
1900 source 12
1901 target 8
1902 graphics
1903 [
1904 fill "#000000"
1905 targetArrow "standard"
1906 ]
1907 LabelGraphics
1908 [
1909 text "instanceTypeName attribute EClassifier"
1910 fontSize 14
1911 fontName "Consolas"
1912 configuration "AutoFlippingLabel"
1913 model "six_pos"
1914 position "thead"
1915 ]
1916 ]
1917 edge
1918 [
1919 source 0
1920 target 10
1921 graphics
1922 [
1923 fill "#000000"
1924 targetArrow "standard"
1925 ]
1926 LabelGraphics
1927 [
1928 text "name attribute ENamedElement"
1929 fontSize 14
1930 fontName "Consolas"
1931 configuration "AutoFlippingLabel"
1932 model "six_pos"
1933 position "thead"
1934 ]
1935 ]
1936 edge
1937 [
1938 source 12
1939 target 10
1940 graphics
1941 [
1942 fill "#000000"
1943 targetArrow "standard"
1944 ]
1945 LabelGraphics
1946 [
1947 text "name attribute ENamedElement"
1948 fontSize 14
1949 fontName "Consolas"
1950 configuration "AutoFlippingLabel"
1951 model "six_pos"
1952 position "thead"
1953 ]
1954 ]
1955 edge
1956 [
1957 source 11
1958 target 10
1959 graphics
1960 [
1961 fill "#000000"
1962 targetArrow "standard"
1963 ]
1964 LabelGraphics
1965 [
1966 text "name attribute ENamedElement"
1967 fontSize 14
1968 fontName "Consolas"
1969 configuration "AutoFlippingLabel"
1970 model "six_pos"
1971 position "thead"
1972 ]
1973 ]
1974 edge
1975 [
1976 source 13
1977 target 6
1978 graphics 2490 graphics
1979 [ 2491 [
1980 fill "#000000" 2492 fill "#000000"
2493 width 3
1981 targetArrow "standard" 2494 targetArrow "standard"
1982 ] 2495 ]
1983 LabelGraphics 2496 LabelGraphics
1984 [ 2497 [
1985 text "name attribute ENamedElement" 2498 text "terminator reference FunctionalData"
1986 fontSize 14 2499 fontSize 14
1987 fontName "Consolas" 2500 fontName "Consolas"
1988 configuration "AutoFlippingLabel" 2501 configuration "AutoFlippingLabel"
@@ -1992,8 +2505,8 @@ graph
1992 ] 2505 ]
1993 edge 2506 edge
1994 [ 2507 [
1995 source 0 2508 source 6
1996 target 9 2509 target 5
1997 graphics 2510 graphics
1998 [ 2511 [
1999 fill "#000000" 2512 fill "#000000"
@@ -2001,7 +2514,7 @@ graph
2001 ] 2514 ]
2002 LabelGraphics 2515 LabelGraphics
2003 [ 2516 [
2004 text "nsURI attribute EPackage" 2517 text "interface reference FunctionalData"
2005 fontSize 14 2518 fontSize 14
2006 fontName "Consolas" 2519 fontName "Consolas"
2007 configuration "AutoFlippingLabel" 2520 configuration "AutoFlippingLabel"
@@ -2011,8 +2524,8 @@ graph
2011 ] 2524 ]
2012 edge 2525 edge
2013 [ 2526 [
2014 source 13 2527 source 7
2015 target 8 2528 target 5
2016 graphics 2529 graphics
2017 [ 2530 [
2018 fill "#000000" 2531 fill "#000000"
@@ -2020,7 +2533,7 @@ graph
2020 ] 2533 ]
2021 LabelGraphics 2534 LabelGraphics
2022 [ 2535 [
2023 text "nsURI attribute EPackage" 2536 text "interface reference FunctionalData"
2024 fontSize 14 2537 fontSize 14
2025 fontName "Consolas" 2538 fontName "Consolas"
2026 configuration "AutoFlippingLabel" 2539 configuration "AutoFlippingLabel"
@@ -2030,8 +2543,8 @@ graph
2030 ] 2543 ]
2031 edge 2544 edge
2032 [ 2545 [
2033 source 0 2546 source 8
2034 target 8 2547 target 5
2035 graphics 2548 graphics
2036 [ 2549 [
2037 fill "#000000" 2550 fill "#000000"
@@ -2039,7 +2552,7 @@ graph
2039 ] 2552 ]
2040 LabelGraphics 2553 LabelGraphics
2041 [ 2554 [
2042 text "nsPrefix attribute EPackage" 2555 text "interface reference FunctionalData"
2043 fontSize 14 2556 fontSize 14
2044 fontName "Consolas" 2557 fontName "Consolas"
2045 configuration "AutoFlippingLabel" 2558 configuration "AutoFlippingLabel"
@@ -2049,8 +2562,8 @@ graph
2049 ] 2562 ]
2050 edge 2563 edge
2051 [ 2564 [
2052 source 13 2565 source 10
2053 target 6 2566 target 5
2054 graphics 2567 graphics
2055 [ 2568 [
2056 fill "#000000" 2569 fill "#000000"
@@ -2058,7 +2571,7 @@ graph
2058 ] 2571 ]
2059 LabelGraphics 2572 LabelGraphics
2060 [ 2573 [
2061 text "nsPrefix attribute EPackage" 2574 text "interface reference FunctionalData"
2062 fontSize 14 2575 fontSize 14
2063 fontName "Consolas" 2576 fontName "Consolas"
2064 configuration "AutoFlippingLabel" 2577 configuration "AutoFlippingLabel"
@@ -2074,8 +2587,8 @@ graph
2074 id 0 2587 id 0
2075 graphics 2588 graphics
2076 [ 2589 [
2077 w 254.10000000000002 2590 w 226.60000000000002
2078 h 110 2591 h 40
2079 type "rectangle" 2592 type "rectangle"
2080 fill "#FFFFFF" 2593 fill "#FFFFFF"
2081 fill2 "#FFFFFF" 2594 fill2 "#FFFFFF"
@@ -2083,7 +2596,7 @@ graph
2083 ] 2596 ]
2084 LabelGraphics 2597 LabelGraphics
2085 [ 2598 [
2086 text "o 1" 2599 text "Root literal FunctionType"
2087 outline "#000000" 2600 outline "#000000"
2088 fill "#FFFFFF" 2601 fill "#FFFFFF"
2089 fontSize 16 2602 fontSize 16
@@ -2095,12 +2608,7 @@ graph
2095 LabelGraphics 2608 LabelGraphics
2096 [ 2609 [
2097 text " 2610 text "
2098 EModelElement class DefinedPart 2611 FunctionType enum
2099 ENamedElement class DefinedPart
2100 EPackage class DefinedPart
2101 EModelElement class
2102 ENamedElement class
2103 EPackage class
2104 " 2612 "
2105 fontSize 14 2613 fontSize 14
2106 fontName "Consolas" 2614 fontName "Consolas"
@@ -2115,8 +2623,8 @@ graph
2115 id 1 2623 id 1
2116 graphics 2624 graphics
2117 [ 2625 [
2118 w 41.800000000000004 2626 w 297.0
2119 h 26 2627 h 40
2120 type "rectangle" 2628 type "rectangle"
2121 fill "#FFFFFF" 2629 fill "#FFFFFF"
2122 fill2 "#FFFFFF" 2630 fill2 "#FFFFFF"
@@ -2124,7 +2632,7 @@ graph
2124 ] 2632 ]
2125 LabelGraphics 2633 LabelGraphics
2126 [ 2634 [
2127 text "true" 2635 text "Intermediate literal FunctionType"
2128 outline "#000000" 2636 outline "#000000"
2129 fill "#FFFFFF" 2637 fill "#FFFFFF"
2130 fontSize 16 2638 fontSize 16
@@ -2136,6 +2644,7 @@ graph
2136 LabelGraphics 2644 LabelGraphics
2137 [ 2645 [
2138 text " 2646 text "
2647 FunctionType enum
2139 " 2648 "
2140 fontSize 14 2649 fontSize 14
2141 fontName "Consolas" 2650 fontName "Consolas"
@@ -2150,8 +2659,8 @@ graph
2150 id 2 2659 id 2
2151 graphics 2660 graphics
2152 [ 2661 [
2153 w 50.6 2662 w 226.60000000000002
2154 h 26 2663 h 40
2155 type "rectangle" 2664 type "rectangle"
2156 fill "#FFFFFF" 2665 fill "#FFFFFF"
2157 fill2 "#FFFFFF" 2666 fill2 "#FFFFFF"
@@ -2159,7 +2668,7 @@ graph
2159 ] 2668 ]
2160 LabelGraphics 2669 LabelGraphics
2161 [ 2670 [
2162 text "false" 2671 text "Leaf literal FunctionType"
2163 outline "#000000" 2672 outline "#000000"
2164 fill "#FFFFFF" 2673 fill "#FFFFFF"
2165 fontSize 16 2674 fontSize 16
@@ -2171,6 +2680,7 @@ graph
2171 LabelGraphics 2680 LabelGraphics
2172 [ 2681 [
2173 text " 2682 text "
2683 FunctionType enum
2174 " 2684 "
2175 fontSize 14 2685 fontSize 14
2176 fontName "Consolas" 2686 fontName "Consolas"
@@ -2185,7 +2695,7 @@ graph
2185 id 3 2695 id 3
2186 graphics 2696 graphics
2187 [ 2697 [
2188 w 24.200000000000003 2698 w 41.800000000000004
2189 h 26 2699 h 26
2190 type "rectangle" 2700 type "rectangle"
2191 fill "#FFFFFF" 2701 fill "#FFFFFF"
@@ -2194,7 +2704,7 @@ graph
2194 ] 2704 ]
2195 LabelGraphics 2705 LabelGraphics
2196 [ 2706 [
2197 text "-1" 2707 text "true"
2198 outline "#000000" 2708 outline "#000000"
2199 fill "#FFFFFF" 2709 fill "#FFFFFF"
2200 fontSize 16 2710 fontSize 16
@@ -2220,7 +2730,7 @@ graph
2220 id 4 2730 id 4
2221 graphics 2731 graphics
2222 [ 2732 [
2223 w 15.400000000000002 2733 w 50.6
2224 h 26 2734 h 26
2225 type "rectangle" 2735 type "rectangle"
2226 fill "#FFFFFF" 2736 fill "#FFFFFF"
@@ -2229,7 +2739,7 @@ graph
2229 ] 2739 ]
2230 LabelGraphics 2740 LabelGraphics
2231 [ 2741 [
2232 text "0" 2742 text "false"
2233 outline "#000000" 2743 outline "#000000"
2234 fill "#FFFFFF" 2744 fill "#FFFFFF"
2235 fontSize 16 2745 fontSize 16
@@ -2255,8 +2765,8 @@ graph
2255 id 5 2765 id 5
2256 graphics 2766 graphics
2257 [ 2767 [
2258 w 15.400000000000002 2768 w 207.9
2259 h 26 2769 h 40
2260 type "rectangle" 2770 type "rectangle"
2261 fill "#FFFFFF" 2771 fill "#FFFFFF"
2262 fill2 "#FFFFFF" 2772 fill2 "#FFFFFF"
@@ -2264,7 +2774,7 @@ graph
2264 ] 2774 ]
2265 LabelGraphics 2775 LabelGraphics
2266 [ 2776 [
2267 text "1" 2777 text "null"
2268 outline "#000000" 2778 outline "#000000"
2269 fill "#FFFFFF" 2779 fill "#FFFFFF"
2270 fontSize 16 2780 fontSize 16
@@ -2276,6 +2786,7 @@ graph
2276 LabelGraphics 2786 LabelGraphics
2277 [ 2787 [
2278 text " 2788 text "
2789 FunctionalInterface class
2279 " 2790 "
2280 fontSize 14 2791 fontSize 14
2281 fontName "Consolas" 2792 fontName "Consolas"
@@ -2290,8 +2801,8 @@ graph
2290 id 6 2801 id 6
2291 graphics 2802 graphics
2292 [ 2803 [
2293 w 33.0 2804 w 184.8
2294 h 26 2805 h 54
2295 type "rectangle" 2806 type "rectangle"
2296 fill "#FFFFFF" 2807 fill "#FFFFFF"
2297 fill2 "#FFFFFF" 2808 fill2 "#FFFFFF"
@@ -2299,7 +2810,7 @@ graph
2299 ] 2810 ]
2300 LabelGraphics 2811 LabelGraphics
2301 [ 2812 [
2302 text ""A"" 2813 text "null"
2303 outline "#000000" 2814 outline "#000000"
2304 fill "#FFFFFF" 2815 fill "#FFFFFF"
2305 fontSize 16 2816 fontSize 16
@@ -2311,6 +2822,8 @@ graph
2311 LabelGraphics 2822 LabelGraphics
2312 [ 2823 [
2313 text " 2824 text "
2825 FunctionalOutput class
2826 FunctionalData class
2314 " 2827 "
2315 fontSize 14 2828 fontSize 14
2316 fontName "Consolas" 2829 fontName "Consolas"
@@ -2325,8 +2838,8 @@ graph
2325 id 7 2838 id 7
2326 graphics 2839 graphics
2327 [ 2840 [
2328 w 33.0 2841 w 177.10000000000002
2329 h 26 2842 h 54
2330 type "rectangle" 2843 type "rectangle"
2331 fill "#FFFFFF" 2844 fill "#FFFFFF"
2332 fill2 "#FFFFFF" 2845 fill2 "#FFFFFF"
@@ -2334,7 +2847,7 @@ graph
2334 ] 2847 ]
2335 LabelGraphics 2848 LabelGraphics
2336 [ 2849 [
2337 text ""B"" 2850 text "null"
2338 outline "#000000" 2851 outline "#000000"
2339 fill "#FFFFFF" 2852 fill "#FFFFFF"
2340 fontSize 16 2853 fontSize 16
@@ -2346,6 +2859,8 @@ graph
2346 LabelGraphics 2859 LabelGraphics
2347 [ 2860 [
2348 text " 2861 text "
2862 FunctionalInput class
2863 FunctionalData class
2349 " 2864 "
2350 fontSize 14 2865 fontSize 14
2351 fontName "Consolas" 2866 fontName "Consolas"
@@ -2360,8 +2875,8 @@ graph
2360 id 8 2875 id 8
2361 graphics 2876 graphics
2362 [ 2877 [
2363 w 94.60000000000001 2878 w 184.8
2364 h 26 2879 h 54
2365 type "rectangle" 2880 type "rectangle"
2366 fill "#FFFFFF" 2881 fill "#FFFFFF"
2367 fill2 "#FFFFFF" 2882 fill2 "#FFFFFF"
@@ -2369,7 +2884,7 @@ graph
2369 ] 2884 ]
2370 LabelGraphics 2885 LabelGraphics
2371 [ 2886 [
2372 text ""nsPrefix"" 2887 text "null"
2373 outline "#000000" 2888 outline "#000000"
2374 fill "#FFFFFF" 2889 fill "#FFFFFF"
2375 fontSize 16 2890 fontSize 16
@@ -2381,6 +2896,8 @@ graph
2381 LabelGraphics 2896 LabelGraphics
2382 [ 2897 [
2383 text " 2898 text "
2899 FunctionalOutput class
2900 FunctionalData class
2384 " 2901 "
2385 fontSize 14 2902 fontSize 14
2386 fontName "Consolas" 2903 fontName "Consolas"
@@ -2395,8 +2912,8 @@ graph
2395 id 9 2912 id 9
2396 graphics 2913 graphics
2397 [ 2914 [
2398 w 68.2 2915 w 161.70000000000002
2399 h 26 2916 h 40
2400 type "rectangle" 2917 type "rectangle"
2401 fill "#FFFFFF" 2918 fill "#FFFFFF"
2402 fill2 "#FFFFFF" 2919 fill2 "#FFFFFF"
@@ -2404,7 +2921,7 @@ graph
2404 ] 2921 ]
2405 LabelGraphics 2922 LabelGraphics
2406 [ 2923 [
2407 text ""nsUri"" 2924 text "null"
2408 outline "#000000" 2925 outline "#000000"
2409 fill "#FFFFFF" 2926 fill "#FFFFFF"
2410 fontSize 16 2927 fontSize 16
@@ -2416,6 +2933,7 @@ graph
2416 LabelGraphics 2933 LabelGraphics
2417 [ 2934 [
2418 text " 2935 text "
2936 FAMTerminator class
2419 " 2937 "
2420 fontSize 14 2938 fontSize 14
2421 fontName "Consolas" 2939 fontName "Consolas"
@@ -2430,8 +2948,8 @@ graph
2430 id 10 2948 id 10
2431 graphics 2949 graphics
2432 [ 2950 [
2433 w 121.00000000000001 2951 w 161.70000000000002
2434 h 26 2952 h 40
2435 type "rectangle" 2953 type "rectangle"
2436 fill "#FFFFFF" 2954 fill "#FFFFFF"
2437 fill2 "#FFFFFF" 2955 fill2 "#FFFFFF"
@@ -2439,7 +2957,7 @@ graph
2439 ] 2957 ]
2440 LabelGraphics 2958 LabelGraphics
2441 [ 2959 [
2442 text ""packageName"" 2960 text "null"
2443 outline "#000000" 2961 outline "#000000"
2444 fill "#FFFFFF" 2962 fill "#FFFFFF"
2445 fontSize 16 2963 fontSize 16
@@ -2451,6 +2969,7 @@ graph
2451 LabelGraphics 2969 LabelGraphics
2452 [ 2970 [
2453 text " 2971 text "
2972 FAMTerminator class
2454 " 2973 "
2455 fontSize 14 2974 fontSize 14
2456 fontName "Consolas" 2975 fontName "Consolas"
@@ -2465,8 +2984,8 @@ graph
2465 id 11 2984 id 11
2466 graphics 2985 graphics
2467 [ 2986 [
2468 w 269.5 2987 w 177.10000000000002
2469 h 110 2988 h 40
2470 type "rectangle" 2989 type "rectangle"
2471 fill "#FFFFFF" 2990 fill "#FFFFFF"
2472 fill2 "#FFFFFF" 2991 fill2 "#FFFFFF"
@@ -2486,12 +3005,7 @@ graph
2486 LabelGraphics 3005 LabelGraphics
2487 [ 3006 [
2488 text " 3007 text "
2489 EClassifier class 3008 InformationLink class
2490 EDataType class
2491 EModelElement class
2492 ENamedElement class
2493 EModelElement class UndefinedPart
2494 ENamedElement class UndefinedPart
2495 " 3009 "
2496 fontSize 14 3010 fontSize 14
2497 fontName "Consolas" 3011 fontName "Consolas"
@@ -2506,164 +3020,6 @@ graph
2506 id 12 3020 id 12
2507 graphics 3021 graphics
2508 [ 3022 [
2509 w 269.5
2510 h 68
2511 type "rectangle"
2512 fill "#FFFFFF"
2513 fill2 "#FFFFFF"
2514 outline "#000000"
2515 ]
2516 LabelGraphics
2517 [
2518 text "null"
2519 outline "#000000"
2520 fill "#FFFFFF"
2521 fontSize 16
2522 fontName "Monospace"
2523 autoSizePolicy "node_width"
2524 anchor "t"
2525 borderDistance 0.0
2526 ]
2527 LabelGraphics
2528 [
2529 text "
2530 EAnnotation class
2531 EModelElement class
2532 EModelElement class UndefinedPart
2533 "
2534 fontSize 14
2535 fontName "Consolas"
2536 alignment "left"
2537 anchor "tl"
2538 borderDistance 6
2539 ]
2540 ]
2541
2542 node
2543 [
2544 id 13
2545 graphics
2546 [
2547 w 269.5
2548 h 110
2549 type "rectangle"
2550 fill "#FFFFFF"
2551 fill2 "#FFFFFF"
2552 outline "#000000"
2553 ]
2554 LabelGraphics
2555 [
2556 text "null"
2557 outline "#000000"
2558 fill "#FFFFFF"
2559 fontSize 16
2560 fontName "Monospace"
2561 autoSizePolicy "node_width"
2562 anchor "t"
2563 borderDistance 0.0
2564 ]
2565 LabelGraphics
2566 [
2567 text "
2568 EClass class
2569 EClassifier class
2570 EModelElement class
2571 ENamedElement class
2572 EModelElement class UndefinedPart
2573 ENamedElement class UndefinedPart
2574 "
2575 fontSize 14
2576 fontName "Consolas"
2577 alignment "left"
2578 anchor "tl"
2579 borderDistance 6
2580 ]
2581 ]
2582
2583 node
2584 [
2585 id 14
2586 graphics
2587 [
2588 w 269.5
2589 h 110
2590 type "rectangle"
2591 fill "#FFFFFF"
2592 fill2 "#FFFFFF"
2593 outline "#000000"
2594 ]
2595 LabelGraphics
2596 [
2597 text "null"
2598 outline "#000000"
2599 fill "#FFFFFF"
2600 fontSize 16
2601 fontName "Monospace"
2602 autoSizePolicy "node_width"
2603 anchor "t"
2604 borderDistance 0.0
2605 ]
2606 LabelGraphics
2607 [
2608 text "
2609 EClassifier class
2610 EDataType class
2611 EModelElement class
2612 ENamedElement class
2613 EModelElement class UndefinedPart
2614 ENamedElement class UndefinedPart
2615 "
2616 fontSize 14
2617 fontName "Consolas"
2618 alignment "left"
2619 anchor "tl"
2620 borderDistance 6
2621 ]
2622 ]
2623
2624 node
2625 [
2626 id 15
2627 graphics
2628 [
2629 w 269.5
2630 h 68
2631 type "rectangle"
2632 fill "#FFFFFF"
2633 fill2 "#FFFFFF"
2634 outline "#000000"
2635 ]
2636 LabelGraphics
2637 [
2638 text "null"
2639 outline "#000000"
2640 fill "#FFFFFF"
2641 fontSize 16
2642 fontName "Monospace"
2643 autoSizePolicy "node_width"
2644 anchor "t"
2645 borderDistance 0.0
2646 ]
2647 LabelGraphics
2648 [
2649 text "
2650 EAnnotation class
2651 EModelElement class
2652 EModelElement class UndefinedPart
2653 "
2654 fontSize 14
2655 fontName "Consolas"
2656 alignment "left"
2657 anchor "tl"
2658 borderDistance 6
2659 ]
2660 ]
2661
2662 node
2663 [
2664 id 16
2665 graphics
2666 [
2667 w 112.2 3023 w 112.2
2668 h 26 3024 h 26
2669 type "rectangle" 3025 type "rectangle"
@@ -2696,7 +3052,7 @@ graph
2696 3052
2697 node 3053 node
2698 [ 3054 [
2699 id 17 3055 id 13
2700 graphics 3056 graphics
2701 [ 3057 [
2702 w 85.80000000000001 3058 w 85.80000000000001
@@ -2731,7 +3087,7 @@ graph
2731 3087
2732 node 3088 node
2733 [ 3089 [
2734 id 18 3090 id 14
2735 graphics 3091 graphics
2736 [ 3092 [
2737 w 103.4 3093 w 103.4
@@ -2766,7 +3122,7 @@ graph
2766 3122
2767 node 3123 node
2768 [ 3124 [
2769 id 19 3125 id 15
2770 graphics 3126 graphics
2771 [ 3127 [
2772 w 103.4 3128 w 103.4
@@ -2800,8 +3156,8 @@ graph
2800 ] 3156 ]
2801 edge 3157 edge
2802 [ 3158 [
2803 source 12 3159 source 9
2804 target 0 3160 target 6
2805 graphics 3161 graphics
2806 [ 3162 [
2807 fill "#000000" 3163 fill "#000000"
@@ -2809,7 +3165,7 @@ graph
2809 ] 3165 ]
2810 LabelGraphics 3166 LabelGraphics
2811 [ 3167 [
2812 text "eModelElement reference EAnnotation" 3168 text "data reference FAMTerminator"
2813 fontSize 14 3169 fontSize 14
2814 fontName "Consolas" 3170 fontName "Consolas"
2815 configuration "AutoFlippingLabel" 3171 configuration "AutoFlippingLabel"
@@ -2819,8 +3175,8 @@ graph
2819 ] 3175 ]
2820 edge 3176 edge
2821 [ 3177 [
2822 source 15 3178 source 10
2823 target 0 3179 target 7
2824 graphics 3180 graphics
2825 [ 3181 [
2826 fill "#000000" 3182 fill "#000000"
@@ -2828,7 +3184,7 @@ graph
2828 ] 3184 ]
2829 LabelGraphics 3185 LabelGraphics
2830 [ 3186 [
2831 text "eModelElement reference EAnnotation" 3187 text "data reference FAMTerminator"
2832 fontSize 14 3188 fontSize 14
2833 fontName "Consolas" 3189 fontName "Consolas"
2834 configuration "AutoFlippingLabel" 3190 configuration "AutoFlippingLabel"
@@ -2839,26 +3195,7 @@ graph
2839 edge 3195 edge
2840 [ 3196 [
2841 source 11 3197 source 11
2842 target 0 3198 target 6
2843 graphics
2844 [
2845 fill "#000000"
2846 targetArrow "standard"
2847 ]
2848 LabelGraphics
2849 [
2850 text "ePackage reference EClassifier"
2851 fontSize 14
2852 fontName "Consolas"
2853 configuration "AutoFlippingLabel"
2854 model "six_pos"
2855 position "thead"
2856 ]
2857 ]
2858 edge
2859 [
2860 source 13
2861 target 0
2862 graphics 3199 graphics
2863 [ 3200 [
2864 fill "#000000" 3201 fill "#000000"
@@ -2866,7 +3203,7 @@ graph
2866 ] 3203 ]
2867 LabelGraphics 3204 LabelGraphics
2868 [ 3205 [
2869 text "ePackage reference EClassifier" 3206 text "from reference InformationLink"
2870 fontSize 14 3207 fontSize 14
2871 fontName "Consolas" 3208 fontName "Consolas"
2872 configuration "AutoFlippingLabel" 3209 configuration "AutoFlippingLabel"
@@ -2876,8 +3213,8 @@ graph
2876 ] 3213 ]
2877 edge 3214 edge
2878 [ 3215 [
2879 source 14 3216 source 11
2880 target 0 3217 target 7
2881 graphics 3218 graphics
2882 [ 3219 [
2883 fill "#000000" 3220 fill "#000000"
@@ -2885,7 +3222,7 @@ graph
2885 ] 3222 ]
2886 LabelGraphics 3223 LabelGraphics
2887 [ 3224 [
2888 text "ePackage reference EClassifier" 3225 text "to reference InformationLink"
2889 fontSize 14 3226 fontSize 14
2890 fontName "Consolas" 3227 fontName "Consolas"
2891 configuration "AutoFlippingLabel" 3228 configuration "AutoFlippingLabel"
@@ -2895,8 +3232,8 @@ graph
2895 ] 3232 ]
2896 edge 3233 edge
2897 [ 3234 [
2898 source 0 3235 source 5
2899 target 12 3236 target 6
2900 graphics 3237 graphics
2901 [ 3238 [
2902 fill "#000000" 3239 fill "#000000"
@@ -2905,7 +3242,7 @@ graph
2905 ] 3242 ]
2906 LabelGraphics 3243 LabelGraphics
2907 [ 3244 [
2908 text "eAnnotations reference EModelElement" 3245 text "data reference FunctionalInterface"
2909 fontSize 14 3246 fontSize 14
2910 fontName "Consolas" 3247 fontName "Consolas"
2911 configuration "AutoFlippingLabel" 3248 configuration "AutoFlippingLabel"
@@ -2915,8 +3252,8 @@ graph
2915 ] 3252 ]
2916 edge 3253 edge
2917 [ 3254 [
2918 source 0 3255 source 5
2919 target 15 3256 target 7
2920 graphics 3257 graphics
2921 [ 3258 [
2922 fill "#000000" 3259 fill "#000000"
@@ -2925,7 +3262,7 @@ graph
2925 ] 3262 ]
2926 LabelGraphics 3263 LabelGraphics
2927 [ 3264 [
2928 text "eAnnotations reference EModelElement" 3265 text "data reference FunctionalInterface"
2929 fontSize 14 3266 fontSize 14
2930 fontName "Consolas" 3267 fontName "Consolas"
2931 configuration "AutoFlippingLabel" 3268 configuration "AutoFlippingLabel"
@@ -2935,8 +3272,8 @@ graph
2935 ] 3272 ]
2936 edge 3273 edge
2937 [ 3274 [
2938 source 0 3275 source 5
2939 target 11 3276 target 8
2940 graphics 3277 graphics
2941 [ 3278 [
2942 fill "#000000" 3279 fill "#000000"
@@ -2945,7 +3282,7 @@ graph
2945 ] 3282 ]
2946 LabelGraphics 3283 LabelGraphics
2947 [ 3284 [
2948 text "eClassifiers reference EPackage" 3285 text "data reference FunctionalInterface"
2949 fontSize 14 3286 fontSize 14
2950 fontName "Consolas" 3287 fontName "Consolas"
2951 configuration "AutoFlippingLabel" 3288 configuration "AutoFlippingLabel"
@@ -2955,17 +3292,16 @@ graph
2955 ] 3292 ]
2956 edge 3293 edge
2957 [ 3294 [
2958 source 0 3295 source 7
2959 target 13 3296 target 11
2960 graphics 3297 graphics
2961 [ 3298 [
2962 fill "#000000" 3299 fill "#000000"
2963 width 3
2964 targetArrow "standard" 3300 targetArrow "standard"
2965 ] 3301 ]
2966 LabelGraphics 3302 LabelGraphics
2967 [ 3303 [
2968 text "eClassifiers reference EPackage" 3304 text "IncomingLinks reference FunctionalInput"
2969 fontSize 14 3305 fontSize 14
2970 fontName "Consolas" 3306 fontName "Consolas"
2971 configuration "AutoFlippingLabel" 3307 configuration "AutoFlippingLabel"
@@ -2975,8 +3311,8 @@ graph
2975 ] 3311 ]
2976 edge 3312 edge
2977 [ 3313 [
2978 source 0 3314 source 6
2979 target 14 3315 target 11
2980 graphics 3316 graphics
2981 [ 3317 [
2982 fill "#000000" 3318 fill "#000000"
@@ -2985,7 +3321,7 @@ graph
2985 ] 3321 ]
2986 LabelGraphics 3322 LabelGraphics
2987 [ 3323 [
2988 text "eClassifiers reference EPackage" 3324 text "outgoingLinks reference FunctionalOutput"
2989 fontSize 14 3325 fontSize 14
2990 fontName "Consolas" 3326 fontName "Consolas"
2991 configuration "AutoFlippingLabel" 3327 configuration "AutoFlippingLabel"
@@ -2995,73 +3331,17 @@ graph
2995 ] 3331 ]
2996 edge 3332 edge
2997 [ 3333 [
2998 source 12 3334 source 6
2999 target 7
3000 graphics
3001 [
3002 fill "#000000"
3003 targetArrow "standard"
3004 ]
3005 LabelGraphics
3006 [
3007 text "source attribute EAnnotation"
3008 fontSize 14
3009 fontName "Consolas"
3010 configuration "AutoFlippingLabel"
3011 model "six_pos"
3012 position "thead"
3013 ]
3014 ]
3015 edge
3016 [
3017 source 11
3018 target 8
3019 graphics
3020 [
3021 fill "#000000"
3022 targetArrow "standard"
3023 ]
3024 LabelGraphics
3025 [
3026 text "instanceClassName attribute EClassifier"
3027 fontSize 14
3028 fontName "Consolas"
3029 configuration "AutoFlippingLabel"
3030 model "six_pos"
3031 position "thead"
3032 ]
3033 ]
3034 edge
3035 [
3036 source 14
3037 target 10
3038 graphics
3039 [
3040 fill "#000000"
3041 targetArrow "standard"
3042 ]
3043 LabelGraphics
3044 [
3045 text "instanceClassName attribute EClassifier"
3046 fontSize 14
3047 fontName "Consolas"
3048 configuration "AutoFlippingLabel"
3049 model "six_pos"
3050 position "thead"
3051 ]
3052 ]
3053 edge
3054 [
3055 source 11
3056 target 9 3335 target 9
3057 graphics 3336 graphics
3058 [ 3337 [
3059 fill "#000000" 3338 fill "#000000"
3339 width 3
3060 targetArrow "standard" 3340 targetArrow "standard"
3061 ] 3341 ]
3062 LabelGraphics 3342 LabelGraphics
3063 [ 3343 [
3064 text "instanceTypeName attribute EClassifier" 3344 text "terminator reference FunctionalData"
3065 fontSize 14 3345 fontSize 14
3066 fontName "Consolas" 3346 fontName "Consolas"
3067 configuration "AutoFlippingLabel" 3347 configuration "AutoFlippingLabel"
@@ -3071,54 +3351,17 @@ graph
3071 ] 3351 ]
3072 edge 3352 edge
3073 [ 3353 [
3074 source 0 3354 source 7
3075 target 10 3355 target 10
3076 graphics 3356 graphics
3077 [ 3357 [
3078 fill "#000000" 3358 fill "#000000"
3359 width 3
3079 targetArrow "standard" 3360 targetArrow "standard"
3080 ] 3361 ]
3081 LabelGraphics 3362 LabelGraphics
3082 [ 3363 [
3083 text "name attribute ENamedElement" 3364 text "terminator reference FunctionalData"
3084 fontSize 14
3085 fontName "Consolas"
3086 configuration "AutoFlippingLabel"
3087 model "six_pos"
3088 position "thead"
3089 ]
3090 ]
3091 edge
3092 [
3093 source 11
3094 target 8
3095 graphics
3096 [
3097 fill "#000000"
3098 targetArrow "standard"
3099 ]
3100 LabelGraphics
3101 [
3102 text "name attribute ENamedElement"
3103 fontSize 14
3104 fontName "Consolas"
3105 configuration "AutoFlippingLabel"
3106 model "six_pos"
3107 position "thead"
3108 ]
3109 ]
3110 edge
3111 [
3112 source 13
3113 target 9
3114 graphics
3115 [
3116 fill "#000000"
3117 targetArrow "standard"
3118 ]
3119 LabelGraphics
3120 [
3121 text "name attribute ENamedElement"
3122 fontSize 14 3365 fontSize 14
3123 fontName "Consolas" 3366 fontName "Consolas"
3124 configuration "AutoFlippingLabel" 3367 configuration "AutoFlippingLabel"
@@ -3128,8 +3371,8 @@ graph
3128 ] 3371 ]
3129 edge 3372 edge
3130 [ 3373 [
3131 source 14 3374 source 6
3132 target 8 3375 target 5
3133 graphics 3376 graphics
3134 [ 3377 [
3135 fill "#000000" 3378 fill "#000000"
@@ -3137,7 +3380,7 @@ graph
3137 ] 3380 ]
3138 LabelGraphics 3381 LabelGraphics
3139 [ 3382 [
3140 text "name attribute ENamedElement" 3383 text "interface reference FunctionalData"
3141 fontSize 14 3384 fontSize 14
3142 fontName "Consolas" 3385 fontName "Consolas"
3143 configuration "AutoFlippingLabel" 3386 configuration "AutoFlippingLabel"
@@ -3147,8 +3390,8 @@ graph
3147 ] 3390 ]
3148 edge 3391 edge
3149 [ 3392 [
3150 source 0 3393 source 7
3151 target 9 3394 target 5
3152 graphics 3395 graphics
3153 [ 3396 [
3154 fill "#000000" 3397 fill "#000000"
@@ -3156,7 +3399,7 @@ graph
3156 ] 3399 ]
3157 LabelGraphics 3400 LabelGraphics
3158 [ 3401 [
3159 text "nsURI attribute EPackage" 3402 text "interface reference FunctionalData"
3160 fontSize 14 3403 fontSize 14
3161 fontName "Consolas" 3404 fontName "Consolas"
3162 configuration "AutoFlippingLabel" 3405 configuration "AutoFlippingLabel"
@@ -3166,8 +3409,8 @@ graph
3166 ] 3409 ]
3167 edge 3410 edge
3168 [ 3411 [
3169 source 0 3412 source 8
3170 target 8 3413 target 5
3171 graphics 3414 graphics
3172 [ 3415 [
3173 fill "#000000" 3416 fill "#000000"
@@ -3175,7 +3418,7 @@ graph
3175 ] 3418 ]
3176 LabelGraphics 3419 LabelGraphics
3177 [ 3420 [
3178 text "nsPrefix attribute EPackage" 3421 text "interface reference FunctionalData"
3179 fontSize 14 3422 fontSize 14
3180 fontName "Consolas" 3423 fontName "Consolas"
3181 configuration "AutoFlippingLabel" 3424 configuration "AutoFlippingLabel"
@@ -3191,8 +3434,8 @@ graph
3191 id 0 3434 id 0
3192 graphics 3435 graphics
3193 [ 3436 [
3194 w 254.10000000000002 3437 w 226.60000000000002
3195 h 110 3438 h 40
3196 type "rectangle" 3439 type "rectangle"
3197 fill "#FFFFFF" 3440 fill "#FFFFFF"
3198 fill2 "#FFFFFF" 3441 fill2 "#FFFFFF"
@@ -3200,7 +3443,7 @@ graph
3200 ] 3443 ]
3201 LabelGraphics 3444 LabelGraphics
3202 [ 3445 [
3203 text "o 1" 3446 text "Root literal FunctionType"
3204 outline "#000000" 3447 outline "#000000"
3205 fill "#FFFFFF" 3448 fill "#FFFFFF"
3206 fontSize 16 3449 fontSize 16
@@ -3212,12 +3455,7 @@ graph
3212 LabelGraphics 3455 LabelGraphics
3213 [ 3456 [
3214 text " 3457 text "
3215 EModelElement class DefinedPart 3458 FunctionType enum
3216 ENamedElement class DefinedPart
3217 EPackage class DefinedPart
3218 EModelElement class
3219 ENamedElement class
3220 EPackage class
3221 " 3459 "
3222 fontSize 14 3460 fontSize 14
3223 fontName "Consolas" 3461 fontName "Consolas"
@@ -3232,8 +3470,8 @@ graph
3232 id 1 3470 id 1
3233 graphics 3471 graphics
3234 [ 3472 [
3235 w 41.800000000000004 3473 w 297.0
3236 h 26 3474 h 40
3237 type "rectangle" 3475 type "rectangle"
3238 fill "#FFFFFF" 3476 fill "#FFFFFF"
3239 fill2 "#FFFFFF" 3477 fill2 "#FFFFFF"
@@ -3241,7 +3479,7 @@ graph
3241 ] 3479 ]
3242 LabelGraphics 3480 LabelGraphics
3243 [ 3481 [
3244 text "true" 3482 text "Intermediate literal FunctionType"
3245 outline "#000000" 3483 outline "#000000"
3246 fill "#FFFFFF" 3484 fill "#FFFFFF"
3247 fontSize 16 3485 fontSize 16
@@ -3253,6 +3491,7 @@ graph
3253 LabelGraphics 3491 LabelGraphics
3254 [ 3492 [
3255 text " 3493 text "
3494 FunctionType enum
3256 " 3495 "
3257 fontSize 14 3496 fontSize 14
3258 fontName "Consolas" 3497 fontName "Consolas"
@@ -3267,8 +3506,8 @@ graph
3267 id 2 3506 id 2
3268 graphics 3507 graphics
3269 [ 3508 [
3270 w 50.6 3509 w 226.60000000000002
3271 h 26 3510 h 40
3272 type "rectangle" 3511 type "rectangle"
3273 fill "#FFFFFF" 3512 fill "#FFFFFF"
3274 fill2 "#FFFFFF" 3513 fill2 "#FFFFFF"
@@ -3276,7 +3515,7 @@ graph
3276 ] 3515 ]
3277 LabelGraphics 3516 LabelGraphics
3278 [ 3517 [
3279 text "false" 3518 text "Leaf literal FunctionType"
3280 outline "#000000" 3519 outline "#000000"
3281 fill "#FFFFFF" 3520 fill "#FFFFFF"
3282 fontSize 16 3521 fontSize 16
@@ -3288,6 +3527,7 @@ graph
3288 LabelGraphics 3527 LabelGraphics
3289 [ 3528 [
3290 text " 3529 text "
3530 FunctionType enum
3291 " 3531 "
3292 fontSize 14 3532 fontSize 14
3293 fontName "Consolas" 3533 fontName "Consolas"
@@ -3302,7 +3542,7 @@ graph
3302 id 3 3542 id 3
3303 graphics 3543 graphics
3304 [ 3544 [
3305 w 24.200000000000003 3545 w 41.800000000000004
3306 h 26 3546 h 26
3307 type "rectangle" 3547 type "rectangle"
3308 fill "#FFFFFF" 3548 fill "#FFFFFF"
@@ -3311,7 +3551,7 @@ graph
3311 ] 3551 ]
3312 LabelGraphics 3552 LabelGraphics
3313 [ 3553 [
3314 text "-1" 3554 text "true"
3315 outline "#000000" 3555 outline "#000000"
3316 fill "#FFFFFF" 3556 fill "#FFFFFF"
3317 fontSize 16 3557 fontSize 16
@@ -3337,7 +3577,7 @@ graph
3337 id 4 3577 id 4
3338 graphics 3578 graphics
3339 [ 3579 [
3340 w 15.400000000000002 3580 w 50.6
3341 h 26 3581 h 26
3342 type "rectangle" 3582 type "rectangle"
3343 fill "#FFFFFF" 3583 fill "#FFFFFF"
@@ -3346,7 +3586,7 @@ graph
3346 ] 3586 ]
3347 LabelGraphics 3587 LabelGraphics
3348 [ 3588 [
3349 text "0" 3589 text "false"
3350 outline "#000000" 3590 outline "#000000"
3351 fill "#FFFFFF" 3591 fill "#FFFFFF"
3352 fontSize 16 3592 fontSize 16
@@ -3372,8 +3612,8 @@ graph
3372 id 5 3612 id 5
3373 graphics 3613 graphics
3374 [ 3614 [
3375 w 15.400000000000002 3615 w 269.5
3376 h 26 3616 h 40
3377 type "rectangle" 3617 type "rectangle"
3378 fill "#FFFFFF" 3618 fill "#FFFFFF"
3379 fill2 "#FFFFFF" 3619 fill2 "#FFFFFF"
@@ -3381,7 +3621,7 @@ graph
3381 ] 3621 ]
3382 LabelGraphics 3622 LabelGraphics
3383 [ 3623 [
3384 text "1" 3624 text "null"
3385 outline "#000000" 3625 outline "#000000"
3386 fill "#FFFFFF" 3626 fill "#FFFFFF"
3387 fontSize 16 3627 fontSize 16
@@ -3393,6 +3633,7 @@ graph
3393 LabelGraphics 3633 LabelGraphics
3394 [ 3634 [
3395 text " 3635 text "
3636 FunctionalArchitectureModel class
3396 " 3637 "
3397 fontSize 14 3638 fontSize 14
3398 fontName "Consolas" 3639 fontName "Consolas"
@@ -3407,8 +3648,8 @@ graph
3407 id 6 3648 id 6
3408 graphics 3649 graphics
3409 [ 3650 [
3410 w 33.0 3651 w 192.50000000000003
3411 h 26 3652 h 54
3412 type "rectangle" 3653 type "rectangle"
3413 fill "#FFFFFF" 3654 fill "#FFFFFF"
3414 fill2 "#FFFFFF" 3655 fill2 "#FFFFFF"
@@ -3416,7 +3657,7 @@ graph
3416 ] 3657 ]
3417 LabelGraphics 3658 LabelGraphics
3418 [ 3659 [
3419 text ""A"" 3660 text "null"
3420 outline "#000000" 3661 outline "#000000"
3421 fill "#FFFFFF" 3662 fill "#FFFFFF"
3422 fontSize 16 3663 fontSize 16
@@ -3428,6 +3669,8 @@ graph
3428 LabelGraphics 3669 LabelGraphics
3429 [ 3670 [
3430 text " 3671 text "
3672 FunctionalElement class
3673 Function class
3431 " 3674 "
3432 fontSize 14 3675 fontSize 14
3433 fontName "Consolas" 3676 fontName "Consolas"
@@ -3442,8 +3685,8 @@ graph
3442 id 7 3685 id 7
3443 graphics 3686 graphics
3444 [ 3687 [
3445 w 33.0 3688 w 207.9
3446 h 26 3689 h 40
3447 type "rectangle" 3690 type "rectangle"
3448 fill "#FFFFFF" 3691 fill "#FFFFFF"
3449 fill2 "#FFFFFF" 3692 fill2 "#FFFFFF"
@@ -3451,7 +3694,7 @@ graph
3451 ] 3694 ]
3452 LabelGraphics 3695 LabelGraphics
3453 [ 3696 [
3454 text ""B"" 3697 text "null"
3455 outline "#000000" 3698 outline "#000000"
3456 fill "#FFFFFF" 3699 fill "#FFFFFF"
3457 fontSize 16 3700 fontSize 16
@@ -3463,6 +3706,7 @@ graph
3463 LabelGraphics 3706 LabelGraphics
3464 [ 3707 [
3465 text " 3708 text "
3709 FunctionalInterface class
3466 " 3710 "
3467 fontSize 14 3711 fontSize 14
3468 fontName "Consolas" 3712 fontName "Consolas"
@@ -3477,8 +3721,8 @@ graph
3477 id 8 3721 id 8
3478 graphics 3722 graphics
3479 [ 3723 [
3480 w 94.60000000000001 3724 w 184.8
3481 h 26 3725 h 54
3482 type "rectangle" 3726 type "rectangle"
3483 fill "#FFFFFF" 3727 fill "#FFFFFF"
3484 fill2 "#FFFFFF" 3728 fill2 "#FFFFFF"
@@ -3486,7 +3730,7 @@ graph
3486 ] 3730 ]
3487 LabelGraphics 3731 LabelGraphics
3488 [ 3732 [
3489 text ""nsPrefix"" 3733 text "null"
3490 outline "#000000" 3734 outline "#000000"
3491 fill "#FFFFFF" 3735 fill "#FFFFFF"
3492 fontSize 16 3736 fontSize 16
@@ -3498,6 +3742,8 @@ graph
3498 LabelGraphics 3742 LabelGraphics
3499 [ 3743 [
3500 text " 3744 text "
3745 FunctionalOutput class
3746 FunctionalData class
3501 " 3747 "
3502 fontSize 14 3748 fontSize 14
3503 fontName "Consolas" 3749 fontName "Consolas"
@@ -3512,8 +3758,8 @@ graph
3512 id 9 3758 id 9
3513 graphics 3759 graphics
3514 [ 3760 [
3515 w 68.2 3761 w 161.70000000000002
3516 h 26 3762 h 40
3517 type "rectangle" 3763 type "rectangle"
3518 fill "#FFFFFF" 3764 fill "#FFFFFF"
3519 fill2 "#FFFFFF" 3765 fill2 "#FFFFFF"
@@ -3521,7 +3767,7 @@ graph
3521 ] 3767 ]
3522 LabelGraphics 3768 LabelGraphics
3523 [ 3769 [
3524 text ""nsUri"" 3770 text "null"
3525 outline "#000000" 3771 outline "#000000"
3526 fill "#FFFFFF" 3772 fill "#FFFFFF"
3527 fontSize 16 3773 fontSize 16
@@ -3533,6 +3779,7 @@ graph
3533 LabelGraphics 3779 LabelGraphics
3534 [ 3780 [
3535 text " 3781 text "
3782 FAMTerminator class
3536 " 3783 "
3537 fontSize 14 3784 fontSize 14
3538 fontName "Consolas" 3785 fontName "Consolas"
@@ -3547,8 +3794,8 @@ graph
3547 id 10 3794 id 10
3548 graphics 3795 graphics
3549 [ 3796 [
3550 w 121.00000000000001 3797 w 184.8
3551 h 26 3798 h 54
3552 type "rectangle" 3799 type "rectangle"
3553 fill "#FFFFFF" 3800 fill "#FFFFFF"
3554 fill2 "#FFFFFF" 3801 fill2 "#FFFFFF"
@@ -3556,7 +3803,7 @@ graph
3556 ] 3803 ]
3557 LabelGraphics 3804 LabelGraphics
3558 [ 3805 [
3559 text ""packageName"" 3806 text "null"
3560 outline "#000000" 3807 outline "#000000"
3561 fill "#FFFFFF" 3808 fill "#FFFFFF"
3562 fontSize 16 3809 fontSize 16
@@ -3568,6 +3815,8 @@ graph
3568 LabelGraphics 3815 LabelGraphics
3569 [ 3816 [
3570 text " 3817 text "
3818 FunctionalOutput class
3819 FunctionalData class
3571 " 3820 "
3572 fontSize 14 3821 fontSize 14
3573 fontName "Consolas" 3822 fontName "Consolas"
@@ -3582,8 +3831,8 @@ graph
3582 id 11 3831 id 11
3583 graphics 3832 graphics
3584 [ 3833 [
3585 w 269.5 3834 w 161.70000000000002
3586 h 124 3835 h 40
3587 type "rectangle" 3836 type "rectangle"
3588 fill "#FFFFFF" 3837 fill "#FFFFFF"
3589 fill2 "#FFFFFF" 3838 fill2 "#FFFFFF"
@@ -3603,13 +3852,7 @@ graph
3603 LabelGraphics 3852 LabelGraphics
3604 [ 3853 [
3605 text " 3854 text "
3606 EClassifier class 3855 FAMTerminator class
3607 EDataType class
3608 EEnum class
3609 EModelElement class
3610 ENamedElement class
3611 EModelElement class UndefinedPart
3612 ENamedElement class UndefinedPart
3613 " 3856 "
3614 fontSize 14 3857 fontSize 14
3615 fontName "Consolas" 3858 fontName "Consolas"
@@ -3624,166 +3867,6 @@ graph
3624 id 12 3867 id 12
3625 graphics 3868 graphics
3626 [ 3869 [
3627 w 269.5
3628 h 124
3629 type "rectangle"
3630 fill "#FFFFFF"
3631 fill2 "#FFFFFF"
3632 outline "#000000"
3633 ]
3634 LabelGraphics
3635 [
3636 text "null"
3637 outline "#000000"
3638 fill "#FFFFFF"
3639 fontSize 16
3640 fontName "Monospace"
3641 autoSizePolicy "node_width"
3642 anchor "t"
3643 borderDistance 0.0
3644 ]
3645 LabelGraphics
3646 [
3647 text "
3648 EClassifier class
3649 EDataType class
3650 EEnum class
3651 EModelElement class
3652 ENamedElement class
3653 EModelElement class UndefinedPart
3654 ENamedElement class UndefinedPart
3655 "
3656 fontSize 14
3657 fontName "Consolas"
3658 alignment "left"
3659 anchor "tl"
3660 borderDistance 6
3661 ]
3662 ]
3663
3664 node
3665 [
3666 id 13
3667 graphics
3668 [
3669 w 269.5
3670 h 96
3671 type "rectangle"
3672 fill "#FFFFFF"
3673 fill2 "#FFFFFF"
3674 outline "#000000"
3675 ]
3676 LabelGraphics
3677 [
3678 text "null"
3679 outline "#000000"
3680 fill "#FFFFFF"
3681 fontSize 16
3682 fontName "Monospace"
3683 autoSizePolicy "node_width"
3684 anchor "t"
3685 borderDistance 0.0
3686 ]
3687 LabelGraphics
3688 [
3689 text "
3690 EEnumLiteral class
3691 EModelElement class
3692 ENamedElement class
3693 EModelElement class UndefinedPart
3694 ENamedElement class UndefinedPart
3695 "
3696 fontSize 14
3697 fontName "Consolas"
3698 alignment "left"
3699 anchor "tl"
3700 borderDistance 6
3701 ]
3702 ]
3703
3704 node
3705 [
3706 id 14
3707 graphics
3708 [
3709 w 269.5
3710 h 68
3711 type "rectangle"
3712 fill "#FFFFFF"
3713 fill2 "#FFFFFF"
3714 outline "#000000"
3715 ]
3716 LabelGraphics
3717 [
3718 text "null"
3719 outline "#000000"
3720 fill "#FFFFFF"
3721 fontSize 16
3722 fontName "Monospace"
3723 autoSizePolicy "node_width"
3724 anchor "t"
3725 borderDistance 0.0
3726 ]
3727 LabelGraphics
3728 [
3729 text "
3730 EAnnotation class
3731 EModelElement class
3732 EModelElement class UndefinedPart
3733 "
3734 fontSize 14
3735 fontName "Consolas"
3736 alignment "left"
3737 anchor "tl"
3738 borderDistance 6
3739 ]
3740 ]
3741
3742 node
3743 [
3744 id 15
3745 graphics
3746 [
3747 w 269.5
3748 h 96
3749 type "rectangle"
3750 fill "#FFFFFF"
3751 fill2 "#FFFFFF"
3752 outline "#000000"
3753 ]
3754 LabelGraphics
3755 [
3756 text "null"
3757 outline "#000000"
3758 fill "#FFFFFF"
3759 fontSize 16
3760 fontName "Monospace"
3761 autoSizePolicy "node_width"
3762 anchor "t"
3763 borderDistance 0.0
3764 ]
3765 LabelGraphics
3766 [
3767 text "
3768 EModelElement class
3769 ENamedElement class
3770 ETypeParameter class
3771 EModelElement class UndefinedPart
3772 ENamedElement class UndefinedPart
3773 "
3774 fontSize 14
3775 fontName "Consolas"
3776 alignment "left"
3777 anchor "tl"
3778 borderDistance 6
3779 ]
3780 ]
3781
3782 node
3783 [
3784 id 16
3785 graphics
3786 [
3787 w 112.2 3870 w 112.2
3788 h 26 3871 h 26
3789 type "rectangle" 3872 type "rectangle"
@@ -3816,7 +3899,7 @@ graph
3816 3899
3817 node 3900 node
3818 [ 3901 [
3819 id 17 3902 id 13
3820 graphics 3903 graphics
3821 [ 3904 [
3822 w 85.80000000000001 3905 w 85.80000000000001
@@ -3851,7 +3934,7 @@ graph
3851 3934
3852 node 3935 node
3853 [ 3936 [
3854 id 18 3937 id 14
3855 graphics 3938 graphics
3856 [ 3939 [
3857 w 103.4 3940 w 103.4
@@ -3886,7 +3969,7 @@ graph
3886 3969
3887 node 3970 node
3888 [ 3971 [
3889 id 19 3972 id 15
3890 graphics 3973 graphics
3891 [ 3974 [
3892 w 103.4 3975 w 103.4
@@ -3920,124 +4003,8 @@ graph
3920 ] 4003 ]
3921 edge 4004 edge
3922 [ 4005 [
3923 source 14 4006 source 6
3924 target 0 4007 target 7
3925 graphics
3926 [
3927 fill "#000000"
3928 targetArrow "standard"
3929 ]
3930 LabelGraphics
3931 [
3932 text "eModelElement reference EAnnotation"
3933 fontSize 14
3934 fontName "Consolas"
3935 configuration "AutoFlippingLabel"
3936 model "six_pos"
3937 position "thead"
3938 ]
3939 ]
3940 edge
3941 [
3942 source 11
3943 target 0
3944 graphics
3945 [
3946 fill "#000000"
3947 targetArrow "standard"
3948 ]
3949 LabelGraphics
3950 [
3951 text "ePackage reference EClassifier"
3952 fontSize 14
3953 fontName "Consolas"
3954 configuration "AutoFlippingLabel"
3955 model "six_pos"
3956 position "thead"
3957 ]
3958 ]
3959 edge
3960 [
3961 source 12
3962 target 0
3963 graphics
3964 [
3965 fill "#000000"
3966 targetArrow "standard"
3967 ]
3968 LabelGraphics
3969 [
3970 text "ePackage reference EClassifier"
3971 fontSize 14
3972 fontName "Consolas"
3973 configuration "AutoFlippingLabel"
3974 model "six_pos"
3975 position "thead"
3976 ]
3977 ]
3978 edge
3979 [
3980 source 12
3981 target 15
3982 graphics
3983 [
3984 fill "#000000"
3985 width 3
3986 targetArrow "standard"
3987 ]
3988 LabelGraphics
3989 [
3990 text "eTypeParameters reference EClassifier"
3991 fontSize 14
3992 fontName "Consolas"
3993 configuration "AutoFlippingLabel"
3994 model "six_pos"
3995 position "thead"
3996 ]
3997 ]
3998 edge
3999 [
4000 source 11
4001 target 13
4002 graphics
4003 [
4004 fill "#000000"
4005 width 3
4006 targetArrow "standard"
4007 ]
4008 LabelGraphics
4009 [
4010 text "eLiterals reference EEnum"
4011 fontSize 14
4012 fontName "Consolas"
4013 configuration "AutoFlippingLabel"
4014 model "six_pos"
4015 position "thead"
4016 ]
4017 ]
4018 edge
4019 [
4020 source 13
4021 target 11
4022 graphics
4023 [
4024 fill "#000000"
4025 targetArrow "standard"
4026 ]
4027 LabelGraphics
4028 [
4029 text "eEnum reference EEnumLiteral"
4030 fontSize 14
4031 fontName "Consolas"
4032 configuration "AutoFlippingLabel"
4033 model "six_pos"
4034 position "thead"
4035 ]
4036 ]
4037 edge
4038 [
4039 source 0
4040 target 14
4041 graphics 4008 graphics
4042 [ 4009 [
4043 fill "#000000" 4010 fill "#000000"
@@ -4046,7 +4013,7 @@ graph
4046 ] 4013 ]
4047 LabelGraphics 4014 LabelGraphics
4048 [ 4015 [
4049 text "eAnnotations reference EModelElement" 4016 text "interface reference FunctionalElement"
4050 fontSize 14 4017 fontSize 14
4051 fontName "Consolas" 4018 fontName "Consolas"
4052 configuration "AutoFlippingLabel" 4019 configuration "AutoFlippingLabel"
@@ -4056,17 +4023,16 @@ graph
4056 ] 4023 ]
4057 edge 4024 edge
4058 [ 4025 [
4059 source 0 4026 source 6
4060 target 11 4027 target 5
4061 graphics 4028 graphics
4062 [ 4029 [
4063 fill "#000000" 4030 fill "#000000"
4064 width 3
4065 targetArrow "standard" 4031 targetArrow "standard"
4066 ] 4032 ]
4067 LabelGraphics 4033 LabelGraphics
4068 [ 4034 [
4069 text "eClassifiers reference EPackage" 4035 text "model reference FunctionalElement"
4070 fontSize 14 4036 fontSize 14
4071 fontName "Consolas" 4037 fontName "Consolas"
4072 configuration "AutoFlippingLabel" 4038 configuration "AutoFlippingLabel"
@@ -4076,8 +4042,8 @@ graph
4076 ] 4042 ]
4077 edge 4043 edge
4078 [ 4044 [
4079 source 0 4045 source 5
4080 target 12 4046 target 6
4081 graphics 4047 graphics
4082 [ 4048 [
4083 fill "#000000" 4049 fill "#000000"
@@ -4086,26 +4052,7 @@ graph
4086 ] 4052 ]
4087 LabelGraphics 4053 LabelGraphics
4088 [ 4054 [
4089 text "eClassifiers reference EPackage" 4055 text "rootElements reference FunctionalArchitectureModel"
4090 fontSize 14
4091 fontName "Consolas"
4092 configuration "AutoFlippingLabel"
4093 model "six_pos"
4094 position "thead"
4095 ]
4096 ]
4097 edge
4098 [
4099 source 14
4100 target 10
4101 graphics
4102 [
4103 fill "#000000"
4104 targetArrow "standard"
4105 ]
4106 LabelGraphics
4107 [
4108 text "source attribute EAnnotation"
4109 fontSize 14 4056 fontSize 14
4110 fontName "Consolas" 4057 fontName "Consolas"
4111 configuration "AutoFlippingLabel" 4058 configuration "AutoFlippingLabel"
@@ -4115,7 +4062,7 @@ graph
4115 ] 4062 ]
4116 edge 4063 edge
4117 [ 4064 [
4118 source 11 4065 source 9
4119 target 8 4066 target 8
4120 graphics 4067 graphics
4121 [ 4068 [
@@ -4124,26 +4071,7 @@ graph
4124 ] 4071 ]
4125 LabelGraphics 4072 LabelGraphics
4126 [ 4073 [
4127 text "instanceClassName attribute EClassifier" 4074 text "data reference FAMTerminator"
4128 fontSize 14
4129 fontName "Consolas"
4130 configuration "AutoFlippingLabel"
4131 model "six_pos"
4132 position "thead"
4133 ]
4134 ]
4135 edge
4136 [
4137 source 12
4138 target 9
4139 graphics
4140 [
4141 fill "#000000"
4142 targetArrow "standard"
4143 ]
4144 LabelGraphics
4145 [
4146 text "instanceClassName attribute EClassifier"
4147 fontSize 14 4075 fontSize 14
4148 fontName "Consolas" 4076 fontName "Consolas"
4149 configuration "AutoFlippingLabel" 4077 configuration "AutoFlippingLabel"
@@ -4154,7 +4082,7 @@ graph
4154 edge 4082 edge
4155 [ 4083 [
4156 source 11 4084 source 11
4157 target 9 4085 target 10
4158 graphics 4086 graphics
4159 [ 4087 [
4160 fill "#000000" 4088 fill "#000000"
@@ -4162,7 +4090,7 @@ graph
4162 ] 4090 ]
4163 LabelGraphics 4091 LabelGraphics
4164 [ 4092 [
4165 text "instanceTypeName attribute EClassifier" 4093 text "data reference FAMTerminator"
4166 fontSize 14 4094 fontSize 14
4167 fontName "Consolas" 4095 fontName "Consolas"
4168 configuration "AutoFlippingLabel" 4096 configuration "AutoFlippingLabel"
@@ -4172,16 +4100,17 @@ graph
4172 ] 4100 ]
4173 edge 4101 edge
4174 [ 4102 [
4175 source 12 4103 source 7
4176 target 9 4104 target 8
4177 graphics 4105 graphics
4178 [ 4106 [
4179 fill "#000000" 4107 fill "#000000"
4108 width 3
4180 targetArrow "standard" 4109 targetArrow "standard"
4181 ] 4110 ]
4182 LabelGraphics 4111 LabelGraphics
4183 [ 4112 [
4184 text "instanceTypeName attribute EClassifier" 4113 text "data reference FunctionalInterface"
4185 fontSize 14 4114 fontSize 14
4186 fontName "Consolas" 4115 fontName "Consolas"
4187 configuration "AutoFlippingLabel" 4116 configuration "AutoFlippingLabel"
@@ -4191,16 +4120,17 @@ graph
4191 ] 4120 ]
4192 edge 4121 edge
4193 [ 4122 [
4194 source 11 4123 source 7
4195 target 2 4124 target 10
4196 graphics 4125 graphics
4197 [ 4126 [
4198 fill "#000000" 4127 fill "#000000"
4128 width 3
4199 targetArrow "standard" 4129 targetArrow "standard"
4200 ] 4130 ]
4201 LabelGraphics 4131 LabelGraphics
4202 [ 4132 [
4203 text "serializable attribute EDataType" 4133 text "data reference FunctionalInterface"
4204 fontSize 14 4134 fontSize 14
4205 fontName "Consolas" 4135 fontName "Consolas"
4206 configuration "AutoFlippingLabel" 4136 configuration "AutoFlippingLabel"
@@ -4210,8 +4140,8 @@ graph
4210 ] 4140 ]
4211 edge 4141 edge
4212 [ 4142 [
4213 source 12 4143 source 7
4214 target 2 4144 target 6
4215 graphics 4145 graphics
4216 [ 4146 [
4217 fill "#000000" 4147 fill "#000000"
@@ -4219,7 +4149,7 @@ graph
4219 ] 4149 ]
4220 LabelGraphics 4150 LabelGraphics
4221 [ 4151 [
4222 text "serializable attribute EDataType" 4152 text "element reference FunctionalInterface"
4223 fontSize 14 4153 fontSize 14
4224 fontName "Consolas" 4154 fontName "Consolas"
4225 configuration "AutoFlippingLabel" 4155 configuration "AutoFlippingLabel"
@@ -4229,16 +4159,17 @@ graph
4229 ] 4159 ]
4230 edge 4160 edge
4231 [ 4161 [
4232 source 13 4162 source 8
4233 target 9 4163 target 9
4234 graphics 4164 graphics
4235 [ 4165 [
4236 fill "#000000" 4166 fill "#000000"
4167 width 3
4237 targetArrow "standard" 4168 targetArrow "standard"
4238 ] 4169 ]
4239 LabelGraphics 4170 LabelGraphics
4240 [ 4171 [
4241 text "literal attribute EEnumLiteral" 4172 text "terminator reference FunctionalData"
4242 fontSize 14 4173 fontSize 14
4243 fontName "Consolas" 4174 fontName "Consolas"
4244 configuration "AutoFlippingLabel" 4175 configuration "AutoFlippingLabel"
@@ -4248,16 +4179,17 @@ graph
4248 ] 4179 ]
4249 edge 4180 edge
4250 [ 4181 [
4251 source 0 4182 source 10
4252 target 10 4183 target 11
4253 graphics 4184 graphics
4254 [ 4185 [
4255 fill "#000000" 4186 fill "#000000"
4187 width 3
4256 targetArrow "standard" 4188 targetArrow "standard"
4257 ] 4189 ]
4258 LabelGraphics 4190 LabelGraphics
4259 [ 4191 [
4260 text "name attribute ENamedElement" 4192 text "terminator reference FunctionalData"
4261 fontSize 14 4193 fontSize 14
4262 fontName "Consolas" 4194 fontName "Consolas"
4263 configuration "AutoFlippingLabel" 4195 configuration "AutoFlippingLabel"
@@ -4267,8 +4199,8 @@ graph
4267 ] 4199 ]
4268 edge 4200 edge
4269 [ 4201 [
4270 source 12 4202 source 8
4271 target 10 4203 target 7
4272 graphics 4204 graphics
4273 [ 4205 [
4274 fill "#000000" 4206 fill "#000000"
@@ -4276,7 +4208,7 @@ graph
4276 ] 4208 ]
4277 LabelGraphics 4209 LabelGraphics
4278 [ 4210 [
4279 text "name attribute ENamedElement" 4211 text "interface reference FunctionalData"
4280 fontSize 14 4212 fontSize 14
4281 fontName "Consolas" 4213 fontName "Consolas"
4282 configuration "AutoFlippingLabel" 4214 configuration "AutoFlippingLabel"
@@ -4286,8 +4218,8 @@ graph
4286 ] 4218 ]
4287 edge 4219 edge
4288 [ 4220 [
4289 source 0 4221 source 10
4290 target 9 4222 target 7
4291 graphics 4223 graphics
4292 [ 4224 [
4293 fill "#000000" 4225 fill "#000000"
@@ -4295,7 +4227,7 @@ graph
4295 ] 4227 ]
4296 LabelGraphics 4228 LabelGraphics
4297 [ 4229 [
4298 text "nsURI attribute EPackage" 4230 text "interface reference FunctionalData"
4299 fontSize 14 4231 fontSize 14
4300 fontName "Consolas" 4232 fontName "Consolas"
4301 configuration "AutoFlippingLabel" 4233 configuration "AutoFlippingLabel"
@@ -4305,8 +4237,8 @@ graph
4305 ] 4237 ]
4306 edge 4238 edge
4307 [ 4239 [
4308 source 0 4240 source 6
4309 target 8 4241 target 2
4310 graphics 4242 graphics
4311 [ 4243 [
4312 fill "#000000" 4244 fill "#000000"
@@ -4314,7 +4246,7 @@ graph
4314 ] 4246 ]
4315 LabelGraphics 4247 LabelGraphics
4316 [ 4248 [
4317 text "nsPrefix attribute EPackage" 4249 text "type attribute Function"
4318 fontSize 14 4250 fontSize 14
4319 fontName "Consolas" 4251 fontName "Consolas"
4320 configuration "AutoFlippingLabel" 4252 configuration "AutoFlippingLabel"
@@ -4330,8 +4262,8 @@ graph
4330 id 0 4262 id 0
4331 graphics 4263 graphics
4332 [ 4264 [
4333 w 254.10000000000002 4265 w 226.60000000000002
4334 h 110 4266 h 40
4335 type "rectangle" 4267 type "rectangle"
4336 fill "#FFFFFF" 4268 fill "#FFFFFF"
4337 fill2 "#FFFFFF" 4269 fill2 "#FFFFFF"
@@ -4339,7 +4271,7 @@ graph
4339 ] 4271 ]
4340 LabelGraphics 4272 LabelGraphics
4341 [ 4273 [
4342 text "o 1" 4274 text "Root literal FunctionType"
4343 outline "#000000" 4275 outline "#000000"
4344 fill "#FFFFFF" 4276 fill "#FFFFFF"
4345 fontSize 16 4277 fontSize 16
@@ -4351,12 +4283,7 @@ graph
4351 LabelGraphics 4283 LabelGraphics
4352 [ 4284 [
4353 text " 4285 text "
4354 EModelElement class DefinedPart 4286 FunctionType enum
4355 ENamedElement class DefinedPart
4356 EPackage class DefinedPart
4357 EModelElement class
4358 ENamedElement class
4359 EPackage class
4360 " 4287 "
4361 fontSize 14 4288 fontSize 14
4362 fontName "Consolas" 4289 fontName "Consolas"
@@ -4371,8 +4298,8 @@ graph
4371 id 1 4298 id 1
4372 graphics 4299 graphics
4373 [ 4300 [
4374 w 41.800000000000004 4301 w 297.0
4375 h 26 4302 h 40
4376 type "rectangle" 4303 type "rectangle"
4377 fill "#FFFFFF" 4304 fill "#FFFFFF"
4378 fill2 "#FFFFFF" 4305 fill2 "#FFFFFF"
@@ -4380,7 +4307,7 @@ graph
4380 ] 4307 ]
4381 LabelGraphics 4308 LabelGraphics
4382 [ 4309 [
4383 text "true" 4310 text "Intermediate literal FunctionType"
4384 outline "#000000" 4311 outline "#000000"
4385 fill "#FFFFFF" 4312 fill "#FFFFFF"
4386 fontSize 16 4313 fontSize 16
@@ -4392,6 +4319,7 @@ graph
4392 LabelGraphics 4319 LabelGraphics
4393 [ 4320 [
4394 text " 4321 text "
4322 FunctionType enum
4395 " 4323 "
4396 fontSize 14 4324 fontSize 14
4397 fontName "Consolas" 4325 fontName "Consolas"
@@ -4406,8 +4334,8 @@ graph
4406 id 2 4334 id 2
4407 graphics 4335 graphics
4408 [ 4336 [
4409 w 50.6 4337 w 226.60000000000002
4410 h 26 4338 h 40
4411 type "rectangle" 4339 type "rectangle"
4412 fill "#FFFFFF" 4340 fill "#FFFFFF"
4413 fill2 "#FFFFFF" 4341 fill2 "#FFFFFF"
@@ -4415,7 +4343,7 @@ graph
4415 ] 4343 ]
4416 LabelGraphics 4344 LabelGraphics
4417 [ 4345 [
4418 text "false" 4346 text "Leaf literal FunctionType"
4419 outline "#000000" 4347 outline "#000000"
4420 fill "#FFFFFF" 4348 fill "#FFFFFF"
4421 fontSize 16 4349 fontSize 16
@@ -4427,6 +4355,7 @@ graph
4427 LabelGraphics 4355 LabelGraphics
4428 [ 4356 [
4429 text " 4357 text "
4358 FunctionType enum
4430 " 4359 "
4431 fontSize 14 4360 fontSize 14
4432 fontName "Consolas" 4361 fontName "Consolas"
@@ -4441,7 +4370,7 @@ graph
4441 id 3 4370 id 3
4442 graphics 4371 graphics
4443 [ 4372 [
4444 w 24.200000000000003 4373 w 41.800000000000004
4445 h 26 4374 h 26
4446 type "rectangle" 4375 type "rectangle"
4447 fill "#FFFFFF" 4376 fill "#FFFFFF"
@@ -4450,7 +4379,7 @@ graph
4450 ] 4379 ]
4451 LabelGraphics 4380 LabelGraphics
4452 [ 4381 [
4453 text "-1" 4382 text "true"
4454 outline "#000000" 4383 outline "#000000"
4455 fill "#FFFFFF" 4384 fill "#FFFFFF"
4456 fontSize 16 4385 fontSize 16
@@ -4476,7 +4405,7 @@ graph
4476 id 4 4405 id 4
4477 graphics 4406 graphics
4478 [ 4407 [
4479 w 15.400000000000002 4408 w 50.6
4480 h 26 4409 h 26
4481 type "rectangle" 4410 type "rectangle"
4482 fill "#FFFFFF" 4411 fill "#FFFFFF"
@@ -4485,7 +4414,7 @@ graph
4485 ] 4414 ]
4486 LabelGraphics 4415 LabelGraphics
4487 [ 4416 [
4488 text "0" 4417 text "false"
4489 outline "#000000" 4418 outline "#000000"
4490 fill "#FFFFFF" 4419 fill "#FFFFFF"
4491 fontSize 16 4420 fontSize 16
@@ -4511,8 +4440,8 @@ graph
4511 id 5 4440 id 5
4512 graphics 4441 graphics
4513 [ 4442 [
4514 w 15.400000000000002 4443 w 269.5
4515 h 26 4444 h 40
4516 type "rectangle" 4445 type "rectangle"
4517 fill "#FFFFFF" 4446 fill "#FFFFFF"
4518 fill2 "#FFFFFF" 4447 fill2 "#FFFFFF"
@@ -4520,7 +4449,7 @@ graph
4520 ] 4449 ]
4521 LabelGraphics 4450 LabelGraphics
4522 [ 4451 [
4523 text "1" 4452 text "null"
4524 outline "#000000" 4453 outline "#000000"
4525 fill "#FFFFFF" 4454 fill "#FFFFFF"
4526 fontSize 16 4455 fontSize 16
@@ -4532,6 +4461,7 @@ graph
4532 LabelGraphics 4461 LabelGraphics
4533 [ 4462 [
4534 text " 4463 text "
4464 FunctionalArchitectureModel class
4535 " 4465 "
4536 fontSize 14 4466 fontSize 14
4537 fontName "Consolas" 4467 fontName "Consolas"
@@ -4546,8 +4476,8 @@ graph
4546 id 6 4476 id 6
4547 graphics 4477 graphics
4548 [ 4478 [
4549 w 33.0 4479 w 192.50000000000003
4550 h 26 4480 h 54
4551 type "rectangle" 4481 type "rectangle"
4552 fill "#FFFFFF" 4482 fill "#FFFFFF"
4553 fill2 "#FFFFFF" 4483 fill2 "#FFFFFF"
@@ -4555,7 +4485,7 @@ graph
4555 ] 4485 ]
4556 LabelGraphics 4486 LabelGraphics
4557 [ 4487 [
4558 text ""A"" 4488 text "null"
4559 outline "#000000" 4489 outline "#000000"
4560 fill "#FFFFFF" 4490 fill "#FFFFFF"
4561 fontSize 16 4491 fontSize 16
@@ -4567,6 +4497,8 @@ graph
4567 LabelGraphics 4497 LabelGraphics
4568 [ 4498 [
4569 text " 4499 text "
4500 FunctionalElement class
4501 Function class
4570 " 4502 "
4571 fontSize 14 4503 fontSize 14
4572 fontName "Consolas" 4504 fontName "Consolas"
@@ -4581,8 +4513,8 @@ graph
4581 id 7 4513 id 7
4582 graphics 4514 graphics
4583 [ 4515 [
4584 w 33.0 4516 w 207.9
4585 h 26 4517 h 40
4586 type "rectangle" 4518 type "rectangle"
4587 fill "#FFFFFF" 4519 fill "#FFFFFF"
4588 fill2 "#FFFFFF" 4520 fill2 "#FFFFFF"
@@ -4590,7 +4522,7 @@ graph
4590 ] 4522 ]
4591 LabelGraphics 4523 LabelGraphics
4592 [ 4524 [
4593 text ""B"" 4525 text "null"
4594 outline "#000000" 4526 outline "#000000"
4595 fill "#FFFFFF" 4527 fill "#FFFFFF"
4596 fontSize 16 4528 fontSize 16
@@ -4602,6 +4534,7 @@ graph
4602 LabelGraphics 4534 LabelGraphics
4603 [ 4535 [
4604 text " 4536 text "
4537 FunctionalInterface class
4605 " 4538 "
4606 fontSize 14 4539 fontSize 14
4607 fontName "Consolas" 4540 fontName "Consolas"
@@ -4616,8 +4549,8 @@ graph
4616 id 8 4549 id 8
4617 graphics 4550 graphics
4618 [ 4551 [
4619 w 94.60000000000001 4552 w 177.10000000000002
4620 h 26 4553 h 54
4621 type "rectangle" 4554 type "rectangle"
4622 fill "#FFFFFF" 4555 fill "#FFFFFF"
4623 fill2 "#FFFFFF" 4556 fill2 "#FFFFFF"
@@ -4625,7 +4558,7 @@ graph
4625 ] 4558 ]
4626 LabelGraphics 4559 LabelGraphics
4627 [ 4560 [
4628 text ""nsPrefix"" 4561 text "null"
4629 outline "#000000" 4562 outline "#000000"
4630 fill "#FFFFFF" 4563 fill "#FFFFFF"
4631 fontSize 16 4564 fontSize 16
@@ -4637,6 +4570,8 @@ graph
4637 LabelGraphics 4570 LabelGraphics
4638 [ 4571 [
4639 text " 4572 text "
4573 FunctionalInput class
4574 FunctionalData class
4640 " 4575 "
4641 fontSize 14 4576 fontSize 14
4642 fontName "Consolas" 4577 fontName "Consolas"
@@ -4651,8 +4586,8 @@ graph
4651 id 9 4586 id 9
4652 graphics 4587 graphics
4653 [ 4588 [
4654 w 68.2 4589 w 161.70000000000002
4655 h 26 4590 h 40
4656 type "rectangle" 4591 type "rectangle"
4657 fill "#FFFFFF" 4592 fill "#FFFFFF"
4658 fill2 "#FFFFFF" 4593 fill2 "#FFFFFF"
@@ -4660,7 +4595,7 @@ graph
4660 ] 4595 ]
4661 LabelGraphics 4596 LabelGraphics
4662 [ 4597 [
4663 text ""nsUri"" 4598 text "null"
4664 outline "#000000" 4599 outline "#000000"
4665 fill "#FFFFFF" 4600 fill "#FFFFFF"
4666 fontSize 16 4601 fontSize 16
@@ -4672,6 +4607,7 @@ graph
4672 LabelGraphics 4607 LabelGraphics
4673 [ 4608 [
4674 text " 4609 text "
4610 FAMTerminator class
4675 " 4611 "
4676 fontSize 14 4612 fontSize 14
4677 fontName "Consolas" 4613 fontName "Consolas"
@@ -4686,8 +4622,8 @@ graph
4686 id 10 4622 id 10
4687 graphics 4623 graphics
4688 [ 4624 [
4689 w 121.00000000000001 4625 w 184.8
4690 h 26 4626 h 54
4691 type "rectangle" 4627 type "rectangle"
4692 fill "#FFFFFF" 4628 fill "#FFFFFF"
4693 fill2 "#FFFFFF" 4629 fill2 "#FFFFFF"
@@ -4695,7 +4631,7 @@ graph
4695 ] 4631 ]
4696 LabelGraphics 4632 LabelGraphics
4697 [ 4633 [
4698 text ""packageName"" 4634 text "null"
4699 outline "#000000" 4635 outline "#000000"
4700 fill "#FFFFFF" 4636 fill "#FFFFFF"
4701 fontSize 16 4637 fontSize 16
@@ -4707,6 +4643,8 @@ graph
4707 LabelGraphics 4643 LabelGraphics
4708 [ 4644 [
4709 text " 4645 text "
4646 FunctionalOutput class
4647 FunctionalData class
4710 " 4648 "
4711 fontSize 14 4649 fontSize 14
4712 fontName "Consolas" 4650 fontName "Consolas"
@@ -4721,8 +4659,8 @@ graph
4721 id 11 4659 id 11
4722 graphics 4660 graphics
4723 [ 4661 [
4724 w 269.5 4662 w 177.10000000000002
4725 h 110 4663 h 54
4726 type "rectangle" 4664 type "rectangle"
4727 fill "#FFFFFF" 4665 fill "#FFFFFF"
4728 fill2 "#FFFFFF" 4666 fill2 "#FFFFFF"
@@ -4742,12 +4680,8 @@ graph
4742 LabelGraphics 4680 LabelGraphics
4743 [ 4681 [
4744 text " 4682 text "
4745 EClassifier class 4683 FunctionalInput class
4746 EDataType class 4684 FunctionalData class
4747 EModelElement class
4748 ENamedElement class
4749 EModelElement class UndefinedPart
4750 ENamedElement class UndefinedPart
4751 " 4685 "
4752 fontSize 14 4686 fontSize 14
4753 fontName "Consolas" 4687 fontName "Consolas"
@@ -4762,167 +4696,6 @@ graph
4762 id 12 4696 id 12
4763 graphics 4697 graphics
4764 [ 4698 [
4765 w 269.5
4766 h 110
4767 type "rectangle"
4768 fill "#FFFFFF"
4769 fill2 "#FFFFFF"
4770 outline "#000000"
4771 ]
4772 LabelGraphics
4773 [
4774 text "null"
4775 outline "#000000"
4776 fill "#FFFFFF"
4777 fontSize 16
4778 fontName "Monospace"
4779 autoSizePolicy "node_width"
4780 anchor "t"
4781 borderDistance 0.0
4782 ]
4783 LabelGraphics
4784 [
4785 text "
4786 EModelElement class
4787 ENamedElement class
4788 EPackage class
4789 EModelElement class UndefinedPart
4790 ENamedElement class UndefinedPart
4791 EPackage class UndefinedPart
4792 "
4793 fontSize 14
4794 fontName "Consolas"
4795 alignment "left"
4796 anchor "tl"
4797 borderDistance 6
4798 ]
4799 ]
4800
4801 node
4802 [
4803 id 13
4804 graphics
4805 [
4806 w 269.5
4807 h 124
4808 type "rectangle"
4809 fill "#FFFFFF"
4810 fill2 "#FFFFFF"
4811 outline "#000000"
4812 ]
4813 LabelGraphics
4814 [
4815 text "null"
4816 outline "#000000"
4817 fill "#FFFFFF"
4818 fontSize 16
4819 fontName "Monospace"
4820 autoSizePolicy "node_width"
4821 anchor "t"
4822 borderDistance 0.0
4823 ]
4824 LabelGraphics
4825 [
4826 text "
4827 EClassifier class
4828 EDataType class
4829 EEnum class
4830 EModelElement class
4831 ENamedElement class
4832 EModelElement class UndefinedPart
4833 ENamedElement class UndefinedPart
4834 "
4835 fontSize 14
4836 fontName "Consolas"
4837 alignment "left"
4838 anchor "tl"
4839 borderDistance 6
4840 ]
4841 ]
4842
4843 node
4844 [
4845 id 14
4846 graphics
4847 [
4848 w 269.5
4849 h 96
4850 type "rectangle"
4851 fill "#FFFFFF"
4852 fill2 "#FFFFFF"
4853 outline "#000000"
4854 ]
4855 LabelGraphics
4856 [
4857 text "null"
4858 outline "#000000"
4859 fill "#FFFFFF"
4860 fontSize 16
4861 fontName "Monospace"
4862 autoSizePolicy "node_width"
4863 anchor "t"
4864 borderDistance 0.0
4865 ]
4866 LabelGraphics
4867 [
4868 text "
4869 EModelElement class
4870 ENamedElement class
4871 ETypeParameter class
4872 EModelElement class UndefinedPart
4873 ENamedElement class UndefinedPart
4874 "
4875 fontSize 14
4876 fontName "Consolas"
4877 alignment "left"
4878 anchor "tl"
4879 borderDistance 6
4880 ]
4881 ]
4882
4883 node
4884 [
4885 id 15
4886 graphics
4887 [
4888 w 269.5
4889 h 68
4890 type "rectangle"
4891 fill "#FFFFFF"
4892 fill2 "#FFFFFF"
4893 outline "#000000"
4894 ]
4895 LabelGraphics
4896 [
4897 text "null"
4898 outline "#000000"
4899 fill "#FFFFFF"
4900 fontSize 16
4901 fontName "Monospace"
4902 autoSizePolicy "node_width"
4903 anchor "t"
4904 borderDistance 0.0
4905 ]
4906 LabelGraphics
4907 [
4908 text "
4909 EAnnotation class
4910 EModelElement class
4911 EModelElement class UndefinedPart
4912 "
4913 fontSize 14
4914 fontName "Consolas"
4915 alignment "left"
4916 anchor "tl"
4917 borderDistance 6
4918 ]
4919 ]
4920
4921 node
4922 [
4923 id 16
4924 graphics
4925 [
4926 w 112.2 4699 w 112.2
4927 h 26 4700 h 26
4928 type "rectangle" 4701 type "rectangle"
@@ -4955,7 +4728,7 @@ graph
4955 4728
4956 node 4729 node
4957 [ 4730 [
4958 id 17 4731 id 13
4959 graphics 4732 graphics
4960 [ 4733 [
4961 w 85.80000000000001 4734 w 85.80000000000001
@@ -4990,7 +4763,7 @@ graph
4990 4763
4991 node 4764 node
4992 [ 4765 [
4993 id 18 4766 id 14
4994 graphics 4767 graphics
4995 [ 4768 [
4996 w 103.4 4769 w 103.4
@@ -5025,7 +4798,7 @@ graph
5025 4798
5026 node 4799 node
5027 [ 4800 [
5028 id 19 4801 id 15
5029 graphics 4802 graphics
5030 [ 4803 [
5031 w 103.4 4804 w 103.4
@@ -5059,35 +4832,17 @@ graph
5059 ] 4832 ]
5060 edge 4833 edge
5061 [ 4834 [
5062 source 15 4835 source 6
5063 target 0 4836 target 7
5064 graphics
5065 [
5066 fill "#000000"
5067 targetArrow "standard"
5068 ]
5069 LabelGraphics
5070 [
5071 text "eModelElement reference EAnnotation"
5072 fontSize 14
5073 fontName "Consolas"
5074 configuration "AutoFlippingLabel"
5075 model "six_pos"
5076 position "thead"
5077 ]
5078 ]
5079 edge
5080 [
5081 source 11
5082 target 0
5083 graphics 4837 graphics
5084 [ 4838 [
5085 fill "#000000" 4839 fill "#000000"
4840 width 3
5086 targetArrow "standard" 4841 targetArrow "standard"
5087 ] 4842 ]
5088 LabelGraphics 4843 LabelGraphics
5089 [ 4844 [
5090 text "ePackage reference EClassifier" 4845 text "interface reference FunctionalElement"
5091 fontSize 14 4846 fontSize 14
5092 fontName "Consolas" 4847 fontName "Consolas"
5093 configuration "AutoFlippingLabel" 4848 configuration "AutoFlippingLabel"
@@ -5097,8 +4852,8 @@ graph
5097 ] 4852 ]
5098 edge 4853 edge
5099 [ 4854 [
5100 source 13 4855 source 6
5101 target 0 4856 target 5
5102 graphics 4857 graphics
5103 [ 4858 [
5104 fill "#000000" 4859 fill "#000000"
@@ -5106,7 +4861,7 @@ graph
5106 ] 4861 ]
5107 LabelGraphics 4862 LabelGraphics
5108 [ 4863 [
5109 text "ePackage reference EClassifier" 4864 text "model reference FunctionalElement"
5110 fontSize 14 4865 fontSize 14
5111 fontName "Consolas" 4866 fontName "Consolas"
5112 configuration "AutoFlippingLabel" 4867 configuration "AutoFlippingLabel"
@@ -5116,8 +4871,8 @@ graph
5116 ] 4871 ]
5117 edge 4872 edge
5118 [ 4873 [
5119 source 13 4874 source 5
5120 target 14 4875 target 6
5121 graphics 4876 graphics
5122 [ 4877 [
5123 fill "#000000" 4878 fill "#000000"
@@ -5126,7 +4881,7 @@ graph
5126 ] 4881 ]
5127 LabelGraphics 4882 LabelGraphics
5128 [ 4883 [
5129 text "eTypeParameters reference EClassifier" 4884 text "rootElements reference FunctionalArchitectureModel"
5130 fontSize 14 4885 fontSize 14
5131 fontName "Consolas" 4886 fontName "Consolas"
5132 configuration "AutoFlippingLabel" 4887 configuration "AutoFlippingLabel"
@@ -5136,17 +4891,16 @@ graph
5136 ] 4891 ]
5137 edge 4892 edge
5138 [ 4893 [
5139 source 0 4894 source 9
5140 target 15 4895 target 8
5141 graphics 4896 graphics
5142 [ 4897 [
5143 fill "#000000" 4898 fill "#000000"
5144 width 3
5145 targetArrow "standard" 4899 targetArrow "standard"
5146 ] 4900 ]
5147 LabelGraphics 4901 LabelGraphics
5148 [ 4902 [
5149 text "eAnnotations reference EModelElement" 4903 text "data reference FAMTerminator"
5150 fontSize 14 4904 fontSize 14
5151 fontName "Consolas" 4905 fontName "Consolas"
5152 configuration "AutoFlippingLabel" 4906 configuration "AutoFlippingLabel"
@@ -5156,8 +4910,8 @@ graph
5156 ] 4910 ]
5157 edge 4911 edge
5158 [ 4912 [
5159 source 0 4913 source 7
5160 target 11 4914 target 8
5161 graphics 4915 graphics
5162 [ 4916 [
5163 fill "#000000" 4917 fill "#000000"
@@ -5166,7 +4920,7 @@ graph
5166 ] 4920 ]
5167 LabelGraphics 4921 LabelGraphics
5168 [ 4922 [
5169 text "eClassifiers reference EPackage" 4923 text "data reference FunctionalInterface"
5170 fontSize 14 4924 fontSize 14
5171 fontName "Consolas" 4925 fontName "Consolas"
5172 configuration "AutoFlippingLabel" 4926 configuration "AutoFlippingLabel"
@@ -5176,8 +4930,8 @@ graph
5176 ] 4930 ]
5177 edge 4931 edge
5178 [ 4932 [
5179 source 0 4933 source 7
5180 target 13 4934 target 10
5181 graphics 4935 graphics
5182 [ 4936 [
5183 fill "#000000" 4937 fill "#000000"
@@ -5186,7 +4940,7 @@ graph
5186 ] 4940 ]
5187 LabelGraphics 4941 LabelGraphics
5188 [ 4942 [
5189 text "eClassifiers reference EPackage" 4943 text "data reference FunctionalInterface"
5190 fontSize 14 4944 fontSize 14
5191 fontName "Consolas" 4945 fontName "Consolas"
5192 configuration "AutoFlippingLabel" 4946 configuration "AutoFlippingLabel"
@@ -5196,8 +4950,8 @@ graph
5196 ] 4950 ]
5197 edge 4951 edge
5198 [ 4952 [
5199 source 0 4953 source 7
5200 target 12 4954 target 11
5201 graphics 4955 graphics
5202 [ 4956 [
5203 fill "#000000" 4957 fill "#000000"
@@ -5206,7 +4960,7 @@ graph
5206 ] 4960 ]
5207 LabelGraphics 4961 LabelGraphics
5208 [ 4962 [
5209 text "eSubpackages reference EPackage" 4963 text "data reference FunctionalInterface"
5210 fontSize 14 4964 fontSize 14
5211 fontName "Consolas" 4965 fontName "Consolas"
5212 configuration "AutoFlippingLabel" 4966 configuration "AutoFlippingLabel"
@@ -5216,26 +4970,7 @@ graph
5216 ] 4970 ]
5217 edge 4971 edge
5218 [ 4972 [
5219 source 12 4973 source 7
5220 target 0
5221 graphics
5222 [
5223 fill "#000000"
5224 targetArrow "standard"
5225 ]
5226 LabelGraphics
5227 [
5228 text "eSuperPackage reference EPackage"
5229 fontSize 14
5230 fontName "Consolas"
5231 configuration "AutoFlippingLabel"
5232 model "six_pos"
5233 position "thead"
5234 ]
5235 ]
5236 edge
5237 [
5238 source 15
5239 target 6 4974 target 6
5240 graphics 4975 graphics
5241 [ 4976 [
@@ -5244,7 +4979,7 @@ graph
5244 ] 4979 ]
5245 LabelGraphics 4980 LabelGraphics
5246 [ 4981 [
5247 text "source attribute EAnnotation" 4982 text "element reference FunctionalInterface"
5248 fontSize 14 4983 fontSize 14
5249 fontName "Consolas" 4984 fontName "Consolas"
5250 configuration "AutoFlippingLabel" 4985 configuration "AutoFlippingLabel"
@@ -5254,16 +4989,17 @@ graph
5254 ] 4989 ]
5255 edge 4990 edge
5256 [ 4991 [
5257 source 11 4992 source 8
5258 target 6 4993 target 9
5259 graphics 4994 graphics
5260 [ 4995 [
5261 fill "#000000" 4996 fill "#000000"
4997 width 3
5262 targetArrow "standard" 4998 targetArrow "standard"
5263 ] 4999 ]
5264 LabelGraphics 5000 LabelGraphics
5265 [ 5001 [
5266 text "instanceClassName attribute EClassifier" 5002 text "terminator reference FunctionalData"
5267 fontSize 14 5003 fontSize 14
5268 fontName "Consolas" 5004 fontName "Consolas"
5269 configuration "AutoFlippingLabel" 5005 configuration "AutoFlippingLabel"
@@ -5273,7 +5009,7 @@ graph
5273 ] 5009 ]
5274 edge 5010 edge
5275 [ 5011 [
5276 source 13 5012 source 8
5277 target 7 5013 target 7
5278 graphics 5014 graphics
5279 [ 5015 [
@@ -5282,7 +5018,7 @@ graph
5282 ] 5018 ]
5283 LabelGraphics 5019 LabelGraphics
5284 [ 5020 [
5285 text "instanceClassName attribute EClassifier" 5021 text "interface reference FunctionalData"
5286 fontSize 14 5022 fontSize 14
5287 fontName "Consolas" 5023 fontName "Consolas"
5288 configuration "AutoFlippingLabel" 5024 configuration "AutoFlippingLabel"
@@ -5292,84 +5028,8 @@ graph
5292 ] 5028 ]
5293 edge 5029 edge
5294 [ 5030 [
5295 source 11 5031 source 10
5296 target 1 5032 target 7
5297 graphics
5298 [
5299 fill "#000000"
5300 targetArrow "standard"
5301 ]
5302 LabelGraphics
5303 [
5304 text "serializable attribute EDataType"
5305 fontSize 14
5306 fontName "Consolas"
5307 configuration "AutoFlippingLabel"
5308 model "six_pos"
5309 position "thead"
5310 ]
5311 ]
5312 edge
5313 [
5314 source 0
5315 target 10
5316 graphics
5317 [
5318 fill "#000000"
5319 targetArrow "standard"
5320 ]
5321 LabelGraphics
5322 [
5323 text "name attribute ENamedElement"
5324 fontSize 14
5325 fontName "Consolas"
5326 configuration "AutoFlippingLabel"
5327 model "six_pos"
5328 position "thead"
5329 ]
5330 ]
5331 edge
5332 [
5333 source 12
5334 target 6
5335 graphics
5336 [
5337 fill "#000000"
5338 targetArrow "standard"
5339 ]
5340 LabelGraphics
5341 [
5342 text "name attribute ENamedElement"
5343 fontSize 14
5344 fontName "Consolas"
5345 configuration "AutoFlippingLabel"
5346 model "six_pos"
5347 position "thead"
5348 ]
5349 ]
5350 edge
5351 [
5352 source 0
5353 target 9
5354 graphics
5355 [
5356 fill "#000000"
5357 targetArrow "standard"
5358 ]
5359 LabelGraphics
5360 [
5361 text "nsURI attribute EPackage"
5362 fontSize 14
5363 fontName "Consolas"
5364 configuration "AutoFlippingLabel"
5365 model "six_pos"
5366 position "thead"
5367 ]
5368 ]
5369 edge
5370 [
5371 source 12
5372 target 10
5373 graphics 5033 graphics
5374 [ 5034 [
5375 fill "#000000" 5035 fill "#000000"
@@ -5377,7 +5037,7 @@ graph
5377 ] 5037 ]
5378 LabelGraphics 5038 LabelGraphics
5379 [ 5039 [
5380 text "nsURI attribute EPackage" 5040 text "interface reference FunctionalData"
5381 fontSize 14 5041 fontSize 14
5382 fontName "Consolas" 5042 fontName "Consolas"
5383 configuration "AutoFlippingLabel" 5043 configuration "AutoFlippingLabel"
@@ -5387,8 +5047,8 @@ graph
5387 ] 5047 ]
5388 edge 5048 edge
5389 [ 5049 [
5390 source 0 5050 source 11
5391 target 8 5051 target 7
5392 graphics 5052 graphics
5393 [ 5053 [
5394 fill "#000000" 5054 fill "#000000"
@@ -5396,7 +5056,7 @@ graph
5396 ] 5056 ]
5397 LabelGraphics 5057 LabelGraphics
5398 [ 5058 [
5399 text "nsPrefix attribute EPackage" 5059 text "interface reference FunctionalData"
5400 fontSize 14 5060 fontSize 14
5401 fontName "Consolas" 5061 fontName "Consolas"
5402 configuration "AutoFlippingLabel" 5062 configuration "AutoFlippingLabel"
@@ -5406,8 +5066,8 @@ graph
5406 ] 5066 ]
5407 edge 5067 edge
5408 [ 5068 [
5409 source 12 5069 source 6
5410 target 8 5070 target 0
5411 graphics 5071 graphics
5412 [ 5072 [
5413 fill "#000000" 5073 fill "#000000"
@@ -5415,7 +5075,7 @@ graph
5415 ] 5075 ]
5416 LabelGraphics 5076 LabelGraphics
5417 [ 5077 [
5418 text "nsPrefix attribute EPackage" 5078 text "type attribute Function"
5419 fontSize 14 5079 fontSize 14
5420 fontName "Consolas" 5080 fontName "Consolas"
5421 configuration "AutoFlippingLabel" 5081 configuration "AutoFlippingLabel"
@@ -5431,8 +5091,8 @@ graph
5431 id 0 5091 id 0
5432 graphics 5092 graphics
5433 [ 5093 [
5434 w 254.10000000000002 5094 w 226.60000000000002
5435 h 110 5095 h 40
5436 type "rectangle" 5096 type "rectangle"
5437 fill "#FFFFFF" 5097 fill "#FFFFFF"
5438 fill2 "#FFFFFF" 5098 fill2 "#FFFFFF"
@@ -5440,7 +5100,7 @@ graph
5440 ] 5100 ]
5441 LabelGraphics 5101 LabelGraphics
5442 [ 5102 [
5443 text "o 1" 5103 text "Root literal FunctionType"
5444 outline "#000000" 5104 outline "#000000"
5445 fill "#FFFFFF" 5105 fill "#FFFFFF"
5446 fontSize 16 5106 fontSize 16
@@ -5452,12 +5112,7 @@ graph
5452 LabelGraphics 5112 LabelGraphics
5453 [ 5113 [
5454 text " 5114 text "
5455 EModelElement class DefinedPart 5115 FunctionType enum
5456 ENamedElement class DefinedPart
5457 EPackage class DefinedPart
5458 EModelElement class
5459 ENamedElement class
5460 EPackage class
5461 " 5116 "
5462 fontSize 14 5117 fontSize 14
5463 fontName "Consolas" 5118 fontName "Consolas"
@@ -5472,8 +5127,8 @@ graph
5472 id 1 5127 id 1
5473 graphics 5128 graphics
5474 [ 5129 [
5475 w 41.800000000000004 5130 w 297.0
5476 h 26 5131 h 40
5477 type "rectangle" 5132 type "rectangle"
5478 fill "#FFFFFF" 5133 fill "#FFFFFF"
5479 fill2 "#FFFFFF" 5134 fill2 "#FFFFFF"
@@ -5481,7 +5136,7 @@ graph
5481 ] 5136 ]
5482 LabelGraphics 5137 LabelGraphics
5483 [ 5138 [
5484 text "true" 5139 text "Intermediate literal FunctionType"
5485 outline "#000000" 5140 outline "#000000"
5486 fill "#FFFFFF" 5141 fill "#FFFFFF"
5487 fontSize 16 5142 fontSize 16
@@ -5493,6 +5148,7 @@ graph
5493 LabelGraphics 5148 LabelGraphics
5494 [ 5149 [
5495 text " 5150 text "
5151 FunctionType enum
5496 " 5152 "
5497 fontSize 14 5153 fontSize 14
5498 fontName "Consolas" 5154 fontName "Consolas"
@@ -5507,8 +5163,8 @@ graph
5507 id 2 5163 id 2
5508 graphics 5164 graphics
5509 [ 5165 [
5510 w 50.6 5166 w 226.60000000000002
5511 h 26 5167 h 40
5512 type "rectangle" 5168 type "rectangle"
5513 fill "#FFFFFF" 5169 fill "#FFFFFF"
5514 fill2 "#FFFFFF" 5170 fill2 "#FFFFFF"
@@ -5516,7 +5172,7 @@ graph
5516 ] 5172 ]
5517 LabelGraphics 5173 LabelGraphics
5518 [ 5174 [
5519 text "false" 5175 text "Leaf literal FunctionType"
5520 outline "#000000" 5176 outline "#000000"
5521 fill "#FFFFFF" 5177 fill "#FFFFFF"
5522 fontSize 16 5178 fontSize 16
@@ -5528,6 +5184,7 @@ graph
5528 LabelGraphics 5184 LabelGraphics
5529 [ 5185 [
5530 text " 5186 text "
5187 FunctionType enum
5531 " 5188 "
5532 fontSize 14 5189 fontSize 14
5533 fontName "Consolas" 5190 fontName "Consolas"
@@ -5542,7 +5199,7 @@ graph
5542 id 3 5199 id 3
5543 graphics 5200 graphics
5544 [ 5201 [
5545 w 24.200000000000003 5202 w 41.800000000000004
5546 h 26 5203 h 26
5547 type "rectangle" 5204 type "rectangle"
5548 fill "#FFFFFF" 5205 fill "#FFFFFF"
@@ -5551,7 +5208,7 @@ graph
5551 ] 5208 ]
5552 LabelGraphics 5209 LabelGraphics
5553 [ 5210 [
5554 text "-1" 5211 text "true"
5555 outline "#000000" 5212 outline "#000000"
5556 fill "#FFFFFF" 5213 fill "#FFFFFF"
5557 fontSize 16 5214 fontSize 16
@@ -5577,7 +5234,7 @@ graph
5577 id 4 5234 id 4
5578 graphics 5235 graphics
5579 [ 5236 [
5580 w 15.400000000000002 5237 w 50.6
5581 h 26 5238 h 26
5582 type "rectangle" 5239 type "rectangle"
5583 fill "#FFFFFF" 5240 fill "#FFFFFF"
@@ -5586,7 +5243,7 @@ graph
5586 ] 5243 ]
5587 LabelGraphics 5244 LabelGraphics
5588 [ 5245 [
5589 text "0" 5246 text "false"
5590 outline "#000000" 5247 outline "#000000"
5591 fill "#FFFFFF" 5248 fill "#FFFFFF"
5592 fontSize 16 5249 fontSize 16
@@ -5612,8 +5269,8 @@ graph
5612 id 5 5269 id 5
5613 graphics 5270 graphics
5614 [ 5271 [
5615 w 15.400000000000002 5272 w 269.5
5616 h 26 5273 h 40
5617 type "rectangle" 5274 type "rectangle"
5618 fill "#FFFFFF" 5275 fill "#FFFFFF"
5619 fill2 "#FFFFFF" 5276 fill2 "#FFFFFF"
@@ -5621,7 +5278,7 @@ graph
5621 ] 5278 ]
5622 LabelGraphics 5279 LabelGraphics
5623 [ 5280 [
5624 text "1" 5281 text "null"
5625 outline "#000000" 5282 outline "#000000"
5626 fill "#FFFFFF" 5283 fill "#FFFFFF"
5627 fontSize 16 5284 fontSize 16
@@ -5633,6 +5290,7 @@ graph
5633 LabelGraphics 5290 LabelGraphics
5634 [ 5291 [
5635 text " 5292 text "
5293 FunctionalArchitectureModel class
5636 " 5294 "
5637 fontSize 14 5295 fontSize 14
5638 fontName "Consolas" 5296 fontName "Consolas"
@@ -5647,8 +5305,8 @@ graph
5647 id 6 5305 id 6
5648 graphics 5306 graphics
5649 [ 5307 [
5650 w 33.0 5308 w 192.50000000000003
5651 h 26 5309 h 54
5652 type "rectangle" 5310 type "rectangle"
5653 fill "#FFFFFF" 5311 fill "#FFFFFF"
5654 fill2 "#FFFFFF" 5312 fill2 "#FFFFFF"
@@ -5656,7 +5314,7 @@ graph
5656 ] 5314 ]
5657 LabelGraphics 5315 LabelGraphics
5658 [ 5316 [
5659 text ""A"" 5317 text "null"
5660 outline "#000000" 5318 outline "#000000"
5661 fill "#FFFFFF" 5319 fill "#FFFFFF"
5662 fontSize 16 5320 fontSize 16
@@ -5668,6 +5326,8 @@ graph
5668 LabelGraphics 5326 LabelGraphics
5669 [ 5327 [
5670 text " 5328 text "
5329 FunctionalElement class
5330 Function class
5671 " 5331 "
5672 fontSize 14 5332 fontSize 14
5673 fontName "Consolas" 5333 fontName "Consolas"
@@ -5682,8 +5342,8 @@ graph
5682 id 7 5342 id 7
5683 graphics 5343 graphics
5684 [ 5344 [
5685 w 33.0 5345 w 207.9
5686 h 26 5346 h 40
5687 type "rectangle" 5347 type "rectangle"
5688 fill "#FFFFFF" 5348 fill "#FFFFFF"
5689 fill2 "#FFFFFF" 5349 fill2 "#FFFFFF"
@@ -5691,7 +5351,7 @@ graph
5691 ] 5351 ]
5692 LabelGraphics 5352 LabelGraphics
5693 [ 5353 [
5694 text ""B"" 5354 text "null"
5695 outline "#000000" 5355 outline "#000000"
5696 fill "#FFFFFF" 5356 fill "#FFFFFF"
5697 fontSize 16 5357 fontSize 16
@@ -5703,6 +5363,7 @@ graph
5703 LabelGraphics 5363 LabelGraphics
5704 [ 5364 [
5705 text " 5365 text "
5366 FunctionalInterface class
5706 " 5367 "
5707 fontSize 14 5368 fontSize 14
5708 fontName "Consolas" 5369 fontName "Consolas"
@@ -5717,8 +5378,8 @@ graph
5717 id 8 5378 id 8
5718 graphics 5379 graphics
5719 [ 5380 [
5720 w 94.60000000000001 5381 w 184.8
5721 h 26 5382 h 54
5722 type "rectangle" 5383 type "rectangle"
5723 fill "#FFFFFF" 5384 fill "#FFFFFF"
5724 fill2 "#FFFFFF" 5385 fill2 "#FFFFFF"
@@ -5726,7 +5387,7 @@ graph
5726 ] 5387 ]
5727 LabelGraphics 5388 LabelGraphics
5728 [ 5389 [
5729 text ""nsPrefix"" 5390 text "null"
5730 outline "#000000" 5391 outline "#000000"
5731 fill "#FFFFFF" 5392 fill "#FFFFFF"
5732 fontSize 16 5393 fontSize 16
@@ -5738,6 +5399,8 @@ graph
5738 LabelGraphics 5399 LabelGraphics
5739 [ 5400 [
5740 text " 5401 text "
5402 FunctionalOutput class
5403 FunctionalData class
5741 " 5404 "
5742 fontSize 14 5405 fontSize 14
5743 fontName "Consolas" 5406 fontName "Consolas"
@@ -5752,8 +5415,8 @@ graph
5752 id 9 5415 id 9
5753 graphics 5416 graphics
5754 [ 5417 [
5755 w 68.2 5418 w 184.8
5756 h 26 5419 h 54
5757 type "rectangle" 5420 type "rectangle"
5758 fill "#FFFFFF" 5421 fill "#FFFFFF"
5759 fill2 "#FFFFFF" 5422 fill2 "#FFFFFF"
@@ -5761,7 +5424,7 @@ graph
5761 ] 5424 ]
5762 LabelGraphics 5425 LabelGraphics
5763 [ 5426 [
5764 text ""nsUri"" 5427 text "null"
5765 outline "#000000" 5428 outline "#000000"
5766 fill "#FFFFFF" 5429 fill "#FFFFFF"
5767 fontSize 16 5430 fontSize 16
@@ -5773,6 +5436,8 @@ graph
5773 LabelGraphics 5436 LabelGraphics
5774 [ 5437 [
5775 text " 5438 text "
5439 FunctionalOutput class
5440 FunctionalData class
5776 " 5441 "
5777 fontSize 14 5442 fontSize 14
5778 fontName "Consolas" 5443 fontName "Consolas"
@@ -5787,8 +5452,8 @@ graph
5787 id 10 5452 id 10
5788 graphics 5453 graphics
5789 [ 5454 [
5790 w 121.00000000000001 5455 w 161.70000000000002
5791 h 26 5456 h 40
5792 type "rectangle" 5457 type "rectangle"
5793 fill "#FFFFFF" 5458 fill "#FFFFFF"
5794 fill2 "#FFFFFF" 5459 fill2 "#FFFFFF"
@@ -5796,7 +5461,7 @@ graph
5796 ] 5461 ]
5797 LabelGraphics 5462 LabelGraphics
5798 [ 5463 [
5799 text ""packageName"" 5464 text "null"
5800 outline "#000000" 5465 outline "#000000"
5801 fill "#FFFFFF" 5466 fill "#FFFFFF"
5802 fontSize 16 5467 fontSize 16
@@ -5808,6 +5473,7 @@ graph
5808 LabelGraphics 5473 LabelGraphics
5809 [ 5474 [
5810 text " 5475 text "
5476 FAMTerminator class
5811 " 5477 "
5812 fontSize 14 5478 fontSize 14
5813 fontName "Consolas" 5479 fontName "Consolas"
@@ -5822,8 +5488,8 @@ graph
5822 id 11 5488 id 11
5823 graphics 5489 graphics
5824 [ 5490 [
5825 w 269.5 5491 w 184.8
5826 h 110 5492 h 54
5827 type "rectangle" 5493 type "rectangle"
5828 fill "#FFFFFF" 5494 fill "#FFFFFF"
5829 fill2 "#FFFFFF" 5495 fill2 "#FFFFFF"
@@ -5843,12 +5509,8 @@ graph
5843 LabelGraphics 5509 LabelGraphics
5844 [ 5510 [
5845 text " 5511 text "
5846 EClass class 5512 FunctionalOutput class
5847 EClassifier class 5513 FunctionalData class
5848 EModelElement class
5849 ENamedElement class
5850 EModelElement class UndefinedPart
5851 ENamedElement class UndefinedPart
5852 " 5514 "
5853 fontSize 14 5515 fontSize 14
5854 fontName "Consolas" 5516 fontName "Consolas"
@@ -5863,169 +5525,6 @@ graph
5863 id 12 5525 id 12
5864 graphics 5526 graphics
5865 [ 5527 [
5866 w 269.5
5867 h 110
5868 type "rectangle"
5869 fill "#FFFFFF"
5870 fill2 "#FFFFFF"
5871 outline "#000000"
5872 ]
5873 LabelGraphics
5874 [
5875 text "null"
5876 outline "#000000"
5877 fill "#FFFFFF"
5878 fontSize 16
5879 fontName "Monospace"
5880 autoSizePolicy "node_width"
5881 anchor "t"
5882 borderDistance 0.0
5883 ]
5884 LabelGraphics
5885 [
5886 text "
5887 EModelElement class
5888 ENamedElement class
5889 EPackage class
5890 EModelElement class UndefinedPart
5891 ENamedElement class UndefinedPart
5892 EPackage class UndefinedPart
5893 "
5894 fontSize 14
5895 fontName "Consolas"
5896 alignment "left"
5897 anchor "tl"
5898 borderDistance 6
5899 ]
5900 ]
5901
5902 node
5903 [
5904 id 13
5905 graphics
5906 [
5907 w 269.5
5908 h 110
5909 type "rectangle"
5910 fill "#FFFFFF"
5911 fill2 "#FFFFFF"
5912 outline "#000000"
5913 ]
5914 LabelGraphics
5915 [
5916 text "null"
5917 outline "#000000"
5918 fill "#FFFFFF"
5919 fontSize 16
5920 fontName "Monospace"
5921 autoSizePolicy "node_width"
5922 anchor "t"
5923 borderDistance 0.0
5924 ]
5925 LabelGraphics
5926 [
5927 text "
5928 EModelElement class
5929 ENamedElement class
5930 EPackage class
5931 EModelElement class UndefinedPart
5932 ENamedElement class UndefinedPart
5933 EPackage class UndefinedPart
5934 "
5935 fontSize 14
5936 fontName "Consolas"
5937 alignment "left"
5938 anchor "tl"
5939 borderDistance 6
5940 ]
5941 ]
5942
5943 node
5944 [
5945 id 14
5946 graphics
5947 [
5948 w 269.5
5949 h 96
5950 type "rectangle"
5951 fill "#FFFFFF"
5952 fill2 "#FFFFFF"
5953 outline "#000000"
5954 ]
5955 LabelGraphics
5956 [
5957 text "null"
5958 outline "#000000"
5959 fill "#FFFFFF"
5960 fontSize 16
5961 fontName "Monospace"
5962 autoSizePolicy "node_width"
5963 anchor "t"
5964 borderDistance 0.0
5965 ]
5966 LabelGraphics
5967 [
5968 text "
5969 EModelElement class
5970 ENamedElement class
5971 ETypeParameter class
5972 EModelElement class UndefinedPart
5973 ENamedElement class UndefinedPart
5974 "
5975 fontSize 14
5976 fontName "Consolas"
5977 alignment "left"
5978 anchor "tl"
5979 borderDistance 6
5980 ]
5981 ]
5982
5983 node
5984 [
5985 id 15
5986 graphics
5987 [
5988 w 269.5
5989 h 110
5990 type "rectangle"
5991 fill "#FFFFFF"
5992 fill2 "#FFFFFF"
5993 outline "#000000"
5994 ]
5995 LabelGraphics
5996 [
5997 text "null"
5998 outline "#000000"
5999 fill "#FFFFFF"
6000 fontSize 16
6001 fontName "Monospace"
6002 autoSizePolicy "node_width"
6003 anchor "t"
6004 borderDistance 0.0
6005 ]
6006 LabelGraphics
6007 [
6008 text "
6009 EClass class
6010 EClassifier class
6011 EModelElement class
6012 ENamedElement class
6013 EModelElement class UndefinedPart
6014 ENamedElement class UndefinedPart
6015 "
6016 fontSize 14
6017 fontName "Consolas"
6018 alignment "left"
6019 anchor "tl"
6020 borderDistance 6
6021 ]
6022 ]
6023
6024 node
6025 [
6026 id 16
6027 graphics
6028 [
6029 w 112.2 5528 w 112.2
6030 h 26 5529 h 26
6031 type "rectangle" 5530 type "rectangle"
@@ -6058,7 +5557,7 @@ graph
6058 5557
6059 node 5558 node
6060 [ 5559 [
6061 id 17 5560 id 13
6062 graphics 5561 graphics
6063 [ 5562 [
6064 w 85.80000000000001 5563 w 85.80000000000001
@@ -6093,7 +5592,7 @@ graph
6093 5592
6094 node 5593 node
6095 [ 5594 [
6096 id 18 5595 id 14
6097 graphics 5596 graphics
6098 [ 5597 [
6099 w 103.4 5598 w 103.4
@@ -6128,7 +5627,7 @@ graph
6128 5627
6129 node 5628 node
6130 [ 5629 [
6131 id 19 5630 id 15
6132 graphics 5631 graphics
6133 [ 5632 [
6134 w 103.4 5633 w 103.4
@@ -6162,16 +5661,17 @@ graph
6162 ] 5661 ]
6163 edge 5662 edge
6164 [ 5663 [
6165 source 11 5664 source 6
6166 target 0 5665 target 7
6167 graphics 5666 graphics
6168 [ 5667 [
6169 fill "#000000" 5668 fill "#000000"
5669 width 3
6170 targetArrow "standard" 5670 targetArrow "standard"
6171 ] 5671 ]
6172 LabelGraphics 5672 LabelGraphics
6173 [ 5673 [
6174 text "ePackage reference EClassifier" 5674 text "interface reference FunctionalElement"
6175 fontSize 14 5675 fontSize 14
6176 fontName "Consolas" 5676 fontName "Consolas"
6177 configuration "AutoFlippingLabel" 5677 configuration "AutoFlippingLabel"
@@ -6181,8 +5681,8 @@ graph
6181 ] 5681 ]
6182 edge 5682 edge
6183 [ 5683 [
6184 source 15 5684 source 6
6185 target 13 5685 target 5
6186 graphics 5686 graphics
6187 [ 5687 [
6188 fill "#000000" 5688 fill "#000000"
@@ -6190,7 +5690,7 @@ graph
6190 ] 5690 ]
6191 LabelGraphics 5691 LabelGraphics
6192 [ 5692 [
6193 text "ePackage reference EClassifier" 5693 text "model reference FunctionalElement"
6194 fontSize 14 5694 fontSize 14
6195 fontName "Consolas" 5695 fontName "Consolas"
6196 configuration "AutoFlippingLabel" 5696 configuration "AutoFlippingLabel"
@@ -6200,8 +5700,8 @@ graph
6200 ] 5700 ]
6201 edge 5701 edge
6202 [ 5702 [
6203 source 11 5703 source 5
6204 target 14 5704 target 6
6205 graphics 5705 graphics
6206 [ 5706 [
6207 fill "#000000" 5707 fill "#000000"
@@ -6210,7 +5710,7 @@ graph
6210 ] 5710 ]
6211 LabelGraphics 5711 LabelGraphics
6212 [ 5712 [
6213 text "eTypeParameters reference EClassifier" 5713 text "rootElements reference FunctionalArchitectureModel"
6214 fontSize 14 5714 fontSize 14
6215 fontName "Consolas" 5715 fontName "Consolas"
6216 configuration "AutoFlippingLabel" 5716 configuration "AutoFlippingLabel"
@@ -6220,17 +5720,16 @@ graph
6220 ] 5720 ]
6221 edge 5721 edge
6222 [ 5722 [
6223 source 0 5723 source 10
6224 target 11 5724 target 9
6225 graphics 5725 graphics
6226 [ 5726 [
6227 fill "#000000" 5727 fill "#000000"
6228 width 3
6229 targetArrow "standard" 5728 targetArrow "standard"
6230 ] 5729 ]
6231 LabelGraphics 5730 LabelGraphics
6232 [ 5731 [
6233 text "eClassifiers reference EPackage" 5732 text "data reference FAMTerminator"
6234 fontSize 14 5733 fontSize 14
6235 fontName "Consolas" 5734 fontName "Consolas"
6236 configuration "AutoFlippingLabel" 5735 configuration "AutoFlippingLabel"
@@ -6240,8 +5739,8 @@ graph
6240 ] 5739 ]
6241 edge 5740 edge
6242 [ 5741 [
6243 source 13 5742 source 7
6244 target 15 5743 target 8
6245 graphics 5744 graphics
6246 [ 5745 [
6247 fill "#000000" 5746 fill "#000000"
@@ -6250,7 +5749,7 @@ graph
6250 ] 5749 ]
6251 LabelGraphics 5750 LabelGraphics
6252 [ 5751 [
6253 text "eClassifiers reference EPackage" 5752 text "data reference FunctionalInterface"
6254 fontSize 14 5753 fontSize 14
6255 fontName "Consolas" 5754 fontName "Consolas"
6256 configuration "AutoFlippingLabel" 5755 configuration "AutoFlippingLabel"
@@ -6260,8 +5759,8 @@ graph
6260 ] 5759 ]
6261 edge 5760 edge
6262 [ 5761 [
6263 source 0 5762 source 7
6264 target 12 5763 target 9
6265 graphics 5764 graphics
6266 [ 5765 [
6267 fill "#000000" 5766 fill "#000000"
@@ -6270,7 +5769,7 @@ graph
6270 ] 5769 ]
6271 LabelGraphics 5770 LabelGraphics
6272 [ 5771 [
6273 text "eSubpackages reference EPackage" 5772 text "data reference FunctionalInterface"
6274 fontSize 14 5773 fontSize 14
6275 fontName "Consolas" 5774 fontName "Consolas"
6276 configuration "AutoFlippingLabel" 5775 configuration "AutoFlippingLabel"
@@ -6280,8 +5779,8 @@ graph
6280 ] 5779 ]
6281 edge 5780 edge
6282 [ 5781 [
6283 source 12 5782 source 7
6284 target 13 5783 target 11
6285 graphics 5784 graphics
6286 [ 5785 [
6287 fill "#000000" 5786 fill "#000000"
@@ -6290,7 +5789,7 @@ graph
6290 ] 5789 ]
6291 LabelGraphics 5790 LabelGraphics
6292 [ 5791 [
6293 text "eSubpackages reference EPackage" 5792 text "data reference FunctionalInterface"
6294 fontSize 14 5793 fontSize 14
6295 fontName "Consolas" 5794 fontName "Consolas"
6296 configuration "AutoFlippingLabel" 5795 configuration "AutoFlippingLabel"
@@ -6300,8 +5799,8 @@ graph
6300 ] 5799 ]
6301 edge 5800 edge
6302 [ 5801 [
6303 source 12 5802 source 7
6304 target 0 5803 target 6
6305 graphics 5804 graphics
6306 [ 5805 [
6307 fill "#000000" 5806 fill "#000000"
@@ -6309,7 +5808,7 @@ graph
6309 ] 5808 ]
6310 LabelGraphics 5809 LabelGraphics
6311 [ 5810 [
6312 text "eSuperPackage reference EPackage" 5811 text "element reference FunctionalInterface"
6313 fontSize 14 5812 fontSize 14
6314 fontName "Consolas" 5813 fontName "Consolas"
6315 configuration "AutoFlippingLabel" 5814 configuration "AutoFlippingLabel"
@@ -6319,16 +5818,17 @@ graph
6319 ] 5818 ]
6320 edge 5819 edge
6321 [ 5820 [
6322 source 13 5821 source 9
6323 target 12 5822 target 10
6324 graphics 5823 graphics
6325 [ 5824 [
6326 fill "#000000" 5825 fill "#000000"
5826 width 3
6327 targetArrow "standard" 5827 targetArrow "standard"
6328 ] 5828 ]
6329 LabelGraphics 5829 LabelGraphics
6330 [ 5830 [
6331 text "eSuperPackage reference EPackage" 5831 text "terminator reference FunctionalData"
6332 fontSize 14 5832 fontSize 14
6333 fontName "Consolas" 5833 fontName "Consolas"
6334 configuration "AutoFlippingLabel" 5834 configuration "AutoFlippingLabel"
@@ -6338,8 +5838,8 @@ graph
6338 ] 5838 ]
6339 edge 5839 edge
6340 [ 5840 [
6341 source 11 5841 source 8
6342 target 1 5842 target 7
6343 graphics 5843 graphics
6344 [ 5844 [
6345 fill "#000000" 5845 fill "#000000"
@@ -6347,7 +5847,7 @@ graph
6347 ] 5847 ]
6348 LabelGraphics 5848 LabelGraphics
6349 [ 5849 [
6350 text "abstract attribute EClass" 5850 text "interface reference FunctionalData"
6351 fontSize 14 5851 fontSize 14
6352 fontName "Consolas" 5852 fontName "Consolas"
6353 configuration "AutoFlippingLabel" 5853 configuration "AutoFlippingLabel"
@@ -6357,8 +5857,8 @@ graph
6357 ] 5857 ]
6358 edge 5858 edge
6359 [ 5859 [
6360 source 11 5860 source 9
6361 target 2 5861 target 7
6362 graphics 5862 graphics
6363 [ 5863 [
6364 fill "#000000" 5864 fill "#000000"
@@ -6366,7 +5866,7 @@ graph
6366 ] 5866 ]
6367 LabelGraphics 5867 LabelGraphics
6368 [ 5868 [
6369 text "interface attribute EClass" 5869 text "interface reference FunctionalData"
6370 fontSize 14 5870 fontSize 14
6371 fontName "Consolas" 5871 fontName "Consolas"
6372 configuration "AutoFlippingLabel" 5872 configuration "AutoFlippingLabel"
@@ -6377,26 +5877,7 @@ graph
6377 edge 5877 edge
6378 [ 5878 [
6379 source 11 5879 source 11
6380 target 8 5880 target 7
6381 graphics
6382 [
6383 fill "#000000"
6384 targetArrow "standard"
6385 ]
6386 LabelGraphics
6387 [
6388 text "instanceTypeName attribute EClassifier"
6389 fontSize 14
6390 fontName "Consolas"
6391 configuration "AutoFlippingLabel"
6392 model "six_pos"
6393 position "thead"
6394 ]
6395 ]
6396 edge
6397 [
6398 source 15
6399 target 6
6400 graphics 5881 graphics
6401 [ 5882 [
6402 fill "#000000" 5883 fill "#000000"
@@ -6404,7 +5885,7 @@ graph
6404 ] 5885 ]
6405 LabelGraphics 5886 LabelGraphics
6406 [ 5887 [
6407 text "instanceTypeName attribute EClassifier" 5888 text "interface reference FunctionalData"
6408 fontSize 14 5889 fontSize 14
6409 fontName "Consolas" 5890 fontName "Consolas"
6410 configuration "AutoFlippingLabel" 5891 configuration "AutoFlippingLabel"
@@ -6414,8 +5895,8 @@ graph
6414 ] 5895 ]
6415 edge 5896 edge
6416 [ 5897 [
6417 source 0 5898 source 6
6418 target 10 5899 target 0
6419 graphics 5900 graphics
6420 [ 5901 [
6421 fill "#000000" 5902 fill "#000000"
@@ -6423,7 +5904,7 @@ graph
6423 ] 5904 ]
6424 LabelGraphics 5905 LabelGraphics
6425 [ 5906 [
6426 text "name attribute ENamedElement" 5907 text "type attribute Function"
6427 fontSize 14 5908 fontSize 14
6428 fontName "Consolas" 5909 fontName "Consolas"
6429 configuration "AutoFlippingLabel" 5910 configuration "AutoFlippingLabel"
@@ -6431,130 +5912,413 @@ graph
6431 position "thead" 5912 position "thead"
6432 ] 5913 ]
6433 ] 5914 ]
6434 edge 5915]
6435 [ 5916graph
6436 source 13 5917[
6437 target 8 5918 node
6438 graphics
6439 [
6440 fill "#000000"
6441 targetArrow "standard"
6442 ]
6443 LabelGraphics
6444 [ 5919 [
6445 text "name attribute ENamedElement" 5920 id 0
6446 fontSize 14 5921 graphics
6447 fontName "Consolas" 5922 [
6448 configuration "AutoFlippingLabel" 5923 w 226.60000000000002
6449 model "six_pos" 5924 h 40
6450 position "thead" 5925 type "rectangle"
5926 fill "#FFFFFF"
5927 fill2 "#FFFFFF"
5928 outline "#000000"
5929 ]
5930 LabelGraphics
5931 [
5932 text "Root literal FunctionType"
5933 outline "#000000"
5934 fill "#FFFFFF"
5935 fontSize 16
5936 fontName "Monospace"
5937 autoSizePolicy "node_width"
5938 anchor "t"
5939 borderDistance 0.0
5940 ]
5941 LabelGraphics
5942 [
5943 text "
5944 FunctionType enum
5945 "
5946 fontSize 14
5947 fontName "Consolas"
5948 alignment "left"
5949 anchor "tl"
5950 borderDistance 6
5951 ]
6451 ] 5952 ]
6452 ] 5953
6453 edge 5954 node
6454 [
6455 source 11
6456 target 6
6457 graphics
6458 [ 5955 [
6459 fill "#000000" 5956 id 1
6460 targetArrow "standard" 5957 graphics
5958 [
5959 w 297.0
5960 h 40
5961 type "rectangle"
5962 fill "#FFFFFF"
5963 fill2 "#FFFFFF"
5964 outline "#000000"
5965 ]
5966 LabelGraphics
5967 [
5968 text "Intermediate literal FunctionType"
5969 outline "#000000"
5970 fill "#FFFFFF"
5971 fontSize 16
5972 fontName "Monospace"
5973 autoSizePolicy "node_width"
5974 anchor "t"
5975 borderDistance 0.0
5976 ]
5977 LabelGraphics
5978 [
5979 text "
5980 FunctionType enum
5981 "
5982 fontSize 14
5983 fontName "Consolas"
5984 alignment "left"
5985 anchor "tl"
5986 borderDistance 6
5987 ]
6461 ] 5988 ]
6462 LabelGraphics 5989
5990 node
6463 [ 5991 [
6464 text "name attribute ENamedElement" 5992 id 2
6465 fontSize 14 5993 graphics
6466 fontName "Consolas" 5994 [
6467 configuration "AutoFlippingLabel" 5995 w 226.60000000000002
6468 model "six_pos" 5996 h 40
6469 position "thead" 5997 type "rectangle"
5998 fill "#FFFFFF"
5999 fill2 "#FFFFFF"
6000 outline "#000000"
6001 ]
6002 LabelGraphics
6003 [
6004 text "Leaf literal FunctionType"
6005 outline "#000000"
6006 fill "#FFFFFF"
6007 fontSize 16
6008 fontName "Monospace"
6009 autoSizePolicy "node_width"
6010 anchor "t"
6011 borderDistance 0.0
6012 ]
6013 LabelGraphics
6014 [
6015 text "
6016 FunctionType enum
6017 "
6018 fontSize 14
6019 fontName "Consolas"
6020 alignment "left"
6021 anchor "tl"
6022 borderDistance 6
6023 ]
6470 ] 6024 ]
6471 ] 6025
6472 edge 6026 node
6473 [
6474 source 0
6475 target 9
6476 graphics
6477 [ 6027 [
6478 fill "#000000" 6028 id 3
6479 targetArrow "standard" 6029 graphics
6030 [
6031 w 41.800000000000004
6032 h 26
6033 type "rectangle"
6034 fill "#FFFFFF"
6035 fill2 "#FFFFFF"
6036 outline "#000000"
6037 ]
6038 LabelGraphics
6039 [
6040 text "true"
6041 outline "#000000"
6042 fill "#FFFFFF"
6043 fontSize 16
6044 fontName "Monospace"
6045 autoSizePolicy "node_width"
6046 anchor "t"
6047 borderDistance 0.0
6048 ]
6049 LabelGraphics
6050 [
6051 text "
6052 "
6053 fontSize 14
6054 fontName "Consolas"
6055 alignment "left"
6056 anchor "tl"
6057 borderDistance 6
6058 ]
6480 ] 6059 ]
6481 LabelGraphics 6060
6061 node
6482 [ 6062 [
6483 text "nsURI attribute EPackage" 6063 id 4
6484 fontSize 14 6064 graphics
6485 fontName "Consolas" 6065 [
6486 configuration "AutoFlippingLabel" 6066 w 50.6
6487 model "six_pos" 6067 h 26
6488 position "thead" 6068 type "rectangle"
6069 fill "#FFFFFF"
6070 fill2 "#FFFFFF"
6071 outline "#000000"
6072 ]
6073 LabelGraphics
6074 [
6075 text "false"
6076 outline "#000000"
6077 fill "#FFFFFF"
6078 fontSize 16
6079 fontName "Monospace"
6080 autoSizePolicy "node_width"
6081 anchor "t"
6082 borderDistance 0.0
6083 ]
6084 LabelGraphics
6085 [
6086 text "
6087 "
6088 fontSize 14
6089 fontName "Consolas"
6090 alignment "left"
6091 anchor "tl"
6092 borderDistance 6
6093 ]
6489 ] 6094 ]
6490 ] 6095
6491 edge 6096 node
6492 [
6493 source 13
6494 target 7
6495 graphics
6496 [ 6097 [
6497 fill "#000000" 6098 id 5
6498 targetArrow "standard" 6099 graphics
6100 [
6101 w 207.9
6102 h 40
6103 type "rectangle"
6104 fill "#FFFFFF"
6105 fill2 "#FFFFFF"
6106 outline "#000000"
6107 ]
6108 LabelGraphics
6109 [
6110 text "null"
6111 outline "#000000"
6112 fill "#FFFFFF"
6113 fontSize 16
6114 fontName "Monospace"
6115 autoSizePolicy "node_width"
6116 anchor "t"
6117 borderDistance 0.0
6118 ]
6119 LabelGraphics
6120 [
6121 text "
6122 FunctionalInterface class
6123 "
6124 fontSize 14
6125 fontName "Consolas"
6126 alignment "left"
6127 anchor "tl"
6128 borderDistance 6
6129 ]
6499 ] 6130 ]
6500 LabelGraphics 6131
6132 node
6501 [ 6133 [
6502 text "nsURI attribute EPackage" 6134 id 6
6503 fontSize 14 6135 graphics
6504 fontName "Consolas" 6136 [
6505 configuration "AutoFlippingLabel" 6137 w 177.10000000000002
6506 model "six_pos" 6138 h 54
6507 position "thead" 6139 type "rectangle"
6140 fill "#FFFFFF"
6141 fill2 "#FFFFFF"
6142 outline "#000000"
6143 ]
6144 LabelGraphics
6145 [
6146 text "null"
6147 outline "#000000"
6148 fill "#FFFFFF"
6149 fontSize 16
6150 fontName "Monospace"
6151 autoSizePolicy "node_width"
6152 anchor "t"
6153 borderDistance 0.0
6154 ]
6155 LabelGraphics
6156 [
6157 text "
6158 FunctionalInput class
6159 FunctionalData class
6160 "
6161 fontSize 14
6162 fontName "Consolas"
6163 alignment "left"
6164 anchor "tl"
6165 borderDistance 6
6166 ]
6508 ] 6167 ]
6509 ] 6168
6510 edge 6169 node
6511 [
6512 source 12
6513 target 7
6514 graphics
6515 [ 6170 [
6516 fill "#000000" 6171 id 7
6517 targetArrow "standard" 6172 graphics
6173 [
6174 w 184.8
6175 h 54
6176 type "rectangle"
6177 fill "#FFFFFF"
6178 fill2 "#FFFFFF"
6179 outline "#000000"
6180 ]
6181 LabelGraphics
6182 [
6183 text "null"
6184 outline "#000000"
6185 fill "#FFFFFF"
6186 fontSize 16
6187 fontName "Monospace"
6188 autoSizePolicy "node_width"
6189 anchor "t"
6190 borderDistance 0.0
6191 ]
6192 LabelGraphics
6193 [
6194 text "
6195 FunctionalOutput class
6196 FunctionalData class
6197 "
6198 fontSize 14
6199 fontName "Consolas"
6200 alignment "left"
6201 anchor "tl"
6202 borderDistance 6
6203 ]
6518 ] 6204 ]
6519 LabelGraphics 6205
6206 node
6520 [ 6207 [
6521 text "nsURI attribute EPackage" 6208 id 8
6522 fontSize 14 6209 graphics
6523 fontName "Consolas" 6210 [
6524 configuration "AutoFlippingLabel" 6211 w 161.70000000000002
6525 model "six_pos" 6212 h 40
6526 position "thead" 6213 type "rectangle"
6214 fill "#FFFFFF"
6215 fill2 "#FFFFFF"
6216 outline "#000000"
6217 ]
6218 LabelGraphics
6219 [
6220 text "null"
6221 outline "#000000"
6222 fill "#FFFFFF"
6223 fontSize 16
6224 fontName "Monospace"
6225 autoSizePolicy "node_width"
6226 anchor "t"
6227 borderDistance 0.0
6228 ]
6229 LabelGraphics
6230 [
6231 text "
6232 FAMTerminator class
6233 "
6234 fontSize 14
6235 fontName "Consolas"
6236 alignment "left"
6237 anchor "tl"
6238 borderDistance 6
6239 ]
6527 ] 6240 ]
6528 ] 6241
6529 edge 6242 node
6530 [
6531 source 0
6532 target 8
6533 graphics
6534 [ 6243 [
6535 fill "#000000" 6244 id 9
6536 targetArrow "standard" 6245 graphics
6246 [
6247 w 177.10000000000002
6248 h 54
6249 type "rectangle"
6250 fill "#FFFFFF"
6251 fill2 "#FFFFFF"
6252 outline "#000000"
6253 ]
6254 LabelGraphics
6255 [
6256 text "null"
6257 outline "#000000"
6258 fill "#FFFFFF"
6259 fontSize 16
6260 fontName "Monospace"
6261 autoSizePolicy "node_width"
6262 anchor "t"
6263 borderDistance 0.0
6264 ]
6265 LabelGraphics
6266 [
6267 text "
6268 FunctionalInput class
6269 FunctionalData class
6270 "
6271 fontSize 14
6272 fontName "Consolas"
6273 alignment "left"
6274 anchor "tl"
6275 borderDistance 6
6276 ]
6537 ] 6277 ]
6538 LabelGraphics 6278
6279 node
6539 [ 6280 [
6540 text "nsPrefix attribute EPackage" 6281 id 10
6541 fontSize 14 6282 graphics
6542 fontName "Consolas" 6283 [
6543 configuration "AutoFlippingLabel" 6284 w 161.70000000000002
6544 model "six_pos" 6285 h 40
6545 position "thead" 6286 type "rectangle"
6287 fill "#FFFFFF"
6288 fill2 "#FFFFFF"
6289 outline "#000000"
6290 ]
6291 LabelGraphics
6292 [
6293 text "null"
6294 outline "#000000"
6295 fill "#FFFFFF"
6296 fontSize 16
6297 fontName "Monospace"
6298 autoSizePolicy "node_width"
6299 anchor "t"
6300 borderDistance 0.0
6301 ]
6302 LabelGraphics
6303 [
6304 text "
6305 FAMTerminator class
6306 "
6307 fontSize 14
6308 fontName "Consolas"
6309 alignment "left"
6310 anchor "tl"
6311 borderDistance 6
6312 ]
6546 ] 6313 ]
6547 ] 6314
6548]
6549graph
6550[
6551 node 6315 node
6552 [ 6316 [
6553 id 0 6317 id 11
6554 graphics 6318 graphics
6555 [ 6319 [
6556 w 254.10000000000002 6320 w 184.8
6557 h 110 6321 h 54
6558 type "rectangle" 6322 type "rectangle"
6559 fill "#FFFFFF" 6323 fill "#FFFFFF"
6560 fill2 "#FFFFFF" 6324 fill2 "#FFFFFF"
@@ -6562,7 +6326,7 @@ graph
6562 ] 6326 ]
6563 LabelGraphics 6327 LabelGraphics
6564 [ 6328 [
6565 text "o 1" 6329 text "null"
6566 outline "#000000" 6330 outline "#000000"
6567 fill "#FFFFFF" 6331 fill "#FFFFFF"
6568 fontSize 16 6332 fontSize 16
@@ -6574,12 +6338,8 @@ graph
6574 LabelGraphics 6338 LabelGraphics
6575 [ 6339 [
6576 text " 6340 text "
6577 EModelElement class DefinedPart 6341 FunctionalOutput class
6578 ENamedElement class DefinedPart 6342 FunctionalData class
6579 EPackage class DefinedPart
6580 EModelElement class
6581 ENamedElement class
6582 EPackage class
6583 " 6343 "
6584 fontSize 14 6344 fontSize 14
6585 fontName "Consolas" 6345 fontName "Consolas"
@@ -6591,10 +6351,10 @@ graph
6591 6351
6592 node 6352 node
6593 [ 6353 [
6594 id 1 6354 id 12
6595 graphics 6355 graphics
6596 [ 6356 [
6597 w 41.800000000000004 6357 w 112.2
6598 h 26 6358 h 26
6599 type "rectangle" 6359 type "rectangle"
6600 fill "#FFFFFF" 6360 fill "#FFFFFF"
@@ -6603,7 +6363,7 @@ graph
6603 ] 6363 ]
6604 LabelGraphics 6364 LabelGraphics
6605 [ 6365 [
6606 text "true" 6366 text "New Integers"
6607 outline "#000000" 6367 outline "#000000"
6608 fill "#FFFFFF" 6368 fill "#FFFFFF"
6609 fontSize 16 6369 fontSize 16
@@ -6626,10 +6386,10 @@ graph
6626 6386
6627 node 6387 node
6628 [ 6388 [
6629 id 2 6389 id 13
6630 graphics 6390 graphics
6631 [ 6391 [
6632 w 50.6 6392 w 85.80000000000001
6633 h 26 6393 h 26
6634 type "rectangle" 6394 type "rectangle"
6635 fill "#FFFFFF" 6395 fill "#FFFFFF"
@@ -6638,7 +6398,7 @@ graph
6638 ] 6398 ]
6639 LabelGraphics 6399 LabelGraphics
6640 [ 6400 [
6641 text "false" 6401 text "New Reals"
6642 outline "#000000" 6402 outline "#000000"
6643 fill "#FFFFFF" 6403 fill "#FFFFFF"
6644 fontSize 16 6404 fontSize 16
@@ -6661,10 +6421,10 @@ graph
6661 6421
6662 node 6422 node
6663 [ 6423 [
6664 id 3 6424 id 14
6665 graphics 6425 graphics
6666 [ 6426 [
6667 w 24.200000000000003 6427 w 103.4
6668 h 26 6428 h 26
6669 type "rectangle" 6429 type "rectangle"
6670 fill "#FFFFFF" 6430 fill "#FFFFFF"
@@ -6673,7 +6433,7 @@ graph
6673 ] 6433 ]
6674 LabelGraphics 6434 LabelGraphics
6675 [ 6435 [
6676 text "-1" 6436 text "New Strings"
6677 outline "#000000" 6437 outline "#000000"
6678 fill "#FFFFFF" 6438 fill "#FFFFFF"
6679 fontSize 16 6439 fontSize 16
@@ -6696,10 +6456,10 @@ graph
6696 6456
6697 node 6457 node
6698 [ 6458 [
6699 id 4 6459 id 15
6700 graphics 6460 graphics
6701 [ 6461 [
6702 w 15.400000000000002 6462 w 103.4
6703 h 26 6463 h 26
6704 type "rectangle" 6464 type "rectangle"
6705 fill "#FFFFFF" 6465 fill "#FFFFFF"
@@ -6708,7 +6468,278 @@ graph
6708 ] 6468 ]
6709 LabelGraphics 6469 LabelGraphics
6710 [ 6470 [
6711 text "0" 6471 text "New Objects"
6472 outline "#000000"
6473 fill "#FFFFFF"
6474 fontSize 16
6475 fontName "Monospace"
6476 autoSizePolicy "node_width"
6477 anchor "t"
6478 borderDistance 0.0
6479 ]
6480 LabelGraphics
6481 [
6482 text "
6483 "
6484 fontSize 14
6485 fontName "Consolas"
6486 alignment "left"
6487 anchor "tl"
6488 borderDistance 6
6489 ]
6490 ]
6491 edge
6492 [
6493 source 8
6494 target 7
6495 graphics
6496 [
6497 fill "#000000"
6498 targetArrow "standard"
6499 ]
6500 LabelGraphics
6501 [
6502 text "data reference FAMTerminator"
6503 fontSize 14
6504 fontName "Consolas"
6505 configuration "AutoFlippingLabel"
6506 model "six_pos"
6507 position "thead"
6508 ]
6509 ]
6510 edge
6511 [
6512 source 10
6513 target 6
6514 graphics
6515 [
6516 fill "#000000"
6517 targetArrow "standard"
6518 ]
6519 LabelGraphics
6520 [
6521 text "data reference FAMTerminator"
6522 fontSize 14
6523 fontName "Consolas"
6524 configuration "AutoFlippingLabel"
6525 model "six_pos"
6526 position "thead"
6527 ]
6528 ]
6529 edge
6530 [
6531 source 5
6532 target 6
6533 graphics
6534 [
6535 fill "#000000"
6536 width 3
6537 targetArrow "standard"
6538 ]
6539 LabelGraphics
6540 [
6541 text "data reference FunctionalInterface"
6542 fontSize 14
6543 fontName "Consolas"
6544 configuration "AutoFlippingLabel"
6545 model "six_pos"
6546 position "thead"
6547 ]
6548 ]
6549 edge
6550 [
6551 source 5
6552 target 7
6553 graphics
6554 [
6555 fill "#000000"
6556 width 3
6557 targetArrow "standard"
6558 ]
6559 LabelGraphics
6560 [
6561 text "data reference FunctionalInterface"
6562 fontSize 14
6563 fontName "Consolas"
6564 configuration "AutoFlippingLabel"
6565 model "six_pos"
6566 position "thead"
6567 ]
6568 ]
6569 edge
6570 [
6571 source 5
6572 target 9
6573 graphics
6574 [
6575 fill "#000000"
6576 width 3
6577 targetArrow "standard"
6578 ]
6579 LabelGraphics
6580 [
6581 text "data reference FunctionalInterface"
6582 fontSize 14
6583 fontName "Consolas"
6584 configuration "AutoFlippingLabel"
6585 model "six_pos"
6586 position "thead"
6587 ]
6588 ]
6589 edge
6590 [
6591 source 5
6592 target 11
6593 graphics
6594 [
6595 fill "#000000"
6596 width 3
6597 targetArrow "standard"
6598 ]
6599 LabelGraphics
6600 [
6601 text "data reference FunctionalInterface"
6602 fontSize 14
6603 fontName "Consolas"
6604 configuration "AutoFlippingLabel"
6605 model "six_pos"
6606 position "thead"
6607 ]
6608 ]
6609 edge
6610 [
6611 source 7
6612 target 8
6613 graphics
6614 [
6615 fill "#000000"
6616 width 3
6617 targetArrow "standard"
6618 ]
6619 LabelGraphics
6620 [
6621 text "terminator reference FunctionalData"
6622 fontSize 14
6623 fontName "Consolas"
6624 configuration "AutoFlippingLabel"
6625 model "six_pos"
6626 position "thead"
6627 ]
6628 ]
6629 edge
6630 [
6631 source 6
6632 target 10
6633 graphics
6634 [
6635 fill "#000000"
6636 width 3
6637 targetArrow "standard"
6638 ]
6639 LabelGraphics
6640 [
6641 text "terminator reference FunctionalData"
6642 fontSize 14
6643 fontName "Consolas"
6644 configuration "AutoFlippingLabel"
6645 model "six_pos"
6646 position "thead"
6647 ]
6648 ]
6649 edge
6650 [
6651 source 6
6652 target 5
6653 graphics
6654 [
6655 fill "#000000"
6656 targetArrow "standard"
6657 ]
6658 LabelGraphics
6659 [
6660 text "interface reference FunctionalData"
6661 fontSize 14
6662 fontName "Consolas"
6663 configuration "AutoFlippingLabel"
6664 model "six_pos"
6665 position "thead"
6666 ]
6667 ]
6668 edge
6669 [
6670 source 7
6671 target 5
6672 graphics
6673 [
6674 fill "#000000"
6675 targetArrow "standard"
6676 ]
6677 LabelGraphics
6678 [
6679 text "interface reference FunctionalData"
6680 fontSize 14
6681 fontName "Consolas"
6682 configuration "AutoFlippingLabel"
6683 model "six_pos"
6684 position "thead"
6685 ]
6686 ]
6687 edge
6688 [
6689 source 9
6690 target 5
6691 graphics
6692 [
6693 fill "#000000"
6694 targetArrow "standard"
6695 ]
6696 LabelGraphics
6697 [
6698 text "interface reference FunctionalData"
6699 fontSize 14
6700 fontName "Consolas"
6701 configuration "AutoFlippingLabel"
6702 model "six_pos"
6703 position "thead"
6704 ]
6705 ]
6706 edge
6707 [
6708 source 11
6709 target 5
6710 graphics
6711 [
6712 fill "#000000"
6713 targetArrow "standard"
6714 ]
6715 LabelGraphics
6716 [
6717 text "interface reference FunctionalData"
6718 fontSize 14
6719 fontName "Consolas"
6720 configuration "AutoFlippingLabel"
6721 model "six_pos"
6722 position "thead"
6723 ]
6724 ]
6725]
6726graph
6727[
6728 node
6729 [
6730 id 0
6731 graphics
6732 [
6733 w 226.60000000000002
6734 h 40
6735 type "rectangle"
6736 fill "#FFFFFF"
6737 fill2 "#FFFFFF"
6738 outline "#000000"
6739 ]
6740 LabelGraphics
6741 [
6742 text "Root literal FunctionType"
6712 outline "#000000" 6743 outline "#000000"
6713 fill "#FFFFFF" 6744 fill "#FFFFFF"
6714 fontSize 16 6745 fontSize 16
@@ -6720,6 +6751,7 @@ graph
6720 LabelGraphics 6751 LabelGraphics
6721 [ 6752 [
6722 text " 6753 text "
6754 FunctionType enum
6723 " 6755 "
6724 fontSize 14 6756 fontSize 14
6725 fontName "Consolas" 6757 fontName "Consolas"
@@ -6731,11 +6763,11 @@ graph
6731 6763
6732 node 6764 node
6733 [ 6765 [
6734 id 5 6766 id 1
6735 graphics 6767 graphics
6736 [ 6768 [
6737 w 15.400000000000002 6769 w 297.0
6738 h 26 6770 h 40
6739 type "rectangle" 6771 type "rectangle"
6740 fill "#FFFFFF" 6772 fill "#FFFFFF"
6741 fill2 "#FFFFFF" 6773 fill2 "#FFFFFF"
@@ -6743,7 +6775,7 @@ graph
6743 ] 6775 ]
6744 LabelGraphics 6776 LabelGraphics
6745 [ 6777 [
6746 text "1" 6778 text "Intermediate literal FunctionType"
6747 outline "#000000" 6779 outline "#000000"
6748 fill "#FFFFFF" 6780 fill "#FFFFFF"
6749 fontSize 16 6781 fontSize 16
@@ -6755,6 +6787,7 @@ graph
6755 LabelGraphics 6787 LabelGraphics
6756 [ 6788 [
6757 text " 6789 text "
6790 FunctionType enum
6758 " 6791 "
6759 fontSize 14 6792 fontSize 14
6760 fontName "Consolas" 6793 fontName "Consolas"
@@ -6766,11 +6799,11 @@ graph
6766 6799
6767 node 6800 node
6768 [ 6801 [
6769 id 6 6802 id 2
6770 graphics 6803 graphics
6771 [ 6804 [
6772 w 33.0 6805 w 226.60000000000002
6773 h 26 6806 h 40
6774 type "rectangle" 6807 type "rectangle"
6775 fill "#FFFFFF" 6808 fill "#FFFFFF"
6776 fill2 "#FFFFFF" 6809 fill2 "#FFFFFF"
@@ -6778,7 +6811,7 @@ graph
6778 ] 6811 ]
6779 LabelGraphics 6812 LabelGraphics
6780 [ 6813 [
6781 text ""A"" 6814 text "Leaf literal FunctionType"
6782 outline "#000000" 6815 outline "#000000"
6783 fill "#FFFFFF" 6816 fill "#FFFFFF"
6784 fontSize 16 6817 fontSize 16
@@ -6790,6 +6823,7 @@ graph
6790 LabelGraphics 6823 LabelGraphics
6791 [ 6824 [
6792 text " 6825 text "
6826 FunctionType enum
6793 " 6827 "
6794 fontSize 14 6828 fontSize 14
6795 fontName "Consolas" 6829 fontName "Consolas"
@@ -6801,10 +6835,10 @@ graph
6801 6835
6802 node 6836 node
6803 [ 6837 [
6804 id 7 6838 id 3
6805 graphics 6839 graphics
6806 [ 6840 [
6807 w 33.0 6841 w 41.800000000000004
6808 h 26 6842 h 26
6809 type "rectangle" 6843 type "rectangle"
6810 fill "#FFFFFF" 6844 fill "#FFFFFF"
@@ -6813,7 +6847,7 @@ graph
6813 ] 6847 ]
6814 LabelGraphics 6848 LabelGraphics
6815 [ 6849 [
6816 text ""B"" 6850 text "true"
6817 outline "#000000" 6851 outline "#000000"
6818 fill "#FFFFFF" 6852 fill "#FFFFFF"
6819 fontSize 16 6853 fontSize 16
@@ -6836,10 +6870,10 @@ graph
6836 6870
6837 node 6871 node
6838 [ 6872 [
6839 id 8 6873 id 4
6840 graphics 6874 graphics
6841 [ 6875 [
6842 w 94.60000000000001 6876 w 50.6
6843 h 26 6877 h 26
6844 type "rectangle" 6878 type "rectangle"
6845 fill "#FFFFFF" 6879 fill "#FFFFFF"
@@ -6848,7 +6882,7 @@ graph
6848 ] 6882 ]
6849 LabelGraphics 6883 LabelGraphics
6850 [ 6884 [
6851 text ""nsPrefix"" 6885 text "false"
6852 outline "#000000" 6886 outline "#000000"
6853 fill "#FFFFFF" 6887 fill "#FFFFFF"
6854 fontSize 16 6888 fontSize 16
@@ -6871,11 +6905,11 @@ graph
6871 6905
6872 node 6906 node
6873 [ 6907 [
6874 id 9 6908 id 5
6875 graphics 6909 graphics
6876 [ 6910 [
6877 w 68.2 6911 w 207.9
6878 h 26 6912 h 40
6879 type "rectangle" 6913 type "rectangle"
6880 fill "#FFFFFF" 6914 fill "#FFFFFF"
6881 fill2 "#FFFFFF" 6915 fill2 "#FFFFFF"
@@ -6883,7 +6917,7 @@ graph
6883 ] 6917 ]
6884 LabelGraphics 6918 LabelGraphics
6885 [ 6919 [
6886 text ""nsUri"" 6920 text "null"
6887 outline "#000000" 6921 outline "#000000"
6888 fill "#FFFFFF" 6922 fill "#FFFFFF"
6889 fontSize 16 6923 fontSize 16
@@ -6895,6 +6929,7 @@ graph
6895 LabelGraphics 6929 LabelGraphics
6896 [ 6930 [
6897 text " 6931 text "
6932 FunctionalInterface class
6898 " 6933 "
6899 fontSize 14 6934 fontSize 14
6900 fontName "Consolas" 6935 fontName "Consolas"
@@ -6906,11 +6941,11 @@ graph
6906 6941
6907 node 6942 node
6908 [ 6943 [
6909 id 10 6944 id 6
6910 graphics 6945 graphics
6911 [ 6946 [
6912 w 121.00000000000001 6947 w 184.8
6913 h 26 6948 h 54
6914 type "rectangle" 6949 type "rectangle"
6915 fill "#FFFFFF" 6950 fill "#FFFFFF"
6916 fill2 "#FFFFFF" 6951 fill2 "#FFFFFF"
@@ -6918,7 +6953,7 @@ graph
6918 ] 6953 ]
6919 LabelGraphics 6954 LabelGraphics
6920 [ 6955 [
6921 text ""packageName"" 6956 text "null"
6922 outline "#000000" 6957 outline "#000000"
6923 fill "#FFFFFF" 6958 fill "#FFFFFF"
6924 fontSize 16 6959 fontSize 16
@@ -6930,6 +6965,8 @@ graph
6930 LabelGraphics 6965 LabelGraphics
6931 [ 6966 [
6932 text " 6967 text "
6968 FunctionalOutput class
6969 FunctionalData class
6933 " 6970 "
6934 fontSize 14 6971 fontSize 14
6935 fontName "Consolas" 6972 fontName "Consolas"
@@ -6941,11 +6978,11 @@ graph
6941 6978
6942 node 6979 node
6943 [ 6980 [
6944 id 11 6981 id 7
6945 graphics 6982 graphics
6946 [ 6983 [
6947 w 269.5 6984 w 184.8
6948 h 110 6985 h 54
6949 type "rectangle" 6986 type "rectangle"
6950 fill "#FFFFFF" 6987 fill "#FFFFFF"
6951 fill2 "#FFFFFF" 6988 fill2 "#FFFFFF"
@@ -6965,12 +7002,8 @@ graph
6965 LabelGraphics 7002 LabelGraphics
6966 [ 7003 [
6967 text " 7004 text "
6968 EClass class 7005 FunctionalOutput class
6969 EClassifier class 7006 FunctionalData class
6970 EModelElement class
6971 ENamedElement class
6972 EModelElement class UndefinedPart
6973 ENamedElement class UndefinedPart
6974 " 7007 "
6975 fontSize 14 7008 fontSize 14
6976 fontName "Consolas" 7009 fontName "Consolas"
@@ -6982,11 +7015,11 @@ graph
6982 7015
6983 node 7016 node
6984 [ 7017 [
6985 id 12 7018 id 8
6986 graphics 7019 graphics
6987 [ 7020 [
6988 w 269.5 7021 w 184.8
6989 h 110 7022 h 54
6990 type "rectangle" 7023 type "rectangle"
6991 fill "#FFFFFF" 7024 fill "#FFFFFF"
6992 fill2 "#FFFFFF" 7025 fill2 "#FFFFFF"
@@ -7006,12 +7039,8 @@ graph
7006 LabelGraphics 7039 LabelGraphics
7007 [ 7040 [
7008 text " 7041 text "
7009 EModelElement class 7042 FunctionalOutput class
7010 ENamedElement class 7043 FunctionalData class
7011 EPackage class
7012 EModelElement class UndefinedPart
7013 ENamedElement class UndefinedPart
7014 EPackage class UndefinedPart
7015 " 7044 "
7016 fontSize 14 7045 fontSize 14
7017 fontName "Consolas" 7046 fontName "Consolas"
@@ -7023,11 +7052,11 @@ graph
7023 7052
7024 node 7053 node
7025 [ 7054 [
7026 id 13 7055 id 9
7027 graphics 7056 graphics
7028 [ 7057 [
7029 w 269.5 7058 w 177.10000000000002
7030 h 110 7059 h 54
7031 type "rectangle" 7060 type "rectangle"
7032 fill "#FFFFFF" 7061 fill "#FFFFFF"
7033 fill2 "#FFFFFF" 7062 fill2 "#FFFFFF"
@@ -7047,12 +7076,8 @@ graph
7047 LabelGraphics 7076 LabelGraphics
7048 [ 7077 [
7049 text " 7078 text "
7050 EModelElement class 7079 FunctionalInput class
7051 ENamedElement class 7080 FunctionalData class
7052 EOperation class
7053 ETypedElement class
7054 EModelElement class UndefinedPart
7055 ENamedElement class UndefinedPart
7056 " 7081 "
7057 fontSize 14 7082 fontSize 14
7058 fontName "Consolas" 7083 fontName "Consolas"
@@ -7064,11 +7089,11 @@ graph
7064 7089
7065 node 7090 node
7066 [ 7091 [
7067 id 14 7092 id 10
7068 graphics 7093 graphics
7069 [ 7094 [
7070 w 269.5 7095 w 177.10000000000002
7071 h 68 7096 h 54
7072 type "rectangle" 7097 type "rectangle"
7073 fill "#FFFFFF" 7098 fill "#FFFFFF"
7074 fill2 "#FFFFFF" 7099 fill2 "#FFFFFF"
@@ -7088,9 +7113,8 @@ graph
7088 LabelGraphics 7113 LabelGraphics
7089 [ 7114 [
7090 text " 7115 text "
7091 EAnnotation class 7116 FunctionalInput class
7092 EModelElement class 7117 FunctionalData class
7093 EModelElement class UndefinedPart
7094 " 7118 "
7095 fontSize 14 7119 fontSize 14
7096 fontName "Consolas" 7120 fontName "Consolas"
@@ -7102,10 +7126,10 @@ graph
7102 7126
7103 node 7127 node
7104 [ 7128 [
7105 id 15 7129 id 11
7106 graphics 7130 graphics
7107 [ 7131 [
7108 w 238.70000000000002 7132 w 161.70000000000002
7109 h 40 7133 h 40
7110 type "rectangle" 7134 type "rectangle"
7111 fill "#FFFFFF" 7135 fill "#FFFFFF"
@@ -7126,7 +7150,7 @@ graph
7126 LabelGraphics 7150 LabelGraphics
7127 [ 7151 [
7128 text " 7152 text "
7129 EStringToStringMapEntry class 7153 FAMTerminator class
7130 " 7154 "
7131 fontSize 14 7155 fontSize 14
7132 fontName "Consolas" 7156 fontName "Consolas"
@@ -7138,7 +7162,7 @@ graph
7138 7162
7139 node 7163 node
7140 [ 7164 [
7141 id 16 7165 id 12
7142 graphics 7166 graphics
7143 [ 7167 [
7144 w 112.2 7168 w 112.2
@@ -7173,7 +7197,7 @@ graph
7173 7197
7174 node 7198 node
7175 [ 7199 [
7176 id 17 7200 id 13
7177 graphics 7201 graphics
7178 [ 7202 [
7179 w 85.80000000000001 7203 w 85.80000000000001
@@ -7208,7 +7232,7 @@ graph
7208 7232
7209 node 7233 node
7210 [ 7234 [
7211 id 18 7235 id 14
7212 graphics 7236 graphics
7213 [ 7237 [
7214 w 103.4 7238 w 103.4
@@ -7243,7 +7267,7 @@ graph
7243 7267
7244 node 7268 node
7245 [ 7269 [
7246 id 19 7270 id 15
7247 graphics 7271 graphics
7248 [ 7272 [
7249 w 103.4 7273 w 103.4
@@ -7277,8 +7301,27 @@ graph
7277 ] 7301 ]
7278 edge 7302 edge
7279 [ 7303 [
7280 source 14 7304 source 11
7281 target 15 7305 target 6
7306 graphics
7307 [
7308 fill "#000000"
7309 targetArrow "standard"
7310 ]
7311 LabelGraphics
7312 [
7313 text "data reference FAMTerminator"
7314 fontSize 14
7315 fontName "Consolas"
7316 configuration "AutoFlippingLabel"
7317 model "six_pos"
7318 position "thead"
7319 ]
7320 ]
7321 edge
7322 [
7323 source 5
7324 target 6
7282 graphics 7325 graphics
7283 [ 7326 [
7284 fill "#000000" 7327 fill "#000000"
@@ -7287,7 +7330,7 @@ graph
7287 ] 7330 ]
7288 LabelGraphics 7331 LabelGraphics
7289 [ 7332 [
7290 text "details reference EAnnotation" 7333 text "data reference FunctionalInterface"
7291 fontSize 14 7334 fontSize 14
7292 fontName "Consolas" 7335 fontName "Consolas"
7293 configuration "AutoFlippingLabel" 7336 configuration "AutoFlippingLabel"
@@ -7297,16 +7340,17 @@ graph
7297 ] 7340 ]
7298 edge 7341 edge
7299 [ 7342 [
7300 source 14 7343 source 5
7301 target 0 7344 target 7
7302 graphics 7345 graphics
7303 [ 7346 [
7304 fill "#000000" 7347 fill "#000000"
7348 width 3
7305 targetArrow "standard" 7349 targetArrow "standard"
7306 ] 7350 ]
7307 LabelGraphics 7351 LabelGraphics
7308 [ 7352 [
7309 text "eModelElement reference EAnnotation" 7353 text "data reference FunctionalInterface"
7310 fontSize 14 7354 fontSize 14
7311 fontName "Consolas" 7355 fontName "Consolas"
7312 configuration "AutoFlippingLabel" 7356 configuration "AutoFlippingLabel"
@@ -7316,16 +7360,17 @@ graph
7316 ] 7360 ]
7317 edge 7361 edge
7318 [ 7362 [
7319 source 11 7363 source 5
7320 target 11 7364 target 8
7321 graphics 7365 graphics
7322 [ 7366 [
7323 fill "#000000" 7367 fill "#000000"
7368 width 3
7324 targetArrow "standard" 7369 targetArrow "standard"
7325 ] 7370 ]
7326 LabelGraphics 7371 LabelGraphics
7327 [ 7372 [
7328 text "eSuperTypes reference EClass" 7373 text "data reference FunctionalInterface"
7329 fontSize 14 7374 fontSize 14
7330 fontName "Consolas" 7375 fontName "Consolas"
7331 configuration "AutoFlippingLabel" 7376 configuration "AutoFlippingLabel"
@@ -7335,8 +7380,8 @@ graph
7335 ] 7380 ]
7336 edge 7381 edge
7337 [ 7382 [
7338 source 11 7383 source 5
7339 target 13 7384 target 9
7340 graphics 7385 graphics
7341 [ 7386 [
7342 fill "#000000" 7387 fill "#000000"
@@ -7345,7 +7390,7 @@ graph
7345 ] 7390 ]
7346 LabelGraphics 7391 LabelGraphics
7347 [ 7392 [
7348 text "eOperations reference EClass" 7393 text "data reference FunctionalInterface"
7349 fontSize 14 7394 fontSize 14
7350 fontName "Consolas" 7395 fontName "Consolas"
7351 configuration "AutoFlippingLabel" 7396 configuration "AutoFlippingLabel"
@@ -7355,16 +7400,37 @@ graph
7355 ] 7400 ]
7356 edge 7401 edge
7357 [ 7402 [
7358 source 11 7403 source 5
7404 target 10
7405 graphics
7406 [
7407 fill "#000000"
7408 width 3
7409 targetArrow "standard"
7410 ]
7411 LabelGraphics
7412 [
7413 text "data reference FunctionalInterface"
7414 fontSize 14
7415 fontName "Consolas"
7416 configuration "AutoFlippingLabel"
7417 model "six_pos"
7418 position "thead"
7419 ]
7420 ]
7421 edge
7422 [
7423 source 6
7359 target 11 7424 target 11
7360 graphics 7425 graphics
7361 [ 7426 [
7362 fill "#000000" 7427 fill "#000000"
7428 width 3
7363 targetArrow "standard" 7429 targetArrow "standard"
7364 ] 7430 ]
7365 LabelGraphics 7431 LabelGraphics
7366 [ 7432 [
7367 text "eAllSuperTypes reference EClass" 7433 text "terminator reference FunctionalData"
7368 fontSize 14 7434 fontSize 14
7369 fontName "Consolas" 7435 fontName "Consolas"
7370 configuration "AutoFlippingLabel" 7436 configuration "AutoFlippingLabel"
@@ -7374,8 +7440,8 @@ graph
7374 ] 7440 ]
7375 edge 7441 edge
7376 [ 7442 [
7377 source 11 7443 source 6
7378 target 0 7444 target 5
7379 graphics 7445 graphics
7380 [ 7446 [
7381 fill "#000000" 7447 fill "#000000"
@@ -7383,7 +7449,7 @@ graph
7383 ] 7449 ]
7384 LabelGraphics 7450 LabelGraphics
7385 [ 7451 [
7386 text "ePackage reference EClassifier" 7452 text "interface reference FunctionalData"
7387 fontSize 14 7453 fontSize 14
7388 fontName "Consolas" 7454 fontName "Consolas"
7389 configuration "AutoFlippingLabel" 7455 configuration "AutoFlippingLabel"
@@ -7393,17 +7459,16 @@ graph
7393 ] 7459 ]
7394 edge 7460 edge
7395 [ 7461 [
7396 source 0 7462 source 7
7397 target 14 7463 target 5
7398 graphics 7464 graphics
7399 [ 7465 [
7400 fill "#000000" 7466 fill "#000000"
7401 width 3
7402 targetArrow "standard" 7467 targetArrow "standard"
7403 ] 7468 ]
7404 LabelGraphics 7469 LabelGraphics
7405 [ 7470 [
7406 text "eAnnotations reference EModelElement" 7471 text "interface reference FunctionalData"
7407 fontSize 14 7472 fontSize 14
7408 fontName "Consolas" 7473 fontName "Consolas"
7409 configuration "AutoFlippingLabel" 7474 configuration "AutoFlippingLabel"
@@ -7413,8 +7478,8 @@ graph
7413 ] 7478 ]
7414 edge 7479 edge
7415 [ 7480 [
7416 source 13 7481 source 8
7417 target 11 7482 target 5
7418 graphics 7483 graphics
7419 [ 7484 [
7420 fill "#000000" 7485 fill "#000000"
@@ -7422,7 +7487,7 @@ graph
7422 ] 7487 ]
7423 LabelGraphics 7488 LabelGraphics
7424 [ 7489 [
7425 text "eContainingClass reference EOperation" 7490 text "interface reference FunctionalData"
7426 fontSize 14 7491 fontSize 14
7427 fontName "Consolas" 7492 fontName "Consolas"
7428 configuration "AutoFlippingLabel" 7493 configuration "AutoFlippingLabel"
@@ -7432,17 +7497,16 @@ graph
7432 ] 7497 ]
7433 edge 7498 edge
7434 [ 7499 [
7435 source 0 7500 source 9
7436 target 11 7501 target 5
7437 graphics 7502 graphics
7438 [ 7503 [
7439 fill "#000000" 7504 fill "#000000"
7440 width 3
7441 targetArrow "standard" 7505 targetArrow "standard"
7442 ] 7506 ]
7443 LabelGraphics 7507 LabelGraphics
7444 [ 7508 [
7445 text "eClassifiers reference EPackage" 7509 text "interface reference FunctionalData"
7446 fontSize 14 7510 fontSize 14
7447 fontName "Consolas" 7511 fontName "Consolas"
7448 configuration "AutoFlippingLabel" 7512 configuration "AutoFlippingLabel"
@@ -7452,17 +7516,16 @@ graph
7452 ] 7516 ]
7453 edge 7517 edge
7454 [ 7518 [
7455 source 0 7519 source 10
7456 target 12 7520 target 5
7457 graphics 7521 graphics
7458 [ 7522 [
7459 fill "#000000" 7523 fill "#000000"
7460 width 3
7461 targetArrow "standard" 7524 targetArrow "standard"
7462 ] 7525 ]
7463 LabelGraphics 7526 LabelGraphics
7464 [ 7527 [
7465 text "eSubpackages reference EPackage" 7528 text "interface reference FunctionalData"
7466 fontSize 14 7529 fontSize 14
7467 fontName "Consolas" 7530 fontName "Consolas"
7468 configuration "AutoFlippingLabel" 7531 configuration "AutoFlippingLabel"
@@ -7470,10 +7533,585 @@ graph
7470 position "thead" 7533 position "thead"
7471 ] 7534 ]
7472 ] 7535 ]
7536]
7537graph
7538[
7539 node
7540 [
7541 id 0
7542 graphics
7543 [
7544 w 226.60000000000002
7545 h 40
7546 type "rectangle"
7547 fill "#FFFFFF"
7548 fill2 "#FFFFFF"
7549 outline "#000000"
7550 ]
7551 LabelGraphics
7552 [
7553 text "Root literal FunctionType"
7554 outline "#000000"
7555 fill "#FFFFFF"
7556 fontSize 16
7557 fontName "Monospace"
7558 autoSizePolicy "node_width"
7559 anchor "t"
7560 borderDistance 0.0
7561 ]
7562 LabelGraphics
7563 [
7564 text "
7565 FunctionType enum
7566 "
7567 fontSize 14
7568 fontName "Consolas"
7569 alignment "left"
7570 anchor "tl"
7571 borderDistance 6
7572 ]
7573 ]
7574
7575 node
7576 [
7577 id 1
7578 graphics
7579 [
7580 w 297.0
7581 h 40
7582 type "rectangle"
7583 fill "#FFFFFF"
7584 fill2 "#FFFFFF"
7585 outline "#000000"
7586 ]
7587 LabelGraphics
7588 [
7589 text "Intermediate literal FunctionType"
7590 outline "#000000"
7591 fill "#FFFFFF"
7592 fontSize 16
7593 fontName "Monospace"
7594 autoSizePolicy "node_width"
7595 anchor "t"
7596 borderDistance 0.0
7597 ]
7598 LabelGraphics
7599 [
7600 text "
7601 FunctionType enum
7602 "
7603 fontSize 14
7604 fontName "Consolas"
7605 alignment "left"
7606 anchor "tl"
7607 borderDistance 6
7608 ]
7609 ]
7610
7611 node
7612 [
7613 id 2
7614 graphics
7615 [
7616 w 226.60000000000002
7617 h 40
7618 type "rectangle"
7619 fill "#FFFFFF"
7620 fill2 "#FFFFFF"
7621 outline "#000000"
7622 ]
7623 LabelGraphics
7624 [
7625 text "Leaf literal FunctionType"
7626 outline "#000000"
7627 fill "#FFFFFF"
7628 fontSize 16
7629 fontName "Monospace"
7630 autoSizePolicy "node_width"
7631 anchor "t"
7632 borderDistance 0.0
7633 ]
7634 LabelGraphics
7635 [
7636 text "
7637 FunctionType enum
7638 "
7639 fontSize 14
7640 fontName "Consolas"
7641 alignment "left"
7642 anchor "tl"
7643 borderDistance 6
7644 ]
7645 ]
7646
7647 node
7648 [
7649 id 3
7650 graphics
7651 [
7652 w 41.800000000000004
7653 h 26
7654 type "rectangle"
7655 fill "#FFFFFF"
7656 fill2 "#FFFFFF"
7657 outline "#000000"
7658 ]
7659 LabelGraphics
7660 [
7661 text "true"
7662 outline "#000000"
7663 fill "#FFFFFF"
7664 fontSize 16
7665 fontName "Monospace"
7666 autoSizePolicy "node_width"
7667 anchor "t"
7668 borderDistance 0.0
7669 ]
7670 LabelGraphics
7671 [
7672 text "
7673 "
7674 fontSize 14
7675 fontName "Consolas"
7676 alignment "left"
7677 anchor "tl"
7678 borderDistance 6
7679 ]
7680 ]
7681
7682 node
7683 [
7684 id 4
7685 graphics
7686 [
7687 w 50.6
7688 h 26
7689 type "rectangle"
7690 fill "#FFFFFF"
7691 fill2 "#FFFFFF"
7692 outline "#000000"
7693 ]
7694 LabelGraphics
7695 [
7696 text "false"
7697 outline "#000000"
7698 fill "#FFFFFF"
7699 fontSize 16
7700 fontName "Monospace"
7701 autoSizePolicy "node_width"
7702 anchor "t"
7703 borderDistance 0.0
7704 ]
7705 LabelGraphics
7706 [
7707 text "
7708 "
7709 fontSize 14
7710 fontName "Consolas"
7711 alignment "left"
7712 anchor "tl"
7713 borderDistance 6
7714 ]
7715 ]
7716
7717 node
7718 [
7719 id 5
7720 graphics
7721 [
7722 w 207.9
7723 h 40
7724 type "rectangle"
7725 fill "#FFFFFF"
7726 fill2 "#FFFFFF"
7727 outline "#000000"
7728 ]
7729 LabelGraphics
7730 [
7731 text "null"
7732 outline "#000000"
7733 fill "#FFFFFF"
7734 fontSize 16
7735 fontName "Monospace"
7736 autoSizePolicy "node_width"
7737 anchor "t"
7738 borderDistance 0.0
7739 ]
7740 LabelGraphics
7741 [
7742 text "
7743 FunctionalInterface class
7744 "
7745 fontSize 14
7746 fontName "Consolas"
7747 alignment "left"
7748 anchor "tl"
7749 borderDistance 6
7750 ]
7751 ]
7752
7753 node
7754 [
7755 id 6
7756 graphics
7757 [
7758 w 184.8
7759 h 54
7760 type "rectangle"
7761 fill "#FFFFFF"
7762 fill2 "#FFFFFF"
7763 outline "#000000"
7764 ]
7765 LabelGraphics
7766 [
7767 text "null"
7768 outline "#000000"
7769 fill "#FFFFFF"
7770 fontSize 16
7771 fontName "Monospace"
7772 autoSizePolicy "node_width"
7773 anchor "t"
7774 borderDistance 0.0
7775 ]
7776 LabelGraphics
7777 [
7778 text "
7779 FunctionalOutput class
7780 FunctionalData class
7781 "
7782 fontSize 14
7783 fontName "Consolas"
7784 alignment "left"
7785 anchor "tl"
7786 borderDistance 6
7787 ]
7788 ]
7789
7790 node
7791 [
7792 id 7
7793 graphics
7794 [
7795 w 184.8
7796 h 54
7797 type "rectangle"
7798 fill "#FFFFFF"
7799 fill2 "#FFFFFF"
7800 outline "#000000"
7801 ]
7802 LabelGraphics
7803 [
7804 text "null"
7805 outline "#000000"
7806 fill "#FFFFFF"
7807 fontSize 16
7808 fontName "Monospace"
7809 autoSizePolicy "node_width"
7810 anchor "t"
7811 borderDistance 0.0
7812 ]
7813 LabelGraphics
7814 [
7815 text "
7816 FunctionalOutput class
7817 FunctionalData class
7818 "
7819 fontSize 14
7820 fontName "Consolas"
7821 alignment "left"
7822 anchor "tl"
7823 borderDistance 6
7824 ]
7825 ]
7826
7827 node
7828 [
7829 id 8
7830 graphics
7831 [
7832 w 184.8
7833 h 54
7834 type "rectangle"
7835 fill "#FFFFFF"
7836 fill2 "#FFFFFF"
7837 outline "#000000"
7838 ]
7839 LabelGraphics
7840 [
7841 text "null"
7842 outline "#000000"
7843 fill "#FFFFFF"
7844 fontSize 16
7845 fontName "Monospace"
7846 autoSizePolicy "node_width"
7847 anchor "t"
7848 borderDistance 0.0
7849 ]
7850 LabelGraphics
7851 [
7852 text "
7853 FunctionalOutput class
7854 FunctionalData class
7855 "
7856 fontSize 14
7857 fontName "Consolas"
7858 alignment "left"
7859 anchor "tl"
7860 borderDistance 6
7861 ]
7862 ]
7863
7864 node
7865 [
7866 id 9
7867 graphics
7868 [
7869 w 161.70000000000002
7870 h 40
7871 type "rectangle"
7872 fill "#FFFFFF"
7873 fill2 "#FFFFFF"
7874 outline "#000000"
7875 ]
7876 LabelGraphics
7877 [
7878 text "null"
7879 outline "#000000"
7880 fill "#FFFFFF"
7881 fontSize 16
7882 fontName "Monospace"
7883 autoSizePolicy "node_width"
7884 anchor "t"
7885 borderDistance 0.0
7886 ]
7887 LabelGraphics
7888 [
7889 text "
7890 FAMTerminator class
7891 "
7892 fontSize 14
7893 fontName "Consolas"
7894 alignment "left"
7895 anchor "tl"
7896 borderDistance 6
7897 ]
7898 ]
7899
7900 node
7901 [
7902 id 10
7903 graphics
7904 [
7905 w 161.70000000000002
7906 h 40
7907 type "rectangle"
7908 fill "#FFFFFF"
7909 fill2 "#FFFFFF"
7910 outline "#000000"
7911 ]
7912 LabelGraphics
7913 [
7914 text "null"
7915 outline "#000000"
7916 fill "#FFFFFF"
7917 fontSize 16
7918 fontName "Monospace"
7919 autoSizePolicy "node_width"
7920 anchor "t"
7921 borderDistance 0.0
7922 ]
7923 LabelGraphics
7924 [
7925 text "
7926 FAMTerminator class
7927 "
7928 fontSize 14
7929 fontName "Consolas"
7930 alignment "left"
7931 anchor "tl"
7932 borderDistance 6
7933 ]
7934 ]
7935
7936 node
7937 [
7938 id 11
7939 graphics
7940 [
7941 w 161.70000000000002
7942 h 40
7943 type "rectangle"
7944 fill "#FFFFFF"
7945 fill2 "#FFFFFF"
7946 outline "#000000"
7947 ]
7948 LabelGraphics
7949 [
7950 text "null"
7951 outline "#000000"
7952 fill "#FFFFFF"
7953 fontSize 16
7954 fontName "Monospace"
7955 autoSizePolicy "node_width"
7956 anchor "t"
7957 borderDistance 0.0
7958 ]
7959 LabelGraphics
7960 [
7961 text "
7962 FAMTerminator class
7963 "
7964 fontSize 14
7965 fontName "Consolas"
7966 alignment "left"
7967 anchor "tl"
7968 borderDistance 6
7969 ]
7970 ]
7971
7972 node
7973 [
7974 id 12
7975 graphics
7976 [
7977 w 112.2
7978 h 26
7979 type "rectangle"
7980 fill "#FFFFFF"
7981 fill2 "#FFFFFF"
7982 outline "#000000"
7983 ]
7984 LabelGraphics
7985 [
7986 text "New Integers"
7987 outline "#000000"
7988 fill "#FFFFFF"
7989 fontSize 16
7990 fontName "Monospace"
7991 autoSizePolicy "node_width"
7992 anchor "t"
7993 borderDistance 0.0
7994 ]
7995 LabelGraphics
7996 [
7997 text "
7998 "
7999 fontSize 14
8000 fontName "Consolas"
8001 alignment "left"
8002 anchor "tl"
8003 borderDistance 6
8004 ]
8005 ]
8006
8007 node
8008 [
8009 id 13
8010 graphics
8011 [
8012 w 85.80000000000001
8013 h 26
8014 type "rectangle"
8015 fill "#FFFFFF"
8016 fill2 "#FFFFFF"
8017 outline "#000000"
8018 ]
8019 LabelGraphics
8020 [
8021 text "New Reals"
8022 outline "#000000"
8023 fill "#FFFFFF"
8024 fontSize 16
8025 fontName "Monospace"
8026 autoSizePolicy "node_width"
8027 anchor "t"
8028 borderDistance 0.0
8029 ]
8030 LabelGraphics
8031 [
8032 text "
8033 "
8034 fontSize 14
8035 fontName "Consolas"
8036 alignment "left"
8037 anchor "tl"
8038 borderDistance 6
8039 ]
8040 ]
8041
8042 node
8043 [
8044 id 14
8045 graphics
8046 [
8047 w 103.4
8048 h 26
8049 type "rectangle"
8050 fill "#FFFFFF"
8051 fill2 "#FFFFFF"
8052 outline "#000000"
8053 ]
8054 LabelGraphics
8055 [
8056 text "New Strings"
8057 outline "#000000"
8058 fill "#FFFFFF"
8059 fontSize 16
8060 fontName "Monospace"
8061 autoSizePolicy "node_width"
8062 anchor "t"
8063 borderDistance 0.0
8064 ]
8065 LabelGraphics
8066 [
8067 text "
8068 "
8069 fontSize 14
8070 fontName "Consolas"
8071 alignment "left"
8072 anchor "tl"
8073 borderDistance 6
8074 ]
8075 ]
8076
8077 node
8078 [
8079 id 15
8080 graphics
8081 [
8082 w 103.4
8083 h 26
8084 type "rectangle"
8085 fill "#FFFFFF"
8086 fill2 "#FFFFFF"
8087 outline "#000000"
8088 ]
8089 LabelGraphics
8090 [
8091 text "New Objects"
8092 outline "#000000"
8093 fill "#FFFFFF"
8094 fontSize 16
8095 fontName "Monospace"
8096 autoSizePolicy "node_width"
8097 anchor "t"
8098 borderDistance 0.0
8099 ]
8100 LabelGraphics
8101 [
8102 text "
8103 "
8104 fontSize 14
8105 fontName "Consolas"
8106 alignment "left"
8107 anchor "tl"
8108 borderDistance 6
8109 ]
8110 ]
7473 edge 8111 edge
7474 [ 8112 [
7475 source 12 8113 source 9
7476 target 0 8114 target 6
7477 graphics 8115 graphics
7478 [ 8116 [
7479 fill "#000000" 8117 fill "#000000"
@@ -7481,7 +8119,7 @@ graph
7481 ] 8119 ]
7482 LabelGraphics 8120 LabelGraphics
7483 [ 8121 [
7484 text "eSuperPackage reference EPackage" 8122 text "data reference FAMTerminator"
7485 fontSize 14 8123 fontSize 14
7486 fontName "Consolas" 8124 fontName "Consolas"
7487 configuration "AutoFlippingLabel" 8125 configuration "AutoFlippingLabel"
@@ -7491,8 +8129,8 @@ graph
7491 ] 8129 ]
7492 edge 8130 edge
7493 [ 8131 [
7494 source 11 8132 source 10
7495 target 8 8133 target 7
7496 graphics 8134 graphics
7497 [ 8135 [
7498 fill "#000000" 8136 fill "#000000"
@@ -7500,7 +8138,7 @@ graph
7500 ] 8138 ]
7501 LabelGraphics 8139 LabelGraphics
7502 [ 8140 [
7503 text "instanceClassName attribute EClassifier" 8141 text "data reference FAMTerminator"
7504 fontSize 14 8142 fontSize 14
7505 fontName "Consolas" 8143 fontName "Consolas"
7506 configuration "AutoFlippingLabel" 8144 configuration "AutoFlippingLabel"
@@ -7511,7 +8149,7 @@ graph
7511 edge 8149 edge
7512 [ 8150 [
7513 source 11 8151 source 11
7514 target 9 8152 target 8
7515 graphics 8153 graphics
7516 [ 8154 [
7517 fill "#000000" 8155 fill "#000000"
@@ -7519,7 +8157,7 @@ graph
7519 ] 8157 ]
7520 LabelGraphics 8158 LabelGraphics
7521 [ 8159 [
7522 text "instanceTypeName attribute EClassifier" 8160 text "data reference FAMTerminator"
7523 fontSize 14 8161 fontSize 14
7524 fontName "Consolas" 8162 fontName "Consolas"
7525 configuration "AutoFlippingLabel" 8163 configuration "AutoFlippingLabel"
@@ -7529,16 +8167,17 @@ graph
7529 ] 8167 ]
7530 edge 8168 edge
7531 [ 8169 [
7532 source 0 8170 source 5
7533 target 10 8171 target 6
7534 graphics 8172 graphics
7535 [ 8173 [
7536 fill "#000000" 8174 fill "#000000"
8175 width 3
7537 targetArrow "standard" 8176 targetArrow "standard"
7538 ] 8177 ]
7539 LabelGraphics 8178 LabelGraphics
7540 [ 8179 [
7541 text "name attribute ENamedElement" 8180 text "data reference FunctionalInterface"
7542 fontSize 14 8181 fontSize 14
7543 fontName "Consolas" 8182 fontName "Consolas"
7544 configuration "AutoFlippingLabel" 8183 configuration "AutoFlippingLabel"
@@ -7548,16 +8187,17 @@ graph
7548 ] 8187 ]
7549 edge 8188 edge
7550 [ 8189 [
7551 source 12 8190 source 5
7552 target 7 8191 target 7
7553 graphics 8192 graphics
7554 [ 8193 [
7555 fill "#000000" 8194 fill "#000000"
8195 width 3
7556 targetArrow "standard" 8196 targetArrow "standard"
7557 ] 8197 ]
7558 LabelGraphics 8198 LabelGraphics
7559 [ 8199 [
7560 text "name attribute ENamedElement" 8200 text "data reference FunctionalInterface"
7561 fontSize 14 8201 fontSize 14
7562 fontName "Consolas" 8202 fontName "Consolas"
7563 configuration "AutoFlippingLabel" 8203 configuration "AutoFlippingLabel"
@@ -7567,16 +8207,17 @@ graph
7567 ] 8207 ]
7568 edge 8208 edge
7569 [ 8209 [
7570 source 13 8210 source 5
7571 target 9 8211 target 8
7572 graphics 8212 graphics
7573 [ 8213 [
7574 fill "#000000" 8214 fill "#000000"
8215 width 3
7575 targetArrow "standard" 8216 targetArrow "standard"
7576 ] 8217 ]
7577 LabelGraphics 8218 LabelGraphics
7578 [ 8219 [
7579 text "name attribute ENamedElement" 8220 text "data reference FunctionalInterface"
7580 fontSize 14 8221 fontSize 14
7581 fontName "Consolas" 8222 fontName "Consolas"
7582 configuration "AutoFlippingLabel" 8223 configuration "AutoFlippingLabel"
@@ -7586,16 +8227,17 @@ graph
7586 ] 8227 ]
7587 edge 8228 edge
7588 [ 8229 [
7589 source 0 8230 source 6
7590 target 9 8231 target 9
7591 graphics 8232 graphics
7592 [ 8233 [
7593 fill "#000000" 8234 fill "#000000"
8235 width 3
7594 targetArrow "standard" 8236 targetArrow "standard"
7595 ] 8237 ]
7596 LabelGraphics 8238 LabelGraphics
7597 [ 8239 [
7598 text "nsURI attribute EPackage" 8240 text "terminator reference FunctionalData"
7599 fontSize 14 8241 fontSize 14
7600 fontName "Consolas" 8242 fontName "Consolas"
7601 configuration "AutoFlippingLabel" 8243 configuration "AutoFlippingLabel"
@@ -7605,16 +8247,17 @@ graph
7605 ] 8247 ]
7606 edge 8248 edge
7607 [ 8249 [
7608 source 12 8250 source 7
7609 target 8 8251 target 10
7610 graphics 8252 graphics
7611 [ 8253 [
7612 fill "#000000" 8254 fill "#000000"
8255 width 3
7613 targetArrow "standard" 8256 targetArrow "standard"
7614 ] 8257 ]
7615 LabelGraphics 8258 LabelGraphics
7616 [ 8259 [
7617 text "nsURI attribute EPackage" 8260 text "terminator reference FunctionalData"
7618 fontSize 14 8261 fontSize 14
7619 fontName "Consolas" 8262 fontName "Consolas"
7620 configuration "AutoFlippingLabel" 8263 configuration "AutoFlippingLabel"
@@ -7624,8 +8267,28 @@ graph
7624 ] 8267 ]
7625 edge 8268 edge
7626 [ 8269 [
7627 source 0 8270 source 8
7628 target 8 8271 target 11
8272 graphics
8273 [
8274 fill "#000000"
8275 width 3
8276 targetArrow "standard"
8277 ]
8278 LabelGraphics
8279 [
8280 text "terminator reference FunctionalData"
8281 fontSize 14
8282 fontName "Consolas"
8283 configuration "AutoFlippingLabel"
8284 model "six_pos"
8285 position "thead"
8286 ]
8287 ]
8288 edge
8289 [
8290 source 6
8291 target 5
7629 graphics 8292 graphics
7630 [ 8293 [
7631 fill "#000000" 8294 fill "#000000"
@@ -7633,7 +8296,7 @@ graph
7633 ] 8296 ]
7634 LabelGraphics 8297 LabelGraphics
7635 [ 8298 [
7636 text "nsPrefix attribute EPackage" 8299 text "interface reference FunctionalData"
7637 fontSize 14 8300 fontSize 14
7638 fontName "Consolas" 8301 fontName "Consolas"
7639 configuration "AutoFlippingLabel" 8302 configuration "AutoFlippingLabel"
@@ -7643,8 +8306,8 @@ graph
7643 ] 8306 ]
7644 edge 8307 edge
7645 [ 8308 [
7646 source 13 8309 source 7
7647 target 1 8310 target 5
7648 graphics 8311 graphics
7649 [ 8312 [
7650 fill "#000000" 8313 fill "#000000"
@@ -7652,7 +8315,7 @@ graph
7652 ] 8315 ]
7653 LabelGraphics 8316 LabelGraphics
7654 [ 8317 [
7655 text "unique attribute ETypedElement" 8318 text "interface reference FunctionalData"
7656 fontSize 14 8319 fontSize 14
7657 fontName "Consolas" 8320 fontName "Consolas"
7658 configuration "AutoFlippingLabel" 8321 configuration "AutoFlippingLabel"
@@ -7662,8 +8325,8 @@ graph
7662 ] 8325 ]
7663 edge 8326 edge
7664 [ 8327 [
7665 source 13 8328 source 8
7666 target 4 8329 target 5
7667 graphics 8330 graphics
7668 [ 8331 [
7669 fill "#000000" 8332 fill "#000000"
@@ -7671,7 +8334,7 @@ graph
7671 ] 8334 ]
7672 LabelGraphics 8335 LabelGraphics
7673 [ 8336 [
7674 text "upperBound attribute ETypedElement" 8337 text "interface reference FunctionalData"
7675 fontSize 14 8338 fontSize 14
7676 fontName "Consolas" 8339 fontName "Consolas"
7677 configuration "AutoFlippingLabel" 8340 configuration "AutoFlippingLabel"
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/3.png b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/3.png
index bfe18c4e..5df81bb3 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/3.png
+++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/3.png
Binary files differ
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/3.xmi b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/3.xmi
index 45634c72..b4259573 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/3.xmi
+++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/3.xmi
@@ -1,10 +1,12 @@
1<?xml version="1.0" encoding="ASCII"?> 1<?xml version="1.0" encoding="ASCII"?>
2<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="packageName" nsURI="nsUri" nsPrefix="nsPrefix"> 2<fam:FunctionalInterface xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:fam="FamMetamodel">
3 <eAnnotations> 3 <data xsi:type="fam:FunctionalOutput">
4 <details/> 4 <terminator/>
5 </eAnnotations> 5 </data>
6 <eClassifiers xsi:type="ecore:EClass" instanceTypeName="nsUri" eSuperTypes="//%"> 6 <data xsi:type="fam:FunctionalOutput">
7 <eOperations name="nsUri" upperBound="0"/> 7 <terminator/>
8 </eClassifiers> 8 </data>
9 <eSubpackages name="B" nsURI="nsPrefix"/> 9 <data xsi:type="fam:FunctionalOutput">
10</ecore:EPackage> 10 <terminator/>
11 </data>
12</fam:FunctionalInterface>
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/4.gml b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/4.gml
index a44b2785..2dd09497 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/4.gml
+++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/4.gml
@@ -5,8 +5,8 @@ graph
5 id 0 5 id 0
6 graphics 6 graphics
7 [ 7 [
8 w 254.10000000000002 8 w 226.60000000000002
9 h 110 9 h 40
10 type "rectangle" 10 type "rectangle"
11 fill "#FFFFFF" 11 fill "#FFFFFF"
12 fill2 "#FFFFFF" 12 fill2 "#FFFFFF"
@@ -14,7 +14,7 @@ graph
14 ] 14 ]
15 LabelGraphics 15 LabelGraphics
16 [ 16 [
17 text "o 1" 17 text "Root literal FunctionType"
18 outline "#000000" 18 outline "#000000"
19 fill "#FFFFFF" 19 fill "#FFFFFF"
20 fontSize 16 20 fontSize 16
@@ -26,12 +26,7 @@ graph
26 LabelGraphics 26 LabelGraphics
27 [ 27 [
28 text " 28 text "
29 EModelElement class DefinedPart 29 FunctionType enum
30 ENamedElement class DefinedPart
31 EPackage class DefinedPart
32 EModelElement class
33 ENamedElement class
34 EPackage class
35 " 30 "
36 fontSize 14 31 fontSize 14
37 fontName "Consolas" 32 fontName "Consolas"
@@ -46,6 +41,78 @@ graph
46 id 1 41 id 1
47 graphics 42 graphics
48 [ 43 [
44 w 297.0
45 h 40
46 type "rectangle"
47 fill "#FFFFFF"
48 fill2 "#FFFFFF"
49 outline "#000000"
50 ]
51 LabelGraphics
52 [
53 text "Intermediate literal FunctionType"
54 outline "#000000"
55 fill "#FFFFFF"
56 fontSize 16
57 fontName "Monospace"
58 autoSizePolicy "node_width"
59 anchor "t"
60 borderDistance 0.0
61 ]
62 LabelGraphics
63 [
64 text "
65 FunctionType enum
66 "
67 fontSize 14
68 fontName "Consolas"
69 alignment "left"
70 anchor "tl"
71 borderDistance 6
72 ]
73 ]
74
75 node
76 [
77 id 2
78 graphics
79 [
80 w 226.60000000000002
81 h 40
82 type "rectangle"
83 fill "#FFFFFF"
84 fill2 "#FFFFFF"
85 outline "#000000"
86 ]
87 LabelGraphics
88 [
89 text "Leaf literal FunctionType"
90 outline "#000000"
91 fill "#FFFFFF"
92 fontSize 16
93 fontName "Monospace"
94 autoSizePolicy "node_width"
95 anchor "t"
96 borderDistance 0.0
97 ]
98 LabelGraphics
99 [
100 text "
101 FunctionType enum
102 "
103 fontSize 14
104 fontName "Consolas"
105 alignment "left"
106 anchor "tl"
107 borderDistance 6
108 ]
109 ]
110
111 node
112 [
113 id 3
114 graphics
115 [
49 w 41.800000000000004 116 w 41.800000000000004
50 h 26 117 h 26
51 type "rectangle" 118 type "rectangle"
@@ -78,7 +145,7 @@ graph
78 145
79 node 146 node
80 [ 147 [
81 id 2 148 id 4
82 graphics 149 graphics
83 [ 150 [
84 w 50.6 151 w 50.6
@@ -113,10 +180,863 @@ graph
113 180
114 node 181 node
115 [ 182 [
183 id 5
184 graphics
185 [
186 w 207.9
187 h 40
188 type "rectangle"
189 fill "#FFFFFF"
190 fill2 "#FFFFFF"
191 outline "#000000"
192 ]
193 LabelGraphics
194 [
195 text "null"
196 outline "#000000"
197 fill "#FFFFFF"
198 fontSize 16
199 fontName "Monospace"
200 autoSizePolicy "node_width"
201 anchor "t"
202 borderDistance 0.0
203 ]
204 LabelGraphics
205 [
206 text "
207 FunctionalInterface class
208 "
209 fontSize 14
210 fontName "Consolas"
211 alignment "left"
212 anchor "tl"
213 borderDistance 6
214 ]
215 ]
216
217 node
218 [
219 id 6
220 graphics
221 [
222 w 184.8
223 h 54
224 type "rectangle"
225 fill "#FFFFFF"
226 fill2 "#FFFFFF"
227 outline "#000000"
228 ]
229 LabelGraphics
230 [
231 text "null"
232 outline "#000000"
233 fill "#FFFFFF"
234 fontSize 16
235 fontName "Monospace"
236 autoSizePolicy "node_width"
237 anchor "t"
238 borderDistance 0.0
239 ]
240 LabelGraphics
241 [
242 text "
243 FunctionalOutput class
244 FunctionalData class
245 "
246 fontSize 14
247 fontName "Consolas"
248 alignment "left"
249 anchor "tl"
250 borderDistance 6
251 ]
252 ]
253
254 node
255 [
256 id 7
257 graphics
258 [
259 w 184.8
260 h 54
261 type "rectangle"
262 fill "#FFFFFF"
263 fill2 "#FFFFFF"
264 outline "#000000"
265 ]
266 LabelGraphics
267 [
268 text "null"
269 outline "#000000"
270 fill "#FFFFFF"
271 fontSize 16
272 fontName "Monospace"
273 autoSizePolicy "node_width"
274 anchor "t"
275 borderDistance 0.0
276 ]
277 LabelGraphics
278 [
279 text "
280 FunctionalOutput class
281 FunctionalData class
282 "
283 fontSize 14
284 fontName "Consolas"
285 alignment "left"
286 anchor "tl"
287 borderDistance 6
288 ]
289 ]
290
291 node
292 [
293 id 8
294 graphics
295 [
296 w 177.10000000000002
297 h 54
298 type "rectangle"
299 fill "#FFFFFF"
300 fill2 "#FFFFFF"
301 outline "#000000"
302 ]
303 LabelGraphics
304 [
305 text "null"
306 outline "#000000"
307 fill "#FFFFFF"
308 fontSize 16
309 fontName "Monospace"
310 autoSizePolicy "node_width"
311 anchor "t"
312 borderDistance 0.0
313 ]
314 LabelGraphics
315 [
316 text "
317 FunctionalInput class
318 FunctionalData class
319 "
320 fontSize 14
321 fontName "Consolas"
322 alignment "left"
323 anchor "tl"
324 borderDistance 6
325 ]
326 ]
327
328 node
329 [
330 id 9
331 graphics
332 [
333 w 177.10000000000002
334 h 40
335 type "rectangle"
336 fill "#FFFFFF"
337 fill2 "#FFFFFF"
338 outline "#000000"
339 ]
340 LabelGraphics
341 [
342 text "null"
343 outline "#000000"
344 fill "#FFFFFF"
345 fontSize 16
346 fontName "Monospace"
347 autoSizePolicy "node_width"
348 anchor "t"
349 borderDistance 0.0
350 ]
351 LabelGraphics
352 [
353 text "
354 InformationLink class
355 "
356 fontSize 14
357 fontName "Consolas"
358 alignment "left"
359 anchor "tl"
360 borderDistance 6
361 ]
362 ]
363
364 node
365 [
366 id 10
367 graphics
368 [
369 w 177.10000000000002
370 h 40
371 type "rectangle"
372 fill "#FFFFFF"
373 fill2 "#FFFFFF"
374 outline "#000000"
375 ]
376 LabelGraphics
377 [
378 text "null"
379 outline "#000000"
380 fill "#FFFFFF"
381 fontSize 16
382 fontName "Monospace"
383 autoSizePolicy "node_width"
384 anchor "t"
385 borderDistance 0.0
386 ]
387 LabelGraphics
388 [
389 text "
390 InformationLink class
391 "
392 fontSize 14
393 fontName "Consolas"
394 alignment "left"
395 anchor "tl"
396 borderDistance 6
397 ]
398 ]
399
400 node
401 [
402 id 11
403 graphics
404 [
405 w 177.10000000000002
406 h 40
407 type "rectangle"
408 fill "#FFFFFF"
409 fill2 "#FFFFFF"
410 outline "#000000"
411 ]
412 LabelGraphics
413 [
414 text "null"
415 outline "#000000"
416 fill "#FFFFFF"
417 fontSize 16
418 fontName "Monospace"
419 autoSizePolicy "node_width"
420 anchor "t"
421 borderDistance 0.0
422 ]
423 LabelGraphics
424 [
425 text "
426 InformationLink class
427 "
428 fontSize 14
429 fontName "Consolas"
430 alignment "left"
431 anchor "tl"
432 borderDistance 6
433 ]
434 ]
435
436 node
437 [
438 id 12
439 graphics
440 [
441 w 112.2
442 h 26
443 type "rectangle"
444 fill "#FFFFFF"
445 fill2 "#FFFFFF"
446 outline "#000000"
447 ]
448 LabelGraphics
449 [
450 text "New Integers"
451 outline "#000000"
452 fill "#FFFFFF"
453 fontSize 16
454 fontName "Monospace"
455 autoSizePolicy "node_width"
456 anchor "t"
457 borderDistance 0.0
458 ]
459 LabelGraphics
460 [
461 text "
462 "
463 fontSize 14
464 fontName "Consolas"
465 alignment "left"
466 anchor "tl"
467 borderDistance 6
468 ]
469 ]
470
471 node
472 [
473 id 13
474 graphics
475 [
476 w 85.80000000000001
477 h 26
478 type "rectangle"
479 fill "#FFFFFF"
480 fill2 "#FFFFFF"
481 outline "#000000"
482 ]
483 LabelGraphics
484 [
485 text "New Reals"
486 outline "#000000"
487 fill "#FFFFFF"
488 fontSize 16
489 fontName "Monospace"
490 autoSizePolicy "node_width"
491 anchor "t"
492 borderDistance 0.0
493 ]
494 LabelGraphics
495 [
496 text "
497 "
498 fontSize 14
499 fontName "Consolas"
500 alignment "left"
501 anchor "tl"
502 borderDistance 6
503 ]
504 ]
505
506 node
507 [
508 id 14
509 graphics
510 [
511 w 103.4
512 h 26
513 type "rectangle"
514 fill "#FFFFFF"
515 fill2 "#FFFFFF"
516 outline "#000000"
517 ]
518 LabelGraphics
519 [
520 text "New Strings"
521 outline "#000000"
522 fill "#FFFFFF"
523 fontSize 16
524 fontName "Monospace"
525 autoSizePolicy "node_width"
526 anchor "t"
527 borderDistance 0.0
528 ]
529 LabelGraphics
530 [
531 text "
532 "
533 fontSize 14
534 fontName "Consolas"
535 alignment "left"
536 anchor "tl"
537 borderDistance 6
538 ]
539 ]
540
541 node
542 [
543 id 15
544 graphics
545 [
546 w 103.4
547 h 26
548 type "rectangle"
549 fill "#FFFFFF"
550 fill2 "#FFFFFF"
551 outline "#000000"
552 ]
553 LabelGraphics
554 [
555 text "New Objects"
556 outline "#000000"
557 fill "#FFFFFF"
558 fontSize 16
559 fontName "Monospace"
560 autoSizePolicy "node_width"
561 anchor "t"
562 borderDistance 0.0
563 ]
564 LabelGraphics
565 [
566 text "
567 "
568 fontSize 14
569 fontName "Consolas"
570 alignment "left"
571 anchor "tl"
572 borderDistance 6
573 ]
574 ]
575 edge
576 [
577 source 9
578 target 7
579 graphics
580 [
581 fill "#000000"
582 targetArrow "standard"
583 ]
584 LabelGraphics
585 [
586 text "from reference InformationLink"
587 fontSize 14
588 fontName "Consolas"
589 configuration "AutoFlippingLabel"
590 model "six_pos"
591 position "thead"
592 ]
593 ]
594 edge
595 [
596 source 10
597 target 7
598 graphics
599 [
600 fill "#000000"
601 targetArrow "standard"
602 ]
603 LabelGraphics
604 [
605 text "from reference InformationLink"
606 fontSize 14
607 fontName "Consolas"
608 configuration "AutoFlippingLabel"
609 model "six_pos"
610 position "thead"
611 ]
612 ]
613 edge
614 [
615 source 11
616 target 6
617 graphics
618 [
619 fill "#000000"
620 targetArrow "standard"
621 ]
622 LabelGraphics
623 [
624 text "from reference InformationLink"
625 fontSize 14
626 fontName "Consolas"
627 configuration "AutoFlippingLabel"
628 model "six_pos"
629 position "thead"
630 ]
631 ]
632 edge
633 [
634 source 9
635 target 8
636 graphics
637 [
638 fill "#000000"
639 targetArrow "standard"
640 ]
641 LabelGraphics
642 [
643 text "to reference InformationLink"
644 fontSize 14
645 fontName "Consolas"
646 configuration "AutoFlippingLabel"
647 model "six_pos"
648 position "thead"
649 ]
650 ]
651 edge
652 [
653 source 11
654 target 8
655 graphics
656 [
657 fill "#000000"
658 targetArrow "standard"
659 ]
660 LabelGraphics
661 [
662 text "to reference InformationLink"
663 fontSize 14
664 fontName "Consolas"
665 configuration "AutoFlippingLabel"
666 model "six_pos"
667 position "thead"
668 ]
669 ]
670 edge
671 [
672 source 10
673 target 8
674 graphics
675 [
676 fill "#000000"
677 targetArrow "standard"
678 ]
679 LabelGraphics
680 [
681 text "to reference InformationLink"
682 fontSize 14
683 fontName "Consolas"
684 configuration "AutoFlippingLabel"
685 model "six_pos"
686 position "thead"
687 ]
688 ]
689 edge
690 [
691 source 5
692 target 6
693 graphics
694 [
695 fill "#000000"
696 width 3
697 targetArrow "standard"
698 ]
699 LabelGraphics
700 [
701 text "data reference FunctionalInterface"
702 fontSize 14
703 fontName "Consolas"
704 configuration "AutoFlippingLabel"
705 model "six_pos"
706 position "thead"
707 ]
708 ]
709 edge
710 [
711 source 5
712 target 7
713 graphics
714 [
715 fill "#000000"
716 width 3
717 targetArrow "standard"
718 ]
719 LabelGraphics
720 [
721 text "data reference FunctionalInterface"
722 fontSize 14
723 fontName "Consolas"
724 configuration "AutoFlippingLabel"
725 model "six_pos"
726 position "thead"
727 ]
728 ]
729 edge
730 [
731 source 5
732 target 8
733 graphics
734 [
735 fill "#000000"
736 width 3
737 targetArrow "standard"
738 ]
739 LabelGraphics
740 [
741 text "data reference FunctionalInterface"
742 fontSize 14
743 fontName "Consolas"
744 configuration "AutoFlippingLabel"
745 model "six_pos"
746 position "thead"
747 ]
748 ]
749 edge
750 [
751 source 8
752 target 9
753 graphics
754 [
755 fill "#000000"
756 targetArrow "standard"
757 ]
758 LabelGraphics
759 [
760 text "IncomingLinks reference FunctionalInput"
761 fontSize 14
762 fontName "Consolas"
763 configuration "AutoFlippingLabel"
764 model "six_pos"
765 position "thead"
766 ]
767 ]
768 edge
769 [
770 source 8
771 target 11
772 graphics
773 [
774 fill "#000000"
775 targetArrow "standard"
776 ]
777 LabelGraphics
778 [
779 text "IncomingLinks reference FunctionalInput"
780 fontSize 14
781 fontName "Consolas"
782 configuration "AutoFlippingLabel"
783 model "six_pos"
784 position "thead"
785 ]
786 ]
787 edge
788 [
789 source 8
790 target 10
791 graphics
792 [
793 fill "#000000"
794 targetArrow "standard"
795 ]
796 LabelGraphics
797 [
798 text "IncomingLinks reference FunctionalInput"
799 fontSize 14
800 fontName "Consolas"
801 configuration "AutoFlippingLabel"
802 model "six_pos"
803 position "thead"
804 ]
805 ]
806 edge
807 [
808 source 7
809 target 9
810 graphics
811 [
812 fill "#000000"
813 width 3
814 targetArrow "standard"
815 ]
816 LabelGraphics
817 [
818 text "outgoingLinks reference FunctionalOutput"
819 fontSize 14
820 fontName "Consolas"
821 configuration "AutoFlippingLabel"
822 model "six_pos"
823 position "thead"
824 ]
825 ]
826 edge
827 [
828 source 7
829 target 10
830 graphics
831 [
832 fill "#000000"
833 width 3
834 targetArrow "standard"
835 ]
836 LabelGraphics
837 [
838 text "outgoingLinks reference FunctionalOutput"
839 fontSize 14
840 fontName "Consolas"
841 configuration "AutoFlippingLabel"
842 model "six_pos"
843 position "thead"
844 ]
845 ]
846 edge
847 [
848 source 6
849 target 11
850 graphics
851 [
852 fill "#000000"
853 width 3
854 targetArrow "standard"
855 ]
856 LabelGraphics
857 [
858 text "outgoingLinks reference FunctionalOutput"
859 fontSize 14
860 fontName "Consolas"
861 configuration "AutoFlippingLabel"
862 model "six_pos"
863 position "thead"
864 ]
865 ]
866 edge
867 [
868 source 6
869 target 5
870 graphics
871 [
872 fill "#000000"
873 targetArrow "standard"
874 ]
875 LabelGraphics
876 [
877 text "interface reference FunctionalData"
878 fontSize 14
879 fontName "Consolas"
880 configuration "AutoFlippingLabel"
881 model "six_pos"
882 position "thead"
883 ]
884 ]
885 edge
886 [
887 source 7
888 target 5
889 graphics
890 [
891 fill "#000000"
892 targetArrow "standard"
893 ]
894 LabelGraphics
895 [
896 text "interface reference FunctionalData"
897 fontSize 14
898 fontName "Consolas"
899 configuration "AutoFlippingLabel"
900 model "six_pos"
901 position "thead"
902 ]
903 ]
904 edge
905 [
906 source 8
907 target 5
908 graphics
909 [
910 fill "#000000"
911 targetArrow "standard"
912 ]
913 LabelGraphics
914 [
915 text "interface reference FunctionalData"
916 fontSize 14
917 fontName "Consolas"
918 configuration "AutoFlippingLabel"
919 model "six_pos"
920 position "thead"
921 ]
922 ]
923]
924graph
925[
926 node
927 [
928 id 0
929 graphics
930 [
931 w 226.60000000000002
932 h 40
933 type "rectangle"
934 fill "#FFFFFF"
935 fill2 "#FFFFFF"
936 outline "#000000"
937 ]
938 LabelGraphics
939 [
940 text "Root literal FunctionType"
941 outline "#000000"
942 fill "#FFFFFF"
943 fontSize 16
944 fontName "Monospace"
945 autoSizePolicy "node_width"
946 anchor "t"
947 borderDistance 0.0
948 ]
949 LabelGraphics
950 [
951 text "
952 FunctionType enum
953 "
954 fontSize 14
955 fontName "Consolas"
956 alignment "left"
957 anchor "tl"
958 borderDistance 6
959 ]
960 ]
961
962 node
963 [
964 id 1
965 graphics
966 [
967 w 297.0
968 h 40
969 type "rectangle"
970 fill "#FFFFFF"
971 fill2 "#FFFFFF"
972 outline "#000000"
973 ]
974 LabelGraphics
975 [
976 text "Intermediate literal FunctionType"
977 outline "#000000"
978 fill "#FFFFFF"
979 fontSize 16
980 fontName "Monospace"
981 autoSizePolicy "node_width"
982 anchor "t"
983 borderDistance 0.0
984 ]
985 LabelGraphics
986 [
987 text "
988 FunctionType enum
989 "
990 fontSize 14
991 fontName "Consolas"
992 alignment "left"
993 anchor "tl"
994 borderDistance 6
995 ]
996 ]
997
998 node
999 [
1000 id 2
1001 graphics
1002 [
1003 w 226.60000000000002
1004 h 40
1005 type "rectangle"
1006 fill "#FFFFFF"
1007 fill2 "#FFFFFF"
1008 outline "#000000"
1009 ]
1010 LabelGraphics
1011 [
1012 text "Leaf literal FunctionType"
1013 outline "#000000"
1014 fill "#FFFFFF"
1015 fontSize 16
1016 fontName "Monospace"
1017 autoSizePolicy "node_width"
1018 anchor "t"
1019 borderDistance 0.0
1020 ]
1021 LabelGraphics
1022 [
1023 text "
1024 FunctionType enum
1025 "
1026 fontSize 14
1027 fontName "Consolas"
1028 alignment "left"
1029 anchor "tl"
1030 borderDistance 6
1031 ]
1032 ]
1033
1034 node
1035 [
116 id 3 1036 id 3
117 graphics 1037 graphics
118 [ 1038 [
119 w 24.200000000000003 1039 w 41.800000000000004
120 h 26 1040 h 26
121 type "rectangle" 1041 type "rectangle"
122 fill "#FFFFFF" 1042 fill "#FFFFFF"
@@ -125,7 +1045,7 @@ graph
125 ] 1045 ]
126 LabelGraphics 1046 LabelGraphics
127 [ 1047 [
128 text "-1" 1048 text "true"
129 outline "#000000" 1049 outline "#000000"
130 fill "#FFFFFF" 1050 fill "#FFFFFF"
131 fontSize 16 1051 fontSize 16
@@ -151,7 +1071,7 @@ graph
151 id 4 1071 id 4
152 graphics 1072 graphics
153 [ 1073 [
154 w 15.400000000000002 1074 w 50.6
155 h 26 1075 h 26
156 type "rectangle" 1076 type "rectangle"
157 fill "#FFFFFF" 1077 fill "#FFFFFF"
@@ -160,7 +1080,7 @@ graph
160 ] 1080 ]
161 LabelGraphics 1081 LabelGraphics
162 [ 1082 [
163 text "0" 1083 text "false"
164 outline "#000000" 1084 outline "#000000"
165 fill "#FFFFFF" 1085 fill "#FFFFFF"
166 fontSize 16 1086 fontSize 16
@@ -186,8 +1106,8 @@ graph
186 id 5 1106 id 5
187 graphics 1107 graphics
188 [ 1108 [
189 w 15.400000000000002 1109 w 207.9
190 h 26 1110 h 40
191 type "rectangle" 1111 type "rectangle"
192 fill "#FFFFFF" 1112 fill "#FFFFFF"
193 fill2 "#FFFFFF" 1113 fill2 "#FFFFFF"
@@ -195,7 +1115,7 @@ graph
195 ] 1115 ]
196 LabelGraphics 1116 LabelGraphics
197 [ 1117 [
198 text "1" 1118 text "null"
199 outline "#000000" 1119 outline "#000000"
200 fill "#FFFFFF" 1120 fill "#FFFFFF"
201 fontSize 16 1121 fontSize 16
@@ -207,6 +1127,7 @@ graph
207 LabelGraphics 1127 LabelGraphics
208 [ 1128 [
209 text " 1129 text "
1130 FunctionalInterface class
210 " 1131 "
211 fontSize 14 1132 fontSize 14
212 fontName "Consolas" 1133 fontName "Consolas"
@@ -221,8 +1142,8 @@ graph
221 id 6 1142 id 6
222 graphics 1143 graphics
223 [ 1144 [
224 w 33.0 1145 w 184.8
225 h 26 1146 h 54
226 type "rectangle" 1147 type "rectangle"
227 fill "#FFFFFF" 1148 fill "#FFFFFF"
228 fill2 "#FFFFFF" 1149 fill2 "#FFFFFF"
@@ -230,7 +1151,7 @@ graph
230 ] 1151 ]
231 LabelGraphics 1152 LabelGraphics
232 [ 1153 [
233 text ""A"" 1154 text "null"
234 outline "#000000" 1155 outline "#000000"
235 fill "#FFFFFF" 1156 fill "#FFFFFF"
236 fontSize 16 1157 fontSize 16
@@ -242,6 +1163,8 @@ graph
242 LabelGraphics 1163 LabelGraphics
243 [ 1164 [
244 text " 1165 text "
1166 FunctionalOutput class
1167 FunctionalData class
245 " 1168 "
246 fontSize 14 1169 fontSize 14
247 fontName "Consolas" 1170 fontName "Consolas"
@@ -256,8 +1179,8 @@ graph
256 id 7 1179 id 7
257 graphics 1180 graphics
258 [ 1181 [
259 w 33.0 1182 w 177.10000000000002
260 h 26 1183 h 40
261 type "rectangle" 1184 type "rectangle"
262 fill "#FFFFFF" 1185 fill "#FFFFFF"
263 fill2 "#FFFFFF" 1186 fill2 "#FFFFFF"
@@ -265,7 +1188,7 @@ graph
265 ] 1188 ]
266 LabelGraphics 1189 LabelGraphics
267 [ 1190 [
268 text ""B"" 1191 text "null"
269 outline "#000000" 1192 outline "#000000"
270 fill "#FFFFFF" 1193 fill "#FFFFFF"
271 fontSize 16 1194 fontSize 16
@@ -277,6 +1200,7 @@ graph
277 LabelGraphics 1200 LabelGraphics
278 [ 1201 [
279 text " 1202 text "
1203 InformationLink class
280 " 1204 "
281 fontSize 14 1205 fontSize 14
282 fontName "Consolas" 1206 fontName "Consolas"
@@ -291,8 +1215,8 @@ graph
291 id 8 1215 id 8
292 graphics 1216 graphics
293 [ 1217 [
294 w 94.60000000000001 1218 w 177.10000000000002
295 h 26 1219 h 40
296 type "rectangle" 1220 type "rectangle"
297 fill "#FFFFFF" 1221 fill "#FFFFFF"
298 fill2 "#FFFFFF" 1222 fill2 "#FFFFFF"
@@ -300,7 +1224,7 @@ graph
300 ] 1224 ]
301 LabelGraphics 1225 LabelGraphics
302 [ 1226 [
303 text ""nsPrefix"" 1227 text "null"
304 outline "#000000" 1228 outline "#000000"
305 fill "#FFFFFF" 1229 fill "#FFFFFF"
306 fontSize 16 1230 fontSize 16
@@ -312,6 +1236,7 @@ graph
312 LabelGraphics 1236 LabelGraphics
313 [ 1237 [
314 text " 1238 text "
1239 InformationLink class
315 " 1240 "
316 fontSize 14 1241 fontSize 14
317 fontName "Consolas" 1242 fontName "Consolas"
@@ -326,8 +1251,8 @@ graph
326 id 9 1251 id 9
327 graphics 1252 graphics
328 [ 1253 [
329 w 68.2 1254 w 177.10000000000002
330 h 26 1255 h 54
331 type "rectangle" 1256 type "rectangle"
332 fill "#FFFFFF" 1257 fill "#FFFFFF"
333 fill2 "#FFFFFF" 1258 fill2 "#FFFFFF"
@@ -335,7 +1260,7 @@ graph
335 ] 1260 ]
336 LabelGraphics 1261 LabelGraphics
337 [ 1262 [
338 text ""nsUri"" 1263 text "null"
339 outline "#000000" 1264 outline "#000000"
340 fill "#FFFFFF" 1265 fill "#FFFFFF"
341 fontSize 16 1266 fontSize 16
@@ -347,6 +1272,8 @@ graph
347 LabelGraphics 1272 LabelGraphics
348 [ 1273 [
349 text " 1274 text "
1275 FunctionalInput class
1276 FunctionalData class
350 " 1277 "
351 fontSize 14 1278 fontSize 14
352 fontName "Consolas" 1279 fontName "Consolas"
@@ -361,8 +1288,8 @@ graph
361 id 10 1288 id 10
362 graphics 1289 graphics
363 [ 1290 [
364 w 121.00000000000001 1291 w 184.8
365 h 26 1292 h 54
366 type "rectangle" 1293 type "rectangle"
367 fill "#FFFFFF" 1294 fill "#FFFFFF"
368 fill2 "#FFFFFF" 1295 fill2 "#FFFFFF"
@@ -370,7 +1297,7 @@ graph
370 ] 1297 ]
371 LabelGraphics 1298 LabelGraphics
372 [ 1299 [
373 text ""packageName"" 1300 text "null"
374 outline "#000000" 1301 outline "#000000"
375 fill "#FFFFFF" 1302 fill "#FFFFFF"
376 fontSize 16 1303 fontSize 16
@@ -382,6 +1309,8 @@ graph
382 LabelGraphics 1309 LabelGraphics
383 [ 1310 [
384 text " 1311 text "
1312 FunctionalOutput class
1313 FunctionalData class
385 " 1314 "
386 fontSize 14 1315 fontSize 14
387 fontName "Consolas" 1316 fontName "Consolas"
@@ -396,8 +1325,8 @@ graph
396 id 11 1325 id 11
397 graphics 1326 graphics
398 [ 1327 [
399 w 269.5 1328 w 177.10000000000002
400 h 124 1329 h 54
401 type "rectangle" 1330 type "rectangle"
402 fill "#FFFFFF" 1331 fill "#FFFFFF"
403 fill2 "#FFFFFF" 1332 fill2 "#FFFFFF"
@@ -417,13 +1346,8 @@ graph
417 LabelGraphics 1346 LabelGraphics
418 [ 1347 [
419 text " 1348 text "
420 EClassifier class 1349 FunctionalInput class
421 EDataType class 1350 FunctionalData class
422 EEnum class
423 EModelElement class
424 ENamedElement class
425 EModelElement class UndefinedPart
426 ENamedElement class UndefinedPart
427 " 1351 "
428 fontSize 14 1352 fontSize 14
429 fontName "Consolas" 1353 fontName "Consolas"
@@ -438,8 +1362,8 @@ graph
438 id 12 1362 id 12
439 graphics 1363 graphics
440 [ 1364 [
441 w 269.5 1365 w 112.2
442 h 124 1366 h 26
443 type "rectangle" 1367 type "rectangle"
444 fill "#FFFFFF" 1368 fill "#FFFFFF"
445 fill2 "#FFFFFF" 1369 fill2 "#FFFFFF"
@@ -447,7 +1371,7 @@ graph
447 ] 1371 ]
448 LabelGraphics 1372 LabelGraphics
449 [ 1373 [
450 text "null" 1374 text "New Integers"
451 outline "#000000" 1375 outline "#000000"
452 fill "#FFFFFF" 1376 fill "#FFFFFF"
453 fontSize 16 1377 fontSize 16
@@ -459,13 +1383,6 @@ graph
459 LabelGraphics 1383 LabelGraphics
460 [ 1384 [
461 text " 1385 text "
462 EClassifier class
463 EDataType class
464 EEnum class
465 EModelElement class
466 ENamedElement class
467 EModelElement class UndefinedPart
468 ENamedElement class UndefinedPart
469 " 1386 "
470 fontSize 14 1387 fontSize 14
471 fontName "Consolas" 1388 fontName "Consolas"
@@ -480,8 +1397,8 @@ graph
480 id 13 1397 id 13
481 graphics 1398 graphics
482 [ 1399 [
483 w 269.5 1400 w 85.80000000000001
484 h 110 1401 h 26
485 type "rectangle" 1402 type "rectangle"
486 fill "#FFFFFF" 1403 fill "#FFFFFF"
487 fill2 "#FFFFFF" 1404 fill2 "#FFFFFF"
@@ -489,7 +1406,7 @@ graph
489 ] 1406 ]
490 LabelGraphics 1407 LabelGraphics
491 [ 1408 [
492 text "null" 1409 text "New Reals"
493 outline "#000000" 1410 outline "#000000"
494 fill "#FFFFFF" 1411 fill "#FFFFFF"
495 fontSize 16 1412 fontSize 16
@@ -501,12 +1418,6 @@ graph
501 LabelGraphics 1418 LabelGraphics
502 [ 1419 [
503 text " 1420 text "
504 EModelElement class
505 ENamedElement class
506 EPackage class
507 EModelElement class UndefinedPart
508 ENamedElement class UndefinedPart
509 EPackage class UndefinedPart
510 " 1421 "
511 fontSize 14 1422 fontSize 14
512 fontName "Consolas" 1423 fontName "Consolas"
@@ -521,8 +1432,8 @@ graph
521 id 14 1432 id 14
522 graphics 1433 graphics
523 [ 1434 [
524 w 269.5 1435 w 103.4
525 h 124 1436 h 26
526 type "rectangle" 1437 type "rectangle"
527 fill "#FFFFFF" 1438 fill "#FFFFFF"
528 fill2 "#FFFFFF" 1439 fill2 "#FFFFFF"
@@ -530,7 +1441,7 @@ graph
530 ] 1441 ]
531 LabelGraphics 1442 LabelGraphics
532 [ 1443 [
533 text "null" 1444 text "New Strings"
534 outline "#000000" 1445 outline "#000000"
535 fill "#FFFFFF" 1446 fill "#FFFFFF"
536 fontSize 16 1447 fontSize 16
@@ -542,13 +1453,6 @@ graph
542 LabelGraphics 1453 LabelGraphics
543 [ 1454 [
544 text " 1455 text "
545 EClassifier class
546 EDataType class
547 EEnum class
548 EModelElement class
549 ENamedElement class
550 EModelElement class UndefinedPart
551 ENamedElement class UndefinedPart
552 " 1456 "
553 fontSize 14 1457 fontSize 14
554 fontName "Consolas" 1458 fontName "Consolas"
@@ -563,8 +1467,606 @@ graph
563 id 15 1467 id 15
564 graphics 1468 graphics
565 [ 1469 [
566 w 269.5 1470 w 103.4
567 h 124 1471 h 26
1472 type "rectangle"
1473 fill "#FFFFFF"
1474 fill2 "#FFFFFF"
1475 outline "#000000"
1476 ]
1477 LabelGraphics
1478 [
1479 text "New Objects"
1480 outline "#000000"
1481 fill "#FFFFFF"
1482 fontSize 16
1483 fontName "Monospace"
1484 autoSizePolicy "node_width"
1485 anchor "t"
1486 borderDistance 0.0
1487 ]
1488 LabelGraphics
1489 [
1490 text "
1491 "
1492 fontSize 14
1493 fontName "Consolas"
1494 alignment "left"
1495 anchor "tl"
1496 borderDistance 6
1497 ]
1498 ]
1499 edge
1500 [
1501 source 7
1502 target 6
1503 graphics
1504 [
1505 fill "#000000"
1506 targetArrow "standard"
1507 ]
1508 LabelGraphics
1509 [
1510 text "from reference InformationLink"
1511 fontSize 14
1512 fontName "Consolas"
1513 configuration "AutoFlippingLabel"
1514 model "six_pos"
1515 position "thead"
1516 ]
1517 ]
1518 edge
1519 [
1520 source 8
1521 target 6
1522 graphics
1523 [
1524 fill "#000000"
1525 targetArrow "standard"
1526 ]
1527 LabelGraphics
1528 [
1529 text "from reference InformationLink"
1530 fontSize 14
1531 fontName "Consolas"
1532 configuration "AutoFlippingLabel"
1533 model "six_pos"
1534 position "thead"
1535 ]
1536 ]
1537 edge
1538 [
1539 source 7
1540 target 9
1541 graphics
1542 [
1543 fill "#000000"
1544 targetArrow "standard"
1545 ]
1546 LabelGraphics
1547 [
1548 text "to reference InformationLink"
1549 fontSize 14
1550 fontName "Consolas"
1551 configuration "AutoFlippingLabel"
1552 model "six_pos"
1553 position "thead"
1554 ]
1555 ]
1556 edge
1557 [
1558 source 8
1559 target 9
1560 graphics
1561 [
1562 fill "#000000"
1563 targetArrow "standard"
1564 ]
1565 LabelGraphics
1566 [
1567 text "to reference InformationLink"
1568 fontSize 14
1569 fontName "Consolas"
1570 configuration "AutoFlippingLabel"
1571 model "six_pos"
1572 position "thead"
1573 ]
1574 ]
1575 edge
1576 [
1577 source 5
1578 target 6
1579 graphics
1580 [
1581 fill "#000000"
1582 width 3
1583 targetArrow "standard"
1584 ]
1585 LabelGraphics
1586 [
1587 text "data reference FunctionalInterface"
1588 fontSize 14
1589 fontName "Consolas"
1590 configuration "AutoFlippingLabel"
1591 model "six_pos"
1592 position "thead"
1593 ]
1594 ]
1595 edge
1596 [
1597 source 5
1598 target 9
1599 graphics
1600 [
1601 fill "#000000"
1602 width 3
1603 targetArrow "standard"
1604 ]
1605 LabelGraphics
1606 [
1607 text "data reference FunctionalInterface"
1608 fontSize 14
1609 fontName "Consolas"
1610 configuration "AutoFlippingLabel"
1611 model "six_pos"
1612 position "thead"
1613 ]
1614 ]
1615 edge
1616 [
1617 source 5
1618 target 10
1619 graphics
1620 [
1621 fill "#000000"
1622 width 3
1623 targetArrow "standard"
1624 ]
1625 LabelGraphics
1626 [
1627 text "data reference FunctionalInterface"
1628 fontSize 14
1629 fontName "Consolas"
1630 configuration "AutoFlippingLabel"
1631 model "six_pos"
1632 position "thead"
1633 ]
1634 ]
1635 edge
1636 [
1637 source 5
1638 target 11
1639 graphics
1640 [
1641 fill "#000000"
1642 width 3
1643 targetArrow "standard"
1644 ]
1645 LabelGraphics
1646 [
1647 text "data reference FunctionalInterface"
1648 fontSize 14
1649 fontName "Consolas"
1650 configuration "AutoFlippingLabel"
1651 model "six_pos"
1652 position "thead"
1653 ]
1654 ]
1655 edge
1656 [
1657 source 9
1658 target 7
1659 graphics
1660 [
1661 fill "#000000"
1662 targetArrow "standard"
1663 ]
1664 LabelGraphics
1665 [
1666 text "IncomingLinks reference FunctionalInput"
1667 fontSize 14
1668 fontName "Consolas"
1669 configuration "AutoFlippingLabel"
1670 model "six_pos"
1671 position "thead"
1672 ]
1673 ]
1674 edge
1675 [
1676 source 9
1677 target 8
1678 graphics
1679 [
1680 fill "#000000"
1681 targetArrow "standard"
1682 ]
1683 LabelGraphics
1684 [
1685 text "IncomingLinks reference FunctionalInput"
1686 fontSize 14
1687 fontName "Consolas"
1688 configuration "AutoFlippingLabel"
1689 model "six_pos"
1690 position "thead"
1691 ]
1692 ]
1693 edge
1694 [
1695 source 6
1696 target 7
1697 graphics
1698 [
1699 fill "#000000"
1700 width 3
1701 targetArrow "standard"
1702 ]
1703 LabelGraphics
1704 [
1705 text "outgoingLinks reference FunctionalOutput"
1706 fontSize 14
1707 fontName "Consolas"
1708 configuration "AutoFlippingLabel"
1709 model "six_pos"
1710 position "thead"
1711 ]
1712 ]
1713 edge
1714 [
1715 source 6
1716 target 8
1717 graphics
1718 [
1719 fill "#000000"
1720 width 3
1721 targetArrow "standard"
1722 ]
1723 LabelGraphics
1724 [
1725 text "outgoingLinks reference FunctionalOutput"
1726 fontSize 14
1727 fontName "Consolas"
1728 configuration "AutoFlippingLabel"
1729 model "six_pos"
1730 position "thead"
1731 ]
1732 ]
1733 edge
1734 [
1735 source 6
1736 target 5
1737 graphics
1738 [
1739 fill "#000000"
1740 targetArrow "standard"
1741 ]
1742 LabelGraphics
1743 [
1744 text "interface reference FunctionalData"
1745 fontSize 14
1746 fontName "Consolas"
1747 configuration "AutoFlippingLabel"
1748 model "six_pos"
1749 position "thead"
1750 ]
1751 ]
1752 edge
1753 [
1754 source 9
1755 target 5
1756 graphics
1757 [
1758 fill "#000000"
1759 targetArrow "standard"
1760 ]
1761 LabelGraphics
1762 [
1763 text "interface reference FunctionalData"
1764 fontSize 14
1765 fontName "Consolas"
1766 configuration "AutoFlippingLabel"
1767 model "six_pos"
1768 position "thead"
1769 ]
1770 ]
1771 edge
1772 [
1773 source 10
1774 target 5
1775 graphics
1776 [
1777 fill "#000000"
1778 targetArrow "standard"
1779 ]
1780 LabelGraphics
1781 [
1782 text "interface reference FunctionalData"
1783 fontSize 14
1784 fontName "Consolas"
1785 configuration "AutoFlippingLabel"
1786 model "six_pos"
1787 position "thead"
1788 ]
1789 ]
1790 edge
1791 [
1792 source 11
1793 target 5
1794 graphics
1795 [
1796 fill "#000000"
1797 targetArrow "standard"
1798 ]
1799 LabelGraphics
1800 [
1801 text "interface reference FunctionalData"
1802 fontSize 14
1803 fontName "Consolas"
1804 configuration "AutoFlippingLabel"
1805 model "six_pos"
1806 position "thead"
1807 ]
1808 ]
1809]
1810graph
1811[
1812 node
1813 [
1814 id 0
1815 graphics
1816 [
1817 w 226.60000000000002
1818 h 40
1819 type "rectangle"
1820 fill "#FFFFFF"
1821 fill2 "#FFFFFF"
1822 outline "#000000"
1823 ]
1824 LabelGraphics
1825 [
1826 text "Root literal FunctionType"
1827 outline "#000000"
1828 fill "#FFFFFF"
1829 fontSize 16
1830 fontName "Monospace"
1831 autoSizePolicy "node_width"
1832 anchor "t"
1833 borderDistance 0.0
1834 ]
1835 LabelGraphics
1836 [
1837 text "
1838 FunctionType enum
1839 "
1840 fontSize 14
1841 fontName "Consolas"
1842 alignment "left"
1843 anchor "tl"
1844 borderDistance 6
1845 ]
1846 ]
1847
1848 node
1849 [
1850 id 1
1851 graphics
1852 [
1853 w 297.0
1854 h 40
1855 type "rectangle"
1856 fill "#FFFFFF"
1857 fill2 "#FFFFFF"
1858 outline "#000000"
1859 ]
1860 LabelGraphics
1861 [
1862 text "Intermediate literal FunctionType"
1863 outline "#000000"
1864 fill "#FFFFFF"
1865 fontSize 16
1866 fontName "Monospace"
1867 autoSizePolicy "node_width"
1868 anchor "t"
1869 borderDistance 0.0
1870 ]
1871 LabelGraphics
1872 [
1873 text "
1874 FunctionType enum
1875 "
1876 fontSize 14
1877 fontName "Consolas"
1878 alignment "left"
1879 anchor "tl"
1880 borderDistance 6
1881 ]
1882 ]
1883
1884 node
1885 [
1886 id 2
1887 graphics
1888 [
1889 w 226.60000000000002
1890 h 40
1891 type "rectangle"
1892 fill "#FFFFFF"
1893 fill2 "#FFFFFF"
1894 outline "#000000"
1895 ]
1896 LabelGraphics
1897 [
1898 text "Leaf literal FunctionType"
1899 outline "#000000"
1900 fill "#FFFFFF"
1901 fontSize 16
1902 fontName "Monospace"
1903 autoSizePolicy "node_width"
1904 anchor "t"
1905 borderDistance 0.0
1906 ]
1907 LabelGraphics
1908 [
1909 text "
1910 FunctionType enum
1911 "
1912 fontSize 14
1913 fontName "Consolas"
1914 alignment "left"
1915 anchor "tl"
1916 borderDistance 6
1917 ]
1918 ]
1919
1920 node
1921 [
1922 id 3
1923 graphics
1924 [
1925 w 41.800000000000004
1926 h 26
1927 type "rectangle"
1928 fill "#FFFFFF"
1929 fill2 "#FFFFFF"
1930 outline "#000000"
1931 ]
1932 LabelGraphics
1933 [
1934 text "true"
1935 outline "#000000"
1936 fill "#FFFFFF"
1937 fontSize 16
1938 fontName "Monospace"
1939 autoSizePolicy "node_width"
1940 anchor "t"
1941 borderDistance 0.0
1942 ]
1943 LabelGraphics
1944 [
1945 text "
1946 "
1947 fontSize 14
1948 fontName "Consolas"
1949 alignment "left"
1950 anchor "tl"
1951 borderDistance 6
1952 ]
1953 ]
1954
1955 node
1956 [
1957 id 4
1958 graphics
1959 [
1960 w 50.6
1961 h 26
1962 type "rectangle"
1963 fill "#FFFFFF"
1964 fill2 "#FFFFFF"
1965 outline "#000000"
1966 ]
1967 LabelGraphics
1968 [
1969 text "false"
1970 outline "#000000"
1971 fill "#FFFFFF"
1972 fontSize 16
1973 fontName "Monospace"
1974 autoSizePolicy "node_width"
1975 anchor "t"
1976 borderDistance 0.0
1977 ]
1978 LabelGraphics
1979 [
1980 text "
1981 "
1982 fontSize 14
1983 fontName "Consolas"
1984 alignment "left"
1985 anchor "tl"
1986 borderDistance 6
1987 ]
1988 ]
1989
1990 node
1991 [
1992 id 5
1993 graphics
1994 [
1995 w 207.9
1996 h 40
1997 type "rectangle"
1998 fill "#FFFFFF"
1999 fill2 "#FFFFFF"
2000 outline "#000000"
2001 ]
2002 LabelGraphics
2003 [
2004 text "null"
2005 outline "#000000"
2006 fill "#FFFFFF"
2007 fontSize 16
2008 fontName "Monospace"
2009 autoSizePolicy "node_width"
2010 anchor "t"
2011 borderDistance 0.0
2012 ]
2013 LabelGraphics
2014 [
2015 text "
2016 FunctionalInterface class
2017 "
2018 fontSize 14
2019 fontName "Consolas"
2020 alignment "left"
2021 anchor "tl"
2022 borderDistance 6
2023 ]
2024 ]
2025
2026 node
2027 [
2028 id 6
2029 graphics
2030 [
2031 w 184.8
2032 h 54
2033 type "rectangle"
2034 fill "#FFFFFF"
2035 fill2 "#FFFFFF"
2036 outline "#000000"
2037 ]
2038 LabelGraphics
2039 [
2040 text "null"
2041 outline "#000000"
2042 fill "#FFFFFF"
2043 fontSize 16
2044 fontName "Monospace"
2045 autoSizePolicy "node_width"
2046 anchor "t"
2047 borderDistance 0.0
2048 ]
2049 LabelGraphics
2050 [
2051 text "
2052 FunctionalOutput class
2053 FunctionalData class
2054 "
2055 fontSize 14
2056 fontName "Consolas"
2057 alignment "left"
2058 anchor "tl"
2059 borderDistance 6
2060 ]
2061 ]
2062
2063 node
2064 [
2065 id 7
2066 graphics
2067 [
2068 w 177.10000000000002
2069 h 54
568 type "rectangle" 2070 type "rectangle"
569 fill "#FFFFFF" 2071 fill "#FFFFFF"
570 fill2 "#FFFFFF" 2072 fill2 "#FFFFFF"
@@ -584,13 +2086,8 @@ graph
584 LabelGraphics 2086 LabelGraphics
585 [ 2087 [
586 text " 2088 text "
587 EClassifier class 2089 FunctionalInput class
588 EDataType class 2090 FunctionalData class
589 EEnum class
590 EModelElement class
591 ENamedElement class
592 EModelElement class UndefinedPart
593 ENamedElement class UndefinedPart
594 " 2091 "
595 fontSize 14 2092 fontSize 14
596 fontName "Consolas" 2093 fontName "Consolas"
@@ -602,7 +2099,154 @@ graph
602 2099
603 node 2100 node
604 [ 2101 [
605 id 16 2102 id 8
2103 graphics
2104 [
2105 w 184.8
2106 h 54
2107 type "rectangle"
2108 fill "#FFFFFF"
2109 fill2 "#FFFFFF"
2110 outline "#000000"
2111 ]
2112 LabelGraphics
2113 [
2114 text "null"
2115 outline "#000000"
2116 fill "#FFFFFF"
2117 fontSize 16
2118 fontName "Monospace"
2119 autoSizePolicy "node_width"
2120 anchor "t"
2121 borderDistance 0.0
2122 ]
2123 LabelGraphics
2124 [
2125 text "
2126 FunctionalOutput class
2127 FunctionalData class
2128 "
2129 fontSize 14
2130 fontName "Consolas"
2131 alignment "left"
2132 anchor "tl"
2133 borderDistance 6
2134 ]
2135 ]
2136
2137 node
2138 [
2139 id 9
2140 graphics
2141 [
2142 w 161.70000000000002
2143 h 40
2144 type "rectangle"
2145 fill "#FFFFFF"
2146 fill2 "#FFFFFF"
2147 outline "#000000"
2148 ]
2149 LabelGraphics
2150 [
2151 text "null"
2152 outline "#000000"
2153 fill "#FFFFFF"
2154 fontSize 16
2155 fontName "Monospace"
2156 autoSizePolicy "node_width"
2157 anchor "t"
2158 borderDistance 0.0
2159 ]
2160 LabelGraphics
2161 [
2162 text "
2163 FAMTerminator class
2164 "
2165 fontSize 14
2166 fontName "Consolas"
2167 alignment "left"
2168 anchor "tl"
2169 borderDistance 6
2170 ]
2171 ]
2172
2173 node
2174 [
2175 id 10
2176 graphics
2177 [
2178 w 184.8
2179 h 54
2180 type "rectangle"
2181 fill "#FFFFFF"
2182 fill2 "#FFFFFF"
2183 outline "#000000"
2184 ]
2185 LabelGraphics
2186 [
2187 text "null"
2188 outline "#000000"
2189 fill "#FFFFFF"
2190 fontSize 16
2191 fontName "Monospace"
2192 autoSizePolicy "node_width"
2193 anchor "t"
2194 borderDistance 0.0
2195 ]
2196 LabelGraphics
2197 [
2198 text "
2199 FunctionalOutput class
2200 FunctionalData class
2201 "
2202 fontSize 14
2203 fontName "Consolas"
2204 alignment "left"
2205 anchor "tl"
2206 borderDistance 6
2207 ]
2208 ]
2209
2210 node
2211 [
2212 id 11
2213 graphics
2214 [
2215 w 177.10000000000002
2216 h 54
2217 type "rectangle"
2218 fill "#FFFFFF"
2219 fill2 "#FFFFFF"
2220 outline "#000000"
2221 ]
2222 LabelGraphics
2223 [
2224 text "null"
2225 outline "#000000"
2226 fill "#FFFFFF"
2227 fontSize 16
2228 fontName "Monospace"
2229 autoSizePolicy "node_width"
2230 anchor "t"
2231 borderDistance 0.0
2232 ]
2233 LabelGraphics
2234 [
2235 text "
2236 FunctionalInput class
2237 FunctionalData class
2238 "
2239 fontSize 14
2240 fontName "Consolas"
2241 alignment "left"
2242 anchor "tl"
2243 borderDistance 6
2244 ]
2245 ]
2246
2247 node
2248 [
2249 id 12
606 graphics 2250 graphics
607 [ 2251 [
608 w 112.2 2252 w 112.2
@@ -637,7 +2281,7 @@ graph
637 2281
638 node 2282 node
639 [ 2283 [
640 id 17 2284 id 13
641 graphics 2285 graphics
642 [ 2286 [
643 w 85.80000000000001 2287 w 85.80000000000001
@@ -672,7 +2316,7 @@ graph
672 2316
673 node 2317 node
674 [ 2318 [
675 id 18 2319 id 14
676 graphics 2320 graphics
677 [ 2321 [
678 w 103.4 2322 w 103.4
@@ -707,7 +2351,7 @@ graph
707 2351
708 node 2352 node
709 [ 2353 [
710 id 19 2354 id 15
711 graphics 2355 graphics
712 [ 2356 [
713 w 103.4 2357 w 103.4
@@ -741,8 +2385,8 @@ graph
741 ] 2385 ]
742 edge 2386 edge
743 [ 2387 [
744 source 11 2388 source 9
745 target 0 2389 target 7
746 graphics 2390 graphics
747 [ 2391 [
748 fill "#000000" 2392 fill "#000000"
@@ -750,7 +2394,7 @@ graph
750 ] 2394 ]
751 LabelGraphics 2395 LabelGraphics
752 [ 2396 [
753 text "ePackage reference EClassifier" 2397 text "data reference FAMTerminator"
754 fontSize 14 2398 fontSize 14
755 fontName "Consolas" 2399 fontName "Consolas"
756 configuration "AutoFlippingLabel" 2400 configuration "AutoFlippingLabel"
@@ -760,16 +2404,17 @@ graph
760 ] 2404 ]
761 edge 2405 edge
762 [ 2406 [
763 source 12 2407 source 5
764 target 0 2408 target 6
765 graphics 2409 graphics
766 [ 2410 [
767 fill "#000000" 2411 fill "#000000"
2412 width 3
768 targetArrow "standard" 2413 targetArrow "standard"
769 ] 2414 ]
770 LabelGraphics 2415 LabelGraphics
771 [ 2416 [
772 text "ePackage reference EClassifier" 2417 text "data reference FunctionalInterface"
773 fontSize 14 2418 fontSize 14
774 fontName "Consolas" 2419 fontName "Consolas"
775 configuration "AutoFlippingLabel" 2420 configuration "AutoFlippingLabel"
@@ -779,16 +2424,37 @@ graph
779 ] 2424 ]
780 edge 2425 edge
781 [ 2426 [
782 source 14 2427 source 5
783 target 0 2428 target 7
2429 graphics
2430 [
2431 fill "#000000"
2432 width 3
2433 targetArrow "standard"
2434 ]
2435 LabelGraphics
2436 [
2437 text "data reference FunctionalInterface"
2438 fontSize 14
2439 fontName "Consolas"
2440 configuration "AutoFlippingLabel"
2441 model "six_pos"
2442 position "thead"
2443 ]
2444 ]
2445 edge
2446 [
2447 source 5
2448 target 8
784 graphics 2449 graphics
785 [ 2450 [
786 fill "#000000" 2451 fill "#000000"
2452 width 3
787 targetArrow "standard" 2453 targetArrow "standard"
788 ] 2454 ]
789 LabelGraphics 2455 LabelGraphics
790 [ 2456 [
791 text "ePackage reference EClassifier" 2457 text "data reference FunctionalInterface"
792 fontSize 14 2458 fontSize 14
793 fontName "Consolas" 2459 fontName "Consolas"
794 configuration "AutoFlippingLabel" 2460 configuration "AutoFlippingLabel"
@@ -798,16 +2464,17 @@ graph
798 ] 2464 ]
799 edge 2465 edge
800 [ 2466 [
801 source 15 2467 source 5
802 target 13 2468 target 10
803 graphics 2469 graphics
804 [ 2470 [
805 fill "#000000" 2471 fill "#000000"
2472 width 3
806 targetArrow "standard" 2473 targetArrow "standard"
807 ] 2474 ]
808 LabelGraphics 2475 LabelGraphics
809 [ 2476 [
810 text "ePackage reference EClassifier" 2477 text "data reference FunctionalInterface"
811 fontSize 14 2478 fontSize 14
812 fontName "Consolas" 2479 fontName "Consolas"
813 configuration "AutoFlippingLabel" 2480 configuration "AutoFlippingLabel"
@@ -817,7 +2484,7 @@ graph
817 ] 2484 ]
818 edge 2485 edge
819 [ 2486 [
820 source 0 2487 source 5
821 target 11 2488 target 11
822 graphics 2489 graphics
823 [ 2490 [
@@ -827,7 +2494,7 @@ graph
827 ] 2494 ]
828 LabelGraphics 2495 LabelGraphics
829 [ 2496 [
830 text "eClassifiers reference EPackage" 2497 text "data reference FunctionalInterface"
831 fontSize 14 2498 fontSize 14
832 fontName "Consolas" 2499 fontName "Consolas"
833 configuration "AutoFlippingLabel" 2500 configuration "AutoFlippingLabel"
@@ -837,8 +2504,8 @@ graph
837 ] 2504 ]
838 edge 2505 edge
839 [ 2506 [
840 source 0 2507 source 7
841 target 12 2508 target 9
842 graphics 2509 graphics
843 [ 2510 [
844 fill "#000000" 2511 fill "#000000"
@@ -847,7 +2514,7 @@ graph
847 ] 2514 ]
848 LabelGraphics 2515 LabelGraphics
849 [ 2516 [
850 text "eClassifiers reference EPackage" 2517 text "terminator reference FunctionalData"
851 fontSize 14 2518 fontSize 14
852 fontName "Consolas" 2519 fontName "Consolas"
853 configuration "AutoFlippingLabel" 2520 configuration "AutoFlippingLabel"
@@ -857,8 +2524,717 @@ graph
857 ] 2524 ]
858 edge 2525 edge
859 [ 2526 [
860 source 0 2527 source 6
861 target 14 2528 target 5
2529 graphics
2530 [
2531 fill "#000000"
2532 targetArrow "standard"
2533 ]
2534 LabelGraphics
2535 [
2536 text "interface reference FunctionalData"
2537 fontSize 14
2538 fontName "Consolas"
2539 configuration "AutoFlippingLabel"
2540 model "six_pos"
2541 position "thead"
2542 ]
2543 ]
2544 edge
2545 [
2546 source 7
2547 target 5
2548 graphics
2549 [
2550 fill "#000000"
2551 targetArrow "standard"
2552 ]
2553 LabelGraphics
2554 [
2555 text "interface reference FunctionalData"
2556 fontSize 14
2557 fontName "Consolas"
2558 configuration "AutoFlippingLabel"
2559 model "six_pos"
2560 position "thead"
2561 ]
2562 ]
2563 edge
2564 [
2565 source 8
2566 target 5
2567 graphics
2568 [
2569 fill "#000000"
2570 targetArrow "standard"
2571 ]
2572 LabelGraphics
2573 [
2574 text "interface reference FunctionalData"
2575 fontSize 14
2576 fontName "Consolas"
2577 configuration "AutoFlippingLabel"
2578 model "six_pos"
2579 position "thead"
2580 ]
2581 ]
2582 edge
2583 [
2584 source 10
2585 target 5
2586 graphics
2587 [
2588 fill "#000000"
2589 targetArrow "standard"
2590 ]
2591 LabelGraphics
2592 [
2593 text "interface reference FunctionalData"
2594 fontSize 14
2595 fontName "Consolas"
2596 configuration "AutoFlippingLabel"
2597 model "six_pos"
2598 position "thead"
2599 ]
2600 ]
2601 edge
2602 [
2603 source 11
2604 target 5
2605 graphics
2606 [
2607 fill "#000000"
2608 targetArrow "standard"
2609 ]
2610 LabelGraphics
2611 [
2612 text "interface reference FunctionalData"
2613 fontSize 14
2614 fontName "Consolas"
2615 configuration "AutoFlippingLabel"
2616 model "six_pos"
2617 position "thead"
2618 ]
2619 ]
2620]
2621graph
2622[
2623 node
2624 [
2625 id 0
2626 graphics
2627 [
2628 w 226.60000000000002
2629 h 40
2630 type "rectangle"
2631 fill "#FFFFFF"
2632 fill2 "#FFFFFF"
2633 outline "#000000"
2634 ]
2635 LabelGraphics
2636 [
2637 text "Root literal FunctionType"
2638 outline "#000000"
2639 fill "#FFFFFF"
2640 fontSize 16
2641 fontName "Monospace"
2642 autoSizePolicy "node_width"
2643 anchor "t"
2644 borderDistance 0.0
2645 ]
2646 LabelGraphics
2647 [
2648 text "
2649 FunctionType enum
2650 "
2651 fontSize 14
2652 fontName "Consolas"
2653 alignment "left"
2654 anchor "tl"
2655 borderDistance 6
2656 ]
2657 ]
2658
2659 node
2660 [
2661 id 1
2662 graphics
2663 [
2664 w 297.0
2665 h 40
2666 type "rectangle"
2667 fill "#FFFFFF"
2668 fill2 "#FFFFFF"
2669 outline "#000000"
2670 ]
2671 LabelGraphics
2672 [
2673 text "Intermediate literal FunctionType"
2674 outline "#000000"
2675 fill "#FFFFFF"
2676 fontSize 16
2677 fontName "Monospace"
2678 autoSizePolicy "node_width"
2679 anchor "t"
2680 borderDistance 0.0
2681 ]
2682 LabelGraphics
2683 [
2684 text "
2685 FunctionType enum
2686 "
2687 fontSize 14
2688 fontName "Consolas"
2689 alignment "left"
2690 anchor "tl"
2691 borderDistance 6
2692 ]
2693 ]
2694
2695 node
2696 [
2697 id 2
2698 graphics
2699 [
2700 w 226.60000000000002
2701 h 40
2702 type "rectangle"
2703 fill "#FFFFFF"
2704 fill2 "#FFFFFF"
2705 outline "#000000"
2706 ]
2707 LabelGraphics
2708 [
2709 text "Leaf literal FunctionType"
2710 outline "#000000"
2711 fill "#FFFFFF"
2712 fontSize 16
2713 fontName "Monospace"
2714 autoSizePolicy "node_width"
2715 anchor "t"
2716 borderDistance 0.0
2717 ]
2718 LabelGraphics
2719 [
2720 text "
2721 FunctionType enum
2722 "
2723 fontSize 14
2724 fontName "Consolas"
2725 alignment "left"
2726 anchor "tl"
2727 borderDistance 6
2728 ]
2729 ]
2730
2731 node
2732 [
2733 id 3
2734 graphics
2735 [
2736 w 41.800000000000004
2737 h 26
2738 type "rectangle"
2739 fill "#FFFFFF"
2740 fill2 "#FFFFFF"
2741 outline "#000000"
2742 ]
2743 LabelGraphics
2744 [
2745 text "true"
2746 outline "#000000"
2747 fill "#FFFFFF"
2748 fontSize 16
2749 fontName "Monospace"
2750 autoSizePolicy "node_width"
2751 anchor "t"
2752 borderDistance 0.0
2753 ]
2754 LabelGraphics
2755 [
2756 text "
2757 "
2758 fontSize 14
2759 fontName "Consolas"
2760 alignment "left"
2761 anchor "tl"
2762 borderDistance 6
2763 ]
2764 ]
2765
2766 node
2767 [
2768 id 4
2769 graphics
2770 [
2771 w 50.6
2772 h 26
2773 type "rectangle"
2774 fill "#FFFFFF"
2775 fill2 "#FFFFFF"
2776 outline "#000000"
2777 ]
2778 LabelGraphics
2779 [
2780 text "false"
2781 outline "#000000"
2782 fill "#FFFFFF"
2783 fontSize 16
2784 fontName "Monospace"
2785 autoSizePolicy "node_width"
2786 anchor "t"
2787 borderDistance 0.0
2788 ]
2789 LabelGraphics
2790 [
2791 text "
2792 "
2793 fontSize 14
2794 fontName "Consolas"
2795 alignment "left"
2796 anchor "tl"
2797 borderDistance 6
2798 ]
2799 ]
2800
2801 node
2802 [
2803 id 5
2804 graphics
2805 [
2806 w 207.9
2807 h 40
2808 type "rectangle"
2809 fill "#FFFFFF"
2810 fill2 "#FFFFFF"
2811 outline "#000000"
2812 ]
2813 LabelGraphics
2814 [
2815 text "null"
2816 outline "#000000"
2817 fill "#FFFFFF"
2818 fontSize 16
2819 fontName "Monospace"
2820 autoSizePolicy "node_width"
2821 anchor "t"
2822 borderDistance 0.0
2823 ]
2824 LabelGraphics
2825 [
2826 text "
2827 FunctionalInterface class
2828 "
2829 fontSize 14
2830 fontName "Consolas"
2831 alignment "left"
2832 anchor "tl"
2833 borderDistance 6
2834 ]
2835 ]
2836
2837 node
2838 [
2839 id 6
2840 graphics
2841 [
2842 w 184.8
2843 h 54
2844 type "rectangle"
2845 fill "#FFFFFF"
2846 fill2 "#FFFFFF"
2847 outline "#000000"
2848 ]
2849 LabelGraphics
2850 [
2851 text "null"
2852 outline "#000000"
2853 fill "#FFFFFF"
2854 fontSize 16
2855 fontName "Monospace"
2856 autoSizePolicy "node_width"
2857 anchor "t"
2858 borderDistance 0.0
2859 ]
2860 LabelGraphics
2861 [
2862 text "
2863 FunctionalOutput class
2864 FunctionalData class
2865 "
2866 fontSize 14
2867 fontName "Consolas"
2868 alignment "left"
2869 anchor "tl"
2870 borderDistance 6
2871 ]
2872 ]
2873
2874 node
2875 [
2876 id 7
2877 graphics
2878 [
2879 w 177.10000000000002
2880 h 54
2881 type "rectangle"
2882 fill "#FFFFFF"
2883 fill2 "#FFFFFF"
2884 outline "#000000"
2885 ]
2886 LabelGraphics
2887 [
2888 text "null"
2889 outline "#000000"
2890 fill "#FFFFFF"
2891 fontSize 16
2892 fontName "Monospace"
2893 autoSizePolicy "node_width"
2894 anchor "t"
2895 borderDistance 0.0
2896 ]
2897 LabelGraphics
2898 [
2899 text "
2900 FunctionalInput class
2901 FunctionalData class
2902 "
2903 fontSize 14
2904 fontName "Consolas"
2905 alignment "left"
2906 anchor "tl"
2907 borderDistance 6
2908 ]
2909 ]
2910
2911 node
2912 [
2913 id 8
2914 graphics
2915 [
2916 w 184.8
2917 h 54
2918 type "rectangle"
2919 fill "#FFFFFF"
2920 fill2 "#FFFFFF"
2921 outline "#000000"
2922 ]
2923 LabelGraphics
2924 [
2925 text "null"
2926 outline "#000000"
2927 fill "#FFFFFF"
2928 fontSize 16
2929 fontName "Monospace"
2930 autoSizePolicy "node_width"
2931 anchor "t"
2932 borderDistance 0.0
2933 ]
2934 LabelGraphics
2935 [
2936 text "
2937 FunctionalOutput class
2938 FunctionalData class
2939 "
2940 fontSize 14
2941 fontName "Consolas"
2942 alignment "left"
2943 anchor "tl"
2944 borderDistance 6
2945 ]
2946 ]
2947
2948 node
2949 [
2950 id 9
2951 graphics
2952 [
2953 w 161.70000000000002
2954 h 40
2955 type "rectangle"
2956 fill "#FFFFFF"
2957 fill2 "#FFFFFF"
2958 outline "#000000"
2959 ]
2960 LabelGraphics
2961 [
2962 text "null"
2963 outline "#000000"
2964 fill "#FFFFFF"
2965 fontSize 16
2966 fontName "Monospace"
2967 autoSizePolicy "node_width"
2968 anchor "t"
2969 borderDistance 0.0
2970 ]
2971 LabelGraphics
2972 [
2973 text "
2974 FAMTerminator class
2975 "
2976 fontSize 14
2977 fontName "Consolas"
2978 alignment "left"
2979 anchor "tl"
2980 borderDistance 6
2981 ]
2982 ]
2983
2984 node
2985 [
2986 id 10
2987 graphics
2988 [
2989 w 161.70000000000002
2990 h 40
2991 type "rectangle"
2992 fill "#FFFFFF"
2993 fill2 "#FFFFFF"
2994 outline "#000000"
2995 ]
2996 LabelGraphics
2997 [
2998 text "null"
2999 outline "#000000"
3000 fill "#FFFFFF"
3001 fontSize 16
3002 fontName "Monospace"
3003 autoSizePolicy "node_width"
3004 anchor "t"
3005 borderDistance 0.0
3006 ]
3007 LabelGraphics
3008 [
3009 text "
3010 FAMTerminator class
3011 "
3012 fontSize 14
3013 fontName "Consolas"
3014 alignment "left"
3015 anchor "tl"
3016 borderDistance 6
3017 ]
3018 ]
3019
3020 node
3021 [
3022 id 11
3023 graphics
3024 [
3025 w 184.8
3026 h 54
3027 type "rectangle"
3028 fill "#FFFFFF"
3029 fill2 "#FFFFFF"
3030 outline "#000000"
3031 ]
3032 LabelGraphics
3033 [
3034 text "null"
3035 outline "#000000"
3036 fill "#FFFFFF"
3037 fontSize 16
3038 fontName "Monospace"
3039 autoSizePolicy "node_width"
3040 anchor "t"
3041 borderDistance 0.0
3042 ]
3043 LabelGraphics
3044 [
3045 text "
3046 FunctionalOutput class
3047 FunctionalData class
3048 "
3049 fontSize 14
3050 fontName "Consolas"
3051 alignment "left"
3052 anchor "tl"
3053 borderDistance 6
3054 ]
3055 ]
3056
3057 node
3058 [
3059 id 12
3060 graphics
3061 [
3062 w 112.2
3063 h 26
3064 type "rectangle"
3065 fill "#FFFFFF"
3066 fill2 "#FFFFFF"
3067 outline "#000000"
3068 ]
3069 LabelGraphics
3070 [
3071 text "New Integers"
3072 outline "#000000"
3073 fill "#FFFFFF"
3074 fontSize 16
3075 fontName "Monospace"
3076 autoSizePolicy "node_width"
3077 anchor "t"
3078 borderDistance 0.0
3079 ]
3080 LabelGraphics
3081 [
3082 text "
3083 "
3084 fontSize 14
3085 fontName "Consolas"
3086 alignment "left"
3087 anchor "tl"
3088 borderDistance 6
3089 ]
3090 ]
3091
3092 node
3093 [
3094 id 13
3095 graphics
3096 [
3097 w 85.80000000000001
3098 h 26
3099 type "rectangle"
3100 fill "#FFFFFF"
3101 fill2 "#FFFFFF"
3102 outline "#000000"
3103 ]
3104 LabelGraphics
3105 [
3106 text "New Reals"
3107 outline "#000000"
3108 fill "#FFFFFF"
3109 fontSize 16
3110 fontName "Monospace"
3111 autoSizePolicy "node_width"
3112 anchor "t"
3113 borderDistance 0.0
3114 ]
3115 LabelGraphics
3116 [
3117 text "
3118 "
3119 fontSize 14
3120 fontName "Consolas"
3121 alignment "left"
3122 anchor "tl"
3123 borderDistance 6
3124 ]
3125 ]
3126
3127 node
3128 [
3129 id 14
3130 graphics
3131 [
3132 w 103.4
3133 h 26
3134 type "rectangle"
3135 fill "#FFFFFF"
3136 fill2 "#FFFFFF"
3137 outline "#000000"
3138 ]
3139 LabelGraphics
3140 [
3141 text "New Strings"
3142 outline "#000000"
3143 fill "#FFFFFF"
3144 fontSize 16
3145 fontName "Monospace"
3146 autoSizePolicy "node_width"
3147 anchor "t"
3148 borderDistance 0.0
3149 ]
3150 LabelGraphics
3151 [
3152 text "
3153 "
3154 fontSize 14
3155 fontName "Consolas"
3156 alignment "left"
3157 anchor "tl"
3158 borderDistance 6
3159 ]
3160 ]
3161
3162 node
3163 [
3164 id 15
3165 graphics
3166 [
3167 w 103.4
3168 h 26
3169 type "rectangle"
3170 fill "#FFFFFF"
3171 fill2 "#FFFFFF"
3172 outline "#000000"
3173 ]
3174 LabelGraphics
3175 [
3176 text "New Objects"
3177 outline "#000000"
3178 fill "#FFFFFF"
3179 fontSize 16
3180 fontName "Monospace"
3181 autoSizePolicy "node_width"
3182 anchor "t"
3183 borderDistance 0.0
3184 ]
3185 LabelGraphics
3186 [
3187 text "
3188 "
3189 fontSize 14
3190 fontName "Consolas"
3191 alignment "left"
3192 anchor "tl"
3193 borderDistance 6
3194 ]
3195 ]
3196 edge
3197 [
3198 source 9
3199 target 6
3200 graphics
3201 [
3202 fill "#000000"
3203 targetArrow "standard"
3204 ]
3205 LabelGraphics
3206 [
3207 text "data reference FAMTerminator"
3208 fontSize 14
3209 fontName "Consolas"
3210 configuration "AutoFlippingLabel"
3211 model "six_pos"
3212 position "thead"
3213 ]
3214 ]
3215 edge
3216 [
3217 source 10
3218 target 7
3219 graphics
3220 [
3221 fill "#000000"
3222 targetArrow "standard"
3223 ]
3224 LabelGraphics
3225 [
3226 text "data reference FAMTerminator"
3227 fontSize 14
3228 fontName "Consolas"
3229 configuration "AutoFlippingLabel"
3230 model "six_pos"
3231 position "thead"
3232 ]
3233 ]
3234 edge
3235 [
3236 source 5
3237 target 6
862 graphics 3238 graphics
863 [ 3239 [
864 fill "#000000" 3240 fill "#000000"
@@ -867,7 +3243,7 @@ graph
867 ] 3243 ]
868 LabelGraphics 3244 LabelGraphics
869 [ 3245 [
870 text "eClassifiers reference EPackage" 3246 text "data reference FunctionalInterface"
871 fontSize 14 3247 fontSize 14
872 fontName "Consolas" 3248 fontName "Consolas"
873 configuration "AutoFlippingLabel" 3249 configuration "AutoFlippingLabel"
@@ -877,8 +3253,8 @@ graph
877 ] 3253 ]
878 edge 3254 edge
879 [ 3255 [
880 source 13 3256 source 5
881 target 15 3257 target 7
882 graphics 3258 graphics
883 [ 3259 [
884 fill "#000000" 3260 fill "#000000"
@@ -887,7 +3263,7 @@ graph
887 ] 3263 ]
888 LabelGraphics 3264 LabelGraphics
889 [ 3265 [
890 text "eClassifiers reference EPackage" 3266 text "data reference FunctionalInterface"
891 fontSize 14 3267 fontSize 14
892 fontName "Consolas" 3268 fontName "Consolas"
893 configuration "AutoFlippingLabel" 3269 configuration "AutoFlippingLabel"
@@ -897,8 +3273,8 @@ graph
897 ] 3273 ]
898 edge 3274 edge
899 [ 3275 [
900 source 0 3276 source 5
901 target 13 3277 target 8
902 graphics 3278 graphics
903 [ 3279 [
904 fill "#000000" 3280 fill "#000000"
@@ -907,7 +3283,7 @@ graph
907 ] 3283 ]
908 LabelGraphics 3284 LabelGraphics
909 [ 3285 [
910 text "eSubpackages reference EPackage" 3286 text "data reference FunctionalInterface"
911 fontSize 14 3287 fontSize 14
912 fontName "Consolas" 3288 fontName "Consolas"
913 configuration "AutoFlippingLabel" 3289 configuration "AutoFlippingLabel"
@@ -917,16 +3293,17 @@ graph
917 ] 3293 ]
918 edge 3294 edge
919 [ 3295 [
920 source 13 3296 source 5
921 target 0 3297 target 11
922 graphics 3298 graphics
923 [ 3299 [
924 fill "#000000" 3300 fill "#000000"
3301 width 3
925 targetArrow "standard" 3302 targetArrow "standard"
926 ] 3303 ]
927 LabelGraphics 3304 LabelGraphics
928 [ 3305 [
929 text "eSuperPackage reference EPackage" 3306 text "data reference FunctionalInterface"
930 fontSize 14 3307 fontSize 14
931 fontName "Consolas" 3308 fontName "Consolas"
932 configuration "AutoFlippingLabel" 3309 configuration "AutoFlippingLabel"
@@ -936,16 +3313,94 @@ graph
936 ] 3313 ]
937 edge 3314 edge
938 [ 3315 [
939 source 12 3316 source 6
940 target 8 3317 target 9
941 graphics 3318 graphics
942 [ 3319 [
943 fill "#000000" 3320 fill "#000000"
3321 width 3
944 targetArrow "standard" 3322 targetArrow "standard"
945 ] 3323 ]
946 LabelGraphics 3324 LabelGraphics
947 [ 3325 [
948 text "instanceClassName attribute EClassifier" 3326 text "terminator reference FunctionalData"
3327 fontSize 14
3328 fontName "Consolas"
3329 configuration "AutoFlippingLabel"
3330 model "six_pos"
3331 position "thead"
3332 ]
3333 ]
3334 edge
3335 [
3336 source 7
3337 target 10
3338 graphics
3339 [
3340 fill "#000000"
3341 width 3
3342 targetArrow "standard"
3343 ]
3344 LabelGraphics
3345 [
3346 text "terminator reference FunctionalData"
3347 fontSize 14
3348 fontName "Consolas"
3349 configuration "AutoFlippingLabel"
3350 model "six_pos"
3351 position "thead"
3352 ]
3353 ]
3354 edge
3355 [
3356 source 6
3357 target 5
3358 graphics
3359 [
3360 fill "#000000"
3361 targetArrow "standard"
3362 ]
3363 LabelGraphics
3364 [
3365 text "interface reference FunctionalData"
3366 fontSize 14
3367 fontName "Consolas"
3368 configuration "AutoFlippingLabel"
3369 model "six_pos"
3370 position "thead"
3371 ]
3372 ]
3373 edge
3374 [
3375 source 7
3376 target 5
3377 graphics
3378 [
3379 fill "#000000"
3380 targetArrow "standard"
3381 ]
3382 LabelGraphics
3383 [
3384 text "interface reference FunctionalData"
3385 fontSize 14
3386 fontName "Consolas"
3387 configuration "AutoFlippingLabel"
3388 model "six_pos"
3389 position "thead"
3390 ]
3391 ]
3392 edge
3393 [
3394 source 8
3395 target 5
3396 graphics
3397 [
3398 fill "#000000"
3399 targetArrow "standard"
3400 ]
3401 LabelGraphics
3402 [
3403 text "interface reference FunctionalData"
949 fontSize 14 3404 fontSize 14
950 fontName "Consolas" 3405 fontName "Consolas"
951 configuration "AutoFlippingLabel" 3406 configuration "AutoFlippingLabel"
@@ -956,15 +3411,649 @@ graph
956 edge 3411 edge
957 [ 3412 [
958 source 11 3413 source 11
3414 target 5
3415 graphics
3416 [
3417 fill "#000000"
3418 targetArrow "standard"
3419 ]
3420 LabelGraphics
3421 [
3422 text "interface reference FunctionalData"
3423 fontSize 14
3424 fontName "Consolas"
3425 configuration "AutoFlippingLabel"
3426 model "six_pos"
3427 position "thead"
3428 ]
3429 ]
3430]
3431graph
3432[
3433 node
3434 [
3435 id 0
3436 graphics
3437 [
3438 w 226.60000000000002
3439 h 40
3440 type "rectangle"
3441 fill "#FFFFFF"
3442 fill2 "#FFFFFF"
3443 outline "#000000"
3444 ]
3445 LabelGraphics
3446 [
3447 text "Root literal FunctionType"
3448 outline "#000000"
3449 fill "#FFFFFF"
3450 fontSize 16
3451 fontName "Monospace"
3452 autoSizePolicy "node_width"
3453 anchor "t"
3454 borderDistance 0.0
3455 ]
3456 LabelGraphics
3457 [
3458 text "
3459 FunctionType enum
3460 "
3461 fontSize 14
3462 fontName "Consolas"
3463 alignment "left"
3464 anchor "tl"
3465 borderDistance 6
3466 ]
3467 ]
3468
3469 node
3470 [
3471 id 1
3472 graphics
3473 [
3474 w 297.0
3475 h 40
3476 type "rectangle"
3477 fill "#FFFFFF"
3478 fill2 "#FFFFFF"
3479 outline "#000000"
3480 ]
3481 LabelGraphics
3482 [
3483 text "Intermediate literal FunctionType"
3484 outline "#000000"
3485 fill "#FFFFFF"
3486 fontSize 16
3487 fontName "Monospace"
3488 autoSizePolicy "node_width"
3489 anchor "t"
3490 borderDistance 0.0
3491 ]
3492 LabelGraphics
3493 [
3494 text "
3495 FunctionType enum
3496 "
3497 fontSize 14
3498 fontName "Consolas"
3499 alignment "left"
3500 anchor "tl"
3501 borderDistance 6
3502 ]
3503 ]
3504
3505 node
3506 [
3507 id 2
3508 graphics
3509 [
3510 w 226.60000000000002
3511 h 40
3512 type "rectangle"
3513 fill "#FFFFFF"
3514 fill2 "#FFFFFF"
3515 outline "#000000"
3516 ]
3517 LabelGraphics
3518 [
3519 text "Leaf literal FunctionType"
3520 outline "#000000"
3521 fill "#FFFFFF"
3522 fontSize 16
3523 fontName "Monospace"
3524 autoSizePolicy "node_width"
3525 anchor "t"
3526 borderDistance 0.0
3527 ]
3528 LabelGraphics
3529 [
3530 text "
3531 FunctionType enum
3532 "
3533 fontSize 14
3534 fontName "Consolas"
3535 alignment "left"
3536 anchor "tl"
3537 borderDistance 6
3538 ]
3539 ]
3540
3541 node
3542 [
3543 id 3
3544 graphics
3545 [
3546 w 41.800000000000004
3547 h 26
3548 type "rectangle"
3549 fill "#FFFFFF"
3550 fill2 "#FFFFFF"
3551 outline "#000000"
3552 ]
3553 LabelGraphics
3554 [
3555 text "true"
3556 outline "#000000"
3557 fill "#FFFFFF"
3558 fontSize 16
3559 fontName "Monospace"
3560 autoSizePolicy "node_width"
3561 anchor "t"
3562 borderDistance 0.0
3563 ]
3564 LabelGraphics
3565 [
3566 text "
3567 "
3568 fontSize 14
3569 fontName "Consolas"
3570 alignment "left"
3571 anchor "tl"
3572 borderDistance 6
3573 ]
3574 ]
3575
3576 node
3577 [
3578 id 4
3579 graphics
3580 [
3581 w 50.6
3582 h 26
3583 type "rectangle"
3584 fill "#FFFFFF"
3585 fill2 "#FFFFFF"
3586 outline "#000000"
3587 ]
3588 LabelGraphics
3589 [
3590 text "false"
3591 outline "#000000"
3592 fill "#FFFFFF"
3593 fontSize 16
3594 fontName "Monospace"
3595 autoSizePolicy "node_width"
3596 anchor "t"
3597 borderDistance 0.0
3598 ]
3599 LabelGraphics
3600 [
3601 text "
3602 "
3603 fontSize 14
3604 fontName "Consolas"
3605 alignment "left"
3606 anchor "tl"
3607 borderDistance 6
3608 ]
3609 ]
3610
3611 node
3612 [
3613 id 5
3614 graphics
3615 [
3616 w 269.5
3617 h 40
3618 type "rectangle"
3619 fill "#FFFFFF"
3620 fill2 "#FFFFFF"
3621 outline "#000000"
3622 ]
3623 LabelGraphics
3624 [
3625 text "null"
3626 outline "#000000"
3627 fill "#FFFFFF"
3628 fontSize 16
3629 fontName "Monospace"
3630 autoSizePolicy "node_width"
3631 anchor "t"
3632 borderDistance 0.0
3633 ]
3634 LabelGraphics
3635 [
3636 text "
3637 FunctionalArchitectureModel class
3638 "
3639 fontSize 14
3640 fontName "Consolas"
3641 alignment "left"
3642 anchor "tl"
3643 borderDistance 6
3644 ]
3645 ]
3646
3647 node
3648 [
3649 id 6
3650 graphics
3651 [
3652 w 192.50000000000003
3653 h 54
3654 type "rectangle"
3655 fill "#FFFFFF"
3656 fill2 "#FFFFFF"
3657 outline "#000000"
3658 ]
3659 LabelGraphics
3660 [
3661 text "null"
3662 outline "#000000"
3663 fill "#FFFFFF"
3664 fontSize 16
3665 fontName "Monospace"
3666 autoSizePolicy "node_width"
3667 anchor "t"
3668 borderDistance 0.0
3669 ]
3670 LabelGraphics
3671 [
3672 text "
3673 FunctionalElement class
3674 Function class
3675 "
3676 fontSize 14
3677 fontName "Consolas"
3678 alignment "left"
3679 anchor "tl"
3680 borderDistance 6
3681 ]
3682 ]
3683
3684 node
3685 [
3686 id 7
3687 graphics
3688 [
3689 w 207.9
3690 h 40
3691 type "rectangle"
3692 fill "#FFFFFF"
3693 fill2 "#FFFFFF"
3694 outline "#000000"
3695 ]
3696 LabelGraphics
3697 [
3698 text "null"
3699 outline "#000000"
3700 fill "#FFFFFF"
3701 fontSize 16
3702 fontName "Monospace"
3703 autoSizePolicy "node_width"
3704 anchor "t"
3705 borderDistance 0.0
3706 ]
3707 LabelGraphics
3708 [
3709 text "
3710 FunctionalInterface class
3711 "
3712 fontSize 14
3713 fontName "Consolas"
3714 alignment "left"
3715 anchor "tl"
3716 borderDistance 6
3717 ]
3718 ]
3719
3720 node
3721 [
3722 id 8
3723 graphics
3724 [
3725 w 184.8
3726 h 54
3727 type "rectangle"
3728 fill "#FFFFFF"
3729 fill2 "#FFFFFF"
3730 outline "#000000"
3731 ]
3732 LabelGraphics
3733 [
3734 text "null"
3735 outline "#000000"
3736 fill "#FFFFFF"
3737 fontSize 16
3738 fontName "Monospace"
3739 autoSizePolicy "node_width"
3740 anchor "t"
3741 borderDistance 0.0
3742 ]
3743 LabelGraphics
3744 [
3745 text "
3746 FunctionalOutput class
3747 FunctionalData class
3748 "
3749 fontSize 14
3750 fontName "Consolas"
3751 alignment "left"
3752 anchor "tl"
3753 borderDistance 6
3754 ]
3755 ]
3756
3757 node
3758 [
3759 id 9
3760 graphics
3761 [
3762 w 161.70000000000002
3763 h 40
3764 type "rectangle"
3765 fill "#FFFFFF"
3766 fill2 "#FFFFFF"
3767 outline "#000000"
3768 ]
3769 LabelGraphics
3770 [
3771 text "null"
3772 outline "#000000"
3773 fill "#FFFFFF"
3774 fontSize 16
3775 fontName "Monospace"
3776 autoSizePolicy "node_width"
3777 anchor "t"
3778 borderDistance 0.0
3779 ]
3780 LabelGraphics
3781 [
3782 text "
3783 FAMTerminator class
3784 "
3785 fontSize 14
3786 fontName "Consolas"
3787 alignment "left"
3788 anchor "tl"
3789 borderDistance 6
3790 ]
3791 ]
3792
3793 node
3794 [
3795 id 10
3796 graphics
3797 [
3798 w 177.10000000000002
3799 h 54
3800 type "rectangle"
3801 fill "#FFFFFF"
3802 fill2 "#FFFFFF"
3803 outline "#000000"
3804 ]
3805 LabelGraphics
3806 [
3807 text "null"
3808 outline "#000000"
3809 fill "#FFFFFF"
3810 fontSize 16
3811 fontName "Monospace"
3812 autoSizePolicy "node_width"
3813 anchor "t"
3814 borderDistance 0.0
3815 ]
3816 LabelGraphics
3817 [
3818 text "
3819 FunctionalInput class
3820 FunctionalData class
3821 "
3822 fontSize 14
3823 fontName "Consolas"
3824 alignment "left"
3825 anchor "tl"
3826 borderDistance 6
3827 ]
3828 ]
3829
3830 node
3831 [
3832 id 11
3833 graphics
3834 [
3835 w 177.10000000000002
3836 h 40
3837 type "rectangle"
3838 fill "#FFFFFF"
3839 fill2 "#FFFFFF"
3840 outline "#000000"
3841 ]
3842 LabelGraphics
3843 [
3844 text "null"
3845 outline "#000000"
3846 fill "#FFFFFF"
3847 fontSize 16
3848 fontName "Monospace"
3849 autoSizePolicy "node_width"
3850 anchor "t"
3851 borderDistance 0.0
3852 ]
3853 LabelGraphics
3854 [
3855 text "
3856 InformationLink class
3857 "
3858 fontSize 14
3859 fontName "Consolas"
3860 alignment "left"
3861 anchor "tl"
3862 borderDistance 6
3863 ]
3864 ]
3865
3866 node
3867 [
3868 id 12
3869 graphics
3870 [
3871 w 112.2
3872 h 26
3873 type "rectangle"
3874 fill "#FFFFFF"
3875 fill2 "#FFFFFF"
3876 outline "#000000"
3877 ]
3878 LabelGraphics
3879 [
3880 text "New Integers"
3881 outline "#000000"
3882 fill "#FFFFFF"
3883 fontSize 16
3884 fontName "Monospace"
3885 autoSizePolicy "node_width"
3886 anchor "t"
3887 borderDistance 0.0
3888 ]
3889 LabelGraphics
3890 [
3891 text "
3892 "
3893 fontSize 14
3894 fontName "Consolas"
3895 alignment "left"
3896 anchor "tl"
3897 borderDistance 6
3898 ]
3899 ]
3900
3901 node
3902 [
3903 id 13
3904 graphics
3905 [
3906 w 85.80000000000001
3907 h 26
3908 type "rectangle"
3909 fill "#FFFFFF"
3910 fill2 "#FFFFFF"
3911 outline "#000000"
3912 ]
3913 LabelGraphics
3914 [
3915 text "New Reals"
3916 outline "#000000"
3917 fill "#FFFFFF"
3918 fontSize 16
3919 fontName "Monospace"
3920 autoSizePolicy "node_width"
3921 anchor "t"
3922 borderDistance 0.0
3923 ]
3924 LabelGraphics
3925 [
3926 text "
3927 "
3928 fontSize 14
3929 fontName "Consolas"
3930 alignment "left"
3931 anchor "tl"
3932 borderDistance 6
3933 ]
3934 ]
3935
3936 node
3937 [
3938 id 14
3939 graphics
3940 [
3941 w 103.4
3942 h 26
3943 type "rectangle"
3944 fill "#FFFFFF"
3945 fill2 "#FFFFFF"
3946 outline "#000000"
3947 ]
3948 LabelGraphics
3949 [
3950 text "New Strings"
3951 outline "#000000"
3952 fill "#FFFFFF"
3953 fontSize 16
3954 fontName "Monospace"
3955 autoSizePolicy "node_width"
3956 anchor "t"
3957 borderDistance 0.0
3958 ]
3959 LabelGraphics
3960 [
3961 text "
3962 "
3963 fontSize 14
3964 fontName "Consolas"
3965 alignment "left"
3966 anchor "tl"
3967 borderDistance 6
3968 ]
3969 ]
3970
3971 node
3972 [
3973 id 15
3974 graphics
3975 [
3976 w 103.4
3977 h 26
3978 type "rectangle"
3979 fill "#FFFFFF"
3980 fill2 "#FFFFFF"
3981 outline "#000000"
3982 ]
3983 LabelGraphics
3984 [
3985 text "New Objects"
3986 outline "#000000"
3987 fill "#FFFFFF"
3988 fontSize 16
3989 fontName "Monospace"
3990 autoSizePolicy "node_width"
3991 anchor "t"
3992 borderDistance 0.0
3993 ]
3994 LabelGraphics
3995 [
3996 text "
3997 "
3998 fontSize 14
3999 fontName "Consolas"
4000 alignment "left"
4001 anchor "tl"
4002 borderDistance 6
4003 ]
4004 ]
4005 edge
4006 [
4007 source 6
4008 target 7
4009 graphics
4010 [
4011 fill "#000000"
4012 width 3
4013 targetArrow "standard"
4014 ]
4015 LabelGraphics
4016 [
4017 text "interface reference FunctionalElement"
4018 fontSize 14
4019 fontName "Consolas"
4020 configuration "AutoFlippingLabel"
4021 model "six_pos"
4022 position "thead"
4023 ]
4024 ]
4025 edge
4026 [
4027 source 6
4028 target 5
4029 graphics
4030 [
4031 fill "#000000"
4032 targetArrow "standard"
4033 ]
4034 LabelGraphics
4035 [
4036 text "model reference FunctionalElement"
4037 fontSize 14
4038 fontName "Consolas"
4039 configuration "AutoFlippingLabel"
4040 model "six_pos"
4041 position "thead"
4042 ]
4043 ]
4044 edge
4045 [
4046 source 5
959 target 6 4047 target 6
960 graphics 4048 graphics
961 [ 4049 [
962 fill "#000000" 4050 fill "#000000"
4051 width 3
963 targetArrow "standard" 4052 targetArrow "standard"
964 ] 4053 ]
965 LabelGraphics 4054 LabelGraphics
966 [ 4055 [
967 text "instanceClassName attribute EClassifier" 4056 text "rootElements reference FunctionalArchitectureModel"
968 fontSize 14 4057 fontSize 14
969 fontName "Consolas" 4058 fontName "Consolas"
970 configuration "AutoFlippingLabel" 4059 configuration "AutoFlippingLabel"
@@ -974,8 +4063,8 @@ graph
974 ] 4063 ]
975 edge 4064 edge
976 [ 4065 [
977 source 11 4066 source 9
978 target 10 4067 target 8
979 graphics 4068 graphics
980 [ 4069 [
981 fill "#000000" 4070 fill "#000000"
@@ -983,7 +4072,7 @@ graph
983 ] 4072 ]
984 LabelGraphics 4073 LabelGraphics
985 [ 4074 [
986 text "instanceTypeName attribute EClassifier" 4075 text "data reference FAMTerminator"
987 fontSize 14 4076 fontSize 14
988 fontName "Consolas" 4077 fontName "Consolas"
989 configuration "AutoFlippingLabel" 4078 configuration "AutoFlippingLabel"
@@ -993,7 +4082,7 @@ graph
993 ] 4082 ]
994 edge 4083 edge
995 [ 4084 [
996 source 12 4085 source 11
997 target 8 4086 target 8
998 graphics 4087 graphics
999 [ 4088 [
@@ -1002,7 +4091,7 @@ graph
1002 ] 4091 ]
1003 LabelGraphics 4092 LabelGraphics
1004 [ 4093 [
1005 text "instanceTypeName attribute EClassifier" 4094 text "from reference InformationLink"
1006 fontSize 14 4095 fontSize 14
1007 fontName "Consolas" 4096 fontName "Consolas"
1008 configuration "AutoFlippingLabel" 4097 configuration "AutoFlippingLabel"
@@ -1012,7 +4101,7 @@ graph
1012 ] 4101 ]
1013 edge 4102 edge
1014 [ 4103 [
1015 source 0 4104 source 11
1016 target 10 4105 target 10
1017 graphics 4106 graphics
1018 [ 4107 [
@@ -1021,7 +4110,7 @@ graph
1021 ] 4110 ]
1022 LabelGraphics 4111 LabelGraphics
1023 [ 4112 [
1024 text "name attribute ENamedElement" 4113 text "to reference InformationLink"
1025 fontSize 14 4114 fontSize 14
1026 fontName "Consolas" 4115 fontName "Consolas"
1027 configuration "AutoFlippingLabel" 4116 configuration "AutoFlippingLabel"
@@ -1031,16 +4120,17 @@ graph
1031 ] 4120 ]
1032 edge 4121 edge
1033 [ 4122 [
1034 source 12 4123 source 7
1035 target 10 4124 target 8
1036 graphics 4125 graphics
1037 [ 4126 [
1038 fill "#000000" 4127 fill "#000000"
4128 width 3
1039 targetArrow "standard" 4129 targetArrow "standard"
1040 ] 4130 ]
1041 LabelGraphics 4131 LabelGraphics
1042 [ 4132 [
1043 text "name attribute ENamedElement" 4133 text "data reference FunctionalInterface"
1044 fontSize 14 4134 fontSize 14
1045 fontName "Consolas" 4135 fontName "Consolas"
1046 configuration "AutoFlippingLabel" 4136 configuration "AutoFlippingLabel"
@@ -1050,16 +4140,17 @@ graph
1050 ] 4140 ]
1051 edge 4141 edge
1052 [ 4142 [
1053 source 11 4143 source 7
1054 target 10 4144 target 10
1055 graphics 4145 graphics
1056 [ 4146 [
1057 fill "#000000" 4147 fill "#000000"
4148 width 3
1058 targetArrow "standard" 4149 targetArrow "standard"
1059 ] 4150 ]
1060 LabelGraphics 4151 LabelGraphics
1061 [ 4152 [
1062 text "name attribute ENamedElement" 4153 text "data reference FunctionalInterface"
1063 fontSize 14 4154 fontSize 14
1064 fontName "Consolas" 4155 fontName "Consolas"
1065 configuration "AutoFlippingLabel" 4156 configuration "AutoFlippingLabel"
@@ -1069,7 +4160,7 @@ graph
1069 ] 4160 ]
1070 edge 4161 edge
1071 [ 4162 [
1072 source 13 4163 source 7
1073 target 6 4164 target 6
1074 graphics 4165 graphics
1075 [ 4166 [
@@ -1078,7 +4169,7 @@ graph
1078 ] 4169 ]
1079 LabelGraphics 4170 LabelGraphics
1080 [ 4171 [
1081 text "name attribute ENamedElement" 4172 text "element reference FunctionalInterface"
1082 fontSize 14 4173 fontSize 14
1083 fontName "Consolas" 4174 fontName "Consolas"
1084 configuration "AutoFlippingLabel" 4175 configuration "AutoFlippingLabel"
@@ -1088,8 +4179,8 @@ graph
1088 ] 4179 ]
1089 edge 4180 edge
1090 [ 4181 [
1091 source 14 4182 source 10
1092 target 10 4183 target 11
1093 graphics 4184 graphics
1094 [ 4185 [
1095 fill "#000000" 4186 fill "#000000"
@@ -1097,7 +4188,7 @@ graph
1097 ] 4188 ]
1098 LabelGraphics 4189 LabelGraphics
1099 [ 4190 [
1100 text "name attribute ENamedElement" 4191 text "IncomingLinks reference FunctionalInput"
1101 fontSize 14 4192 fontSize 14
1102 fontName "Consolas" 4193 fontName "Consolas"
1103 configuration "AutoFlippingLabel" 4194 configuration "AutoFlippingLabel"
@@ -1107,16 +4198,37 @@ graph
1107 ] 4198 ]
1108 edge 4199 edge
1109 [ 4200 [
1110 source 0 4201 source 8
4202 target 11
4203 graphics
4204 [
4205 fill "#000000"
4206 width 3
4207 targetArrow "standard"
4208 ]
4209 LabelGraphics
4210 [
4211 text "outgoingLinks reference FunctionalOutput"
4212 fontSize 14
4213 fontName "Consolas"
4214 configuration "AutoFlippingLabel"
4215 model "six_pos"
4216 position "thead"
4217 ]
4218 ]
4219 edge
4220 [
4221 source 8
1111 target 9 4222 target 9
1112 graphics 4223 graphics
1113 [ 4224 [
1114 fill "#000000" 4225 fill "#000000"
4226 width 3
1115 targetArrow "standard" 4227 targetArrow "standard"
1116 ] 4228 ]
1117 LabelGraphics 4229 LabelGraphics
1118 [ 4230 [
1119 text "nsURI attribute EPackage" 4231 text "terminator reference FunctionalData"
1120 fontSize 14 4232 fontSize 14
1121 fontName "Consolas" 4233 fontName "Consolas"
1122 configuration "AutoFlippingLabel" 4234 configuration "AutoFlippingLabel"
@@ -1126,8 +4238,8 @@ graph
1126 ] 4238 ]
1127 edge 4239 edge
1128 [ 4240 [
1129 source 13 4241 source 8
1130 target 8 4242 target 7
1131 graphics 4243 graphics
1132 [ 4244 [
1133 fill "#000000" 4245 fill "#000000"
@@ -1135,7 +4247,7 @@ graph
1135 ] 4247 ]
1136 LabelGraphics 4248 LabelGraphics
1137 [ 4249 [
1138 text "nsURI attribute EPackage" 4250 text "interface reference FunctionalData"
1139 fontSize 14 4251 fontSize 14
1140 fontName "Consolas" 4252 fontName "Consolas"
1141 configuration "AutoFlippingLabel" 4253 configuration "AutoFlippingLabel"
@@ -1145,8 +4257,8 @@ graph
1145 ] 4257 ]
1146 edge 4258 edge
1147 [ 4259 [
1148 source 0 4260 source 10
1149 target 8 4261 target 7
1150 graphics 4262 graphics
1151 [ 4263 [
1152 fill "#000000" 4264 fill "#000000"
@@ -1154,7 +4266,7 @@ graph
1154 ] 4266 ]
1155 LabelGraphics 4267 LabelGraphics
1156 [ 4268 [
1157 text "nsPrefix attribute EPackage" 4269 text "interface reference FunctionalData"
1158 fontSize 14 4270 fontSize 14
1159 fontName "Consolas" 4271 fontName "Consolas"
1160 configuration "AutoFlippingLabel" 4272 configuration "AutoFlippingLabel"
@@ -1164,8 +4276,8 @@ graph
1164 ] 4276 ]
1165 edge 4277 edge
1166 [ 4278 [
1167 source 13 4279 source 6
1168 target 6 4280 target 2
1169 graphics 4281 graphics
1170 [ 4282 [
1171 fill "#000000" 4283 fill "#000000"
@@ -1173,7 +4285,7 @@ graph
1173 ] 4285 ]
1174 LabelGraphics 4286 LabelGraphics
1175 [ 4287 [
1176 text "nsPrefix attribute EPackage" 4288 text "type attribute Function"
1177 fontSize 14 4289 fontSize 14
1178 fontName "Consolas" 4290 fontName "Consolas"
1179 configuration "AutoFlippingLabel" 4291 configuration "AutoFlippingLabel"
@@ -1189,8 +4301,8 @@ graph
1189 id 0 4301 id 0
1190 graphics 4302 graphics
1191 [ 4303 [
1192 w 254.10000000000002 4304 w 226.60000000000002
1193 h 110 4305 h 40
1194 type "rectangle" 4306 type "rectangle"
1195 fill "#FFFFFF" 4307 fill "#FFFFFF"
1196 fill2 "#FFFFFF" 4308 fill2 "#FFFFFF"
@@ -1198,7 +4310,7 @@ graph
1198 ] 4310 ]
1199 LabelGraphics 4311 LabelGraphics
1200 [ 4312 [
1201 text "o 1" 4313 text "Root literal FunctionType"
1202 outline "#000000" 4314 outline "#000000"
1203 fill "#FFFFFF" 4315 fill "#FFFFFF"
1204 fontSize 16 4316 fontSize 16
@@ -1210,12 +4322,7 @@ graph
1210 LabelGraphics 4322 LabelGraphics
1211 [ 4323 [
1212 text " 4324 text "
1213 EModelElement class DefinedPart 4325 FunctionType enum
1214 ENamedElement class DefinedPart
1215 EPackage class DefinedPart
1216 EModelElement class
1217 ENamedElement class
1218 EPackage class
1219 " 4326 "
1220 fontSize 14 4327 fontSize 14
1221 fontName "Consolas" 4328 fontName "Consolas"
@@ -1230,8 +4337,8 @@ graph
1230 id 1 4337 id 1
1231 graphics 4338 graphics
1232 [ 4339 [
1233 w 41.800000000000004 4340 w 297.0
1234 h 26 4341 h 40
1235 type "rectangle" 4342 type "rectangle"
1236 fill "#FFFFFF" 4343 fill "#FFFFFF"
1237 fill2 "#FFFFFF" 4344 fill2 "#FFFFFF"
@@ -1239,7 +4346,7 @@ graph
1239 ] 4346 ]
1240 LabelGraphics 4347 LabelGraphics
1241 [ 4348 [
1242 text "true" 4349 text "Intermediate literal FunctionType"
1243 outline "#000000" 4350 outline "#000000"
1244 fill "#FFFFFF" 4351 fill "#FFFFFF"
1245 fontSize 16 4352 fontSize 16
@@ -1251,6 +4358,7 @@ graph
1251 LabelGraphics 4358 LabelGraphics
1252 [ 4359 [
1253 text " 4360 text "
4361 FunctionType enum
1254 " 4362 "
1255 fontSize 14 4363 fontSize 14
1256 fontName "Consolas" 4364 fontName "Consolas"
@@ -1265,8 +4373,8 @@ graph
1265 id 2 4373 id 2
1266 graphics 4374 graphics
1267 [ 4375 [
1268 w 50.6 4376 w 226.60000000000002
1269 h 26 4377 h 40
1270 type "rectangle" 4378 type "rectangle"
1271 fill "#FFFFFF" 4379 fill "#FFFFFF"
1272 fill2 "#FFFFFF" 4380 fill2 "#FFFFFF"
@@ -1274,7 +4382,7 @@ graph
1274 ] 4382 ]
1275 LabelGraphics 4383 LabelGraphics
1276 [ 4384 [
1277 text "false" 4385 text "Leaf literal FunctionType"
1278 outline "#000000" 4386 outline "#000000"
1279 fill "#FFFFFF" 4387 fill "#FFFFFF"
1280 fontSize 16 4388 fontSize 16
@@ -1286,6 +4394,7 @@ graph
1286 LabelGraphics 4394 LabelGraphics
1287 [ 4395 [
1288 text " 4396 text "
4397 FunctionType enum
1289 " 4398 "
1290 fontSize 14 4399 fontSize 14
1291 fontName "Consolas" 4400 fontName "Consolas"
@@ -1300,7 +4409,7 @@ graph
1300 id 3 4409 id 3
1301 graphics 4410 graphics
1302 [ 4411 [
1303 w 24.200000000000003 4412 w 41.800000000000004
1304 h 26 4413 h 26
1305 type "rectangle" 4414 type "rectangle"
1306 fill "#FFFFFF" 4415 fill "#FFFFFF"
@@ -1309,7 +4418,7 @@ graph
1309 ] 4418 ]
1310 LabelGraphics 4419 LabelGraphics
1311 [ 4420 [
1312 text "-1" 4421 text "true"
1313 outline "#000000" 4422 outline "#000000"
1314 fill "#FFFFFF" 4423 fill "#FFFFFF"
1315 fontSize 16 4424 fontSize 16
@@ -1335,7 +4444,7 @@ graph
1335 id 4 4444 id 4
1336 graphics 4445 graphics
1337 [ 4446 [
1338 w 15.400000000000002 4447 w 50.6
1339 h 26 4448 h 26
1340 type "rectangle" 4449 type "rectangle"
1341 fill "#FFFFFF" 4450 fill "#FFFFFF"
@@ -1344,7 +4453,7 @@ graph
1344 ] 4453 ]
1345 LabelGraphics 4454 LabelGraphics
1346 [ 4455 [
1347 text "0" 4456 text "false"
1348 outline "#000000" 4457 outline "#000000"
1349 fill "#FFFFFF" 4458 fill "#FFFFFF"
1350 fontSize 16 4459 fontSize 16
@@ -1370,8 +4479,8 @@ graph
1370 id 5 4479 id 5
1371 graphics 4480 graphics
1372 [ 4481 [
1373 w 15.400000000000002 4482 w 269.5
1374 h 26 4483 h 40
1375 type "rectangle" 4484 type "rectangle"
1376 fill "#FFFFFF" 4485 fill "#FFFFFF"
1377 fill2 "#FFFFFF" 4486 fill2 "#FFFFFF"
@@ -1379,7 +4488,7 @@ graph
1379 ] 4488 ]
1380 LabelGraphics 4489 LabelGraphics
1381 [ 4490 [
1382 text "1" 4491 text "null"
1383 outline "#000000" 4492 outline "#000000"
1384 fill "#FFFFFF" 4493 fill "#FFFFFF"
1385 fontSize 16 4494 fontSize 16
@@ -1391,6 +4500,7 @@ graph
1391 LabelGraphics 4500 LabelGraphics
1392 [ 4501 [
1393 text " 4502 text "
4503 FunctionalArchitectureModel class
1394 " 4504 "
1395 fontSize 14 4505 fontSize 14
1396 fontName "Consolas" 4506 fontName "Consolas"
@@ -1405,8 +4515,8 @@ graph
1405 id 6 4515 id 6
1406 graphics 4516 graphics
1407 [ 4517 [
1408 w 33.0 4518 w 192.50000000000003
1409 h 26 4519 h 54
1410 type "rectangle" 4520 type "rectangle"
1411 fill "#FFFFFF" 4521 fill "#FFFFFF"
1412 fill2 "#FFFFFF" 4522 fill2 "#FFFFFF"
@@ -1414,7 +4524,7 @@ graph
1414 ] 4524 ]
1415 LabelGraphics 4525 LabelGraphics
1416 [ 4526 [
1417 text ""A"" 4527 text "null"
1418 outline "#000000" 4528 outline "#000000"
1419 fill "#FFFFFF" 4529 fill "#FFFFFF"
1420 fontSize 16 4530 fontSize 16
@@ -1426,6 +4536,8 @@ graph
1426 LabelGraphics 4536 LabelGraphics
1427 [ 4537 [
1428 text " 4538 text "
4539 FunctionalElement class
4540 Function class
1429 " 4541 "
1430 fontSize 14 4542 fontSize 14
1431 fontName "Consolas" 4543 fontName "Consolas"
@@ -1440,8 +4552,8 @@ graph
1440 id 7 4552 id 7
1441 graphics 4553 graphics
1442 [ 4554 [
1443 w 33.0 4555 w 207.9
1444 h 26 4556 h 40
1445 type "rectangle" 4557 type "rectangle"
1446 fill "#FFFFFF" 4558 fill "#FFFFFF"
1447 fill2 "#FFFFFF" 4559 fill2 "#FFFFFF"
@@ -1449,7 +4561,7 @@ graph
1449 ] 4561 ]
1450 LabelGraphics 4562 LabelGraphics
1451 [ 4563 [
1452 text ""B"" 4564 text "null"
1453 outline "#000000" 4565 outline "#000000"
1454 fill "#FFFFFF" 4566 fill "#FFFFFF"
1455 fontSize 16 4567 fontSize 16
@@ -1461,6 +4573,7 @@ graph
1461 LabelGraphics 4573 LabelGraphics
1462 [ 4574 [
1463 text " 4575 text "
4576 FunctionalInterface class
1464 " 4577 "
1465 fontSize 14 4578 fontSize 14
1466 fontName "Consolas" 4579 fontName "Consolas"
@@ -1475,8 +4588,8 @@ graph
1475 id 8 4588 id 8
1476 graphics 4589 graphics
1477 [ 4590 [
1478 w 94.60000000000001 4591 w 177.10000000000002
1479 h 26 4592 h 54
1480 type "rectangle" 4593 type "rectangle"
1481 fill "#FFFFFF" 4594 fill "#FFFFFF"
1482 fill2 "#FFFFFF" 4595 fill2 "#FFFFFF"
@@ -1484,7 +4597,7 @@ graph
1484 ] 4597 ]
1485 LabelGraphics 4598 LabelGraphics
1486 [ 4599 [
1487 text ""nsPrefix"" 4600 text "null"
1488 outline "#000000" 4601 outline "#000000"
1489 fill "#FFFFFF" 4602 fill "#FFFFFF"
1490 fontSize 16 4603 fontSize 16
@@ -1496,6 +4609,8 @@ graph
1496 LabelGraphics 4609 LabelGraphics
1497 [ 4610 [
1498 text " 4611 text "
4612 FunctionalInput class
4613 FunctionalData class
1499 " 4614 "
1500 fontSize 14 4615 fontSize 14
1501 fontName "Consolas" 4616 fontName "Consolas"
@@ -1510,8 +4625,8 @@ graph
1510 id 9 4625 id 9
1511 graphics 4626 graphics
1512 [ 4627 [
1513 w 68.2 4628 w 161.70000000000002
1514 h 26 4629 h 40
1515 type "rectangle" 4630 type "rectangle"
1516 fill "#FFFFFF" 4631 fill "#FFFFFF"
1517 fill2 "#FFFFFF" 4632 fill2 "#FFFFFF"
@@ -1519,7 +4634,7 @@ graph
1519 ] 4634 ]
1520 LabelGraphics 4635 LabelGraphics
1521 [ 4636 [
1522 text ""nsUri"" 4637 text "null"
1523 outline "#000000" 4638 outline "#000000"
1524 fill "#FFFFFF" 4639 fill "#FFFFFF"
1525 fontSize 16 4640 fontSize 16
@@ -1531,6 +4646,7 @@ graph
1531 LabelGraphics 4646 LabelGraphics
1532 [ 4647 [
1533 text " 4648 text "
4649 FAMTerminator class
1534 " 4650 "
1535 fontSize 14 4651 fontSize 14
1536 fontName "Consolas" 4652 fontName "Consolas"
@@ -1545,8 +4661,8 @@ graph
1545 id 10 4661 id 10
1546 graphics 4662 graphics
1547 [ 4663 [
1548 w 121.00000000000001 4664 w 184.8
1549 h 26 4665 h 54
1550 type "rectangle" 4666 type "rectangle"
1551 fill "#FFFFFF" 4667 fill "#FFFFFF"
1552 fill2 "#FFFFFF" 4668 fill2 "#FFFFFF"
@@ -1554,7 +4670,7 @@ graph
1554 ] 4670 ]
1555 LabelGraphics 4671 LabelGraphics
1556 [ 4672 [
1557 text ""packageName"" 4673 text "null"
1558 outline "#000000" 4674 outline "#000000"
1559 fill "#FFFFFF" 4675 fill "#FFFFFF"
1560 fontSize 16 4676 fontSize 16
@@ -1566,6 +4682,8 @@ graph
1566 LabelGraphics 4682 LabelGraphics
1567 [ 4683 [
1568 text " 4684 text "
4685 FunctionalOutput class
4686 FunctionalData class
1569 " 4687 "
1570 fontSize 14 4688 fontSize 14
1571 fontName "Consolas" 4689 fontName "Consolas"
@@ -1580,8 +4698,8 @@ graph
1580 id 11 4698 id 11
1581 graphics 4699 graphics
1582 [ 4700 [
1583 w 269.5 4701 w 184.8
1584 h 110 4702 h 54
1585 type "rectangle" 4703 type "rectangle"
1586 fill "#FFFFFF" 4704 fill "#FFFFFF"
1587 fill2 "#FFFFFF" 4705 fill2 "#FFFFFF"
@@ -1601,12 +4719,8 @@ graph
1601 LabelGraphics 4719 LabelGraphics
1602 [ 4720 [
1603 text " 4721 text "
1604 EClassifier class 4722 FunctionalOutput class
1605 EDataType class 4723 FunctionalData class
1606 EModelElement class
1607 ENamedElement class
1608 EModelElement class UndefinedPart
1609 ENamedElement class UndefinedPart
1610 " 4724 "
1611 fontSize 14 4725 fontSize 14
1612 fontName "Consolas" 4726 fontName "Consolas"
@@ -1621,8 +4735,8 @@ graph
1621 id 12 4735 id 12
1622 graphics 4736 graphics
1623 [ 4737 [
1624 w 269.5 4738 w 112.2
1625 h 68 4739 h 26
1626 type "rectangle" 4740 type "rectangle"
1627 fill "#FFFFFF" 4741 fill "#FFFFFF"
1628 fill2 "#FFFFFF" 4742 fill2 "#FFFFFF"
@@ -1630,7 +4744,7 @@ graph
1630 ] 4744 ]
1631 LabelGraphics 4745 LabelGraphics
1632 [ 4746 [
1633 text "null" 4747 text "New Integers"
1634 outline "#000000" 4748 outline "#000000"
1635 fill "#FFFFFF" 4749 fill "#FFFFFF"
1636 fontSize 16 4750 fontSize 16
@@ -1642,9 +4756,6 @@ graph
1642 LabelGraphics 4756 LabelGraphics
1643 [ 4757 [
1644 text " 4758 text "
1645 EAnnotation class
1646 EModelElement class
1647 EModelElement class UndefinedPart
1648 " 4759 "
1649 fontSize 14 4760 fontSize 14
1650 fontName "Consolas" 4761 fontName "Consolas"
@@ -1659,8 +4770,8 @@ graph
1659 id 13 4770 id 13
1660 graphics 4771 graphics
1661 [ 4772 [
1662 w 269.5 4773 w 85.80000000000001
1663 h 110 4774 h 26
1664 type "rectangle" 4775 type "rectangle"
1665 fill "#FFFFFF" 4776 fill "#FFFFFF"
1666 fill2 "#FFFFFF" 4777 fill2 "#FFFFFF"
@@ -1668,7 +4779,7 @@ graph
1668 ] 4779 ]
1669 LabelGraphics 4780 LabelGraphics
1670 [ 4781 [
1671 text "null" 4782 text "New Reals"
1672 outline "#000000" 4783 outline "#000000"
1673 fill "#FFFFFF" 4784 fill "#FFFFFF"
1674 fontSize 16 4785 fontSize 16
@@ -1680,12 +4791,6 @@ graph
1680 LabelGraphics 4791 LabelGraphics
1681 [ 4792 [
1682 text " 4793 text "
1683 EClass class
1684 EClassifier class
1685 EModelElement class
1686 ENamedElement class
1687 EModelElement class UndefinedPart
1688 ENamedElement class UndefinedPart
1689 " 4794 "
1690 fontSize 14 4795 fontSize 14
1691 fontName "Consolas" 4796 fontName "Consolas"
@@ -1700,8 +4805,8 @@ graph
1700 id 14 4805 id 14
1701 graphics 4806 graphics
1702 [ 4807 [
1703 w 269.5 4808 w 103.4
1704 h 110 4809 h 26
1705 type "rectangle" 4810 type "rectangle"
1706 fill "#FFFFFF" 4811 fill "#FFFFFF"
1707 fill2 "#FFFFFF" 4812 fill2 "#FFFFFF"
@@ -1709,7 +4814,7 @@ graph
1709 ] 4814 ]
1710 LabelGraphics 4815 LabelGraphics
1711 [ 4816 [
1712 text "null" 4817 text "New Strings"
1713 outline "#000000" 4818 outline "#000000"
1714 fill "#FFFFFF" 4819 fill "#FFFFFF"
1715 fontSize 16 4820 fontSize 16
@@ -1721,12 +4826,6 @@ graph
1721 LabelGraphics 4826 LabelGraphics
1722 [ 4827 [
1723 text " 4828 text "
1724 EClassifier class
1725 EDataType class
1726 EModelElement class
1727 ENamedElement class
1728 EModelElement class UndefinedPart
1729 ENamedElement class UndefinedPart
1730 " 4829 "
1731 fontSize 14 4830 fontSize 14
1732 fontName "Consolas" 4831 fontName "Consolas"
@@ -1741,8 +4840,476 @@ graph
1741 id 15 4840 id 15
1742 graphics 4841 graphics
1743 [ 4842 [
4843 w 103.4
4844 h 26
4845 type "rectangle"
4846 fill "#FFFFFF"
4847 fill2 "#FFFFFF"
4848 outline "#000000"
4849 ]
4850 LabelGraphics
4851 [
4852 text "New Objects"
4853 outline "#000000"
4854 fill "#FFFFFF"
4855 fontSize 16
4856 fontName "Monospace"
4857 autoSizePolicy "node_width"
4858 anchor "t"
4859 borderDistance 0.0
4860 ]
4861 LabelGraphics
4862 [
4863 text "
4864 "
4865 fontSize 14
4866 fontName "Consolas"
4867 alignment "left"
4868 anchor "tl"
4869 borderDistance 6
4870 ]
4871 ]
4872 edge
4873 [
4874 source 6
4875 target 7
4876 graphics
4877 [
4878 fill "#000000"
4879 width 3
4880 targetArrow "standard"
4881 ]
4882 LabelGraphics
4883 [
4884 text "interface reference FunctionalElement"
4885 fontSize 14
4886 fontName "Consolas"
4887 configuration "AutoFlippingLabel"
4888 model "six_pos"
4889 position "thead"
4890 ]
4891 ]
4892 edge
4893 [
4894 source 6
4895 target 5
4896 graphics
4897 [
4898 fill "#000000"
4899 targetArrow "standard"
4900 ]
4901 LabelGraphics
4902 [
4903 text "model reference FunctionalElement"
4904 fontSize 14
4905 fontName "Consolas"
4906 configuration "AutoFlippingLabel"
4907 model "six_pos"
4908 position "thead"
4909 ]
4910 ]
4911 edge
4912 [
4913 source 5
4914 target 6
4915 graphics
4916 [
4917 fill "#000000"
4918 width 3
4919 targetArrow "standard"
4920 ]
4921 LabelGraphics
4922 [
4923 text "rootElements reference FunctionalArchitectureModel"
4924 fontSize 14
4925 fontName "Consolas"
4926 configuration "AutoFlippingLabel"
4927 model "six_pos"
4928 position "thead"
4929 ]
4930 ]
4931 edge
4932 [
4933 source 9
4934 target 8
4935 graphics
4936 [
4937 fill "#000000"
4938 targetArrow "standard"
4939 ]
4940 LabelGraphics
4941 [
4942 text "data reference FAMTerminator"
4943 fontSize 14
4944 fontName "Consolas"
4945 configuration "AutoFlippingLabel"
4946 model "six_pos"
4947 position "thead"
4948 ]
4949 ]
4950 edge
4951 [
4952 source 7
4953 target 8
4954 graphics
4955 [
4956 fill "#000000"
4957 width 3
4958 targetArrow "standard"
4959 ]
4960 LabelGraphics
4961 [
4962 text "data reference FunctionalInterface"
4963 fontSize 14
4964 fontName "Consolas"
4965 configuration "AutoFlippingLabel"
4966 model "six_pos"
4967 position "thead"
4968 ]
4969 ]
4970 edge
4971 [
4972 source 7
4973 target 10
4974 graphics
4975 [
4976 fill "#000000"
4977 width 3
4978 targetArrow "standard"
4979 ]
4980 LabelGraphics
4981 [
4982 text "data reference FunctionalInterface"
4983 fontSize 14
4984 fontName "Consolas"
4985 configuration "AutoFlippingLabel"
4986 model "six_pos"
4987 position "thead"
4988 ]
4989 ]
4990 edge
4991 [
4992 source 7
4993 target 11
4994 graphics
4995 [
4996 fill "#000000"
4997 width 3
4998 targetArrow "standard"
4999 ]
5000 LabelGraphics
5001 [
5002 text "data reference FunctionalInterface"
5003 fontSize 14
5004 fontName "Consolas"
5005 configuration "AutoFlippingLabel"
5006 model "six_pos"
5007 position "thead"
5008 ]
5009 ]
5010 edge
5011 [
5012 source 7
5013 target 6
5014 graphics
5015 [
5016 fill "#000000"
5017 targetArrow "standard"
5018 ]
5019 LabelGraphics
5020 [
5021 text "element reference FunctionalInterface"
5022 fontSize 14
5023 fontName "Consolas"
5024 configuration "AutoFlippingLabel"
5025 model "six_pos"
5026 position "thead"
5027 ]
5028 ]
5029 edge
5030 [
5031 source 8
5032 target 9
5033 graphics
5034 [
5035 fill "#000000"
5036 width 3
5037 targetArrow "standard"
5038 ]
5039 LabelGraphics
5040 [
5041 text "terminator reference FunctionalData"
5042 fontSize 14
5043 fontName "Consolas"
5044 configuration "AutoFlippingLabel"
5045 model "six_pos"
5046 position "thead"
5047 ]
5048 ]
5049 edge
5050 [
5051 source 8
5052 target 7
5053 graphics
5054 [
5055 fill "#000000"
5056 targetArrow "standard"
5057 ]
5058 LabelGraphics
5059 [
5060 text "interface reference FunctionalData"
5061 fontSize 14
5062 fontName "Consolas"
5063 configuration "AutoFlippingLabel"
5064 model "six_pos"
5065 position "thead"
5066 ]
5067 ]
5068 edge
5069 [
5070 source 10
5071 target 7
5072 graphics
5073 [
5074 fill "#000000"
5075 targetArrow "standard"
5076 ]
5077 LabelGraphics
5078 [
5079 text "interface reference FunctionalData"
5080 fontSize 14
5081 fontName "Consolas"
5082 configuration "AutoFlippingLabel"
5083 model "six_pos"
5084 position "thead"
5085 ]
5086 ]
5087 edge
5088 [
5089 source 11
5090 target 7
5091 graphics
5092 [
5093 fill "#000000"
5094 targetArrow "standard"
5095 ]
5096 LabelGraphics
5097 [
5098 text "interface reference FunctionalData"
5099 fontSize 14
5100 fontName "Consolas"
5101 configuration "AutoFlippingLabel"
5102 model "six_pos"
5103 position "thead"
5104 ]
5105 ]
5106 edge
5107 [
5108 source 6
5109 target 0
5110 graphics
5111 [
5112 fill "#000000"
5113 targetArrow "standard"
5114 ]
5115 LabelGraphics
5116 [
5117 text "type attribute Function"
5118 fontSize 14
5119 fontName "Consolas"
5120 configuration "AutoFlippingLabel"
5121 model "six_pos"
5122 position "thead"
5123 ]
5124 ]
5125]
5126graph
5127[
5128 node
5129 [
5130 id 0
5131 graphics
5132 [
5133 w 226.60000000000002
5134 h 40
5135 type "rectangle"
5136 fill "#FFFFFF"
5137 fill2 "#FFFFFF"
5138 outline "#000000"
5139 ]
5140 LabelGraphics
5141 [
5142 text "Root literal FunctionType"
5143 outline "#000000"
5144 fill "#FFFFFF"
5145 fontSize 16
5146 fontName "Monospace"
5147 autoSizePolicy "node_width"
5148 anchor "t"
5149 borderDistance 0.0
5150 ]
5151 LabelGraphics
5152 [
5153 text "
5154 FunctionType enum
5155 "
5156 fontSize 14
5157 fontName "Consolas"
5158 alignment "left"
5159 anchor "tl"
5160 borderDistance 6
5161 ]
5162 ]
5163
5164 node
5165 [
5166 id 1
5167 graphics
5168 [
5169 w 297.0
5170 h 40
5171 type "rectangle"
5172 fill "#FFFFFF"
5173 fill2 "#FFFFFF"
5174 outline "#000000"
5175 ]
5176 LabelGraphics
5177 [
5178 text "Intermediate literal FunctionType"
5179 outline "#000000"
5180 fill "#FFFFFF"
5181 fontSize 16
5182 fontName "Monospace"
5183 autoSizePolicy "node_width"
5184 anchor "t"
5185 borderDistance 0.0
5186 ]
5187 LabelGraphics
5188 [
5189 text "
5190 FunctionType enum
5191 "
5192 fontSize 14
5193 fontName "Consolas"
5194 alignment "left"
5195 anchor "tl"
5196 borderDistance 6
5197 ]
5198 ]
5199
5200 node
5201 [
5202 id 2
5203 graphics
5204 [
5205 w 226.60000000000002
5206 h 40
5207 type "rectangle"
5208 fill "#FFFFFF"
5209 fill2 "#FFFFFF"
5210 outline "#000000"
5211 ]
5212 LabelGraphics
5213 [
5214 text "Leaf literal FunctionType"
5215 outline "#000000"
5216 fill "#FFFFFF"
5217 fontSize 16
5218 fontName "Monospace"
5219 autoSizePolicy "node_width"
5220 anchor "t"
5221 borderDistance 0.0
5222 ]
5223 LabelGraphics
5224 [
5225 text "
5226 FunctionType enum
5227 "
5228 fontSize 14
5229 fontName "Consolas"
5230 alignment "left"
5231 anchor "tl"
5232 borderDistance 6
5233 ]
5234 ]
5235
5236 node
5237 [
5238 id 3
5239 graphics
5240 [
5241 w 41.800000000000004
5242 h 26
5243 type "rectangle"
5244 fill "#FFFFFF"
5245 fill2 "#FFFFFF"
5246 outline "#000000"
5247 ]
5248 LabelGraphics
5249 [
5250 text "true"
5251 outline "#000000"
5252 fill "#FFFFFF"
5253 fontSize 16
5254 fontName "Monospace"
5255 autoSizePolicy "node_width"
5256 anchor "t"
5257 borderDistance 0.0
5258 ]
5259 LabelGraphics
5260 [
5261 text "
5262 "
5263 fontSize 14
5264 fontName "Consolas"
5265 alignment "left"
5266 anchor "tl"
5267 borderDistance 6
5268 ]
5269 ]
5270
5271 node
5272 [
5273 id 4
5274 graphics
5275 [
5276 w 50.6
5277 h 26
5278 type "rectangle"
5279 fill "#FFFFFF"
5280 fill2 "#FFFFFF"
5281 outline "#000000"
5282 ]
5283 LabelGraphics
5284 [
5285 text "false"
5286 outline "#000000"
5287 fill "#FFFFFF"
5288 fontSize 16
5289 fontName "Monospace"
5290 autoSizePolicy "node_width"
5291 anchor "t"
5292 borderDistance 0.0
5293 ]
5294 LabelGraphics
5295 [
5296 text "
5297 "
5298 fontSize 14
5299 fontName "Consolas"
5300 alignment "left"
5301 anchor "tl"
5302 borderDistance 6
5303 ]
5304 ]
5305
5306 node
5307 [
5308 id 5
5309 graphics
5310 [
1744 w 269.5 5311 w 269.5
1745 h 68 5312 h 40
1746 type "rectangle" 5313 type "rectangle"
1747 fill "#FFFFFF" 5314 fill "#FFFFFF"
1748 fill2 "#FFFFFF" 5315 fill2 "#FFFFFF"
@@ -1762,9 +5329,7 @@ graph
1762 LabelGraphics 5329 LabelGraphics
1763 [ 5330 [
1764 text " 5331 text "
1765 EAnnotation class 5332 FunctionalArchitectureModel class
1766 EModelElement class
1767 EModelElement class UndefinedPart
1768 " 5333 "
1769 fontSize 14 5334 fontSize 14
1770 fontName "Consolas" 5335 fontName "Consolas"
@@ -1776,7 +5341,227 @@ graph
1776 5341
1777 node 5342 node
1778 [ 5343 [
1779 id 16 5344 id 6
5345 graphics
5346 [
5347 w 192.50000000000003
5348 h 54
5349 type "rectangle"
5350 fill "#FFFFFF"
5351 fill2 "#FFFFFF"
5352 outline "#000000"
5353 ]
5354 LabelGraphics
5355 [
5356 text "null"
5357 outline "#000000"
5358 fill "#FFFFFF"
5359 fontSize 16
5360 fontName "Monospace"
5361 autoSizePolicy "node_width"
5362 anchor "t"
5363 borderDistance 0.0
5364 ]
5365 LabelGraphics
5366 [
5367 text "
5368 FunctionalElement class
5369 Function class
5370 "
5371 fontSize 14
5372 fontName "Consolas"
5373 alignment "left"
5374 anchor "tl"
5375 borderDistance 6
5376 ]
5377 ]
5378
5379 node
5380 [
5381 id 7
5382 graphics
5383 [
5384 w 207.9
5385 h 40
5386 type "rectangle"
5387 fill "#FFFFFF"
5388 fill2 "#FFFFFF"
5389 outline "#000000"
5390 ]
5391 LabelGraphics
5392 [
5393 text "null"
5394 outline "#000000"
5395 fill "#FFFFFF"
5396 fontSize 16
5397 fontName "Monospace"
5398 autoSizePolicy "node_width"
5399 anchor "t"
5400 borderDistance 0.0
5401 ]
5402 LabelGraphics
5403 [
5404 text "
5405 FunctionalInterface class
5406 "
5407 fontSize 14
5408 fontName "Consolas"
5409 alignment "left"
5410 anchor "tl"
5411 borderDistance 6
5412 ]
5413 ]
5414
5415 node
5416 [
5417 id 8
5418 graphics
5419 [
5420 w 184.8
5421 h 54
5422 type "rectangle"
5423 fill "#FFFFFF"
5424 fill2 "#FFFFFF"
5425 outline "#000000"
5426 ]
5427 LabelGraphics
5428 [
5429 text "null"
5430 outline "#000000"
5431 fill "#FFFFFF"
5432 fontSize 16
5433 fontName "Monospace"
5434 autoSizePolicy "node_width"
5435 anchor "t"
5436 borderDistance 0.0
5437 ]
5438 LabelGraphics
5439 [
5440 text "
5441 FunctionalOutput class
5442 FunctionalData class
5443 "
5444 fontSize 14
5445 fontName "Consolas"
5446 alignment "left"
5447 anchor "tl"
5448 borderDistance 6
5449 ]
5450 ]
5451
5452 node
5453 [
5454 id 9
5455 graphics
5456 [
5457 w 184.8
5458 h 54
5459 type "rectangle"
5460 fill "#FFFFFF"
5461 fill2 "#FFFFFF"
5462 outline "#000000"
5463 ]
5464 LabelGraphics
5465 [
5466 text "null"
5467 outline "#000000"
5468 fill "#FFFFFF"
5469 fontSize 16
5470 fontName "Monospace"
5471 autoSizePolicy "node_width"
5472 anchor "t"
5473 borderDistance 0.0
5474 ]
5475 LabelGraphics
5476 [
5477 text "
5478 FunctionalOutput class
5479 FunctionalData class
5480 "
5481 fontSize 14
5482 fontName "Consolas"
5483 alignment "left"
5484 anchor "tl"
5485 borderDistance 6
5486 ]
5487 ]
5488
5489 node
5490 [
5491 id 10
5492 graphics
5493 [
5494 w 177.10000000000002
5495 h 54
5496 type "rectangle"
5497 fill "#FFFFFF"
5498 fill2 "#FFFFFF"
5499 outline "#000000"
5500 ]
5501 LabelGraphics
5502 [
5503 text "null"
5504 outline "#000000"
5505 fill "#FFFFFF"
5506 fontSize 16
5507 fontName "Monospace"
5508 autoSizePolicy "node_width"
5509 anchor "t"
5510 borderDistance 0.0
5511 ]
5512 LabelGraphics
5513 [
5514 text "
5515 FunctionalInput class
5516 FunctionalData class
5517 "
5518 fontSize 14
5519 fontName "Consolas"
5520 alignment "left"
5521 anchor "tl"
5522 borderDistance 6
5523 ]
5524 ]
5525
5526 node
5527 [
5528 id 11
5529 graphics
5530 [
5531 w 161.70000000000002
5532 h 40
5533 type "rectangle"
5534 fill "#FFFFFF"
5535 fill2 "#FFFFFF"
5536 outline "#000000"
5537 ]
5538 LabelGraphics
5539 [
5540 text "null"
5541 outline "#000000"
5542 fill "#FFFFFF"
5543 fontSize 16
5544 fontName "Monospace"
5545 autoSizePolicy "node_width"
5546 anchor "t"
5547 borderDistance 0.0
5548 ]
5549 LabelGraphics
5550 [
5551 text "
5552 FAMTerminator class
5553 "
5554 fontSize 14
5555 fontName "Consolas"
5556 alignment "left"
5557 anchor "tl"
5558 borderDistance 6
5559 ]
5560 ]
5561
5562 node
5563 [
5564 id 12
1780 graphics 5565 graphics
1781 [ 5566 [
1782 w 112.2 5567 w 112.2
@@ -1811,7 +5596,7 @@ graph
1811 5596
1812 node 5597 node
1813 [ 5598 [
1814 id 17 5599 id 13
1815 graphics 5600 graphics
1816 [ 5601 [
1817 w 85.80000000000001 5602 w 85.80000000000001
@@ -1846,7 +5631,7 @@ graph
1846 5631
1847 node 5632 node
1848 [ 5633 [
1849 id 18 5634 id 14
1850 graphics 5635 graphics
1851 [ 5636 [
1852 w 103.4 5637 w 103.4
@@ -1881,7 +5666,7 @@ graph
1881 5666
1882 node 5667 node
1883 [ 5668 [
1884 id 19 5669 id 15
1885 graphics 5670 graphics
1886 [ 5671 [
1887 w 103.4 5672 w 103.4
@@ -1915,16 +5700,17 @@ graph
1915 ] 5700 ]
1916 edge 5701 edge
1917 [ 5702 [
1918 source 12 5703 source 6
1919 target 0 5704 target 7
1920 graphics 5705 graphics
1921 [ 5706 [
1922 fill "#000000" 5707 fill "#000000"
5708 width 3
1923 targetArrow "standard" 5709 targetArrow "standard"
1924 ] 5710 ]
1925 LabelGraphics 5711 LabelGraphics
1926 [ 5712 [
1927 text "eModelElement reference EAnnotation" 5713 text "interface reference FunctionalElement"
1928 fontSize 14 5714 fontSize 14
1929 fontName "Consolas" 5715 fontName "Consolas"
1930 configuration "AutoFlippingLabel" 5716 configuration "AutoFlippingLabel"
@@ -1934,16 +5720,36 @@ graph
1934 ] 5720 ]
1935 edge 5721 edge
1936 [ 5722 [
1937 source 15 5723 source 6
1938 target 0 5724 target 5
5725 graphics
5726 [
5727 fill "#000000"
5728 targetArrow "standard"
5729 ]
5730 LabelGraphics
5731 [
5732 text "model reference FunctionalElement"
5733 fontSize 14
5734 fontName "Consolas"
5735 configuration "AutoFlippingLabel"
5736 model "six_pos"
5737 position "thead"
5738 ]
5739 ]
5740 edge
5741 [
5742 source 5
5743 target 6
1939 graphics 5744 graphics
1940 [ 5745 [
1941 fill "#000000" 5746 fill "#000000"
5747 width 3
1942 targetArrow "standard" 5748 targetArrow "standard"
1943 ] 5749 ]
1944 LabelGraphics 5750 LabelGraphics
1945 [ 5751 [
1946 text "eModelElement reference EAnnotation" 5752 text "rootElements reference FunctionalArchitectureModel"
1947 fontSize 14 5753 fontSize 14
1948 fontName "Consolas" 5754 fontName "Consolas"
1949 configuration "AutoFlippingLabel" 5755 configuration "AutoFlippingLabel"
@@ -1954,7 +5760,7 @@ graph
1954 edge 5760 edge
1955 [ 5761 [
1956 source 11 5762 source 11
1957 target 0 5763 target 10
1958 graphics 5764 graphics
1959 [ 5765 [
1960 fill "#000000" 5766 fill "#000000"
@@ -1962,7 +5768,7 @@ graph
1962 ] 5768 ]
1963 LabelGraphics 5769 LabelGraphics
1964 [ 5770 [
1965 text "ePackage reference EClassifier" 5771 text "data reference FAMTerminator"
1966 fontSize 14 5772 fontSize 14
1967 fontName "Consolas" 5773 fontName "Consolas"
1968 configuration "AutoFlippingLabel" 5774 configuration "AutoFlippingLabel"
@@ -1972,16 +5778,17 @@ graph
1972 ] 5778 ]
1973 edge 5779 edge
1974 [ 5780 [
1975 source 13 5781 source 7
1976 target 0 5782 target 8
1977 graphics 5783 graphics
1978 [ 5784 [
1979 fill "#000000" 5785 fill "#000000"
5786 width 3
1980 targetArrow "standard" 5787 targetArrow "standard"
1981 ] 5788 ]
1982 LabelGraphics 5789 LabelGraphics
1983 [ 5790 [
1984 text "ePackage reference EClassifier" 5791 text "data reference FunctionalInterface"
1985 fontSize 14 5792 fontSize 14
1986 fontName "Consolas" 5793 fontName "Consolas"
1987 configuration "AutoFlippingLabel" 5794 configuration "AutoFlippingLabel"
@@ -1991,7 +5798,143 @@ graph
1991 ] 5798 ]
1992 edge 5799 edge
1993 [ 5800 [
1994 source 14 5801 source 7
5802 target 9
5803 graphics
5804 [
5805 fill "#000000"
5806 width 3
5807 targetArrow "standard"
5808 ]
5809 LabelGraphics
5810 [
5811 text "data reference FunctionalInterface"
5812 fontSize 14
5813 fontName "Consolas"
5814 configuration "AutoFlippingLabel"
5815 model "six_pos"
5816 position "thead"
5817 ]
5818 ]
5819 edge
5820 [
5821 source 7
5822 target 10
5823 graphics
5824 [
5825 fill "#000000"
5826 width 3
5827 targetArrow "standard"
5828 ]
5829 LabelGraphics
5830 [
5831 text "data reference FunctionalInterface"
5832 fontSize 14
5833 fontName "Consolas"
5834 configuration "AutoFlippingLabel"
5835 model "six_pos"
5836 position "thead"
5837 ]
5838 ]
5839 edge
5840 [
5841 source 7
5842 target 6
5843 graphics
5844 [
5845 fill "#000000"
5846 targetArrow "standard"
5847 ]
5848 LabelGraphics
5849 [
5850 text "element reference FunctionalInterface"
5851 fontSize 14
5852 fontName "Consolas"
5853 configuration "AutoFlippingLabel"
5854 model "six_pos"
5855 position "thead"
5856 ]
5857 ]
5858 edge
5859 [
5860 source 10
5861 target 11
5862 graphics
5863 [
5864 fill "#000000"
5865 width 3
5866 targetArrow "standard"
5867 ]
5868 LabelGraphics
5869 [
5870 text "terminator reference FunctionalData"
5871 fontSize 14
5872 fontName "Consolas"
5873 configuration "AutoFlippingLabel"
5874 model "six_pos"
5875 position "thead"
5876 ]
5877 ]
5878 edge
5879 [
5880 source 8
5881 target 7
5882 graphics
5883 [
5884 fill "#000000"
5885 targetArrow "standard"
5886 ]
5887 LabelGraphics
5888 [
5889 text "interface reference FunctionalData"
5890 fontSize 14
5891 fontName "Consolas"
5892 configuration "AutoFlippingLabel"
5893 model "six_pos"
5894 position "thead"
5895 ]
5896 ]
5897 edge
5898 [
5899 source 9
5900 target 7
5901 graphics
5902 [
5903 fill "#000000"
5904 targetArrow "standard"
5905 ]
5906 LabelGraphics
5907 [
5908 text "interface reference FunctionalData"
5909 fontSize 14
5910 fontName "Consolas"
5911 configuration "AutoFlippingLabel"
5912 model "six_pos"
5913 position "thead"
5914 ]
5915 ]
5916 edge
5917 [
5918 source 10
5919 target 7
5920 graphics
5921 [
5922 fill "#000000"
5923 targetArrow "standard"
5924 ]
5925 LabelGraphics
5926 [
5927 text "interface reference FunctionalData"
5928 fontSize 14
5929 fontName "Consolas"
5930 configuration "AutoFlippingLabel"
5931 model "six_pos"
5932 position "thead"
5933 ]
5934 ]
5935 edge
5936 [
5937 source 6
1995 target 0 5938 target 0
1996 graphics 5939 graphics
1997 [ 5940 [
@@ -2000,7 +5943,643 @@ graph
2000 ] 5943 ]
2001 LabelGraphics 5944 LabelGraphics
2002 [ 5945 [
2003 text "ePackage reference EClassifier" 5946 text "type attribute Function"
5947 fontSize 14
5948 fontName "Consolas"
5949 configuration "AutoFlippingLabel"
5950 model "six_pos"
5951 position "thead"
5952 ]
5953 ]
5954]
5955graph
5956[
5957 node
5958 [
5959 id 0
5960 graphics
5961 [
5962 w 226.60000000000002
5963 h 40
5964 type "rectangle"
5965 fill "#FFFFFF"
5966 fill2 "#FFFFFF"
5967 outline "#000000"
5968 ]
5969 LabelGraphics
5970 [
5971 text "Root literal FunctionType"
5972 outline "#000000"
5973 fill "#FFFFFF"
5974 fontSize 16
5975 fontName "Monospace"
5976 autoSizePolicy "node_width"
5977 anchor "t"
5978 borderDistance 0.0
5979 ]
5980 LabelGraphics
5981 [
5982 text "
5983 FunctionType enum
5984 "
5985 fontSize 14
5986 fontName "Consolas"
5987 alignment "left"
5988 anchor "tl"
5989 borderDistance 6
5990 ]
5991 ]
5992
5993 node
5994 [
5995 id 1
5996 graphics
5997 [
5998 w 297.0
5999 h 40
6000 type "rectangle"
6001 fill "#FFFFFF"
6002 fill2 "#FFFFFF"
6003 outline "#000000"
6004 ]
6005 LabelGraphics
6006 [
6007 text "Intermediate literal FunctionType"
6008 outline "#000000"
6009 fill "#FFFFFF"
6010 fontSize 16
6011 fontName "Monospace"
6012 autoSizePolicy "node_width"
6013 anchor "t"
6014 borderDistance 0.0
6015 ]
6016 LabelGraphics
6017 [
6018 text "
6019 FunctionType enum
6020 "
6021 fontSize 14
6022 fontName "Consolas"
6023 alignment "left"
6024 anchor "tl"
6025 borderDistance 6
6026 ]
6027 ]
6028
6029 node
6030 [
6031 id 2
6032 graphics
6033 [
6034 w 226.60000000000002
6035 h 40
6036 type "rectangle"
6037 fill "#FFFFFF"
6038 fill2 "#FFFFFF"
6039 outline "#000000"
6040 ]
6041 LabelGraphics
6042 [
6043 text "Leaf literal FunctionType"
6044 outline "#000000"
6045 fill "#FFFFFF"
6046 fontSize 16
6047 fontName "Monospace"
6048 autoSizePolicy "node_width"
6049 anchor "t"
6050 borderDistance 0.0
6051 ]
6052 LabelGraphics
6053 [
6054 text "
6055 FunctionType enum
6056 "
6057 fontSize 14
6058 fontName "Consolas"
6059 alignment "left"
6060 anchor "tl"
6061 borderDistance 6
6062 ]
6063 ]
6064
6065 node
6066 [
6067 id 3
6068 graphics
6069 [
6070 w 41.800000000000004
6071 h 26
6072 type "rectangle"
6073 fill "#FFFFFF"
6074 fill2 "#FFFFFF"
6075 outline "#000000"
6076 ]
6077 LabelGraphics
6078 [
6079 text "true"
6080 outline "#000000"
6081 fill "#FFFFFF"
6082 fontSize 16
6083 fontName "Monospace"
6084 autoSizePolicy "node_width"
6085 anchor "t"
6086 borderDistance 0.0
6087 ]
6088 LabelGraphics
6089 [
6090 text "
6091 "
6092 fontSize 14
6093 fontName "Consolas"
6094 alignment "left"
6095 anchor "tl"
6096 borderDistance 6
6097 ]
6098 ]
6099
6100 node
6101 [
6102 id 4
6103 graphics
6104 [
6105 w 50.6
6106 h 26
6107 type "rectangle"
6108 fill "#FFFFFF"
6109 fill2 "#FFFFFF"
6110 outline "#000000"
6111 ]
6112 LabelGraphics
6113 [
6114 text "false"
6115 outline "#000000"
6116 fill "#FFFFFF"
6117 fontSize 16
6118 fontName "Monospace"
6119 autoSizePolicy "node_width"
6120 anchor "t"
6121 borderDistance 0.0
6122 ]
6123 LabelGraphics
6124 [
6125 text "
6126 "
6127 fontSize 14
6128 fontName "Consolas"
6129 alignment "left"
6130 anchor "tl"
6131 borderDistance 6
6132 ]
6133 ]
6134
6135 node
6136 [
6137 id 5
6138 graphics
6139 [
6140 w 207.9
6141 h 40
6142 type "rectangle"
6143 fill "#FFFFFF"
6144 fill2 "#FFFFFF"
6145 outline "#000000"
6146 ]
6147 LabelGraphics
6148 [
6149 text "null"
6150 outline "#000000"
6151 fill "#FFFFFF"
6152 fontSize 16
6153 fontName "Monospace"
6154 autoSizePolicy "node_width"
6155 anchor "t"
6156 borderDistance 0.0
6157 ]
6158 LabelGraphics
6159 [
6160 text "
6161 FunctionalInterface class
6162 "
6163 fontSize 14
6164 fontName "Consolas"
6165 alignment "left"
6166 anchor "tl"
6167 borderDistance 6
6168 ]
6169 ]
6170
6171 node
6172 [
6173 id 6
6174 graphics
6175 [
6176 w 177.10000000000002
6177 h 54
6178 type "rectangle"
6179 fill "#FFFFFF"
6180 fill2 "#FFFFFF"
6181 outline "#000000"
6182 ]
6183 LabelGraphics
6184 [
6185 text "null"
6186 outline "#000000"
6187 fill "#FFFFFF"
6188 fontSize 16
6189 fontName "Monospace"
6190 autoSizePolicy "node_width"
6191 anchor "t"
6192 borderDistance 0.0
6193 ]
6194 LabelGraphics
6195 [
6196 text "
6197 FunctionalInput class
6198 FunctionalData class
6199 "
6200 fontSize 14
6201 fontName "Consolas"
6202 alignment "left"
6203 anchor "tl"
6204 borderDistance 6
6205 ]
6206 ]
6207
6208 node
6209 [
6210 id 7
6211 graphics
6212 [
6213 w 184.8
6214 h 54
6215 type "rectangle"
6216 fill "#FFFFFF"
6217 fill2 "#FFFFFF"
6218 outline "#000000"
6219 ]
6220 LabelGraphics
6221 [
6222 text "null"
6223 outline "#000000"
6224 fill "#FFFFFF"
6225 fontSize 16
6226 fontName "Monospace"
6227 autoSizePolicy "node_width"
6228 anchor "t"
6229 borderDistance 0.0
6230 ]
6231 LabelGraphics
6232 [
6233 text "
6234 FunctionalOutput class
6235 FunctionalData class
6236 "
6237 fontSize 14
6238 fontName "Consolas"
6239 alignment "left"
6240 anchor "tl"
6241 borderDistance 6
6242 ]
6243 ]
6244
6245 node
6246 [
6247 id 8
6248 graphics
6249 [
6250 w 161.70000000000002
6251 h 40
6252 type "rectangle"
6253 fill "#FFFFFF"
6254 fill2 "#FFFFFF"
6255 outline "#000000"
6256 ]
6257 LabelGraphics
6258 [
6259 text "null"
6260 outline "#000000"
6261 fill "#FFFFFF"
6262 fontSize 16
6263 fontName "Monospace"
6264 autoSizePolicy "node_width"
6265 anchor "t"
6266 borderDistance 0.0
6267 ]
6268 LabelGraphics
6269 [
6270 text "
6271 FAMTerminator class
6272 "
6273 fontSize 14
6274 fontName "Consolas"
6275 alignment "left"
6276 anchor "tl"
6277 borderDistance 6
6278 ]
6279 ]
6280
6281 node
6282 [
6283 id 9
6284 graphics
6285 [
6286 w 177.10000000000002
6287 h 54
6288 type "rectangle"
6289 fill "#FFFFFF"
6290 fill2 "#FFFFFF"
6291 outline "#000000"
6292 ]
6293 LabelGraphics
6294 [
6295 text "null"
6296 outline "#000000"
6297 fill "#FFFFFF"
6298 fontSize 16
6299 fontName "Monospace"
6300 autoSizePolicy "node_width"
6301 anchor "t"
6302 borderDistance 0.0
6303 ]
6304 LabelGraphics
6305 [
6306 text "
6307 FunctionalInput class
6308 FunctionalData class
6309 "
6310 fontSize 14
6311 fontName "Consolas"
6312 alignment "left"
6313 anchor "tl"
6314 borderDistance 6
6315 ]
6316 ]
6317
6318 node
6319 [
6320 id 10
6321 graphics
6322 [
6323 w 177.10000000000002
6324 h 54
6325 type "rectangle"
6326 fill "#FFFFFF"
6327 fill2 "#FFFFFF"
6328 outline "#000000"
6329 ]
6330 LabelGraphics
6331 [
6332 text "null"
6333 outline "#000000"
6334 fill "#FFFFFF"
6335 fontSize 16
6336 fontName "Monospace"
6337 autoSizePolicy "node_width"
6338 anchor "t"
6339 borderDistance 0.0
6340 ]
6341 LabelGraphics
6342 [
6343 text "
6344 FunctionalInput class
6345 FunctionalData class
6346 "
6347 fontSize 14
6348 fontName "Consolas"
6349 alignment "left"
6350 anchor "tl"
6351 borderDistance 6
6352 ]
6353 ]
6354
6355 node
6356 [
6357 id 11
6358 graphics
6359 [
6360 w 177.10000000000002
6361 h 54
6362 type "rectangle"
6363 fill "#FFFFFF"
6364 fill2 "#FFFFFF"
6365 outline "#000000"
6366 ]
6367 LabelGraphics
6368 [
6369 text "null"
6370 outline "#000000"
6371 fill "#FFFFFF"
6372 fontSize 16
6373 fontName "Monospace"
6374 autoSizePolicy "node_width"
6375 anchor "t"
6376 borderDistance 0.0
6377 ]
6378 LabelGraphics
6379 [
6380 text "
6381 FunctionalInput class
6382 FunctionalData class
6383 "
6384 fontSize 14
6385 fontName "Consolas"
6386 alignment "left"
6387 anchor "tl"
6388 borderDistance 6
6389 ]
6390 ]
6391
6392 node
6393 [
6394 id 12
6395 graphics
6396 [
6397 w 112.2
6398 h 26
6399 type "rectangle"
6400 fill "#FFFFFF"
6401 fill2 "#FFFFFF"
6402 outline "#000000"
6403 ]
6404 LabelGraphics
6405 [
6406 text "New Integers"
6407 outline "#000000"
6408 fill "#FFFFFF"
6409 fontSize 16
6410 fontName "Monospace"
6411 autoSizePolicy "node_width"
6412 anchor "t"
6413 borderDistance 0.0
6414 ]
6415 LabelGraphics
6416 [
6417 text "
6418 "
6419 fontSize 14
6420 fontName "Consolas"
6421 alignment "left"
6422 anchor "tl"
6423 borderDistance 6
6424 ]
6425 ]
6426
6427 node
6428 [
6429 id 13
6430 graphics
6431 [
6432 w 85.80000000000001
6433 h 26
6434 type "rectangle"
6435 fill "#FFFFFF"
6436 fill2 "#FFFFFF"
6437 outline "#000000"
6438 ]
6439 LabelGraphics
6440 [
6441 text "New Reals"
6442 outline "#000000"
6443 fill "#FFFFFF"
6444 fontSize 16
6445 fontName "Monospace"
6446 autoSizePolicy "node_width"
6447 anchor "t"
6448 borderDistance 0.0
6449 ]
6450 LabelGraphics
6451 [
6452 text "
6453 "
6454 fontSize 14
6455 fontName "Consolas"
6456 alignment "left"
6457 anchor "tl"
6458 borderDistance 6
6459 ]
6460 ]
6461
6462 node
6463 [
6464 id 14
6465 graphics
6466 [
6467 w 103.4
6468 h 26
6469 type "rectangle"
6470 fill "#FFFFFF"
6471 fill2 "#FFFFFF"
6472 outline "#000000"
6473 ]
6474 LabelGraphics
6475 [
6476 text "New Strings"
6477 outline "#000000"
6478 fill "#FFFFFF"
6479 fontSize 16
6480 fontName "Monospace"
6481 autoSizePolicy "node_width"
6482 anchor "t"
6483 borderDistance 0.0
6484 ]
6485 LabelGraphics
6486 [
6487 text "
6488 "
6489 fontSize 14
6490 fontName "Consolas"
6491 alignment "left"
6492 anchor "tl"
6493 borderDistance 6
6494 ]
6495 ]
6496
6497 node
6498 [
6499 id 15
6500 graphics
6501 [
6502 w 103.4
6503 h 26
6504 type "rectangle"
6505 fill "#FFFFFF"
6506 fill2 "#FFFFFF"
6507 outline "#000000"
6508 ]
6509 LabelGraphics
6510 [
6511 text "New Objects"
6512 outline "#000000"
6513 fill "#FFFFFF"
6514 fontSize 16
6515 fontName "Monospace"
6516 autoSizePolicy "node_width"
6517 anchor "t"
6518 borderDistance 0.0
6519 ]
6520 LabelGraphics
6521 [
6522 text "
6523 "
6524 fontSize 14
6525 fontName "Consolas"
6526 alignment "left"
6527 anchor "tl"
6528 borderDistance 6
6529 ]
6530 ]
6531 edge
6532 [
6533 source 8
6534 target 7
6535 graphics
6536 [
6537 fill "#000000"
6538 targetArrow "standard"
6539 ]
6540 LabelGraphics
6541 [
6542 text "data reference FAMTerminator"
6543 fontSize 14
6544 fontName "Consolas"
6545 configuration "AutoFlippingLabel"
6546 model "six_pos"
6547 position "thead"
6548 ]
6549 ]
6550 edge
6551 [
6552 source 5
6553 target 6
6554 graphics
6555 [
6556 fill "#000000"
6557 width 3
6558 targetArrow "standard"
6559 ]
6560 LabelGraphics
6561 [
6562 text "data reference FunctionalInterface"
6563 fontSize 14
6564 fontName "Consolas"
6565 configuration "AutoFlippingLabel"
6566 model "six_pos"
6567 position "thead"
6568 ]
6569 ]
6570 edge
6571 [
6572 source 5
6573 target 7
6574 graphics
6575 [
6576 fill "#000000"
6577 width 3
6578 targetArrow "standard"
6579 ]
6580 LabelGraphics
6581 [
6582 text "data reference FunctionalInterface"
2004 fontSize 14 6583 fontSize 14
2005 fontName "Consolas" 6584 fontName "Consolas"
2006 configuration "AutoFlippingLabel" 6585 configuration "AutoFlippingLabel"
@@ -2010,8 +6589,8 @@ graph
2010 ] 6589 ]
2011 edge 6590 edge
2012 [ 6591 [
2013 source 0 6592 source 5
2014 target 12 6593 target 9
2015 graphics 6594 graphics
2016 [ 6595 [
2017 fill "#000000" 6596 fill "#000000"
@@ -2020,7 +6599,7 @@ graph
2020 ] 6599 ]
2021 LabelGraphics 6600 LabelGraphics
2022 [ 6601 [
2023 text "eAnnotations reference EModelElement" 6602 text "data reference FunctionalInterface"
2024 fontSize 14 6603 fontSize 14
2025 fontName "Consolas" 6604 fontName "Consolas"
2026 configuration "AutoFlippingLabel" 6605 configuration "AutoFlippingLabel"
@@ -2030,8 +6609,8 @@ graph
2030 ] 6609 ]
2031 edge 6610 edge
2032 [ 6611 [
2033 source 0 6612 source 5
2034 target 15 6613 target 10
2035 graphics 6614 graphics
2036 [ 6615 [
2037 fill "#000000" 6616 fill "#000000"
@@ -2040,7 +6619,7 @@ graph
2040 ] 6619 ]
2041 LabelGraphics 6620 LabelGraphics
2042 [ 6621 [
2043 text "eAnnotations reference EModelElement" 6622 text "data reference FunctionalInterface"
2044 fontSize 14 6623 fontSize 14
2045 fontName "Consolas" 6624 fontName "Consolas"
2046 configuration "AutoFlippingLabel" 6625 configuration "AutoFlippingLabel"
@@ -2050,7 +6629,7 @@ graph
2050 ] 6629 ]
2051 edge 6630 edge
2052 [ 6631 [
2053 source 0 6632 source 5
2054 target 11 6633 target 11
2055 graphics 6634 graphics
2056 [ 6635 [
@@ -2060,7 +6639,7 @@ graph
2060 ] 6639 ]
2061 LabelGraphics 6640 LabelGraphics
2062 [ 6641 [
2063 text "eClassifiers reference EPackage" 6642 text "data reference FunctionalInterface"
2064 fontSize 14 6643 fontSize 14
2065 fontName "Consolas" 6644 fontName "Consolas"
2066 configuration "AutoFlippingLabel" 6645 configuration "AutoFlippingLabel"
@@ -2070,8 +6649,8 @@ graph
2070 ] 6649 ]
2071 edge 6650 edge
2072 [ 6651 [
2073 source 0 6652 source 7
2074 target 13 6653 target 8
2075 graphics 6654 graphics
2076 [ 6655 [
2077 fill "#000000" 6656 fill "#000000"
@@ -2080,7 +6659,7 @@ graph
2080 ] 6659 ]
2081 LabelGraphics 6660 LabelGraphics
2082 [ 6661 [
2083 text "eClassifiers reference EPackage" 6662 text "terminator reference FunctionalData"
2084 fontSize 14 6663 fontSize 14
2085 fontName "Consolas" 6664 fontName "Consolas"
2086 configuration "AutoFlippingLabel" 6665 configuration "AutoFlippingLabel"
@@ -2090,8 +6669,681 @@ graph
2090 ] 6669 ]
2091 edge 6670 edge
2092 [ 6671 [
2093 source 0 6672 source 6
2094 target 14 6673 target 5
6674 graphics
6675 [
6676 fill "#000000"
6677 targetArrow "standard"
6678 ]
6679 LabelGraphics
6680 [
6681 text "interface reference FunctionalData"
6682 fontSize 14
6683 fontName "Consolas"
6684 configuration "AutoFlippingLabel"
6685 model "six_pos"
6686 position "thead"
6687 ]
6688 ]
6689 edge
6690 [
6691 source 7
6692 target 5
6693 graphics
6694 [
6695 fill "#000000"
6696 targetArrow "standard"
6697 ]
6698 LabelGraphics
6699 [
6700 text "interface reference FunctionalData"
6701 fontSize 14
6702 fontName "Consolas"
6703 configuration "AutoFlippingLabel"
6704 model "six_pos"
6705 position "thead"
6706 ]
6707 ]
6708 edge
6709 [
6710 source 9
6711 target 5
6712 graphics
6713 [
6714 fill "#000000"
6715 targetArrow "standard"
6716 ]
6717 LabelGraphics
6718 [
6719 text "interface reference FunctionalData"
6720 fontSize 14
6721 fontName "Consolas"
6722 configuration "AutoFlippingLabel"
6723 model "six_pos"
6724 position "thead"
6725 ]
6726 ]
6727 edge
6728 [
6729 source 10
6730 target 5
6731 graphics
6732 [
6733 fill "#000000"
6734 targetArrow "standard"
6735 ]
6736 LabelGraphics
6737 [
6738 text "interface reference FunctionalData"
6739 fontSize 14
6740 fontName "Consolas"
6741 configuration "AutoFlippingLabel"
6742 model "six_pos"
6743 position "thead"
6744 ]
6745 ]
6746 edge
6747 [
6748 source 11
6749 target 5
6750 graphics
6751 [
6752 fill "#000000"
6753 targetArrow "standard"
6754 ]
6755 LabelGraphics
6756 [
6757 text "interface reference FunctionalData"
6758 fontSize 14
6759 fontName "Consolas"
6760 configuration "AutoFlippingLabel"
6761 model "six_pos"
6762 position "thead"
6763 ]
6764 ]
6765]
6766graph
6767[
6768 node
6769 [
6770 id 0
6771 graphics
6772 [
6773 w 226.60000000000002
6774 h 40
6775 type "rectangle"
6776 fill "#FFFFFF"
6777 fill2 "#FFFFFF"
6778 outline "#000000"
6779 ]
6780 LabelGraphics
6781 [
6782 text "Root literal FunctionType"
6783 outline "#000000"
6784 fill "#FFFFFF"
6785 fontSize 16
6786 fontName "Monospace"
6787 autoSizePolicy "node_width"
6788 anchor "t"
6789 borderDistance 0.0
6790 ]
6791 LabelGraphics
6792 [
6793 text "
6794 FunctionType enum
6795 "
6796 fontSize 14
6797 fontName "Consolas"
6798 alignment "left"
6799 anchor "tl"
6800 borderDistance 6
6801 ]
6802 ]
6803
6804 node
6805 [
6806 id 1
6807 graphics
6808 [
6809 w 297.0
6810 h 40
6811 type "rectangle"
6812 fill "#FFFFFF"
6813 fill2 "#FFFFFF"
6814 outline "#000000"
6815 ]
6816 LabelGraphics
6817 [
6818 text "Intermediate literal FunctionType"
6819 outline "#000000"
6820 fill "#FFFFFF"
6821 fontSize 16
6822 fontName "Monospace"
6823 autoSizePolicy "node_width"
6824 anchor "t"
6825 borderDistance 0.0
6826 ]
6827 LabelGraphics
6828 [
6829 text "
6830 FunctionType enum
6831 "
6832 fontSize 14
6833 fontName "Consolas"
6834 alignment "left"
6835 anchor "tl"
6836 borderDistance 6
6837 ]
6838 ]
6839
6840 node
6841 [
6842 id 2
6843 graphics
6844 [
6845 w 226.60000000000002
6846 h 40
6847 type "rectangle"
6848 fill "#FFFFFF"
6849 fill2 "#FFFFFF"
6850 outline "#000000"
6851 ]
6852 LabelGraphics
6853 [
6854 text "Leaf literal FunctionType"
6855 outline "#000000"
6856 fill "#FFFFFF"
6857 fontSize 16
6858 fontName "Monospace"
6859 autoSizePolicy "node_width"
6860 anchor "t"
6861 borderDistance 0.0
6862 ]
6863 LabelGraphics
6864 [
6865 text "
6866 FunctionType enum
6867 "
6868 fontSize 14
6869 fontName "Consolas"
6870 alignment "left"
6871 anchor "tl"
6872 borderDistance 6
6873 ]
6874 ]
6875
6876 node
6877 [
6878 id 3
6879 graphics
6880 [
6881 w 41.800000000000004
6882 h 26
6883 type "rectangle"
6884 fill "#FFFFFF"
6885 fill2 "#FFFFFF"
6886 outline "#000000"
6887 ]
6888 LabelGraphics
6889 [
6890 text "true"
6891 outline "#000000"
6892 fill "#FFFFFF"
6893 fontSize 16
6894 fontName "Monospace"
6895 autoSizePolicy "node_width"
6896 anchor "t"
6897 borderDistance 0.0
6898 ]
6899 LabelGraphics
6900 [
6901 text "
6902 "
6903 fontSize 14
6904 fontName "Consolas"
6905 alignment "left"
6906 anchor "tl"
6907 borderDistance 6
6908 ]
6909 ]
6910
6911 node
6912 [
6913 id 4
6914 graphics
6915 [
6916 w 50.6
6917 h 26
6918 type "rectangle"
6919 fill "#FFFFFF"
6920 fill2 "#FFFFFF"
6921 outline "#000000"
6922 ]
6923 LabelGraphics
6924 [
6925 text "false"
6926 outline "#000000"
6927 fill "#FFFFFF"
6928 fontSize 16
6929 fontName "Monospace"
6930 autoSizePolicy "node_width"
6931 anchor "t"
6932 borderDistance 0.0
6933 ]
6934 LabelGraphics
6935 [
6936 text "
6937 "
6938 fontSize 14
6939 fontName "Consolas"
6940 alignment "left"
6941 anchor "tl"
6942 borderDistance 6
6943 ]
6944 ]
6945
6946 node
6947 [
6948 id 5
6949 graphics
6950 [
6951 w 207.9
6952 h 40
6953 type "rectangle"
6954 fill "#FFFFFF"
6955 fill2 "#FFFFFF"
6956 outline "#000000"
6957 ]
6958 LabelGraphics
6959 [
6960 text "null"
6961 outline "#000000"
6962 fill "#FFFFFF"
6963 fontSize 16
6964 fontName "Monospace"
6965 autoSizePolicy "node_width"
6966 anchor "t"
6967 borderDistance 0.0
6968 ]
6969 LabelGraphics
6970 [
6971 text "
6972 FunctionalInterface class
6973 "
6974 fontSize 14
6975 fontName "Consolas"
6976 alignment "left"
6977 anchor "tl"
6978 borderDistance 6
6979 ]
6980 ]
6981
6982 node
6983 [
6984 id 6
6985 graphics
6986 [
6987 w 184.8
6988 h 54
6989 type "rectangle"
6990 fill "#FFFFFF"
6991 fill2 "#FFFFFF"
6992 outline "#000000"
6993 ]
6994 LabelGraphics
6995 [
6996 text "null"
6997 outline "#000000"
6998 fill "#FFFFFF"
6999 fontSize 16
7000 fontName "Monospace"
7001 autoSizePolicy "node_width"
7002 anchor "t"
7003 borderDistance 0.0
7004 ]
7005 LabelGraphics
7006 [
7007 text "
7008 FunctionalOutput class
7009 FunctionalData class
7010 "
7011 fontSize 14
7012 fontName "Consolas"
7013 alignment "left"
7014 anchor "tl"
7015 borderDistance 6
7016 ]
7017 ]
7018
7019 node
7020 [
7021 id 7
7022 graphics
7023 [
7024 w 184.8
7025 h 54
7026 type "rectangle"
7027 fill "#FFFFFF"
7028 fill2 "#FFFFFF"
7029 outline "#000000"
7030 ]
7031 LabelGraphics
7032 [
7033 text "null"
7034 outline "#000000"
7035 fill "#FFFFFF"
7036 fontSize 16
7037 fontName "Monospace"
7038 autoSizePolicy "node_width"
7039 anchor "t"
7040 borderDistance 0.0
7041 ]
7042 LabelGraphics
7043 [
7044 text "
7045 FunctionalOutput class
7046 FunctionalData class
7047 "
7048 fontSize 14
7049 fontName "Consolas"
7050 alignment "left"
7051 anchor "tl"
7052 borderDistance 6
7053 ]
7054 ]
7055
7056 node
7057 [
7058 id 8
7059 graphics
7060 [
7061 w 184.8
7062 h 54
7063 type "rectangle"
7064 fill "#FFFFFF"
7065 fill2 "#FFFFFF"
7066 outline "#000000"
7067 ]
7068 LabelGraphics
7069 [
7070 text "null"
7071 outline "#000000"
7072 fill "#FFFFFF"
7073 fontSize 16
7074 fontName "Monospace"
7075 autoSizePolicy "node_width"
7076 anchor "t"
7077 borderDistance 0.0
7078 ]
7079 LabelGraphics
7080 [
7081 text "
7082 FunctionalOutput class
7083 FunctionalData class
7084 "
7085 fontSize 14
7086 fontName "Consolas"
7087 alignment "left"
7088 anchor "tl"
7089 borderDistance 6
7090 ]
7091 ]
7092
7093 node
7094 [
7095 id 9
7096 graphics
7097 [
7098 w 177.10000000000002
7099 h 54
7100 type "rectangle"
7101 fill "#FFFFFF"
7102 fill2 "#FFFFFF"
7103 outline "#000000"
7104 ]
7105 LabelGraphics
7106 [
7107 text "null"
7108 outline "#000000"
7109 fill "#FFFFFF"
7110 fontSize 16
7111 fontName "Monospace"
7112 autoSizePolicy "node_width"
7113 anchor "t"
7114 borderDistance 0.0
7115 ]
7116 LabelGraphics
7117 [
7118 text "
7119 FunctionalInput class
7120 FunctionalData class
7121 "
7122 fontSize 14
7123 fontName "Consolas"
7124 alignment "left"
7125 anchor "tl"
7126 borderDistance 6
7127 ]
7128 ]
7129
7130 node
7131 [
7132 id 10
7133 graphics
7134 [
7135 w 177.10000000000002
7136 h 54
7137 type "rectangle"
7138 fill "#FFFFFF"
7139 fill2 "#FFFFFF"
7140 outline "#000000"
7141 ]
7142 LabelGraphics
7143 [
7144 text "null"
7145 outline "#000000"
7146 fill "#FFFFFF"
7147 fontSize 16
7148 fontName "Monospace"
7149 autoSizePolicy "node_width"
7150 anchor "t"
7151 borderDistance 0.0
7152 ]
7153 LabelGraphics
7154 [
7155 text "
7156 FunctionalInput class
7157 FunctionalData class
7158 "
7159 fontSize 14
7160 fontName "Consolas"
7161 alignment "left"
7162 anchor "tl"
7163 borderDistance 6
7164 ]
7165 ]
7166
7167 node
7168 [
7169 id 11
7170 graphics
7171 [
7172 w 184.8
7173 h 54
7174 type "rectangle"
7175 fill "#FFFFFF"
7176 fill2 "#FFFFFF"
7177 outline "#000000"
7178 ]
7179 LabelGraphics
7180 [
7181 text "null"
7182 outline "#000000"
7183 fill "#FFFFFF"
7184 fontSize 16
7185 fontName "Monospace"
7186 autoSizePolicy "node_width"
7187 anchor "t"
7188 borderDistance 0.0
7189 ]
7190 LabelGraphics
7191 [
7192 text "
7193 FunctionalOutput class
7194 FunctionalData class
7195 "
7196 fontSize 14
7197 fontName "Consolas"
7198 alignment "left"
7199 anchor "tl"
7200 borderDistance 6
7201 ]
7202 ]
7203
7204 node
7205 [
7206 id 12
7207 graphics
7208 [
7209 w 112.2
7210 h 26
7211 type "rectangle"
7212 fill "#FFFFFF"
7213 fill2 "#FFFFFF"
7214 outline "#000000"
7215 ]
7216 LabelGraphics
7217 [
7218 text "New Integers"
7219 outline "#000000"
7220 fill "#FFFFFF"
7221 fontSize 16
7222 fontName "Monospace"
7223 autoSizePolicy "node_width"
7224 anchor "t"
7225 borderDistance 0.0
7226 ]
7227 LabelGraphics
7228 [
7229 text "
7230 "
7231 fontSize 14
7232 fontName "Consolas"
7233 alignment "left"
7234 anchor "tl"
7235 borderDistance 6
7236 ]
7237 ]
7238
7239 node
7240 [
7241 id 13
7242 graphics
7243 [
7244 w 85.80000000000001
7245 h 26
7246 type "rectangle"
7247 fill "#FFFFFF"
7248 fill2 "#FFFFFF"
7249 outline "#000000"
7250 ]
7251 LabelGraphics
7252 [
7253 text "New Reals"
7254 outline "#000000"
7255 fill "#FFFFFF"
7256 fontSize 16
7257 fontName "Monospace"
7258 autoSizePolicy "node_width"
7259 anchor "t"
7260 borderDistance 0.0
7261 ]
7262 LabelGraphics
7263 [
7264 text "
7265 "
7266 fontSize 14
7267 fontName "Consolas"
7268 alignment "left"
7269 anchor "tl"
7270 borderDistance 6
7271 ]
7272 ]
7273
7274 node
7275 [
7276 id 14
7277 graphics
7278 [
7279 w 103.4
7280 h 26
7281 type "rectangle"
7282 fill "#FFFFFF"
7283 fill2 "#FFFFFF"
7284 outline "#000000"
7285 ]
7286 LabelGraphics
7287 [
7288 text "New Strings"
7289 outline "#000000"
7290 fill "#FFFFFF"
7291 fontSize 16
7292 fontName "Monospace"
7293 autoSizePolicy "node_width"
7294 anchor "t"
7295 borderDistance 0.0
7296 ]
7297 LabelGraphics
7298 [
7299 text "
7300 "
7301 fontSize 14
7302 fontName "Consolas"
7303 alignment "left"
7304 anchor "tl"
7305 borderDistance 6
7306 ]
7307 ]
7308
7309 node
7310 [
7311 id 15
7312 graphics
7313 [
7314 w 103.4
7315 h 26
7316 type "rectangle"
7317 fill "#FFFFFF"
7318 fill2 "#FFFFFF"
7319 outline "#000000"
7320 ]
7321 LabelGraphics
7322 [
7323 text "New Objects"
7324 outline "#000000"
7325 fill "#FFFFFF"
7326 fontSize 16
7327 fontName "Monospace"
7328 autoSizePolicy "node_width"
7329 anchor "t"
7330 borderDistance 0.0
7331 ]
7332 LabelGraphics
7333 [
7334 text "
7335 "
7336 fontSize 14
7337 fontName "Consolas"
7338 alignment "left"
7339 anchor "tl"
7340 borderDistance 6
7341 ]
7342 ]
7343 edge
7344 [
7345 source 5
7346 target 6
2095 graphics 7347 graphics
2096 [ 7348 [
2097 fill "#000000" 7349 fill "#000000"
@@ -2100,7 +7352,7 @@ graph
2100 ] 7352 ]
2101 LabelGraphics 7353 LabelGraphics
2102 [ 7354 [
2103 text "eClassifiers reference EPackage" 7355 text "data reference FunctionalInterface"
2104 fontSize 14 7356 fontSize 14
2105 fontName "Consolas" 7357 fontName "Consolas"
2106 configuration "AutoFlippingLabel" 7358 configuration "AutoFlippingLabel"
@@ -2110,16 +7362,17 @@ graph
2110 ] 7362 ]
2111 edge 7363 edge
2112 [ 7364 [
2113 source 12 7365 source 5
2114 target 7 7366 target 7
2115 graphics 7367 graphics
2116 [ 7368 [
2117 fill "#000000" 7369 fill "#000000"
7370 width 3
2118 targetArrow "standard" 7371 targetArrow "standard"
2119 ] 7372 ]
2120 LabelGraphics 7373 LabelGraphics
2121 [ 7374 [
2122 text "source attribute EAnnotation" 7375 text "data reference FunctionalInterface"
2123 fontSize 14 7376 fontSize 14
2124 fontName "Consolas" 7377 fontName "Consolas"
2125 configuration "AutoFlippingLabel" 7378 configuration "AutoFlippingLabel"
@@ -2129,16 +7382,17 @@ graph
2129 ] 7382 ]
2130 edge 7383 edge
2131 [ 7384 [
2132 source 11 7385 source 5
2133 target 8 7386 target 8
2134 graphics 7387 graphics
2135 [ 7388 [
2136 fill "#000000" 7389 fill "#000000"
7390 width 3
2137 targetArrow "standard" 7391 targetArrow "standard"
2138 ] 7392 ]
2139 LabelGraphics 7393 LabelGraphics
2140 [ 7394 [
2141 text "instanceClassName attribute EClassifier" 7395 text "data reference FunctionalInterface"
2142 fontSize 14 7396 fontSize 14
2143 fontName "Consolas" 7397 fontName "Consolas"
2144 configuration "AutoFlippingLabel" 7398 configuration "AutoFlippingLabel"
@@ -2148,16 +7402,37 @@ graph
2148 ] 7402 ]
2149 edge 7403 edge
2150 [ 7404 [
2151 source 14 7405 source 5
7406 target 9
7407 graphics
7408 [
7409 fill "#000000"
7410 width 3
7411 targetArrow "standard"
7412 ]
7413 LabelGraphics
7414 [
7415 text "data reference FunctionalInterface"
7416 fontSize 14
7417 fontName "Consolas"
7418 configuration "AutoFlippingLabel"
7419 model "six_pos"
7420 position "thead"
7421 ]
7422 ]
7423 edge
7424 [
7425 source 5
2152 target 10 7426 target 10
2153 graphics 7427 graphics
2154 [ 7428 [
2155 fill "#000000" 7429 fill "#000000"
7430 width 3
2156 targetArrow "standard" 7431 targetArrow "standard"
2157 ] 7432 ]
2158 LabelGraphics 7433 LabelGraphics
2159 [ 7434 [
2160 text "instanceClassName attribute EClassifier" 7435 text "data reference FunctionalInterface"
2161 fontSize 14 7436 fontSize 14
2162 fontName "Consolas" 7437 fontName "Consolas"
2163 configuration "AutoFlippingLabel" 7438 configuration "AutoFlippingLabel"
@@ -2167,16 +7442,112 @@ graph
2167 ] 7442 ]
2168 edge 7443 edge
2169 [ 7444 [
2170 source 11 7445 source 5
2171 target 9 7446 target 11
2172 graphics 7447 graphics
2173 [ 7448 [
2174 fill "#000000" 7449 fill "#000000"
7450 width 3
2175 targetArrow "standard" 7451 targetArrow "standard"
2176 ] 7452 ]
2177 LabelGraphics 7453 LabelGraphics
2178 [ 7454 [
2179 text "instanceTypeName attribute EClassifier" 7455 text "data reference FunctionalInterface"
7456 fontSize 14
7457 fontName "Consolas"
7458 configuration "AutoFlippingLabel"
7459 model "six_pos"
7460 position "thead"
7461 ]
7462 ]
7463 edge
7464 [
7465 source 6
7466 target 5
7467 graphics
7468 [
7469 fill "#000000"
7470 targetArrow "standard"
7471 ]
7472 LabelGraphics
7473 [
7474 text "interface reference FunctionalData"
7475 fontSize 14
7476 fontName "Consolas"
7477 configuration "AutoFlippingLabel"
7478 model "six_pos"
7479 position "thead"
7480 ]
7481 ]
7482 edge
7483 [
7484 source 7
7485 target 5
7486 graphics
7487 [
7488 fill "#000000"
7489 targetArrow "standard"
7490 ]
7491 LabelGraphics
7492 [
7493 text "interface reference FunctionalData"
7494 fontSize 14
7495 fontName "Consolas"
7496 configuration "AutoFlippingLabel"
7497 model "six_pos"
7498 position "thead"
7499 ]
7500 ]
7501 edge
7502 [
7503 source 8
7504 target 5
7505 graphics
7506 [
7507 fill "#000000"
7508 targetArrow "standard"
7509 ]
7510 LabelGraphics
7511 [
7512 text "interface reference FunctionalData"
7513 fontSize 14
7514 fontName "Consolas"
7515 configuration "AutoFlippingLabel"
7516 model "six_pos"
7517 position "thead"
7518 ]
7519 ]
7520 edge
7521 [
7522 source 9
7523 target 5
7524 graphics
7525 [
7526 fill "#000000"
7527 targetArrow "standard"
7528 ]
7529 LabelGraphics
7530 [
7531 text "interface reference FunctionalData"
7532 fontSize 14
7533 fontName "Consolas"
7534 configuration "AutoFlippingLabel"
7535 model "six_pos"
7536 position "thead"
7537 ]
7538 ]
7539 edge
7540 [
7541 source 10
7542 target 5
7543 graphics
7544 [
7545 fill "#000000"
7546 targetArrow "standard"
7547 ]
7548 LabelGraphics
7549 [
7550 text "interface reference FunctionalData"
2180 fontSize 14 7551 fontSize 14
2181 fontName "Consolas" 7552 fontName "Consolas"
2182 configuration "AutoFlippingLabel" 7553 configuration "AutoFlippingLabel"
@@ -2187,7 +7558,7 @@ graph
2187 edge 7558 edge
2188 [ 7559 [
2189 source 11 7560 source 11
2190 target 2 7561 target 5
2191 graphics 7562 graphics
2192 [ 7563 [
2193 fill "#000000" 7564 fill "#000000"
@@ -2195,7 +7566,7 @@ graph
2195 ] 7566 ]
2196 LabelGraphics 7567 LabelGraphics
2197 [ 7568 [
2198 text "serializable attribute EDataType" 7569 text "interface reference FunctionalData"
2199 fontSize 14 7570 fontSize 14
2200 fontName "Consolas" 7571 fontName "Consolas"
2201 configuration "AutoFlippingLabel" 7572 configuration "AutoFlippingLabel"
@@ -2203,10 +7574,586 @@ graph
2203 position "thead" 7574 position "thead"
2204 ] 7575 ]
2205 ] 7576 ]
7577]
7578graph
7579[
7580 node
7581 [
7582 id 0
7583 graphics
7584 [
7585 w 226.60000000000002
7586 h 40
7587 type "rectangle"
7588 fill "#FFFFFF"
7589 fill2 "#FFFFFF"
7590 outline "#000000"
7591 ]
7592 LabelGraphics
7593 [
7594 text "Root literal FunctionType"
7595 outline "#000000"
7596 fill "#FFFFFF"
7597 fontSize 16
7598 fontName "Monospace"
7599 autoSizePolicy "node_width"
7600 anchor "t"
7601 borderDistance 0.0
7602 ]
7603 LabelGraphics
7604 [
7605 text "
7606 FunctionType enum
7607 "
7608 fontSize 14
7609 fontName "Consolas"
7610 alignment "left"
7611 anchor "tl"
7612 borderDistance 6
7613 ]
7614 ]
7615
7616 node
7617 [
7618 id 1
7619 graphics
7620 [
7621 w 297.0
7622 h 40
7623 type "rectangle"
7624 fill "#FFFFFF"
7625 fill2 "#FFFFFF"
7626 outline "#000000"
7627 ]
7628 LabelGraphics
7629 [
7630 text "Intermediate literal FunctionType"
7631 outline "#000000"
7632 fill "#FFFFFF"
7633 fontSize 16
7634 fontName "Monospace"
7635 autoSizePolicy "node_width"
7636 anchor "t"
7637 borderDistance 0.0
7638 ]
7639 LabelGraphics
7640 [
7641 text "
7642 FunctionType enum
7643 "
7644 fontSize 14
7645 fontName "Consolas"
7646 alignment "left"
7647 anchor "tl"
7648 borderDistance 6
7649 ]
7650 ]
7651
7652 node
7653 [
7654 id 2
7655 graphics
7656 [
7657 w 226.60000000000002
7658 h 40
7659 type "rectangle"
7660 fill "#FFFFFF"
7661 fill2 "#FFFFFF"
7662 outline "#000000"
7663 ]
7664 LabelGraphics
7665 [
7666 text "Leaf literal FunctionType"
7667 outline "#000000"
7668 fill "#FFFFFF"
7669 fontSize 16
7670 fontName "Monospace"
7671 autoSizePolicy "node_width"
7672 anchor "t"
7673 borderDistance 0.0
7674 ]
7675 LabelGraphics
7676 [
7677 text "
7678 FunctionType enum
7679 "
7680 fontSize 14
7681 fontName "Consolas"
7682 alignment "left"
7683 anchor "tl"
7684 borderDistance 6
7685 ]
7686 ]
7687
7688 node
7689 [
7690 id 3
7691 graphics
7692 [
7693 w 41.800000000000004
7694 h 26
7695 type "rectangle"
7696 fill "#FFFFFF"
7697 fill2 "#FFFFFF"
7698 outline "#000000"
7699 ]
7700 LabelGraphics
7701 [
7702 text "true"
7703 outline "#000000"
7704 fill "#FFFFFF"
7705 fontSize 16
7706 fontName "Monospace"
7707 autoSizePolicy "node_width"
7708 anchor "t"
7709 borderDistance 0.0
7710 ]
7711 LabelGraphics
7712 [
7713 text "
7714 "
7715 fontSize 14
7716 fontName "Consolas"
7717 alignment "left"
7718 anchor "tl"
7719 borderDistance 6
7720 ]
7721 ]
7722
7723 node
7724 [
7725 id 4
7726 graphics
7727 [
7728 w 50.6
7729 h 26
7730 type "rectangle"
7731 fill "#FFFFFF"
7732 fill2 "#FFFFFF"
7733 outline "#000000"
7734 ]
7735 LabelGraphics
7736 [
7737 text "false"
7738 outline "#000000"
7739 fill "#FFFFFF"
7740 fontSize 16
7741 fontName "Monospace"
7742 autoSizePolicy "node_width"
7743 anchor "t"
7744 borderDistance 0.0
7745 ]
7746 LabelGraphics
7747 [
7748 text "
7749 "
7750 fontSize 14
7751 fontName "Consolas"
7752 alignment "left"
7753 anchor "tl"
7754 borderDistance 6
7755 ]
7756 ]
7757
7758 node
7759 [
7760 id 5
7761 graphics
7762 [
7763 w 207.9
7764 h 40
7765 type "rectangle"
7766 fill "#FFFFFF"
7767 fill2 "#FFFFFF"
7768 outline "#000000"
7769 ]
7770 LabelGraphics
7771 [
7772 text "null"
7773 outline "#000000"
7774 fill "#FFFFFF"
7775 fontSize 16
7776 fontName "Monospace"
7777 autoSizePolicy "node_width"
7778 anchor "t"
7779 borderDistance 0.0
7780 ]
7781 LabelGraphics
7782 [
7783 text "
7784 FunctionalInterface class
7785 "
7786 fontSize 14
7787 fontName "Consolas"
7788 alignment "left"
7789 anchor "tl"
7790 borderDistance 6
7791 ]
7792 ]
7793
7794 node
7795 [
7796 id 6
7797 graphics
7798 [
7799 w 184.8
7800 h 54
7801 type "rectangle"
7802 fill "#FFFFFF"
7803 fill2 "#FFFFFF"
7804 outline "#000000"
7805 ]
7806 LabelGraphics
7807 [
7808 text "null"
7809 outline "#000000"
7810 fill "#FFFFFF"
7811 fontSize 16
7812 fontName "Monospace"
7813 autoSizePolicy "node_width"
7814 anchor "t"
7815 borderDistance 0.0
7816 ]
7817 LabelGraphics
7818 [
7819 text "
7820 FunctionalOutput class
7821 FunctionalData class
7822 "
7823 fontSize 14
7824 fontName "Consolas"
7825 alignment "left"
7826 anchor "tl"
7827 borderDistance 6
7828 ]
7829 ]
7830
7831 node
7832 [
7833 id 7
7834 graphics
7835 [
7836 w 184.8
7837 h 54
7838 type "rectangle"
7839 fill "#FFFFFF"
7840 fill2 "#FFFFFF"
7841 outline "#000000"
7842 ]
7843 LabelGraphics
7844 [
7845 text "null"
7846 outline "#000000"
7847 fill "#FFFFFF"
7848 fontSize 16
7849 fontName "Monospace"
7850 autoSizePolicy "node_width"
7851 anchor "t"
7852 borderDistance 0.0
7853 ]
7854 LabelGraphics
7855 [
7856 text "
7857 FunctionalOutput class
7858 FunctionalData class
7859 "
7860 fontSize 14
7861 fontName "Consolas"
7862 alignment "left"
7863 anchor "tl"
7864 borderDistance 6
7865 ]
7866 ]
7867
7868 node
7869 [
7870 id 8
7871 graphics
7872 [
7873 w 184.8
7874 h 54
7875 type "rectangle"
7876 fill "#FFFFFF"
7877 fill2 "#FFFFFF"
7878 outline "#000000"
7879 ]
7880 LabelGraphics
7881 [
7882 text "null"
7883 outline "#000000"
7884 fill "#FFFFFF"
7885 fontSize 16
7886 fontName "Monospace"
7887 autoSizePolicy "node_width"
7888 anchor "t"
7889 borderDistance 0.0
7890 ]
7891 LabelGraphics
7892 [
7893 text "
7894 FunctionalOutput class
7895 FunctionalData class
7896 "
7897 fontSize 14
7898 fontName "Consolas"
7899 alignment "left"
7900 anchor "tl"
7901 borderDistance 6
7902 ]
7903 ]
7904
7905 node
7906 [
7907 id 9
7908 graphics
7909 [
7910 w 161.70000000000002
7911 h 40
7912 type "rectangle"
7913 fill "#FFFFFF"
7914 fill2 "#FFFFFF"
7915 outline "#000000"
7916 ]
7917 LabelGraphics
7918 [
7919 text "null"
7920 outline "#000000"
7921 fill "#FFFFFF"
7922 fontSize 16
7923 fontName "Monospace"
7924 autoSizePolicy "node_width"
7925 anchor "t"
7926 borderDistance 0.0
7927 ]
7928 LabelGraphics
7929 [
7930 text "
7931 FAMTerminator class
7932 "
7933 fontSize 14
7934 fontName "Consolas"
7935 alignment "left"
7936 anchor "tl"
7937 borderDistance 6
7938 ]
7939 ]
7940
7941 node
7942 [
7943 id 10
7944 graphics
7945 [
7946 w 177.10000000000002
7947 h 54
7948 type "rectangle"
7949 fill "#FFFFFF"
7950 fill2 "#FFFFFF"
7951 outline "#000000"
7952 ]
7953 LabelGraphics
7954 [
7955 text "null"
7956 outline "#000000"
7957 fill "#FFFFFF"
7958 fontSize 16
7959 fontName "Monospace"
7960 autoSizePolicy "node_width"
7961 anchor "t"
7962 borderDistance 0.0
7963 ]
7964 LabelGraphics
7965 [
7966 text "
7967 FunctionalInput class
7968 FunctionalData class
7969 "
7970 fontSize 14
7971 fontName "Consolas"
7972 alignment "left"
7973 anchor "tl"
7974 borderDistance 6
7975 ]
7976 ]
7977
7978 node
7979 [
7980 id 11
7981 graphics
7982 [
7983 w 177.10000000000002
7984 h 40
7985 type "rectangle"
7986 fill "#FFFFFF"
7987 fill2 "#FFFFFF"
7988 outline "#000000"
7989 ]
7990 LabelGraphics
7991 [
7992 text "null"
7993 outline "#000000"
7994 fill "#FFFFFF"
7995 fontSize 16
7996 fontName "Monospace"
7997 autoSizePolicy "node_width"
7998 anchor "t"
7999 borderDistance 0.0
8000 ]
8001 LabelGraphics
8002 [
8003 text "
8004 InformationLink class
8005 "
8006 fontSize 14
8007 fontName "Consolas"
8008 alignment "left"
8009 anchor "tl"
8010 borderDistance 6
8011 ]
8012 ]
8013
8014 node
8015 [
8016 id 12
8017 graphics
8018 [
8019 w 112.2
8020 h 26
8021 type "rectangle"
8022 fill "#FFFFFF"
8023 fill2 "#FFFFFF"
8024 outline "#000000"
8025 ]
8026 LabelGraphics
8027 [
8028 text "New Integers"
8029 outline "#000000"
8030 fill "#FFFFFF"
8031 fontSize 16
8032 fontName "Monospace"
8033 autoSizePolicy "node_width"
8034 anchor "t"
8035 borderDistance 0.0
8036 ]
8037 LabelGraphics
8038 [
8039 text "
8040 "
8041 fontSize 14
8042 fontName "Consolas"
8043 alignment "left"
8044 anchor "tl"
8045 borderDistance 6
8046 ]
8047 ]
8048
8049 node
8050 [
8051 id 13
8052 graphics
8053 [
8054 w 85.80000000000001
8055 h 26
8056 type "rectangle"
8057 fill "#FFFFFF"
8058 fill2 "#FFFFFF"
8059 outline "#000000"
8060 ]
8061 LabelGraphics
8062 [
8063 text "New Reals"
8064 outline "#000000"
8065 fill "#FFFFFF"
8066 fontSize 16
8067 fontName "Monospace"
8068 autoSizePolicy "node_width"
8069 anchor "t"
8070 borderDistance 0.0
8071 ]
8072 LabelGraphics
8073 [
8074 text "
8075 "
8076 fontSize 14
8077 fontName "Consolas"
8078 alignment "left"
8079 anchor "tl"
8080 borderDistance 6
8081 ]
8082 ]
8083
8084 node
8085 [
8086 id 14
8087 graphics
8088 [
8089 w 103.4
8090 h 26
8091 type "rectangle"
8092 fill "#FFFFFF"
8093 fill2 "#FFFFFF"
8094 outline "#000000"
8095 ]
8096 LabelGraphics
8097 [
8098 text "New Strings"
8099 outline "#000000"
8100 fill "#FFFFFF"
8101 fontSize 16
8102 fontName "Monospace"
8103 autoSizePolicy "node_width"
8104 anchor "t"
8105 borderDistance 0.0
8106 ]
8107 LabelGraphics
8108 [
8109 text "
8110 "
8111 fontSize 14
8112 fontName "Consolas"
8113 alignment "left"
8114 anchor "tl"
8115 borderDistance 6
8116 ]
8117 ]
8118
8119 node
8120 [
8121 id 15
8122 graphics
8123 [
8124 w 103.4
8125 h 26
8126 type "rectangle"
8127 fill "#FFFFFF"
8128 fill2 "#FFFFFF"
8129 outline "#000000"
8130 ]
8131 LabelGraphics
8132 [
8133 text "New Objects"
8134 outline "#000000"
8135 fill "#FFFFFF"
8136 fontSize 16
8137 fontName "Monospace"
8138 autoSizePolicy "node_width"
8139 anchor "t"
8140 borderDistance 0.0
8141 ]
8142 LabelGraphics
8143 [
8144 text "
8145 "
8146 fontSize 14
8147 fontName "Consolas"
8148 alignment "left"
8149 anchor "tl"
8150 borderDistance 6
8151 ]
8152 ]
2206 edge 8153 edge
2207 [ 8154 [
2208 source 0 8155 source 9
2209 target 10 8156 target 6
2210 graphics 8157 graphics
2211 [ 8158 [
2212 fill "#000000" 8159 fill "#000000"
@@ -2214,7 +8161,7 @@ graph
2214 ] 8161 ]
2215 LabelGraphics 8162 LabelGraphics
2216 [ 8163 [
2217 text "name attribute ENamedElement" 8164 text "data reference FAMTerminator"
2218 fontSize 14 8165 fontSize 14
2219 fontName "Consolas" 8166 fontName "Consolas"
2220 configuration "AutoFlippingLabel" 8167 configuration "AutoFlippingLabel"
@@ -2233,7 +8180,7 @@ graph
2233 ] 8180 ]
2234 LabelGraphics 8181 LabelGraphics
2235 [ 8182 [
2236 text "name attribute ENamedElement" 8183 text "from reference InformationLink"
2237 fontSize 14 8184 fontSize 14
2238 fontName "Consolas" 8185 fontName "Consolas"
2239 configuration "AutoFlippingLabel" 8186 configuration "AutoFlippingLabel"
@@ -2243,16 +8190,36 @@ graph
2243 ] 8190 ]
2244 edge 8191 edge
2245 [ 8192 [
2246 source 13 8193 source 11
2247 target 9 8194 target 10
8195 graphics
8196 [
8197 fill "#000000"
8198 targetArrow "standard"
8199 ]
8200 LabelGraphics
8201 [
8202 text "to reference InformationLink"
8203 fontSize 14
8204 fontName "Consolas"
8205 configuration "AutoFlippingLabel"
8206 model "six_pos"
8207 position "thead"
8208 ]
8209 ]
8210 edge
8211 [
8212 source 5
8213 target 6
2248 graphics 8214 graphics
2249 [ 8215 [
2250 fill "#000000" 8216 fill "#000000"
8217 width 3
2251 targetArrow "standard" 8218 targetArrow "standard"
2252 ] 8219 ]
2253 LabelGraphics 8220 LabelGraphics
2254 [ 8221 [
2255 text "name attribute ENamedElement" 8222 text "data reference FunctionalInterface"
2256 fontSize 14 8223 fontSize 14
2257 fontName "Consolas" 8224 fontName "Consolas"
2258 configuration "AutoFlippingLabel" 8225 configuration "AutoFlippingLabel"
@@ -2262,16 +8229,57 @@ graph
2262 ] 8229 ]
2263 edge 8230 edge
2264 [ 8231 [
2265 source 14 8232 source 5
8233 target 7
8234 graphics
8235 [
8236 fill "#000000"
8237 width 3
8238 targetArrow "standard"
8239 ]
8240 LabelGraphics
8241 [
8242 text "data reference FunctionalInterface"
8243 fontSize 14
8244 fontName "Consolas"
8245 configuration "AutoFlippingLabel"
8246 model "six_pos"
8247 position "thead"
8248 ]
8249 ]
8250 edge
8251 [
8252 source 5
2266 target 8 8253 target 8
2267 graphics 8254 graphics
2268 [ 8255 [
2269 fill "#000000" 8256 fill "#000000"
8257 width 3
8258 targetArrow "standard"
8259 ]
8260 LabelGraphics
8261 [
8262 text "data reference FunctionalInterface"
8263 fontSize 14
8264 fontName "Consolas"
8265 configuration "AutoFlippingLabel"
8266 model "six_pos"
8267 position "thead"
8268 ]
8269 ]
8270 edge
8271 [
8272 source 5
8273 target 10
8274 graphics
8275 [
8276 fill "#000000"
8277 width 3
2270 targetArrow "standard" 8278 targetArrow "standard"
2271 ] 8279 ]
2272 LabelGraphics 8280 LabelGraphics
2273 [ 8281 [
2274 text "name attribute ENamedElement" 8282 text "data reference FunctionalInterface"
2275 fontSize 14 8283 fontSize 14
2276 fontName "Consolas" 8284 fontName "Consolas"
2277 configuration "AutoFlippingLabel" 8285 configuration "AutoFlippingLabel"
@@ -2281,16 +8289,56 @@ graph
2281 ] 8289 ]
2282 edge 8290 edge
2283 [ 8291 [
2284 source 0 8292 source 10
8293 target 11
8294 graphics
8295 [
8296 fill "#000000"
8297 targetArrow "standard"
8298 ]
8299 LabelGraphics
8300 [
8301 text "IncomingLinks reference FunctionalInput"
8302 fontSize 14
8303 fontName "Consolas"
8304 configuration "AutoFlippingLabel"
8305 model "six_pos"
8306 position "thead"
8307 ]
8308 ]
8309 edge
8310 [
8311 source 8
8312 target 11
8313 graphics
8314 [
8315 fill "#000000"
8316 width 3
8317 targetArrow "standard"
8318 ]
8319 LabelGraphics
8320 [
8321 text "outgoingLinks reference FunctionalOutput"
8322 fontSize 14
8323 fontName "Consolas"
8324 configuration "AutoFlippingLabel"
8325 model "six_pos"
8326 position "thead"
8327 ]
8328 ]
8329 edge
8330 [
8331 source 6
2285 target 9 8332 target 9
2286 graphics 8333 graphics
2287 [ 8334 [
2288 fill "#000000" 8335 fill "#000000"
8336 width 3
2289 targetArrow "standard" 8337 targetArrow "standard"
2290 ] 8338 ]
2291 LabelGraphics 8339 LabelGraphics
2292 [ 8340 [
2293 text "nsURI attribute EPackage" 8341 text "terminator reference FunctionalData"
2294 fontSize 14 8342 fontSize 14
2295 fontName "Consolas" 8343 fontName "Consolas"
2296 configuration "AutoFlippingLabel" 8344 configuration "AutoFlippingLabel"
@@ -2300,8 +8348,65 @@ graph
2300 ] 8348 ]
2301 edge 8349 edge
2302 [ 8350 [
2303 source 0 8351 source 6
2304 target 8 8352 target 5
8353 graphics
8354 [
8355 fill "#000000"
8356 targetArrow "standard"
8357 ]
8358 LabelGraphics
8359 [
8360 text "interface reference FunctionalData"
8361 fontSize 14
8362 fontName "Consolas"
8363 configuration "AutoFlippingLabel"
8364 model "six_pos"
8365 position "thead"
8366 ]
8367 ]
8368 edge
8369 [
8370 source 7
8371 target 5
8372 graphics
8373 [
8374 fill "#000000"
8375 targetArrow "standard"
8376 ]
8377 LabelGraphics
8378 [
8379 text "interface reference FunctionalData"
8380 fontSize 14
8381 fontName "Consolas"
8382 configuration "AutoFlippingLabel"
8383 model "six_pos"
8384 position "thead"
8385 ]
8386 ]
8387 edge
8388 [
8389 source 8
8390 target 5
8391 graphics
8392 [
8393 fill "#000000"
8394 targetArrow "standard"
8395 ]
8396 LabelGraphics
8397 [
8398 text "interface reference FunctionalData"
8399 fontSize 14
8400 fontName "Consolas"
8401 configuration "AutoFlippingLabel"
8402 model "six_pos"
8403 position "thead"
8404 ]
8405 ]
8406 edge
8407 [
8408 source 10
8409 target 5
2305 graphics 8410 graphics
2306 [ 8411 [
2307 fill "#000000" 8412 fill "#000000"
@@ -2309,7 +8414,7 @@ graph
2309 ] 8414 ]
2310 LabelGraphics 8415 LabelGraphics
2311 [ 8416 [
2312 text "nsPrefix attribute EPackage" 8417 text "interface reference FunctionalData"
2313 fontSize 14 8418 fontSize 14
2314 fontName "Consolas" 8419 fontName "Consolas"
2315 configuration "AutoFlippingLabel" 8420 configuration "AutoFlippingLabel"
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/4.png b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/4.png
index a47da297..5a2af8ba 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/4.png
+++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/4.png
Binary files differ
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/4.xmi b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/4.xmi
index 8bff1dc6..4ca54850 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/4.xmi
+++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/4.xmi
@@ -1,8 +1,11 @@
1<?xml version="1.0" encoding="ASCII"?> 1<?xml version="1.0" encoding="ASCII"?>
2<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="packageName" nsURI="nsUri" nsPrefix="nsPrefix"> 2<fam:FunctionalInterface xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:fam="FamMetamodel">
3 <eAnnotations/> 3 <data xsi:type="fam:FunctionalInput" IncomingLinks="//@data.1/@outgoingLinks.0"/>
4 <eAnnotations source="B"/> 4 <data xsi:type="fam:FunctionalOutput">
5 <eClassifiers xsi:type="ecore:EDataType" name="nsPrefix" instanceTypeName="nsUri" serializable="false"/> 5 <outgoingLinks to="//@data.0"/>
6 <eClassifiers xsi:type="ecore:EDataType" name="nsPrefix" instanceClassName="packageName"/> 6 </data>
7 <eClassifiers xsi:type="ecore:EClass" name="nsUri"/> 7 <data xsi:type="fam:FunctionalOutput">
8</ecore:EPackage> 8 <terminator/>
9 </data>
10 <data xsi:type="fam:FunctionalOutput"/>
11</fam:FunctionalInterface>
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/5.gml b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/5.gml
index e5647b66..3a9035a7 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/5.gml
+++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/5.gml
@@ -5,8 +5,8 @@ graph
5 id 0 5 id 0
6 graphics 6 graphics
7 [ 7 [
8 w 254.10000000000002 8 w 226.60000000000002
9 h 110 9 h 40
10 type "rectangle" 10 type "rectangle"
11 fill "#FFFFFF" 11 fill "#FFFFFF"
12 fill2 "#FFFFFF" 12 fill2 "#FFFFFF"
@@ -14,7 +14,7 @@ graph
14 ] 14 ]
15 LabelGraphics 15 LabelGraphics
16 [ 16 [
17 text "o 1" 17 text "Root literal FunctionType"
18 outline "#000000" 18 outline "#000000"
19 fill "#FFFFFF" 19 fill "#FFFFFF"
20 fontSize 16 20 fontSize 16
@@ -26,12 +26,7 @@ graph
26 LabelGraphics 26 LabelGraphics
27 [ 27 [
28 text " 28 text "
29 EModelElement class DefinedPart 29 FunctionType enum
30 ENamedElement class DefinedPart
31 EPackage class DefinedPart
32 EModelElement class
33 ENamedElement class
34 EPackage class
35 " 30 "
36 fontSize 14 31 fontSize 14
37 fontName "Consolas" 32 fontName "Consolas"
@@ -46,6 +41,78 @@ graph
46 id 1 41 id 1
47 graphics 42 graphics
48 [ 43 [
44 w 297.0
45 h 40
46 type "rectangle"
47 fill "#FFFFFF"
48 fill2 "#FFFFFF"
49 outline "#000000"
50 ]
51 LabelGraphics
52 [
53 text "Intermediate literal FunctionType"
54 outline "#000000"
55 fill "#FFFFFF"
56 fontSize 16
57 fontName "Monospace"
58 autoSizePolicy "node_width"
59 anchor "t"
60 borderDistance 0.0
61 ]
62 LabelGraphics
63 [
64 text "
65 FunctionType enum
66 "
67 fontSize 14
68 fontName "Consolas"
69 alignment "left"
70 anchor "tl"
71 borderDistance 6
72 ]
73 ]
74
75 node
76 [
77 id 2
78 graphics
79 [
80 w 226.60000000000002
81 h 40
82 type "rectangle"
83 fill "#FFFFFF"
84 fill2 "#FFFFFF"
85 outline "#000000"
86 ]
87 LabelGraphics
88 [
89 text "Leaf literal FunctionType"
90 outline "#000000"
91 fill "#FFFFFF"
92 fontSize 16
93 fontName "Monospace"
94 autoSizePolicy "node_width"
95 anchor "t"
96 borderDistance 0.0
97 ]
98 LabelGraphics
99 [
100 text "
101 FunctionType enum
102 "
103 fontSize 14
104 fontName "Consolas"
105 alignment "left"
106 anchor "tl"
107 borderDistance 6
108 ]
109 ]
110
111 node
112 [
113 id 3
114 graphics
115 [
49 w 41.800000000000004 116 w 41.800000000000004
50 h 26 117 h 26
51 type "rectangle" 118 type "rectangle"
@@ -78,7 +145,7 @@ graph
78 145
79 node 146 node
80 [ 147 [
81 id 2 148 id 4
82 graphics 149 graphics
83 [ 150 [
84 w 50.6 151 w 50.6
@@ -113,10 +180,863 @@ graph
113 180
114 node 181 node
115 [ 182 [
183 id 5
184 graphics
185 [
186 w 207.9
187 h 40
188 type "rectangle"
189 fill "#FFFFFF"
190 fill2 "#FFFFFF"
191 outline "#000000"
192 ]
193 LabelGraphics
194 [
195 text "null"
196 outline "#000000"
197 fill "#FFFFFF"
198 fontSize 16
199 fontName "Monospace"
200 autoSizePolicy "node_width"
201 anchor "t"
202 borderDistance 0.0
203 ]
204 LabelGraphics
205 [
206 text "
207 FunctionalInterface class
208 "
209 fontSize 14
210 fontName "Consolas"
211 alignment "left"
212 anchor "tl"
213 borderDistance 6
214 ]
215 ]
216
217 node
218 [
219 id 6
220 graphics
221 [
222 w 184.8
223 h 54
224 type "rectangle"
225 fill "#FFFFFF"
226 fill2 "#FFFFFF"
227 outline "#000000"
228 ]
229 LabelGraphics
230 [
231 text "null"
232 outline "#000000"
233 fill "#FFFFFF"
234 fontSize 16
235 fontName "Monospace"
236 autoSizePolicy "node_width"
237 anchor "t"
238 borderDistance 0.0
239 ]
240 LabelGraphics
241 [
242 text "
243 FunctionalOutput class
244 FunctionalData class
245 "
246 fontSize 14
247 fontName "Consolas"
248 alignment "left"
249 anchor "tl"
250 borderDistance 6
251 ]
252 ]
253
254 node
255 [
256 id 7
257 graphics
258 [
259 w 184.8
260 h 54
261 type "rectangle"
262 fill "#FFFFFF"
263 fill2 "#FFFFFF"
264 outline "#000000"
265 ]
266 LabelGraphics
267 [
268 text "null"
269 outline "#000000"
270 fill "#FFFFFF"
271 fontSize 16
272 fontName "Monospace"
273 autoSizePolicy "node_width"
274 anchor "t"
275 borderDistance 0.0
276 ]
277 LabelGraphics
278 [
279 text "
280 FunctionalOutput class
281 FunctionalData class
282 "
283 fontSize 14
284 fontName "Consolas"
285 alignment "left"
286 anchor "tl"
287 borderDistance 6
288 ]
289 ]
290
291 node
292 [
293 id 8
294 graphics
295 [
296 w 177.10000000000002
297 h 54
298 type "rectangle"
299 fill "#FFFFFF"
300 fill2 "#FFFFFF"
301 outline "#000000"
302 ]
303 LabelGraphics
304 [
305 text "null"
306 outline "#000000"
307 fill "#FFFFFF"
308 fontSize 16
309 fontName "Monospace"
310 autoSizePolicy "node_width"
311 anchor "t"
312 borderDistance 0.0
313 ]
314 LabelGraphics
315 [
316 text "
317 FunctionalInput class
318 FunctionalData class
319 "
320 fontSize 14
321 fontName "Consolas"
322 alignment "left"
323 anchor "tl"
324 borderDistance 6
325 ]
326 ]
327
328 node
329 [
330 id 9
331 graphics
332 [
333 w 177.10000000000002
334 h 40
335 type "rectangle"
336 fill "#FFFFFF"
337 fill2 "#FFFFFF"
338 outline "#000000"
339 ]
340 LabelGraphics
341 [
342 text "null"
343 outline "#000000"
344 fill "#FFFFFF"
345 fontSize 16
346 fontName "Monospace"
347 autoSizePolicy "node_width"
348 anchor "t"
349 borderDistance 0.0
350 ]
351 LabelGraphics
352 [
353 text "
354 InformationLink class
355 "
356 fontSize 14
357 fontName "Consolas"
358 alignment "left"
359 anchor "tl"
360 borderDistance 6
361 ]
362 ]
363
364 node
365 [
366 id 10
367 graphics
368 [
369 w 177.10000000000002
370 h 40
371 type "rectangle"
372 fill "#FFFFFF"
373 fill2 "#FFFFFF"
374 outline "#000000"
375 ]
376 LabelGraphics
377 [
378 text "null"
379 outline "#000000"
380 fill "#FFFFFF"
381 fontSize 16
382 fontName "Monospace"
383 autoSizePolicy "node_width"
384 anchor "t"
385 borderDistance 0.0
386 ]
387 LabelGraphics
388 [
389 text "
390 InformationLink class
391 "
392 fontSize 14
393 fontName "Consolas"
394 alignment "left"
395 anchor "tl"
396 borderDistance 6
397 ]
398 ]
399
400 node
401 [
402 id 11
403 graphics
404 [
405 w 177.10000000000002
406 h 40
407 type "rectangle"
408 fill "#FFFFFF"
409 fill2 "#FFFFFF"
410 outline "#000000"
411 ]
412 LabelGraphics
413 [
414 text "null"
415 outline "#000000"
416 fill "#FFFFFF"
417 fontSize 16
418 fontName "Monospace"
419 autoSizePolicy "node_width"
420 anchor "t"
421 borderDistance 0.0
422 ]
423 LabelGraphics
424 [
425 text "
426 InformationLink class
427 "
428 fontSize 14
429 fontName "Consolas"
430 alignment "left"
431 anchor "tl"
432 borderDistance 6
433 ]
434 ]
435
436 node
437 [
438 id 12
439 graphics
440 [
441 w 112.2
442 h 26
443 type "rectangle"
444 fill "#FFFFFF"
445 fill2 "#FFFFFF"
446 outline "#000000"
447 ]
448 LabelGraphics
449 [
450 text "New Integers"
451 outline "#000000"
452 fill "#FFFFFF"
453 fontSize 16
454 fontName "Monospace"
455 autoSizePolicy "node_width"
456 anchor "t"
457 borderDistance 0.0
458 ]
459 LabelGraphics
460 [
461 text "
462 "
463 fontSize 14
464 fontName "Consolas"
465 alignment "left"
466 anchor "tl"
467 borderDistance 6
468 ]
469 ]
470
471 node
472 [
473 id 13
474 graphics
475 [
476 w 85.80000000000001
477 h 26
478 type "rectangle"
479 fill "#FFFFFF"
480 fill2 "#FFFFFF"
481 outline "#000000"
482 ]
483 LabelGraphics
484 [
485 text "New Reals"
486 outline "#000000"
487 fill "#FFFFFF"
488 fontSize 16
489 fontName "Monospace"
490 autoSizePolicy "node_width"
491 anchor "t"
492 borderDistance 0.0
493 ]
494 LabelGraphics
495 [
496 text "
497 "
498 fontSize 14
499 fontName "Consolas"
500 alignment "left"
501 anchor "tl"
502 borderDistance 6
503 ]
504 ]
505
506 node
507 [
508 id 14
509 graphics
510 [
511 w 103.4
512 h 26
513 type "rectangle"
514 fill "#FFFFFF"
515 fill2 "#FFFFFF"
516 outline "#000000"
517 ]
518 LabelGraphics
519 [
520 text "New Strings"
521 outline "#000000"
522 fill "#FFFFFF"
523 fontSize 16
524 fontName "Monospace"
525 autoSizePolicy "node_width"
526 anchor "t"
527 borderDistance 0.0
528 ]
529 LabelGraphics
530 [
531 text "
532 "
533 fontSize 14
534 fontName "Consolas"
535 alignment "left"
536 anchor "tl"
537 borderDistance 6
538 ]
539 ]
540
541 node
542 [
543 id 15
544 graphics
545 [
546 w 103.4
547 h 26
548 type "rectangle"
549 fill "#FFFFFF"
550 fill2 "#FFFFFF"
551 outline "#000000"
552 ]
553 LabelGraphics
554 [
555 text "New Objects"
556 outline "#000000"
557 fill "#FFFFFF"
558 fontSize 16
559 fontName "Monospace"
560 autoSizePolicy "node_width"
561 anchor "t"
562 borderDistance 0.0
563 ]
564 LabelGraphics
565 [
566 text "
567 "
568 fontSize 14
569 fontName "Consolas"
570 alignment "left"
571 anchor "tl"
572 borderDistance 6
573 ]
574 ]
575 edge
576 [
577 source 9
578 target 7
579 graphics
580 [
581 fill "#000000"
582 targetArrow "standard"
583 ]
584 LabelGraphics
585 [
586 text "from reference InformationLink"
587 fontSize 14
588 fontName "Consolas"
589 configuration "AutoFlippingLabel"
590 model "six_pos"
591 position "thead"
592 ]
593 ]
594 edge
595 [
596 source 10
597 target 7
598 graphics
599 [
600 fill "#000000"
601 targetArrow "standard"
602 ]
603 LabelGraphics
604 [
605 text "from reference InformationLink"
606 fontSize 14
607 fontName "Consolas"
608 configuration "AutoFlippingLabel"
609 model "six_pos"
610 position "thead"
611 ]
612 ]
613 edge
614 [
615 source 11
616 target 7
617 graphics
618 [
619 fill "#000000"
620 targetArrow "standard"
621 ]
622 LabelGraphics
623 [
624 text "from reference InformationLink"
625 fontSize 14
626 fontName "Consolas"
627 configuration "AutoFlippingLabel"
628 model "six_pos"
629 position "thead"
630 ]
631 ]
632 edge
633 [
634 source 9
635 target 8
636 graphics
637 [
638 fill "#000000"
639 targetArrow "standard"
640 ]
641 LabelGraphics
642 [
643 text "to reference InformationLink"
644 fontSize 14
645 fontName "Consolas"
646 configuration "AutoFlippingLabel"
647 model "six_pos"
648 position "thead"
649 ]
650 ]
651 edge
652 [
653 source 10
654 target 8
655 graphics
656 [
657 fill "#000000"
658 targetArrow "standard"
659 ]
660 LabelGraphics
661 [
662 text "to reference InformationLink"
663 fontSize 14
664 fontName "Consolas"
665 configuration "AutoFlippingLabel"
666 model "six_pos"
667 position "thead"
668 ]
669 ]
670 edge
671 [
672 source 11
673 target 8
674 graphics
675 [
676 fill "#000000"
677 targetArrow "standard"
678 ]
679 LabelGraphics
680 [
681 text "to reference InformationLink"
682 fontSize 14
683 fontName "Consolas"
684 configuration "AutoFlippingLabel"
685 model "six_pos"
686 position "thead"
687 ]
688 ]
689 edge
690 [
691 source 5
692 target 6
693 graphics
694 [
695 fill "#000000"
696 width 3
697 targetArrow "standard"
698 ]
699 LabelGraphics
700 [
701 text "data reference FunctionalInterface"
702 fontSize 14
703 fontName "Consolas"
704 configuration "AutoFlippingLabel"
705 model "six_pos"
706 position "thead"
707 ]
708 ]
709 edge
710 [
711 source 5
712 target 7
713 graphics
714 [
715 fill "#000000"
716 width 3
717 targetArrow "standard"
718 ]
719 LabelGraphics
720 [
721 text "data reference FunctionalInterface"
722 fontSize 14
723 fontName "Consolas"
724 configuration "AutoFlippingLabel"
725 model "six_pos"
726 position "thead"
727 ]
728 ]
729 edge
730 [
731 source 5
732 target 8
733 graphics
734 [
735 fill "#000000"
736 width 3
737 targetArrow "standard"
738 ]
739 LabelGraphics
740 [
741 text "data reference FunctionalInterface"
742 fontSize 14
743 fontName "Consolas"
744 configuration "AutoFlippingLabel"
745 model "six_pos"
746 position "thead"
747 ]
748 ]
749 edge
750 [
751 source 8
752 target 9
753 graphics
754 [
755 fill "#000000"
756 targetArrow "standard"
757 ]
758 LabelGraphics
759 [
760 text "IncomingLinks reference FunctionalInput"
761 fontSize 14
762 fontName "Consolas"
763 configuration "AutoFlippingLabel"
764 model "six_pos"
765 position "thead"
766 ]
767 ]
768 edge
769 [
770 source 8
771 target 10
772 graphics
773 [
774 fill "#000000"
775 targetArrow "standard"
776 ]
777 LabelGraphics
778 [
779 text "IncomingLinks reference FunctionalInput"
780 fontSize 14
781 fontName "Consolas"
782 configuration "AutoFlippingLabel"
783 model "six_pos"
784 position "thead"
785 ]
786 ]
787 edge
788 [
789 source 8
790 target 11
791 graphics
792 [
793 fill "#000000"
794 targetArrow "standard"
795 ]
796 LabelGraphics
797 [
798 text "IncomingLinks reference FunctionalInput"
799 fontSize 14
800 fontName "Consolas"
801 configuration "AutoFlippingLabel"
802 model "six_pos"
803 position "thead"
804 ]
805 ]
806 edge
807 [
808 source 7
809 target 9
810 graphics
811 [
812 fill "#000000"
813 width 3
814 targetArrow "standard"
815 ]
816 LabelGraphics
817 [
818 text "outgoingLinks reference FunctionalOutput"
819 fontSize 14
820 fontName "Consolas"
821 configuration "AutoFlippingLabel"
822 model "six_pos"
823 position "thead"
824 ]
825 ]
826 edge
827 [
828 source 7
829 target 10
830 graphics
831 [
832 fill "#000000"
833 width 3
834 targetArrow "standard"
835 ]
836 LabelGraphics
837 [
838 text "outgoingLinks reference FunctionalOutput"
839 fontSize 14
840 fontName "Consolas"
841 configuration "AutoFlippingLabel"
842 model "six_pos"
843 position "thead"
844 ]
845 ]
846 edge
847 [
848 source 7
849 target 11
850 graphics
851 [
852 fill "#000000"
853 width 3
854 targetArrow "standard"
855 ]
856 LabelGraphics
857 [
858 text "outgoingLinks reference FunctionalOutput"
859 fontSize 14
860 fontName "Consolas"
861 configuration "AutoFlippingLabel"
862 model "six_pos"
863 position "thead"
864 ]
865 ]
866 edge
867 [
868 source 6
869 target 5
870 graphics
871 [
872 fill "#000000"
873 targetArrow "standard"
874 ]
875 LabelGraphics
876 [
877 text "interface reference FunctionalData"
878 fontSize 14
879 fontName "Consolas"
880 configuration "AutoFlippingLabel"
881 model "six_pos"
882 position "thead"
883 ]
884 ]
885 edge
886 [
887 source 7
888 target 5
889 graphics
890 [
891 fill "#000000"
892 targetArrow "standard"
893 ]
894 LabelGraphics
895 [
896 text "interface reference FunctionalData"
897 fontSize 14
898 fontName "Consolas"
899 configuration "AutoFlippingLabel"
900 model "six_pos"
901 position "thead"
902 ]
903 ]
904 edge
905 [
906 source 8
907 target 5
908 graphics
909 [
910 fill "#000000"
911 targetArrow "standard"
912 ]
913 LabelGraphics
914 [
915 text "interface reference FunctionalData"
916 fontSize 14
917 fontName "Consolas"
918 configuration "AutoFlippingLabel"
919 model "six_pos"
920 position "thead"
921 ]
922 ]
923]
924graph
925[
926 node
927 [
928 id 0
929 graphics
930 [
931 w 226.60000000000002
932 h 40
933 type "rectangle"
934 fill "#FFFFFF"
935 fill2 "#FFFFFF"
936 outline "#000000"
937 ]
938 LabelGraphics
939 [
940 text "Root literal FunctionType"
941 outline "#000000"
942 fill "#FFFFFF"
943 fontSize 16
944 fontName "Monospace"
945 autoSizePolicy "node_width"
946 anchor "t"
947 borderDistance 0.0
948 ]
949 LabelGraphics
950 [
951 text "
952 FunctionType enum
953 "
954 fontSize 14
955 fontName "Consolas"
956 alignment "left"
957 anchor "tl"
958 borderDistance 6
959 ]
960 ]
961
962 node
963 [
964 id 1
965 graphics
966 [
967 w 297.0
968 h 40
969 type "rectangle"
970 fill "#FFFFFF"
971 fill2 "#FFFFFF"
972 outline "#000000"
973 ]
974 LabelGraphics
975 [
976 text "Intermediate literal FunctionType"
977 outline "#000000"
978 fill "#FFFFFF"
979 fontSize 16
980 fontName "Monospace"
981 autoSizePolicy "node_width"
982 anchor "t"
983 borderDistance 0.0
984 ]
985 LabelGraphics
986 [
987 text "
988 FunctionType enum
989 "
990 fontSize 14
991 fontName "Consolas"
992 alignment "left"
993 anchor "tl"
994 borderDistance 6
995 ]
996 ]
997
998 node
999 [
1000 id 2
1001 graphics
1002 [
1003 w 226.60000000000002
1004 h 40
1005 type "rectangle"
1006 fill "#FFFFFF"
1007 fill2 "#FFFFFF"
1008 outline "#000000"
1009 ]
1010 LabelGraphics
1011 [
1012 text "Leaf literal FunctionType"
1013 outline "#000000"
1014 fill "#FFFFFF"
1015 fontSize 16
1016 fontName "Monospace"
1017 autoSizePolicy "node_width"
1018 anchor "t"
1019 borderDistance 0.0
1020 ]
1021 LabelGraphics
1022 [
1023 text "
1024 FunctionType enum
1025 "
1026 fontSize 14
1027 fontName "Consolas"
1028 alignment "left"
1029 anchor "tl"
1030 borderDistance 6
1031 ]
1032 ]
1033
1034 node
1035 [
116 id 3 1036 id 3
117 graphics 1037 graphics
118 [ 1038 [
119 w 24.200000000000003 1039 w 41.800000000000004
120 h 26 1040 h 26
121 type "rectangle" 1041 type "rectangle"
122 fill "#FFFFFF" 1042 fill "#FFFFFF"
@@ -125,7 +1045,7 @@ graph
125 ] 1045 ]
126 LabelGraphics 1046 LabelGraphics
127 [ 1047 [
128 text "-1" 1048 text "true"
129 outline "#000000" 1049 outline "#000000"
130 fill "#FFFFFF" 1050 fill "#FFFFFF"
131 fontSize 16 1051 fontSize 16
@@ -151,7 +1071,7 @@ graph
151 id 4 1071 id 4
152 graphics 1072 graphics
153 [ 1073 [
154 w 15.400000000000002 1074 w 50.6
155 h 26 1075 h 26
156 type "rectangle" 1076 type "rectangle"
157 fill "#FFFFFF" 1077 fill "#FFFFFF"
@@ -160,7 +1080,7 @@ graph
160 ] 1080 ]
161 LabelGraphics 1081 LabelGraphics
162 [ 1082 [
163 text "0" 1083 text "false"
164 outline "#000000" 1084 outline "#000000"
165 fill "#FFFFFF" 1085 fill "#FFFFFF"
166 fontSize 16 1086 fontSize 16
@@ -186,8 +1106,8 @@ graph
186 id 5 1106 id 5
187 graphics 1107 graphics
188 [ 1108 [
189 w 15.400000000000002 1109 w 207.9
190 h 26 1110 h 40
191 type "rectangle" 1111 type "rectangle"
192 fill "#FFFFFF" 1112 fill "#FFFFFF"
193 fill2 "#FFFFFF" 1113 fill2 "#FFFFFF"
@@ -195,7 +1115,7 @@ graph
195 ] 1115 ]
196 LabelGraphics 1116 LabelGraphics
197 [ 1117 [
198 text "1" 1118 text "null"
199 outline "#000000" 1119 outline "#000000"
200 fill "#FFFFFF" 1120 fill "#FFFFFF"
201 fontSize 16 1121 fontSize 16
@@ -207,6 +1127,7 @@ graph
207 LabelGraphics 1127 LabelGraphics
208 [ 1128 [
209 text " 1129 text "
1130 FunctionalInterface class
210 " 1131 "
211 fontSize 14 1132 fontSize 14
212 fontName "Consolas" 1133 fontName "Consolas"
@@ -221,8 +1142,8 @@ graph
221 id 6 1142 id 6
222 graphics 1143 graphics
223 [ 1144 [
224 w 33.0 1145 w 184.8
225 h 26 1146 h 54
226 type "rectangle" 1147 type "rectangle"
227 fill "#FFFFFF" 1148 fill "#FFFFFF"
228 fill2 "#FFFFFF" 1149 fill2 "#FFFFFF"
@@ -230,7 +1151,7 @@ graph
230 ] 1151 ]
231 LabelGraphics 1152 LabelGraphics
232 [ 1153 [
233 text ""A"" 1154 text "null"
234 outline "#000000" 1155 outline "#000000"
235 fill "#FFFFFF" 1156 fill "#FFFFFF"
236 fontSize 16 1157 fontSize 16
@@ -242,6 +1163,8 @@ graph
242 LabelGraphics 1163 LabelGraphics
243 [ 1164 [
244 text " 1165 text "
1166 FunctionalOutput class
1167 FunctionalData class
245 " 1168 "
246 fontSize 14 1169 fontSize 14
247 fontName "Consolas" 1170 fontName "Consolas"
@@ -256,8 +1179,8 @@ graph
256 id 7 1179 id 7
257 graphics 1180 graphics
258 [ 1181 [
259 w 33.0 1182 w 177.10000000000002
260 h 26 1183 h 40
261 type "rectangle" 1184 type "rectangle"
262 fill "#FFFFFF" 1185 fill "#FFFFFF"
263 fill2 "#FFFFFF" 1186 fill2 "#FFFFFF"
@@ -265,7 +1188,7 @@ graph
265 ] 1188 ]
266 LabelGraphics 1189 LabelGraphics
267 [ 1190 [
268 text ""B"" 1191 text "null"
269 outline "#000000" 1192 outline "#000000"
270 fill "#FFFFFF" 1193 fill "#FFFFFF"
271 fontSize 16 1194 fontSize 16
@@ -277,6 +1200,7 @@ graph
277 LabelGraphics 1200 LabelGraphics
278 [ 1201 [
279 text " 1202 text "
1203 InformationLink class
280 " 1204 "
281 fontSize 14 1205 fontSize 14
282 fontName "Consolas" 1206 fontName "Consolas"
@@ -291,8 +1215,8 @@ graph
291 id 8 1215 id 8
292 graphics 1216 graphics
293 [ 1217 [
294 w 94.60000000000001 1218 w 177.10000000000002
295 h 26 1219 h 40
296 type "rectangle" 1220 type "rectangle"
297 fill "#FFFFFF" 1221 fill "#FFFFFF"
298 fill2 "#FFFFFF" 1222 fill2 "#FFFFFF"
@@ -300,7 +1224,7 @@ graph
300 ] 1224 ]
301 LabelGraphics 1225 LabelGraphics
302 [ 1226 [
303 text ""nsPrefix"" 1227 text "null"
304 outline "#000000" 1228 outline "#000000"
305 fill "#FFFFFF" 1229 fill "#FFFFFF"
306 fontSize 16 1230 fontSize 16
@@ -312,6 +1236,7 @@ graph
312 LabelGraphics 1236 LabelGraphics
313 [ 1237 [
314 text " 1238 text "
1239 InformationLink class
315 " 1240 "
316 fontSize 14 1241 fontSize 14
317 fontName "Consolas" 1242 fontName "Consolas"
@@ -326,8 +1251,8 @@ graph
326 id 9 1251 id 9
327 graphics 1252 graphics
328 [ 1253 [
329 w 68.2 1254 w 177.10000000000002
330 h 26 1255 h 54
331 type "rectangle" 1256 type "rectangle"
332 fill "#FFFFFF" 1257 fill "#FFFFFF"
333 fill2 "#FFFFFF" 1258 fill2 "#FFFFFF"
@@ -335,7 +1260,7 @@ graph
335 ] 1260 ]
336 LabelGraphics 1261 LabelGraphics
337 [ 1262 [
338 text ""nsUri"" 1263 text "null"
339 outline "#000000" 1264 outline "#000000"
340 fill "#FFFFFF" 1265 fill "#FFFFFF"
341 fontSize 16 1266 fontSize 16
@@ -347,6 +1272,8 @@ graph
347 LabelGraphics 1272 LabelGraphics
348 [ 1273 [
349 text " 1274 text "
1275 FunctionalInput class
1276 FunctionalData class
350 " 1277 "
351 fontSize 14 1278 fontSize 14
352 fontName "Consolas" 1279 fontName "Consolas"
@@ -361,8 +1288,8 @@ graph
361 id 10 1288 id 10
362 graphics 1289 graphics
363 [ 1290 [
364 w 121.00000000000001 1291 w 184.8
365 h 26 1292 h 54
366 type "rectangle" 1293 type "rectangle"
367 fill "#FFFFFF" 1294 fill "#FFFFFF"
368 fill2 "#FFFFFF" 1295 fill2 "#FFFFFF"
@@ -370,7 +1297,7 @@ graph
370 ] 1297 ]
371 LabelGraphics 1298 LabelGraphics
372 [ 1299 [
373 text ""packageName"" 1300 text "null"
374 outline "#000000" 1301 outline "#000000"
375 fill "#FFFFFF" 1302 fill "#FFFFFF"
376 fontSize 16 1303 fontSize 16
@@ -382,6 +1309,8 @@ graph
382 LabelGraphics 1309 LabelGraphics
383 [ 1310 [
384 text " 1311 text "
1312 FunctionalOutput class
1313 FunctionalData class
385 " 1314 "
386 fontSize 14 1315 fontSize 14
387 fontName "Consolas" 1316 fontName "Consolas"
@@ -396,8 +1325,8 @@ graph
396 id 11 1325 id 11
397 graphics 1326 graphics
398 [ 1327 [
399 w 269.5 1328 w 177.10000000000002
400 h 124 1329 h 40
401 type "rectangle" 1330 type "rectangle"
402 fill "#FFFFFF" 1331 fill "#FFFFFF"
403 fill2 "#FFFFFF" 1332 fill2 "#FFFFFF"
@@ -417,13 +1346,7 @@ graph
417 LabelGraphics 1346 LabelGraphics
418 [ 1347 [
419 text " 1348 text "
420 EClassifier class 1349 InformationLink class
421 EDataType class
422 EEnum class
423 EModelElement class
424 ENamedElement class
425 EModelElement class UndefinedPart
426 ENamedElement class UndefinedPart
427 " 1350 "
428 fontSize 14 1351 fontSize 14
429 fontName "Consolas" 1352 fontName "Consolas"
@@ -438,8 +1361,8 @@ graph
438 id 12 1361 id 12
439 graphics 1362 graphics
440 [ 1363 [
441 w 269.5 1364 w 112.2
442 h 124 1365 h 26
443 type "rectangle" 1366 type "rectangle"
444 fill "#FFFFFF" 1367 fill "#FFFFFF"
445 fill2 "#FFFFFF" 1368 fill2 "#FFFFFF"
@@ -447,7 +1370,7 @@ graph
447 ] 1370 ]
448 LabelGraphics 1371 LabelGraphics
449 [ 1372 [
450 text "null" 1373 text "New Integers"
451 outline "#000000" 1374 outline "#000000"
452 fill "#FFFFFF" 1375 fill "#FFFFFF"
453 fontSize 16 1376 fontSize 16
@@ -459,13 +1382,6 @@ graph
459 LabelGraphics 1382 LabelGraphics
460 [ 1383 [
461 text " 1384 text "
462 EClassifier class
463 EDataType class
464 EEnum class
465 EModelElement class
466 ENamedElement class
467 EModelElement class UndefinedPart
468 ENamedElement class UndefinedPart
469 " 1385 "
470 fontSize 14 1386 fontSize 14
471 fontName "Consolas" 1387 fontName "Consolas"
@@ -480,8 +1396,8 @@ graph
480 id 13 1396 id 13
481 graphics 1397 graphics
482 [ 1398 [
483 w 269.5 1399 w 85.80000000000001
484 h 110 1400 h 26
485 type "rectangle" 1401 type "rectangle"
486 fill "#FFFFFF" 1402 fill "#FFFFFF"
487 fill2 "#FFFFFF" 1403 fill2 "#FFFFFF"
@@ -489,7 +1405,7 @@ graph
489 ] 1405 ]
490 LabelGraphics 1406 LabelGraphics
491 [ 1407 [
492 text "null" 1408 text "New Reals"
493 outline "#000000" 1409 outline "#000000"
494 fill "#FFFFFF" 1410 fill "#FFFFFF"
495 fontSize 16 1411 fontSize 16
@@ -501,12 +1417,6 @@ graph
501 LabelGraphics 1417 LabelGraphics
502 [ 1418 [
503 text " 1419 text "
504 EModelElement class
505 ENamedElement class
506 EPackage class
507 EModelElement class UndefinedPart
508 ENamedElement class UndefinedPart
509 EPackage class UndefinedPart
510 " 1420 "
511 fontSize 14 1421 fontSize 14
512 fontName "Consolas" 1422 fontName "Consolas"
@@ -521,8 +1431,8 @@ graph
521 id 14 1431 id 14
522 graphics 1432 graphics
523 [ 1433 [
524 w 269.5 1434 w 103.4
525 h 124 1435 h 26
526 type "rectangle" 1436 type "rectangle"
527 fill "#FFFFFF" 1437 fill "#FFFFFF"
528 fill2 "#FFFFFF" 1438 fill2 "#FFFFFF"
@@ -530,7 +1440,7 @@ graph
530 ] 1440 ]
531 LabelGraphics 1441 LabelGraphics
532 [ 1442 [
533 text "null" 1443 text "New Strings"
534 outline "#000000" 1444 outline "#000000"
535 fill "#FFFFFF" 1445 fill "#FFFFFF"
536 fontSize 16 1446 fontSize 16
@@ -542,13 +1452,6 @@ graph
542 LabelGraphics 1452 LabelGraphics
543 [ 1453 [
544 text " 1454 text "
545 EClassifier class
546 EDataType class
547 EEnum class
548 EModelElement class
549 ENamedElement class
550 EModelElement class UndefinedPart
551 ENamedElement class UndefinedPart
552 " 1455 "
553 fontSize 14 1456 fontSize 14
554 fontName "Consolas" 1457 fontName "Consolas"
@@ -563,8 +1466,571 @@ graph
563 id 15 1466 id 15
564 graphics 1467 graphics
565 [ 1468 [
566 w 269.5 1469 w 103.4
567 h 124 1470 h 26
1471 type "rectangle"
1472 fill "#FFFFFF"
1473 fill2 "#FFFFFF"
1474 outline "#000000"
1475 ]
1476 LabelGraphics
1477 [
1478 text "New Objects"
1479 outline "#000000"
1480 fill "#FFFFFF"
1481 fontSize 16
1482 fontName "Monospace"
1483 autoSizePolicy "node_width"
1484 anchor "t"
1485 borderDistance 0.0
1486 ]
1487 LabelGraphics
1488 [
1489 text "
1490 "
1491 fontSize 14
1492 fontName "Consolas"
1493 alignment "left"
1494 anchor "tl"
1495 borderDistance 6
1496 ]
1497 ]
1498 edge
1499 [
1500 source 7
1501 target 6
1502 graphics
1503 [
1504 fill "#000000"
1505 targetArrow "standard"
1506 ]
1507 LabelGraphics
1508 [
1509 text "from reference InformationLink"
1510 fontSize 14
1511 fontName "Consolas"
1512 configuration "AutoFlippingLabel"
1513 model "six_pos"
1514 position "thead"
1515 ]
1516 ]
1517 edge
1518 [
1519 source 8
1520 target 6
1521 graphics
1522 [
1523 fill "#000000"
1524 targetArrow "standard"
1525 ]
1526 LabelGraphics
1527 [
1528 text "from reference InformationLink"
1529 fontSize 14
1530 fontName "Consolas"
1531 configuration "AutoFlippingLabel"
1532 model "six_pos"
1533 position "thead"
1534 ]
1535 ]
1536 edge
1537 [
1538 source 11
1539 target 10
1540 graphics
1541 [
1542 fill "#000000"
1543 targetArrow "standard"
1544 ]
1545 LabelGraphics
1546 [
1547 text "from reference InformationLink"
1548 fontSize 14
1549 fontName "Consolas"
1550 configuration "AutoFlippingLabel"
1551 model "six_pos"
1552 position "thead"
1553 ]
1554 ]
1555 edge
1556 [
1557 source 7
1558 target 9
1559 graphics
1560 [
1561 fill "#000000"
1562 targetArrow "standard"
1563 ]
1564 LabelGraphics
1565 [
1566 text "to reference InformationLink"
1567 fontSize 14
1568 fontName "Consolas"
1569 configuration "AutoFlippingLabel"
1570 model "six_pos"
1571 position "thead"
1572 ]
1573 ]
1574 edge
1575 [
1576 source 8
1577 target 9
1578 graphics
1579 [
1580 fill "#000000"
1581 targetArrow "standard"
1582 ]
1583 LabelGraphics
1584 [
1585 text "to reference InformationLink"
1586 fontSize 14
1587 fontName "Consolas"
1588 configuration "AutoFlippingLabel"
1589 model "six_pos"
1590 position "thead"
1591 ]
1592 ]
1593 edge
1594 [
1595 source 11
1596 target 9
1597 graphics
1598 [
1599 fill "#000000"
1600 targetArrow "standard"
1601 ]
1602 LabelGraphics
1603 [
1604 text "to reference InformationLink"
1605 fontSize 14
1606 fontName "Consolas"
1607 configuration "AutoFlippingLabel"
1608 model "six_pos"
1609 position "thead"
1610 ]
1611 ]
1612 edge
1613 [
1614 source 5
1615 target 6
1616 graphics
1617 [
1618 fill "#000000"
1619 width 3
1620 targetArrow "standard"
1621 ]
1622 LabelGraphics
1623 [
1624 text "data reference FunctionalInterface"
1625 fontSize 14
1626 fontName "Consolas"
1627 configuration "AutoFlippingLabel"
1628 model "six_pos"
1629 position "thead"
1630 ]
1631 ]
1632 edge
1633 [
1634 source 5
1635 target 9
1636 graphics
1637 [
1638 fill "#000000"
1639 width 3
1640 targetArrow "standard"
1641 ]
1642 LabelGraphics
1643 [
1644 text "data reference FunctionalInterface"
1645 fontSize 14
1646 fontName "Consolas"
1647 configuration "AutoFlippingLabel"
1648 model "six_pos"
1649 position "thead"
1650 ]
1651 ]
1652 edge
1653 [
1654 source 5
1655 target 10
1656 graphics
1657 [
1658 fill "#000000"
1659 width 3
1660 targetArrow "standard"
1661 ]
1662 LabelGraphics
1663 [
1664 text "data reference FunctionalInterface"
1665 fontSize 14
1666 fontName "Consolas"
1667 configuration "AutoFlippingLabel"
1668 model "six_pos"
1669 position "thead"
1670 ]
1671 ]
1672 edge
1673 [
1674 source 9
1675 target 7
1676 graphics
1677 [
1678 fill "#000000"
1679 targetArrow "standard"
1680 ]
1681 LabelGraphics
1682 [
1683 text "IncomingLinks reference FunctionalInput"
1684 fontSize 14
1685 fontName "Consolas"
1686 configuration "AutoFlippingLabel"
1687 model "six_pos"
1688 position "thead"
1689 ]
1690 ]
1691 edge
1692 [
1693 source 9
1694 target 8
1695 graphics
1696 [
1697 fill "#000000"
1698 targetArrow "standard"
1699 ]
1700 LabelGraphics
1701 [
1702 text "IncomingLinks reference FunctionalInput"
1703 fontSize 14
1704 fontName "Consolas"
1705 configuration "AutoFlippingLabel"
1706 model "six_pos"
1707 position "thead"
1708 ]
1709 ]
1710 edge
1711 [
1712 source 9
1713 target 11
1714 graphics
1715 [
1716 fill "#000000"
1717 targetArrow "standard"
1718 ]
1719 LabelGraphics
1720 [
1721 text "IncomingLinks reference FunctionalInput"
1722 fontSize 14
1723 fontName "Consolas"
1724 configuration "AutoFlippingLabel"
1725 model "six_pos"
1726 position "thead"
1727 ]
1728 ]
1729 edge
1730 [
1731 source 6
1732 target 7
1733 graphics
1734 [
1735 fill "#000000"
1736 width 3
1737 targetArrow "standard"
1738 ]
1739 LabelGraphics
1740 [
1741 text "outgoingLinks reference FunctionalOutput"
1742 fontSize 14
1743 fontName "Consolas"
1744 configuration "AutoFlippingLabel"
1745 model "six_pos"
1746 position "thead"
1747 ]
1748 ]
1749 edge
1750 [
1751 source 6
1752 target 8
1753 graphics
1754 [
1755 fill "#000000"
1756 width 3
1757 targetArrow "standard"
1758 ]
1759 LabelGraphics
1760 [
1761 text "outgoingLinks reference FunctionalOutput"
1762 fontSize 14
1763 fontName "Consolas"
1764 configuration "AutoFlippingLabel"
1765 model "six_pos"
1766 position "thead"
1767 ]
1768 ]
1769 edge
1770 [
1771 source 10
1772 target 11
1773 graphics
1774 [
1775 fill "#000000"
1776 width 3
1777 targetArrow "standard"
1778 ]
1779 LabelGraphics
1780 [
1781 text "outgoingLinks reference FunctionalOutput"
1782 fontSize 14
1783 fontName "Consolas"
1784 configuration "AutoFlippingLabel"
1785 model "six_pos"
1786 position "thead"
1787 ]
1788 ]
1789 edge
1790 [
1791 source 6
1792 target 5
1793 graphics
1794 [
1795 fill "#000000"
1796 targetArrow "standard"
1797 ]
1798 LabelGraphics
1799 [
1800 text "interface reference FunctionalData"
1801 fontSize 14
1802 fontName "Consolas"
1803 configuration "AutoFlippingLabel"
1804 model "six_pos"
1805 position "thead"
1806 ]
1807 ]
1808 edge
1809 [
1810 source 9
1811 target 5
1812 graphics
1813 [
1814 fill "#000000"
1815 targetArrow "standard"
1816 ]
1817 LabelGraphics
1818 [
1819 text "interface reference FunctionalData"
1820 fontSize 14
1821 fontName "Consolas"
1822 configuration "AutoFlippingLabel"
1823 model "six_pos"
1824 position "thead"
1825 ]
1826 ]
1827 edge
1828 [
1829 source 10
1830 target 5
1831 graphics
1832 [
1833 fill "#000000"
1834 targetArrow "standard"
1835 ]
1836 LabelGraphics
1837 [
1838 text "interface reference FunctionalData"
1839 fontSize 14
1840 fontName "Consolas"
1841 configuration "AutoFlippingLabel"
1842 model "six_pos"
1843 position "thead"
1844 ]
1845 ]
1846]
1847graph
1848[
1849 node
1850 [
1851 id 0
1852 graphics
1853 [
1854 w 226.60000000000002
1855 h 40
1856 type "rectangle"
1857 fill "#FFFFFF"
1858 fill2 "#FFFFFF"
1859 outline "#000000"
1860 ]
1861 LabelGraphics
1862 [
1863 text "Root literal FunctionType"
1864 outline "#000000"
1865 fill "#FFFFFF"
1866 fontSize 16
1867 fontName "Monospace"
1868 autoSizePolicy "node_width"
1869 anchor "t"
1870 borderDistance 0.0
1871 ]
1872 LabelGraphics
1873 [
1874 text "
1875 FunctionType enum
1876 "
1877 fontSize 14
1878 fontName "Consolas"
1879 alignment "left"
1880 anchor "tl"
1881 borderDistance 6
1882 ]
1883 ]
1884
1885 node
1886 [
1887 id 1
1888 graphics
1889 [
1890 w 297.0
1891 h 40
1892 type "rectangle"
1893 fill "#FFFFFF"
1894 fill2 "#FFFFFF"
1895 outline "#000000"
1896 ]
1897 LabelGraphics
1898 [
1899 text "Intermediate literal FunctionType"
1900 outline "#000000"
1901 fill "#FFFFFF"
1902 fontSize 16
1903 fontName "Monospace"
1904 autoSizePolicy "node_width"
1905 anchor "t"
1906 borderDistance 0.0
1907 ]
1908 LabelGraphics
1909 [
1910 text "
1911 FunctionType enum
1912 "
1913 fontSize 14
1914 fontName "Consolas"
1915 alignment "left"
1916 anchor "tl"
1917 borderDistance 6
1918 ]
1919 ]
1920
1921 node
1922 [
1923 id 2
1924 graphics
1925 [
1926 w 226.60000000000002
1927 h 40
1928 type "rectangle"
1929 fill "#FFFFFF"
1930 fill2 "#FFFFFF"
1931 outline "#000000"
1932 ]
1933 LabelGraphics
1934 [
1935 text "Leaf literal FunctionType"
1936 outline "#000000"
1937 fill "#FFFFFF"
1938 fontSize 16
1939 fontName "Monospace"
1940 autoSizePolicy "node_width"
1941 anchor "t"
1942 borderDistance 0.0
1943 ]
1944 LabelGraphics
1945 [
1946 text "
1947 FunctionType enum
1948 "
1949 fontSize 14
1950 fontName "Consolas"
1951 alignment "left"
1952 anchor "tl"
1953 borderDistance 6
1954 ]
1955 ]
1956
1957 node
1958 [
1959 id 3
1960 graphics
1961 [
1962 w 41.800000000000004
1963 h 26
1964 type "rectangle"
1965 fill "#FFFFFF"
1966 fill2 "#FFFFFF"
1967 outline "#000000"
1968 ]
1969 LabelGraphics
1970 [
1971 text "true"
1972 outline "#000000"
1973 fill "#FFFFFF"
1974 fontSize 16
1975 fontName "Monospace"
1976 autoSizePolicy "node_width"
1977 anchor "t"
1978 borderDistance 0.0
1979 ]
1980 LabelGraphics
1981 [
1982 text "
1983 "
1984 fontSize 14
1985 fontName "Consolas"
1986 alignment "left"
1987 anchor "tl"
1988 borderDistance 6
1989 ]
1990 ]
1991
1992 node
1993 [
1994 id 4
1995 graphics
1996 [
1997 w 50.6
1998 h 26
1999 type "rectangle"
2000 fill "#FFFFFF"
2001 fill2 "#FFFFFF"
2002 outline "#000000"
2003 ]
2004 LabelGraphics
2005 [
2006 text "false"
2007 outline "#000000"
2008 fill "#FFFFFF"
2009 fontSize 16
2010 fontName "Monospace"
2011 autoSizePolicy "node_width"
2012 anchor "t"
2013 borderDistance 0.0
2014 ]
2015 LabelGraphics
2016 [
2017 text "
2018 "
2019 fontSize 14
2020 fontName "Consolas"
2021 alignment "left"
2022 anchor "tl"
2023 borderDistance 6
2024 ]
2025 ]
2026
2027 node
2028 [
2029 id 5
2030 graphics
2031 [
2032 w 207.9
2033 h 40
568 type "rectangle" 2034 type "rectangle"
569 fill "#FFFFFF" 2035 fill "#FFFFFF"
570 fill2 "#FFFFFF" 2036 fill2 "#FFFFFF"
@@ -584,13 +2050,7 @@ graph
584 LabelGraphics 2050 LabelGraphics
585 [ 2051 [
586 text " 2052 text "
587 EClassifier class 2053 FunctionalInterface class
588 EDataType class
589 EEnum class
590 EModelElement class
591 ENamedElement class
592 EModelElement class UndefinedPart
593 ENamedElement class UndefinedPart
594 " 2054 "
595 fontSize 14 2055 fontSize 14
596 fontName "Consolas" 2056 fontName "Consolas"
@@ -602,7 +2062,226 @@ graph
602 2062
603 node 2063 node
604 [ 2064 [
605 id 16 2065 id 6
2066 graphics
2067 [
2068 w 184.8
2069 h 54
2070 type "rectangle"
2071 fill "#FFFFFF"
2072 fill2 "#FFFFFF"
2073 outline "#000000"
2074 ]
2075 LabelGraphics
2076 [
2077 text "null"
2078 outline "#000000"
2079 fill "#FFFFFF"
2080 fontSize 16
2081 fontName "Monospace"
2082 autoSizePolicy "node_width"
2083 anchor "t"
2084 borderDistance 0.0
2085 ]
2086 LabelGraphics
2087 [
2088 text "
2089 FunctionalOutput class
2090 FunctionalData class
2091 "
2092 fontSize 14
2093 fontName "Consolas"
2094 alignment "left"
2095 anchor "tl"
2096 borderDistance 6
2097 ]
2098 ]
2099
2100 node
2101 [
2102 id 7
2103 graphics
2104 [
2105 w 177.10000000000002
2106 h 54
2107 type "rectangle"
2108 fill "#FFFFFF"
2109 fill2 "#FFFFFF"
2110 outline "#000000"
2111 ]
2112 LabelGraphics
2113 [
2114 text "null"
2115 outline "#000000"
2116 fill "#FFFFFF"
2117 fontSize 16
2118 fontName "Monospace"
2119 autoSizePolicy "node_width"
2120 anchor "t"
2121 borderDistance 0.0
2122 ]
2123 LabelGraphics
2124 [
2125 text "
2126 FunctionalInput class
2127 FunctionalData class
2128 "
2129 fontSize 14
2130 fontName "Consolas"
2131 alignment "left"
2132 anchor "tl"
2133 borderDistance 6
2134 ]
2135 ]
2136
2137 node
2138 [
2139 id 8
2140 graphics
2141 [
2142 w 184.8
2143 h 54
2144 type "rectangle"
2145 fill "#FFFFFF"
2146 fill2 "#FFFFFF"
2147 outline "#000000"
2148 ]
2149 LabelGraphics
2150 [
2151 text "null"
2152 outline "#000000"
2153 fill "#FFFFFF"
2154 fontSize 16
2155 fontName "Monospace"
2156 autoSizePolicy "node_width"
2157 anchor "t"
2158 borderDistance 0.0
2159 ]
2160 LabelGraphics
2161 [
2162 text "
2163 FunctionalOutput class
2164 FunctionalData class
2165 "
2166 fontSize 14
2167 fontName "Consolas"
2168 alignment "left"
2169 anchor "tl"
2170 borderDistance 6
2171 ]
2172 ]
2173
2174 node
2175 [
2176 id 9
2177 graphics
2178 [
2179 w 161.70000000000002
2180 h 40
2181 type "rectangle"
2182 fill "#FFFFFF"
2183 fill2 "#FFFFFF"
2184 outline "#000000"
2185 ]
2186 LabelGraphics
2187 [
2188 text "null"
2189 outline "#000000"
2190 fill "#FFFFFF"
2191 fontSize 16
2192 fontName "Monospace"
2193 autoSizePolicy "node_width"
2194 anchor "t"
2195 borderDistance 0.0
2196 ]
2197 LabelGraphics
2198 [
2199 text "
2200 FAMTerminator class
2201 "
2202 fontSize 14
2203 fontName "Consolas"
2204 alignment "left"
2205 anchor "tl"
2206 borderDistance 6
2207 ]
2208 ]
2209
2210 node
2211 [
2212 id 10
2213 graphics
2214 [
2215 w 177.10000000000002
2216 h 40
2217 type "rectangle"
2218 fill "#FFFFFF"
2219 fill2 "#FFFFFF"
2220 outline "#000000"
2221 ]
2222 LabelGraphics
2223 [
2224 text "null"
2225 outline "#000000"
2226 fill "#FFFFFF"
2227 fontSize 16
2228 fontName "Monospace"
2229 autoSizePolicy "node_width"
2230 anchor "t"
2231 borderDistance 0.0
2232 ]
2233 LabelGraphics
2234 [
2235 text "
2236 InformationLink class
2237 "
2238 fontSize 14
2239 fontName "Consolas"
2240 alignment "left"
2241 anchor "tl"
2242 borderDistance 6
2243 ]
2244 ]
2245
2246 node
2247 [
2248 id 11
2249 graphics
2250 [
2251 w 161.70000000000002
2252 h 40
2253 type "rectangle"
2254 fill "#FFFFFF"
2255 fill2 "#FFFFFF"
2256 outline "#000000"
2257 ]
2258 LabelGraphics
2259 [
2260 text "null"
2261 outline "#000000"
2262 fill "#FFFFFF"
2263 fontSize 16
2264 fontName "Monospace"
2265 autoSizePolicy "node_width"
2266 anchor "t"
2267 borderDistance 0.0
2268 ]
2269 LabelGraphics
2270 [
2271 text "
2272 FAMTerminator class
2273 "
2274 fontSize 14
2275 fontName "Consolas"
2276 alignment "left"
2277 anchor "tl"
2278 borderDistance 6
2279 ]
2280 ]
2281
2282 node
2283 [
2284 id 12
606 graphics 2285 graphics
607 [ 2286 [
608 w 112.2 2287 w 112.2
@@ -637,7 +2316,7 @@ graph
637 2316
638 node 2317 node
639 [ 2318 [
640 id 17 2319 id 13
641 graphics 2320 graphics
642 [ 2321 [
643 w 85.80000000000001 2322 w 85.80000000000001
@@ -672,7 +2351,7 @@ graph
672 2351
673 node 2352 node
674 [ 2353 [
675 id 18 2354 id 14
676 graphics 2355 graphics
677 [ 2356 [
678 w 103.4 2357 w 103.4
@@ -707,7 +2386,7 @@ graph
707 2386
708 node 2387 node
709 [ 2388 [
710 id 19 2389 id 15
711 graphics 2390 graphics
712 [ 2391 [
713 w 103.4 2392 w 103.4
@@ -741,8 +2420,27 @@ graph
741 ] 2420 ]
742 edge 2421 edge
743 [ 2422 [
2423 source 9
2424 target 7
2425 graphics
2426 [
2427 fill "#000000"
2428 targetArrow "standard"
2429 ]
2430 LabelGraphics
2431 [
2432 text "data reference FAMTerminator"
2433 fontSize 14
2434 fontName "Consolas"
2435 configuration "AutoFlippingLabel"
2436 model "six_pos"
2437 position "thead"
2438 ]
2439 ]
2440 edge
2441 [
744 source 11 2442 source 11
745 target 0 2443 target 6
746 graphics 2444 graphics
747 [ 2445 [
748 fill "#000000" 2446 fill "#000000"
@@ -750,7 +2448,7 @@ graph
750 ] 2448 ]
751 LabelGraphics 2449 LabelGraphics
752 [ 2450 [
753 text "ePackage reference EClassifier" 2451 text "data reference FAMTerminator"
754 fontSize 14 2452 fontSize 14
755 fontName "Consolas" 2453 fontName "Consolas"
756 configuration "AutoFlippingLabel" 2454 configuration "AutoFlippingLabel"
@@ -760,8 +2458,8 @@ graph
760 ] 2458 ]
761 edge 2459 edge
762 [ 2460 [
763 source 12 2461 source 10
764 target 0 2462 target 8
765 graphics 2463 graphics
766 [ 2464 [
767 fill "#000000" 2465 fill "#000000"
@@ -769,7 +2467,7 @@ graph
769 ] 2467 ]
770 LabelGraphics 2468 LabelGraphics
771 [ 2469 [
772 text "ePackage reference EClassifier" 2470 text "from reference InformationLink"
773 fontSize 14 2471 fontSize 14
774 fontName "Consolas" 2472 fontName "Consolas"
775 configuration "AutoFlippingLabel" 2473 configuration "AutoFlippingLabel"
@@ -779,8 +2477,8 @@ graph
779 ] 2477 ]
780 edge 2478 edge
781 [ 2479 [
782 source 14 2480 source 10
783 target 0 2481 target 7
784 graphics 2482 graphics
785 [ 2483 [
786 fill "#000000" 2484 fill "#000000"
@@ -788,7 +2486,7 @@ graph
788 ] 2486 ]
789 LabelGraphics 2487 LabelGraphics
790 [ 2488 [
791 text "ePackage reference EClassifier" 2489 text "to reference InformationLink"
792 fontSize 14 2490 fontSize 14
793 fontName "Consolas" 2491 fontName "Consolas"
794 configuration "AutoFlippingLabel" 2492 configuration "AutoFlippingLabel"
@@ -798,16 +2496,17 @@ graph
798 ] 2496 ]
799 edge 2497 edge
800 [ 2498 [
801 source 15 2499 source 5
802 target 13 2500 target 6
803 graphics 2501 graphics
804 [ 2502 [
805 fill "#000000" 2503 fill "#000000"
2504 width 3
806 targetArrow "standard" 2505 targetArrow "standard"
807 ] 2506 ]
808 LabelGraphics 2507 LabelGraphics
809 [ 2508 [
810 text "ePackage reference EClassifier" 2509 text "data reference FunctionalInterface"
811 fontSize 14 2510 fontSize 14
812 fontName "Consolas" 2511 fontName "Consolas"
813 configuration "AutoFlippingLabel" 2512 configuration "AutoFlippingLabel"
@@ -817,8 +2516,8 @@ graph
817 ] 2516 ]
818 edge 2517 edge
819 [ 2518 [
820 source 0 2519 source 5
821 target 11 2520 target 7
822 graphics 2521 graphics
823 [ 2522 [
824 fill "#000000" 2523 fill "#000000"
@@ -827,7 +2526,7 @@ graph
827 ] 2526 ]
828 LabelGraphics 2527 LabelGraphics
829 [ 2528 [
830 text "eClassifiers reference EPackage" 2529 text "data reference FunctionalInterface"
831 fontSize 14 2530 fontSize 14
832 fontName "Consolas" 2531 fontName "Consolas"
833 configuration "AutoFlippingLabel" 2532 configuration "AutoFlippingLabel"
@@ -837,8 +2536,8 @@ graph
837 ] 2536 ]
838 edge 2537 edge
839 [ 2538 [
840 source 0 2539 source 5
841 target 12 2540 target 8
842 graphics 2541 graphics
843 [ 2542 [
844 fill "#000000" 2543 fill "#000000"
@@ -847,7 +2546,7 @@ graph
847 ] 2546 ]
848 LabelGraphics 2547 LabelGraphics
849 [ 2548 [
850 text "eClassifiers reference EPackage" 2549 text "data reference FunctionalInterface"
851 fontSize 14 2550 fontSize 14
852 fontName "Consolas" 2551 fontName "Consolas"
853 configuration "AutoFlippingLabel" 2552 configuration "AutoFlippingLabel"
@@ -857,8 +2556,27 @@ graph
857 ] 2556 ]
858 edge 2557 edge
859 [ 2558 [
860 source 0 2559 source 7
861 target 14 2560 target 10
2561 graphics
2562 [
2563 fill "#000000"
2564 targetArrow "standard"
2565 ]
2566 LabelGraphics
2567 [
2568 text "IncomingLinks reference FunctionalInput"
2569 fontSize 14
2570 fontName "Consolas"
2571 configuration "AutoFlippingLabel"
2572 model "six_pos"
2573 position "thead"
2574 ]
2575 ]
2576 edge
2577 [
2578 source 8
2579 target 10
862 graphics 2580 graphics
863 [ 2581 [
864 fill "#000000" 2582 fill "#000000"
@@ -867,7 +2585,7 @@ graph
867 ] 2585 ]
868 LabelGraphics 2586 LabelGraphics
869 [ 2587 [
870 text "eClassifiers reference EPackage" 2588 text "outgoingLinks reference FunctionalOutput"
871 fontSize 14 2589 fontSize 14
872 fontName "Consolas" 2590 fontName "Consolas"
873 configuration "AutoFlippingLabel" 2591 configuration "AutoFlippingLabel"
@@ -877,8 +2595,8 @@ graph
877 ] 2595 ]
878 edge 2596 edge
879 [ 2597 [
880 source 13 2598 source 7
881 target 15 2599 target 9
882 graphics 2600 graphics
883 [ 2601 [
884 fill "#000000" 2602 fill "#000000"
@@ -887,7 +2605,7 @@ graph
887 ] 2605 ]
888 LabelGraphics 2606 LabelGraphics
889 [ 2607 [
890 text "eClassifiers reference EPackage" 2608 text "terminator reference FunctionalData"
891 fontSize 14 2609 fontSize 14
892 fontName "Consolas" 2610 fontName "Consolas"
893 configuration "AutoFlippingLabel" 2611 configuration "AutoFlippingLabel"
@@ -897,8 +2615,8 @@ graph
897 ] 2615 ]
898 edge 2616 edge
899 [ 2617 [
900 source 0 2618 source 6
901 target 13 2619 target 11
902 graphics 2620 graphics
903 [ 2621 [
904 fill "#000000" 2622 fill "#000000"
@@ -907,7 +2625,7 @@ graph
907 ] 2625 ]
908 LabelGraphics 2626 LabelGraphics
909 [ 2627 [
910 text "eSubpackages reference EPackage" 2628 text "terminator reference FunctionalData"
911 fontSize 14 2629 fontSize 14
912 fontName "Consolas" 2630 fontName "Consolas"
913 configuration "AutoFlippingLabel" 2631 configuration "AutoFlippingLabel"
@@ -917,8 +2635,659 @@ graph
917 ] 2635 ]
918 edge 2636 edge
919 [ 2637 [
920 source 13 2638 source 6
921 target 0 2639 target 5
2640 graphics
2641 [
2642 fill "#000000"
2643 targetArrow "standard"
2644 ]
2645 LabelGraphics
2646 [
2647 text "interface reference FunctionalData"
2648 fontSize 14
2649 fontName "Consolas"
2650 configuration "AutoFlippingLabel"
2651 model "six_pos"
2652 position "thead"
2653 ]
2654 ]
2655 edge
2656 [
2657 source 7
2658 target 5
2659 graphics
2660 [
2661 fill "#000000"
2662 targetArrow "standard"
2663 ]
2664 LabelGraphics
2665 [
2666 text "interface reference FunctionalData"
2667 fontSize 14
2668 fontName "Consolas"
2669 configuration "AutoFlippingLabel"
2670 model "six_pos"
2671 position "thead"
2672 ]
2673 ]
2674 edge
2675 [
2676 source 8
2677 target 5
2678 graphics
2679 [
2680 fill "#000000"
2681 targetArrow "standard"
2682 ]
2683 LabelGraphics
2684 [
2685 text "interface reference FunctionalData"
2686 fontSize 14
2687 fontName "Consolas"
2688 configuration "AutoFlippingLabel"
2689 model "six_pos"
2690 position "thead"
2691 ]
2692 ]
2693]
2694graph
2695[
2696 node
2697 [
2698 id 0
2699 graphics
2700 [
2701 w 226.60000000000002
2702 h 40
2703 type "rectangle"
2704 fill "#FFFFFF"
2705 fill2 "#FFFFFF"
2706 outline "#000000"
2707 ]
2708 LabelGraphics
2709 [
2710 text "Root literal FunctionType"
2711 outline "#000000"
2712 fill "#FFFFFF"
2713 fontSize 16
2714 fontName "Monospace"
2715 autoSizePolicy "node_width"
2716 anchor "t"
2717 borderDistance 0.0
2718 ]
2719 LabelGraphics
2720 [
2721 text "
2722 FunctionType enum
2723 "
2724 fontSize 14
2725 fontName "Consolas"
2726 alignment "left"
2727 anchor "tl"
2728 borderDistance 6
2729 ]
2730 ]
2731
2732 node
2733 [
2734 id 1
2735 graphics
2736 [
2737 w 297.0
2738 h 40
2739 type "rectangle"
2740 fill "#FFFFFF"
2741 fill2 "#FFFFFF"
2742 outline "#000000"
2743 ]
2744 LabelGraphics
2745 [
2746 text "Intermediate literal FunctionType"
2747 outline "#000000"
2748 fill "#FFFFFF"
2749 fontSize 16
2750 fontName "Monospace"
2751 autoSizePolicy "node_width"
2752 anchor "t"
2753 borderDistance 0.0
2754 ]
2755 LabelGraphics
2756 [
2757 text "
2758 FunctionType enum
2759 "
2760 fontSize 14
2761 fontName "Consolas"
2762 alignment "left"
2763 anchor "tl"
2764 borderDistance 6
2765 ]
2766 ]
2767
2768 node
2769 [
2770 id 2
2771 graphics
2772 [
2773 w 226.60000000000002
2774 h 40
2775 type "rectangle"
2776 fill "#FFFFFF"
2777 fill2 "#FFFFFF"
2778 outline "#000000"
2779 ]
2780 LabelGraphics
2781 [
2782 text "Leaf literal FunctionType"
2783 outline "#000000"
2784 fill "#FFFFFF"
2785 fontSize 16
2786 fontName "Monospace"
2787 autoSizePolicy "node_width"
2788 anchor "t"
2789 borderDistance 0.0
2790 ]
2791 LabelGraphics
2792 [
2793 text "
2794 FunctionType enum
2795 "
2796 fontSize 14
2797 fontName "Consolas"
2798 alignment "left"
2799 anchor "tl"
2800 borderDistance 6
2801 ]
2802 ]
2803
2804 node
2805 [
2806 id 3
2807 graphics
2808 [
2809 w 41.800000000000004
2810 h 26
2811 type "rectangle"
2812 fill "#FFFFFF"
2813 fill2 "#FFFFFF"
2814 outline "#000000"
2815 ]
2816 LabelGraphics
2817 [
2818 text "true"
2819 outline "#000000"
2820 fill "#FFFFFF"
2821 fontSize 16
2822 fontName "Monospace"
2823 autoSizePolicy "node_width"
2824 anchor "t"
2825 borderDistance 0.0
2826 ]
2827 LabelGraphics
2828 [
2829 text "
2830 "
2831 fontSize 14
2832 fontName "Consolas"
2833 alignment "left"
2834 anchor "tl"
2835 borderDistance 6
2836 ]
2837 ]
2838
2839 node
2840 [
2841 id 4
2842 graphics
2843 [
2844 w 50.6
2845 h 26
2846 type "rectangle"
2847 fill "#FFFFFF"
2848 fill2 "#FFFFFF"
2849 outline "#000000"
2850 ]
2851 LabelGraphics
2852 [
2853 text "false"
2854 outline "#000000"
2855 fill "#FFFFFF"
2856 fontSize 16
2857 fontName "Monospace"
2858 autoSizePolicy "node_width"
2859 anchor "t"
2860 borderDistance 0.0
2861 ]
2862 LabelGraphics
2863 [
2864 text "
2865 "
2866 fontSize 14
2867 fontName "Consolas"
2868 alignment "left"
2869 anchor "tl"
2870 borderDistance 6
2871 ]
2872 ]
2873
2874 node
2875 [
2876 id 5
2877 graphics
2878 [
2879 w 207.9
2880 h 40
2881 type "rectangle"
2882 fill "#FFFFFF"
2883 fill2 "#FFFFFF"
2884 outline "#000000"
2885 ]
2886 LabelGraphics
2887 [
2888 text "null"
2889 outline "#000000"
2890 fill "#FFFFFF"
2891 fontSize 16
2892 fontName "Monospace"
2893 autoSizePolicy "node_width"
2894 anchor "t"
2895 borderDistance 0.0
2896 ]
2897 LabelGraphics
2898 [
2899 text "
2900 FunctionalInterface class
2901 "
2902 fontSize 14
2903 fontName "Consolas"
2904 alignment "left"
2905 anchor "tl"
2906 borderDistance 6
2907 ]
2908 ]
2909
2910 node
2911 [
2912 id 6
2913 graphics
2914 [
2915 w 184.8
2916 h 54
2917 type "rectangle"
2918 fill "#FFFFFF"
2919 fill2 "#FFFFFF"
2920 outline "#000000"
2921 ]
2922 LabelGraphics
2923 [
2924 text "null"
2925 outline "#000000"
2926 fill "#FFFFFF"
2927 fontSize 16
2928 fontName "Monospace"
2929 autoSizePolicy "node_width"
2930 anchor "t"
2931 borderDistance 0.0
2932 ]
2933 LabelGraphics
2934 [
2935 text "
2936 FunctionalOutput class
2937 FunctionalData class
2938 "
2939 fontSize 14
2940 fontName "Consolas"
2941 alignment "left"
2942 anchor "tl"
2943 borderDistance 6
2944 ]
2945 ]
2946
2947 node
2948 [
2949 id 7
2950 graphics
2951 [
2952 w 177.10000000000002
2953 h 54
2954 type "rectangle"
2955 fill "#FFFFFF"
2956 fill2 "#FFFFFF"
2957 outline "#000000"
2958 ]
2959 LabelGraphics
2960 [
2961 text "null"
2962 outline "#000000"
2963 fill "#FFFFFF"
2964 fontSize 16
2965 fontName "Monospace"
2966 autoSizePolicy "node_width"
2967 anchor "t"
2968 borderDistance 0.0
2969 ]
2970 LabelGraphics
2971 [
2972 text "
2973 FunctionalInput class
2974 FunctionalData class
2975 "
2976 fontSize 14
2977 fontName "Consolas"
2978 alignment "left"
2979 anchor "tl"
2980 borderDistance 6
2981 ]
2982 ]
2983
2984 node
2985 [
2986 id 8
2987 graphics
2988 [
2989 w 184.8
2990 h 54
2991 type "rectangle"
2992 fill "#FFFFFF"
2993 fill2 "#FFFFFF"
2994 outline "#000000"
2995 ]
2996 LabelGraphics
2997 [
2998 text "null"
2999 outline "#000000"
3000 fill "#FFFFFF"
3001 fontSize 16
3002 fontName "Monospace"
3003 autoSizePolicy "node_width"
3004 anchor "t"
3005 borderDistance 0.0
3006 ]
3007 LabelGraphics
3008 [
3009 text "
3010 FunctionalOutput class
3011 FunctionalData class
3012 "
3013 fontSize 14
3014 fontName "Consolas"
3015 alignment "left"
3016 anchor "tl"
3017 borderDistance 6
3018 ]
3019 ]
3020
3021 node
3022 [
3023 id 9
3024 graphics
3025 [
3026 w 161.70000000000002
3027 h 40
3028 type "rectangle"
3029 fill "#FFFFFF"
3030 fill2 "#FFFFFF"
3031 outline "#000000"
3032 ]
3033 LabelGraphics
3034 [
3035 text "null"
3036 outline "#000000"
3037 fill "#FFFFFF"
3038 fontSize 16
3039 fontName "Monospace"
3040 autoSizePolicy "node_width"
3041 anchor "t"
3042 borderDistance 0.0
3043 ]
3044 LabelGraphics
3045 [
3046 text "
3047 FAMTerminator class
3048 "
3049 fontSize 14
3050 fontName "Consolas"
3051 alignment "left"
3052 anchor "tl"
3053 borderDistance 6
3054 ]
3055 ]
3056
3057 node
3058 [
3059 id 10
3060 graphics
3061 [
3062 w 161.70000000000002
3063 h 40
3064 type "rectangle"
3065 fill "#FFFFFF"
3066 fill2 "#FFFFFF"
3067 outline "#000000"
3068 ]
3069 LabelGraphics
3070 [
3071 text "null"
3072 outline "#000000"
3073 fill "#FFFFFF"
3074 fontSize 16
3075 fontName "Monospace"
3076 autoSizePolicy "node_width"
3077 anchor "t"
3078 borderDistance 0.0
3079 ]
3080 LabelGraphics
3081 [
3082 text "
3083 FAMTerminator class
3084 "
3085 fontSize 14
3086 fontName "Consolas"
3087 alignment "left"
3088 anchor "tl"
3089 borderDistance 6
3090 ]
3091 ]
3092
3093 node
3094 [
3095 id 11
3096 graphics
3097 [
3098 w 177.10000000000002
3099 h 40
3100 type "rectangle"
3101 fill "#FFFFFF"
3102 fill2 "#FFFFFF"
3103 outline "#000000"
3104 ]
3105 LabelGraphics
3106 [
3107 text "null"
3108 outline "#000000"
3109 fill "#FFFFFF"
3110 fontSize 16
3111 fontName "Monospace"
3112 autoSizePolicy "node_width"
3113 anchor "t"
3114 borderDistance 0.0
3115 ]
3116 LabelGraphics
3117 [
3118 text "
3119 InformationLink class
3120 "
3121 fontSize 14
3122 fontName "Consolas"
3123 alignment "left"
3124 anchor "tl"
3125 borderDistance 6
3126 ]
3127 ]
3128
3129 node
3130 [
3131 id 12
3132 graphics
3133 [
3134 w 112.2
3135 h 26
3136 type "rectangle"
3137 fill "#FFFFFF"
3138 fill2 "#FFFFFF"
3139 outline "#000000"
3140 ]
3141 LabelGraphics
3142 [
3143 text "New Integers"
3144 outline "#000000"
3145 fill "#FFFFFF"
3146 fontSize 16
3147 fontName "Monospace"
3148 autoSizePolicy "node_width"
3149 anchor "t"
3150 borderDistance 0.0
3151 ]
3152 LabelGraphics
3153 [
3154 text "
3155 "
3156 fontSize 14
3157 fontName "Consolas"
3158 alignment "left"
3159 anchor "tl"
3160 borderDistance 6
3161 ]
3162 ]
3163
3164 node
3165 [
3166 id 13
3167 graphics
3168 [
3169 w 85.80000000000001
3170 h 26
3171 type "rectangle"
3172 fill "#FFFFFF"
3173 fill2 "#FFFFFF"
3174 outline "#000000"
3175 ]
3176 LabelGraphics
3177 [
3178 text "New Reals"
3179 outline "#000000"
3180 fill "#FFFFFF"
3181 fontSize 16
3182 fontName "Monospace"
3183 autoSizePolicy "node_width"
3184 anchor "t"
3185 borderDistance 0.0
3186 ]
3187 LabelGraphics
3188 [
3189 text "
3190 "
3191 fontSize 14
3192 fontName "Consolas"
3193 alignment "left"
3194 anchor "tl"
3195 borderDistance 6
3196 ]
3197 ]
3198
3199 node
3200 [
3201 id 14
3202 graphics
3203 [
3204 w 103.4
3205 h 26
3206 type "rectangle"
3207 fill "#FFFFFF"
3208 fill2 "#FFFFFF"
3209 outline "#000000"
3210 ]
3211 LabelGraphics
3212 [
3213 text "New Strings"
3214 outline "#000000"
3215 fill "#FFFFFF"
3216 fontSize 16
3217 fontName "Monospace"
3218 autoSizePolicy "node_width"
3219 anchor "t"
3220 borderDistance 0.0
3221 ]
3222 LabelGraphics
3223 [
3224 text "
3225 "
3226 fontSize 14
3227 fontName "Consolas"
3228 alignment "left"
3229 anchor "tl"
3230 borderDistance 6
3231 ]
3232 ]
3233
3234 node
3235 [
3236 id 15
3237 graphics
3238 [
3239 w 103.4
3240 h 26
3241 type "rectangle"
3242 fill "#FFFFFF"
3243 fill2 "#FFFFFF"
3244 outline "#000000"
3245 ]
3246 LabelGraphics
3247 [
3248 text "New Objects"
3249 outline "#000000"
3250 fill "#FFFFFF"
3251 fontSize 16
3252 fontName "Monospace"
3253 autoSizePolicy "node_width"
3254 anchor "t"
3255 borderDistance 0.0
3256 ]
3257 LabelGraphics
3258 [
3259 text "
3260 "
3261 fontSize 14
3262 fontName "Consolas"
3263 alignment "left"
3264 anchor "tl"
3265 borderDistance 6
3266 ]
3267 ]
3268 edge
3269 [
3270 source 9
3271 target 6
3272 graphics
3273 [
3274 fill "#000000"
3275 targetArrow "standard"
3276 ]
3277 LabelGraphics
3278 [
3279 text "data reference FAMTerminator"
3280 fontSize 14
3281 fontName "Consolas"
3282 configuration "AutoFlippingLabel"
3283 model "six_pos"
3284 position "thead"
3285 ]
3286 ]
3287 edge
3288 [
3289 source 10
3290 target 7
922 graphics 3291 graphics
923 [ 3292 [
924 fill "#000000" 3293 fill "#000000"
@@ -926,7 +3295,7 @@ graph
926 ] 3295 ]
927 LabelGraphics 3296 LabelGraphics
928 [ 3297 [
929 text "eSuperPackage reference EPackage" 3298 text "data reference FAMTerminator"
930 fontSize 14 3299 fontSize 14
931 fontName "Consolas" 3300 fontName "Consolas"
932 configuration "AutoFlippingLabel" 3301 configuration "AutoFlippingLabel"
@@ -936,7 +3305,7 @@ graph
936 ] 3305 ]
937 edge 3306 edge
938 [ 3307 [
939 source 12 3308 source 11
940 target 8 3309 target 8
941 graphics 3310 graphics
942 [ 3311 [
@@ -945,7 +3314,7 @@ graph
945 ] 3314 ]
946 LabelGraphics 3315 LabelGraphics
947 [ 3316 [
948 text "instanceClassName attribute EClassifier" 3317 text "from reference InformationLink"
949 fontSize 14 3318 fontSize 14
950 fontName "Consolas" 3319 fontName "Consolas"
951 configuration "AutoFlippingLabel" 3320 configuration "AutoFlippingLabel"
@@ -956,15 +3325,35 @@ graph
956 edge 3325 edge
957 [ 3326 [
958 source 11 3327 source 11
3328 target 7
3329 graphics
3330 [
3331 fill "#000000"
3332 targetArrow "standard"
3333 ]
3334 LabelGraphics
3335 [
3336 text "to reference InformationLink"
3337 fontSize 14
3338 fontName "Consolas"
3339 configuration "AutoFlippingLabel"
3340 model "six_pos"
3341 position "thead"
3342 ]
3343 ]
3344 edge
3345 [
3346 source 5
959 target 6 3347 target 6
960 graphics 3348 graphics
961 [ 3349 [
962 fill "#000000" 3350 fill "#000000"
3351 width 3
963 targetArrow "standard" 3352 targetArrow "standard"
964 ] 3353 ]
965 LabelGraphics 3354 LabelGraphics
966 [ 3355 [
967 text "instanceClassName attribute EClassifier" 3356 text "data reference FunctionalInterface"
968 fontSize 14 3357 fontSize 14
969 fontName "Consolas" 3358 fontName "Consolas"
970 configuration "AutoFlippingLabel" 3359 configuration "AutoFlippingLabel"
@@ -974,16 +3363,17 @@ graph
974 ] 3363 ]
975 edge 3364 edge
976 [ 3365 [
977 source 11 3366 source 5
978 target 10 3367 target 7
979 graphics 3368 graphics
980 [ 3369 [
981 fill "#000000" 3370 fill "#000000"
3371 width 3
982 targetArrow "standard" 3372 targetArrow "standard"
983 ] 3373 ]
984 LabelGraphics 3374 LabelGraphics
985 [ 3375 [
986 text "instanceTypeName attribute EClassifier" 3376 text "data reference FunctionalInterface"
987 fontSize 14 3377 fontSize 14
988 fontName "Consolas" 3378 fontName "Consolas"
989 configuration "AutoFlippingLabel" 3379 configuration "AutoFlippingLabel"
@@ -993,16 +3383,17 @@ graph
993 ] 3383 ]
994 edge 3384 edge
995 [ 3385 [
996 source 12 3386 source 5
997 target 8 3387 target 8
998 graphics 3388 graphics
999 [ 3389 [
1000 fill "#000000" 3390 fill "#000000"
3391 width 3
1001 targetArrow "standard" 3392 targetArrow "standard"
1002 ] 3393 ]
1003 LabelGraphics 3394 LabelGraphics
1004 [ 3395 [
1005 text "instanceTypeName attribute EClassifier" 3396 text "data reference FunctionalInterface"
1006 fontSize 14 3397 fontSize 14
1007 fontName "Consolas" 3398 fontName "Consolas"
1008 configuration "AutoFlippingLabel" 3399 configuration "AutoFlippingLabel"
@@ -1012,8 +3403,8 @@ graph
1012 ] 3403 ]
1013 edge 3404 edge
1014 [ 3405 [
1015 source 11 3406 source 7
1016 target 1 3407 target 11
1017 graphics 3408 graphics
1018 [ 3409 [
1019 fill "#000000" 3410 fill "#000000"
@@ -1021,7 +3412,7 @@ graph
1021 ] 3412 ]
1022 LabelGraphics 3413 LabelGraphics
1023 [ 3414 [
1024 text "serializable attribute EDataType" 3415 text "IncomingLinks reference FunctionalInput"
1025 fontSize 14 3416 fontSize 14
1026 fontName "Consolas" 3417 fontName "Consolas"
1027 configuration "AutoFlippingLabel" 3418 configuration "AutoFlippingLabel"
@@ -1031,16 +3422,17 @@ graph
1031 ] 3422 ]
1032 edge 3423 edge
1033 [ 3424 [
1034 source 0 3425 source 8
1035 target 10 3426 target 11
1036 graphics 3427 graphics
1037 [ 3428 [
1038 fill "#000000" 3429 fill "#000000"
3430 width 3
1039 targetArrow "standard" 3431 targetArrow "standard"
1040 ] 3432 ]
1041 LabelGraphics 3433 LabelGraphics
1042 [ 3434 [
1043 text "name attribute ENamedElement" 3435 text "outgoingLinks reference FunctionalOutput"
1044 fontSize 14 3436 fontSize 14
1045 fontName "Consolas" 3437 fontName "Consolas"
1046 configuration "AutoFlippingLabel" 3438 configuration "AutoFlippingLabel"
@@ -1050,16 +3442,709 @@ graph
1050 ] 3442 ]
1051 edge 3443 edge
1052 [ 3444 [
1053 source 12 3445 source 6
3446 target 9
3447 graphics
3448 [
3449 fill "#000000"
3450 width 3
3451 targetArrow "standard"
3452 ]
3453 LabelGraphics
3454 [
3455 text "terminator reference FunctionalData"
3456 fontSize 14
3457 fontName "Consolas"
3458 configuration "AutoFlippingLabel"
3459 model "six_pos"
3460 position "thead"
3461 ]
3462 ]
3463 edge
3464 [
3465 source 7
1054 target 10 3466 target 10
1055 graphics 3467 graphics
1056 [ 3468 [
1057 fill "#000000" 3469 fill "#000000"
3470 width 3
3471 targetArrow "standard"
3472 ]
3473 LabelGraphics
3474 [
3475 text "terminator reference FunctionalData"
3476 fontSize 14
3477 fontName "Consolas"
3478 configuration "AutoFlippingLabel"
3479 model "six_pos"
3480 position "thead"
3481 ]
3482 ]
3483 edge
3484 [
3485 source 6
3486 target 5
3487 graphics
3488 [
3489 fill "#000000"
1058 targetArrow "standard" 3490 targetArrow "standard"
1059 ] 3491 ]
1060 LabelGraphics 3492 LabelGraphics
1061 [ 3493 [
1062 text "name attribute ENamedElement" 3494 text "interface reference FunctionalData"
3495 fontSize 14
3496 fontName "Consolas"
3497 configuration "AutoFlippingLabel"
3498 model "six_pos"
3499 position "thead"
3500 ]
3501 ]
3502 edge
3503 [
3504 source 7
3505 target 5
3506 graphics
3507 [
3508 fill "#000000"
3509 targetArrow "standard"
3510 ]
3511 LabelGraphics
3512 [
3513 text "interface reference FunctionalData"
3514 fontSize 14
3515 fontName "Consolas"
3516 configuration "AutoFlippingLabel"
3517 model "six_pos"
3518 position "thead"
3519 ]
3520 ]
3521 edge
3522 [
3523 source 8
3524 target 5
3525 graphics
3526 [
3527 fill "#000000"
3528 targetArrow "standard"
3529 ]
3530 LabelGraphics
3531 [
3532 text "interface reference FunctionalData"
3533 fontSize 14
3534 fontName "Consolas"
3535 configuration "AutoFlippingLabel"
3536 model "six_pos"
3537 position "thead"
3538 ]
3539 ]
3540]
3541graph
3542[
3543 node
3544 [
3545 id 0
3546 graphics
3547 [
3548 w 226.60000000000002
3549 h 40
3550 type "rectangle"
3551 fill "#FFFFFF"
3552 fill2 "#FFFFFF"
3553 outline "#000000"
3554 ]
3555 LabelGraphics
3556 [
3557 text "Root literal FunctionType"
3558 outline "#000000"
3559 fill "#FFFFFF"
3560 fontSize 16
3561 fontName "Monospace"
3562 autoSizePolicy "node_width"
3563 anchor "t"
3564 borderDistance 0.0
3565 ]
3566 LabelGraphics
3567 [
3568 text "
3569 FunctionType enum
3570 "
3571 fontSize 14
3572 fontName "Consolas"
3573 alignment "left"
3574 anchor "tl"
3575 borderDistance 6
3576 ]
3577 ]
3578
3579 node
3580 [
3581 id 1
3582 graphics
3583 [
3584 w 297.0
3585 h 40
3586 type "rectangle"
3587 fill "#FFFFFF"
3588 fill2 "#FFFFFF"
3589 outline "#000000"
3590 ]
3591 LabelGraphics
3592 [
3593 text "Intermediate literal FunctionType"
3594 outline "#000000"
3595 fill "#FFFFFF"
3596 fontSize 16
3597 fontName "Monospace"
3598 autoSizePolicy "node_width"
3599 anchor "t"
3600 borderDistance 0.0
3601 ]
3602 LabelGraphics
3603 [
3604 text "
3605 FunctionType enum
3606 "
3607 fontSize 14
3608 fontName "Consolas"
3609 alignment "left"
3610 anchor "tl"
3611 borderDistance 6
3612 ]
3613 ]
3614
3615 node
3616 [
3617 id 2
3618 graphics
3619 [
3620 w 226.60000000000002
3621 h 40
3622 type "rectangle"
3623 fill "#FFFFFF"
3624 fill2 "#FFFFFF"
3625 outline "#000000"
3626 ]
3627 LabelGraphics
3628 [
3629 text "Leaf literal FunctionType"
3630 outline "#000000"
3631 fill "#FFFFFF"
3632 fontSize 16
3633 fontName "Monospace"
3634 autoSizePolicy "node_width"
3635 anchor "t"
3636 borderDistance 0.0
3637 ]
3638 LabelGraphics
3639 [
3640 text "
3641 FunctionType enum
3642 "
3643 fontSize 14
3644 fontName "Consolas"
3645 alignment "left"
3646 anchor "tl"
3647 borderDistance 6
3648 ]
3649 ]
3650
3651 node
3652 [
3653 id 3
3654 graphics
3655 [
3656 w 41.800000000000004
3657 h 26
3658 type "rectangle"
3659 fill "#FFFFFF"
3660 fill2 "#FFFFFF"
3661 outline "#000000"
3662 ]
3663 LabelGraphics
3664 [
3665 text "true"
3666 outline "#000000"
3667 fill "#FFFFFF"
3668 fontSize 16
3669 fontName "Monospace"
3670 autoSizePolicy "node_width"
3671 anchor "t"
3672 borderDistance 0.0
3673 ]
3674 LabelGraphics
3675 [
3676 text "
3677 "
3678 fontSize 14
3679 fontName "Consolas"
3680 alignment "left"
3681 anchor "tl"
3682 borderDistance 6
3683 ]
3684 ]
3685
3686 node
3687 [
3688 id 4
3689 graphics
3690 [
3691 w 50.6
3692 h 26
3693 type "rectangle"
3694 fill "#FFFFFF"
3695 fill2 "#FFFFFF"
3696 outline "#000000"
3697 ]
3698 LabelGraphics
3699 [
3700 text "false"
3701 outline "#000000"
3702 fill "#FFFFFF"
3703 fontSize 16
3704 fontName "Monospace"
3705 autoSizePolicy "node_width"
3706 anchor "t"
3707 borderDistance 0.0
3708 ]
3709 LabelGraphics
3710 [
3711 text "
3712 "
3713 fontSize 14
3714 fontName "Consolas"
3715 alignment "left"
3716 anchor "tl"
3717 borderDistance 6
3718 ]
3719 ]
3720
3721 node
3722 [
3723 id 5
3724 graphics
3725 [
3726 w 269.5
3727 h 40
3728 type "rectangle"
3729 fill "#FFFFFF"
3730 fill2 "#FFFFFF"
3731 outline "#000000"
3732 ]
3733 LabelGraphics
3734 [
3735 text "null"
3736 outline "#000000"
3737 fill "#FFFFFF"
3738 fontSize 16
3739 fontName "Monospace"
3740 autoSizePolicy "node_width"
3741 anchor "t"
3742 borderDistance 0.0
3743 ]
3744 LabelGraphics
3745 [
3746 text "
3747 FunctionalArchitectureModel class
3748 "
3749 fontSize 14
3750 fontName "Consolas"
3751 alignment "left"
3752 anchor "tl"
3753 borderDistance 6
3754 ]
3755 ]
3756
3757 node
3758 [
3759 id 6
3760 graphics
3761 [
3762 w 192.50000000000003
3763 h 54
3764 type "rectangle"
3765 fill "#FFFFFF"
3766 fill2 "#FFFFFF"
3767 outline "#000000"
3768 ]
3769 LabelGraphics
3770 [
3771 text "null"
3772 outline "#000000"
3773 fill "#FFFFFF"
3774 fontSize 16
3775 fontName "Monospace"
3776 autoSizePolicy "node_width"
3777 anchor "t"
3778 borderDistance 0.0
3779 ]
3780 LabelGraphics
3781 [
3782 text "
3783 FunctionalElement class
3784 Function class
3785 "
3786 fontSize 14
3787 fontName "Consolas"
3788 alignment "left"
3789 anchor "tl"
3790 borderDistance 6
3791 ]
3792 ]
3793
3794 node
3795 [
3796 id 7
3797 graphics
3798 [
3799 w 207.9
3800 h 40
3801 type "rectangle"
3802 fill "#FFFFFF"
3803 fill2 "#FFFFFF"
3804 outline "#000000"
3805 ]
3806 LabelGraphics
3807 [
3808 text "null"
3809 outline "#000000"
3810 fill "#FFFFFF"
3811 fontSize 16
3812 fontName "Monospace"
3813 autoSizePolicy "node_width"
3814 anchor "t"
3815 borderDistance 0.0
3816 ]
3817 LabelGraphics
3818 [
3819 text "
3820 FunctionalInterface class
3821 "
3822 fontSize 14
3823 fontName "Consolas"
3824 alignment "left"
3825 anchor "tl"
3826 borderDistance 6
3827 ]
3828 ]
3829
3830 node
3831 [
3832 id 8
3833 graphics
3834 [
3835 w 184.8
3836 h 54
3837 type "rectangle"
3838 fill "#FFFFFF"
3839 fill2 "#FFFFFF"
3840 outline "#000000"
3841 ]
3842 LabelGraphics
3843 [
3844 text "null"
3845 outline "#000000"
3846 fill "#FFFFFF"
3847 fontSize 16
3848 fontName "Monospace"
3849 autoSizePolicy "node_width"
3850 anchor "t"
3851 borderDistance 0.0
3852 ]
3853 LabelGraphics
3854 [
3855 text "
3856 FunctionalOutput class
3857 FunctionalData class
3858 "
3859 fontSize 14
3860 fontName "Consolas"
3861 alignment "left"
3862 anchor "tl"
3863 borderDistance 6
3864 ]
3865 ]
3866
3867 node
3868 [
3869 id 9
3870 graphics
3871 [
3872 w 161.70000000000002
3873 h 40
3874 type "rectangle"
3875 fill "#FFFFFF"
3876 fill2 "#FFFFFF"
3877 outline "#000000"
3878 ]
3879 LabelGraphics
3880 [
3881 text "null"
3882 outline "#000000"
3883 fill "#FFFFFF"
3884 fontSize 16
3885 fontName "Monospace"
3886 autoSizePolicy "node_width"
3887 anchor "t"
3888 borderDistance 0.0
3889 ]
3890 LabelGraphics
3891 [
3892 text "
3893 FAMTerminator class
3894 "
3895 fontSize 14
3896 fontName "Consolas"
3897 alignment "left"
3898 anchor "tl"
3899 borderDistance 6
3900 ]
3901 ]
3902
3903 node
3904 [
3905 id 10
3906 graphics
3907 [
3908 w 177.10000000000002
3909 h 54
3910 type "rectangle"
3911 fill "#FFFFFF"
3912 fill2 "#FFFFFF"
3913 outline "#000000"
3914 ]
3915 LabelGraphics
3916 [
3917 text "null"
3918 outline "#000000"
3919 fill "#FFFFFF"
3920 fontSize 16
3921 fontName "Monospace"
3922 autoSizePolicy "node_width"
3923 anchor "t"
3924 borderDistance 0.0
3925 ]
3926 LabelGraphics
3927 [
3928 text "
3929 FunctionalInput class
3930 FunctionalData class
3931 "
3932 fontSize 14
3933 fontName "Consolas"
3934 alignment "left"
3935 anchor "tl"
3936 borderDistance 6
3937 ]
3938 ]
3939
3940 node
3941 [
3942 id 11
3943 graphics
3944 [
3945 w 192.50000000000003
3946 h 54
3947 type "rectangle"
3948 fill "#FFFFFF"
3949 fill2 "#FFFFFF"
3950 outline "#000000"
3951 ]
3952 LabelGraphics
3953 [
3954 text "null"
3955 outline "#000000"
3956 fill "#FFFFFF"
3957 fontSize 16
3958 fontName "Monospace"
3959 autoSizePolicy "node_width"
3960 anchor "t"
3961 borderDistance 0.0
3962 ]
3963 LabelGraphics
3964 [
3965 text "
3966 FunctionalElement class
3967 Function class
3968 "
3969 fontSize 14
3970 fontName "Consolas"
3971 alignment "left"
3972 anchor "tl"
3973 borderDistance 6
3974 ]
3975 ]
3976
3977 node
3978 [
3979 id 12
3980 graphics
3981 [
3982 w 112.2
3983 h 26
3984 type "rectangle"
3985 fill "#FFFFFF"
3986 fill2 "#FFFFFF"
3987 outline "#000000"
3988 ]
3989 LabelGraphics
3990 [
3991 text "New Integers"
3992 outline "#000000"
3993 fill "#FFFFFF"
3994 fontSize 16
3995 fontName "Monospace"
3996 autoSizePolicy "node_width"
3997 anchor "t"
3998 borderDistance 0.0
3999 ]
4000 LabelGraphics
4001 [
4002 text "
4003 "
4004 fontSize 14
4005 fontName "Consolas"
4006 alignment "left"
4007 anchor "tl"
4008 borderDistance 6
4009 ]
4010 ]
4011
4012 node
4013 [
4014 id 13
4015 graphics
4016 [
4017 w 85.80000000000001
4018 h 26
4019 type "rectangle"
4020 fill "#FFFFFF"
4021 fill2 "#FFFFFF"
4022 outline "#000000"
4023 ]
4024 LabelGraphics
4025 [
4026 text "New Reals"
4027 outline "#000000"
4028 fill "#FFFFFF"
4029 fontSize 16
4030 fontName "Monospace"
4031 autoSizePolicy "node_width"
4032 anchor "t"
4033 borderDistance 0.0
4034 ]
4035 LabelGraphics
4036 [
4037 text "
4038 "
4039 fontSize 14
4040 fontName "Consolas"
4041 alignment "left"
4042 anchor "tl"
4043 borderDistance 6
4044 ]
4045 ]
4046
4047 node
4048 [
4049 id 14
4050 graphics
4051 [
4052 w 103.4
4053 h 26
4054 type "rectangle"
4055 fill "#FFFFFF"
4056 fill2 "#FFFFFF"
4057 outline "#000000"
4058 ]
4059 LabelGraphics
4060 [
4061 text "New Strings"
4062 outline "#000000"
4063 fill "#FFFFFF"
4064 fontSize 16
4065 fontName "Monospace"
4066 autoSizePolicy "node_width"
4067 anchor "t"
4068 borderDistance 0.0
4069 ]
4070 LabelGraphics
4071 [
4072 text "
4073 "
4074 fontSize 14
4075 fontName "Consolas"
4076 alignment "left"
4077 anchor "tl"
4078 borderDistance 6
4079 ]
4080 ]
4081
4082 node
4083 [
4084 id 15
4085 graphics
4086 [
4087 w 103.4
4088 h 26
4089 type "rectangle"
4090 fill "#FFFFFF"
4091 fill2 "#FFFFFF"
4092 outline "#000000"
4093 ]
4094 LabelGraphics
4095 [
4096 text "New Objects"
4097 outline "#000000"
4098 fill "#FFFFFF"
4099 fontSize 16
4100 fontName "Monospace"
4101 autoSizePolicy "node_width"
4102 anchor "t"
4103 borderDistance 0.0
4104 ]
4105 LabelGraphics
4106 [
4107 text "
4108 "
4109 fontSize 14
4110 fontName "Consolas"
4111 alignment "left"
4112 anchor "tl"
4113 borderDistance 6
4114 ]
4115 ]
4116 edge
4117 [
4118 source 6
4119 target 7
4120 graphics
4121 [
4122 fill "#000000"
4123 width 3
4124 targetArrow "standard"
4125 ]
4126 LabelGraphics
4127 [
4128 text "interface reference FunctionalElement"
4129 fontSize 14
4130 fontName "Consolas"
4131 configuration "AutoFlippingLabel"
4132 model "six_pos"
4133 position "thead"
4134 ]
4135 ]
4136 edge
4137 [
4138 source 6
4139 target 5
4140 graphics
4141 [
4142 fill "#000000"
4143 targetArrow "standard"
4144 ]
4145 LabelGraphics
4146 [
4147 text "model reference FunctionalElement"
1063 fontSize 14 4148 fontSize 14
1064 fontName "Consolas" 4149 fontName "Consolas"
1065 configuration "AutoFlippingLabel" 4150 configuration "AutoFlippingLabel"
@@ -1070,7 +4155,7 @@ graph
1070 edge 4155 edge
1071 [ 4156 [
1072 source 11 4157 source 11
1073 target 10 4158 target 5
1074 graphics 4159 graphics
1075 [ 4160 [
1076 fill "#000000" 4161 fill "#000000"
@@ -1078,7 +4163,7 @@ graph
1078 ] 4163 ]
1079 LabelGraphics 4164 LabelGraphics
1080 [ 4165 [
1081 text "name attribute ENamedElement" 4166 text "model reference FunctionalElement"
1082 fontSize 14 4167 fontSize 14
1083 fontName "Consolas" 4168 fontName "Consolas"
1084 configuration "AutoFlippingLabel" 4169 configuration "AutoFlippingLabel"
@@ -1088,7 +4173,7 @@ graph
1088 ] 4173 ]
1089 edge 4174 edge
1090 [ 4175 [
1091 source 13 4176 source 11
1092 target 6 4177 target 6
1093 graphics 4178 graphics
1094 [ 4179 [
@@ -1097,7 +4182,7 @@ graph
1097 ] 4182 ]
1098 LabelGraphics 4183 LabelGraphics
1099 [ 4184 [
1100 text "name attribute ENamedElement" 4185 text "parent reference FunctionalElement"
1101 fontSize 14 4186 fontSize 14
1102 fontName "Consolas" 4187 fontName "Consolas"
1103 configuration "AutoFlippingLabel" 4188 configuration "AutoFlippingLabel"
@@ -1107,16 +4192,17 @@ graph
1107 ] 4192 ]
1108 edge 4193 edge
1109 [ 4194 [
1110 source 14 4195 source 5
1111 target 10 4196 target 6
1112 graphics 4197 graphics
1113 [ 4198 [
1114 fill "#000000" 4199 fill "#000000"
4200 width 3
1115 targetArrow "standard" 4201 targetArrow "standard"
1116 ] 4202 ]
1117 LabelGraphics 4203 LabelGraphics
1118 [ 4204 [
1119 text "name attribute ENamedElement" 4205 text "rootElements reference FunctionalArchitectureModel"
1120 fontSize 14 4206 fontSize 14
1121 fontName "Consolas" 4207 fontName "Consolas"
1122 configuration "AutoFlippingLabel" 4208 configuration "AutoFlippingLabel"
@@ -1126,16 +4212,17 @@ graph
1126 ] 4212 ]
1127 edge 4213 edge
1128 [ 4214 [
1129 source 0 4215 source 6
1130 target 9 4216 target 11
1131 graphics 4217 graphics
1132 [ 4218 [
1133 fill "#000000" 4219 fill "#000000"
4220 width 3
1134 targetArrow "standard" 4221 targetArrow "standard"
1135 ] 4222 ]
1136 LabelGraphics 4223 LabelGraphics
1137 [ 4224 [
1138 text "nsURI attribute EPackage" 4225 text "subElements reference Function"
1139 fontSize 14 4226 fontSize 14
1140 fontName "Consolas" 4227 fontName "Consolas"
1141 configuration "AutoFlippingLabel" 4228 configuration "AutoFlippingLabel"
@@ -1145,7 +4232,7 @@ graph
1145 ] 4232 ]
1146 edge 4233 edge
1147 [ 4234 [
1148 source 13 4235 source 9
1149 target 8 4236 target 8
1150 graphics 4237 graphics
1151 [ 4238 [
@@ -1154,7 +4241,7 @@ graph
1154 ] 4241 ]
1155 LabelGraphics 4242 LabelGraphics
1156 [ 4243 [
1157 text "nsURI attribute EPackage" 4244 text "data reference FAMTerminator"
1158 fontSize 14 4245 fontSize 14
1159 fontName "Consolas" 4246 fontName "Consolas"
1160 configuration "AutoFlippingLabel" 4247 configuration "AutoFlippingLabel"
@@ -1164,16 +4251,17 @@ graph
1164 ] 4251 ]
1165 edge 4252 edge
1166 [ 4253 [
1167 source 0 4254 source 7
1168 target 8 4255 target 8
1169 graphics 4256 graphics
1170 [ 4257 [
1171 fill "#000000" 4258 fill "#000000"
4259 width 3
1172 targetArrow "standard" 4260 targetArrow "standard"
1173 ] 4261 ]
1174 LabelGraphics 4262 LabelGraphics
1175 [ 4263 [
1176 text "nsPrefix attribute EPackage" 4264 text "data reference FunctionalInterface"
1177 fontSize 14 4265 fontSize 14
1178 fontName "Consolas" 4266 fontName "Consolas"
1179 configuration "AutoFlippingLabel" 4267 configuration "AutoFlippingLabel"
@@ -1183,7 +4271,27 @@ graph
1183 ] 4271 ]
1184 edge 4272 edge
1185 [ 4273 [
1186 source 13 4274 source 7
4275 target 10
4276 graphics
4277 [
4278 fill "#000000"
4279 width 3
4280 targetArrow "standard"
4281 ]
4282 LabelGraphics
4283 [
4284 text "data reference FunctionalInterface"
4285 fontSize 14
4286 fontName "Consolas"
4287 configuration "AutoFlippingLabel"
4288 model "six_pos"
4289 position "thead"
4290 ]
4291 ]
4292 edge
4293 [
4294 source 7
1187 target 6 4295 target 6
1188 graphics 4296 graphics
1189 [ 4297 [
@@ -1192,7 +4300,103 @@ graph
1192 ] 4300 ]
1193 LabelGraphics 4301 LabelGraphics
1194 [ 4302 [
1195 text "nsPrefix attribute EPackage" 4303 text "element reference FunctionalInterface"
4304 fontSize 14
4305 fontName "Consolas"
4306 configuration "AutoFlippingLabel"
4307 model "six_pos"
4308 position "thead"
4309 ]
4310 ]
4311 edge
4312 [
4313 source 8
4314 target 9
4315 graphics
4316 [
4317 fill "#000000"
4318 width 3
4319 targetArrow "standard"
4320 ]
4321 LabelGraphics
4322 [
4323 text "terminator reference FunctionalData"
4324 fontSize 14
4325 fontName "Consolas"
4326 configuration "AutoFlippingLabel"
4327 model "six_pos"
4328 position "thead"
4329 ]
4330 ]
4331 edge
4332 [
4333 source 8
4334 target 7
4335 graphics
4336 [
4337 fill "#000000"
4338 targetArrow "standard"
4339 ]
4340 LabelGraphics
4341 [
4342 text "interface reference FunctionalData"
4343 fontSize 14
4344 fontName "Consolas"
4345 configuration "AutoFlippingLabel"
4346 model "six_pos"
4347 position "thead"
4348 ]
4349 ]
4350 edge
4351 [
4352 source 10
4353 target 7
4354 graphics
4355 [
4356 fill "#000000"
4357 targetArrow "standard"
4358 ]
4359 LabelGraphics
4360 [
4361 text "interface reference FunctionalData"
4362 fontSize 14
4363 fontName "Consolas"
4364 configuration "AutoFlippingLabel"
4365 model "six_pos"
4366 position "thead"
4367 ]
4368 ]
4369 edge
4370 [
4371 source 6
4372 target 2
4373 graphics
4374 [
4375 fill "#000000"
4376 targetArrow "standard"
4377 ]
4378 LabelGraphics
4379 [
4380 text "type attribute Function"
4381 fontSize 14
4382 fontName "Consolas"
4383 configuration "AutoFlippingLabel"
4384 model "six_pos"
4385 position "thead"
4386 ]
4387 ]
4388 edge
4389 [
4390 source 11
4391 target 2
4392 graphics
4393 [
4394 fill "#000000"
4395 targetArrow "standard"
4396 ]
4397 LabelGraphics
4398 [
4399 text "type attribute Function"
1196 fontSize 14 4400 fontSize 14
1197 fontName "Consolas" 4401 fontName "Consolas"
1198 configuration "AutoFlippingLabel" 4402 configuration "AutoFlippingLabel"
@@ -1208,8 +4412,8 @@ graph
1208 id 0 4412 id 0
1209 graphics 4413 graphics
1210 [ 4414 [
1211 w 254.10000000000002 4415 w 226.60000000000002
1212 h 110 4416 h 40
1213 type "rectangle" 4417 type "rectangle"
1214 fill "#FFFFFF" 4418 fill "#FFFFFF"
1215 fill2 "#FFFFFF" 4419 fill2 "#FFFFFF"
@@ -1217,7 +4421,7 @@ graph
1217 ] 4421 ]
1218 LabelGraphics 4422 LabelGraphics
1219 [ 4423 [
1220 text "o 1" 4424 text "Root literal FunctionType"
1221 outline "#000000" 4425 outline "#000000"
1222 fill "#FFFFFF" 4426 fill "#FFFFFF"
1223 fontSize 16 4427 fontSize 16
@@ -1229,12 +4433,7 @@ graph
1229 LabelGraphics 4433 LabelGraphics
1230 [ 4434 [
1231 text " 4435 text "
1232 EModelElement class DefinedPart 4436 FunctionType enum
1233 ENamedElement class DefinedPart
1234 EPackage class DefinedPart
1235 EModelElement class
1236 ENamedElement class
1237 EPackage class
1238 " 4437 "
1239 fontSize 14 4438 fontSize 14
1240 fontName "Consolas" 4439 fontName "Consolas"
@@ -1249,8 +4448,8 @@ graph
1249 id 1 4448 id 1
1250 graphics 4449 graphics
1251 [ 4450 [
1252 w 41.800000000000004 4451 w 297.0
1253 h 26 4452 h 40
1254 type "rectangle" 4453 type "rectangle"
1255 fill "#FFFFFF" 4454 fill "#FFFFFF"
1256 fill2 "#FFFFFF" 4455 fill2 "#FFFFFF"
@@ -1258,7 +4457,7 @@ graph
1258 ] 4457 ]
1259 LabelGraphics 4458 LabelGraphics
1260 [ 4459 [
1261 text "true" 4460 text "Intermediate literal FunctionType"
1262 outline "#000000" 4461 outline "#000000"
1263 fill "#FFFFFF" 4462 fill "#FFFFFF"
1264 fontSize 16 4463 fontSize 16
@@ -1270,6 +4469,7 @@ graph
1270 LabelGraphics 4469 LabelGraphics
1271 [ 4470 [
1272 text " 4471 text "
4472 FunctionType enum
1273 " 4473 "
1274 fontSize 14 4474 fontSize 14
1275 fontName "Consolas" 4475 fontName "Consolas"
@@ -1284,8 +4484,8 @@ graph
1284 id 2 4484 id 2
1285 graphics 4485 graphics
1286 [ 4486 [
1287 w 50.6 4487 w 226.60000000000002
1288 h 26 4488 h 40
1289 type "rectangle" 4489 type "rectangle"
1290 fill "#FFFFFF" 4490 fill "#FFFFFF"
1291 fill2 "#FFFFFF" 4491 fill2 "#FFFFFF"
@@ -1293,7 +4493,7 @@ graph
1293 ] 4493 ]
1294 LabelGraphics 4494 LabelGraphics
1295 [ 4495 [
1296 text "false" 4496 text "Leaf literal FunctionType"
1297 outline "#000000" 4497 outline "#000000"
1298 fill "#FFFFFF" 4498 fill "#FFFFFF"
1299 fontSize 16 4499 fontSize 16
@@ -1305,6 +4505,7 @@ graph
1305 LabelGraphics 4505 LabelGraphics
1306 [ 4506 [
1307 text " 4507 text "
4508 FunctionType enum
1308 " 4509 "
1309 fontSize 14 4510 fontSize 14
1310 fontName "Consolas" 4511 fontName "Consolas"
@@ -1319,7 +4520,7 @@ graph
1319 id 3 4520 id 3
1320 graphics 4521 graphics
1321 [ 4522 [
1322 w 24.200000000000003 4523 w 41.800000000000004
1323 h 26 4524 h 26
1324 type "rectangle" 4525 type "rectangle"
1325 fill "#FFFFFF" 4526 fill "#FFFFFF"
@@ -1328,7 +4529,7 @@ graph
1328 ] 4529 ]
1329 LabelGraphics 4530 LabelGraphics
1330 [ 4531 [
1331 text "-1" 4532 text "true"
1332 outline "#000000" 4533 outline "#000000"
1333 fill "#FFFFFF" 4534 fill "#FFFFFF"
1334 fontSize 16 4535 fontSize 16
@@ -1354,7 +4555,7 @@ graph
1354 id 4 4555 id 4
1355 graphics 4556 graphics
1356 [ 4557 [
1357 w 15.400000000000002 4558 w 50.6
1358 h 26 4559 h 26
1359 type "rectangle" 4560 type "rectangle"
1360 fill "#FFFFFF" 4561 fill "#FFFFFF"
@@ -1363,7 +4564,7 @@ graph
1363 ] 4564 ]
1364 LabelGraphics 4565 LabelGraphics
1365 [ 4566 [
1366 text "0" 4567 text "false"
1367 outline "#000000" 4568 outline "#000000"
1368 fill "#FFFFFF" 4569 fill "#FFFFFF"
1369 fontSize 16 4570 fontSize 16
@@ -1389,8 +4590,8 @@ graph
1389 id 5 4590 id 5
1390 graphics 4591 graphics
1391 [ 4592 [
1392 w 15.400000000000002 4593 w 269.5
1393 h 26 4594 h 40
1394 type "rectangle" 4595 type "rectangle"
1395 fill "#FFFFFF" 4596 fill "#FFFFFF"
1396 fill2 "#FFFFFF" 4597 fill2 "#FFFFFF"
@@ -1398,7 +4599,7 @@ graph
1398 ] 4599 ]
1399 LabelGraphics 4600 LabelGraphics
1400 [ 4601 [
1401 text "1" 4602 text "null"
1402 outline "#000000" 4603 outline "#000000"
1403 fill "#FFFFFF" 4604 fill "#FFFFFF"
1404 fontSize 16 4605 fontSize 16
@@ -1410,6 +4611,7 @@ graph
1410 LabelGraphics 4611 LabelGraphics
1411 [ 4612 [
1412 text " 4613 text "
4614 FunctionalArchitectureModel class
1413 " 4615 "
1414 fontSize 14 4616 fontSize 14
1415 fontName "Consolas" 4617 fontName "Consolas"
@@ -1424,8 +4626,8 @@ graph
1424 id 6 4626 id 6
1425 graphics 4627 graphics
1426 [ 4628 [
1427 w 33.0 4629 w 192.50000000000003
1428 h 26 4630 h 54
1429 type "rectangle" 4631 type "rectangle"
1430 fill "#FFFFFF" 4632 fill "#FFFFFF"
1431 fill2 "#FFFFFF" 4633 fill2 "#FFFFFF"
@@ -1433,7 +4635,7 @@ graph
1433 ] 4635 ]
1434 LabelGraphics 4636 LabelGraphics
1435 [ 4637 [
1436 text ""A"" 4638 text "null"
1437 outline "#000000" 4639 outline "#000000"
1438 fill "#FFFFFF" 4640 fill "#FFFFFF"
1439 fontSize 16 4641 fontSize 16
@@ -1445,6 +4647,8 @@ graph
1445 LabelGraphics 4647 LabelGraphics
1446 [ 4648 [
1447 text " 4649 text "
4650 FunctionalElement class
4651 Function class
1448 " 4652 "
1449 fontSize 14 4653 fontSize 14
1450 fontName "Consolas" 4654 fontName "Consolas"
@@ -1459,8 +4663,8 @@ graph
1459 id 7 4663 id 7
1460 graphics 4664 graphics
1461 [ 4665 [
1462 w 33.0 4666 w 207.9
1463 h 26 4667 h 40
1464 type "rectangle" 4668 type "rectangle"
1465 fill "#FFFFFF" 4669 fill "#FFFFFF"
1466 fill2 "#FFFFFF" 4670 fill2 "#FFFFFF"
@@ -1468,7 +4672,7 @@ graph
1468 ] 4672 ]
1469 LabelGraphics 4673 LabelGraphics
1470 [ 4674 [
1471 text ""B"" 4675 text "null"
1472 outline "#000000" 4676 outline "#000000"
1473 fill "#FFFFFF" 4677 fill "#FFFFFF"
1474 fontSize 16 4678 fontSize 16
@@ -1480,6 +4684,7 @@ graph
1480 LabelGraphics 4684 LabelGraphics
1481 [ 4685 [
1482 text " 4686 text "
4687 FunctionalInterface class
1483 " 4688 "
1484 fontSize 14 4689 fontSize 14
1485 fontName "Consolas" 4690 fontName "Consolas"
@@ -1494,8 +4699,8 @@ graph
1494 id 8 4699 id 8
1495 graphics 4700 graphics
1496 [ 4701 [
1497 w 94.60000000000001 4702 w 177.10000000000002
1498 h 26 4703 h 54
1499 type "rectangle" 4704 type "rectangle"
1500 fill "#FFFFFF" 4705 fill "#FFFFFF"
1501 fill2 "#FFFFFF" 4706 fill2 "#FFFFFF"
@@ -1503,7 +4708,7 @@ graph
1503 ] 4708 ]
1504 LabelGraphics 4709 LabelGraphics
1505 [ 4710 [
1506 text ""nsPrefix"" 4711 text "null"
1507 outline "#000000" 4712 outline "#000000"
1508 fill "#FFFFFF" 4713 fill "#FFFFFF"
1509 fontSize 16 4714 fontSize 16
@@ -1515,6 +4720,8 @@ graph
1515 LabelGraphics 4720 LabelGraphics
1516 [ 4721 [
1517 text " 4722 text "
4723 FunctionalInput class
4724 FunctionalData class
1518 " 4725 "
1519 fontSize 14 4726 fontSize 14
1520 fontName "Consolas" 4727 fontName "Consolas"
@@ -1529,8 +4736,8 @@ graph
1529 id 9 4736 id 9
1530 graphics 4737 graphics
1531 [ 4738 [
1532 w 68.2 4739 w 161.70000000000002
1533 h 26 4740 h 40
1534 type "rectangle" 4741 type "rectangle"
1535 fill "#FFFFFF" 4742 fill "#FFFFFF"
1536 fill2 "#FFFFFF" 4743 fill2 "#FFFFFF"
@@ -1538,7 +4745,7 @@ graph
1538 ] 4745 ]
1539 LabelGraphics 4746 LabelGraphics
1540 [ 4747 [
1541 text ""nsUri"" 4748 text "null"
1542 outline "#000000" 4749 outline "#000000"
1543 fill "#FFFFFF" 4750 fill "#FFFFFF"
1544 fontSize 16 4751 fontSize 16
@@ -1550,6 +4757,7 @@ graph
1550 LabelGraphics 4757 LabelGraphics
1551 [ 4758 [
1552 text " 4759 text "
4760 FAMTerminator class
1553 " 4761 "
1554 fontSize 14 4762 fontSize 14
1555 fontName "Consolas" 4763 fontName "Consolas"
@@ -1564,8 +4772,8 @@ graph
1564 id 10 4772 id 10
1565 graphics 4773 graphics
1566 [ 4774 [
1567 w 121.00000000000001 4775 w 177.10000000000002
1568 h 26 4776 h 54
1569 type "rectangle" 4777 type "rectangle"
1570 fill "#FFFFFF" 4778 fill "#FFFFFF"
1571 fill2 "#FFFFFF" 4779 fill2 "#FFFFFF"
@@ -1573,7 +4781,7 @@ graph
1573 ] 4781 ]
1574 LabelGraphics 4782 LabelGraphics
1575 [ 4783 [
1576 text ""packageName"" 4784 text "null"
1577 outline "#000000" 4785 outline "#000000"
1578 fill "#FFFFFF" 4786 fill "#FFFFFF"
1579 fontSize 16 4787 fontSize 16
@@ -1585,6 +4793,8 @@ graph
1585 LabelGraphics 4793 LabelGraphics
1586 [ 4794 [
1587 text " 4795 text "
4796 FunctionalInput class
4797 FunctionalData class
1588 " 4798 "
1589 fontSize 14 4799 fontSize 14
1590 fontName "Consolas" 4800 fontName "Consolas"
@@ -1599,8 +4809,8 @@ graph
1599 id 11 4809 id 11
1600 graphics 4810 graphics
1601 [ 4811 [
1602 w 269.5 4812 w 177.10000000000002
1603 h 110 4813 h 54
1604 type "rectangle" 4814 type "rectangle"
1605 fill "#FFFFFF" 4815 fill "#FFFFFF"
1606 fill2 "#FFFFFF" 4816 fill2 "#FFFFFF"
@@ -1620,12 +4830,8 @@ graph
1620 LabelGraphics 4830 LabelGraphics
1621 [ 4831 [
1622 text " 4832 text "
1623 EClassifier class 4833 FunctionalInput class
1624 EDataType class 4834 FunctionalData class
1625 EModelElement class
1626 ENamedElement class
1627 EModelElement class UndefinedPart
1628 ENamedElement class UndefinedPart
1629 " 4835 "
1630 fontSize 14 4836 fontSize 14
1631 fontName "Consolas" 4837 fontName "Consolas"
@@ -1640,8 +4846,8 @@ graph
1640 id 12 4846 id 12
1641 graphics 4847 graphics
1642 [ 4848 [
1643 w 269.5 4849 w 112.2
1644 h 68 4850 h 26
1645 type "rectangle" 4851 type "rectangle"
1646 fill "#FFFFFF" 4852 fill "#FFFFFF"
1647 fill2 "#FFFFFF" 4853 fill2 "#FFFFFF"
@@ -1649,7 +4855,7 @@ graph
1649 ] 4855 ]
1650 LabelGraphics 4856 LabelGraphics
1651 [ 4857 [
1652 text "null" 4858 text "New Integers"
1653 outline "#000000" 4859 outline "#000000"
1654 fill "#FFFFFF" 4860 fill "#FFFFFF"
1655 fontSize 16 4861 fontSize 16
@@ -1661,9 +4867,6 @@ graph
1661 LabelGraphics 4867 LabelGraphics
1662 [ 4868 [
1663 text " 4869 text "
1664 EAnnotation class
1665 EModelElement class
1666 EModelElement class UndefinedPart
1667 " 4870 "
1668 fontSize 14 4871 fontSize 14
1669 fontName "Consolas" 4872 fontName "Consolas"
@@ -1678,8 +4881,8 @@ graph
1678 id 13 4881 id 13
1679 graphics 4882 graphics
1680 [ 4883 [
1681 w 269.5 4884 w 85.80000000000001
1682 h 110 4885 h 26
1683 type "rectangle" 4886 type "rectangle"
1684 fill "#FFFFFF" 4887 fill "#FFFFFF"
1685 fill2 "#FFFFFF" 4888 fill2 "#FFFFFF"
@@ -1687,7 +4890,7 @@ graph
1687 ] 4890 ]
1688 LabelGraphics 4891 LabelGraphics
1689 [ 4892 [
1690 text "null" 4893 text "New Reals"
1691 outline "#000000" 4894 outline "#000000"
1692 fill "#FFFFFF" 4895 fill "#FFFFFF"
1693 fontSize 16 4896 fontSize 16
@@ -1699,12 +4902,6 @@ graph
1699 LabelGraphics 4902 LabelGraphics
1700 [ 4903 [
1701 text " 4904 text "
1702 EClass class
1703 EClassifier class
1704 EModelElement class
1705 ENamedElement class
1706 EModelElement class UndefinedPart
1707 ENamedElement class UndefinedPart
1708 " 4905 "
1709 fontSize 14 4906 fontSize 14
1710 fontName "Consolas" 4907 fontName "Consolas"
@@ -1719,8 +4916,8 @@ graph
1719 id 14 4916 id 14
1720 graphics 4917 graphics
1721 [ 4918 [
1722 w 269.5 4919 w 103.4
1723 h 110 4920 h 26
1724 type "rectangle" 4921 type "rectangle"
1725 fill "#FFFFFF" 4922 fill "#FFFFFF"
1726 fill2 "#FFFFFF" 4923 fill2 "#FFFFFF"
@@ -1728,7 +4925,7 @@ graph
1728 ] 4925 ]
1729 LabelGraphics 4926 LabelGraphics
1730 [ 4927 [
1731 text "null" 4928 text "New Strings"
1732 outline "#000000" 4929 outline "#000000"
1733 fill "#FFFFFF" 4930 fill "#FFFFFF"
1734 fontSize 16 4931 fontSize 16
@@ -1740,12 +4937,6 @@ graph
1740 LabelGraphics 4937 LabelGraphics
1741 [ 4938 [
1742 text " 4939 text "
1743 EClassifier class
1744 EDataType class
1745 EModelElement class
1746 ENamedElement class
1747 EModelElement class UndefinedPart
1748 ENamedElement class UndefinedPart
1749 " 4940 "
1750 fontSize 14 4941 fontSize 14
1751 fontName "Consolas" 4942 fontName "Consolas"
@@ -1760,8 +4951,512 @@ graph
1760 id 15 4951 id 15
1761 graphics 4952 graphics
1762 [ 4953 [
4954 w 103.4
4955 h 26
4956 type "rectangle"
4957 fill "#FFFFFF"
4958 fill2 "#FFFFFF"
4959 outline "#000000"
4960 ]
4961 LabelGraphics
4962 [
4963 text "New Objects"
4964 outline "#000000"
4965 fill "#FFFFFF"
4966 fontSize 16
4967 fontName "Monospace"
4968 autoSizePolicy "node_width"
4969 anchor "t"
4970 borderDistance 0.0
4971 ]
4972 LabelGraphics
4973 [
4974 text "
4975 "
4976 fontSize 14
4977 fontName "Consolas"
4978 alignment "left"
4979 anchor "tl"
4980 borderDistance 6
4981 ]
4982 ]
4983 edge
4984 [
4985 source 6
4986 target 7
4987 graphics
4988 [
4989 fill "#000000"
4990 width 3
4991 targetArrow "standard"
4992 ]
4993 LabelGraphics
4994 [
4995 text "interface reference FunctionalElement"
4996 fontSize 14
4997 fontName "Consolas"
4998 configuration "AutoFlippingLabel"
4999 model "six_pos"
5000 position "thead"
5001 ]
5002 ]
5003 edge
5004 [
5005 source 6
5006 target 5
5007 graphics
5008 [
5009 fill "#000000"
5010 targetArrow "standard"
5011 ]
5012 LabelGraphics
5013 [
5014 text "model reference FunctionalElement"
5015 fontSize 14
5016 fontName "Consolas"
5017 configuration "AutoFlippingLabel"
5018 model "six_pos"
5019 position "thead"
5020 ]
5021 ]
5022 edge
5023 [
5024 source 5
5025 target 6
5026 graphics
5027 [
5028 fill "#000000"
5029 width 3
5030 targetArrow "standard"
5031 ]
5032 LabelGraphics
5033 [
5034 text "rootElements reference FunctionalArchitectureModel"
5035 fontSize 14
5036 fontName "Consolas"
5037 configuration "AutoFlippingLabel"
5038 model "six_pos"
5039 position "thead"
5040 ]
5041 ]
5042 edge
5043 [
5044 source 9
5045 target 8
5046 graphics
5047 [
5048 fill "#000000"
5049 targetArrow "standard"
5050 ]
5051 LabelGraphics
5052 [
5053 text "data reference FAMTerminator"
5054 fontSize 14
5055 fontName "Consolas"
5056 configuration "AutoFlippingLabel"
5057 model "six_pos"
5058 position "thead"
5059 ]
5060 ]
5061 edge
5062 [
5063 source 7
5064 target 8
5065 graphics
5066 [
5067 fill "#000000"
5068 width 3
5069 targetArrow "standard"
5070 ]
5071 LabelGraphics
5072 [
5073 text "data reference FunctionalInterface"
5074 fontSize 14
5075 fontName "Consolas"
5076 configuration "AutoFlippingLabel"
5077 model "six_pos"
5078 position "thead"
5079 ]
5080 ]
5081 edge
5082 [
5083 source 7
5084 target 10
5085 graphics
5086 [
5087 fill "#000000"
5088 width 3
5089 targetArrow "standard"
5090 ]
5091 LabelGraphics
5092 [
5093 text "data reference FunctionalInterface"
5094 fontSize 14
5095 fontName "Consolas"
5096 configuration "AutoFlippingLabel"
5097 model "six_pos"
5098 position "thead"
5099 ]
5100 ]
5101 edge
5102 [
5103 source 7
5104 target 11
5105 graphics
5106 [
5107 fill "#000000"
5108 width 3
5109 targetArrow "standard"
5110 ]
5111 LabelGraphics
5112 [
5113 text "data reference FunctionalInterface"
5114 fontSize 14
5115 fontName "Consolas"
5116 configuration "AutoFlippingLabel"
5117 model "six_pos"
5118 position "thead"
5119 ]
5120 ]
5121 edge
5122 [
5123 source 7
5124 target 6
5125 graphics
5126 [
5127 fill "#000000"
5128 targetArrow "standard"
5129 ]
5130 LabelGraphics
5131 [
5132 text "element reference FunctionalInterface"
5133 fontSize 14
5134 fontName "Consolas"
5135 configuration "AutoFlippingLabel"
5136 model "six_pos"
5137 position "thead"
5138 ]
5139 ]
5140 edge
5141 [
5142 source 8
5143 target 9
5144 graphics
5145 [
5146 fill "#000000"
5147 width 3
5148 targetArrow "standard"
5149 ]
5150 LabelGraphics
5151 [
5152 text "terminator reference FunctionalData"
5153 fontSize 14
5154 fontName "Consolas"
5155 configuration "AutoFlippingLabel"
5156 model "six_pos"
5157 position "thead"
5158 ]
5159 ]
5160 edge
5161 [
5162 source 8
5163 target 7
5164 graphics
5165 [
5166 fill "#000000"
5167 targetArrow "standard"
5168 ]
5169 LabelGraphics
5170 [
5171 text "interface reference FunctionalData"
5172 fontSize 14
5173 fontName "Consolas"
5174 configuration "AutoFlippingLabel"
5175 model "six_pos"
5176 position "thead"
5177 ]
5178 ]
5179 edge
5180 [
5181 source 10
5182 target 7
5183 graphics
5184 [
5185 fill "#000000"
5186 targetArrow "standard"
5187 ]
5188 LabelGraphics
5189 [
5190 text "interface reference FunctionalData"
5191 fontSize 14
5192 fontName "Consolas"
5193 configuration "AutoFlippingLabel"
5194 model "six_pos"
5195 position "thead"
5196 ]
5197 ]
5198 edge
5199 [
5200 source 11
5201 target 7
5202 graphics
5203 [
5204 fill "#000000"
5205 targetArrow "standard"
5206 ]
5207 LabelGraphics
5208 [
5209 text "interface reference FunctionalData"
5210 fontSize 14
5211 fontName "Consolas"
5212 configuration "AutoFlippingLabel"
5213 model "six_pos"
5214 position "thead"
5215 ]
5216 ]
5217 edge
5218 [
5219 source 6
5220 target 0
5221 graphics
5222 [
5223 fill "#000000"
5224 targetArrow "standard"
5225 ]
5226 LabelGraphics
5227 [
5228 text "type attribute Function"
5229 fontSize 14
5230 fontName "Consolas"
5231 configuration "AutoFlippingLabel"
5232 model "six_pos"
5233 position "thead"
5234 ]
5235 ]
5236]
5237graph
5238[
5239 node
5240 [
5241 id 0
5242 graphics
5243 [
5244 w 226.60000000000002
5245 h 40
5246 type "rectangle"
5247 fill "#FFFFFF"
5248 fill2 "#FFFFFF"
5249 outline "#000000"
5250 ]
5251 LabelGraphics
5252 [
5253 text "Root literal FunctionType"
5254 outline "#000000"
5255 fill "#FFFFFF"
5256 fontSize 16
5257 fontName "Monospace"
5258 autoSizePolicy "node_width"
5259 anchor "t"
5260 borderDistance 0.0
5261 ]
5262 LabelGraphics
5263 [
5264 text "
5265 FunctionType enum
5266 "
5267 fontSize 14
5268 fontName "Consolas"
5269 alignment "left"
5270 anchor "tl"
5271 borderDistance 6
5272 ]
5273 ]
5274
5275 node
5276 [
5277 id 1
5278 graphics
5279 [
5280 w 297.0
5281 h 40
5282 type "rectangle"
5283 fill "#FFFFFF"
5284 fill2 "#FFFFFF"
5285 outline "#000000"
5286 ]
5287 LabelGraphics
5288 [
5289 text "Intermediate literal FunctionType"
5290 outline "#000000"
5291 fill "#FFFFFF"
5292 fontSize 16
5293 fontName "Monospace"
5294 autoSizePolicy "node_width"
5295 anchor "t"
5296 borderDistance 0.0
5297 ]
5298 LabelGraphics
5299 [
5300 text "
5301 FunctionType enum
5302 "
5303 fontSize 14
5304 fontName "Consolas"
5305 alignment "left"
5306 anchor "tl"
5307 borderDistance 6
5308 ]
5309 ]
5310
5311 node
5312 [
5313 id 2
5314 graphics
5315 [
5316 w 226.60000000000002
5317 h 40
5318 type "rectangle"
5319 fill "#FFFFFF"
5320 fill2 "#FFFFFF"
5321 outline "#000000"
5322 ]
5323 LabelGraphics
5324 [
5325 text "Leaf literal FunctionType"
5326 outline "#000000"
5327 fill "#FFFFFF"
5328 fontSize 16
5329 fontName "Monospace"
5330 autoSizePolicy "node_width"
5331 anchor "t"
5332 borderDistance 0.0
5333 ]
5334 LabelGraphics
5335 [
5336 text "
5337 FunctionType enum
5338 "
5339 fontSize 14
5340 fontName "Consolas"
5341 alignment "left"
5342 anchor "tl"
5343 borderDistance 6
5344 ]
5345 ]
5346
5347 node
5348 [
5349 id 3
5350 graphics
5351 [
5352 w 41.800000000000004
5353 h 26
5354 type "rectangle"
5355 fill "#FFFFFF"
5356 fill2 "#FFFFFF"
5357 outline "#000000"
5358 ]
5359 LabelGraphics
5360 [
5361 text "true"
5362 outline "#000000"
5363 fill "#FFFFFF"
5364 fontSize 16
5365 fontName "Monospace"
5366 autoSizePolicy "node_width"
5367 anchor "t"
5368 borderDistance 0.0
5369 ]
5370 LabelGraphics
5371 [
5372 text "
5373 "
5374 fontSize 14
5375 fontName "Consolas"
5376 alignment "left"
5377 anchor "tl"
5378 borderDistance 6
5379 ]
5380 ]
5381
5382 node
5383 [
5384 id 4
5385 graphics
5386 [
5387 w 50.6
5388 h 26
5389 type "rectangle"
5390 fill "#FFFFFF"
5391 fill2 "#FFFFFF"
5392 outline "#000000"
5393 ]
5394 LabelGraphics
5395 [
5396 text "false"
5397 outline "#000000"
5398 fill "#FFFFFF"
5399 fontSize 16
5400 fontName "Monospace"
5401 autoSizePolicy "node_width"
5402 anchor "t"
5403 borderDistance 0.0
5404 ]
5405 LabelGraphics
5406 [
5407 text "
5408 "
5409 fontSize 14
5410 fontName "Consolas"
5411 alignment "left"
5412 anchor "tl"
5413 borderDistance 6
5414 ]
5415 ]
5416
5417 node
5418 [
5419 id 5
5420 graphics
5421 [
1763 w 269.5 5422 w 269.5
1764 h 68 5423 h 40
5424 type "rectangle"
5425 fill "#FFFFFF"
5426 fill2 "#FFFFFF"
5427 outline "#000000"
5428 ]
5429 LabelGraphics
5430 [
5431 text "null"
5432 outline "#000000"
5433 fill "#FFFFFF"
5434 fontSize 16
5435 fontName "Monospace"
5436 autoSizePolicy "node_width"
5437 anchor "t"
5438 borderDistance 0.0
5439 ]
5440 LabelGraphics
5441 [
5442 text "
5443 FunctionalArchitectureModel class
5444 "
5445 fontSize 14
5446 fontName "Consolas"
5447 alignment "left"
5448 anchor "tl"
5449 borderDistance 6
5450 ]
5451 ]
5452
5453 node
5454 [
5455 id 6
5456 graphics
5457 [
5458 w 192.50000000000003
5459 h 54
1765 type "rectangle" 5460 type "rectangle"
1766 fill "#FFFFFF" 5461 fill "#FFFFFF"
1767 fill2 "#FFFFFF" 5462 fill2 "#FFFFFF"
@@ -1781,9 +5476,8 @@ graph
1781 LabelGraphics 5476 LabelGraphics
1782 [ 5477 [
1783 text " 5478 text "
1784 EAnnotation class 5479 FunctionalElement class
1785 EModelElement class 5480 Function class
1786 EModelElement class UndefinedPart
1787 " 5481 "
1788 fontSize 14 5482 fontSize 14
1789 fontName "Consolas" 5483 fontName "Consolas"
@@ -1795,7 +5489,190 @@ graph
1795 5489
1796 node 5490 node
1797 [ 5491 [
1798 id 16 5492 id 7
5493 graphics
5494 [
5495 w 207.9
5496 h 40
5497 type "rectangle"
5498 fill "#FFFFFF"
5499 fill2 "#FFFFFF"
5500 outline "#000000"
5501 ]
5502 LabelGraphics
5503 [
5504 text "null"
5505 outline "#000000"
5506 fill "#FFFFFF"
5507 fontSize 16
5508 fontName "Monospace"
5509 autoSizePolicy "node_width"
5510 anchor "t"
5511 borderDistance 0.0
5512 ]
5513 LabelGraphics
5514 [
5515 text "
5516 FunctionalInterface class
5517 "
5518 fontSize 14
5519 fontName "Consolas"
5520 alignment "left"
5521 anchor "tl"
5522 borderDistance 6
5523 ]
5524 ]
5525
5526 node
5527 [
5528 id 8
5529 graphics
5530 [
5531 w 184.8
5532 h 54
5533 type "rectangle"
5534 fill "#FFFFFF"
5535 fill2 "#FFFFFF"
5536 outline "#000000"
5537 ]
5538 LabelGraphics
5539 [
5540 text "null"
5541 outline "#000000"
5542 fill "#FFFFFF"
5543 fontSize 16
5544 fontName "Monospace"
5545 autoSizePolicy "node_width"
5546 anchor "t"
5547 borderDistance 0.0
5548 ]
5549 LabelGraphics
5550 [
5551 text "
5552 FunctionalOutput class
5553 FunctionalData class
5554 "
5555 fontSize 14
5556 fontName "Consolas"
5557 alignment "left"
5558 anchor "tl"
5559 borderDistance 6
5560 ]
5561 ]
5562
5563 node
5564 [
5565 id 9
5566 graphics
5567 [
5568 w 184.8
5569 h 54
5570 type "rectangle"
5571 fill "#FFFFFF"
5572 fill2 "#FFFFFF"
5573 outline "#000000"
5574 ]
5575 LabelGraphics
5576 [
5577 text "null"
5578 outline "#000000"
5579 fill "#FFFFFF"
5580 fontSize 16
5581 fontName "Monospace"
5582 autoSizePolicy "node_width"
5583 anchor "t"
5584 borderDistance 0.0
5585 ]
5586 LabelGraphics
5587 [
5588 text "
5589 FunctionalOutput class
5590 FunctionalData class
5591 "
5592 fontSize 14
5593 fontName "Consolas"
5594 alignment "left"
5595 anchor "tl"
5596 borderDistance 6
5597 ]
5598 ]
5599
5600 node
5601 [
5602 id 10
5603 graphics
5604 [
5605 w 177.10000000000002
5606 h 54
5607 type "rectangle"
5608 fill "#FFFFFF"
5609 fill2 "#FFFFFF"
5610 outline "#000000"
5611 ]
5612 LabelGraphics
5613 [
5614 text "null"
5615 outline "#000000"
5616 fill "#FFFFFF"
5617 fontSize 16
5618 fontName "Monospace"
5619 autoSizePolicy "node_width"
5620 anchor "t"
5621 borderDistance 0.0
5622 ]
5623 LabelGraphics
5624 [
5625 text "
5626 FunctionalInput class
5627 FunctionalData class
5628 "
5629 fontSize 14
5630 fontName "Consolas"
5631 alignment "left"
5632 anchor "tl"
5633 borderDistance 6
5634 ]
5635 ]
5636
5637 node
5638 [
5639 id 11
5640 graphics
5641 [
5642 w 177.10000000000002
5643 h 40
5644 type "rectangle"
5645 fill "#FFFFFF"
5646 fill2 "#FFFFFF"
5647 outline "#000000"
5648 ]
5649 LabelGraphics
5650 [
5651 text "null"
5652 outline "#000000"
5653 fill "#FFFFFF"
5654 fontSize 16
5655 fontName "Monospace"
5656 autoSizePolicy "node_width"
5657 anchor "t"
5658 borderDistance 0.0
5659 ]
5660 LabelGraphics
5661 [
5662 text "
5663 InformationLink class
5664 "
5665 fontSize 14
5666 fontName "Consolas"
5667 alignment "left"
5668 anchor "tl"
5669 borderDistance 6
5670 ]
5671 ]
5672
5673 node
5674 [
5675 id 12
1799 graphics 5676 graphics
1800 [ 5677 [
1801 w 112.2 5678 w 112.2
@@ -1830,7 +5707,7 @@ graph
1830 5707
1831 node 5708 node
1832 [ 5709 [
1833 id 17 5710 id 13
1834 graphics 5711 graphics
1835 [ 5712 [
1836 w 85.80000000000001 5713 w 85.80000000000001
@@ -1865,7 +5742,7 @@ graph
1865 5742
1866 node 5743 node
1867 [ 5744 [
1868 id 18 5745 id 14
1869 graphics 5746 graphics
1870 [ 5747 [
1871 w 103.4 5748 w 103.4
@@ -1900,7 +5777,7 @@ graph
1900 5777
1901 node 5778 node
1902 [ 5779 [
1903 id 19 5780 id 15
1904 graphics 5781 graphics
1905 [ 5782 [
1906 w 103.4 5783 w 103.4
@@ -1934,16 +5811,17 @@ graph
1934 ] 5811 ]
1935 edge 5812 edge
1936 [ 5813 [
1937 source 12 5814 source 6
1938 target 0 5815 target 7
1939 graphics 5816 graphics
1940 [ 5817 [
1941 fill "#000000" 5818 fill "#000000"
5819 width 3
1942 targetArrow "standard" 5820 targetArrow "standard"
1943 ] 5821 ]
1944 LabelGraphics 5822 LabelGraphics
1945 [ 5823 [
1946 text "eModelElement reference EAnnotation" 5824 text "interface reference FunctionalElement"
1947 fontSize 14 5825 fontSize 14
1948 fontName "Consolas" 5826 fontName "Consolas"
1949 configuration "AutoFlippingLabel" 5827 configuration "AutoFlippingLabel"
@@ -1953,8 +5831,8 @@ graph
1953 ] 5831 ]
1954 edge 5832 edge
1955 [ 5833 [
1956 source 15 5834 source 6
1957 target 0 5835 target 5
1958 graphics 5836 graphics
1959 [ 5837 [
1960 fill "#000000" 5838 fill "#000000"
@@ -1962,7 +5840,27 @@ graph
1962 ] 5840 ]
1963 LabelGraphics 5841 LabelGraphics
1964 [ 5842 [
1965 text "eModelElement reference EAnnotation" 5843 text "model reference FunctionalElement"
5844 fontSize 14
5845 fontName "Consolas"
5846 configuration "AutoFlippingLabel"
5847 model "six_pos"
5848 position "thead"
5849 ]
5850 ]
5851 edge
5852 [
5853 source 5
5854 target 6
5855 graphics
5856 [
5857 fill "#000000"
5858 width 3
5859 targetArrow "standard"
5860 ]
5861 LabelGraphics
5862 [
5863 text "rootElements reference FunctionalArchitectureModel"
1966 fontSize 14 5864 fontSize 14
1967 fontName "Consolas" 5865 fontName "Consolas"
1968 configuration "AutoFlippingLabel" 5866 configuration "AutoFlippingLabel"
@@ -1973,7 +5871,7 @@ graph
1973 edge 5871 edge
1974 [ 5872 [
1975 source 11 5873 source 11
1976 target 0 5874 target 8
1977 graphics 5875 graphics
1978 [ 5876 [
1979 fill "#000000" 5877 fill "#000000"
@@ -1981,7 +5879,7 @@ graph
1981 ] 5879 ]
1982 LabelGraphics 5880 LabelGraphics
1983 [ 5881 [
1984 text "ePackage reference EClassifier" 5882 text "from reference InformationLink"
1985 fontSize 14 5883 fontSize 14
1986 fontName "Consolas" 5884 fontName "Consolas"
1987 configuration "AutoFlippingLabel" 5885 configuration "AutoFlippingLabel"
@@ -1991,8 +5889,8 @@ graph
1991 ] 5889 ]
1992 edge 5890 edge
1993 [ 5891 [
1994 source 13 5892 source 11
1995 target 0 5893 target 10
1996 graphics 5894 graphics
1997 [ 5895 [
1998 fill "#000000" 5896 fill "#000000"
@@ -2000,7 +5898,7 @@ graph
2000 ] 5898 ]
2001 LabelGraphics 5899 LabelGraphics
2002 [ 5900 [
2003 text "ePackage reference EClassifier" 5901 text "to reference InformationLink"
2004 fontSize 14 5902 fontSize 14
2005 fontName "Consolas" 5903 fontName "Consolas"
2006 configuration "AutoFlippingLabel" 5904 configuration "AutoFlippingLabel"
@@ -2010,16 +5908,17 @@ graph
2010 ] 5908 ]
2011 edge 5909 edge
2012 [ 5910 [
2013 source 14 5911 source 7
2014 target 0 5912 target 8
2015 graphics 5913 graphics
2016 [ 5914 [
2017 fill "#000000" 5915 fill "#000000"
5916 width 3
2018 targetArrow "standard" 5917 targetArrow "standard"
2019 ] 5918 ]
2020 LabelGraphics 5919 LabelGraphics
2021 [ 5920 [
2022 text "ePackage reference EClassifier" 5921 text "data reference FunctionalInterface"
2023 fontSize 14 5922 fontSize 14
2024 fontName "Consolas" 5923 fontName "Consolas"
2025 configuration "AutoFlippingLabel" 5924 configuration "AutoFlippingLabel"
@@ -2029,8 +5928,8 @@ graph
2029 ] 5928 ]
2030 edge 5929 edge
2031 [ 5930 [
2032 source 0 5931 source 7
2033 target 12 5932 target 9
2034 graphics 5933 graphics
2035 [ 5934 [
2036 fill "#000000" 5935 fill "#000000"
@@ -2039,7 +5938,7 @@ graph
2039 ] 5938 ]
2040 LabelGraphics 5939 LabelGraphics
2041 [ 5940 [
2042 text "eAnnotations reference EModelElement" 5941 text "data reference FunctionalInterface"
2043 fontSize 14 5942 fontSize 14
2044 fontName "Consolas" 5943 fontName "Consolas"
2045 configuration "AutoFlippingLabel" 5944 configuration "AutoFlippingLabel"
@@ -2049,8 +5948,8 @@ graph
2049 ] 5948 ]
2050 edge 5949 edge
2051 [ 5950 [
2052 source 0 5951 source 7
2053 target 15 5952 target 10
2054 graphics 5953 graphics
2055 [ 5954 [
2056 fill "#000000" 5955 fill "#000000"
@@ -2059,7 +5958,7 @@ graph
2059 ] 5958 ]
2060 LabelGraphics 5959 LabelGraphics
2061 [ 5960 [
2062 text "eAnnotations reference EModelElement" 5961 text "data reference FunctionalInterface"
2063 fontSize 14 5962 fontSize 14
2064 fontName "Consolas" 5963 fontName "Consolas"
2065 configuration "AutoFlippingLabel" 5964 configuration "AutoFlippingLabel"
@@ -2069,17 +5968,35 @@ graph
2069 ] 5968 ]
2070 edge 5969 edge
2071 [ 5970 [
2072 source 0 5971 source 7
5972 target 6
5973 graphics
5974 [
5975 fill "#000000"
5976 targetArrow "standard"
5977 ]
5978 LabelGraphics
5979 [
5980 text "element reference FunctionalInterface"
5981 fontSize 14
5982 fontName "Consolas"
5983 configuration "AutoFlippingLabel"
5984 model "six_pos"
5985 position "thead"
5986 ]
5987 ]
5988 edge
5989 [
5990 source 10
2073 target 11 5991 target 11
2074 graphics 5992 graphics
2075 [ 5993 [
2076 fill "#000000" 5994 fill "#000000"
2077 width 3
2078 targetArrow "standard" 5995 targetArrow "standard"
2079 ] 5996 ]
2080 LabelGraphics 5997 LabelGraphics
2081 [ 5998 [
2082 text "eClassifiers reference EPackage" 5999 text "IncomingLinks reference FunctionalInput"
2083 fontSize 14 6000 fontSize 14
2084 fontName "Consolas" 6001 fontName "Consolas"
2085 configuration "AutoFlippingLabel" 6002 configuration "AutoFlippingLabel"
@@ -2089,8 +6006,8 @@ graph
2089 ] 6006 ]
2090 edge 6007 edge
2091 [ 6008 [
2092 source 0 6009 source 8
2093 target 13 6010 target 11
2094 graphics 6011 graphics
2095 [ 6012 [
2096 fill "#000000" 6013 fill "#000000"
@@ -2099,7 +6016,26 @@ graph
2099 ] 6016 ]
2100 LabelGraphics 6017 LabelGraphics
2101 [ 6018 [
2102 text "eClassifiers reference EPackage" 6019 text "outgoingLinks reference FunctionalOutput"
6020 fontSize 14
6021 fontName "Consolas"
6022 configuration "AutoFlippingLabel"
6023 model "six_pos"
6024 position "thead"
6025 ]
6026 ]
6027 edge
6028 [
6029 source 8
6030 target 7
6031 graphics
6032 [
6033 fill "#000000"
6034 targetArrow "standard"
6035 ]
6036 LabelGraphics
6037 [
6038 text "interface reference FunctionalData"
2103 fontSize 14 6039 fontSize 14
2104 fontName "Consolas" 6040 fontName "Consolas"
2105 configuration "AutoFlippingLabel" 6041 configuration "AutoFlippingLabel"
@@ -2109,8 +6045,661 @@ graph
2109 ] 6045 ]
2110 edge 6046 edge
2111 [ 6047 [
2112 source 0 6048 source 9
2113 target 14 6049 target 7
6050 graphics
6051 [
6052 fill "#000000"
6053 targetArrow "standard"
6054 ]
6055 LabelGraphics
6056 [
6057 text "interface reference FunctionalData"
6058 fontSize 14
6059 fontName "Consolas"
6060 configuration "AutoFlippingLabel"
6061 model "six_pos"
6062 position "thead"
6063 ]
6064 ]
6065 edge
6066 [
6067 source 10
6068 target 7
6069 graphics
6070 [
6071 fill "#000000"
6072 targetArrow "standard"
6073 ]
6074 LabelGraphics
6075 [
6076 text "interface reference FunctionalData"
6077 fontSize 14
6078 fontName "Consolas"
6079 configuration "AutoFlippingLabel"
6080 model "six_pos"
6081 position "thead"
6082 ]
6083 ]
6084 edge
6085 [
6086 source 6
6087 target 0
6088 graphics
6089 [
6090 fill "#000000"
6091 targetArrow "standard"
6092 ]
6093 LabelGraphics
6094 [
6095 text "type attribute Function"
6096 fontSize 14
6097 fontName "Consolas"
6098 configuration "AutoFlippingLabel"
6099 model "six_pos"
6100 position "thead"
6101 ]
6102 ]
6103]
6104graph
6105[
6106 node
6107 [
6108 id 0
6109 graphics
6110 [
6111 w 226.60000000000002
6112 h 40
6113 type "rectangle"
6114 fill "#FFFFFF"
6115 fill2 "#FFFFFF"
6116 outline "#000000"
6117 ]
6118 LabelGraphics
6119 [
6120 text "Root literal FunctionType"
6121 outline "#000000"
6122 fill "#FFFFFF"
6123 fontSize 16
6124 fontName "Monospace"
6125 autoSizePolicy "node_width"
6126 anchor "t"
6127 borderDistance 0.0
6128 ]
6129 LabelGraphics
6130 [
6131 text "
6132 FunctionType enum
6133 "
6134 fontSize 14
6135 fontName "Consolas"
6136 alignment "left"
6137 anchor "tl"
6138 borderDistance 6
6139 ]
6140 ]
6141
6142 node
6143 [
6144 id 1
6145 graphics
6146 [
6147 w 297.0
6148 h 40
6149 type "rectangle"
6150 fill "#FFFFFF"
6151 fill2 "#FFFFFF"
6152 outline "#000000"
6153 ]
6154 LabelGraphics
6155 [
6156 text "Intermediate literal FunctionType"
6157 outline "#000000"
6158 fill "#FFFFFF"
6159 fontSize 16
6160 fontName "Monospace"
6161 autoSizePolicy "node_width"
6162 anchor "t"
6163 borderDistance 0.0
6164 ]
6165 LabelGraphics
6166 [
6167 text "
6168 FunctionType enum
6169 "
6170 fontSize 14
6171 fontName "Consolas"
6172 alignment "left"
6173 anchor "tl"
6174 borderDistance 6
6175 ]
6176 ]
6177
6178 node
6179 [
6180 id 2
6181 graphics
6182 [
6183 w 226.60000000000002
6184 h 40
6185 type "rectangle"
6186 fill "#FFFFFF"
6187 fill2 "#FFFFFF"
6188 outline "#000000"
6189 ]
6190 LabelGraphics
6191 [
6192 text "Leaf literal FunctionType"
6193 outline "#000000"
6194 fill "#FFFFFF"
6195 fontSize 16
6196 fontName "Monospace"
6197 autoSizePolicy "node_width"
6198 anchor "t"
6199 borderDistance 0.0
6200 ]
6201 LabelGraphics
6202 [
6203 text "
6204 FunctionType enum
6205 "
6206 fontSize 14
6207 fontName "Consolas"
6208 alignment "left"
6209 anchor "tl"
6210 borderDistance 6
6211 ]
6212 ]
6213
6214 node
6215 [
6216 id 3
6217 graphics
6218 [
6219 w 41.800000000000004
6220 h 26
6221 type "rectangle"
6222 fill "#FFFFFF"
6223 fill2 "#FFFFFF"
6224 outline "#000000"
6225 ]
6226 LabelGraphics
6227 [
6228 text "true"
6229 outline "#000000"
6230 fill "#FFFFFF"
6231 fontSize 16
6232 fontName "Monospace"
6233 autoSizePolicy "node_width"
6234 anchor "t"
6235 borderDistance 0.0
6236 ]
6237 LabelGraphics
6238 [
6239 text "
6240 "
6241 fontSize 14
6242 fontName "Consolas"
6243 alignment "left"
6244 anchor "tl"
6245 borderDistance 6
6246 ]
6247 ]
6248
6249 node
6250 [
6251 id 4
6252 graphics
6253 [
6254 w 50.6
6255 h 26
6256 type "rectangle"
6257 fill "#FFFFFF"
6258 fill2 "#FFFFFF"
6259 outline "#000000"
6260 ]
6261 LabelGraphics
6262 [
6263 text "false"
6264 outline "#000000"
6265 fill "#FFFFFF"
6266 fontSize 16
6267 fontName "Monospace"
6268 autoSizePolicy "node_width"
6269 anchor "t"
6270 borderDistance 0.0
6271 ]
6272 LabelGraphics
6273 [
6274 text "
6275 "
6276 fontSize 14
6277 fontName "Consolas"
6278 alignment "left"
6279 anchor "tl"
6280 borderDistance 6
6281 ]
6282 ]
6283
6284 node
6285 [
6286 id 5
6287 graphics
6288 [
6289 w 207.9
6290 h 40
6291 type "rectangle"
6292 fill "#FFFFFF"
6293 fill2 "#FFFFFF"
6294 outline "#000000"
6295 ]
6296 LabelGraphics
6297 [
6298 text "null"
6299 outline "#000000"
6300 fill "#FFFFFF"
6301 fontSize 16
6302 fontName "Monospace"
6303 autoSizePolicy "node_width"
6304 anchor "t"
6305 borderDistance 0.0
6306 ]
6307 LabelGraphics
6308 [
6309 text "
6310 FunctionalInterface class
6311 "
6312 fontSize 14
6313 fontName "Consolas"
6314 alignment "left"
6315 anchor "tl"
6316 borderDistance 6
6317 ]
6318 ]
6319
6320 node
6321 [
6322 id 6
6323 graphics
6324 [
6325 w 177.10000000000002
6326 h 54
6327 type "rectangle"
6328 fill "#FFFFFF"
6329 fill2 "#FFFFFF"
6330 outline "#000000"
6331 ]
6332 LabelGraphics
6333 [
6334 text "null"
6335 outline "#000000"
6336 fill "#FFFFFF"
6337 fontSize 16
6338 fontName "Monospace"
6339 autoSizePolicy "node_width"
6340 anchor "t"
6341 borderDistance 0.0
6342 ]
6343 LabelGraphics
6344 [
6345 text "
6346 FunctionalInput class
6347 FunctionalData class
6348 "
6349 fontSize 14
6350 fontName "Consolas"
6351 alignment "left"
6352 anchor "tl"
6353 borderDistance 6
6354 ]
6355 ]
6356
6357 node
6358 [
6359 id 7
6360 graphics
6361 [
6362 w 184.8
6363 h 54
6364 type "rectangle"
6365 fill "#FFFFFF"
6366 fill2 "#FFFFFF"
6367 outline "#000000"
6368 ]
6369 LabelGraphics
6370 [
6371 text "null"
6372 outline "#000000"
6373 fill "#FFFFFF"
6374 fontSize 16
6375 fontName "Monospace"
6376 autoSizePolicy "node_width"
6377 anchor "t"
6378 borderDistance 0.0
6379 ]
6380 LabelGraphics
6381 [
6382 text "
6383 FunctionalOutput class
6384 FunctionalData class
6385 "
6386 fontSize 14
6387 fontName "Consolas"
6388 alignment "left"
6389 anchor "tl"
6390 borderDistance 6
6391 ]
6392 ]
6393
6394 node
6395 [
6396 id 8
6397 graphics
6398 [
6399 w 161.70000000000002
6400 h 40
6401 type "rectangle"
6402 fill "#FFFFFF"
6403 fill2 "#FFFFFF"
6404 outline "#000000"
6405 ]
6406 LabelGraphics
6407 [
6408 text "null"
6409 outline "#000000"
6410 fill "#FFFFFF"
6411 fontSize 16
6412 fontName "Monospace"
6413 autoSizePolicy "node_width"
6414 anchor "t"
6415 borderDistance 0.0
6416 ]
6417 LabelGraphics
6418 [
6419 text "
6420 FAMTerminator class
6421 "
6422 fontSize 14
6423 fontName "Consolas"
6424 alignment "left"
6425 anchor "tl"
6426 borderDistance 6
6427 ]
6428 ]
6429
6430 node
6431 [
6432 id 9
6433 graphics
6434 [
6435 w 177.10000000000002
6436 h 54
6437 type "rectangle"
6438 fill "#FFFFFF"
6439 fill2 "#FFFFFF"
6440 outline "#000000"
6441 ]
6442 LabelGraphics
6443 [
6444 text "null"
6445 outline "#000000"
6446 fill "#FFFFFF"
6447 fontSize 16
6448 fontName "Monospace"
6449 autoSizePolicy "node_width"
6450 anchor "t"
6451 borderDistance 0.0
6452 ]
6453 LabelGraphics
6454 [
6455 text "
6456 FunctionalInput class
6457 FunctionalData class
6458 "
6459 fontSize 14
6460 fontName "Consolas"
6461 alignment "left"
6462 anchor "tl"
6463 borderDistance 6
6464 ]
6465 ]
6466
6467 node
6468 [
6469 id 10
6470 graphics
6471 [
6472 w 177.10000000000002
6473 h 54
6474 type "rectangle"
6475 fill "#FFFFFF"
6476 fill2 "#FFFFFF"
6477 outline "#000000"
6478 ]
6479 LabelGraphics
6480 [
6481 text "null"
6482 outline "#000000"
6483 fill "#FFFFFF"
6484 fontSize 16
6485 fontName "Monospace"
6486 autoSizePolicy "node_width"
6487 anchor "t"
6488 borderDistance 0.0
6489 ]
6490 LabelGraphics
6491 [
6492 text "
6493 FunctionalInput class
6494 FunctionalData class
6495 "
6496 fontSize 14
6497 fontName "Consolas"
6498 alignment "left"
6499 anchor "tl"
6500 borderDistance 6
6501 ]
6502 ]
6503
6504 node
6505 [
6506 id 11
6507 graphics
6508 [
6509 w 184.8
6510 h 54
6511 type "rectangle"
6512 fill "#FFFFFF"
6513 fill2 "#FFFFFF"
6514 outline "#000000"
6515 ]
6516 LabelGraphics
6517 [
6518 text "null"
6519 outline "#000000"
6520 fill "#FFFFFF"
6521 fontSize 16
6522 fontName "Monospace"
6523 autoSizePolicy "node_width"
6524 anchor "t"
6525 borderDistance 0.0
6526 ]
6527 LabelGraphics
6528 [
6529 text "
6530 FunctionalOutput class
6531 FunctionalData class
6532 "
6533 fontSize 14
6534 fontName "Consolas"
6535 alignment "left"
6536 anchor "tl"
6537 borderDistance 6
6538 ]
6539 ]
6540
6541 node
6542 [
6543 id 12
6544 graphics
6545 [
6546 w 112.2
6547 h 26
6548 type "rectangle"
6549 fill "#FFFFFF"
6550 fill2 "#FFFFFF"
6551 outline "#000000"
6552 ]
6553 LabelGraphics
6554 [
6555 text "New Integers"
6556 outline "#000000"
6557 fill "#FFFFFF"
6558 fontSize 16
6559 fontName "Monospace"
6560 autoSizePolicy "node_width"
6561 anchor "t"
6562 borderDistance 0.0
6563 ]
6564 LabelGraphics
6565 [
6566 text "
6567 "
6568 fontSize 14
6569 fontName "Consolas"
6570 alignment "left"
6571 anchor "tl"
6572 borderDistance 6
6573 ]
6574 ]
6575
6576 node
6577 [
6578 id 13
6579 graphics
6580 [
6581 w 85.80000000000001
6582 h 26
6583 type "rectangle"
6584 fill "#FFFFFF"
6585 fill2 "#FFFFFF"
6586 outline "#000000"
6587 ]
6588 LabelGraphics
6589 [
6590 text "New Reals"
6591 outline "#000000"
6592 fill "#FFFFFF"
6593 fontSize 16
6594 fontName "Monospace"
6595 autoSizePolicy "node_width"
6596 anchor "t"
6597 borderDistance 0.0
6598 ]
6599 LabelGraphics
6600 [
6601 text "
6602 "
6603 fontSize 14
6604 fontName "Consolas"
6605 alignment "left"
6606 anchor "tl"
6607 borderDistance 6
6608 ]
6609 ]
6610
6611 node
6612 [
6613 id 14
6614 graphics
6615 [
6616 w 103.4
6617 h 26
6618 type "rectangle"
6619 fill "#FFFFFF"
6620 fill2 "#FFFFFF"
6621 outline "#000000"
6622 ]
6623 LabelGraphics
6624 [
6625 text "New Strings"
6626 outline "#000000"
6627 fill "#FFFFFF"
6628 fontSize 16
6629 fontName "Monospace"
6630 autoSizePolicy "node_width"
6631 anchor "t"
6632 borderDistance 0.0
6633 ]
6634 LabelGraphics
6635 [
6636 text "
6637 "
6638 fontSize 14
6639 fontName "Consolas"
6640 alignment "left"
6641 anchor "tl"
6642 borderDistance 6
6643 ]
6644 ]
6645
6646 node
6647 [
6648 id 15
6649 graphics
6650 [
6651 w 103.4
6652 h 26
6653 type "rectangle"
6654 fill "#FFFFFF"
6655 fill2 "#FFFFFF"
6656 outline "#000000"
6657 ]
6658 LabelGraphics
6659 [
6660 text "New Objects"
6661 outline "#000000"
6662 fill "#FFFFFF"
6663 fontSize 16
6664 fontName "Monospace"
6665 autoSizePolicy "node_width"
6666 anchor "t"
6667 borderDistance 0.0
6668 ]
6669 LabelGraphics
6670 [
6671 text "
6672 "
6673 fontSize 14
6674 fontName "Consolas"
6675 alignment "left"
6676 anchor "tl"
6677 borderDistance 6
6678 ]
6679 ]
6680 edge
6681 [
6682 source 8
6683 target 7
6684 graphics
6685 [
6686 fill "#000000"
6687 targetArrow "standard"
6688 ]
6689 LabelGraphics
6690 [
6691 text "data reference FAMTerminator"
6692 fontSize 14
6693 fontName "Consolas"
6694 configuration "AutoFlippingLabel"
6695 model "six_pos"
6696 position "thead"
6697 ]
6698 ]
6699 edge
6700 [
6701 source 5
6702 target 6
2114 graphics 6703 graphics
2115 [ 6704 [
2116 fill "#000000" 6705 fill "#000000"
@@ -2119,7 +6708,7 @@ graph
2119 ] 6708 ]
2120 LabelGraphics 6709 LabelGraphics
2121 [ 6710 [
2122 text "eClassifiers reference EPackage" 6711 text "data reference FunctionalInterface"
2123 fontSize 14 6712 fontSize 14
2124 fontName "Consolas" 6713 fontName "Consolas"
2125 configuration "AutoFlippingLabel" 6714 configuration "AutoFlippingLabel"
@@ -2129,16 +6718,17 @@ graph
2129 ] 6718 ]
2130 edge 6719 edge
2131 [ 6720 [
2132 source 12 6721 source 5
2133 target 7 6722 target 7
2134 graphics 6723 graphics
2135 [ 6724 [
2136 fill "#000000" 6725 fill "#000000"
6726 width 3
2137 targetArrow "standard" 6727 targetArrow "standard"
2138 ] 6728 ]
2139 LabelGraphics 6729 LabelGraphics
2140 [ 6730 [
2141 text "source attribute EAnnotation" 6731 text "data reference FunctionalInterface"
2142 fontSize 14 6732 fontSize 14
2143 fontName "Consolas" 6733 fontName "Consolas"
2144 configuration "AutoFlippingLabel" 6734 configuration "AutoFlippingLabel"
@@ -2148,16 +6738,17 @@ graph
2148 ] 6738 ]
2149 edge 6739 edge
2150 [ 6740 [
2151 source 13 6741 source 5
2152 target 2 6742 target 9
2153 graphics 6743 graphics
2154 [ 6744 [
2155 fill "#000000" 6745 fill "#000000"
6746 width 3
2156 targetArrow "standard" 6747 targetArrow "standard"
2157 ] 6748 ]
2158 LabelGraphics 6749 LabelGraphics
2159 [ 6750 [
2160 text "abstract attribute EClass" 6751 text "data reference FunctionalInterface"
2161 fontSize 14 6752 fontSize 14
2162 fontName "Consolas" 6753 fontName "Consolas"
2163 configuration "AutoFlippingLabel" 6754 configuration "AutoFlippingLabel"
@@ -2167,16 +6758,57 @@ graph
2167 ] 6758 ]
2168 edge 6759 edge
2169 [ 6760 [
2170 source 11 6761 source 5
6762 target 10
6763 graphics
6764 [
6765 fill "#000000"
6766 width 3
6767 targetArrow "standard"
6768 ]
6769 LabelGraphics
6770 [
6771 text "data reference FunctionalInterface"
6772 fontSize 14
6773 fontName "Consolas"
6774 configuration "AutoFlippingLabel"
6775 model "six_pos"
6776 position "thead"
6777 ]
6778 ]
6779 edge
6780 [
6781 source 5
6782 target 11
6783 graphics
6784 [
6785 fill "#000000"
6786 width 3
6787 targetArrow "standard"
6788 ]
6789 LabelGraphics
6790 [
6791 text "data reference FunctionalInterface"
6792 fontSize 14
6793 fontName "Consolas"
6794 configuration "AutoFlippingLabel"
6795 model "six_pos"
6796 position "thead"
6797 ]
6798 ]
6799 edge
6800 [
6801 source 7
2171 target 8 6802 target 8
2172 graphics 6803 graphics
2173 [ 6804 [
2174 fill "#000000" 6805 fill "#000000"
6806 width 3
2175 targetArrow "standard" 6807 targetArrow "standard"
2176 ] 6808 ]
2177 LabelGraphics 6809 LabelGraphics
2178 [ 6810 [
2179 text "instanceClassName attribute EClassifier" 6811 text "terminator reference FunctionalData"
2180 fontSize 14 6812 fontSize 14
2181 fontName "Consolas" 6813 fontName "Consolas"
2182 configuration "AutoFlippingLabel" 6814 configuration "AutoFlippingLabel"
@@ -2186,8 +6818,8 @@ graph
2186 ] 6818 ]
2187 edge 6819 edge
2188 [ 6820 [
2189 source 14 6821 source 6
2190 target 10 6822 target 5
2191 graphics 6823 graphics
2192 [ 6824 [
2193 fill "#000000" 6825 fill "#000000"
@@ -2195,7 +6827,7 @@ graph
2195 ] 6827 ]
2196 LabelGraphics 6828 LabelGraphics
2197 [ 6829 [
2198 text "instanceClassName attribute EClassifier" 6830 text "interface reference FunctionalData"
2199 fontSize 14 6831 fontSize 14
2200 fontName "Consolas" 6832 fontName "Consolas"
2201 configuration "AutoFlippingLabel" 6833 configuration "AutoFlippingLabel"
@@ -2205,8 +6837,8 @@ graph
2205 ] 6837 ]
2206 edge 6838 edge
2207 [ 6839 [
2208 source 11 6840 source 7
2209 target 9 6841 target 5
2210 graphics 6842 graphics
2211 [ 6843 [
2212 fill "#000000" 6844 fill "#000000"
@@ -2214,7 +6846,7 @@ graph
2214 ] 6846 ]
2215 LabelGraphics 6847 LabelGraphics
2216 [ 6848 [
2217 text "instanceTypeName attribute EClassifier" 6849 text "interface reference FunctionalData"
2218 fontSize 14 6850 fontSize 14
2219 fontName "Consolas" 6851 fontName "Consolas"
2220 configuration "AutoFlippingLabel" 6852 configuration "AutoFlippingLabel"
@@ -2224,8 +6856,8 @@ graph
2224 ] 6856 ]
2225 edge 6857 edge
2226 [ 6858 [
2227 source 11 6859 source 9
2228 target 2 6860 target 5
2229 graphics 6861 graphics
2230 [ 6862 [
2231 fill "#000000" 6863 fill "#000000"
@@ -2233,7 +6865,7 @@ graph
2233 ] 6865 ]
2234 LabelGraphics 6866 LabelGraphics
2235 [ 6867 [
2236 text "serializable attribute EDataType" 6868 text "interface reference FunctionalData"
2237 fontSize 14 6869 fontSize 14
2238 fontName "Consolas" 6870 fontName "Consolas"
2239 configuration "AutoFlippingLabel" 6871 configuration "AutoFlippingLabel"
@@ -2243,8 +6875,8 @@ graph
2243 ] 6875 ]
2244 edge 6876 edge
2245 [ 6877 [
2246 source 0 6878 source 10
2247 target 10 6879 target 5
2248 graphics 6880 graphics
2249 [ 6881 [
2250 fill "#000000" 6882 fill "#000000"
@@ -2252,7 +6884,7 @@ graph
2252 ] 6884 ]
2253 LabelGraphics 6885 LabelGraphics
2254 [ 6886 [
2255 text "name attribute ENamedElement" 6887 text "interface reference FunctionalData"
2256 fontSize 14 6888 fontSize 14
2257 fontName "Consolas" 6889 fontName "Consolas"
2258 configuration "AutoFlippingLabel" 6890 configuration "AutoFlippingLabel"
@@ -2263,15 +6895,653 @@ graph
2263 edge 6895 edge
2264 [ 6896 [
2265 source 11 6897 source 11
6898 target 5
6899 graphics
6900 [
6901 fill "#000000"
6902 targetArrow "standard"
6903 ]
6904 LabelGraphics
6905 [
6906 text "interface reference FunctionalData"
6907 fontSize 14
6908 fontName "Consolas"
6909 configuration "AutoFlippingLabel"
6910 model "six_pos"
6911 position "thead"
6912 ]
6913 ]
6914]
6915graph
6916[
6917 node
6918 [
6919 id 0
6920 graphics
6921 [
6922 w 226.60000000000002
6923 h 40
6924 type "rectangle"
6925 fill "#FFFFFF"
6926 fill2 "#FFFFFF"
6927 outline "#000000"
6928 ]
6929 LabelGraphics
6930 [
6931 text "Root literal FunctionType"
6932 outline "#000000"
6933 fill "#FFFFFF"
6934 fontSize 16
6935 fontName "Monospace"
6936 autoSizePolicy "node_width"
6937 anchor "t"
6938 borderDistance 0.0
6939 ]
6940 LabelGraphics
6941 [
6942 text "
6943 FunctionType enum
6944 "
6945 fontSize 14
6946 fontName "Consolas"
6947 alignment "left"
6948 anchor "tl"
6949 borderDistance 6
6950 ]
6951 ]
6952
6953 node
6954 [
6955 id 1
6956 graphics
6957 [
6958 w 297.0
6959 h 40
6960 type "rectangle"
6961 fill "#FFFFFF"
6962 fill2 "#FFFFFF"
6963 outline "#000000"
6964 ]
6965 LabelGraphics
6966 [
6967 text "Intermediate literal FunctionType"
6968 outline "#000000"
6969 fill "#FFFFFF"
6970 fontSize 16
6971 fontName "Monospace"
6972 autoSizePolicy "node_width"
6973 anchor "t"
6974 borderDistance 0.0
6975 ]
6976 LabelGraphics
6977 [
6978 text "
6979 FunctionType enum
6980 "
6981 fontSize 14
6982 fontName "Consolas"
6983 alignment "left"
6984 anchor "tl"
6985 borderDistance 6
6986 ]
6987 ]
6988
6989 node
6990 [
6991 id 2
6992 graphics
6993 [
6994 w 226.60000000000002
6995 h 40
6996 type "rectangle"
6997 fill "#FFFFFF"
6998 fill2 "#FFFFFF"
6999 outline "#000000"
7000 ]
7001 LabelGraphics
7002 [
7003 text "Leaf literal FunctionType"
7004 outline "#000000"
7005 fill "#FFFFFF"
7006 fontSize 16
7007 fontName "Monospace"
7008 autoSizePolicy "node_width"
7009 anchor "t"
7010 borderDistance 0.0
7011 ]
7012 LabelGraphics
7013 [
7014 text "
7015 FunctionType enum
7016 "
7017 fontSize 14
7018 fontName "Consolas"
7019 alignment "left"
7020 anchor "tl"
7021 borderDistance 6
7022 ]
7023 ]
7024
7025 node
7026 [
7027 id 3
7028 graphics
7029 [
7030 w 41.800000000000004
7031 h 26
7032 type "rectangle"
7033 fill "#FFFFFF"
7034 fill2 "#FFFFFF"
7035 outline "#000000"
7036 ]
7037 LabelGraphics
7038 [
7039 text "true"
7040 outline "#000000"
7041 fill "#FFFFFF"
7042 fontSize 16
7043 fontName "Monospace"
7044 autoSizePolicy "node_width"
7045 anchor "t"
7046 borderDistance 0.0
7047 ]
7048 LabelGraphics
7049 [
7050 text "
7051 "
7052 fontSize 14
7053 fontName "Consolas"
7054 alignment "left"
7055 anchor "tl"
7056 borderDistance 6
7057 ]
7058 ]
7059
7060 node
7061 [
7062 id 4
7063 graphics
7064 [
7065 w 50.6
7066 h 26
7067 type "rectangle"
7068 fill "#FFFFFF"
7069 fill2 "#FFFFFF"
7070 outline "#000000"
7071 ]
7072 LabelGraphics
7073 [
7074 text "false"
7075 outline "#000000"
7076 fill "#FFFFFF"
7077 fontSize 16
7078 fontName "Monospace"
7079 autoSizePolicy "node_width"
7080 anchor "t"
7081 borderDistance 0.0
7082 ]
7083 LabelGraphics
7084 [
7085 text "
7086 "
7087 fontSize 14
7088 fontName "Consolas"
7089 alignment "left"
7090 anchor "tl"
7091 borderDistance 6
7092 ]
7093 ]
7094
7095 node
7096 [
7097 id 5
7098 graphics
7099 [
7100 w 207.9
7101 h 40
7102 type "rectangle"
7103 fill "#FFFFFF"
7104 fill2 "#FFFFFF"
7105 outline "#000000"
7106 ]
7107 LabelGraphics
7108 [
7109 text "null"
7110 outline "#000000"
7111 fill "#FFFFFF"
7112 fontSize 16
7113 fontName "Monospace"
7114 autoSizePolicy "node_width"
7115 anchor "t"
7116 borderDistance 0.0
7117 ]
7118 LabelGraphics
7119 [
7120 text "
7121 FunctionalInterface class
7122 "
7123 fontSize 14
7124 fontName "Consolas"
7125 alignment "left"
7126 anchor "tl"
7127 borderDistance 6
7128 ]
7129 ]
7130
7131 node
7132 [
7133 id 6
7134 graphics
7135 [
7136 w 184.8
7137 h 54
7138 type "rectangle"
7139 fill "#FFFFFF"
7140 fill2 "#FFFFFF"
7141 outline "#000000"
7142 ]
7143 LabelGraphics
7144 [
7145 text "null"
7146 outline "#000000"
7147 fill "#FFFFFF"
7148 fontSize 16
7149 fontName "Monospace"
7150 autoSizePolicy "node_width"
7151 anchor "t"
7152 borderDistance 0.0
7153 ]
7154 LabelGraphics
7155 [
7156 text "
7157 FunctionalOutput class
7158 FunctionalData class
7159 "
7160 fontSize 14
7161 fontName "Consolas"
7162 alignment "left"
7163 anchor "tl"
7164 borderDistance 6
7165 ]
7166 ]
7167
7168 node
7169 [
7170 id 7
7171 graphics
7172 [
7173 w 184.8
7174 h 54
7175 type "rectangle"
7176 fill "#FFFFFF"
7177 fill2 "#FFFFFF"
7178 outline "#000000"
7179 ]
7180 LabelGraphics
7181 [
7182 text "null"
7183 outline "#000000"
7184 fill "#FFFFFF"
7185 fontSize 16
7186 fontName "Monospace"
7187 autoSizePolicy "node_width"
7188 anchor "t"
7189 borderDistance 0.0
7190 ]
7191 LabelGraphics
7192 [
7193 text "
7194 FunctionalOutput class
7195 FunctionalData class
7196 "
7197 fontSize 14
7198 fontName "Consolas"
7199 alignment "left"
7200 anchor "tl"
7201 borderDistance 6
7202 ]
7203 ]
7204
7205 node
7206 [
7207 id 8
7208 graphics
7209 [
7210 w 184.8
7211 h 54
7212 type "rectangle"
7213 fill "#FFFFFF"
7214 fill2 "#FFFFFF"
7215 outline "#000000"
7216 ]
7217 LabelGraphics
7218 [
7219 text "null"
7220 outline "#000000"
7221 fill "#FFFFFF"
7222 fontSize 16
7223 fontName "Monospace"
7224 autoSizePolicy "node_width"
7225 anchor "t"
7226 borderDistance 0.0
7227 ]
7228 LabelGraphics
7229 [
7230 text "
7231 FunctionalOutput class
7232 FunctionalData class
7233 "
7234 fontSize 14
7235 fontName "Consolas"
7236 alignment "left"
7237 anchor "tl"
7238 borderDistance 6
7239 ]
7240 ]
7241
7242 node
7243 [
7244 id 9
7245 graphics
7246 [
7247 w 177.10000000000002
7248 h 54
7249 type "rectangle"
7250 fill "#FFFFFF"
7251 fill2 "#FFFFFF"
7252 outline "#000000"
7253 ]
7254 LabelGraphics
7255 [
7256 text "null"
7257 outline "#000000"
7258 fill "#FFFFFF"
7259 fontSize 16
7260 fontName "Monospace"
7261 autoSizePolicy "node_width"
7262 anchor "t"
7263 borderDistance 0.0
7264 ]
7265 LabelGraphics
7266 [
7267 text "
7268 FunctionalInput class
7269 FunctionalData class
7270 "
7271 fontSize 14
7272 fontName "Consolas"
7273 alignment "left"
7274 anchor "tl"
7275 borderDistance 6
7276 ]
7277 ]
7278
7279 node
7280 [
7281 id 10
7282 graphics
7283 [
7284 w 177.10000000000002
7285 h 54
7286 type "rectangle"
7287 fill "#FFFFFF"
7288 fill2 "#FFFFFF"
7289 outline "#000000"
7290 ]
7291 LabelGraphics
7292 [
7293 text "null"
7294 outline "#000000"
7295 fill "#FFFFFF"
7296 fontSize 16
7297 fontName "Monospace"
7298 autoSizePolicy "node_width"
7299 anchor "t"
7300 borderDistance 0.0
7301 ]
7302 LabelGraphics
7303 [
7304 text "
7305 FunctionalInput class
7306 FunctionalData class
7307 "
7308 fontSize 14
7309 fontName "Consolas"
7310 alignment "left"
7311 anchor "tl"
7312 borderDistance 6
7313 ]
7314 ]
7315
7316 node
7317 [
7318 id 11
7319 graphics
7320 [
7321 w 177.10000000000002
7322 h 54
7323 type "rectangle"
7324 fill "#FFFFFF"
7325 fill2 "#FFFFFF"
7326 outline "#000000"
7327 ]
7328 LabelGraphics
7329 [
7330 text "null"
7331 outline "#000000"
7332 fill "#FFFFFF"
7333 fontSize 16
7334 fontName "Monospace"
7335 autoSizePolicy "node_width"
7336 anchor "t"
7337 borderDistance 0.0
7338 ]
7339 LabelGraphics
7340 [
7341 text "
7342 FunctionalInput class
7343 FunctionalData class
7344 "
7345 fontSize 14
7346 fontName "Consolas"
7347 alignment "left"
7348 anchor "tl"
7349 borderDistance 6
7350 ]
7351 ]
7352
7353 node
7354 [
7355 id 12
7356 graphics
7357 [
7358 w 112.2
7359 h 26
7360 type "rectangle"
7361 fill "#FFFFFF"
7362 fill2 "#FFFFFF"
7363 outline "#000000"
7364 ]
7365 LabelGraphics
7366 [
7367 text "New Integers"
7368 outline "#000000"
7369 fill "#FFFFFF"
7370 fontSize 16
7371 fontName "Monospace"
7372 autoSizePolicy "node_width"
7373 anchor "t"
7374 borderDistance 0.0
7375 ]
7376 LabelGraphics
7377 [
7378 text "
7379 "
7380 fontSize 14
7381 fontName "Consolas"
7382 alignment "left"
7383 anchor "tl"
7384 borderDistance 6
7385 ]
7386 ]
7387
7388 node
7389 [
7390 id 13
7391 graphics
7392 [
7393 w 85.80000000000001
7394 h 26
7395 type "rectangle"
7396 fill "#FFFFFF"
7397 fill2 "#FFFFFF"
7398 outline "#000000"
7399 ]
7400 LabelGraphics
7401 [
7402 text "New Reals"
7403 outline "#000000"
7404 fill "#FFFFFF"
7405 fontSize 16
7406 fontName "Monospace"
7407 autoSizePolicy "node_width"
7408 anchor "t"
7409 borderDistance 0.0
7410 ]
7411 LabelGraphics
7412 [
7413 text "
7414 "
7415 fontSize 14
7416 fontName "Consolas"
7417 alignment "left"
7418 anchor "tl"
7419 borderDistance 6
7420 ]
7421 ]
7422
7423 node
7424 [
7425 id 14
7426 graphics
7427 [
7428 w 103.4
7429 h 26
7430 type "rectangle"
7431 fill "#FFFFFF"
7432 fill2 "#FFFFFF"
7433 outline "#000000"
7434 ]
7435 LabelGraphics
7436 [
7437 text "New Strings"
7438 outline "#000000"
7439 fill "#FFFFFF"
7440 fontSize 16
7441 fontName "Monospace"
7442 autoSizePolicy "node_width"
7443 anchor "t"
7444 borderDistance 0.0
7445 ]
7446 LabelGraphics
7447 [
7448 text "
7449 "
7450 fontSize 14
7451 fontName "Consolas"
7452 alignment "left"
7453 anchor "tl"
7454 borderDistance 6
7455 ]
7456 ]
7457
7458 node
7459 [
7460 id 15
7461 graphics
7462 [
7463 w 103.4
7464 h 26
7465 type "rectangle"
7466 fill "#FFFFFF"
7467 fill2 "#FFFFFF"
7468 outline "#000000"
7469 ]
7470 LabelGraphics
7471 [
7472 text "New Objects"
7473 outline "#000000"
7474 fill "#FFFFFF"
7475 fontSize 16
7476 fontName "Monospace"
7477 autoSizePolicy "node_width"
7478 anchor "t"
7479 borderDistance 0.0
7480 ]
7481 LabelGraphics
7482 [
7483 text "
7484 "
7485 fontSize 14
7486 fontName "Consolas"
7487 alignment "left"
7488 anchor "tl"
7489 borderDistance 6
7490 ]
7491 ]
7492 edge
7493 [
7494 source 5
7495 target 6
7496 graphics
7497 [
7498 fill "#000000"
7499 width 3
7500 targetArrow "standard"
7501 ]
7502 LabelGraphics
7503 [
7504 text "data reference FunctionalInterface"
7505 fontSize 14
7506 fontName "Consolas"
7507 configuration "AutoFlippingLabel"
7508 model "six_pos"
7509 position "thead"
7510 ]
7511 ]
7512 edge
7513 [
7514 source 5
7515 target 7
7516 graphics
7517 [
7518 fill "#000000"
7519 width 3
7520 targetArrow "standard"
7521 ]
7522 LabelGraphics
7523 [
7524 text "data reference FunctionalInterface"
7525 fontSize 14
7526 fontName "Consolas"
7527 configuration "AutoFlippingLabel"
7528 model "six_pos"
7529 position "thead"
7530 ]
7531 ]
7532 edge
7533 [
7534 source 5
2266 target 8 7535 target 8
2267 graphics 7536 graphics
2268 [ 7537 [
2269 fill "#000000" 7538 fill "#000000"
7539 width 3
2270 targetArrow "standard" 7540 targetArrow "standard"
2271 ] 7541 ]
2272 LabelGraphics 7542 LabelGraphics
2273 [ 7543 [
2274 text "name attribute ENamedElement" 7544 text "data reference FunctionalInterface"
2275 fontSize 14 7545 fontSize 14
2276 fontName "Consolas" 7546 fontName "Consolas"
2277 configuration "AutoFlippingLabel" 7547 configuration "AutoFlippingLabel"
@@ -2281,16 +7551,133 @@ graph
2281 ] 7551 ]
2282 edge 7552 edge
2283 [ 7553 [
2284 source 13 7554 source 5
2285 target 9 7555 target 9
2286 graphics 7556 graphics
2287 [ 7557 [
2288 fill "#000000" 7558 fill "#000000"
7559 width 3
7560 targetArrow "standard"
7561 ]
7562 LabelGraphics
7563 [
7564 text "data reference FunctionalInterface"
7565 fontSize 14
7566 fontName "Consolas"
7567 configuration "AutoFlippingLabel"
7568 model "six_pos"
7569 position "thead"
7570 ]
7571 ]
7572 edge
7573 [
7574 source 5
7575 target 10
7576 graphics
7577 [
7578 fill "#000000"
7579 width 3
7580 targetArrow "standard"
7581 ]
7582 LabelGraphics
7583 [
7584 text "data reference FunctionalInterface"
7585 fontSize 14
7586 fontName "Consolas"
7587 configuration "AutoFlippingLabel"
7588 model "six_pos"
7589 position "thead"
7590 ]
7591 ]
7592 edge
7593 [
7594 source 5
7595 target 11
7596 graphics
7597 [
7598 fill "#000000"
7599 width 3
7600 targetArrow "standard"
7601 ]
7602 LabelGraphics
7603 [
7604 text "data reference FunctionalInterface"
7605 fontSize 14
7606 fontName "Consolas"
7607 configuration "AutoFlippingLabel"
7608 model "six_pos"
7609 position "thead"
7610 ]
7611 ]
7612 edge
7613 [
7614 source 6
7615 target 5
7616 graphics
7617 [
7618 fill "#000000"
7619 targetArrow "standard"
7620 ]
7621 LabelGraphics
7622 [
7623 text "interface reference FunctionalData"
7624 fontSize 14
7625 fontName "Consolas"
7626 configuration "AutoFlippingLabel"
7627 model "six_pos"
7628 position "thead"
7629 ]
7630 ]
7631 edge
7632 [
7633 source 7
7634 target 5
7635 graphics
7636 [
7637 fill "#000000"
7638 targetArrow "standard"
7639 ]
7640 LabelGraphics
7641 [
7642 text "interface reference FunctionalData"
7643 fontSize 14
7644 fontName "Consolas"
7645 configuration "AutoFlippingLabel"
7646 model "six_pos"
7647 position "thead"
7648 ]
7649 ]
7650 edge
7651 [
7652 source 8
7653 target 5
7654 graphics
7655 [
7656 fill "#000000"
7657 targetArrow "standard"
7658 ]
7659 LabelGraphics
7660 [
7661 text "interface reference FunctionalData"
7662 fontSize 14
7663 fontName "Consolas"
7664 configuration "AutoFlippingLabel"
7665 model "six_pos"
7666 position "thead"
7667 ]
7668 ]
7669 edge
7670 [
7671 source 9
7672 target 5
7673 graphics
7674 [
7675 fill "#000000"
2289 targetArrow "standard" 7676 targetArrow "standard"
2290 ] 7677 ]
2291 LabelGraphics 7678 LabelGraphics
2292 [ 7679 [
2293 text "name attribute ENamedElement" 7680 text "interface reference FunctionalData"
2294 fontSize 14 7681 fontSize 14
2295 fontName "Consolas" 7682 fontName "Consolas"
2296 configuration "AutoFlippingLabel" 7683 configuration "AutoFlippingLabel"
@@ -2300,16 +7687,731 @@ graph
2300 ] 7687 ]
2301 edge 7688 edge
2302 [ 7689 [
2303 source 14 7690 source 10
7691 target 5
7692 graphics
7693 [
7694 fill "#000000"
7695 targetArrow "standard"
7696 ]
7697 LabelGraphics
7698 [
7699 text "interface reference FunctionalData"
7700 fontSize 14
7701 fontName "Consolas"
7702 configuration "AutoFlippingLabel"
7703 model "six_pos"
7704 position "thead"
7705 ]
7706 ]
7707 edge
7708 [
7709 source 11
7710 target 5
7711 graphics
7712 [
7713 fill "#000000"
7714 targetArrow "standard"
7715 ]
7716 LabelGraphics
7717 [
7718 text "interface reference FunctionalData"
7719 fontSize 14
7720 fontName "Consolas"
7721 configuration "AutoFlippingLabel"
7722 model "six_pos"
7723 position "thead"
7724 ]
7725 ]
7726]
7727graph
7728[
7729 node
7730 [
7731 id 0
7732 graphics
7733 [
7734 w 226.60000000000002
7735 h 40
7736 type "rectangle"
7737 fill "#FFFFFF"
7738 fill2 "#FFFFFF"
7739 outline "#000000"
7740 ]
7741 LabelGraphics
7742 [
7743 text "Root literal FunctionType"
7744 outline "#000000"
7745 fill "#FFFFFF"
7746 fontSize 16
7747 fontName "Monospace"
7748 autoSizePolicy "node_width"
7749 anchor "t"
7750 borderDistance 0.0
7751 ]
7752 LabelGraphics
7753 [
7754 text "
7755 FunctionType enum
7756 "
7757 fontSize 14
7758 fontName "Consolas"
7759 alignment "left"
7760 anchor "tl"
7761 borderDistance 6
7762 ]
7763 ]
7764
7765 node
7766 [
7767 id 1
7768 graphics
7769 [
7770 w 297.0
7771 h 40
7772 type "rectangle"
7773 fill "#FFFFFF"
7774 fill2 "#FFFFFF"
7775 outline "#000000"
7776 ]
7777 LabelGraphics
7778 [
7779 text "Intermediate literal FunctionType"
7780 outline "#000000"
7781 fill "#FFFFFF"
7782 fontSize 16
7783 fontName "Monospace"
7784 autoSizePolicy "node_width"
7785 anchor "t"
7786 borderDistance 0.0
7787 ]
7788 LabelGraphics
7789 [
7790 text "
7791 FunctionType enum
7792 "
7793 fontSize 14
7794 fontName "Consolas"
7795 alignment "left"
7796 anchor "tl"
7797 borderDistance 6
7798 ]
7799 ]
7800
7801 node
7802 [
7803 id 2
7804 graphics
7805 [
7806 w 226.60000000000002
7807 h 40
7808 type "rectangle"
7809 fill "#FFFFFF"
7810 fill2 "#FFFFFF"
7811 outline "#000000"
7812 ]
7813 LabelGraphics
7814 [
7815 text "Leaf literal FunctionType"
7816 outline "#000000"
7817 fill "#FFFFFF"
7818 fontSize 16
7819 fontName "Monospace"
7820 autoSizePolicy "node_width"
7821 anchor "t"
7822 borderDistance 0.0
7823 ]
7824 LabelGraphics
7825 [
7826 text "
7827 FunctionType enum
7828 "
7829 fontSize 14
7830 fontName "Consolas"
7831 alignment "left"
7832 anchor "tl"
7833 borderDistance 6
7834 ]
7835 ]
7836
7837 node
7838 [
7839 id 3
7840 graphics
7841 [
7842 w 41.800000000000004
7843 h 26
7844 type "rectangle"
7845 fill "#FFFFFF"
7846 fill2 "#FFFFFF"
7847 outline "#000000"
7848 ]
7849 LabelGraphics
7850 [
7851 text "true"
7852 outline "#000000"
7853 fill "#FFFFFF"
7854 fontSize 16
7855 fontName "Monospace"
7856 autoSizePolicy "node_width"
7857 anchor "t"
7858 borderDistance 0.0
7859 ]
7860 LabelGraphics
7861 [
7862 text "
7863 "
7864 fontSize 14
7865 fontName "Consolas"
7866 alignment "left"
7867 anchor "tl"
7868 borderDistance 6
7869 ]
7870 ]
7871
7872 node
7873 [
7874 id 4
7875 graphics
7876 [
7877 w 50.6
7878 h 26
7879 type "rectangle"
7880 fill "#FFFFFF"
7881 fill2 "#FFFFFF"
7882 outline "#000000"
7883 ]
7884 LabelGraphics
7885 [
7886 text "false"
7887 outline "#000000"
7888 fill "#FFFFFF"
7889 fontSize 16
7890 fontName "Monospace"
7891 autoSizePolicy "node_width"
7892 anchor "t"
7893 borderDistance 0.0
7894 ]
7895 LabelGraphics
7896 [
7897 text "
7898 "
7899 fontSize 14
7900 fontName "Consolas"
7901 alignment "left"
7902 anchor "tl"
7903 borderDistance 6
7904 ]
7905 ]
7906
7907 node
7908 [
7909 id 5
7910 graphics
7911 [
7912 w 207.9
7913 h 40
7914 type "rectangle"
7915 fill "#FFFFFF"
7916 fill2 "#FFFFFF"
7917 outline "#000000"
7918 ]
7919 LabelGraphics
7920 [
7921 text "null"
7922 outline "#000000"
7923 fill "#FFFFFF"
7924 fontSize 16
7925 fontName "Monospace"
7926 autoSizePolicy "node_width"
7927 anchor "t"
7928 borderDistance 0.0
7929 ]
7930 LabelGraphics
7931 [
7932 text "
7933 FunctionalInterface class
7934 "
7935 fontSize 14
7936 fontName "Consolas"
7937 alignment "left"
7938 anchor "tl"
7939 borderDistance 6
7940 ]
7941 ]
7942
7943 node
7944 [
7945 id 6
7946 graphics
7947 [
7948 w 184.8
7949 h 54
7950 type "rectangle"
7951 fill "#FFFFFF"
7952 fill2 "#FFFFFF"
7953 outline "#000000"
7954 ]
7955 LabelGraphics
7956 [
7957 text "null"
7958 outline "#000000"
7959 fill "#FFFFFF"
7960 fontSize 16
7961 fontName "Monospace"
7962 autoSizePolicy "node_width"
7963 anchor "t"
7964 borderDistance 0.0
7965 ]
7966 LabelGraphics
7967 [
7968 text "
7969 FunctionalOutput class
7970 FunctionalData class
7971 "
7972 fontSize 14
7973 fontName "Consolas"
7974 alignment "left"
7975 anchor "tl"
7976 borderDistance 6
7977 ]
7978 ]
7979
7980 node
7981 [
7982 id 7
7983 graphics
7984 [
7985 w 184.8
7986 h 54
7987 type "rectangle"
7988 fill "#FFFFFF"
7989 fill2 "#FFFFFF"
7990 outline "#000000"
7991 ]
7992 LabelGraphics
7993 [
7994 text "null"
7995 outline "#000000"
7996 fill "#FFFFFF"
7997 fontSize 16
7998 fontName "Monospace"
7999 autoSizePolicy "node_width"
8000 anchor "t"
8001 borderDistance 0.0
8002 ]
8003 LabelGraphics
8004 [
8005 text "
8006 FunctionalOutput class
8007 FunctionalData class
8008 "
8009 fontSize 14
8010 fontName "Consolas"
8011 alignment "left"
8012 anchor "tl"
8013 borderDistance 6
8014 ]
8015 ]
8016
8017 node
8018 [
8019 id 8
8020 graphics
8021 [
8022 w 184.8
8023 h 54
8024 type "rectangle"
8025 fill "#FFFFFF"
8026 fill2 "#FFFFFF"
8027 outline "#000000"
8028 ]
8029 LabelGraphics
8030 [
8031 text "null"
8032 outline "#000000"
8033 fill "#FFFFFF"
8034 fontSize 16
8035 fontName "Monospace"
8036 autoSizePolicy "node_width"
8037 anchor "t"
8038 borderDistance 0.0
8039 ]
8040 LabelGraphics
8041 [
8042 text "
8043 FunctionalOutput class
8044 FunctionalData class
8045 "
8046 fontSize 14
8047 fontName "Consolas"
8048 alignment "left"
8049 anchor "tl"
8050 borderDistance 6
8051 ]
8052 ]
8053
8054 node
8055 [
8056 id 9
8057 graphics
8058 [
8059 w 161.70000000000002
8060 h 40
8061 type "rectangle"
8062 fill "#FFFFFF"
8063 fill2 "#FFFFFF"
8064 outline "#000000"
8065 ]
8066 LabelGraphics
8067 [
8068 text "null"
8069 outline "#000000"
8070 fill "#FFFFFF"
8071 fontSize 16
8072 fontName "Monospace"
8073 autoSizePolicy "node_width"
8074 anchor "t"
8075 borderDistance 0.0
8076 ]
8077 LabelGraphics
8078 [
8079 text "
8080 FAMTerminator class
8081 "
8082 fontSize 14
8083 fontName "Consolas"
8084 alignment "left"
8085 anchor "tl"
8086 borderDistance 6
8087 ]
8088 ]
8089
8090 node
8091 [
8092 id 10
8093 graphics
8094 [
8095 w 177.10000000000002
8096 h 54
8097 type "rectangle"
8098 fill "#FFFFFF"
8099 fill2 "#FFFFFF"
8100 outline "#000000"
8101 ]
8102 LabelGraphics
8103 [
8104 text "null"
8105 outline "#000000"
8106 fill "#FFFFFF"
8107 fontSize 16
8108 fontName "Monospace"
8109 autoSizePolicy "node_width"
8110 anchor "t"
8111 borderDistance 0.0
8112 ]
8113 LabelGraphics
8114 [
8115 text "
8116 FunctionalInput class
8117 FunctionalData class
8118 "
8119 fontSize 14
8120 fontName "Consolas"
8121 alignment "left"
8122 anchor "tl"
8123 borderDistance 6
8124 ]
8125 ]
8126
8127 node
8128 [
8129 id 11
8130 graphics
8131 [
8132 w 177.10000000000002
8133 h 54
8134 type "rectangle"
8135 fill "#FFFFFF"
8136 fill2 "#FFFFFF"
8137 outline "#000000"
8138 ]
8139 LabelGraphics
8140 [
8141 text "null"
8142 outline "#000000"
8143 fill "#FFFFFF"
8144 fontSize 16
8145 fontName "Monospace"
8146 autoSizePolicy "node_width"
8147 anchor "t"
8148 borderDistance 0.0
8149 ]
8150 LabelGraphics
8151 [
8152 text "
8153 FunctionalInput class
8154 FunctionalData class
8155 "
8156 fontSize 14
8157 fontName "Consolas"
8158 alignment "left"
8159 anchor "tl"
8160 borderDistance 6
8161 ]
8162 ]
8163
8164 node
8165 [
8166 id 12
8167 graphics
8168 [
8169 w 112.2
8170 h 26
8171 type "rectangle"
8172 fill "#FFFFFF"
8173 fill2 "#FFFFFF"
8174 outline "#000000"
8175 ]
8176 LabelGraphics
8177 [
8178 text "New Integers"
8179 outline "#000000"
8180 fill "#FFFFFF"
8181 fontSize 16
8182 fontName "Monospace"
8183 autoSizePolicy "node_width"
8184 anchor "t"
8185 borderDistance 0.0
8186 ]
8187 LabelGraphics
8188 [
8189 text "
8190 "
8191 fontSize 14
8192 fontName "Consolas"
8193 alignment "left"
8194 anchor "tl"
8195 borderDistance 6
8196 ]
8197 ]
8198
8199 node
8200 [
8201 id 13
8202 graphics
8203 [
8204 w 85.80000000000001
8205 h 26
8206 type "rectangle"
8207 fill "#FFFFFF"
8208 fill2 "#FFFFFF"
8209 outline "#000000"
8210 ]
8211 LabelGraphics
8212 [
8213 text "New Reals"
8214 outline "#000000"
8215 fill "#FFFFFF"
8216 fontSize 16
8217 fontName "Monospace"
8218 autoSizePolicy "node_width"
8219 anchor "t"
8220 borderDistance 0.0
8221 ]
8222 LabelGraphics
8223 [
8224 text "
8225 "
8226 fontSize 14
8227 fontName "Consolas"
8228 alignment "left"
8229 anchor "tl"
8230 borderDistance 6
8231 ]
8232 ]
8233
8234 node
8235 [
8236 id 14
8237 graphics
8238 [
8239 w 103.4
8240 h 26
8241 type "rectangle"
8242 fill "#FFFFFF"
8243 fill2 "#FFFFFF"
8244 outline "#000000"
8245 ]
8246 LabelGraphics
8247 [
8248 text "New Strings"
8249 outline "#000000"
8250 fill "#FFFFFF"
8251 fontSize 16
8252 fontName "Monospace"
8253 autoSizePolicy "node_width"
8254 anchor "t"
8255 borderDistance 0.0
8256 ]
8257 LabelGraphics
8258 [
8259 text "
8260 "
8261 fontSize 14
8262 fontName "Consolas"
8263 alignment "left"
8264 anchor "tl"
8265 borderDistance 6
8266 ]
8267 ]
8268
8269 node
8270 [
8271 id 15
8272 graphics
8273 [
8274 w 103.4
8275 h 26
8276 type "rectangle"
8277 fill "#FFFFFF"
8278 fill2 "#FFFFFF"
8279 outline "#000000"
8280 ]
8281 LabelGraphics
8282 [
8283 text "New Objects"
8284 outline "#000000"
8285 fill "#FFFFFF"
8286 fontSize 16
8287 fontName "Monospace"
8288 autoSizePolicy "node_width"
8289 anchor "t"
8290 borderDistance 0.0
8291 ]
8292 LabelGraphics
8293 [
8294 text "
8295 "
8296 fontSize 14
8297 fontName "Consolas"
8298 alignment "left"
8299 anchor "tl"
8300 borderDistance 6
8301 ]
8302 ]
8303 edge
8304 [
8305 source 9
8306 target 6
8307 graphics
8308 [
8309 fill "#000000"
8310 targetArrow "standard"
8311 ]
8312 LabelGraphics
8313 [
8314 text "data reference FAMTerminator"
8315 fontSize 14
8316 fontName "Consolas"
8317 configuration "AutoFlippingLabel"
8318 model "six_pos"
8319 position "thead"
8320 ]
8321 ]
8322 edge
8323 [
8324 source 5
8325 target 6
8326 graphics
8327 [
8328 fill "#000000"
8329 width 3
8330 targetArrow "standard"
8331 ]
8332 LabelGraphics
8333 [
8334 text "data reference FunctionalInterface"
8335 fontSize 14
8336 fontName "Consolas"
8337 configuration "AutoFlippingLabel"
8338 model "six_pos"
8339 position "thead"
8340 ]
8341 ]
8342 edge
8343 [
8344 source 5
8345 target 7
8346 graphics
8347 [
8348 fill "#000000"
8349 width 3
8350 targetArrow "standard"
8351 ]
8352 LabelGraphics
8353 [
8354 text "data reference FunctionalInterface"
8355 fontSize 14
8356 fontName "Consolas"
8357 configuration "AutoFlippingLabel"
8358 model "six_pos"
8359 position "thead"
8360 ]
8361 ]
8362 edge
8363 [
8364 source 5
2304 target 8 8365 target 8
2305 graphics 8366 graphics
2306 [ 8367 [
2307 fill "#000000" 8368 fill "#000000"
8369 width 3
8370 targetArrow "standard"
8371 ]
8372 LabelGraphics
8373 [
8374 text "data reference FunctionalInterface"
8375 fontSize 14
8376 fontName "Consolas"
8377 configuration "AutoFlippingLabel"
8378 model "six_pos"
8379 position "thead"
8380 ]
8381 ]
8382 edge
8383 [
8384 source 5
8385 target 10
8386 graphics
8387 [
8388 fill "#000000"
8389 width 3
8390 targetArrow "standard"
8391 ]
8392 LabelGraphics
8393 [
8394 text "data reference FunctionalInterface"
8395 fontSize 14
8396 fontName "Consolas"
8397 configuration "AutoFlippingLabel"
8398 model "six_pos"
8399 position "thead"
8400 ]
8401 ]
8402 edge
8403 [
8404 source 5
8405 target 11
8406 graphics
8407 [
8408 fill "#000000"
8409 width 3
2308 targetArrow "standard" 8410 targetArrow "standard"
2309 ] 8411 ]
2310 LabelGraphics 8412 LabelGraphics
2311 [ 8413 [
2312 text "name attribute ENamedElement" 8414 text "data reference FunctionalInterface"
2313 fontSize 14 8415 fontSize 14
2314 fontName "Consolas" 8416 fontName "Consolas"
2315 configuration "AutoFlippingLabel" 8417 configuration "AutoFlippingLabel"
@@ -2319,16 +8421,17 @@ graph
2319 ] 8421 ]
2320 edge 8422 edge
2321 [ 8423 [
2322 source 0 8424 source 6
2323 target 9 8425 target 9
2324 graphics 8426 graphics
2325 [ 8427 [
2326 fill "#000000" 8428 fill "#000000"
8429 width 3
2327 targetArrow "standard" 8430 targetArrow "standard"
2328 ] 8431 ]
2329 LabelGraphics 8432 LabelGraphics
2330 [ 8433 [
2331 text "nsURI attribute EPackage" 8434 text "terminator reference FunctionalData"
2332 fontSize 14 8435 fontSize 14
2333 fontName "Consolas" 8436 fontName "Consolas"
2334 configuration "AutoFlippingLabel" 8437 configuration "AutoFlippingLabel"
@@ -2338,8 +8441,84 @@ graph
2338 ] 8441 ]
2339 edge 8442 edge
2340 [ 8443 [
2341 source 0 8444 source 6
2342 target 8 8445 target 5
8446 graphics
8447 [
8448 fill "#000000"
8449 targetArrow "standard"
8450 ]
8451 LabelGraphics
8452 [
8453 text "interface reference FunctionalData"
8454 fontSize 14
8455 fontName "Consolas"
8456 configuration "AutoFlippingLabel"
8457 model "six_pos"
8458 position "thead"
8459 ]
8460 ]
8461 edge
8462 [
8463 source 7
8464 target 5
8465 graphics
8466 [
8467 fill "#000000"
8468 targetArrow "standard"
8469 ]
8470 LabelGraphics
8471 [
8472 text "interface reference FunctionalData"
8473 fontSize 14
8474 fontName "Consolas"
8475 configuration "AutoFlippingLabel"
8476 model "six_pos"
8477 position "thead"
8478 ]
8479 ]
8480 edge
8481 [
8482 source 8
8483 target 5
8484 graphics
8485 [
8486 fill "#000000"
8487 targetArrow "standard"
8488 ]
8489 LabelGraphics
8490 [
8491 text "interface reference FunctionalData"
8492 fontSize 14
8493 fontName "Consolas"
8494 configuration "AutoFlippingLabel"
8495 model "six_pos"
8496 position "thead"
8497 ]
8498 ]
8499 edge
8500 [
8501 source 10
8502 target 5
8503 graphics
8504 [
8505 fill "#000000"
8506 targetArrow "standard"
8507 ]
8508 LabelGraphics
8509 [
8510 text "interface reference FunctionalData"
8511 fontSize 14
8512 fontName "Consolas"
8513 configuration "AutoFlippingLabel"
8514 model "six_pos"
8515 position "thead"
8516 ]
8517 ]
8518 edge
8519 [
8520 source 11
8521 target 5
2343 graphics 8522 graphics
2344 [ 8523 [
2345 fill "#000000" 8524 fill "#000000"
@@ -2347,7 +8526,7 @@ graph
2347 ] 8526 ]
2348 LabelGraphics 8527 LabelGraphics
2349 [ 8528 [
2350 text "nsPrefix attribute EPackage" 8529 text "interface reference FunctionalData"
2351 fontSize 14 8530 fontSize 14
2352 fontName "Consolas" 8531 fontName "Consolas"
2353 configuration "AutoFlippingLabel" 8532 configuration "AutoFlippingLabel"
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/5.png b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/5.png
index 7b6e8da5..3c09036a 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/5.png
+++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/5.png
Binary files differ
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/5.xmi b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/5.xmi
index 8bff1dc6..21ac69a6 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/5.xmi
+++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/5.xmi
@@ -1,8 +1,10 @@
1<?xml version="1.0" encoding="ASCII"?> 1<?xml version="1.0" encoding="ASCII"?>
2<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="packageName" nsURI="nsUri" nsPrefix="nsPrefix"> 2<fam:FunctionalInterface xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:fam="FamMetamodel">
3 <eAnnotations/> 3 <data xsi:type="fam:FunctionalInput"/>
4 <eAnnotations source="B"/> 4 <data xsi:type="fam:FunctionalInput"/>
5 <eClassifiers xsi:type="ecore:EDataType" name="nsPrefix" instanceTypeName="nsUri" serializable="false"/> 5 <data xsi:type="fam:FunctionalOutput"/>
6 <eClassifiers xsi:type="ecore:EDataType" name="nsPrefix" instanceClassName="packageName"/> 6 <data xsi:type="fam:FunctionalOutput">
7 <eClassifiers xsi:type="ecore:EClass" name="nsUri"/> 7 <terminator/>
8</ecore:EPackage> 8 </data>
9 <data xsi:type="fam:FunctionalOutput"/>
10</fam:FunctionalInterface>
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/statistics.csv b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/statistics.csv
index 6422beb9..f0a5df58 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/statistics.csv
+++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/statistics.csv
@@ -1,48 +1,20 @@
1Task;Run;Result;Domain to logic transformation time;Logic to solver transformation time;Solver time;Postprocessing time;_Solution0FoundAt;TransformationExecutionTime;TypeAnalysisTime;StateCoderTime;StateCoderFailCount;SolutionCopyTime 1Task;Run;Result;Domain to logic transformation time;Logic to solver transformation time;Solver time;Postprocessing time;_Solution0FoundAt;_Solution1FoundAt;_Solution2FoundAt;_Solution3FoundAt;_Solution4FoundAt;TransformationExecutionTime;TypeAnalysisTime;StateCoderTime;StateCoderFailCount;SolutionCopyTime
21;1;ModelResultImpl;441;2068;2486;3217702419;62;29;140;4;0;2 21;1;ModelResultImpl;2;1459;1800;9941267600;254;383;414;441;477;249;6;14;0;5
3Task;Run;Result;Domain to logic transformation time;Logic to solver transformation time;Solver time;Postprocessing time;_Solution0FoundAt;TransformationExecutionTime;TypeAnalysisTime;StateCoderTime;StateCoderFailCount;SolutionCopyTime 3Task;Run;Result;Domain to logic transformation time;Logic to solver transformation time;Solver time;Postprocessing time;_Solution0FoundAt;_Solution1FoundAt;_Solution2FoundAt;_Solution3FoundAt;_Solution4FoundAt;TransformationExecutionTime;TypeAnalysisTime;StateCoderTime;StateCoderFailCount;SolutionCopyTime
41;1;ModelResultImpl;463;2860;2654;3199911479;74;37;138;5;0;3 41;1;ModelResultImpl;0;1095;1138;10430069000;47;67;101;104;168;77;5;3;0;3
5Task;Run;Result;Domain to logic transformation time;Logic to solver transformation time;Solver time;Postprocessing time;_Solution0FoundAt;TransformationExecutionTime;TypeAnalysisTime;StateCoderTime;StateCoderFailCount;SolutionCopyTime 5Task;Run;Result;Domain to logic transformation time;Logic to solver transformation time;Solver time;Postprocessing time;_Solution0FoundAt;_Solution1FoundAt;_Solution2FoundAt;_Solution3FoundAt;_Solution4FoundAt;TransformationExecutionTime;TypeAnalysisTime;StateCoderTime;StateCoderFailCount;SolutionCopyTime
61;1;ModelResultImpl;499;2201;2467;3339884626;68;36;141;4;0;2 61;1;ModelResultImpl;1;971;1320;9287027600;59;82;103;298;350;265;7;2;0;3
7Task;Run;Result;Domain to logic transformation time;Logic to solver transformation time;Solver time;Postprocessing time;_Solution0FoundAt;TransformationExecutionTime;TypeAnalysisTime;StateCoderTime;StateCoderFailCount;SolutionCopyTime 7Task;Run;Result;Domain to logic transformation time;Logic to solver transformation time;Solver time;Postprocessing time;_Solution0FoundAt;_Solution1FoundAt;_Solution2FoundAt;_Solution3FoundAt;_Solution4FoundAt;TransformationExecutionTime;TypeAnalysisTime;StateCoderTime;StateCoderFailCount;SolutionCopyTime
81;1;ModelResultImpl;452;2821;2223;3526490298;59;27;122;5;0;2 81;1;ModelResultImpl;1;945;1239;9183595100;65;83;102;132;150;81;6;2;0;2
9Task;Run;Result;Domain to logic transformation time;Logic to solver transformation time;Solver time;Postprocessing time;_Solution0FoundAt;_Solution1FoundAt;_Solution2FoundAt;TransformationExecutionTime;TypeAnalysisTime;StateCoderTime;StateCoderFailCount;SolutionCopyTime 9Task;Run;Result;Domain to logic transformation time;Logic to solver transformation time;Solver time;Postprocessing time;_Solution0FoundAt;_Solution1FoundAt;_Solution2FoundAt;_Solution3FoundAt;_Solution4FoundAt;TransformationExecutionTime;TypeAnalysisTime;StateCoderTime;StateCoderFailCount;SolutionCopyTime
101;1;ModelResultImpl;11;1529;1717;4396467206;87;94;100;54;17;4;0;3 101;1;ModelResultImpl;1;934;1758;9668065700;313;387;426;505;625;353;7;8;0;2
11Task;Run;Result;Domain to logic transformation time;Logic to solver transformation time;Solver time;Postprocessing time;_Solution0FoundAt;_Solution1FoundAt;_Solution2FoundAt;TransformationExecutionTime;TypeAnalysisTime;StateCoderTime;StateCoderFailCount;SolutionCopyTime 11Task;Run;Result;Domain to logic transformation time;Logic to solver transformation time;Solver time;Postprocessing time;_Solution0FoundAt;_Solution1FoundAt;_Solution2FoundAt;_Solution3FoundAt;_Solution4FoundAt;TransformationExecutionTime;TypeAnalysisTime;StateCoderTime;StateCoderFailCount;SolutionCopyTime
121;1;ModelResultImpl;15;1411;1457;4222415279;54;68;77;36;10;4;0;5 121;1;ModelResultImpl;1;952;1268;9015161500;79;135;155;174;233;121;6;3;0;2
13Task;Run;Result;Domain to logic transformation time;Logic to solver transformation time;Solver time;Postprocessing time;_Solution0FoundAt;_Solution1FoundAt;TransformationExecutionTime;TypeAnalysisTime;StateCoderTime;StateCoderFailCount;SolutionCopyTime 13Task;Run;Result;Domain to logic transformation time;Logic to solver transformation time;Solver time;Postprocessing time;_Solution0FoundAt;_Solution1FoundAt;_Solution2FoundAt;_Solution3FoundAt;_Solution4FoundAt;TransformationExecutionTime;TypeAnalysisTime;StateCoderTime;StateCoderFailCount;SolutionCopyTime
141;1;ModelResultImpl;9;1335;1288;2769089958;64;74;31;12;1;0;2 141;1;ModelResultImpl;1;966;1534;9401550800;104;179;199;336;375;186;7;5;0;3
15Task;Run;Result;Domain to logic transformation time;Logic to solver transformation time;Solver time;Postprocessing time;_Solution0FoundAt;_Solution1FoundAt;TransformationExecutionTime;TypeAnalysisTime;StateCoderTime;StateCoderFailCount;SolutionCopyTime 15Task;Run;Result;Domain to logic transformation time;Logic to solver transformation time;Solver time;Postprocessing time;_Solution0FoundAt;_Solution1FoundAt;_Solution2FoundAt;_Solution3FoundAt;_Solution4FoundAt;TransformationExecutionTime;TypeAnalysisTime;StateCoderTime;StateCoderFailCount;SolutionCopyTime
161;1;ModelResultImpl;4;1180;1189;2923747093;50;58;26;10;1;0;1 161;1;ModelResultImpl;1;1027;1635;8949130900;249;277;316;417;444;258;5;5;0;4
17Task;Run;Result;Domain to logic transformation time;Logic to solver transformation time;Solver time;Postprocessing time;_Solution0FoundAt;TransformationExecutionTime;TypeAnalysisTime;StateCoderTime;StateCoderFailCount;SolutionCopyTime 17Task;Run;Result;Domain to logic transformation time;Logic to solver transformation time;Solver time;Postprocessing time;_Solution0FoundAt;_Solution1FoundAt;_Solution2FoundAt;_Solution3FoundAt;_Solution4FoundAt;TransformationExecutionTime;TypeAnalysisTime;StateCoderTime;StateCoderFailCount;SolutionCopyTime
181;1;ModelResultImpl;839;2519;2455;3266543842;68;33;193;5;0;3 181;1;ModelResultImpl;1;928;1173;8877697600;49;109;128;149;167;83;5;2;0;3
19Task;Run;Result;Domain to logic transformation time;Logic to solver transformation time;Solver time;Postprocessing time;_Solution0FoundAt;_Solution1FoundAt;TransformationExecutionTime;TypeAnalysisTime;StateCoderTime;StateCoderFailCount;SolutionCopyTime 19Task;Run;Result;Domain to logic transformation time;Logic to solver transformation time;Solver time;Postprocessing time;_Solution0FoundAt;_Solution1FoundAt;_Solution2FoundAt;_Solution3FoundAt;_Solution4FoundAt;TransformationExecutionTime;TypeAnalysisTime;StateCoderTime;StateCoderFailCount;SolutionCopyTime
201;1;ModelResultImpl;11;2019;1948;3337962573;91;104;53;16;2;0;3 201;1;ModelResultImpl;2;1070;1291;9164916500;97;114;167;249;276;120;8;3;0;3
21Task;Run;Result;Domain to logic transformation time;Logic to solver transformation time;Solver time;Postprocessing time;_Solution0FoundAt;_Solution1FoundAt;TransformationExecutionTime;TypeAnalysisTime;StateCoderTime;StateCoderFailCount;SolutionCopyTime
221;1;ModelResultImpl;1719;3345;2829;7904668959;235;261;107;497;53;0;6
23Task;Run;Result;Domain to logic transformation time;Logic to solver transformation time;Solver time;Postprocessing time;_Solution0FoundAt;_Solution1FoundAt;TransformationExecutionTime;TypeAnalysisTime;StateCoderTime;StateCoderFailCount;SolutionCopyTime
241;1;ModelResultImpl;13;1736;1740;2852471270;62;73;37;19;1;0;2
25Task;Run;Result;Domain to logic transformation time;Logic to solver transformation time;Solver time;Postprocessing time;_Solution0FoundAt;TransformationExecutionTime;TypeAnalysisTime;StateCoderTime;StateCoderFailCount;SolutionCopyTime
261;1;ModelResultImpl;529;2502;2857;3681787432;68;30;125;4;0;2
27Task;Run;Result;Domain to logic transformation time;Logic to solver transformation time;Solver time;Postprocessing time;_Solution0FoundAt;TransformationExecutionTime;TypeAnalysisTime;StateCoderTime;StateCoderFailCount;SolutionCopyTime
281;1;ModelResultImpl;788;2572;2188;3322713636;67;30;148;5;0;4
29Task;Run;Result;Domain to logic transformation time;Logic to solver transformation time;Solver time;Postprocessing time;_Solution0FoundAt;_Solution1FoundAt;TransformationExecutionTime;TypeAnalysisTime;StateCoderTime;StateCoderFailCount;SolutionCopyTime
301;1;ModelResultImpl;443;2849;2573;4906642931;151;171;75;124;7;0;8
31Task;Run;Result;Domain to logic transformation time;Logic to solver transformation time;Solver time;Postprocessing time;_Solution0FoundAt;_Solution1FoundAt;_Solution2FoundAt;_Solution3FoundAt;_Solution4FoundAt;TransformationExecutionTime;TypeAnalysisTime;StateCoderTime;StateCoderFailCount;SolutionCopyTime
322;1;ModelResultImpl;19;4315;9042;20459725100;239;247;252;257;261;217;19;6;0;11
33Task;Run;Result;Domain to logic transformation time;Logic to solver transformation time;Solver time;Postprocessing time;_Solution0FoundAt;_Solution1FoundAt;TransformationExecutionTime;TypeAnalysisTime;StateCoderTime;StateCoderFailCount;SolutionCopyTime
341;1;ModelResultImpl;513;2237;2193;6152392500;162;177;77;150;6;0;5
35Task;Run;Result;Domain to logic transformation time;Logic to solver transformation time;Solver time;Postprocessing time;_Solution0FoundAt;_Solution1FoundAt;TransformationExecutionTime;TypeAnalysisTime;StateCoderTime;StateCoderFailCount;SolutionCopyTime
361;1;ModelResultImpl;11;1602;1604;2992330200;66;77;38;16;1;0;3
37Task;Run;Result;Domain to logic transformation time;Logic to solver transformation time;Solver time;Postprocessing time;_Solution0FoundAt;_Solution1FoundAt;_Solution2FoundAt;_Solution3FoundAt;_Solution4FoundAt;TransformationExecutionTime;TypeAnalysisTime;StateCoderTime;StateCoderFailCount;SolutionCopyTime
382;1;ModelResultImpl;128;4855;10109;16068923000;382;391;398;403;409;349;37;8;0;16
39Task;Run;Result;Domain to logic transformation time;Logic to solver transformation time;Solver time;Postprocessing time;_Solution0FoundAt;_Solution1FoundAt;_Solution2FoundAt;TransformationExecutionTime;TypeAnalysisTime;StateCoderTime;StateCoderFailCount;SolutionCopyTime
402;1;ModelResultImpl;18;3632;9743;7955260600;299;307;313;261;17;7;0;8
41Task;Run;Result;Domain to logic transformation time;Logic to solver transformation time;Solver time;Postprocessing time;_Solution0FoundAt;_Solution1FoundAt;_Solution2FoundAt;TransformationExecutionTime;TypeAnalysisTime;StateCoderTime;StateCoderFailCount;SolutionCopyTime
422;1;ModelResultImpl;471;5606;10554;10190416000;482;497;509;400;189;16;0;21
43Task;Run;Result;Domain to logic transformation time;Logic to solver transformation time;Solver time;Postprocessing time;_Solution0FoundAt;_Solution1FoundAt;_Solution2FoundAt;TransformationExecutionTime;TypeAnalysisTime;StateCoderTime;StateCoderFailCount;SolutionCopyTime
442;1;ModelResultImpl;28;4850;10801;9664839300;622;635;651;560;23;18;0;20
45Task;Run;Result;Domain to logic transformation time;Logic to solver transformation time;Solver time;Postprocessing time;_Solution0FoundAt;_Solution1FoundAt;TransformationExecutionTime;TypeAnalysisTime;StateCoderTime;StateCoderFailCount;SolutionCopyTime
461;1;ModelResultImpl;6;1884;1462;3186743800;40;48;20;16;1;0;1
47Task;Run;Result;Domain to logic transformation time;Logic to solver transformation time;Solver time;Postprocessing time;_Solution0FoundAt;_Solution1FoundAt;_Solution2FoundAt;TransformationExecutionTime;TypeAnalysisTime;StateCoderTime;StateCoderFailCount;SolutionCopyTime
482;1;ModelResultImpl;9;4021;9222;7668037900;233;239;243;201;10;8;0;6