diff options
author | ArenBabikian <aren.babikian@mail.mcgill.ca> | 2019-02-17 20:15:58 -0500 |
---|---|---|
committer | ArenBabikian <aren.babikian@mail.mcgill.ca> | 2020-06-07 19:18:55 -0400 |
commit | d1c0835522772372fba70948eedf5d5c03f2d6b8 (patch) | |
tree | 0b927a5fb382eef1ee63fb8713c8b48e6afe9239 /Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/debug | |
parent | Commit before merge (diff) | |
download | VIATRA-Generator-d1c0835522772372fba70948eedf5d5c03f2d6b8.tar.gz VIATRA-Generator-d1c0835522772372fba70948eedf5d5c03f2d6b8.tar.zst VIATRA-Generator-d1c0835522772372fba70948eedf5d5c03f2d6b8.zip |
complete vsconfig files #19
Diffstat (limited to 'Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/debug')
2 files changed, 2926 insertions, 1 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 | } |
26326 | import epackage "http://www.bme.hu/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage" | ||
26327 | import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem" | ||
26328 | import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/language" | ||
26329 | |||
26330 | ////////// | ||
26331 | // 0. Util | ||
26332 | ////////// | ||
26333 | private pattern interpretation(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
26334 | PartialInterpretation.problem(interpretation,problem); | ||
26335 | } | ||
26336 | |||
26337 | ///////////////////////// | ||
26338 | // 0.1 Existence | ||
26339 | ///////////////////////// | ||
26340 | private 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 | |||
26348 | private 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 | |||
26356 | private 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 | //////////////////////// | ||
26368 | pattern 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 | //////////////////////// | ||
26377 | private 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 | |||
26384 | private 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 | |||
26394 | private 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 | */ | ||
26412 | private pattern mustInstanceOfPseudostate_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
26413 | Type.name(type,"Pseudostate class"); | ||
26414 | find directInstanceOf(problem,interpretation,element,type); | ||
26415 | } | ||
26416 | private 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 | */ | ||
26428 | private 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 | */ | ||
26460 | private pattern mustInstanceOfVertex_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
26461 | Type.name(type,"Vertex class"); | ||
26462 | find directInstanceOf(problem,interpretation,element,type); | ||
26463 | } | ||
26464 | private 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 | */ | ||
26476 | private 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 | */ | ||
26502 | private pattern mustInstanceOfRegion_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
26503 | Type.name(type,"Region class"); | ||
26504 | find directInstanceOf(problem,interpretation,element,type); | ||
26505 | } | ||
26506 | private 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 | */ | ||
26518 | private 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 | */ | ||
26540 | private pattern mustInstanceOfTransition_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
26541 | Type.name(type,"Transition class"); | ||
26542 | find directInstanceOf(problem,interpretation,element,type); | ||
26543 | } | ||
26544 | private 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 | */ | ||
26556 | private 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 | */ | ||
26578 | private pattern mustInstanceOfStatechart_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
26579 | Type.name(type,"Statechart class"); | ||
26580 | find directInstanceOf(problem,interpretation,element,type); | ||
26581 | } | ||
26582 | private 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 | */ | ||
26594 | private 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 | */ | ||
26618 | private pattern mustInstanceOfEntry_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
26619 | Type.name(type,"Entry class"); | ||
26620 | find directInstanceOf(problem,interpretation,element,type); | ||
26621 | } | ||
26622 | private 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 | */ | ||
26634 | private 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 | */ | ||
26664 | private pattern mustInstanceOfSynchronization_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
26665 | Type.name(type,"Synchronization class"); | ||
26666 | find directInstanceOf(problem,interpretation,element,type); | ||
26667 | } | ||
26668 | private 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 | */ | ||
26680 | private 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 | */ | ||
26710 | private pattern mustInstanceOfState_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
26711 | Type.name(type,"State class"); | ||
26712 | find directInstanceOf(problem,interpretation,element,type); | ||
26713 | } | ||
26714 | private 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 | */ | ||
26726 | private 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 | */ | ||
26752 | private pattern mustInstanceOfRegularState_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
26753 | Type.name(type,"RegularState class"); | ||
26754 | find directInstanceOf(problem,interpretation,element,type); | ||
26755 | } | ||
26756 | private 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 | */ | ||
26768 | private 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 | */ | ||
26794 | private pattern mustInstanceOfCompositeElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
26795 | Type.name(type,"CompositeElement class"); | ||
26796 | find directInstanceOf(problem,interpretation,element,type); | ||
26797 | } | ||
26798 | private 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 | */ | ||
26810 | private 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 | */ | ||
26836 | private pattern mustInstanceOfChoice_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
26837 | Type.name(type,"Choice class"); | ||
26838 | find directInstanceOf(problem,interpretation,element,type); | ||
26839 | } | ||
26840 | private 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 | */ | ||
26852 | private 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 | */ | ||
26882 | private pattern mustInstanceOfExit_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
26883 | Type.name(type,"Exit class"); | ||
26884 | find directInstanceOf(problem,interpretation,element,type); | ||
26885 | } | ||
26886 | private 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 | */ | ||
26898 | private 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 | */ | ||
26928 | private pattern mustInstanceOfFinalState_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
26929 | Type.name(type,"FinalState class"); | ||
26930 | find directInstanceOf(problem,interpretation,element,type); | ||
26931 | } | ||
26932 | private 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 | */ | ||
26944 | private 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 | */ | ||
26968 | private 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 | } | ||
26972 | private 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 | */ | ||
26984 | private 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 | */ | ||
26989 | private 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 | } | ||
26993 | private 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 | */ | ||
27005 | private 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 | */ | ||
27027 | private 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 | } | ||
27031 | private 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 | */ | ||
27043 | private 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 | */ | ||
27048 | private 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 | } | ||
27052 | private 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 | */ | ||
27064 | private 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 | */ | ||
27092 | private 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 | */ | ||
27106 | private 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 | */ | ||
27127 | private 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 | */ | ||
27141 | private 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 | */ | ||
27167 | private 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 | */ | ||
27181 | private 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 | */ | ||
27203 | private 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 | */ | ||
27217 | private 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 | */ | ||
27238 | private 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 | */ | ||
27252 | private 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 | */ | ||
27278 | private 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 | */ | ||
27292 | private 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 | ||
27316 | private 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 | } | ||
27330 | private 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 | } | ||
27344 | private 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 | ||
27359 | private 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 | } | ||
27368 | private 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 | } | ||
27377 | private 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 | ||
27387 | private 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 | } | ||
27398 | private 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 | } | ||
27409 | private 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 | ||
27421 | private 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 | } | ||
27441 | private 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 | } | ||
27461 | private 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 | ||
27482 | private 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 | } | ||
27493 | private 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 | } | ||
27504 | private 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 | ||
27516 | private 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 | } | ||
27525 | private 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 | } | ||
27534 | private 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 | ||
27544 | private 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 | } | ||
27565 | private 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 | } | ||
27586 | private 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 | ||
27608 | private 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 | } | ||
27622 | private 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 | } | ||
27636 | private 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 | ||
27651 | private 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 | } | ||
27665 | private 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 | } | ||
27679 | private 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 | ||
27694 | private 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 | } | ||
27703 | private 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 | } | ||
27712 | private 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 | ||
27722 | private 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 | } | ||
27736 | private 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 | } | ||
27750 | private 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 | ||
27765 | private 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 | } | ||
27774 | private 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 | } | ||
27783 | private 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 | ||
27793 | private 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 | } | ||
27802 | private 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 | } | ||
27811 | private 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 | ||
27821 | private 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 | } | ||
27830 | private 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 | } | ||
27839 | private 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 | ||
27849 | private 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 | } | ||
27858 | private 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 | } | ||
27867 | private 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 | ||
27877 | private 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 | } | ||
27919 | private 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 | } | ||
27961 | private 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 | ||
28004 | private 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 | } | ||
28014 | private 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 | } | ||
28024 | private 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 | ||
28035 | private 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 | } | ||
28046 | private 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 | } | ||
28057 | private 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 | ||
28069 | private 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 | } | ||
28080 | private 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 | } | ||
28091 | private 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 | ||
28103 | private 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 | } | ||
28153 | private 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 | } | ||
28203 | private 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 | ||
28254 | private 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 | } | ||
28270 | private 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 | } | ||
28286 | private 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 | ||
28303 | private 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 | } | ||
28325 | private 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 | } | ||
28347 | private 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 | ||
28370 | private 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 | } | ||
28387 | private 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 | } | ||
28404 | private 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 | ||
28422 | private 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 | } | ||
28464 | private 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 | } | ||
28506 | private 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 | ||
28549 | private 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 | } | ||
28562 | private 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 | } | ||
28575 | private 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 | ////////// | ||
28592 | private pattern mustContains2(source: DefinedElement, target: DefinedElement) { | ||
28593 | find mustContains4(_,_,source,target); | ||
28594 | } | ||
28595 | |||
28596 | private 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 | |||
28604 | private 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 | ////////// | ||
28613 | pattern 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 | } | ||
28618 | pattern 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 | } | ||
28623 | pattern 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 | } | ||
28628 | pattern 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 | } | ||
28633 | pattern 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 | } | ||
28638 | pattern 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 | } | ||
28643 | pattern 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 | } | ||
28648 | pattern 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 | } | ||
28653 | pattern 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 | } | ||
28658 | pattern 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 | } | ||
28663 | pattern 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 | } | ||
28668 | pattern 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 | } | ||
28673 | pattern 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 | } | ||
28678 | pattern 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 | } | ||
28683 | pattern 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 | } | ||
28688 | pattern 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 | } | ||
28693 | pattern 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 | } | ||
28698 | pattern 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 | ////////// | ||
28709 | pattern 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 | ////////// | ||
28722 | pattern 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 | } | ||
28727 | pattern 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 | } | ||
28732 | pattern 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 | } | ||
28737 | pattern 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 | } | ||
28742 | pattern 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 | } | ||
28747 | pattern 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 | } | ||
28752 | pattern 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 | } | ||
28757 | pattern 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 | } | ||
28762 | pattern 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 | } | ||
28767 | pattern 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 | } | ||
28772 | pattern 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 | } | ||
28777 | pattern 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 | } | ||
28782 | pattern 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 | } | ||
28787 | pattern 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 | } | ||
28792 | pattern 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 | } | ||
28797 | pattern 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 | } | ||
28802 | pattern 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 | } | ||
28807 | pattern 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 | ////////// | ||
28818 | private 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 | } | ||
28888 | pattern 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 | } | ||
28906 | pattern 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 | } | ||
28918 | pattern 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 | } | ||
28934 | pattern 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 | } | ||
28946 | pattern 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 | } | ||
28962 | pattern 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 | } | ||
28974 | pattern 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 | } | ||
28990 | pattern 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 | } | ||
29002 | pattern 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 | } | ||
29018 | pattern 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 | } | ||
29030 | pattern 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 | } | ||
29042 | pattern 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 | } | ||
29058 | pattern 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 | } | ||
29070 | pattern 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 | } | ||
29086 | pattern 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 | } | ||
29098 | pattern 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 | } | ||
29114 | pattern 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 | ////////// | ||
29130 | pattern 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 | } | ||
29139 | pattern 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 | } | ||
29152 | pattern 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 | } | ||
29161 | pattern 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 | } | ||
29174 | pattern 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 | } | ||
29187 | pattern 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 | } | ||
29196 | pattern 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 | } | ||
29207 | pattern 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 | } | ||
29220 | pattern 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 | ////////// | ||
29234 | pattern 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"/> |