aboutsummaryrefslogtreecommitdiffstats
path: root/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu
diff options
context:
space:
mode:
Diffstat (limited to 'Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu')
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/debug/generated3valued.vql_deactivated2925
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/debug/generation.logicproblem2
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/log.txt2
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/models/1.gml830
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/models/1.pngbin127573 -> 99990 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/models/1.xmi15
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/models/2.gml832
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/models/2.pngbin116286 -> 98486 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/models/2.xmi15
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/statistics.csv2
10 files changed, 4605 insertions, 18 deletions
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/debug/generated3valued.vql_deactivated b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/debug/generated3valued.vql_deactivated
index 5ac9e1dc..f2e524ab 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/debug/generated3valued.vql_deactivated
+++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/debug/generated3valued.vql_deactivated
@@ -26323,3 +26323,2928 @@ pattern refineRelation_incomingTransitions_reference_Vertex_and_target_reference
26323 find mayInRelationincomingTransitions_reference_Vertex(problem,interpretation,from,to); 26323 find mayInRelationincomingTransitions_reference_Vertex(problem,interpretation,from,to);
26324 neg find mustInRelationincomingTransitions_reference_Vertex(problem,interpretation,from,to); 26324 neg find mustInRelationincomingTransitions_reference_Vertex(problem,interpretation,from,to);
26325} 26325}
26326import epackage "http://www.bme.hu/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage"
26327import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem"
26328import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/language"
26329
26330//////////
26331// 0. Util
26332//////////
26333private pattern interpretation(problem:LogicProblem, interpretation:PartialInterpretation) {
26334 PartialInterpretation.problem(interpretation,problem);
26335}
26336
26337/////////////////////////
26338// 0.1 Existence
26339/////////////////////////
26340private pattern mustExist(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
26341 find interpretation(problem,interpretation);
26342 LogicProblem.elements(problem,element);
26343} or {
26344 find interpretation(problem,interpretation);
26345 PartialInterpretation.newElements(interpretation,element);
26346}
26347
26348private pattern mayExist(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
26349 find mustExist(problem,interpretation,element);
26350} or {
26351 find interpretation(problem,interpretation);
26352 neg find elementCloseWorld(element);
26353 PartialInterpretation.openWorldElements(interpretation,element);
26354}
26355
26356private pattern elementCloseWorld(element:DefinedElement) {
26357 PartialInterpretation.openWorldElements(i,element);
26358 PartialInterpretation.maxNewElements(i,0);
26359} or {
26360 Scope.targetTypeInterpretation(scope,interpretation);
26361 PartialTypeInterpratation.elements(interpretation,element);
26362 Scope.maxNewElements(scope,0);
26363}
26364
26365////////////////////////
26366// 0.2 Equivalence
26367////////////////////////
26368pattern mayEquivalent(problem:LogicProblem, interpretation:PartialInterpretation, a: DefinedElement, b: DefinedElement) {
26369 find mayExist(problem,interpretation,a);
26370 find mayExist(problem,interpretation,b);
26371 a == b;
26372}
26373
26374////////////////////////
26375// 0.3 Required Patterns by TypeIndexer
26376////////////////////////
26377private pattern typeInterpretation(problem:LogicProblem, interpretation:PartialInterpretation, type:TypeDeclaration, typeInterpretation:PartialComplexTypeInterpretation) {
26378 find interpretation(problem,interpretation);
26379 LogicProblem.types(problem,type);
26380 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
26381 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
26382}
26383
26384private pattern directInstanceOf(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement, type:Type) {
26385 find interpretation(problem,interpretation);
26386 LogicProblem.types(problem,type);
26387 TypeDefinition.elements(type,element);
26388} or {
26389 find interpretation(problem,interpretation);
26390 find typeInterpretation(problem,interpretation,type,typeInterpretation);
26391 PartialComplexTypeInterpretation.elements(typeInterpretation,element);
26392}
26393
26394private pattern isPrimitive(element: PrimitiveElement) {
26395 PrimitiveElement(element);
26396}
26397
26398//////////
26399// 1. Problem-Specific Base Indexers
26400//////////
26401// 1.1 Type Indexers
26402//////////
26403// 1.1.1 primitive Type Indexers
26404//////////
26405
26406//////////
26407// 1.1.2 domain-specific Type Indexers
26408//////////
26409/**
26410 * An element must be an instance of type "Pseudostate class".
26411 */
26412private pattern mustInstanceOfPseudostate_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
26413 Type.name(type,"Pseudostate class");
26414 find directInstanceOf(problem,interpretation,element,type);
26415}
26416private pattern scopeDisallowsNewPseudostate_class(problem:LogicProblem, interpretation:PartialInterpretation) {
26417 find interpretation(problem,interpretation);
26418 PartialInterpretation.scopes(interpretation,scope);
26419 Scope.targetTypeInterpretation(scope,typeInterpretation);
26420 Scope.maxNewElements(scope,0);
26421 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
26422 Type.name(type,"Pseudostate class");
26423}
26424
26425/**
26426 * An element may be an instance of type "Pseudostate class".
26427 */
26428private pattern mayInstanceOfPseudostate_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
26429{
26430 find interpretation(problem,interpretation);
26431 PartialInterpretation.newElements(interpretation,element);
26432 neg find mustInstanceOfTransition_class(problem,interpretation,element);
26433 neg find mustInstanceOfCompositeElement_class(problem,interpretation,element);
26434 neg find mustInstanceOfEntry_class(problem,interpretation,element);
26435 neg find mustInstanceOfRegion_class(problem,interpretation,element);
26436 neg find mustInstanceOfChoice_class(problem,interpretation,element);
26437 neg find mustInstanceOfRegularState_class(problem,interpretation,element);
26438 neg find mustInstanceOfSynchronization_class(problem,interpretation,element);
26439 neg find mustInstanceOfExit_class(problem,interpretation,element);
26440 neg find scopeDisallowsNewPseudostate_class(problem, interpretation);
26441 neg find isPrimitive(element);
26442} or {
26443 find interpretation(problem,interpretation);
26444 PartialInterpretation.openWorldElements(interpretation,element);
26445 neg find mustInstanceOfTransition_class(problem,interpretation,element);
26446 neg find mustInstanceOfCompositeElement_class(problem,interpretation,element);
26447 neg find mustInstanceOfEntry_class(problem,interpretation,element);
26448 neg find mustInstanceOfRegion_class(problem,interpretation,element);
26449 neg find mustInstanceOfChoice_class(problem,interpretation,element);
26450 neg find mustInstanceOfRegularState_class(problem,interpretation,element);
26451 neg find mustInstanceOfSynchronization_class(problem,interpretation,element);
26452 neg find mustInstanceOfExit_class(problem,interpretation,element);
26453 neg find scopeDisallowsNewPseudostate_class(problem, interpretation);
26454 neg find isPrimitive(element);
26455} or
26456{ find mustInstanceOfPseudostate_class(problem,interpretation,element); }
26457/**
26458 * An element must be an instance of type "Vertex class".
26459 */
26460private pattern mustInstanceOfVertex_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
26461 Type.name(type,"Vertex class");
26462 find directInstanceOf(problem,interpretation,element,type);
26463}
26464private pattern scopeDisallowsNewVertex_class(problem:LogicProblem, interpretation:PartialInterpretation) {
26465 find interpretation(problem,interpretation);
26466 PartialInterpretation.scopes(interpretation,scope);
26467 Scope.targetTypeInterpretation(scope,typeInterpretation);
26468 Scope.maxNewElements(scope,0);
26469 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
26470 Type.name(type,"Vertex class");
26471}
26472
26473/**
26474 * An element may be an instance of type "Vertex class".
26475 */
26476private pattern mayInstanceOfVertex_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
26477{
26478 find interpretation(problem,interpretation);
26479 PartialInterpretation.newElements(interpretation,element);
26480 neg find mustInstanceOfPseudostate_class(problem,interpretation,element);
26481 neg find mustInstanceOfTransition_class(problem,interpretation,element);
26482 neg find mustInstanceOfCompositeElement_class(problem,interpretation,element);
26483 neg find mustInstanceOfRegion_class(problem,interpretation,element);
26484 neg find mustInstanceOfRegularState_class(problem,interpretation,element);
26485 neg find scopeDisallowsNewVertex_class(problem, interpretation);
26486 neg find isPrimitive(element);
26487} or {
26488 find interpretation(problem,interpretation);
26489 PartialInterpretation.openWorldElements(interpretation,element);
26490 neg find mustInstanceOfPseudostate_class(problem,interpretation,element);
26491 neg find mustInstanceOfTransition_class(problem,interpretation,element);
26492 neg find mustInstanceOfCompositeElement_class(problem,interpretation,element);
26493 neg find mustInstanceOfRegion_class(problem,interpretation,element);
26494 neg find mustInstanceOfRegularState_class(problem,interpretation,element);
26495 neg find scopeDisallowsNewVertex_class(problem, interpretation);
26496 neg find isPrimitive(element);
26497} or
26498{ find mustInstanceOfVertex_class(problem,interpretation,element); }
26499/**
26500 * An element must be an instance of type "Region class".
26501 */
26502private pattern mustInstanceOfRegion_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
26503 Type.name(type,"Region class");
26504 find directInstanceOf(problem,interpretation,element,type);
26505}
26506private pattern scopeDisallowsNewRegion_class(problem:LogicProblem, interpretation:PartialInterpretation) {
26507 find interpretation(problem,interpretation);
26508 PartialInterpretation.scopes(interpretation,scope);
26509 Scope.targetTypeInterpretation(scope,typeInterpretation);
26510 Scope.maxNewElements(scope,0);
26511 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
26512 Type.name(type,"Region class");
26513}
26514
26515/**
26516 * An element may be an instance of type "Region class".
26517 */
26518private pattern mayInstanceOfRegion_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
26519{
26520 find interpretation(problem,interpretation);
26521 PartialInterpretation.newElements(interpretation,element);
26522 neg find mustInstanceOfTransition_class(problem,interpretation,element);
26523 neg find mustInstanceOfCompositeElement_class(problem,interpretation,element);
26524 neg find mustInstanceOfVertex_class(problem,interpretation,element);
26525 neg find scopeDisallowsNewRegion_class(problem, interpretation);
26526 neg find isPrimitive(element);
26527} or {
26528 find interpretation(problem,interpretation);
26529 PartialInterpretation.openWorldElements(interpretation,element);
26530 neg find mustInstanceOfTransition_class(problem,interpretation,element);
26531 neg find mustInstanceOfCompositeElement_class(problem,interpretation,element);
26532 neg find mustInstanceOfVertex_class(problem,interpretation,element);
26533 neg find scopeDisallowsNewRegion_class(problem, interpretation);
26534 neg find isPrimitive(element);
26535} or
26536{ find mustInstanceOfRegion_class(problem,interpretation,element); }
26537/**
26538 * An element must be an instance of type "Transition class".
26539 */
26540private pattern mustInstanceOfTransition_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
26541 Type.name(type,"Transition class");
26542 find directInstanceOf(problem,interpretation,element,type);
26543}
26544private pattern scopeDisallowsNewTransition_class(problem:LogicProblem, interpretation:PartialInterpretation) {
26545 find interpretation(problem,interpretation);
26546 PartialInterpretation.scopes(interpretation,scope);
26547 Scope.targetTypeInterpretation(scope,typeInterpretation);
26548 Scope.maxNewElements(scope,0);
26549 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
26550 Type.name(type,"Transition class");
26551}
26552
26553/**
26554 * An element may be an instance of type "Transition class".
26555 */
26556private pattern mayInstanceOfTransition_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
26557{
26558 find interpretation(problem,interpretation);
26559 PartialInterpretation.newElements(interpretation,element);
26560 neg find mustInstanceOfCompositeElement_class(problem,interpretation,element);
26561 neg find mustInstanceOfRegion_class(problem,interpretation,element);
26562 neg find mustInstanceOfVertex_class(problem,interpretation,element);
26563 neg find scopeDisallowsNewTransition_class(problem, interpretation);
26564 neg find isPrimitive(element);
26565} or {
26566 find interpretation(problem,interpretation);
26567 PartialInterpretation.openWorldElements(interpretation,element);
26568 neg find mustInstanceOfCompositeElement_class(problem,interpretation,element);
26569 neg find mustInstanceOfRegion_class(problem,interpretation,element);
26570 neg find mustInstanceOfVertex_class(problem,interpretation,element);
26571 neg find scopeDisallowsNewTransition_class(problem, interpretation);
26572 neg find isPrimitive(element);
26573} or
26574{ find mustInstanceOfTransition_class(problem,interpretation,element); }
26575/**
26576 * An element must be an instance of type "Statechart class".
26577 */
26578private pattern mustInstanceOfStatechart_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
26579 Type.name(type,"Statechart class");
26580 find directInstanceOf(problem,interpretation,element,type);
26581}
26582private pattern scopeDisallowsNewStatechart_class(problem:LogicProblem, interpretation:PartialInterpretation) {
26583 find interpretation(problem,interpretation);
26584 PartialInterpretation.scopes(interpretation,scope);
26585 Scope.targetTypeInterpretation(scope,typeInterpretation);
26586 Scope.maxNewElements(scope,0);
26587 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
26588 Type.name(type,"Statechart class");
26589}
26590
26591/**
26592 * An element may be an instance of type "Statechart class".
26593 */
26594private pattern mayInstanceOfStatechart_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
26595{
26596 find interpretation(problem,interpretation);
26597 PartialInterpretation.newElements(interpretation,element);
26598 neg find mustInstanceOfTransition_class(problem,interpretation,element);
26599 neg find mustInstanceOfRegion_class(problem,interpretation,element);
26600 neg find mustInstanceOfVertex_class(problem,interpretation,element);
26601 neg find mustInstanceOfCompositeElement_class_UndefinedPart(problem,interpretation,element);
26602 neg find scopeDisallowsNewStatechart_class(problem, interpretation);
26603 neg find isPrimitive(element);
26604} or {
26605 find interpretation(problem,interpretation);
26606 PartialInterpretation.openWorldElements(interpretation,element);
26607 neg find mustInstanceOfTransition_class(problem,interpretation,element);
26608 neg find mustInstanceOfRegion_class(problem,interpretation,element);
26609 neg find mustInstanceOfVertex_class(problem,interpretation,element);
26610 neg find mustInstanceOfCompositeElement_class_UndefinedPart(problem,interpretation,element);
26611 neg find scopeDisallowsNewStatechart_class(problem, interpretation);
26612 neg find isPrimitive(element);
26613} or
26614{ find mustInstanceOfStatechart_class(problem,interpretation,element); }
26615/**
26616 * An element must be an instance of type "Entry class".
26617 */
26618private pattern mustInstanceOfEntry_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
26619 Type.name(type,"Entry class");
26620 find directInstanceOf(problem,interpretation,element,type);
26621}
26622private pattern scopeDisallowsNewEntry_class(problem:LogicProblem, interpretation:PartialInterpretation) {
26623 find interpretation(problem,interpretation);
26624 PartialInterpretation.scopes(interpretation,scope);
26625 Scope.targetTypeInterpretation(scope,typeInterpretation);
26626 Scope.maxNewElements(scope,0);
26627 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
26628 Type.name(type,"Entry class");
26629}
26630
26631/**
26632 * An element may be an instance of type "Entry class".
26633 */
26634private pattern mayInstanceOfEntry_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
26635{
26636 find interpretation(problem,interpretation);
26637 PartialInterpretation.newElements(interpretation,element);
26638 neg find mustInstanceOfTransition_class(problem,interpretation,element);
26639 neg find mustInstanceOfCompositeElement_class(problem,interpretation,element);
26640 neg find mustInstanceOfRegion_class(problem,interpretation,element);
26641 neg find mustInstanceOfChoice_class(problem,interpretation,element);
26642 neg find mustInstanceOfRegularState_class(problem,interpretation,element);
26643 neg find mustInstanceOfSynchronization_class(problem,interpretation,element);
26644 neg find mustInstanceOfExit_class(problem,interpretation,element);
26645 neg find scopeDisallowsNewEntry_class(problem, interpretation);
26646 neg find isPrimitive(element);
26647} or {
26648 find interpretation(problem,interpretation);
26649 PartialInterpretation.openWorldElements(interpretation,element);
26650 neg find mustInstanceOfTransition_class(problem,interpretation,element);
26651 neg find mustInstanceOfCompositeElement_class(problem,interpretation,element);
26652 neg find mustInstanceOfRegion_class(problem,interpretation,element);
26653 neg find mustInstanceOfChoice_class(problem,interpretation,element);
26654 neg find mustInstanceOfRegularState_class(problem,interpretation,element);
26655 neg find mustInstanceOfSynchronization_class(problem,interpretation,element);
26656 neg find mustInstanceOfExit_class(problem,interpretation,element);
26657 neg find scopeDisallowsNewEntry_class(problem, interpretation);
26658 neg find isPrimitive(element);
26659} or
26660{ find mustInstanceOfEntry_class(problem,interpretation,element); }
26661/**
26662 * An element must be an instance of type "Synchronization class".
26663 */
26664private pattern mustInstanceOfSynchronization_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
26665 Type.name(type,"Synchronization class");
26666 find directInstanceOf(problem,interpretation,element,type);
26667}
26668private pattern scopeDisallowsNewSynchronization_class(problem:LogicProblem, interpretation:PartialInterpretation) {
26669 find interpretation(problem,interpretation);
26670 PartialInterpretation.scopes(interpretation,scope);
26671 Scope.targetTypeInterpretation(scope,typeInterpretation);
26672 Scope.maxNewElements(scope,0);
26673 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
26674 Type.name(type,"Synchronization class");
26675}
26676
26677/**
26678 * An element may be an instance of type "Synchronization class".
26679 */
26680private pattern mayInstanceOfSynchronization_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
26681{
26682 find interpretation(problem,interpretation);
26683 PartialInterpretation.newElements(interpretation,element);
26684 neg find mustInstanceOfTransition_class(problem,interpretation,element);
26685 neg find mustInstanceOfCompositeElement_class(problem,interpretation,element);
26686 neg find mustInstanceOfEntry_class(problem,interpretation,element);
26687 neg find mustInstanceOfRegion_class(problem,interpretation,element);
26688 neg find mustInstanceOfChoice_class(problem,interpretation,element);
26689 neg find mustInstanceOfRegularState_class(problem,interpretation,element);
26690 neg find mustInstanceOfExit_class(problem,interpretation,element);
26691 neg find scopeDisallowsNewSynchronization_class(problem, interpretation);
26692 neg find isPrimitive(element);
26693} or {
26694 find interpretation(problem,interpretation);
26695 PartialInterpretation.openWorldElements(interpretation,element);
26696 neg find mustInstanceOfTransition_class(problem,interpretation,element);
26697 neg find mustInstanceOfCompositeElement_class(problem,interpretation,element);
26698 neg find mustInstanceOfEntry_class(problem,interpretation,element);
26699 neg find mustInstanceOfRegion_class(problem,interpretation,element);
26700 neg find mustInstanceOfChoice_class(problem,interpretation,element);
26701 neg find mustInstanceOfRegularState_class(problem,interpretation,element);
26702 neg find mustInstanceOfExit_class(problem,interpretation,element);
26703 neg find scopeDisallowsNewSynchronization_class(problem, interpretation);
26704 neg find isPrimitive(element);
26705} or
26706{ find mustInstanceOfSynchronization_class(problem,interpretation,element); }
26707/**
26708 * An element must be an instance of type "State class".
26709 */
26710private pattern mustInstanceOfState_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
26711 Type.name(type,"State class");
26712 find directInstanceOf(problem,interpretation,element,type);
26713}
26714private pattern scopeDisallowsNewState_class(problem:LogicProblem, interpretation:PartialInterpretation) {
26715 find interpretation(problem,interpretation);
26716 PartialInterpretation.scopes(interpretation,scope);
26717 Scope.targetTypeInterpretation(scope,typeInterpretation);
26718 Scope.maxNewElements(scope,0);
26719 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
26720 Type.name(type,"State class");
26721}
26722
26723/**
26724 * An element may be an instance of type "State class".
26725 */
26726private pattern mayInstanceOfState_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
26727{
26728 find interpretation(problem,interpretation);
26729 PartialInterpretation.newElements(interpretation,element);
26730 neg find mustInstanceOfPseudostate_class(problem,interpretation,element);
26731 neg find mustInstanceOfTransition_class(problem,interpretation,element);
26732 neg find mustInstanceOfStatechart_class(problem,interpretation,element);
26733 neg find mustInstanceOfRegion_class(problem,interpretation,element);
26734 neg find mustInstanceOfFinalState_class(problem,interpretation,element);
26735 neg find scopeDisallowsNewState_class(problem, interpretation);
26736 neg find isPrimitive(element);
26737} or {
26738 find interpretation(problem,interpretation);
26739 PartialInterpretation.openWorldElements(interpretation,element);
26740 neg find mustInstanceOfPseudostate_class(problem,interpretation,element);
26741 neg find mustInstanceOfTransition_class(problem,interpretation,element);
26742 neg find mustInstanceOfStatechart_class(problem,interpretation,element);
26743 neg find mustInstanceOfRegion_class(problem,interpretation,element);
26744 neg find mustInstanceOfFinalState_class(problem,interpretation,element);
26745 neg find scopeDisallowsNewState_class(problem, interpretation);
26746 neg find isPrimitive(element);
26747} or
26748{ find mustInstanceOfState_class(problem,interpretation,element); }
26749/**
26750 * An element must be an instance of type "RegularState class".
26751 */
26752private pattern mustInstanceOfRegularState_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
26753 Type.name(type,"RegularState class");
26754 find directInstanceOf(problem,interpretation,element,type);
26755}
26756private pattern scopeDisallowsNewRegularState_class(problem:LogicProblem, interpretation:PartialInterpretation) {
26757 find interpretation(problem,interpretation);
26758 PartialInterpretation.scopes(interpretation,scope);
26759 Scope.targetTypeInterpretation(scope,typeInterpretation);
26760 Scope.maxNewElements(scope,0);
26761 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
26762 Type.name(type,"RegularState class");
26763}
26764
26765/**
26766 * An element may be an instance of type "RegularState class".
26767 */
26768private pattern mayInstanceOfRegularState_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
26769{
26770 find interpretation(problem,interpretation);
26771 PartialInterpretation.newElements(interpretation,element);
26772 neg find mustInstanceOfPseudostate_class(problem,interpretation,element);
26773 neg find mustInstanceOfTransition_class(problem,interpretation,element);
26774 neg find mustInstanceOfCompositeElement_class(problem,interpretation,element);
26775 neg find mustInstanceOfRegion_class(problem,interpretation,element);
26776 neg find mustInstanceOfFinalState_class(problem,interpretation,element);
26777 neg find scopeDisallowsNewRegularState_class(problem, interpretation);
26778 neg find isPrimitive(element);
26779} or {
26780 find interpretation(problem,interpretation);
26781 PartialInterpretation.openWorldElements(interpretation,element);
26782 neg find mustInstanceOfPseudostate_class(problem,interpretation,element);
26783 neg find mustInstanceOfTransition_class(problem,interpretation,element);
26784 neg find mustInstanceOfCompositeElement_class(problem,interpretation,element);
26785 neg find mustInstanceOfRegion_class(problem,interpretation,element);
26786 neg find mustInstanceOfFinalState_class(problem,interpretation,element);
26787 neg find scopeDisallowsNewRegularState_class(problem, interpretation);
26788 neg find isPrimitive(element);
26789} or
26790{ find mustInstanceOfRegularState_class(problem,interpretation,element); }
26791/**
26792 * An element must be an instance of type "CompositeElement class".
26793 */
26794private pattern mustInstanceOfCompositeElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
26795 Type.name(type,"CompositeElement class");
26796 find directInstanceOf(problem,interpretation,element,type);
26797}
26798private pattern scopeDisallowsNewCompositeElement_class(problem:LogicProblem, interpretation:PartialInterpretation) {
26799 find interpretation(problem,interpretation);
26800 PartialInterpretation.scopes(interpretation,scope);
26801 Scope.targetTypeInterpretation(scope,typeInterpretation);
26802 Scope.maxNewElements(scope,0);
26803 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
26804 Type.name(type,"CompositeElement class");
26805}
26806
26807/**
26808 * An element may be an instance of type "CompositeElement class".
26809 */
26810private pattern mayInstanceOfCompositeElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
26811{
26812 find interpretation(problem,interpretation);
26813 PartialInterpretation.newElements(interpretation,element);
26814 neg find mustInstanceOfTransition_class(problem,interpretation,element);
26815 neg find mustInstanceOfStatechart_class(problem,interpretation,element);
26816 neg find mustInstanceOfRegion_class(problem,interpretation,element);
26817 neg find mustInstanceOfVertex_class(problem,interpretation,element);
26818 neg find mustInstanceOfCompositeElement_class_UndefinedPart(problem,interpretation,element);
26819 neg find scopeDisallowsNewCompositeElement_class(problem, interpretation);
26820 neg find isPrimitive(element);
26821} or {
26822 find interpretation(problem,interpretation);
26823 PartialInterpretation.openWorldElements(interpretation,element);
26824 neg find mustInstanceOfTransition_class(problem,interpretation,element);
26825 neg find mustInstanceOfStatechart_class(problem,interpretation,element);
26826 neg find mustInstanceOfRegion_class(problem,interpretation,element);
26827 neg find mustInstanceOfVertex_class(problem,interpretation,element);
26828 neg find mustInstanceOfCompositeElement_class_UndefinedPart(problem,interpretation,element);
26829 neg find scopeDisallowsNewCompositeElement_class(problem, interpretation);
26830 neg find isPrimitive(element);
26831} or
26832{ find mustInstanceOfCompositeElement_class(problem,interpretation,element); }
26833/**
26834 * An element must be an instance of type "Choice class".
26835 */
26836private pattern mustInstanceOfChoice_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
26837 Type.name(type,"Choice class");
26838 find directInstanceOf(problem,interpretation,element,type);
26839}
26840private pattern scopeDisallowsNewChoice_class(problem:LogicProblem, interpretation:PartialInterpretation) {
26841 find interpretation(problem,interpretation);
26842 PartialInterpretation.scopes(interpretation,scope);
26843 Scope.targetTypeInterpretation(scope,typeInterpretation);
26844 Scope.maxNewElements(scope,0);
26845 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
26846 Type.name(type,"Choice class");
26847}
26848
26849/**
26850 * An element may be an instance of type "Choice class".
26851 */
26852private pattern mayInstanceOfChoice_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
26853{
26854 find interpretation(problem,interpretation);
26855 PartialInterpretation.newElements(interpretation,element);
26856 neg find mustInstanceOfTransition_class(problem,interpretation,element);
26857 neg find mustInstanceOfCompositeElement_class(problem,interpretation,element);
26858 neg find mustInstanceOfEntry_class(problem,interpretation,element);
26859 neg find mustInstanceOfRegion_class(problem,interpretation,element);
26860 neg find mustInstanceOfRegularState_class(problem,interpretation,element);
26861 neg find mustInstanceOfSynchronization_class(problem,interpretation,element);
26862 neg find mustInstanceOfExit_class(problem,interpretation,element);
26863 neg find scopeDisallowsNewChoice_class(problem, interpretation);
26864 neg find isPrimitive(element);
26865} or {
26866 find interpretation(problem,interpretation);
26867 PartialInterpretation.openWorldElements(interpretation,element);
26868 neg find mustInstanceOfTransition_class(problem,interpretation,element);
26869 neg find mustInstanceOfCompositeElement_class(problem,interpretation,element);
26870 neg find mustInstanceOfEntry_class(problem,interpretation,element);
26871 neg find mustInstanceOfRegion_class(problem,interpretation,element);
26872 neg find mustInstanceOfRegularState_class(problem,interpretation,element);
26873 neg find mustInstanceOfSynchronization_class(problem,interpretation,element);
26874 neg find mustInstanceOfExit_class(problem,interpretation,element);
26875 neg find scopeDisallowsNewChoice_class(problem, interpretation);
26876 neg find isPrimitive(element);
26877} or
26878{ find mustInstanceOfChoice_class(problem,interpretation,element); }
26879/**
26880 * An element must be an instance of type "Exit class".
26881 */
26882private pattern mustInstanceOfExit_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
26883 Type.name(type,"Exit class");
26884 find directInstanceOf(problem,interpretation,element,type);
26885}
26886private pattern scopeDisallowsNewExit_class(problem:LogicProblem, interpretation:PartialInterpretation) {
26887 find interpretation(problem,interpretation);
26888 PartialInterpretation.scopes(interpretation,scope);
26889 Scope.targetTypeInterpretation(scope,typeInterpretation);
26890 Scope.maxNewElements(scope,0);
26891 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
26892 Type.name(type,"Exit class");
26893}
26894
26895/**
26896 * An element may be an instance of type "Exit class".
26897 */
26898private pattern mayInstanceOfExit_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
26899{
26900 find interpretation(problem,interpretation);
26901 PartialInterpretation.newElements(interpretation,element);
26902 neg find mustInstanceOfTransition_class(problem,interpretation,element);
26903 neg find mustInstanceOfCompositeElement_class(problem,interpretation,element);
26904 neg find mustInstanceOfEntry_class(problem,interpretation,element);
26905 neg find mustInstanceOfRegion_class(problem,interpretation,element);
26906 neg find mustInstanceOfChoice_class(problem,interpretation,element);
26907 neg find mustInstanceOfRegularState_class(problem,interpretation,element);
26908 neg find mustInstanceOfSynchronization_class(problem,interpretation,element);
26909 neg find scopeDisallowsNewExit_class(problem, interpretation);
26910 neg find isPrimitive(element);
26911} or {
26912 find interpretation(problem,interpretation);
26913 PartialInterpretation.openWorldElements(interpretation,element);
26914 neg find mustInstanceOfTransition_class(problem,interpretation,element);
26915 neg find mustInstanceOfCompositeElement_class(problem,interpretation,element);
26916 neg find mustInstanceOfEntry_class(problem,interpretation,element);
26917 neg find mustInstanceOfRegion_class(problem,interpretation,element);
26918 neg find mustInstanceOfChoice_class(problem,interpretation,element);
26919 neg find mustInstanceOfRegularState_class(problem,interpretation,element);
26920 neg find mustInstanceOfSynchronization_class(problem,interpretation,element);
26921 neg find scopeDisallowsNewExit_class(problem, interpretation);
26922 neg find isPrimitive(element);
26923} or
26924{ find mustInstanceOfExit_class(problem,interpretation,element); }
26925/**
26926 * An element must be an instance of type "FinalState class".
26927 */
26928private pattern mustInstanceOfFinalState_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
26929 Type.name(type,"FinalState class");
26930 find directInstanceOf(problem,interpretation,element,type);
26931}
26932private pattern scopeDisallowsNewFinalState_class(problem:LogicProblem, interpretation:PartialInterpretation) {
26933 find interpretation(problem,interpretation);
26934 PartialInterpretation.scopes(interpretation,scope);
26935 Scope.targetTypeInterpretation(scope,typeInterpretation);
26936 Scope.maxNewElements(scope,0);
26937 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
26938 Type.name(type,"FinalState class");
26939}
26940
26941/**
26942 * An element may be an instance of type "FinalState class".
26943 */
26944private pattern mayInstanceOfFinalState_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
26945{
26946 find interpretation(problem,interpretation);
26947 PartialInterpretation.newElements(interpretation,element);
26948 neg find mustInstanceOfPseudostate_class(problem,interpretation,element);
26949 neg find mustInstanceOfTransition_class(problem,interpretation,element);
26950 neg find mustInstanceOfCompositeElement_class(problem,interpretation,element);
26951 neg find mustInstanceOfRegion_class(problem,interpretation,element);
26952 neg find scopeDisallowsNewFinalState_class(problem, interpretation);
26953 neg find isPrimitive(element);
26954} or {
26955 find interpretation(problem,interpretation);
26956 PartialInterpretation.openWorldElements(interpretation,element);
26957 neg find mustInstanceOfPseudostate_class(problem,interpretation,element);
26958 neg find mustInstanceOfTransition_class(problem,interpretation,element);
26959 neg find mustInstanceOfCompositeElement_class(problem,interpretation,element);
26960 neg find mustInstanceOfRegion_class(problem,interpretation,element);
26961 neg find scopeDisallowsNewFinalState_class(problem, interpretation);
26962 neg find isPrimitive(element);
26963} or
26964{ find mustInstanceOfFinalState_class(problem,interpretation,element); }
26965/**
26966 * An element must be an instance of type "Statechart class DefinedPart".
26967 */
26968private pattern mustInstanceOfStatechart_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
26969 Type.name(type,"Statechart class DefinedPart");
26970 find directInstanceOf(problem,interpretation,element,type);
26971}
26972private pattern scopeDisallowsNewStatechart_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
26973 find interpretation(problem,interpretation);
26974 PartialInterpretation.scopes(interpretation,scope);
26975 Scope.targetTypeInterpretation(scope,typeInterpretation);
26976 Scope.maxNewElements(scope,0);
26977 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
26978 Type.name(type,"Statechart class DefinedPart");
26979}
26980
26981/**
26982 * An element may be an instance of type "Statechart class DefinedPart".
26983 */
26984private pattern mayInstanceOfStatechart_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
26985{ find mustInstanceOfStatechart_class_DefinedPart(problem,interpretation,element); }
26986/**
26987 * An element must be an instance of type "Statechart class UndefinedPart".
26988 */
26989private pattern mustInstanceOfStatechart_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
26990 Type.name(type,"Statechart class UndefinedPart");
26991 find directInstanceOf(problem,interpretation,element,type);
26992}
26993private pattern scopeDisallowsNewStatechart_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
26994 find interpretation(problem,interpretation);
26995 PartialInterpretation.scopes(interpretation,scope);
26996 Scope.targetTypeInterpretation(scope,typeInterpretation);
26997 Scope.maxNewElements(scope,0);
26998 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
26999 Type.name(type,"Statechart class UndefinedPart");
27000}
27001
27002/**
27003 * An element may be an instance of type "Statechart class UndefinedPart".
27004 */
27005private pattern mayInstanceOfStatechart_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
27006{
27007 find interpretation(problem,interpretation);
27008 PartialInterpretation.newElements(interpretation,element);
27009 neg find mustInstanceOfTransition_class(problem,interpretation,element);
27010 neg find mustInstanceOfRegion_class(problem,interpretation,element);
27011 neg find mustInstanceOfVertex_class(problem,interpretation,element);
27012 neg find scopeDisallowsNewStatechart_class_UndefinedPart(problem, interpretation);
27013 neg find isPrimitive(element);
27014} or {
27015 find interpretation(problem,interpretation);
27016 PartialInterpretation.openWorldElements(interpretation,element);
27017 neg find mustInstanceOfTransition_class(problem,interpretation,element);
27018 neg find mustInstanceOfRegion_class(problem,interpretation,element);
27019 neg find mustInstanceOfVertex_class(problem,interpretation,element);
27020 neg find scopeDisallowsNewStatechart_class_UndefinedPart(problem, interpretation);
27021 neg find isPrimitive(element);
27022} or
27023{ find mustInstanceOfStatechart_class_UndefinedPart(problem,interpretation,element); }
27024/**
27025 * An element must be an instance of type "CompositeElement class DefinedPart".
27026 */
27027private pattern mustInstanceOfCompositeElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
27028 Type.name(type,"CompositeElement class DefinedPart");
27029 find directInstanceOf(problem,interpretation,element,type);
27030}
27031private pattern scopeDisallowsNewCompositeElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
27032 find interpretation(problem,interpretation);
27033 PartialInterpretation.scopes(interpretation,scope);
27034 Scope.targetTypeInterpretation(scope,typeInterpretation);
27035 Scope.maxNewElements(scope,0);
27036 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
27037 Type.name(type,"CompositeElement class DefinedPart");
27038}
27039
27040/**
27041 * An element may be an instance of type "CompositeElement class DefinedPart".
27042 */
27043private pattern mayInstanceOfCompositeElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
27044{ find mustInstanceOfCompositeElement_class_DefinedPart(problem,interpretation,element); }
27045/**
27046 * An element must be an instance of type "CompositeElement class UndefinedPart".
27047 */
27048private pattern mustInstanceOfCompositeElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
27049 Type.name(type,"CompositeElement class UndefinedPart");
27050 find directInstanceOf(problem,interpretation,element,type);
27051}
27052private pattern scopeDisallowsNewCompositeElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
27053 find interpretation(problem,interpretation);
27054 PartialInterpretation.scopes(interpretation,scope);
27055 Scope.targetTypeInterpretation(scope,typeInterpretation);
27056 Scope.maxNewElements(scope,0);
27057 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
27058 Type.name(type,"CompositeElement class UndefinedPart");
27059}
27060
27061/**
27062 * An element may be an instance of type "CompositeElement class UndefinedPart".
27063 */
27064private pattern mayInstanceOfCompositeElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
27065{
27066 find interpretation(problem,interpretation);
27067 PartialInterpretation.newElements(interpretation,element);
27068 neg find mustInstanceOfTransition_class(problem,interpretation,element);
27069 neg find mustInstanceOfStatechart_class(problem,interpretation,element);
27070 neg find mustInstanceOfRegion_class(problem,interpretation,element);
27071 neg find mustInstanceOfVertex_class(problem,interpretation,element);
27072 neg find scopeDisallowsNewCompositeElement_class_UndefinedPart(problem, interpretation);
27073 neg find isPrimitive(element);
27074} or {
27075 find interpretation(problem,interpretation);
27076 PartialInterpretation.openWorldElements(interpretation,element);
27077 neg find mustInstanceOfTransition_class(problem,interpretation,element);
27078 neg find mustInstanceOfStatechart_class(problem,interpretation,element);
27079 neg find mustInstanceOfRegion_class(problem,interpretation,element);
27080 neg find mustInstanceOfVertex_class(problem,interpretation,element);
27081 neg find scopeDisallowsNewCompositeElement_class_UndefinedPart(problem, interpretation);
27082 neg find isPrimitive(element);
27083} or
27084{ find mustInstanceOfCompositeElement_class_UndefinedPart(problem,interpretation,element); }
27085
27086//////////
27087// 1.2 Relation Declaration Indexers
27088//////////
27089/**
27090 * Matcher for detecting tuples t where []incomingTransitions reference Vertex(source,target)
27091 */
27092private pattern mustInRelationincomingTransitions_reference_Vertex(
27093 problem:LogicProblem, interpretation:PartialInterpretation,
27094 source: DefinedElement, target:DefinedElement)
27095{
27096 find interpretation(problem,interpretation);
27097 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
27098 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"incomingTransitions reference Vertex");
27099 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
27100 BinaryElementRelationLink.param1(link,source);
27101 BinaryElementRelationLink.param2(link,target);
27102}
27103/**
27104 * Matcher for detecting tuples t where <>incomingTransitions reference Vertex(source,target)
27105 */
27106private pattern mayInRelationincomingTransitions_reference_Vertex(
27107 problem:LogicProblem, interpretation:PartialInterpretation,
27108 source: DefinedElement, target:DefinedElement)
27109{
27110 find interpretation(problem,interpretation);
27111 // The two endpoint of the link have to exist
27112 find mayExist(problem, interpretation, source);
27113 find mayExist(problem, interpretation, target);
27114 // Type consistency
27115 find mayInstanceOfVertex_class(problem,interpretation,source);
27116 find mayInstanceOfTransition_class(problem,interpretation,target);
27117 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
27118 // the upper bound of the opposite reference multiplicity should be considered.
27119 numberOfExistingOppositeReferences == count find mustInRelationtarget_reference_Transition(problem,interpretation,target,_);
27120 check(numberOfExistingOppositeReferences < 1);
27121} or {
27122 find mustInRelationincomingTransitions_reference_Vertex(problem,interpretation,source,target);
27123}
27124/**
27125 * Matcher for detecting tuples t where []outgoingTransitions reference Vertex(source,target)
27126 */
27127private pattern mustInRelationoutgoingTransitions_reference_Vertex(
27128 problem:LogicProblem, interpretation:PartialInterpretation,
27129 source: DefinedElement, target:DefinedElement)
27130{
27131 find interpretation(problem,interpretation);
27132 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
27133 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"outgoingTransitions reference Vertex");
27134 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
27135 BinaryElementRelationLink.param1(link,source);
27136 BinaryElementRelationLink.param2(link,target);
27137}
27138/**
27139 * Matcher for detecting tuples t where <>outgoingTransitions reference Vertex(source,target)
27140 */
27141private pattern mayInRelationoutgoingTransitions_reference_Vertex(
27142 problem:LogicProblem, interpretation:PartialInterpretation,
27143 source: DefinedElement, target:DefinedElement)
27144{
27145 find interpretation(problem,interpretation);
27146 // The two endpoint of the link have to exist
27147 find mayExist(problem, interpretation, source);
27148 find mayExist(problem, interpretation, target);
27149 // Type consistency
27150 find mayInstanceOfVertex_class(problem,interpretation,source);
27151 find mayInstanceOfTransition_class(problem,interpretation,target);
27152 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
27153 // the upper bound of the opposite reference multiplicity should be considered.
27154 numberOfExistingOppositeReferences == count find mustInRelationsource_reference_Transition(problem,interpretation,target,_);
27155 check(numberOfExistingOppositeReferences < 1);
27156 // The reference is containment, then a new reference cannot be create if:
27157 // 1. Multiple parents
27158 neg find mustContains4(problem,interpretation,_,target);
27159 // 2. Circle in the containment hierarchy
27160 neg find mustTransitiveContains(source,target);
27161} or {
27162 find mustInRelationoutgoingTransitions_reference_Vertex(problem,interpretation,source,target);
27163}
27164/**
27165 * Matcher for detecting tuples t where []vertices reference Region(source,target)
27166 */
27167private pattern mustInRelationvertices_reference_Region(
27168 problem:LogicProblem, interpretation:PartialInterpretation,
27169 source: DefinedElement, target:DefinedElement)
27170{
27171 find interpretation(problem,interpretation);
27172 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
27173 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"vertices reference Region");
27174 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
27175 BinaryElementRelationLink.param1(link,source);
27176 BinaryElementRelationLink.param2(link,target);
27177}
27178/**
27179 * Matcher for detecting tuples t where <>vertices reference Region(source,target)
27180 */
27181private pattern mayInRelationvertices_reference_Region(
27182 problem:LogicProblem, interpretation:PartialInterpretation,
27183 source: DefinedElement, target:DefinedElement)
27184{
27185 find interpretation(problem,interpretation);
27186 // The two endpoint of the link have to exist
27187 find mayExist(problem, interpretation, source);
27188 find mayExist(problem, interpretation, target);
27189 // Type consistency
27190 find mayInstanceOfRegion_class(problem,interpretation,source);
27191 find mayInstanceOfVertex_class(problem,interpretation,target);
27192 // The reference is containment, then a new reference cannot be create if:
27193 // 1. Multiple parents
27194 neg find mustContains4(problem,interpretation,_,target);
27195 // 2. Circle in the containment hierarchy
27196 neg find mustTransitiveContains(source,target);
27197} or {
27198 find mustInRelationvertices_reference_Region(problem,interpretation,source,target);
27199}
27200/**
27201 * Matcher for detecting tuples t where []target reference Transition(source,target)
27202 */
27203private pattern mustInRelationtarget_reference_Transition(
27204 problem:LogicProblem, interpretation:PartialInterpretation,
27205 source: DefinedElement, target:DefinedElement)
27206{
27207 find interpretation(problem,interpretation);
27208 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
27209 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"target reference Transition");
27210 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
27211 BinaryElementRelationLink.param1(link,source);
27212 BinaryElementRelationLink.param2(link,target);
27213}
27214/**
27215 * Matcher for detecting tuples t where <>target reference Transition(source,target)
27216 */
27217private pattern mayInRelationtarget_reference_Transition(
27218 problem:LogicProblem, interpretation:PartialInterpretation,
27219 source: DefinedElement, target:DefinedElement)
27220{
27221 find interpretation(problem,interpretation);
27222 // The two endpoint of the link have to exist
27223 find mayExist(problem, interpretation, source);
27224 find mayExist(problem, interpretation, target);
27225 // Type consistency
27226 find mayInstanceOfTransition_class(problem,interpretation,source);
27227 find mayInstanceOfVertex_class(problem,interpretation,target);
27228 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
27229 // the upper bound of the multiplicity should be considered.
27230 numberOfExistingReferences == count find mustInRelationtarget_reference_Transition(problem,interpretation,source,_);
27231 check(numberOfExistingReferences < 1);
27232} or {
27233 find mustInRelationtarget_reference_Transition(problem,interpretation,source,target);
27234}
27235/**
27236 * Matcher for detecting tuples t where []source reference Transition(source,target)
27237 */
27238private pattern mustInRelationsource_reference_Transition(
27239 problem:LogicProblem, interpretation:PartialInterpretation,
27240 source: DefinedElement, target:DefinedElement)
27241{
27242 find interpretation(problem,interpretation);
27243 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
27244 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"source reference Transition");
27245 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
27246 BinaryElementRelationLink.param1(link,source);
27247 BinaryElementRelationLink.param2(link,target);
27248}
27249/**
27250 * Matcher for detecting tuples t where <>source reference Transition(source,target)
27251 */
27252private pattern mayInRelationsource_reference_Transition(
27253 problem:LogicProblem, interpretation:PartialInterpretation,
27254 source: DefinedElement, target:DefinedElement)
27255{
27256 find interpretation(problem,interpretation);
27257 // The two endpoint of the link have to exist
27258 find mayExist(problem, interpretation, source);
27259 find mayExist(problem, interpretation, target);
27260 // Type consistency
27261 find mayInstanceOfTransition_class(problem,interpretation,source);
27262 find mayInstanceOfVertex_class(problem,interpretation,target);
27263 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
27264 // the upper bound of the multiplicity should be considered.
27265 numberOfExistingReferences == count find mustInRelationsource_reference_Transition(problem,interpretation,source,_);
27266 check(numberOfExistingReferences < 1);
27267 // The eOpposite of the reference is containment, then a referene cannot be created if
27268 // 1. Multiple parents
27269 neg find mustContains4(problem,interpretation,source,_);
27270 // 2. Circle in the containment hierarchy
27271 neg find mustTransitiveContains(source,target);
27272} or {
27273 find mustInRelationsource_reference_Transition(problem,interpretation,source,target);
27274}
27275/**
27276 * Matcher for detecting tuples t where []regions reference CompositeElement(source,target)
27277 */
27278private pattern mustInRelationregions_reference_CompositeElement(
27279 problem:LogicProblem, interpretation:PartialInterpretation,
27280 source: DefinedElement, target:DefinedElement)
27281{
27282 find interpretation(problem,interpretation);
27283 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
27284 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"regions reference CompositeElement");
27285 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
27286 BinaryElementRelationLink.param1(link,source);
27287 BinaryElementRelationLink.param2(link,target);
27288}
27289/**
27290 * Matcher for detecting tuples t where <>regions reference CompositeElement(source,target)
27291 */
27292private pattern mayInRelationregions_reference_CompositeElement(
27293 problem:LogicProblem, interpretation:PartialInterpretation,
27294 source: DefinedElement, target:DefinedElement)
27295{
27296 find interpretation(problem,interpretation);
27297 // The two endpoint of the link have to exist
27298 find mayExist(problem, interpretation, source);
27299 find mayExist(problem, interpretation, target);
27300 // Type consistency
27301 find mayInstanceOfCompositeElement_class(problem,interpretation,source);
27302 find mayInstanceOfRegion_class(problem,interpretation,target);
27303 // The reference is containment, then a new reference cannot be create if:
27304 // 1. Multiple parents
27305 neg find mustContains4(problem,interpretation,_,target);
27306 // 2. Circle in the containment hierarchy
27307 neg find mustTransitiveContains(source,target);
27308} or {
27309 find mustInRelationregions_reference_CompositeElement(problem,interpretation,source,target);
27310}
27311
27312//////////
27313// 1.3 Relation Definition Indexers
27314//////////
27315// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test yakindu queries entryInRegion
27316private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_entryInRegion(
27317 problem:LogicProblem, interpretation:PartialInterpretation,
27318 var_r1, var_e1)
27319{
27320 find interpretation(problem,interpretation);
27321 find mustInstanceOfRegion_class(problem,interpretation,var_r1);
27322 find mustInstanceOfEntry_class(problem,interpretation,var_e1);
27323 // r1 is exported
27324 // e1 is exported
27325 find mustInstanceOfRegion_class(problem,interpretation,var_r1);
27326 find mustInRelationvertices_reference_Region(problem,interpretation,var_r1,var_virtual0);
27327 find mustInstanceOfVertex_class(problem,interpretation,var_virtual0);
27328 var_virtual0 == var_e1;
27329}
27330private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_entryInRegion(
27331 problem:LogicProblem, interpretation:PartialInterpretation,
27332 var_r1, var_e1)
27333{
27334 find interpretation(problem,interpretation);
27335 find mayInstanceOfRegion_class(problem,interpretation,var_r1);
27336 find mayInstanceOfEntry_class(problem,interpretation,var_e1);
27337 // r1 is exported
27338 // e1 is exported
27339 find mayInstanceOfRegion_class(problem,interpretation,var_r1);
27340 find mayInRelationvertices_reference_Region(problem,interpretation,var_r1,var_virtual0);
27341 find mayInstanceOfVertex_class(problem,interpretation,var_virtual0);
27342 find mayEquivalent(problem, interpretation, var_virtual0, var_e1);
27343}
27344private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_entryInRegion(
27345 problem:LogicProblem, interpretation:PartialInterpretation,
27346 var_r1, var_e1)
27347{
27348 find interpretation(problem,interpretation);
27349 find mustInstanceOfRegion_class(problem,interpretation,var_r1);
27350 find mustInstanceOfEntry_class(problem,interpretation,var_e1);
27351 // r1 is exported
27352 // e1 is exported
27353 find mustInstanceOfRegion_class(problem,interpretation,var_r1);
27354 find mustInRelationvertices_reference_Region(problem,interpretation,var_r1,var_virtual0);
27355 find mustInstanceOfVertex_class(problem,interpretation,var_virtual0);
27356 var_virtual0 == var_e1;
27357}
27358// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test yakindu queries noEntryInRegion
27359private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_noEntryInRegion(
27360 problem:LogicProblem, interpretation:PartialInterpretation,
27361 var_r1)
27362{
27363 find interpretation(problem,interpretation);
27364 find mustInstanceOfRegion_class(problem,interpretation,var_r1);
27365 // r1 is exported
27366 neg find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_entryInRegion(problem,interpretation,var_r1,_var__0);
27367}
27368private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_noEntryInRegion(
27369 problem:LogicProblem, interpretation:PartialInterpretation,
27370 var_r1)
27371{
27372 find interpretation(problem,interpretation);
27373 find mayInstanceOfRegion_class(problem,interpretation,var_r1);
27374 // r1 is exported
27375 neg find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_entryInRegion(problem,interpretation,var_r1,_var__0);
27376}
27377private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_noEntryInRegion(
27378 problem:LogicProblem, interpretation:PartialInterpretation,
27379 var_r1)
27380{
27381 find interpretation(problem,interpretation);
27382 find mustInstanceOfRegion_class(problem,interpretation,var_r1);
27383 // r1 is exported
27384 neg find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_entryInRegion(problem,interpretation,var_r1,_var__0);
27385}
27386// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test yakindu queries multipleEntryInRegion
27387private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_multipleEntryInRegion(
27388 problem:LogicProblem, interpretation:PartialInterpretation,
27389 var_r)
27390{
27391 find interpretation(problem,interpretation);
27392 find mustInstanceOfRegion_class(problem,interpretation,var_r);
27393 // r is exported
27394 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_entryInRegion(problem,interpretation,var_r,var_e1);
27395 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_entryInRegion(problem,interpretation,var_r,var_e2);
27396 neg find mayEquivalent(problem, interpretation, var_e1, var_e2);
27397}
27398private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_multipleEntryInRegion(
27399 problem:LogicProblem, interpretation:PartialInterpretation,
27400 var_r)
27401{
27402 find interpretation(problem,interpretation);
27403 find mayInstanceOfRegion_class(problem,interpretation,var_r);
27404 // r is exported
27405 find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_entryInRegion(problem,interpretation,var_r,var_e1);
27406 find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_entryInRegion(problem,interpretation,var_r,var_e2);
27407 var_e1 != var_e2;
27408}
27409private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_multipleEntryInRegion(
27410 problem:LogicProblem, interpretation:PartialInterpretation,
27411 var_r)
27412{
27413 find interpretation(problem,interpretation);
27414 find mustInstanceOfRegion_class(problem,interpretation,var_r);
27415 // r is exported
27416 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_entryInRegion(problem,interpretation,var_r,var_e1);
27417 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_entryInRegion(problem,interpretation,var_r,var_e2);
27418 var_e1 != var_e2;
27419}
27420// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test yakindu queries transition
27421private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(
27422 problem:LogicProblem, interpretation:PartialInterpretation,
27423 var_t, var_src, var_trg)
27424{
27425 find interpretation(problem,interpretation);
27426 find mustInstanceOfTransition_class(problem,interpretation,var_t);
27427 find mustInstanceOfVertex_class(problem,interpretation,var_src);
27428 find mustInstanceOfVertex_class(problem,interpretation,var_trg);
27429 // t is exported
27430 // src is exported
27431 // trg is exported
27432 find mustInstanceOfTransition_class(problem,interpretation,var_t);
27433 find mustInRelationsource_reference_Transition(problem,interpretation,var_t,var_virtual0);
27434 find mustInstanceOfVertex_class(problem,interpretation,var_virtual0);
27435 var_virtual0 == var_src;
27436 find mustInstanceOfTransition_class(problem,interpretation,var_t);
27437 find mustInRelationtarget_reference_Transition(problem,interpretation,var_t,var_virtual1);
27438 find mustInstanceOfVertex_class(problem,interpretation,var_virtual1);
27439 var_virtual1 == var_trg;
27440}
27441private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(
27442 problem:LogicProblem, interpretation:PartialInterpretation,
27443 var_t, var_src, var_trg)
27444{
27445 find interpretation(problem,interpretation);
27446 find mayInstanceOfTransition_class(problem,interpretation,var_t);
27447 find mayInstanceOfVertex_class(problem,interpretation,var_src);
27448 find mayInstanceOfVertex_class(problem,interpretation,var_trg);
27449 // t is exported
27450 // src is exported
27451 // trg is exported
27452 find mayInstanceOfTransition_class(problem,interpretation,var_t);
27453 find mayInRelationsource_reference_Transition(problem,interpretation,var_t,var_virtual0);
27454 find mayInstanceOfVertex_class(problem,interpretation,var_virtual0);
27455 find mayEquivalent(problem, interpretation, var_virtual0, var_src);
27456 find mayInstanceOfTransition_class(problem,interpretation,var_t);
27457 find mayInRelationtarget_reference_Transition(problem,interpretation,var_t,var_virtual1);
27458 find mayInstanceOfVertex_class(problem,interpretation,var_virtual1);
27459 find mayEquivalent(problem, interpretation, var_virtual1, var_trg);
27460}
27461private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(
27462 problem:LogicProblem, interpretation:PartialInterpretation,
27463 var_t, var_src, var_trg)
27464{
27465 find interpretation(problem,interpretation);
27466 find mustInstanceOfTransition_class(problem,interpretation,var_t);
27467 find mustInstanceOfVertex_class(problem,interpretation,var_src);
27468 find mustInstanceOfVertex_class(problem,interpretation,var_trg);
27469 // t is exported
27470 // src is exported
27471 // trg is exported
27472 find mustInstanceOfTransition_class(problem,interpretation,var_t);
27473 find mustInRelationsource_reference_Transition(problem,interpretation,var_t,var_virtual0);
27474 find mustInstanceOfVertex_class(problem,interpretation,var_virtual0);
27475 var_virtual0 == var_src;
27476 find mustInstanceOfTransition_class(problem,interpretation,var_t);
27477 find mustInRelationtarget_reference_Transition(problem,interpretation,var_t,var_virtual1);
27478 find mustInstanceOfVertex_class(problem,interpretation,var_virtual1);
27479 var_virtual1 == var_trg;
27480}
27481// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test yakindu queries incomingToEntry
27482private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_incomingToEntry(
27483 problem:LogicProblem, interpretation:PartialInterpretation,
27484 var_t, var_e)
27485{
27486 find interpretation(problem,interpretation);
27487 find mustInstanceOfTransition_class(problem,interpretation,var_t);
27488 find mustInstanceOfEntry_class(problem,interpretation,var_e);
27489 // t is exported
27490 // e is exported
27491 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,var_t,_var__0,var_e);
27492}
27493private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_incomingToEntry(
27494 problem:LogicProblem, interpretation:PartialInterpretation,
27495 var_t, var_e)
27496{
27497 find interpretation(problem,interpretation);
27498 find mayInstanceOfTransition_class(problem,interpretation,var_t);
27499 find mayInstanceOfEntry_class(problem,interpretation,var_e);
27500 // t is exported
27501 // e is exported
27502 find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,var_t,_var__0,var_e);
27503}
27504private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_incomingToEntry(
27505 problem:LogicProblem, interpretation:PartialInterpretation,
27506 var_t, var_e)
27507{
27508 find interpretation(problem,interpretation);
27509 find mustInstanceOfTransition_class(problem,interpretation,var_t);
27510 find mustInstanceOfEntry_class(problem,interpretation,var_e);
27511 // t is exported
27512 // e is exported
27513 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,var_t,_var__0,var_e);
27514}
27515// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test yakindu queries noOutgoingTransitionFromEntry
27516private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_noOutgoingTransitionFromEntry(
27517 problem:LogicProblem, interpretation:PartialInterpretation,
27518 var_e)
27519{
27520 find interpretation(problem,interpretation);
27521 find mustInstanceOfEntry_class(problem,interpretation,var_e);
27522 // e is exported
27523 neg find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,var_e,_var__1);
27524}
27525private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_noOutgoingTransitionFromEntry(
27526 problem:LogicProblem, interpretation:PartialInterpretation,
27527 var_e)
27528{
27529 find interpretation(problem,interpretation);
27530 find mayInstanceOfEntry_class(problem,interpretation,var_e);
27531 // e is exported
27532 neg find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,var_e,_var__1);
27533}
27534private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_noOutgoingTransitionFromEntry(
27535 problem:LogicProblem, interpretation:PartialInterpretation,
27536 var_e)
27537{
27538 find interpretation(problem,interpretation);
27539 find mustInstanceOfEntry_class(problem,interpretation,var_e);
27540 // e is exported
27541 neg find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,var_e,_var__1);
27542}
27543// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test yakindu queries multipleTransitionFromEntry
27544private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_multipleTransitionFromEntry(
27545 problem:LogicProblem, interpretation:PartialInterpretation,
27546 var_e, var_t1, var_t2)
27547{
27548 find interpretation(problem,interpretation);
27549 find mustInstanceOfEntry_class(problem,interpretation,var_e);
27550 find mustInstanceOfTransition_class(problem,interpretation,var_t1);
27551 find mustInstanceOfTransition_class(problem,interpretation,var_t2);
27552 // e is exported
27553 // t1 is exported
27554 // t2 is exported
27555 find mustInstanceOfEntry_class(problem,interpretation,var_e);
27556 find mustInRelationoutgoingTransitions_reference_Vertex(problem,interpretation,var_e,var_virtual0);
27557 find mustInstanceOfTransition_class(problem,interpretation,var_virtual0);
27558 var_virtual0 == var_t1;
27559 find mustInstanceOfEntry_class(problem,interpretation,var_e);
27560 find mustInRelationoutgoingTransitions_reference_Vertex(problem,interpretation,var_e,var_virtual1);
27561 find mustInstanceOfTransition_class(problem,interpretation,var_virtual1);
27562 var_virtual1 == var_t2;
27563 neg find mayEquivalent(problem, interpretation, var_t1, var_t2);
27564}
27565private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_multipleTransitionFromEntry(
27566 problem:LogicProblem, interpretation:PartialInterpretation,
27567 var_e, var_t1, var_t2)
27568{
27569 find interpretation(problem,interpretation);
27570 find mayInstanceOfEntry_class(problem,interpretation,var_e);
27571 find mayInstanceOfTransition_class(problem,interpretation,var_t1);
27572 find mayInstanceOfTransition_class(problem,interpretation,var_t2);
27573 // e is exported
27574 // t1 is exported
27575 // t2 is exported
27576 find mayInstanceOfEntry_class(problem,interpretation,var_e);
27577 find mayInRelationoutgoingTransitions_reference_Vertex(problem,interpretation,var_e,var_virtual0);
27578 find mayInstanceOfTransition_class(problem,interpretation,var_virtual0);
27579 find mayEquivalent(problem, interpretation, var_virtual0, var_t1);
27580 find mayInstanceOfEntry_class(problem,interpretation,var_e);
27581 find mayInRelationoutgoingTransitions_reference_Vertex(problem,interpretation,var_e,var_virtual1);
27582 find mayInstanceOfTransition_class(problem,interpretation,var_virtual1);
27583 find mayEquivalent(problem, interpretation, var_virtual1, var_t2);
27584 var_t1 != var_t2;
27585}
27586private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_multipleTransitionFromEntry(
27587 problem:LogicProblem, interpretation:PartialInterpretation,
27588 var_e, var_t1, var_t2)
27589{
27590 find interpretation(problem,interpretation);
27591 find mustInstanceOfEntry_class(problem,interpretation,var_e);
27592 find mustInstanceOfTransition_class(problem,interpretation,var_t1);
27593 find mustInstanceOfTransition_class(problem,interpretation,var_t2);
27594 // e is exported
27595 // t1 is exported
27596 // t2 is exported
27597 find mustInstanceOfEntry_class(problem,interpretation,var_e);
27598 find mustInRelationoutgoingTransitions_reference_Vertex(problem,interpretation,var_e,var_virtual0);
27599 find mustInstanceOfTransition_class(problem,interpretation,var_virtual0);
27600 var_virtual0 == var_t1;
27601 find mustInstanceOfEntry_class(problem,interpretation,var_e);
27602 find mustInRelationoutgoingTransitions_reference_Vertex(problem,interpretation,var_e,var_virtual1);
27603 find mustInstanceOfTransition_class(problem,interpretation,var_virtual1);
27604 var_virtual1 == var_t2;
27605 var_t1 != var_t2;
27606}
27607// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test yakindu queries outgoingFromExit
27608private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_outgoingFromExit(
27609 problem:LogicProblem, interpretation:PartialInterpretation,
27610 var_t, var_e)
27611{
27612 find interpretation(problem,interpretation);
27613 find mustInstanceOfTransition_class(problem,interpretation,var_t);
27614 find mustInstanceOfExit_class(problem,interpretation,var_e);
27615 // t is exported
27616 // e is exported
27617 find mustInstanceOfExit_class(problem,interpretation,var_e);
27618 find mustInRelationoutgoingTransitions_reference_Vertex(problem,interpretation,var_e,var_virtual0);
27619 find mustInstanceOfTransition_class(problem,interpretation,var_virtual0);
27620 var_virtual0 == var_t;
27621}
27622private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_outgoingFromExit(
27623 problem:LogicProblem, interpretation:PartialInterpretation,
27624 var_t, var_e)
27625{
27626 find interpretation(problem,interpretation);
27627 find mayInstanceOfTransition_class(problem,interpretation,var_t);
27628 find mayInstanceOfExit_class(problem,interpretation,var_e);
27629 // t is exported
27630 // e is exported
27631 find mayInstanceOfExit_class(problem,interpretation,var_e);
27632 find mayInRelationoutgoingTransitions_reference_Vertex(problem,interpretation,var_e,var_virtual0);
27633 find mayInstanceOfTransition_class(problem,interpretation,var_virtual0);
27634 find mayEquivalent(problem, interpretation, var_virtual0, var_t);
27635}
27636private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_outgoingFromExit(
27637 problem:LogicProblem, interpretation:PartialInterpretation,
27638 var_t, var_e)
27639{
27640 find interpretation(problem,interpretation);
27641 find mustInstanceOfTransition_class(problem,interpretation,var_t);
27642 find mustInstanceOfExit_class(problem,interpretation,var_e);
27643 // t is exported
27644 // e is exported
27645 find mustInstanceOfExit_class(problem,interpretation,var_e);
27646 find mustInRelationoutgoingTransitions_reference_Vertex(problem,interpretation,var_e,var_virtual0);
27647 find mustInstanceOfTransition_class(problem,interpretation,var_virtual0);
27648 var_virtual0 == var_t;
27649}
27650// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test yakindu queries outgoingFromFinal
27651private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_outgoingFromFinal(
27652 problem:LogicProblem, interpretation:PartialInterpretation,
27653 var_t, var_f)
27654{
27655 find interpretation(problem,interpretation);
27656 find mustInstanceOfTransition_class(problem,interpretation,var_t);
27657 find mustInstanceOfFinalState_class(problem,interpretation,var_f);
27658 // t is exported
27659 // f is exported
27660 find mustInstanceOfFinalState_class(problem,interpretation,var_f);
27661 find mustInRelationoutgoingTransitions_reference_Vertex(problem,interpretation,var_f,var_virtual0);
27662 find mustInstanceOfTransition_class(problem,interpretation,var_virtual0);
27663 var_virtual0 == var_t;
27664}
27665private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_outgoingFromFinal(
27666 problem:LogicProblem, interpretation:PartialInterpretation,
27667 var_t, var_f)
27668{
27669 find interpretation(problem,interpretation);
27670 find mayInstanceOfTransition_class(problem,interpretation,var_t);
27671 find mayInstanceOfFinalState_class(problem,interpretation,var_f);
27672 // t is exported
27673 // f is exported
27674 find mayInstanceOfFinalState_class(problem,interpretation,var_f);
27675 find mayInRelationoutgoingTransitions_reference_Vertex(problem,interpretation,var_f,var_virtual0);
27676 find mayInstanceOfTransition_class(problem,interpretation,var_virtual0);
27677 find mayEquivalent(problem, interpretation, var_virtual0, var_t);
27678}
27679private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_outgoingFromFinal(
27680 problem:LogicProblem, interpretation:PartialInterpretation,
27681 var_t, var_f)
27682{
27683 find interpretation(problem,interpretation);
27684 find mustInstanceOfTransition_class(problem,interpretation,var_t);
27685 find mustInstanceOfFinalState_class(problem,interpretation,var_f);
27686 // t is exported
27687 // f is exported
27688 find mustInstanceOfFinalState_class(problem,interpretation,var_f);
27689 find mustInRelationoutgoingTransitions_reference_Vertex(problem,interpretation,var_f,var_virtual0);
27690 find mustInstanceOfTransition_class(problem,interpretation,var_virtual0);
27691 var_virtual0 == var_t;
27692}
27693// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test yakindu queries noStateInRegion
27694private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_noStateInRegion(
27695 problem:LogicProblem, interpretation:PartialInterpretation,
27696 var_region)
27697{
27698 find interpretation(problem,interpretation);
27699 find mustInstanceOfRegion_class(problem,interpretation,var_region);
27700 // region is exported
27701 neg find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_StateInRegion(problem,interpretation,var_region,_var__0);
27702}
27703private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_noStateInRegion(
27704 problem:LogicProblem, interpretation:PartialInterpretation,
27705 var_region)
27706{
27707 find interpretation(problem,interpretation);
27708 find mayInstanceOfRegion_class(problem,interpretation,var_region);
27709 // region is exported
27710 neg find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_StateInRegion(problem,interpretation,var_region,_var__0);
27711}
27712private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_noStateInRegion(
27713 problem:LogicProblem, interpretation:PartialInterpretation,
27714 var_region)
27715{
27716 find interpretation(problem,interpretation);
27717 find mustInstanceOfRegion_class(problem,interpretation,var_region);
27718 // region is exported
27719 neg find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_StateInRegion(problem,interpretation,var_region,_var__0);
27720}
27721// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test yakindu queries StateInRegion
27722private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_StateInRegion(
27723 problem:LogicProblem, interpretation:PartialInterpretation,
27724 var_region, var_state)
27725{
27726 find interpretation(problem,interpretation);
27727 find mustInstanceOfRegion_class(problem,interpretation,var_region);
27728 find mustInstanceOfState_class(problem,interpretation,var_state);
27729 // region is exported
27730 // state is exported
27731 find mustInstanceOfRegion_class(problem,interpretation,var_region);
27732 find mustInRelationvertices_reference_Region(problem,interpretation,var_region,var_virtual0);
27733 find mustInstanceOfVertex_class(problem,interpretation,var_virtual0);
27734 var_virtual0 == var_state;
27735}
27736private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_StateInRegion(
27737 problem:LogicProblem, interpretation:PartialInterpretation,
27738 var_region, var_state)
27739{
27740 find interpretation(problem,interpretation);
27741 find mayInstanceOfRegion_class(problem,interpretation,var_region);
27742 find mayInstanceOfState_class(problem,interpretation,var_state);
27743 // region is exported
27744 // state is exported
27745 find mayInstanceOfRegion_class(problem,interpretation,var_region);
27746 find mayInRelationvertices_reference_Region(problem,interpretation,var_region,var_virtual0);
27747 find mayInstanceOfVertex_class(problem,interpretation,var_virtual0);
27748 find mayEquivalent(problem, interpretation, var_virtual0, var_state);
27749}
27750private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_StateInRegion(
27751 problem:LogicProblem, interpretation:PartialInterpretation,
27752 var_region, var_state)
27753{
27754 find interpretation(problem,interpretation);
27755 find mustInstanceOfRegion_class(problem,interpretation,var_region);
27756 find mustInstanceOfState_class(problem,interpretation,var_state);
27757 // region is exported
27758 // state is exported
27759 find mustInstanceOfRegion_class(problem,interpretation,var_region);
27760 find mustInRelationvertices_reference_Region(problem,interpretation,var_region,var_virtual0);
27761 find mustInstanceOfVertex_class(problem,interpretation,var_virtual0);
27762 var_virtual0 == var_state;
27763}
27764// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test yakindu queries choiceHasNoOutgoing
27765private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_choiceHasNoOutgoing(
27766 problem:LogicProblem, interpretation:PartialInterpretation,
27767 var_c)
27768{
27769 find interpretation(problem,interpretation);
27770 find mustInstanceOfChoice_class(problem,interpretation,var_c);
27771 // c is exported
27772 neg find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,var_c,_var__1);
27773}
27774private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_choiceHasNoOutgoing(
27775 problem:LogicProblem, interpretation:PartialInterpretation,
27776 var_c)
27777{
27778 find interpretation(problem,interpretation);
27779 find mayInstanceOfChoice_class(problem,interpretation,var_c);
27780 // c is exported
27781 neg find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,var_c,_var__1);
27782}
27783private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_choiceHasNoOutgoing(
27784 problem:LogicProblem, interpretation:PartialInterpretation,
27785 var_c)
27786{
27787 find interpretation(problem,interpretation);
27788 find mustInstanceOfChoice_class(problem,interpretation,var_c);
27789 // c is exported
27790 neg find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,var_c,_var__1);
27791}
27792// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test yakindu queries choiceHasNoIncoming
27793private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_choiceHasNoIncoming(
27794 problem:LogicProblem, interpretation:PartialInterpretation,
27795 var_c)
27796{
27797 find interpretation(problem,interpretation);
27798 find mustInstanceOfChoice_class(problem,interpretation,var_c);
27799 // c is exported
27800 neg find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,_var__1,var_c);
27801}
27802private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_choiceHasNoIncoming(
27803 problem:LogicProblem, interpretation:PartialInterpretation,
27804 var_c)
27805{
27806 find interpretation(problem,interpretation);
27807 find mayInstanceOfChoice_class(problem,interpretation,var_c);
27808 // c is exported
27809 neg find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,_var__1,var_c);
27810}
27811private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_choiceHasNoIncoming(
27812 problem:LogicProblem, interpretation:PartialInterpretation,
27813 var_c)
27814{
27815 find interpretation(problem,interpretation);
27816 find mustInstanceOfChoice_class(problem,interpretation,var_c);
27817 // c is exported
27818 neg find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,_var__1,var_c);
27819}
27820// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test yakindu queries synchHasNoOutgoing
27821private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_synchHasNoOutgoing(
27822 problem:LogicProblem, interpretation:PartialInterpretation,
27823 var_s)
27824{
27825 find interpretation(problem,interpretation);
27826 find mustInstanceOfSynchronization_class(problem,interpretation,var_s);
27827 // s is exported
27828 neg find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,var_s,_var__1);
27829}
27830private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_synchHasNoOutgoing(
27831 problem:LogicProblem, interpretation:PartialInterpretation,
27832 var_s)
27833{
27834 find interpretation(problem,interpretation);
27835 find mayInstanceOfSynchronization_class(problem,interpretation,var_s);
27836 // s is exported
27837 neg find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,var_s,_var__1);
27838}
27839private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_synchHasNoOutgoing(
27840 problem:LogicProblem, interpretation:PartialInterpretation,
27841 var_s)
27842{
27843 find interpretation(problem,interpretation);
27844 find mustInstanceOfSynchronization_class(problem,interpretation,var_s);
27845 // s is exported
27846 neg find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,var_s,_var__1);
27847}
27848// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test yakindu queries synchHasNoIncoming
27849private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_synchHasNoIncoming(
27850 problem:LogicProblem, interpretation:PartialInterpretation,
27851 var_s)
27852{
27853 find interpretation(problem,interpretation);
27854 find mustInstanceOfSynchronization_class(problem,interpretation,var_s);
27855 // s is exported
27856 neg find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,_var__1,var_s);
27857}
27858private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_synchHasNoIncoming(
27859 problem:LogicProblem, interpretation:PartialInterpretation,
27860 var_s)
27861{
27862 find interpretation(problem,interpretation);
27863 find mayInstanceOfSynchronization_class(problem,interpretation,var_s);
27864 // s is exported
27865 neg find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,_var__1,var_s);
27866}
27867private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_synchHasNoIncoming(
27868 problem:LogicProblem, interpretation:PartialInterpretation,
27869 var_s)
27870{
27871 find interpretation(problem,interpretation);
27872 find mustInstanceOfSynchronization_class(problem,interpretation,var_s);
27873 // s is exported
27874 neg find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,_var__1,var_s);
27875}
27876// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test yakindu queries SynchronizedIncomingInSameRegion
27877private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_SynchronizedIncomingInSameRegion(
27878 problem:LogicProblem, interpretation:PartialInterpretation,
27879 var_s, var_v1, var_v2)
27880{
27881 find interpretation(problem,interpretation);
27882 find mustInstanceOfSynchronization_class(problem,interpretation,var_s);
27883 find mustInstanceOfVertex_class(problem,interpretation,var_v1);
27884 find mustInstanceOfVertex_class(problem,interpretation,var_v2);
27885 // s is exported
27886 // v1 is exported
27887 // v2 is exported
27888 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,var_t1,var_v1,var_s);
27889 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,var_t2,var_v2,var_s);
27890 neg find mayEquivalent(problem, interpretation, var_t1, var_t2);
27891 find mustInstanceOfRegion_class(problem,interpretation,var_r);
27892 find mustInRelationvertices_reference_Region(problem,interpretation,var_r,var_virtual0);
27893 find mustInstanceOfVertex_class(problem,interpretation,var_virtual0);
27894 var_virtual0 == var_v1;
27895 find mustInstanceOfRegion_class(problem,interpretation,var_r);
27896 find mustInRelationvertices_reference_Region(problem,interpretation,var_r,var_virtual1);
27897 find mustInstanceOfVertex_class(problem,interpretation,var_virtual1);
27898 var_virtual1 == var_v2;
27899}or{
27900 find interpretation(problem,interpretation);
27901 find mustInstanceOfSynchronization_class(problem,interpretation,var_s);
27902 find mustInstanceOfVertex_class(problem,interpretation,var_v1);
27903 find mustInstanceOfVertex_class(problem,interpretation,var_v2);
27904 // s is exported
27905 // v1 is exported
27906 // v2 is exported
27907 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,var_t1,var_s,var_v1);
27908 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,var_t2,var_s,var_v2);
27909 neg find mayEquivalent(problem, interpretation, var_t1, var_t2);
27910 find mustInstanceOfRegion_class(problem,interpretation,var_r);
27911 find mustInRelationvertices_reference_Region(problem,interpretation,var_r,var_virtual0);
27912 find mustInstanceOfVertex_class(problem,interpretation,var_virtual0);
27913 var_virtual0 == var_v1;
27914 find mustInstanceOfRegion_class(problem,interpretation,var_r);
27915 find mustInRelationvertices_reference_Region(problem,interpretation,var_r,var_virtual1);
27916 find mustInstanceOfVertex_class(problem,interpretation,var_virtual1);
27917 var_virtual1 == var_v2;
27918}
27919private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_SynchronizedIncomingInSameRegion(
27920 problem:LogicProblem, interpretation:PartialInterpretation,
27921 var_s, var_v1, var_v2)
27922{
27923 find interpretation(problem,interpretation);
27924 find mayInstanceOfSynchronization_class(problem,interpretation,var_s);
27925 find mayInstanceOfVertex_class(problem,interpretation,var_v1);
27926 find mayInstanceOfVertex_class(problem,interpretation,var_v2);
27927 // s is exported
27928 // v1 is exported
27929 // v2 is exported
27930 find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,var_t1,var_v1,var_s);
27931 find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,var_t2,var_v2,var_s);
27932 var_t1 != var_t2;
27933 find mayInstanceOfRegion_class(problem,interpretation,var_r);
27934 find mayInRelationvertices_reference_Region(problem,interpretation,var_r,var_virtual0);
27935 find mayInstanceOfVertex_class(problem,interpretation,var_virtual0);
27936 find mayEquivalent(problem, interpretation, var_virtual0, var_v1);
27937 find mayInstanceOfRegion_class(problem,interpretation,var_r);
27938 find mayInRelationvertices_reference_Region(problem,interpretation,var_r,var_virtual1);
27939 find mayInstanceOfVertex_class(problem,interpretation,var_virtual1);
27940 find mayEquivalent(problem, interpretation, var_virtual1, var_v2);
27941}or{
27942 find interpretation(problem,interpretation);
27943 find mayInstanceOfSynchronization_class(problem,interpretation,var_s);
27944 find mayInstanceOfVertex_class(problem,interpretation,var_v1);
27945 find mayInstanceOfVertex_class(problem,interpretation,var_v2);
27946 // s is exported
27947 // v1 is exported
27948 // v2 is exported
27949 find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,var_t1,var_s,var_v1);
27950 find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,var_t2,var_s,var_v2);
27951 var_t1 != var_t2;
27952 find mayInstanceOfRegion_class(problem,interpretation,var_r);
27953 find mayInRelationvertices_reference_Region(problem,interpretation,var_r,var_virtual0);
27954 find mayInstanceOfVertex_class(problem,interpretation,var_virtual0);
27955 find mayEquivalent(problem, interpretation, var_virtual0, var_v1);
27956 find mayInstanceOfRegion_class(problem,interpretation,var_r);
27957 find mayInRelationvertices_reference_Region(problem,interpretation,var_r,var_virtual1);
27958 find mayInstanceOfVertex_class(problem,interpretation,var_virtual1);
27959 find mayEquivalent(problem, interpretation, var_virtual1, var_v2);
27960}
27961private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_SynchronizedIncomingInSameRegion(
27962 problem:LogicProblem, interpretation:PartialInterpretation,
27963 var_s, var_v1, var_v2)
27964{
27965 find interpretation(problem,interpretation);
27966 find mustInstanceOfSynchronization_class(problem,interpretation,var_s);
27967 find mustInstanceOfVertex_class(problem,interpretation,var_v1);
27968 find mustInstanceOfVertex_class(problem,interpretation,var_v2);
27969 // s is exported
27970 // v1 is exported
27971 // v2 is exported
27972 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,var_t1,var_v1,var_s);
27973 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,var_t2,var_v2,var_s);
27974 var_t1 != var_t2;
27975 find mustInstanceOfRegion_class(problem,interpretation,var_r);
27976 find mustInRelationvertices_reference_Region(problem,interpretation,var_r,var_virtual0);
27977 find mustInstanceOfVertex_class(problem,interpretation,var_virtual0);
27978 var_virtual0 == var_v1;
27979 find mustInstanceOfRegion_class(problem,interpretation,var_r);
27980 find mustInRelationvertices_reference_Region(problem,interpretation,var_r,var_virtual1);
27981 find mustInstanceOfVertex_class(problem,interpretation,var_virtual1);
27982 var_virtual1 == var_v2;
27983}or{
27984 find interpretation(problem,interpretation);
27985 find mustInstanceOfSynchronization_class(problem,interpretation,var_s);
27986 find mustInstanceOfVertex_class(problem,interpretation,var_v1);
27987 find mustInstanceOfVertex_class(problem,interpretation,var_v2);
27988 // s is exported
27989 // v1 is exported
27990 // v2 is exported
27991 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,var_t1,var_s,var_v1);
27992 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,var_t2,var_s,var_v2);
27993 var_t1 != var_t2;
27994 find mustInstanceOfRegion_class(problem,interpretation,var_r);
27995 find mustInRelationvertices_reference_Region(problem,interpretation,var_r,var_virtual0);
27996 find mustInstanceOfVertex_class(problem,interpretation,var_virtual0);
27997 var_virtual0 == var_v1;
27998 find mustInstanceOfRegion_class(problem,interpretation,var_r);
27999 find mustInRelationvertices_reference_Region(problem,interpretation,var_r,var_virtual1);
28000 find mustInstanceOfVertex_class(problem,interpretation,var_virtual1);
28001 var_virtual1 == var_v2;
28002}
28003// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test yakindu queries notSynchronizingStates
28004private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_notSynchronizingStates(
28005 problem:LogicProblem, interpretation:PartialInterpretation,
28006 var_s)
28007{
28008 find interpretation(problem,interpretation);
28009 find mustInstanceOfSynchronization_class(problem,interpretation,var_s);
28010 // s is exported
28011 neg find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_hasMultipleOutgoingTrainsition(problem,interpretation,var_s);
28012 neg find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_hasMultipleIncomingTrainsition(problem,interpretation,var_s);
28013}
28014private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_notSynchronizingStates(
28015 problem:LogicProblem, interpretation:PartialInterpretation,
28016 var_s)
28017{
28018 find interpretation(problem,interpretation);
28019 find mayInstanceOfSynchronization_class(problem,interpretation,var_s);
28020 // s is exported
28021 neg find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_hasMultipleOutgoingTrainsition(problem,interpretation,var_s);
28022 neg find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_hasMultipleIncomingTrainsition(problem,interpretation,var_s);
28023}
28024private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_notSynchronizingStates(
28025 problem:LogicProblem, interpretation:PartialInterpretation,
28026 var_s)
28027{
28028 find interpretation(problem,interpretation);
28029 find mustInstanceOfSynchronization_class(problem,interpretation,var_s);
28030 // s is exported
28031 neg find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_hasMultipleOutgoingTrainsition(problem,interpretation,var_s);
28032 neg find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_hasMultipleIncomingTrainsition(problem,interpretation,var_s);
28033}
28034// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test yakindu queries hasMultipleOutgoingTrainsition
28035private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_hasMultipleOutgoingTrainsition(
28036 problem:LogicProblem, interpretation:PartialInterpretation,
28037 var_v)
28038{
28039 find interpretation(problem,interpretation);
28040 find mustInstanceOfSynchronization_class(problem,interpretation,var_v);
28041 // v is exported
28042 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,var_v,var_trg1);
28043 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__1,var_v,var_trg2);
28044 neg find mayEquivalent(problem, interpretation, var_trg1, var_trg2);
28045}
28046private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_hasMultipleOutgoingTrainsition(
28047 problem:LogicProblem, interpretation:PartialInterpretation,
28048 var_v)
28049{
28050 find interpretation(problem,interpretation);
28051 find mayInstanceOfSynchronization_class(problem,interpretation,var_v);
28052 // v is exported
28053 find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,var_v,var_trg1);
28054 find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__1,var_v,var_trg2);
28055 var_trg1 != var_trg2;
28056}
28057private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_hasMultipleOutgoingTrainsition(
28058 problem:LogicProblem, interpretation:PartialInterpretation,
28059 var_v)
28060{
28061 find interpretation(problem,interpretation);
28062 find mustInstanceOfSynchronization_class(problem,interpretation,var_v);
28063 // v is exported
28064 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,var_v,var_trg1);
28065 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__1,var_v,var_trg2);
28066 var_trg1 != var_trg2;
28067}
28068// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test yakindu queries hasMultipleIncomingTrainsition
28069private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_hasMultipleIncomingTrainsition(
28070 problem:LogicProblem, interpretation:PartialInterpretation,
28071 var_v)
28072{
28073 find interpretation(problem,interpretation);
28074 find mustInstanceOfSynchronization_class(problem,interpretation,var_v);
28075 // v is exported
28076 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,var_src1,var_v);
28077 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__1,var_src2,var_v);
28078 neg find mayEquivalent(problem, interpretation, var_src1, var_src2);
28079}
28080private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_hasMultipleIncomingTrainsition(
28081 problem:LogicProblem, interpretation:PartialInterpretation,
28082 var_v)
28083{
28084 find interpretation(problem,interpretation);
28085 find mayInstanceOfSynchronization_class(problem,interpretation,var_v);
28086 // v is exported
28087 find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,var_src1,var_v);
28088 find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__1,var_src2,var_v);
28089 var_src1 != var_src2;
28090}
28091private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_hasMultipleIncomingTrainsition(
28092 problem:LogicProblem, interpretation:PartialInterpretation,
28093 var_v)
28094{
28095 find interpretation(problem,interpretation);
28096 find mustInstanceOfSynchronization_class(problem,interpretation,var_v);
28097 // v is exported
28098 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,var_src1,var_v);
28099 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__1,var_src2,var_v);
28100 var_src1 != var_src2;
28101}
28102// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test yakindu queries SynchronizedRegionsAreNotSiblings
28103private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_SynchronizedRegionsAreNotSiblings(
28104 problem:LogicProblem, interpretation:PartialInterpretation,
28105 var_s, var_v1, var_v2)
28106{
28107 find interpretation(problem,interpretation);
28108 find mustInstanceOfSynchronization_class(problem,interpretation,var_s);
28109 find mustInstanceOfVertex_class(problem,interpretation,var_v1);
28110 find mustInstanceOfVertex_class(problem,interpretation,var_v2);
28111 // s is exported
28112 // v1 is exported
28113 // v2 is exported
28114 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,var_v1,var_s);
28115 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__1,var_v2,var_s);
28116 find mustInstanceOfCompositeElement_class(problem,interpretation,var_r1);
28117 find mustInRelationregions_reference_CompositeElement(problem,interpretation,var_r1,var_virtual0);
28118 find mustInstanceOfRegion_class(problem,interpretation,var_virtual0);
28119 find mustInRelationvertices_reference_Region(problem,interpretation,var_virtual0,var_virtual1);
28120 find mustInstanceOfVertex_class(problem,interpretation,var_virtual1);
28121 var_virtual1 == var_v1;
28122 find mustInstanceOfCompositeElement_class(problem,interpretation,var_r2);
28123 find mustInRelationregions_reference_CompositeElement(problem,interpretation,var_r2,var_virtual2);
28124 find mustInstanceOfRegion_class(problem,interpretation,var_virtual2);
28125 find mustInRelationvertices_reference_Region(problem,interpretation,var_virtual2,var_virtual3);
28126 find mustInstanceOfVertex_class(problem,interpretation,var_virtual3);
28127 var_virtual3 == var_v2;
28128 neg find mayEquivalent(problem, interpretation, var_r1, var_r2);
28129}or{
28130 find interpretation(problem,interpretation);
28131 find mustInstanceOfSynchronization_class(problem,interpretation,var_s);
28132 find mustInstanceOfVertex_class(problem,interpretation,var_v1);
28133 find mustInstanceOfVertex_class(problem,interpretation,var_v2);
28134 // s is exported
28135 // v1 is exported
28136 // v2 is exported
28137 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,var_s,var_v1);
28138 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__1,var_s,var_v2);
28139 find mustInstanceOfCompositeElement_class(problem,interpretation,var_r1);
28140 find mustInRelationregions_reference_CompositeElement(problem,interpretation,var_r1,var_virtual0);
28141 find mustInstanceOfRegion_class(problem,interpretation,var_virtual0);
28142 find mustInRelationvertices_reference_Region(problem,interpretation,var_virtual0,var_virtual1);
28143 find mustInstanceOfVertex_class(problem,interpretation,var_virtual1);
28144 var_virtual1 == var_v1;
28145 find mustInstanceOfCompositeElement_class(problem,interpretation,var_r2);
28146 find mustInRelationregions_reference_CompositeElement(problem,interpretation,var_r2,var_virtual2);
28147 find mustInstanceOfRegion_class(problem,interpretation,var_virtual2);
28148 find mustInRelationvertices_reference_Region(problem,interpretation,var_virtual2,var_virtual3);
28149 find mustInstanceOfVertex_class(problem,interpretation,var_virtual3);
28150 var_virtual3 == var_v2;
28151 neg find mayEquivalent(problem, interpretation, var_r1, var_r2);
28152}
28153private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_SynchronizedRegionsAreNotSiblings(
28154 problem:LogicProblem, interpretation:PartialInterpretation,
28155 var_s, var_v1, var_v2)
28156{
28157 find interpretation(problem,interpretation);
28158 find mayInstanceOfSynchronization_class(problem,interpretation,var_s);
28159 find mayInstanceOfVertex_class(problem,interpretation,var_v1);
28160 find mayInstanceOfVertex_class(problem,interpretation,var_v2);
28161 // s is exported
28162 // v1 is exported
28163 // v2 is exported
28164 find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,var_v1,var_s);
28165 find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__1,var_v2,var_s);
28166 find mayInstanceOfCompositeElement_class(problem,interpretation,var_r1);
28167 find mayInRelationregions_reference_CompositeElement(problem,interpretation,var_r1,var_virtual0);
28168 find mayInstanceOfRegion_class(problem,interpretation,var_virtual0);
28169 find mayInRelationvertices_reference_Region(problem,interpretation,var_virtual0,var_virtual1);
28170 find mayInstanceOfVertex_class(problem,interpretation,var_virtual1);
28171 find mayEquivalent(problem, interpretation, var_virtual1, var_v1);
28172 find mayInstanceOfCompositeElement_class(problem,interpretation,var_r2);
28173 find mayInRelationregions_reference_CompositeElement(problem,interpretation,var_r2,var_virtual2);
28174 find mayInstanceOfRegion_class(problem,interpretation,var_virtual2);
28175 find mayInRelationvertices_reference_Region(problem,interpretation,var_virtual2,var_virtual3);
28176 find mayInstanceOfVertex_class(problem,interpretation,var_virtual3);
28177 find mayEquivalent(problem, interpretation, var_virtual3, var_v2);
28178 var_r1 != var_r2;
28179}or{
28180 find interpretation(problem,interpretation);
28181 find mayInstanceOfSynchronization_class(problem,interpretation,var_s);
28182 find mayInstanceOfVertex_class(problem,interpretation,var_v1);
28183 find mayInstanceOfVertex_class(problem,interpretation,var_v2);
28184 // s is exported
28185 // v1 is exported
28186 // v2 is exported
28187 find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,var_s,var_v1);
28188 find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__1,var_s,var_v2);
28189 find mayInstanceOfCompositeElement_class(problem,interpretation,var_r1);
28190 find mayInRelationregions_reference_CompositeElement(problem,interpretation,var_r1,var_virtual0);
28191 find mayInstanceOfRegion_class(problem,interpretation,var_virtual0);
28192 find mayInRelationvertices_reference_Region(problem,interpretation,var_virtual0,var_virtual1);
28193 find mayInstanceOfVertex_class(problem,interpretation,var_virtual1);
28194 find mayEquivalent(problem, interpretation, var_virtual1, var_v1);
28195 find mayInstanceOfCompositeElement_class(problem,interpretation,var_r2);
28196 find mayInRelationregions_reference_CompositeElement(problem,interpretation,var_r2,var_virtual2);
28197 find mayInstanceOfRegion_class(problem,interpretation,var_virtual2);
28198 find mayInRelationvertices_reference_Region(problem,interpretation,var_virtual2,var_virtual3);
28199 find mayInstanceOfVertex_class(problem,interpretation,var_virtual3);
28200 find mayEquivalent(problem, interpretation, var_virtual3, var_v2);
28201 var_r1 != var_r2;
28202}
28203private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_SynchronizedRegionsAreNotSiblings(
28204 problem:LogicProblem, interpretation:PartialInterpretation,
28205 var_s, var_v1, var_v2)
28206{
28207 find interpretation(problem,interpretation);
28208 find mustInstanceOfSynchronization_class(problem,interpretation,var_s);
28209 find mustInstanceOfVertex_class(problem,interpretation,var_v1);
28210 find mustInstanceOfVertex_class(problem,interpretation,var_v2);
28211 // s is exported
28212 // v1 is exported
28213 // v2 is exported
28214 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,var_v1,var_s);
28215 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__1,var_v2,var_s);
28216 find mustInstanceOfCompositeElement_class(problem,interpretation,var_r1);
28217 find mustInRelationregions_reference_CompositeElement(problem,interpretation,var_r1,var_virtual0);
28218 find mustInstanceOfRegion_class(problem,interpretation,var_virtual0);
28219 find mustInRelationvertices_reference_Region(problem,interpretation,var_virtual0,var_virtual1);
28220 find mustInstanceOfVertex_class(problem,interpretation,var_virtual1);
28221 var_virtual1 == var_v1;
28222 find mustInstanceOfCompositeElement_class(problem,interpretation,var_r2);
28223 find mustInRelationregions_reference_CompositeElement(problem,interpretation,var_r2,var_virtual2);
28224 find mustInstanceOfRegion_class(problem,interpretation,var_virtual2);
28225 find mustInRelationvertices_reference_Region(problem,interpretation,var_virtual2,var_virtual3);
28226 find mustInstanceOfVertex_class(problem,interpretation,var_virtual3);
28227 var_virtual3 == var_v2;
28228 var_r1 != var_r2;
28229}or{
28230 find interpretation(problem,interpretation);
28231 find mustInstanceOfSynchronization_class(problem,interpretation,var_s);
28232 find mustInstanceOfVertex_class(problem,interpretation,var_v1);
28233 find mustInstanceOfVertex_class(problem,interpretation,var_v2);
28234 // s is exported
28235 // v1 is exported
28236 // v2 is exported
28237 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,var_s,var_v1);
28238 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__1,var_s,var_v2);
28239 find mustInstanceOfCompositeElement_class(problem,interpretation,var_r1);
28240 find mustInRelationregions_reference_CompositeElement(problem,interpretation,var_r1,var_virtual0);
28241 find mustInstanceOfRegion_class(problem,interpretation,var_virtual0);
28242 find mustInRelationvertices_reference_Region(problem,interpretation,var_virtual0,var_virtual1);
28243 find mustInstanceOfVertex_class(problem,interpretation,var_virtual1);
28244 var_virtual1 == var_v1;
28245 find mustInstanceOfCompositeElement_class(problem,interpretation,var_r2);
28246 find mustInRelationregions_reference_CompositeElement(problem,interpretation,var_r2,var_virtual2);
28247 find mustInstanceOfRegion_class(problem,interpretation,var_virtual2);
28248 find mustInRelationvertices_reference_Region(problem,interpretation,var_virtual2,var_virtual3);
28249 find mustInstanceOfVertex_class(problem,interpretation,var_virtual3);
28250 var_virtual3 == var_v2;
28251 var_r1 != var_r2;
28252}
28253// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test yakindu queries child
28254private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_child(
28255 problem:LogicProblem, interpretation:PartialInterpretation,
28256 var_parent, var_child)
28257{
28258 find interpretation(problem,interpretation);
28259 find mustInstanceOfCompositeElement_class(problem,interpretation,var_parent);
28260 find mustInstanceOfVertex_class(problem,interpretation,var_child);
28261 // parent is exported
28262 // child is exported
28263 find mustInstanceOfCompositeElement_class(problem,interpretation,var_parent);
28264 find mustInRelationregions_reference_CompositeElement(problem,interpretation,var_parent,var_virtual0);
28265 find mustInstanceOfRegion_class(problem,interpretation,var_virtual0);
28266 find mustInRelationvertices_reference_Region(problem,interpretation,var_virtual0,var_virtual1);
28267 find mustInstanceOfVertex_class(problem,interpretation,var_virtual1);
28268 var_virtual1 == var_child;
28269}
28270private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_child(
28271 problem:LogicProblem, interpretation:PartialInterpretation,
28272 var_parent, var_child)
28273{
28274 find interpretation(problem,interpretation);
28275 find mayInstanceOfCompositeElement_class(problem,interpretation,var_parent);
28276 find mayInstanceOfVertex_class(problem,interpretation,var_child);
28277 // parent is exported
28278 // child is exported
28279 find mayInstanceOfCompositeElement_class(problem,interpretation,var_parent);
28280 find mayInRelationregions_reference_CompositeElement(problem,interpretation,var_parent,var_virtual0);
28281 find mayInstanceOfRegion_class(problem,interpretation,var_virtual0);
28282 find mayInRelationvertices_reference_Region(problem,interpretation,var_virtual0,var_virtual1);
28283 find mayInstanceOfVertex_class(problem,interpretation,var_virtual1);
28284 find mayEquivalent(problem, interpretation, var_virtual1, var_child);
28285}
28286private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_child(
28287 problem:LogicProblem, interpretation:PartialInterpretation,
28288 var_parent, var_child)
28289{
28290 find interpretation(problem,interpretation);
28291 find mustInstanceOfCompositeElement_class(problem,interpretation,var_parent);
28292 find mustInstanceOfVertex_class(problem,interpretation,var_child);
28293 // parent is exported
28294 // child is exported
28295 find mustInstanceOfCompositeElement_class(problem,interpretation,var_parent);
28296 find mustInRelationregions_reference_CompositeElement(problem,interpretation,var_parent,var_virtual0);
28297 find mustInstanceOfRegion_class(problem,interpretation,var_virtual0);
28298 find mustInRelationvertices_reference_Region(problem,interpretation,var_virtual0,var_virtual1);
28299 find mustInstanceOfVertex_class(problem,interpretation,var_virtual1);
28300 var_virtual1 == var_child;
28301}
28302// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test yakindu queries SynchronizedRegionDoesNotHaveMultipleRegions
28303private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_SynchronizedRegionDoesNotHaveMultipleRegions(
28304 problem:LogicProblem, interpretation:PartialInterpretation,
28305 var_s, var_v)
28306{
28307 find interpretation(problem,interpretation);
28308 find mustInstanceOfSynchronization_class(problem,interpretation,var_s);
28309 find mustInstanceOfVertex_class(problem,interpretation,var_v);
28310 // s is exported
28311 // v is exported
28312 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,var_v,var_s);
28313 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_child(problem,interpretation,var_c,var_v);
28314 neg find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_hasMultipleRegions(problem,interpretation,var_c);
28315}or{
28316 find interpretation(problem,interpretation);
28317 find mustInstanceOfSynchronization_class(problem,interpretation,var_s);
28318 find mustInstanceOfVertex_class(problem,interpretation,var_v);
28319 // s is exported
28320 // v is exported
28321 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,var_s,var_v);
28322 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_child(problem,interpretation,var_c,var_v);
28323 neg find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_hasMultipleRegions(problem,interpretation,var_c);
28324}
28325private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_SynchronizedRegionDoesNotHaveMultipleRegions(
28326 problem:LogicProblem, interpretation:PartialInterpretation,
28327 var_s, var_v)
28328{
28329 find interpretation(problem,interpretation);
28330 find mayInstanceOfSynchronization_class(problem,interpretation,var_s);
28331 find mayInstanceOfVertex_class(problem,interpretation,var_v);
28332 // s is exported
28333 // v is exported
28334 find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,var_v,var_s);
28335 find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_child(problem,interpretation,var_c,var_v);
28336 neg find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_hasMultipleRegions(problem,interpretation,var_c);
28337}or{
28338 find interpretation(problem,interpretation);
28339 find mayInstanceOfSynchronization_class(problem,interpretation,var_s);
28340 find mayInstanceOfVertex_class(problem,interpretation,var_v);
28341 // s is exported
28342 // v is exported
28343 find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,var_s,var_v);
28344 find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_child(problem,interpretation,var_c,var_v);
28345 neg find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_hasMultipleRegions(problem,interpretation,var_c);
28346}
28347private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_SynchronizedRegionDoesNotHaveMultipleRegions(
28348 problem:LogicProblem, interpretation:PartialInterpretation,
28349 var_s, var_v)
28350{
28351 find interpretation(problem,interpretation);
28352 find mustInstanceOfSynchronization_class(problem,interpretation,var_s);
28353 find mustInstanceOfVertex_class(problem,interpretation,var_v);
28354 // s is exported
28355 // v is exported
28356 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,var_v,var_s);
28357 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_child(problem,interpretation,var_c,var_v);
28358 neg find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_hasMultipleRegions(problem,interpretation,var_c);
28359}or{
28360 find interpretation(problem,interpretation);
28361 find mustInstanceOfSynchronization_class(problem,interpretation,var_s);
28362 find mustInstanceOfVertex_class(problem,interpretation,var_v);
28363 // s is exported
28364 // v is exported
28365 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,var_s,var_v);
28366 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_child(problem,interpretation,var_c,var_v);
28367 neg find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_hasMultipleRegions(problem,interpretation,var_c);
28368}
28369// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test yakindu queries hasMultipleRegions
28370private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_hasMultipleRegions(
28371 problem:LogicProblem, interpretation:PartialInterpretation,
28372 var_composite)
28373{
28374 find interpretation(problem,interpretation);
28375 find mustInstanceOfCompositeElement_class(problem,interpretation,var_composite);
28376 // composite is exported
28377 find mustInstanceOfCompositeElement_class(problem,interpretation,var_composite);
28378 find mustInRelationregions_reference_CompositeElement(problem,interpretation,var_composite,var_virtual0);
28379 find mustInstanceOfRegion_class(problem,interpretation,var_virtual0);
28380 var_virtual0 == var_region1;
28381 find mustInstanceOfCompositeElement_class(problem,interpretation,var_composite);
28382 find mustInRelationregions_reference_CompositeElement(problem,interpretation,var_composite,var_virtual1);
28383 find mustInstanceOfRegion_class(problem,interpretation,var_virtual1);
28384 var_virtual1 == var_region2;
28385 neg find mayEquivalent(problem, interpretation, var_region1, var_region2);
28386}
28387private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_hasMultipleRegions(
28388 problem:LogicProblem, interpretation:PartialInterpretation,
28389 var_composite)
28390{
28391 find interpretation(problem,interpretation);
28392 find mayInstanceOfCompositeElement_class(problem,interpretation,var_composite);
28393 // composite is exported
28394 find mayInstanceOfCompositeElement_class(problem,interpretation,var_composite);
28395 find mayInRelationregions_reference_CompositeElement(problem,interpretation,var_composite,var_virtual0);
28396 find mayInstanceOfRegion_class(problem,interpretation,var_virtual0);
28397 find mayEquivalent(problem, interpretation, var_virtual0, var_region1);
28398 find mayInstanceOfCompositeElement_class(problem,interpretation,var_composite);
28399 find mayInRelationregions_reference_CompositeElement(problem,interpretation,var_composite,var_virtual1);
28400 find mayInstanceOfRegion_class(problem,interpretation,var_virtual1);
28401 find mayEquivalent(problem, interpretation, var_virtual1, var_region2);
28402 var_region1 != var_region2;
28403}
28404private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_hasMultipleRegions(
28405 problem:LogicProblem, interpretation:PartialInterpretation,
28406 var_composite)
28407{
28408 find interpretation(problem,interpretation);
28409 find mustInstanceOfCompositeElement_class(problem,interpretation,var_composite);
28410 // composite is exported
28411 find mustInstanceOfCompositeElement_class(problem,interpretation,var_composite);
28412 find mustInRelationregions_reference_CompositeElement(problem,interpretation,var_composite,var_virtual0);
28413 find mustInstanceOfRegion_class(problem,interpretation,var_virtual0);
28414 var_virtual0 == var_region1;
28415 find mustInstanceOfCompositeElement_class(problem,interpretation,var_composite);
28416 find mustInRelationregions_reference_CompositeElement(problem,interpretation,var_composite,var_virtual1);
28417 find mustInstanceOfRegion_class(problem,interpretation,var_virtual1);
28418 var_virtual1 == var_region2;
28419 var_region1 != var_region2;
28420}
28421// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test yakindu queries synchThree
28422private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_synchThree(
28423 problem:LogicProblem, interpretation:PartialInterpretation,
28424 var_s)
28425{
28426 find interpretation(problem,interpretation);
28427 find mustInstanceOfSynchronization_class(problem,interpretation,var_s);
28428 // s is exported
28429 find mustInstanceOfTransition_class(problem,interpretation,var_t1);
28430 find mustInRelationtarget_reference_Transition(problem,interpretation,var_t1,var_virtual0);
28431 find mustInstanceOfVertex_class(problem,interpretation,var_virtual0);
28432 var_virtual0 == var_s;
28433 find mustInstanceOfTransition_class(problem,interpretation,var_t2);
28434 find mustInRelationtarget_reference_Transition(problem,interpretation,var_t2,var_virtual1);
28435 find mustInstanceOfVertex_class(problem,interpretation,var_virtual1);
28436 var_virtual1 == var_s;
28437 find mustInstanceOfTransition_class(problem,interpretation,var_t3);
28438 find mustInRelationtarget_reference_Transition(problem,interpretation,var_t3,var_virtual2);
28439 find mustInstanceOfVertex_class(problem,interpretation,var_virtual2);
28440 var_virtual2 == var_s;
28441 neg find mayEquivalent(problem, interpretation, var_t1, var_t2);
28442 neg find mayEquivalent(problem, interpretation, var_t2, var_t3);
28443 neg find mayEquivalent(problem, interpretation, var_t1, var_t3);
28444}or{
28445 find interpretation(problem,interpretation);
28446 find mustInstanceOfSynchronization_class(problem,interpretation,var_s);
28447 // s is exported
28448 find mustInstanceOfTransition_class(problem,interpretation,var_t1);
28449 find mustInRelationsource_reference_Transition(problem,interpretation,var_t1,var_virtual0);
28450 find mustInstanceOfVertex_class(problem,interpretation,var_virtual0);
28451 var_virtual0 == var_s;
28452 find mustInstanceOfTransition_class(problem,interpretation,var_t2);
28453 find mustInRelationsource_reference_Transition(problem,interpretation,var_t2,var_virtual1);
28454 find mustInstanceOfVertex_class(problem,interpretation,var_virtual1);
28455 var_virtual1 == var_s;
28456 find mustInstanceOfTransition_class(problem,interpretation,var_t3);
28457 find mustInRelationsource_reference_Transition(problem,interpretation,var_t3,var_virtual2);
28458 find mustInstanceOfVertex_class(problem,interpretation,var_virtual2);
28459 var_virtual2 == var_s;
28460 neg find mayEquivalent(problem, interpretation, var_t1, var_t2);
28461 neg find mayEquivalent(problem, interpretation, var_t2, var_t3);
28462 neg find mayEquivalent(problem, interpretation, var_t1, var_t3);
28463}
28464private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_synchThree(
28465 problem:LogicProblem, interpretation:PartialInterpretation,
28466 var_s)
28467{
28468 find interpretation(problem,interpretation);
28469 find mayInstanceOfSynchronization_class(problem,interpretation,var_s);
28470 // s is exported
28471 find mayInstanceOfTransition_class(problem,interpretation,var_t1);
28472 find mayInRelationtarget_reference_Transition(problem,interpretation,var_t1,var_virtual0);
28473 find mayInstanceOfVertex_class(problem,interpretation,var_virtual0);
28474 find mayEquivalent(problem, interpretation, var_virtual0, var_s);
28475 find mayInstanceOfTransition_class(problem,interpretation,var_t2);
28476 find mayInRelationtarget_reference_Transition(problem,interpretation,var_t2,var_virtual1);
28477 find mayInstanceOfVertex_class(problem,interpretation,var_virtual1);
28478 find mayEquivalent(problem, interpretation, var_virtual1, var_s);
28479 find mayInstanceOfTransition_class(problem,interpretation,var_t3);
28480 find mayInRelationtarget_reference_Transition(problem,interpretation,var_t3,var_virtual2);
28481 find mayInstanceOfVertex_class(problem,interpretation,var_virtual2);
28482 find mayEquivalent(problem, interpretation, var_virtual2, var_s);
28483 var_t1 != var_t2;
28484 var_t2 != var_t3;
28485 var_t1 != var_t3;
28486}or{
28487 find interpretation(problem,interpretation);
28488 find mayInstanceOfSynchronization_class(problem,interpretation,var_s);
28489 // s is exported
28490 find mayInstanceOfTransition_class(problem,interpretation,var_t1);
28491 find mayInRelationsource_reference_Transition(problem,interpretation,var_t1,var_virtual0);
28492 find mayInstanceOfVertex_class(problem,interpretation,var_virtual0);
28493 find mayEquivalent(problem, interpretation, var_virtual0, var_s);
28494 find mayInstanceOfTransition_class(problem,interpretation,var_t2);
28495 find mayInRelationsource_reference_Transition(problem,interpretation,var_t2,var_virtual1);
28496 find mayInstanceOfVertex_class(problem,interpretation,var_virtual1);
28497 find mayEquivalent(problem, interpretation, var_virtual1, var_s);
28498 find mayInstanceOfTransition_class(problem,interpretation,var_t3);
28499 find mayInRelationsource_reference_Transition(problem,interpretation,var_t3,var_virtual2);
28500 find mayInstanceOfVertex_class(problem,interpretation,var_virtual2);
28501 find mayEquivalent(problem, interpretation, var_virtual2, var_s);
28502 var_t1 != var_t2;
28503 var_t2 != var_t3;
28504 var_t1 != var_t3;
28505}
28506private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_synchThree(
28507 problem:LogicProblem, interpretation:PartialInterpretation,
28508 var_s)
28509{
28510 find interpretation(problem,interpretation);
28511 find mustInstanceOfSynchronization_class(problem,interpretation,var_s);
28512 // s is exported
28513 find mustInstanceOfTransition_class(problem,interpretation,var_t1);
28514 find mustInRelationtarget_reference_Transition(problem,interpretation,var_t1,var_virtual0);
28515 find mustInstanceOfVertex_class(problem,interpretation,var_virtual0);
28516 var_virtual0 == var_s;
28517 find mustInstanceOfTransition_class(problem,interpretation,var_t2);
28518 find mustInRelationtarget_reference_Transition(problem,interpretation,var_t2,var_virtual1);
28519 find mustInstanceOfVertex_class(problem,interpretation,var_virtual1);
28520 var_virtual1 == var_s;
28521 find mustInstanceOfTransition_class(problem,interpretation,var_t3);
28522 find mustInRelationtarget_reference_Transition(problem,interpretation,var_t3,var_virtual2);
28523 find mustInstanceOfVertex_class(problem,interpretation,var_virtual2);
28524 var_virtual2 == var_s;
28525 var_t1 != var_t2;
28526 var_t2 != var_t3;
28527 var_t1 != var_t3;
28528}or{
28529 find interpretation(problem,interpretation);
28530 find mustInstanceOfSynchronization_class(problem,interpretation,var_s);
28531 // s is exported
28532 find mustInstanceOfTransition_class(problem,interpretation,var_t1);
28533 find mustInRelationsource_reference_Transition(problem,interpretation,var_t1,var_virtual0);
28534 find mustInstanceOfVertex_class(problem,interpretation,var_virtual0);
28535 var_virtual0 == var_s;
28536 find mustInstanceOfTransition_class(problem,interpretation,var_t2);
28537 find mustInRelationsource_reference_Transition(problem,interpretation,var_t2,var_virtual1);
28538 find mustInstanceOfVertex_class(problem,interpretation,var_virtual1);
28539 var_virtual1 == var_s;
28540 find mustInstanceOfTransition_class(problem,interpretation,var_t3);
28541 find mustInRelationsource_reference_Transition(problem,interpretation,var_t3,var_virtual2);
28542 find mustInstanceOfVertex_class(problem,interpretation,var_virtual2);
28543 var_virtual2 == var_s;
28544 var_t1 != var_t2;
28545 var_t2 != var_t3;
28546 var_t1 != var_t3;
28547}
28548// Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test yakindu queries twoSynch
28549private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_twoSynch(
28550 problem:LogicProblem, interpretation:PartialInterpretation,
28551 var_s1, var_s2)
28552{
28553 find interpretation(problem,interpretation);
28554 find mustInstanceOfSynchronization_class(problem,interpretation,var_s1);
28555 find mustInstanceOfSynchronization_class(problem,interpretation,var_s2);
28556 // s1 is exported
28557 // s2 is exported
28558 find mustInstanceOfSynchronization_class(problem,interpretation,var_s1);
28559 find mustInstanceOfSynchronization_class(problem,interpretation,var_s2);
28560 neg find mayEquivalent(problem, interpretation, var_s1, var_s2);
28561}
28562private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_twoSynch(
28563 problem:LogicProblem, interpretation:PartialInterpretation,
28564 var_s1, var_s2)
28565{
28566 find interpretation(problem,interpretation);
28567 find mayInstanceOfSynchronization_class(problem,interpretation,var_s1);
28568 find mayInstanceOfSynchronization_class(problem,interpretation,var_s2);
28569 // s1 is exported
28570 // s2 is exported
28571 find mayInstanceOfSynchronization_class(problem,interpretation,var_s1);
28572 find mayInstanceOfSynchronization_class(problem,interpretation,var_s2);
28573 var_s1 != var_s2;
28574}
28575private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_twoSynch(
28576 problem:LogicProblem, interpretation:PartialInterpretation,
28577 var_s1, var_s2)
28578{
28579 find interpretation(problem,interpretation);
28580 find mustInstanceOfSynchronization_class(problem,interpretation,var_s1);
28581 find mustInstanceOfSynchronization_class(problem,interpretation,var_s2);
28582 // s1 is exported
28583 // s2 is exported
28584 find mustInstanceOfSynchronization_class(problem,interpretation,var_s1);
28585 find mustInstanceOfSynchronization_class(problem,interpretation,var_s2);
28586 var_s1 != var_s2;
28587}
28588
28589//////////
28590// 1.4 Containment Indexer
28591//////////
28592private pattern mustContains2(source: DefinedElement, target: DefinedElement) {
28593 find mustContains4(_,_,source,target);
28594}
28595
28596private pattern mustContains4(problem:LogicProblem, interpretation:PartialInterpretation,
28597 source: DefinedElement, target: DefinedElement)
28598 { find mustInRelationoutgoingTransitions_reference_Vertex(problem,interpretation,source,target); }or
28599
28600 { find mustInRelationvertices_reference_Region(problem,interpretation,source,target); }or
28601
28602 { find mustInRelationregions_reference_CompositeElement(problem,interpretation,source,target); }
28603
28604private pattern mustTransitiveContains(source,target) {
28605 find mustContains2+(source,target);
28606}
28607
28608//////////
28609// 2. Invalidation Indexers
28610//////////
28611// 2.1 Invalidated by WF Queries
28612//////////
28613pattern invalidatedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_noEntryInRegion(problem:LogicProblem, interpretation:PartialInterpretation,
28614 var_r1)
28615{
28616 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_noEntryInRegion(problem,interpretation,var_r1);
28617}
28618pattern invalidatedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_multipleEntryInRegion(problem:LogicProblem, interpretation:PartialInterpretation,
28619 var_r)
28620{
28621 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_multipleEntryInRegion(problem,interpretation,var_r);
28622}
28623pattern invalidatedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_incomingToEntry(problem:LogicProblem, interpretation:PartialInterpretation,
28624 var_t, var_e)
28625{
28626 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_incomingToEntry(problem,interpretation,var_t,var_e);
28627}
28628pattern invalidatedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_noOutgoingTransitionFromEntry(problem:LogicProblem, interpretation:PartialInterpretation,
28629 var_e)
28630{
28631 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_noOutgoingTransitionFromEntry(problem,interpretation,var_e);
28632}
28633pattern invalidatedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_multipleTransitionFromEntry(problem:LogicProblem, interpretation:PartialInterpretation,
28634 var_e, var_t1, var_t2)
28635{
28636 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_multipleTransitionFromEntry(problem,interpretation,var_e,var_t1,var_t2);
28637}
28638pattern invalidatedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_outgoingFromExit(problem:LogicProblem, interpretation:PartialInterpretation,
28639 var_t, var_e)
28640{
28641 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_outgoingFromExit(problem,interpretation,var_t,var_e);
28642}
28643pattern invalidatedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_outgoingFromFinal(problem:LogicProblem, interpretation:PartialInterpretation,
28644 var_t, var_f)
28645{
28646 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_outgoingFromFinal(problem,interpretation,var_t,var_f);
28647}
28648pattern invalidatedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_noStateInRegion(problem:LogicProblem, interpretation:PartialInterpretation,
28649 var_region)
28650{
28651 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_noStateInRegion(problem,interpretation,var_region);
28652}
28653pattern invalidatedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_choiceHasNoOutgoing(problem:LogicProblem, interpretation:PartialInterpretation,
28654 var_c)
28655{
28656 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_choiceHasNoOutgoing(problem,interpretation,var_c);
28657}
28658pattern invalidatedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_choiceHasNoIncoming(problem:LogicProblem, interpretation:PartialInterpretation,
28659 var_c)
28660{
28661 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_choiceHasNoIncoming(problem,interpretation,var_c);
28662}
28663pattern invalidatedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_synchHasNoOutgoing(problem:LogicProblem, interpretation:PartialInterpretation,
28664 var_s)
28665{
28666 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_synchHasNoOutgoing(problem,interpretation,var_s);
28667}
28668pattern invalidatedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_synchHasNoIncoming(problem:LogicProblem, interpretation:PartialInterpretation,
28669 var_s)
28670{
28671 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_synchHasNoIncoming(problem,interpretation,var_s);
28672}
28673pattern invalidatedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_SynchronizedIncomingInSameRegion(problem:LogicProblem, interpretation:PartialInterpretation,
28674 var_s, var_v1, var_v2)
28675{
28676 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_SynchronizedIncomingInSameRegion(problem,interpretation,var_s,var_v1,var_v2);
28677}
28678pattern invalidatedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_notSynchronizingStates(problem:LogicProblem, interpretation:PartialInterpretation,
28679 var_s)
28680{
28681 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_notSynchronizingStates(problem,interpretation,var_s);
28682}
28683pattern invalidatedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_SynchronizedRegionsAreNotSiblings(problem:LogicProblem, interpretation:PartialInterpretation,
28684 var_s, var_v1, var_v2)
28685{
28686 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_SynchronizedRegionsAreNotSiblings(problem,interpretation,var_s,var_v1,var_v2);
28687}
28688pattern invalidatedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_SynchronizedRegionDoesNotHaveMultipleRegions(problem:LogicProblem, interpretation:PartialInterpretation,
28689 var_s, var_v)
28690{
28691 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_SynchronizedRegionDoesNotHaveMultipleRegions(problem,interpretation,var_s,var_v);
28692}
28693pattern invalidatedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_synchThree(problem:LogicProblem, interpretation:PartialInterpretation,
28694 var_s)
28695{
28696 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_synchThree(problem,interpretation,var_s);
28697}
28698pattern invalidatedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_twoSynch(problem:LogicProblem, interpretation:PartialInterpretation,
28699 var_s1, var_s2)
28700{
28701 find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_twoSynch(problem,interpretation,var_s1,var_s2);
28702}
28703
28704//////////
28705// 3. Unfinishedness Indexers
28706//////////
28707// 3.1 Unfinishedness Measured by Multiplicity
28708//////////
28709pattern unfinishedLowerMultiplicity_target_reference_Transition(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
28710 find interpretation(problem,interpretation);
28711 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
28712 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"target reference Transition");
28713 find mustInstanceOfTransition_class(problem,interpretation,object);
28714 numberOfExistingReferences == count find mustInRelationtarget_reference_Transition(problem,interpretation,object,_);
28715 check(numberOfExistingReferences < 1);
28716 missingMultiplicity == eval(1-numberOfExistingReferences);
28717}
28718
28719//////////
28720// 3.2 Unfinishedness Measured by WF Queries
28721//////////
28722pattern unfinishedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_noEntryInRegion(problem:LogicProblem, interpretation:PartialInterpretation,
28723 var_r1)
28724{
28725 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_noEntryInRegion(problem,interpretation,var_r1);
28726}
28727pattern unfinishedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_multipleEntryInRegion(problem:LogicProblem, interpretation:PartialInterpretation,
28728 var_r)
28729{
28730 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_multipleEntryInRegion(problem,interpretation,var_r);
28731}
28732pattern unfinishedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_incomingToEntry(problem:LogicProblem, interpretation:PartialInterpretation,
28733 var_t, var_e)
28734{
28735 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_incomingToEntry(problem,interpretation,var_t,var_e);
28736}
28737pattern unfinishedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_noOutgoingTransitionFromEntry(problem:LogicProblem, interpretation:PartialInterpretation,
28738 var_e)
28739{
28740 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_noOutgoingTransitionFromEntry(problem,interpretation,var_e);
28741}
28742pattern unfinishedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_multipleTransitionFromEntry(problem:LogicProblem, interpretation:PartialInterpretation,
28743 var_e, var_t1, var_t2)
28744{
28745 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_multipleTransitionFromEntry(problem,interpretation,var_e,var_t1,var_t2);
28746}
28747pattern unfinishedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_outgoingFromExit(problem:LogicProblem, interpretation:PartialInterpretation,
28748 var_t, var_e)
28749{
28750 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_outgoingFromExit(problem,interpretation,var_t,var_e);
28751}
28752pattern unfinishedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_outgoingFromFinal(problem:LogicProblem, interpretation:PartialInterpretation,
28753 var_t, var_f)
28754{
28755 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_outgoingFromFinal(problem,interpretation,var_t,var_f);
28756}
28757pattern unfinishedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_noStateInRegion(problem:LogicProblem, interpretation:PartialInterpretation,
28758 var_region)
28759{
28760 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_noStateInRegion(problem,interpretation,var_region);
28761}
28762pattern unfinishedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_choiceHasNoOutgoing(problem:LogicProblem, interpretation:PartialInterpretation,
28763 var_c)
28764{
28765 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_choiceHasNoOutgoing(problem,interpretation,var_c);
28766}
28767pattern unfinishedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_choiceHasNoIncoming(problem:LogicProblem, interpretation:PartialInterpretation,
28768 var_c)
28769{
28770 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_choiceHasNoIncoming(problem,interpretation,var_c);
28771}
28772pattern unfinishedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_synchHasNoOutgoing(problem:LogicProblem, interpretation:PartialInterpretation,
28773 var_s)
28774{
28775 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_synchHasNoOutgoing(problem,interpretation,var_s);
28776}
28777pattern unfinishedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_synchHasNoIncoming(problem:LogicProblem, interpretation:PartialInterpretation,
28778 var_s)
28779{
28780 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_synchHasNoIncoming(problem,interpretation,var_s);
28781}
28782pattern unfinishedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_SynchronizedIncomingInSameRegion(problem:LogicProblem, interpretation:PartialInterpretation,
28783 var_s, var_v1, var_v2)
28784{
28785 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_SynchronizedIncomingInSameRegion(problem,interpretation,var_s,var_v1,var_v2);
28786}
28787pattern unfinishedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_notSynchronizingStates(problem:LogicProblem, interpretation:PartialInterpretation,
28788 var_s)
28789{
28790 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_notSynchronizingStates(problem,interpretation,var_s);
28791}
28792pattern unfinishedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_SynchronizedRegionsAreNotSiblings(problem:LogicProblem, interpretation:PartialInterpretation,
28793 var_s, var_v1, var_v2)
28794{
28795 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_SynchronizedRegionsAreNotSiblings(problem,interpretation,var_s,var_v1,var_v2);
28796}
28797pattern unfinishedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_SynchronizedRegionDoesNotHaveMultipleRegions(problem:LogicProblem, interpretation:PartialInterpretation,
28798 var_s, var_v)
28799{
28800 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_SynchronizedRegionDoesNotHaveMultipleRegions(problem,interpretation,var_s,var_v);
28801}
28802pattern unfinishedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_synchThree(problem:LogicProblem, interpretation:PartialInterpretation,
28803 var_s)
28804{
28805 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_synchThree(problem,interpretation,var_s);
28806}
28807pattern unfinishedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_twoSynch(problem:LogicProblem, interpretation:PartialInterpretation,
28808 var_s1, var_s2)
28809{
28810 find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_twoSynch(problem,interpretation,var_s1,var_s2);
28811}
28812
28813//////////
28814// 4. Refinement Indexers
28815//////////
28816// 4.1 Object constructors
28817//////////
28818private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation)
28819{
28820 find interpretation(problem,interpretation);
28821 find mustInstanceOfState_class(problem,interpretation,root);
28822 find mustExist(problem, interpretation, root);
28823}or{
28824 find interpretation(problem,interpretation);
28825 find mustInstanceOfRegion_class(problem,interpretation,root);
28826 find mustExist(problem, interpretation, root);
28827}or{
28828 find interpretation(problem,interpretation);
28829 find mustInstanceOfStatechart_class(problem,interpretation,root);
28830 find mustExist(problem, interpretation, root);
28831}or{
28832 find interpretation(problem,interpretation);
28833 find mustInstanceOfSynchronization_class(problem,interpretation,root);
28834 find mustExist(problem, interpretation, root);
28835}or{
28836 find interpretation(problem,interpretation);
28837 find mustInstanceOfChoice_class(problem,interpretation,root);
28838 find mustExist(problem, interpretation, root);
28839}or{
28840 find interpretation(problem,interpretation);
28841 find mustInstanceOfVertex_class(problem,interpretation,root);
28842 find mustExist(problem, interpretation, root);
28843}or{
28844 find interpretation(problem,interpretation);
28845 find mustInstanceOfRegularState_class(problem,interpretation,root);
28846 find mustExist(problem, interpretation, root);
28847}or{
28848 find interpretation(problem,interpretation);
28849 find mustInstanceOfEntry_class(problem,interpretation,root);
28850 find mustExist(problem, interpretation, root);
28851}or{
28852 find interpretation(problem,interpretation);
28853 find mustInstanceOfPseudostate_class(problem,interpretation,root);
28854 find mustExist(problem, interpretation, root);
28855}or{
28856 find interpretation(problem,interpretation);
28857 find mustInstanceOfFinalState_class(problem,interpretation,root);
28858 find mustExist(problem, interpretation, root);
28859}or{
28860 find interpretation(problem,interpretation);
28861 find mustInstanceOfExit_class(problem,interpretation,root);
28862 find mustExist(problem, interpretation, root);
28863}or{
28864 find interpretation(problem,interpretation);
28865 find mustInstanceOfTransition_class(problem,interpretation,root);
28866 find mustExist(problem, interpretation, root);
28867}or{
28868 find interpretation(problem,interpretation);
28869 find mustInstanceOfCompositeElement_class(problem,interpretation,root);
28870 find mustExist(problem, interpretation, root);
28871}or{
28872 find interpretation(problem,interpretation);
28873 find mustInstanceOfStatechart_class_DefinedPart(problem,interpretation,root);
28874 find mustExist(problem, interpretation, root);
28875}or{
28876 find interpretation(problem,interpretation);
28877 find mustInstanceOfStatechart_class_UndefinedPart(problem,interpretation,root);
28878 find mustExist(problem, interpretation, root);
28879}or{
28880 find interpretation(problem,interpretation);
28881 find mustInstanceOfCompositeElement_class_DefinedPart(problem,interpretation,root);
28882 find mustExist(problem, interpretation, root);
28883}or{
28884 find interpretation(problem,interpretation);
28885 find mustInstanceOfCompositeElement_class_UndefinedPart(problem,interpretation,root);
28886 find mustExist(problem, interpretation, root);
28887}
28888pattern createObject_Transition_class_by_outgoingTransitions_reference_Vertex_with_source_reference_Transition(
28889 problem:LogicProblem, interpretation:PartialInterpretation,
28890 relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
28891 container:DefinedElement)
28892{
28893 find interpretation(problem,interpretation);
28894 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
28895 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Transition class");
28896 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
28897 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"outgoingTransitions reference Vertex");
28898 PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation);
28899 PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"source reference Transition");
28900 find mustInstanceOfVertex_class(problem,interpretation,container);
28901 find mayInstanceOfTransition_class(problem,interpretation,newObject);
28902 find mayInRelationoutgoingTransitions_reference_Vertex(problem,interpretation,container,newObject);
28903 find mustExist(problem, interpretation, container);
28904 neg find mustExist(problem, interpretation, newObject);
28905}
28906pattern createObject_Transition_class(
28907 problem:LogicProblem, interpretation:PartialInterpretation,
28908 typeInterpretation:PartialComplexTypeInterpretation)
28909{
28910 find interpretation(problem,interpretation);
28911 neg find hasElementInContainment(problem,interpretation);
28912 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
28913 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Transition class");
28914 find mayInstanceOfTransition_class(problem,interpretation,newObject);
28915 find mayExist(problem, interpretation, newObject);
28916 neg find mustExist(problem, interpretation, newObject);
28917}
28918pattern createObject_Entry_class_by_vertices_reference_Region(
28919 problem:LogicProblem, interpretation:PartialInterpretation,
28920 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
28921 container:DefinedElement)
28922{
28923 find interpretation(problem,interpretation);
28924 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
28925 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Entry class");
28926 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
28927 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"vertices reference Region");
28928 find mustInstanceOfRegion_class(problem,interpretation,container);
28929 find mayInstanceOfEntry_class(problem,interpretation,newObject);
28930 find mayInRelationvertices_reference_Region(problem,interpretation,container,newObject);
28931 find mustExist(problem, interpretation, container);
28932 neg find mustExist(problem, interpretation, newObject);
28933}
28934pattern createObject_Entry_class(
28935 problem:LogicProblem, interpretation:PartialInterpretation,
28936 typeInterpretation:PartialComplexTypeInterpretation)
28937{
28938 find interpretation(problem,interpretation);
28939 neg find hasElementInContainment(problem,interpretation);
28940 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
28941 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Entry class");
28942 find mayInstanceOfEntry_class(problem,interpretation,newObject);
28943 find mayExist(problem, interpretation, newObject);
28944 neg find mustExist(problem, interpretation, newObject);
28945}
28946pattern createObject_Region_class_by_regions_reference_CompositeElement(
28947 problem:LogicProblem, interpretation:PartialInterpretation,
28948 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
28949 container:DefinedElement)
28950{
28951 find interpretation(problem,interpretation);
28952 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
28953 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Region class");
28954 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
28955 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"regions reference CompositeElement");
28956 find mustInstanceOfCompositeElement_class(problem,interpretation,container);
28957 find mayInstanceOfRegion_class(problem,interpretation,newObject);
28958 find mayInRelationregions_reference_CompositeElement(problem,interpretation,container,newObject);
28959 find mustExist(problem, interpretation, container);
28960 neg find mustExist(problem, interpretation, newObject);
28961}
28962pattern createObject_Region_class(
28963 problem:LogicProblem, interpretation:PartialInterpretation,
28964 typeInterpretation:PartialComplexTypeInterpretation)
28965{
28966 find interpretation(problem,interpretation);
28967 neg find hasElementInContainment(problem,interpretation);
28968 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
28969 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Region class");
28970 find mayInstanceOfRegion_class(problem,interpretation,newObject);
28971 find mayExist(problem, interpretation, newObject);
28972 neg find mustExist(problem, interpretation, newObject);
28973}
28974pattern createObject_Choice_class_by_vertices_reference_Region(
28975 problem:LogicProblem, interpretation:PartialInterpretation,
28976 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
28977 container:DefinedElement)
28978{
28979 find interpretation(problem,interpretation);
28980 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
28981 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Choice class");
28982 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
28983 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"vertices reference Region");
28984 find mustInstanceOfRegion_class(problem,interpretation,container);
28985 find mayInstanceOfChoice_class(problem,interpretation,newObject);
28986 find mayInRelationvertices_reference_Region(problem,interpretation,container,newObject);
28987 find mustExist(problem, interpretation, container);
28988 neg find mustExist(problem, interpretation, newObject);
28989}
28990pattern createObject_Choice_class(
28991 problem:LogicProblem, interpretation:PartialInterpretation,
28992 typeInterpretation:PartialComplexTypeInterpretation)
28993{
28994 find interpretation(problem,interpretation);
28995 neg find hasElementInContainment(problem,interpretation);
28996 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
28997 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Choice class");
28998 find mayInstanceOfChoice_class(problem,interpretation,newObject);
28999 find mayExist(problem, interpretation, newObject);
29000 neg find mustExist(problem, interpretation, newObject);
29001}
29002pattern createObject_Synchronization_class_by_vertices_reference_Region(
29003 problem:LogicProblem, interpretation:PartialInterpretation,
29004 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
29005 container:DefinedElement)
29006{
29007 find interpretation(problem,interpretation);
29008 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
29009 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Synchronization class");
29010 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
29011 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"vertices reference Region");
29012 find mustInstanceOfRegion_class(problem,interpretation,container);
29013 find mayInstanceOfSynchronization_class(problem,interpretation,newObject);
29014 find mayInRelationvertices_reference_Region(problem,interpretation,container,newObject);
29015 find mustExist(problem, interpretation, container);
29016 neg find mustExist(problem, interpretation, newObject);
29017}
29018pattern createObject_Synchronization_class(
29019 problem:LogicProblem, interpretation:PartialInterpretation,
29020 typeInterpretation:PartialComplexTypeInterpretation)
29021{
29022 find interpretation(problem,interpretation);
29023 neg find hasElementInContainment(problem,interpretation);
29024 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
29025 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Synchronization class");
29026 find mayInstanceOfSynchronization_class(problem,interpretation,newObject);
29027 find mayExist(problem, interpretation, newObject);
29028 neg find mustExist(problem, interpretation, newObject);
29029}
29030pattern createObject_Statechart_class_UndefinedPart(
29031 problem:LogicProblem, interpretation:PartialInterpretation,
29032 typeInterpretation:PartialComplexTypeInterpretation)
29033{
29034 find interpretation(problem,interpretation);
29035 neg find hasElementInContainment(problem,interpretation);
29036 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
29037 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Statechart class UndefinedPart");
29038 find mayInstanceOfStatechart_class_UndefinedPart(problem,interpretation,newObject);
29039 find mayExist(problem, interpretation, newObject);
29040 neg find mustExist(problem, interpretation, newObject);
29041}
29042pattern createObject_State_class_by_vertices_reference_Region(
29043 problem:LogicProblem, interpretation:PartialInterpretation,
29044 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
29045 container:DefinedElement)
29046{
29047 find interpretation(problem,interpretation);
29048 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
29049 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"State class");
29050 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
29051 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"vertices reference Region");
29052 find mustInstanceOfRegion_class(problem,interpretation,container);
29053 find mayInstanceOfState_class(problem,interpretation,newObject);
29054 find mayInRelationvertices_reference_Region(problem,interpretation,container,newObject);
29055 find mustExist(problem, interpretation, container);
29056 neg find mustExist(problem, interpretation, newObject);
29057}
29058pattern createObject_State_class(
29059 problem:LogicProblem, interpretation:PartialInterpretation,
29060 typeInterpretation:PartialComplexTypeInterpretation)
29061{
29062 find interpretation(problem,interpretation);
29063 neg find hasElementInContainment(problem,interpretation);
29064 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
29065 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"State class");
29066 find mayInstanceOfState_class(problem,interpretation,newObject);
29067 find mayExist(problem, interpretation, newObject);
29068 neg find mustExist(problem, interpretation, newObject);
29069}
29070pattern createObject_Exit_class_by_vertices_reference_Region(
29071 problem:LogicProblem, interpretation:PartialInterpretation,
29072 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
29073 container:DefinedElement)
29074{
29075 find interpretation(problem,interpretation);
29076 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
29077 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Exit class");
29078 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
29079 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"vertices reference Region");
29080 find mustInstanceOfRegion_class(problem,interpretation,container);
29081 find mayInstanceOfExit_class(problem,interpretation,newObject);
29082 find mayInRelationvertices_reference_Region(problem,interpretation,container,newObject);
29083 find mustExist(problem, interpretation, container);
29084 neg find mustExist(problem, interpretation, newObject);
29085}
29086pattern createObject_Exit_class(
29087 problem:LogicProblem, interpretation:PartialInterpretation,
29088 typeInterpretation:PartialComplexTypeInterpretation)
29089{
29090 find interpretation(problem,interpretation);
29091 neg find hasElementInContainment(problem,interpretation);
29092 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
29093 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Exit class");
29094 find mayInstanceOfExit_class(problem,interpretation,newObject);
29095 find mayExist(problem, interpretation, newObject);
29096 neg find mustExist(problem, interpretation, newObject);
29097}
29098pattern createObject_FinalState_class_by_vertices_reference_Region(
29099 problem:LogicProblem, interpretation:PartialInterpretation,
29100 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
29101 container:DefinedElement)
29102{
29103 find interpretation(problem,interpretation);
29104 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
29105 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FinalState class");
29106 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
29107 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"vertices reference Region");
29108 find mustInstanceOfRegion_class(problem,interpretation,container);
29109 find mayInstanceOfFinalState_class(problem,interpretation,newObject);
29110 find mayInRelationvertices_reference_Region(problem,interpretation,container,newObject);
29111 find mustExist(problem, interpretation, container);
29112 neg find mustExist(problem, interpretation, newObject);
29113}
29114pattern createObject_FinalState_class(
29115 problem:LogicProblem, interpretation:PartialInterpretation,
29116 typeInterpretation:PartialComplexTypeInterpretation)
29117{
29118 find interpretation(problem,interpretation);
29119 neg find hasElementInContainment(problem,interpretation);
29120 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
29121 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FinalState class");
29122 find mayInstanceOfFinalState_class(problem,interpretation,newObject);
29123 find mayExist(problem, interpretation, newObject);
29124 neg find mustExist(problem, interpretation, newObject);
29125}
29126
29127//////////
29128// 4.2 Type refinement
29129//////////
29130pattern refineTypeTo_Transition_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
29131 find interpretation(problem,interpretation);
29132 PartialInterpretation.newElements(interpretation,element);
29133 find mayInstanceOfTransition_class(problem,interpretation,element);
29134 neg find mustInstanceOfTransition_class(problem,interpretation,element);
29135 neg find mustInstanceOfCompositeElement_class(problem,interpretation,element);
29136 neg find mustInstanceOfRegion_class(problem,interpretation,element);
29137 neg find mustInstanceOfVertex_class(problem,interpretation,element);
29138}
29139pattern refineTypeTo_Entry_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
29140 find interpretation(problem,interpretation);
29141 PartialInterpretation.newElements(interpretation,element);
29142 find mayInstanceOfEntry_class(problem,interpretation,element);
29143 neg find mustInstanceOfTransition_class(problem,interpretation,element);
29144 neg find mustInstanceOfCompositeElement_class(problem,interpretation,element);
29145 neg find mustInstanceOfEntry_class(problem,interpretation,element);
29146 neg find mustInstanceOfRegion_class(problem,interpretation,element);
29147 neg find mustInstanceOfChoice_class(problem,interpretation,element);
29148 neg find mustInstanceOfRegularState_class(problem,interpretation,element);
29149 neg find mustInstanceOfSynchronization_class(problem,interpretation,element);
29150 neg find mustInstanceOfExit_class(problem,interpretation,element);
29151}
29152pattern refineTypeTo_Region_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
29153 find interpretation(problem,interpretation);
29154 PartialInterpretation.newElements(interpretation,element);
29155 find mayInstanceOfRegion_class(problem,interpretation,element);
29156 neg find mustInstanceOfTransition_class(problem,interpretation,element);
29157 neg find mustInstanceOfCompositeElement_class(problem,interpretation,element);
29158 neg find mustInstanceOfRegion_class(problem,interpretation,element);
29159 neg find mustInstanceOfVertex_class(problem,interpretation,element);
29160}
29161pattern refineTypeTo_Choice_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
29162 find interpretation(problem,interpretation);
29163 PartialInterpretation.newElements(interpretation,element);
29164 find mayInstanceOfChoice_class(problem,interpretation,element);
29165 neg find mustInstanceOfTransition_class(problem,interpretation,element);
29166 neg find mustInstanceOfCompositeElement_class(problem,interpretation,element);
29167 neg find mustInstanceOfEntry_class(problem,interpretation,element);
29168 neg find mustInstanceOfRegion_class(problem,interpretation,element);
29169 neg find mustInstanceOfChoice_class(problem,interpretation,element);
29170 neg find mustInstanceOfRegularState_class(problem,interpretation,element);
29171 neg find mustInstanceOfSynchronization_class(problem,interpretation,element);
29172 neg find mustInstanceOfExit_class(problem,interpretation,element);
29173}
29174pattern refineTypeTo_Synchronization_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
29175 find interpretation(problem,interpretation);
29176 PartialInterpretation.newElements(interpretation,element);
29177 find mayInstanceOfSynchronization_class(problem,interpretation,element);
29178 neg find mustInstanceOfTransition_class(problem,interpretation,element);
29179 neg find mustInstanceOfCompositeElement_class(problem,interpretation,element);
29180 neg find mustInstanceOfEntry_class(problem,interpretation,element);
29181 neg find mustInstanceOfRegion_class(problem,interpretation,element);
29182 neg find mustInstanceOfChoice_class(problem,interpretation,element);
29183 neg find mustInstanceOfRegularState_class(problem,interpretation,element);
29184 neg find mustInstanceOfSynchronization_class(problem,interpretation,element);
29185 neg find mustInstanceOfExit_class(problem,interpretation,element);
29186}
29187pattern refineTypeTo_Statechart_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
29188 find interpretation(problem,interpretation);
29189 PartialInterpretation.newElements(interpretation,element);
29190 find mayInstanceOfStatechart_class_UndefinedPart(problem,interpretation,element);
29191 neg find mustInstanceOfTransition_class(problem,interpretation,element);
29192 neg find mustInstanceOfRegion_class(problem,interpretation,element);
29193 neg find mustInstanceOfVertex_class(problem,interpretation,element);
29194 neg find mustInstanceOfStatechart_class_UndefinedPart(problem,interpretation,element);
29195}
29196pattern refineTypeTo_State_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
29197 find interpretation(problem,interpretation);
29198 PartialInterpretation.newElements(interpretation,element);
29199 find mayInstanceOfState_class(problem,interpretation,element);
29200 neg find mustInstanceOfPseudostate_class(problem,interpretation,element);
29201 neg find mustInstanceOfTransition_class(problem,interpretation,element);
29202 neg find mustInstanceOfStatechart_class(problem,interpretation,element);
29203 neg find mustInstanceOfRegion_class(problem,interpretation,element);
29204 neg find mustInstanceOfState_class(problem,interpretation,element);
29205 neg find mustInstanceOfFinalState_class(problem,interpretation,element);
29206}
29207pattern refineTypeTo_Exit_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
29208 find interpretation(problem,interpretation);
29209 PartialInterpretation.newElements(interpretation,element);
29210 find mayInstanceOfExit_class(problem,interpretation,element);
29211 neg find mustInstanceOfTransition_class(problem,interpretation,element);
29212 neg find mustInstanceOfCompositeElement_class(problem,interpretation,element);
29213 neg find mustInstanceOfEntry_class(problem,interpretation,element);
29214 neg find mustInstanceOfRegion_class(problem,interpretation,element);
29215 neg find mustInstanceOfChoice_class(problem,interpretation,element);
29216 neg find mustInstanceOfRegularState_class(problem,interpretation,element);
29217 neg find mustInstanceOfSynchronization_class(problem,interpretation,element);
29218 neg find mustInstanceOfExit_class(problem,interpretation,element);
29219}
29220pattern refineTypeTo_FinalState_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
29221 find interpretation(problem,interpretation);
29222 PartialInterpretation.newElements(interpretation,element);
29223 find mayInstanceOfFinalState_class(problem,interpretation,element);
29224 neg find mustInstanceOfPseudostate_class(problem,interpretation,element);
29225 neg find mustInstanceOfTransition_class(problem,interpretation,element);
29226 neg find mustInstanceOfCompositeElement_class(problem,interpretation,element);
29227 neg find mustInstanceOfRegion_class(problem,interpretation,element);
29228 neg find mustInstanceOfFinalState_class(problem,interpretation,element);
29229}
29230
29231//////////
29232// 4.3 Relation refinement
29233//////////
29234pattern refineRelation_incomingTransitions_reference_Vertex_and_target_reference_Transition(
29235 problem:LogicProblem, interpretation:PartialInterpretation,
29236 relationIterpretation:PartialRelationInterpretation, oppositeInterpretation:PartialRelationInterpretation,
29237 from: DefinedElement, to: DefinedElement)
29238{
29239 find interpretation(problem,interpretation);
29240 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
29241 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"incomingTransitions reference Vertex");
29242 PartialInterpretation.partialrelationinterpretation(interpretation,oppositeInterpretation);
29243 PartialRelationInterpretation.interpretationOf.name(oppositeInterpretation,"target reference Transition");
29244 find mustExist(problem, interpretation, from);
29245 find mustExist(problem, interpretation, to);
29246 find mustInstanceOfVertex_class(problem,interpretation,from);
29247 find mustInstanceOfTransition_class(problem,interpretation,to);
29248 find mayInRelationincomingTransitions_reference_Vertex(problem,interpretation,from,to);
29249 neg find mustInRelationincomingTransitions_reference_Vertex(problem,interpretation,from,to);
29250}
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/debug/generation.logicproblem b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/debug/generation.logicproblem
index 2079fe25..3696f838 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/debug/generation.logicproblem
+++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/debug/generation.logicproblem
@@ -1402,7 +1402,7 @@
1402 </value> 1402 </value>
1403 </relations> 1403 </relations>
1404 <elements name="o 1" definedInType="//@types.13 //@types.15"/> 1404 <elements name="o 1" definedInType="//@types.13 //@types.15"/>
1405 <containmentHierarchies typesOrderedInHierarchy="//@types.7 //@types.6 //@types.2 //@types.8 //@types.0 //@types.1 //@types.4 //@types.5 //@types.3 //@types.10 //@types.11 //@types.9 //@types.12 //@types.13 //@types.14 //@types.15 //@types.16" containmentRelations="//@relations.1 //@relations.2 //@relations.5"/> 1405 <containmentHierarchies typesOrderedInHierarchy="//@types.7 //@types.2 //@types.4 //@types.6 //@types.10 //@types.1 //@types.8 //@types.5 //@types.0 //@types.12 //@types.11 //@types.3 //@types.9 //@types.13 //@types.14 //@types.15 //@types.16" containmentRelations="//@relations.1 //@relations.2 //@relations.5"/>
1406 <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.0" relation="//@relations.3" lower="1"/> 1406 <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.0" relation="//@relations.3" lower="1"/>
1407 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.1" relation="//@relations.3" upper="1"/> 1407 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.1" relation="//@relations.3" upper="1"/>
1408 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.2" relation="//@relations.4" upper="1"/> 1408 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.2" relation="//@relations.4" upper="1"/>
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/log.txt b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/log.txt
index 977a3efc..8d1daafe 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/log.txt
+++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/log.txt
@@ -1 +1 @@
Model 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 startedUnable to solve problem, but 0 model generated!Model generation finishedModel generation startedUnable to solve problem, but 0 model generated!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 finished \ No newline at end of file Model 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 startedUnable to solve problem, but 0 model generated!Model generation finishedModel generation startedUnable to solve problem, but 0 model generated!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!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 finished \ No newline at end of file
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/models/1.gml b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/models/1.gml
index 897aa2d4..2b44b530 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/models/1.gml
+++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/models/1.gml
@@ -12790,3 +12790,833 @@ graph
12790 ] 12790 ]
12791 ] 12791 ]
12792] 12792]
12793graph
12794[
12795 node
12796 [
12797 id 0
12798 graphics
12799 [
12800 w 277.20000000000005
12801 h 82
12802 type "rectangle"
12803 fill "#FFFFFF"
12804 fill2 "#FFFFFF"
12805 outline "#000000"
12806 ]
12807 LabelGraphics
12808 [
12809 text "o 1"
12810 outline "#000000"
12811 fill "#FFFFFF"
12812 fontSize 16
12813 fontName "Monospace"
12814 autoSizePolicy "node_width"
12815 anchor "t"
12816 borderDistance 0.0
12817 ]
12818 LabelGraphics
12819 [
12820 text "
12821 Statechart class DefinedPart
12822 CompositeElement class DefinedPart
12823 Statechart class
12824 CompositeElement class
12825 "
12826 fontSize 14
12827 fontName "Consolas"
12828 alignment "left"
12829 anchor "tl"
12830 borderDistance 6
12831 ]
12832 ]
12833
12834 node
12835 [
12836 id 1
12837 graphics
12838 [
12839 w 41.800000000000004
12840 h 26
12841 type "rectangle"
12842 fill "#FFFFFF"
12843 fill2 "#FFFFFF"
12844 outline "#000000"
12845 ]
12846 LabelGraphics
12847 [
12848 text "true"
12849 outline "#000000"
12850 fill "#FFFFFF"
12851 fontSize 16
12852 fontName "Monospace"
12853 autoSizePolicy "node_width"
12854 anchor "t"
12855 borderDistance 0.0
12856 ]
12857 LabelGraphics
12858 [
12859 text "
12860 "
12861 fontSize 14
12862 fontName "Consolas"
12863 alignment "left"
12864 anchor "tl"
12865 borderDistance 6
12866 ]
12867 ]
12868
12869 node
12870 [
12871 id 2
12872 graphics
12873 [
12874 w 50.6
12875 h 26
12876 type "rectangle"
12877 fill "#FFFFFF"
12878 fill2 "#FFFFFF"
12879 outline "#000000"
12880 ]
12881 LabelGraphics
12882 [
12883 text "false"
12884 outline "#000000"
12885 fill "#FFFFFF"
12886 fontSize 16
12887 fontName "Monospace"
12888 autoSizePolicy "node_width"
12889 anchor "t"
12890 borderDistance 0.0
12891 ]
12892 LabelGraphics
12893 [
12894 text "
12895 "
12896 fontSize 14
12897 fontName "Consolas"
12898 alignment "left"
12899 anchor "tl"
12900 borderDistance 6
12901 ]
12902 ]
12903
12904 node
12905 [
12906 id 3
12907 graphics
12908 [
12909 w 107.80000000000001
12910 h 40
12911 type "rectangle"
12912 fill "#FFFFFF"
12913 fill2 "#FFFFFF"
12914 outline "#000000"
12915 ]
12916 LabelGraphics
12917 [
12918 text "null"
12919 outline "#000000"
12920 fill "#FFFFFF"
12921 fontSize 16
12922 fontName "Monospace"
12923 autoSizePolicy "node_width"
12924 anchor "t"
12925 borderDistance 0.0
12926 ]
12927 LabelGraphics
12928 [
12929 text "
12930 Region class
12931 "
12932 fontSize 14
12933 fontName "Consolas"
12934 alignment "left"
12935 anchor "tl"
12936 borderDistance 6
12937 ]
12938 ]
12939
12940 node
12941 [
12942 id 4
12943 graphics
12944 [
12945 w 154.0
12946 h 68
12947 type "rectangle"
12948 fill "#FFFFFF"
12949 fill2 "#FFFFFF"
12950 outline "#000000"
12951 ]
12952 LabelGraphics
12953 [
12954 text "null"
12955 outline "#000000"
12956 fill "#FFFFFF"
12957 fontSize 16
12958 fontName "Monospace"
12959 autoSizePolicy "node_width"
12960 anchor "t"
12961 borderDistance 0.0
12962 ]
12963 LabelGraphics
12964 [
12965 text "
12966 Vertex class
12967 RegularState class
12968 FinalState class
12969 "
12970 fontSize 14
12971 fontName "Consolas"
12972 alignment "left"
12973 anchor "tl"
12974 borderDistance 6
12975 ]
12976 ]
12977
12978 node
12979 [
12980 id 5
12981 graphics
12982 [
12983 w 146.3
12984 h 68
12985 type "rectangle"
12986 fill "#FFFFFF"
12987 fill2 "#FFFFFF"
12988 outline "#000000"
12989 ]
12990 LabelGraphics
12991 [
12992 text "null"
12993 outline "#000000"
12994 fill "#FFFFFF"
12995 fontSize 16
12996 fontName "Monospace"
12997 autoSizePolicy "node_width"
12998 anchor "t"
12999 borderDistance 0.0
13000 ]
13001 LabelGraphics
13002 [
13003 text "
13004 Pseudostate class
13005 Vertex class
13006 Entry class
13007 "
13008 fontSize 14
13009 fontName "Consolas"
13010 alignment "left"
13011 anchor "tl"
13012 borderDistance 6
13013 ]
13014 ]
13015
13016 node
13017 [
13018 id 6
13019 graphics
13020 [
13021 w 154.0
13022 h 68
13023 type "rectangle"
13024 fill "#FFFFFF"
13025 fill2 "#FFFFFF"
13026 outline "#000000"
13027 ]
13028 LabelGraphics
13029 [
13030 text "null"
13031 outline "#000000"
13032 fill "#FFFFFF"
13033 fontSize 16
13034 fontName "Monospace"
13035 autoSizePolicy "node_width"
13036 anchor "t"
13037 borderDistance 0.0
13038 ]
13039 LabelGraphics
13040 [
13041 text "
13042 Vertex class
13043 RegularState class
13044 FinalState class
13045 "
13046 fontSize 14
13047 fontName "Consolas"
13048 alignment "left"
13049 anchor "tl"
13050 borderDistance 6
13051 ]
13052 ]
13053
13054 node
13055 [
13056 id 7
13057 graphics
13058 [
13059 w 154.0
13060 h 68
13061 type "rectangle"
13062 fill "#FFFFFF"
13063 fill2 "#FFFFFF"
13064 outline "#000000"
13065 ]
13066 LabelGraphics
13067 [
13068 text "null"
13069 outline "#000000"
13070 fill "#FFFFFF"
13071 fontSize 16
13072 fontName "Monospace"
13073 autoSizePolicy "node_width"
13074 anchor "t"
13075 borderDistance 0.0
13076 ]
13077 LabelGraphics
13078 [
13079 text "
13080 Vertex class
13081 RegularState class
13082 FinalState class
13083 "
13084 fontSize 14
13085 fontName "Consolas"
13086 alignment "left"
13087 anchor "tl"
13088 borderDistance 6
13089 ]
13090 ]
13091
13092 node
13093 [
13094 id 8
13095 graphics
13096 [
13097 w 292.6
13098 h 96
13099 type "rectangle"
13100 fill "#FFFFFF"
13101 fill2 "#FFFFFF"
13102 outline "#000000"
13103 ]
13104 LabelGraphics
13105 [
13106 text "null"
13107 outline "#000000"
13108 fill "#FFFFFF"
13109 fontSize 16
13110 fontName "Monospace"
13111 autoSizePolicy "node_width"
13112 anchor "t"
13113 borderDistance 0.0
13114 ]
13115 LabelGraphics
13116 [
13117 text "
13118 Vertex class
13119 State class
13120 RegularState class
13121 CompositeElement class
13122 CompositeElement class UndefinedPart
13123 "
13124 fontSize 14
13125 fontName "Consolas"
13126 alignment "left"
13127 anchor "tl"
13128 borderDistance 6
13129 ]
13130 ]
13131
13132 node
13133 [
13134 id 9
13135 graphics
13136 [
13137 w 138.60000000000002
13138 h 40
13139 type "rectangle"
13140 fill "#FFFFFF"
13141 fill2 "#FFFFFF"
13142 outline "#000000"
13143 ]
13144 LabelGraphics
13145 [
13146 text "null"
13147 outline "#000000"
13148 fill "#FFFFFF"
13149 fontSize 16
13150 fontName "Monospace"
13151 autoSizePolicy "node_width"
13152 anchor "t"
13153 borderDistance 0.0
13154 ]
13155 LabelGraphics
13156 [
13157 text "
13158 Transition class
13159 "
13160 fontSize 14
13161 fontName "Consolas"
13162 alignment "left"
13163 anchor "tl"
13164 borderDistance 6
13165 ]
13166 ]
13167
13168 node
13169 [
13170 id 10
13171 graphics
13172 [
13173 w 292.6
13174 h 96
13175 type "rectangle"
13176 fill "#FFFFFF"
13177 fill2 "#FFFFFF"
13178 outline "#000000"
13179 ]
13180 LabelGraphics
13181 [
13182 text "null"
13183 outline "#000000"
13184 fill "#FFFFFF"
13185 fontSize 16
13186 fontName "Monospace"
13187 autoSizePolicy "node_width"
13188 anchor "t"
13189 borderDistance 0.0
13190 ]
13191 LabelGraphics
13192 [
13193 text "
13194 Vertex class
13195 State class
13196 RegularState class
13197 CompositeElement class
13198 CompositeElement class UndefinedPart
13199 "
13200 fontSize 14
13201 fontName "Consolas"
13202 alignment "left"
13203 anchor "tl"
13204 borderDistance 6
13205 ]
13206 ]
13207
13208 node
13209 [
13210 id 11
13211 graphics
13212 [
13213 w 146.3
13214 h 68
13215 type "rectangle"
13216 fill "#FFFFFF"
13217 fill2 "#FFFFFF"
13218 outline "#000000"
13219 ]
13220 LabelGraphics
13221 [
13222 text "null"
13223 outline "#000000"
13224 fill "#FFFFFF"
13225 fontSize 16
13226 fontName "Monospace"
13227 autoSizePolicy "node_width"
13228 anchor "t"
13229 borderDistance 0.0
13230 ]
13231 LabelGraphics
13232 [
13233 text "
13234 Pseudostate class
13235 Vertex class
13236 Exit class
13237 "
13238 fontSize 14
13239 fontName "Consolas"
13240 alignment "left"
13241 anchor "tl"
13242 borderDistance 6
13243 ]
13244 ]
13245
13246 node
13247 [
13248 id 12
13249 graphics
13250 [
13251 w 112.2
13252 h 26
13253 type "rectangle"
13254 fill "#FFFFFF"
13255 fill2 "#FFFFFF"
13256 outline "#000000"
13257 ]
13258 LabelGraphics
13259 [
13260 text "New Integers"
13261 outline "#000000"
13262 fill "#FFFFFF"
13263 fontSize 16
13264 fontName "Monospace"
13265 autoSizePolicy "node_width"
13266 anchor "t"
13267 borderDistance 0.0
13268 ]
13269 LabelGraphics
13270 [
13271 text "
13272 "
13273 fontSize 14
13274 fontName "Consolas"
13275 alignment "left"
13276 anchor "tl"
13277 borderDistance 6
13278 ]
13279 ]
13280
13281 node
13282 [
13283 id 13
13284 graphics
13285 [
13286 w 85.80000000000001
13287 h 26
13288 type "rectangle"
13289 fill "#FFFFFF"
13290 fill2 "#FFFFFF"
13291 outline "#000000"
13292 ]
13293 LabelGraphics
13294 [
13295 text "New Reals"
13296 outline "#000000"
13297 fill "#FFFFFF"
13298 fontSize 16
13299 fontName "Monospace"
13300 autoSizePolicy "node_width"
13301 anchor "t"
13302 borderDistance 0.0
13303 ]
13304 LabelGraphics
13305 [
13306 text "
13307 "
13308 fontSize 14
13309 fontName "Consolas"
13310 alignment "left"
13311 anchor "tl"
13312 borderDistance 6
13313 ]
13314 ]
13315
13316 node
13317 [
13318 id 14
13319 graphics
13320 [
13321 w 103.4
13322 h 26
13323 type "rectangle"
13324 fill "#FFFFFF"
13325 fill2 "#FFFFFF"
13326 outline "#000000"
13327 ]
13328 LabelGraphics
13329 [
13330 text "New Strings"
13331 outline "#000000"
13332 fill "#FFFFFF"
13333 fontSize 16
13334 fontName "Monospace"
13335 autoSizePolicy "node_width"
13336 anchor "t"
13337 borderDistance 0.0
13338 ]
13339 LabelGraphics
13340 [
13341 text "
13342 "
13343 fontSize 14
13344 fontName "Consolas"
13345 alignment "left"
13346 anchor "tl"
13347 borderDistance 6
13348 ]
13349 ]
13350
13351 node
13352 [
13353 id 15
13354 graphics
13355 [
13356 w 103.4
13357 h 26
13358 type "rectangle"
13359 fill "#FFFFFF"
13360 fill2 "#FFFFFF"
13361 outline "#000000"
13362 ]
13363 LabelGraphics
13364 [
13365 text "New Objects"
13366 outline "#000000"
13367 fill "#FFFFFF"
13368 fontSize 16
13369 fontName "Monospace"
13370 autoSizePolicy "node_width"
13371 anchor "t"
13372 borderDistance 0.0
13373 ]
13374 LabelGraphics
13375 [
13376 text "
13377 "
13378 fontSize 14
13379 fontName "Consolas"
13380 alignment "left"
13381 anchor "tl"
13382 borderDistance 6
13383 ]
13384 ]
13385 edge
13386 [
13387 source 7
13388 target 9
13389 graphics
13390 [
13391 fill "#000000"
13392 targetArrow "standard"
13393 ]
13394 LabelGraphics
13395 [
13396 text "incomingTransitions reference Vertex"
13397 fontSize 14
13398 fontName "Consolas"
13399 configuration "AutoFlippingLabel"
13400 model "six_pos"
13401 position "thead"
13402 ]
13403 ]
13404 edge
13405 [
13406 source 5
13407 target 9
13408 graphics
13409 [
13410 fill "#000000"
13411 width 3
13412 targetArrow "standard"
13413 ]
13414 LabelGraphics
13415 [
13416 text "outgoingTransitions reference Vertex"
13417 fontSize 14
13418 fontName "Consolas"
13419 configuration "AutoFlippingLabel"
13420 model "six_pos"
13421 position "thead"
13422 ]
13423 ]
13424 edge
13425 [
13426 source 3
13427 target 4
13428 graphics
13429 [
13430 fill "#000000"
13431 width 3
13432 targetArrow "standard"
13433 ]
13434 LabelGraphics
13435 [
13436 text "vertices reference Region"
13437 fontSize 14
13438 fontName "Consolas"
13439 configuration "AutoFlippingLabel"
13440 model "six_pos"
13441 position "thead"
13442 ]
13443 ]
13444 edge
13445 [
13446 source 3
13447 target 5
13448 graphics
13449 [
13450 fill "#000000"
13451 width 3
13452 targetArrow "standard"
13453 ]
13454 LabelGraphics
13455 [
13456 text "vertices reference Region"
13457 fontSize 14
13458 fontName "Consolas"
13459 configuration "AutoFlippingLabel"
13460 model "six_pos"
13461 position "thead"
13462 ]
13463 ]
13464 edge
13465 [
13466 source 3
13467 target 6
13468 graphics
13469 [
13470 fill "#000000"
13471 width 3
13472 targetArrow "standard"
13473 ]
13474 LabelGraphics
13475 [
13476 text "vertices reference Region"
13477 fontSize 14
13478 fontName "Consolas"
13479 configuration "AutoFlippingLabel"
13480 model "six_pos"
13481 position "thead"
13482 ]
13483 ]
13484 edge
13485 [
13486 source 3
13487 target 7
13488 graphics
13489 [
13490 fill "#000000"
13491 width 3
13492 targetArrow "standard"
13493 ]
13494 LabelGraphics
13495 [
13496 text "vertices reference Region"
13497 fontSize 14
13498 fontName "Consolas"
13499 configuration "AutoFlippingLabel"
13500 model "six_pos"
13501 position "thead"
13502 ]
13503 ]
13504 edge
13505 [
13506 source 3
13507 target 8
13508 graphics
13509 [
13510 fill "#000000"
13511 width 3
13512 targetArrow "standard"
13513 ]
13514 LabelGraphics
13515 [
13516 text "vertices reference Region"
13517 fontSize 14
13518 fontName "Consolas"
13519 configuration "AutoFlippingLabel"
13520 model "six_pos"
13521 position "thead"
13522 ]
13523 ]
13524 edge
13525 [
13526 source 3
13527 target 10
13528 graphics
13529 [
13530 fill "#000000"
13531 width 3
13532 targetArrow "standard"
13533 ]
13534 LabelGraphics
13535 [
13536 text "vertices reference Region"
13537 fontSize 14
13538 fontName "Consolas"
13539 configuration "AutoFlippingLabel"
13540 model "six_pos"
13541 position "thead"
13542 ]
13543 ]
13544 edge
13545 [
13546 source 3
13547 target 11
13548 graphics
13549 [
13550 fill "#000000"
13551 width 3
13552 targetArrow "standard"
13553 ]
13554 LabelGraphics
13555 [
13556 text "vertices reference Region"
13557 fontSize 14
13558 fontName "Consolas"
13559 configuration "AutoFlippingLabel"
13560 model "six_pos"
13561 position "thead"
13562 ]
13563 ]
13564 edge
13565 [
13566 source 9
13567 target 7
13568 graphics
13569 [
13570 fill "#000000"
13571 targetArrow "standard"
13572 ]
13573 LabelGraphics
13574 [
13575 text "target reference Transition"
13576 fontSize 14
13577 fontName "Consolas"
13578 configuration "AutoFlippingLabel"
13579 model "six_pos"
13580 position "thead"
13581 ]
13582 ]
13583 edge
13584 [
13585 source 9
13586 target 5
13587 graphics
13588 [
13589 fill "#000000"
13590 targetArrow "standard"
13591 ]
13592 LabelGraphics
13593 [
13594 text "source reference Transition"
13595 fontSize 14
13596 fontName "Consolas"
13597 configuration "AutoFlippingLabel"
13598 model "six_pos"
13599 position "thead"
13600 ]
13601 ]
13602 edge
13603 [
13604 source 0
13605 target 3
13606 graphics
13607 [
13608 fill "#000000"
13609 width 3
13610 targetArrow "standard"
13611 ]
13612 LabelGraphics
13613 [
13614 text "regions reference CompositeElement"
13615 fontSize 14
13616 fontName "Consolas"
13617 configuration "AutoFlippingLabel"
13618 model "six_pos"
13619 position "thead"
13620 ]
13621 ]
13622]
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/models/1.png b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/models/1.png
index 0b9199f4..6c9b4ffb 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/models/1.png
+++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/models/1.png
Binary files differ
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/models/1.xmi b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/models/1.xmi
index 8136fd72..137f0943 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/models/1.xmi
+++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/models/1.xmi
@@ -1,15 +1,14 @@
1<?xml version="1.0" encoding="ASCII"?> 1<?xml version="1.0" encoding="ASCII"?>
2<yakindu:Statechart xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:yakindu="YakinduMetamodel"> 2<yakindu:Statechart xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:yakindu="YakinduMetamodel">
3 <regions> 3 <regions>
4 <vertices xsi:type="yakindu:State" incomingTransitions="//@regions.0/@vertices.3/@outgoingTransitions.1"/> 4 <vertices xsi:type="yakindu:FinalState"/>
5 <vertices xsi:type="yakindu:Entry"> 5 <vertices xsi:type="yakindu:State"/>
6 <outgoingTransitions target="//@regions.0/@vertices.3"/>
7 </vertices>
8 <vertices xsi:type="yakindu:Exit"/> 6 <vertices xsi:type="yakindu:Exit"/>
9 <vertices xsi:type="yakindu:State" incomingTransitions="//@regions.0/@vertices.1/@outgoingTransitions.0"> 7 <vertices xsi:type="yakindu:FinalState"/>
10 <outgoingTransitions target="//@regions.0/@vertices.4"/> 8 <vertices xsi:type="yakindu:State"/>
11 <outgoingTransitions target="//@regions.0/@vertices.0"/> 9 <vertices xsi:type="yakindu:Entry">
10 <outgoingTransitions target="//@regions.0/@vertices.6"/>
12 </vertices> 11 </vertices>
13 <vertices xsi:type="yakindu:FinalState" incomingTransitions="//@regions.0/@vertices.3/@outgoingTransitions.0"/> 12 <vertices xsi:type="yakindu:FinalState" incomingTransitions="//@regions.0/@vertices.5/@outgoingTransitions.0"/>
14 </regions> 13 </regions>
15</yakindu:Statechart> 14</yakindu:Statechart>
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/models/2.gml b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/models/2.gml
index 77878c2e..f0112af7 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/models/2.gml
+++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/models/2.gml
@@ -12376,3 +12376,835 @@ graph
12376 ] 12376 ]
12377 ] 12377 ]
12378] 12378]
12379graph
12380[
12381 node
12382 [
12383 id 0
12384 graphics
12385 [
12386 w 277.20000000000005
12387 h 82
12388 type "rectangle"
12389 fill "#FFFFFF"
12390 fill2 "#FFFFFF"
12391 outline "#000000"
12392 ]
12393 LabelGraphics
12394 [
12395 text "o 1"
12396 outline "#000000"
12397 fill "#FFFFFF"
12398 fontSize 16
12399 fontName "Monospace"
12400 autoSizePolicy "node_width"
12401 anchor "t"
12402 borderDistance 0.0
12403 ]
12404 LabelGraphics
12405 [
12406 text "
12407 Statechart class DefinedPart
12408 CompositeElement class DefinedPart
12409 Statechart class
12410 CompositeElement class
12411 "
12412 fontSize 14
12413 fontName "Consolas"
12414 alignment "left"
12415 anchor "tl"
12416 borderDistance 6
12417 ]
12418 ]
12419
12420 node
12421 [
12422 id 1
12423 graphics
12424 [
12425 w 41.800000000000004
12426 h 26
12427 type "rectangle"
12428 fill "#FFFFFF"
12429 fill2 "#FFFFFF"
12430 outline "#000000"
12431 ]
12432 LabelGraphics
12433 [
12434 text "true"
12435 outline "#000000"
12436 fill "#FFFFFF"
12437 fontSize 16
12438 fontName "Monospace"
12439 autoSizePolicy "node_width"
12440 anchor "t"
12441 borderDistance 0.0
12442 ]
12443 LabelGraphics
12444 [
12445 text "
12446 "
12447 fontSize 14
12448 fontName "Consolas"
12449 alignment "left"
12450 anchor "tl"
12451 borderDistance 6
12452 ]
12453 ]
12454
12455 node
12456 [
12457 id 2
12458 graphics
12459 [
12460 w 50.6
12461 h 26
12462 type "rectangle"
12463 fill "#FFFFFF"
12464 fill2 "#FFFFFF"
12465 outline "#000000"
12466 ]
12467 LabelGraphics
12468 [
12469 text "false"
12470 outline "#000000"
12471 fill "#FFFFFF"
12472 fontSize 16
12473 fontName "Monospace"
12474 autoSizePolicy "node_width"
12475 anchor "t"
12476 borderDistance 0.0
12477 ]
12478 LabelGraphics
12479 [
12480 text "
12481 "
12482 fontSize 14
12483 fontName "Consolas"
12484 alignment "left"
12485 anchor "tl"
12486 borderDistance 6
12487 ]
12488 ]
12489
12490 node
12491 [
12492 id 3
12493 graphics
12494 [
12495 w 107.80000000000001
12496 h 40
12497 type "rectangle"
12498 fill "#FFFFFF"
12499 fill2 "#FFFFFF"
12500 outline "#000000"
12501 ]
12502 LabelGraphics
12503 [
12504 text "null"
12505 outline "#000000"
12506 fill "#FFFFFF"
12507 fontSize 16
12508 fontName "Monospace"
12509 autoSizePolicy "node_width"
12510 anchor "t"
12511 borderDistance 0.0
12512 ]
12513 LabelGraphics
12514 [
12515 text "
12516 Region class
12517 "
12518 fontSize 14
12519 fontName "Consolas"
12520 alignment "left"
12521 anchor "tl"
12522 borderDistance 6
12523 ]
12524 ]
12525
12526 node
12527 [
12528 id 4
12529 graphics
12530 [
12531 w 154.0
12532 h 68
12533 type "rectangle"
12534 fill "#FFFFFF"
12535 fill2 "#FFFFFF"
12536 outline "#000000"
12537 ]
12538 LabelGraphics
12539 [
12540 text "null"
12541 outline "#000000"
12542 fill "#FFFFFF"
12543 fontSize 16
12544 fontName "Monospace"
12545 autoSizePolicy "node_width"
12546 anchor "t"
12547 borderDistance 0.0
12548 ]
12549 LabelGraphics
12550 [
12551 text "
12552 Vertex class
12553 RegularState class
12554 FinalState class
12555 "
12556 fontSize 14
12557 fontName "Consolas"
12558 alignment "left"
12559 anchor "tl"
12560 borderDistance 6
12561 ]
12562 ]
12563
12564 node
12565 [
12566 id 5
12567 graphics
12568 [
12569 w 146.3
12570 h 68
12571 type "rectangle"
12572 fill "#FFFFFF"
12573 fill2 "#FFFFFF"
12574 outline "#000000"
12575 ]
12576 LabelGraphics
12577 [
12578 text "null"
12579 outline "#000000"
12580 fill "#FFFFFF"
12581 fontSize 16
12582 fontName "Monospace"
12583 autoSizePolicy "node_width"
12584 anchor "t"
12585 borderDistance 0.0
12586 ]
12587 LabelGraphics
12588 [
12589 text "
12590 Pseudostate class
12591 Vertex class
12592 Entry class
12593 "
12594 fontSize 14
12595 fontName "Consolas"
12596 alignment "left"
12597 anchor "tl"
12598 borderDistance 6
12599 ]
12600 ]
12601
12602 node
12603 [
12604 id 6
12605 graphics
12606 [
12607 w 154.0
12608 h 68
12609 type "rectangle"
12610 fill "#FFFFFF"
12611 fill2 "#FFFFFF"
12612 outline "#000000"
12613 ]
12614 LabelGraphics
12615 [
12616 text "null"
12617 outline "#000000"
12618 fill "#FFFFFF"
12619 fontSize 16
12620 fontName "Monospace"
12621 autoSizePolicy "node_width"
12622 anchor "t"
12623 borderDistance 0.0
12624 ]
12625 LabelGraphics
12626 [
12627 text "
12628 Vertex class
12629 RegularState class
12630 FinalState class
12631 "
12632 fontSize 14
12633 fontName "Consolas"
12634 alignment "left"
12635 anchor "tl"
12636 borderDistance 6
12637 ]
12638 ]
12639
12640 node
12641 [
12642 id 7
12643 graphics
12644 [
12645 w 154.0
12646 h 68
12647 type "rectangle"
12648 fill "#FFFFFF"
12649 fill2 "#FFFFFF"
12650 outline "#000000"
12651 ]
12652 LabelGraphics
12653 [
12654 text "null"
12655 outline "#000000"
12656 fill "#FFFFFF"
12657 fontSize 16
12658 fontName "Monospace"
12659 autoSizePolicy "node_width"
12660 anchor "t"
12661 borderDistance 0.0
12662 ]
12663 LabelGraphics
12664 [
12665 text "
12666 Vertex class
12667 RegularState class
12668 FinalState class
12669 "
12670 fontSize 14
12671 fontName "Consolas"
12672 alignment "left"
12673 anchor "tl"
12674 borderDistance 6
12675 ]
12676 ]
12677
12678 node
12679 [
12680 id 8
12681 graphics
12682 [
12683 w 292.6
12684 h 96
12685 type "rectangle"
12686 fill "#FFFFFF"
12687 fill2 "#FFFFFF"
12688 outline "#000000"
12689 ]
12690 LabelGraphics
12691 [
12692 text "null"
12693 outline "#000000"
12694 fill "#FFFFFF"
12695 fontSize 16
12696 fontName "Monospace"
12697 autoSizePolicy "node_width"
12698 anchor "t"
12699 borderDistance 0.0
12700 ]
12701 LabelGraphics
12702 [
12703 text "
12704 Vertex class
12705 State class
12706 RegularState class
12707 CompositeElement class
12708 CompositeElement class UndefinedPart
12709 "
12710 fontSize 14
12711 fontName "Consolas"
12712 alignment "left"
12713 anchor "tl"
12714 borderDistance 6
12715 ]
12716 ]
12717
12718 node
12719 [
12720 id 9
12721 graphics
12722 [
12723 w 138.60000000000002
12724 h 40
12725 type "rectangle"
12726 fill "#FFFFFF"
12727 fill2 "#FFFFFF"
12728 outline "#000000"
12729 ]
12730 LabelGraphics
12731 [
12732 text "null"
12733 outline "#000000"
12734 fill "#FFFFFF"
12735 fontSize 16
12736 fontName "Monospace"
12737 autoSizePolicy "node_width"
12738 anchor "t"
12739 borderDistance 0.0
12740 ]
12741 LabelGraphics
12742 [
12743 text "
12744 Transition class
12745 "
12746 fontSize 14
12747 fontName "Consolas"
12748 alignment "left"
12749 anchor "tl"
12750 borderDistance 6
12751 ]
12752 ]
12753
12754 node
12755 [
12756 id 10
12757 graphics
12758 [
12759 w 292.6
12760 h 96
12761 type "rectangle"
12762 fill "#FFFFFF"
12763 fill2 "#FFFFFF"
12764 outline "#000000"
12765 ]
12766 LabelGraphics
12767 [
12768 text "null"
12769 outline "#000000"
12770 fill "#FFFFFF"
12771 fontSize 16
12772 fontName "Monospace"
12773 autoSizePolicy "node_width"
12774 anchor "t"
12775 borderDistance 0.0
12776 ]
12777 LabelGraphics
12778 [
12779 text "
12780 Vertex class
12781 State class
12782 RegularState class
12783 CompositeElement class
12784 CompositeElement class UndefinedPart
12785 "
12786 fontSize 14
12787 fontName "Consolas"
12788 alignment "left"
12789 anchor "tl"
12790 borderDistance 6
12791 ]
12792 ]
12793
12794 node
12795 [
12796 id 11
12797 graphics
12798 [
12799 w 292.6
12800 h 96
12801 type "rectangle"
12802 fill "#FFFFFF"
12803 fill2 "#FFFFFF"
12804 outline "#000000"
12805 ]
12806 LabelGraphics
12807 [
12808 text "null"
12809 outline "#000000"
12810 fill "#FFFFFF"
12811 fontSize 16
12812 fontName "Monospace"
12813 autoSizePolicy "node_width"
12814 anchor "t"
12815 borderDistance 0.0
12816 ]
12817 LabelGraphics
12818 [
12819 text "
12820 Vertex class
12821 State class
12822 RegularState class
12823 CompositeElement class
12824 CompositeElement class UndefinedPart
12825 "
12826 fontSize 14
12827 fontName "Consolas"
12828 alignment "left"
12829 anchor "tl"
12830 borderDistance 6
12831 ]
12832 ]
12833
12834 node
12835 [
12836 id 12
12837 graphics
12838 [
12839 w 112.2
12840 h 26
12841 type "rectangle"
12842 fill "#FFFFFF"
12843 fill2 "#FFFFFF"
12844 outline "#000000"
12845 ]
12846 LabelGraphics
12847 [
12848 text "New Integers"
12849 outline "#000000"
12850 fill "#FFFFFF"
12851 fontSize 16
12852 fontName "Monospace"
12853 autoSizePolicy "node_width"
12854 anchor "t"
12855 borderDistance 0.0
12856 ]
12857 LabelGraphics
12858 [
12859 text "
12860 "
12861 fontSize 14
12862 fontName "Consolas"
12863 alignment "left"
12864 anchor "tl"
12865 borderDistance 6
12866 ]
12867 ]
12868
12869 node
12870 [
12871 id 13
12872 graphics
12873 [
12874 w 85.80000000000001
12875 h 26
12876 type "rectangle"
12877 fill "#FFFFFF"
12878 fill2 "#FFFFFF"
12879 outline "#000000"
12880 ]
12881 LabelGraphics
12882 [
12883 text "New Reals"
12884 outline "#000000"
12885 fill "#FFFFFF"
12886 fontSize 16
12887 fontName "Monospace"
12888 autoSizePolicy "node_width"
12889 anchor "t"
12890 borderDistance 0.0
12891 ]
12892 LabelGraphics
12893 [
12894 text "
12895 "
12896 fontSize 14
12897 fontName "Consolas"
12898 alignment "left"
12899 anchor "tl"
12900 borderDistance 6
12901 ]
12902 ]
12903
12904 node
12905 [
12906 id 14
12907 graphics
12908 [
12909 w 103.4
12910 h 26
12911 type "rectangle"
12912 fill "#FFFFFF"
12913 fill2 "#FFFFFF"
12914 outline "#000000"
12915 ]
12916 LabelGraphics
12917 [
12918 text "New Strings"
12919 outline "#000000"
12920 fill "#FFFFFF"
12921 fontSize 16
12922 fontName "Monospace"
12923 autoSizePolicy "node_width"
12924 anchor "t"
12925 borderDistance 0.0
12926 ]
12927 LabelGraphics
12928 [
12929 text "
12930 "
12931 fontSize 14
12932 fontName "Consolas"
12933 alignment "left"
12934 anchor "tl"
12935 borderDistance 6
12936 ]
12937 ]
12938
12939 node
12940 [
12941 id 15
12942 graphics
12943 [
12944 w 103.4
12945 h 26
12946 type "rectangle"
12947 fill "#FFFFFF"
12948 fill2 "#FFFFFF"
12949 outline "#000000"
12950 ]
12951 LabelGraphics
12952 [
12953 text "New Objects"
12954 outline "#000000"
12955 fill "#FFFFFF"
12956 fontSize 16
12957 fontName "Monospace"
12958 autoSizePolicy "node_width"
12959 anchor "t"
12960 borderDistance 0.0
12961 ]
12962 LabelGraphics
12963 [
12964 text "
12965 "
12966 fontSize 14
12967 fontName "Consolas"
12968 alignment "left"
12969 anchor "tl"
12970 borderDistance 6
12971 ]
12972 ]
12973 edge
12974 [
12975 source 7
12976 target 9
12977 graphics
12978 [
12979 fill "#000000"
12980 targetArrow "standard"
12981 ]
12982 LabelGraphics
12983 [
12984 text "incomingTransitions reference Vertex"
12985 fontSize 14
12986 fontName "Consolas"
12987 configuration "AutoFlippingLabel"
12988 model "six_pos"
12989 position "thead"
12990 ]
12991 ]
12992 edge
12993 [
12994 source 5
12995 target 9
12996 graphics
12997 [
12998 fill "#000000"
12999 width 3
13000 targetArrow "standard"
13001 ]
13002 LabelGraphics
13003 [
13004 text "outgoingTransitions reference Vertex"
13005 fontSize 14
13006 fontName "Consolas"
13007 configuration "AutoFlippingLabel"
13008 model "six_pos"
13009 position "thead"
13010 ]
13011 ]
13012 edge
13013 [
13014 source 3
13015 target 4
13016 graphics
13017 [
13018 fill "#000000"
13019 width 3
13020 targetArrow "standard"
13021 ]
13022 LabelGraphics
13023 [
13024 text "vertices reference Region"
13025 fontSize 14
13026 fontName "Consolas"
13027 configuration "AutoFlippingLabel"
13028 model "six_pos"
13029 position "thead"
13030 ]
13031 ]
13032 edge
13033 [
13034 source 3
13035 target 5
13036 graphics
13037 [
13038 fill "#000000"
13039 width 3
13040 targetArrow "standard"
13041 ]
13042 LabelGraphics
13043 [
13044 text "vertices reference Region"
13045 fontSize 14
13046 fontName "Consolas"
13047 configuration "AutoFlippingLabel"
13048 model "six_pos"
13049 position "thead"
13050 ]
13051 ]
13052 edge
13053 [
13054 source 3
13055 target 6
13056 graphics
13057 [
13058 fill "#000000"
13059 width 3
13060 targetArrow "standard"
13061 ]
13062 LabelGraphics
13063 [
13064 text "vertices reference Region"
13065 fontSize 14
13066 fontName "Consolas"
13067 configuration "AutoFlippingLabel"
13068 model "six_pos"
13069 position "thead"
13070 ]
13071 ]
13072 edge
13073 [
13074 source 3
13075 target 7
13076 graphics
13077 [
13078 fill "#000000"
13079 width 3
13080 targetArrow "standard"
13081 ]
13082 LabelGraphics
13083 [
13084 text "vertices reference Region"
13085 fontSize 14
13086 fontName "Consolas"
13087 configuration "AutoFlippingLabel"
13088 model "six_pos"
13089 position "thead"
13090 ]
13091 ]
13092 edge
13093 [
13094 source 3
13095 target 8
13096 graphics
13097 [
13098 fill "#000000"
13099 width 3
13100 targetArrow "standard"
13101 ]
13102 LabelGraphics
13103 [
13104 text "vertices reference Region"
13105 fontSize 14
13106 fontName "Consolas"
13107 configuration "AutoFlippingLabel"
13108 model "six_pos"
13109 position "thead"
13110 ]
13111 ]
13112 edge
13113 [
13114 source 3
13115 target 10
13116 graphics
13117 [
13118 fill "#000000"
13119 width 3
13120 targetArrow "standard"
13121 ]
13122 LabelGraphics
13123 [
13124 text "vertices reference Region"
13125 fontSize 14
13126 fontName "Consolas"
13127 configuration "AutoFlippingLabel"
13128 model "six_pos"
13129 position "thead"
13130 ]
13131 ]
13132 edge
13133 [
13134 source 3
13135 target 11
13136 graphics
13137 [
13138 fill "#000000"
13139 width 3
13140 targetArrow "standard"
13141 ]
13142 LabelGraphics
13143 [
13144 text "vertices reference Region"
13145 fontSize 14
13146 fontName "Consolas"
13147 configuration "AutoFlippingLabel"
13148 model "six_pos"
13149 position "thead"
13150 ]
13151 ]
13152 edge
13153 [
13154 source 9
13155 target 7
13156 graphics
13157 [
13158 fill "#000000"
13159 targetArrow "standard"
13160 ]
13161 LabelGraphics
13162 [
13163 text "target reference Transition"
13164 fontSize 14
13165 fontName "Consolas"
13166 configuration "AutoFlippingLabel"
13167 model "six_pos"
13168 position "thead"
13169 ]
13170 ]
13171 edge
13172 [
13173 source 9
13174 target 5
13175 graphics
13176 [
13177 fill "#000000"
13178 targetArrow "standard"
13179 ]
13180 LabelGraphics
13181 [
13182 text "source reference Transition"
13183 fontSize 14
13184 fontName "Consolas"
13185 configuration "AutoFlippingLabel"
13186 model "six_pos"
13187 position "thead"
13188 ]
13189 ]
13190 edge
13191 [
13192 source 0
13193 target 3
13194 graphics
13195 [
13196 fill "#000000"
13197 width 3
13198 targetArrow "standard"
13199 ]
13200 LabelGraphics
13201 [
13202 text "regions reference CompositeElement"
13203 fontSize 14
13204 fontName "Consolas"
13205 configuration "AutoFlippingLabel"
13206 model "six_pos"
13207 position "thead"
13208 ]
13209 ]
13210]
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/models/2.png b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/models/2.png
index 08502c12..548f8dae 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/models/2.png
+++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/models/2.png
Binary files differ
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/models/2.xmi b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/models/2.xmi
index f61f6ffb..0d85e1cd 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/models/2.xmi
+++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/models/2.xmi
@@ -1,15 +1,14 @@
1<?xml version="1.0" encoding="ASCII"?> 1<?xml version="1.0" encoding="ASCII"?>
2<yakindu:Statechart xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:yakindu="YakinduMetamodel"> 2<yakindu:Statechart xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:yakindu="YakinduMetamodel">
3 <regions> 3 <regions>
4 <vertices xsi:type="yakindu:Exit"/> 4 <vertices xsi:type="yakindu:FinalState"/>
5 <vertices xsi:type="yakindu:State" incomingTransitions="//@regions.0/@vertices.4/@outgoingTransitions.0"/> 5 <vertices xsi:type="yakindu:State"/>
6 <vertices xsi:type="yakindu:State"/>
7 <vertices xsi:type="yakindu:FinalState"/>
8 <vertices xsi:type="yakindu:State"/>
6 <vertices xsi:type="yakindu:Entry"> 9 <vertices xsi:type="yakindu:Entry">
7 <outgoingTransitions target="//@regions.0/@vertices.4"/> 10 <outgoingTransitions target="//@regions.0/@vertices.6"/>
8 </vertices> 11 </vertices>
9 <vertices xsi:type="yakindu:Exit"/> 12 <vertices xsi:type="yakindu:FinalState" incomingTransitions="//@regions.0/@vertices.5/@outgoingTransitions.0"/>
10 <vertices xsi:type="yakindu:State" incomingTransitions="//@regions.0/@vertices.2/@outgoingTransitions.0">
11 <outgoingTransitions target="//@regions.0/@vertices.1"/>
12 </vertices>
13 <vertices xsi:type="yakindu:FinalState"/>
14 </regions> 13 </regions>
15</yakindu:Statechart> 14</yakindu:Statechart>
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/statistics.csv b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/statistics.csv
index 9e25c13a..290c841e 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/statistics.csv
+++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/statistics.csv
@@ -16,3 +16,5 @@ Task;Run;Result;Domain to logic transformation time;Logic to solver transformati
161;1;ModelResultImpl;42;3179;15266;13359431300;12045;12060;12077;12082;12107;9023;25;176;0;9 161;1;ModelResultImpl;42;3179;15266;13359431300;12045;12060;12077;12082;12107;9023;25;176;0;9
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 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;646;4720;6290;14663107900;900;1000;1126;1525;1621;1177;235;34;0;17 181;1;ModelResultImpl;646;4720;6290;14663107900;900;1000;1126;1525;1621;1177;235;34;0;17
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;564;4692;4940;13642804600;616;832;966;1014;1191;829;198;27;0;17