123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266 |
- include "primitives.alh"
- include "modelling.alh"
- include "object_operations.alh"
- A B {
- Composite schedule {
- {Contains} Success success {}
- {Contains} Failure failure {}
- {Contains} Atomic unselect_all {
- LHS {
- Pre_Encapsulated_PetriNet/Port pre_ua_1 {
- label = "1"
- }
- }
- RHS {
- Post_Encapsulated_PetriNet/Port post_ua_1 {
- label = "1"
- value_selected = $
- Boolean function value(model : Element, name : String, mapping : Element):
- return False!
- $
- }
- }
- }
- {Contains} Atomic select {
- LHS {
- Pre_Encapsulated_PetriNet/Place pre_s_1 {
- label = "1"
- }
- Pre_Encapsulated_PetriNet/Port pre_s_2 {
- label = "2"
- }
- Pre_Encapsulated_PetriNet/PortPlace (pre_s_2, pre_s_1){
- label = "3"
- }
- }
- RHS {
- Post_Encapsulated_PetriNet/Place post_s_1 {
- label = "1"
- }
- Post_Encapsulated_PetriNet/Port post_s_2 {
- label = "2"
- value_selected = $
- Boolean function value(model : Element, name : String, mapping : Element):
- return True!
- $
- }
- Post_Encapsulated_PetriNet/PortPlace (post_s_2, post_s_1){
- label = "3"
- }
- }
- }
- {Contains} ForAll merge_P2T {
- LHS {
- Pre_Encapsulated_PetriNet/Place pre_p2t_1 {
- label = "1"
- }
- Pre_Encapsulated_PetriNet/Port pre_p2t_2 {
- label = "2"
- }
- Pre_Encapsulated_PetriNet/PortPlace (pre_p2t_2, pre_p2t_1){
- label = "3"
- constraint_selected = $
- Boolean function constraint(value : Boolean):
- return value!
- $
- }
- Pre_Encapsulated_PetriNet/Place pre_p2t_4 {
- label = "4"
- }
- Pre_Encapsulated_PetriNet/Port pre_p2t_5 {
- label = "5"
- }
- Pre_Encapsulated_PetriNet/PortPlace (pre_p2t_5, pre_p2t_4){
- label = "6"
- }
- Pre_Encapsulated_PetriNet/Transition pre_p2t_7 {
- label = "7"
- }
- Pre_Encapsulated_PetriNet/P2T (pre_p2t_4, pre_p2t_7) {
- label = "8"
- }
- constraint = $
- Boolean function constraint(model : Element, mapping : Element):
- return value_eq(read_attribute(model, mapping["2"], "name"), read_attribute(model, mapping["5"], "name"))!
- $
- }
- RHS {
- Post_Encapsulated_PetriNet/Place post_p2t_1 {
- label = "1"
- }
- Post_Encapsulated_PetriNet/Port post_p2t_2 {
- label = "2"
- }
- Post_Encapsulated_PetriNet/PortPlace (post_p2t_2, post_p2t_1){
- label = "3"
- }
- Post_Encapsulated_PetriNet/Place post_p2t_4 {
- label = "4"
- }
- Post_Encapsulated_PetriNet/Port post_p2t_5 {
- label = "5"
- }
- Post_Encapsulated_PetriNet/PortPlace (post_p2t_5, post_p2t_4){
- label = "6"
- }
- Post_Encapsulated_PetriNet/Transition post_p2t_7 {
- label = "7"
- }
- Post_Encapsulated_PetriNet/P2T (post_p2t_4, post_p2t_7) {
- label = "8"
- }
- Post_Encapsulated_PetriNet/P2T (post_p2t_1, post_p2t_7) {
- label = "9"
- }
- }
- }
- {Contains} ForAll merge_T2P {
- LHS {
- Pre_Encapsulated_PetriNet/Place pre_p2t_1 {
- label = "1"
- }
- Pre_Encapsulated_PetriNet/Port pre_p2t_2 {
- label = "2"
- }
- Pre_Encapsulated_PetriNet/PortPlace (pre_p2t_2, pre_p2t_1){
- label = "3"
- constraint_selected = $
- Boolean function constraint(value : Boolean):
- return value!
- $
- }
- Pre_Encapsulated_PetriNet/Place pre_p2t_4 {
- label = "4"
- }
- Pre_Encapsulated_PetriNet/Port pre_p2t_5 {
- label = "5"
- }
- Pre_Encapsulated_PetriNet/PortPlace (pre_p2t_5, pre_p2t_4){
- label = "6"
- }
- Pre_Encapsulated_PetriNet/Transition pre_p2t_7 {
- label = "7"
- }
- Pre_Encapsulated_PetriNet/T2P (pre_p2t_7, pre_p2t_4) {
- label = "8"
- }
- constraint = $
- Boolean function constraint(model : Element, mapping : Element):
- return value_eq(read_attribute(model, mapping["2"], "name"), read_attribute(model, mapping["5"], "name"))!
- $
- }
- RHS {
- Post_Encapsulated_PetriNet/Place post_p2t_1 {
- label = "1"
- }
- Post_Encapsulated_PetriNet/Port post_p2t_2 {
- label = "2"
- }
- Post_Encapsulated_PetriNet/PortPlace (post_p2t_2, post_p2t_1){
- label = "3"
- }
- Post_Encapsulated_PetriNet/Place post_p2t_4 {
- label = "4"
- }
- Post_Encapsulated_PetriNet/Port post_p2t_5 {
- label = "5"
- }
- Post_Encapsulated_PetriNet/PortPlace (post_p2t_5, post_p2t_4){
- label = "6"
- }
- Post_Encapsulated_PetriNet/Transition post_p2t_7 {
- label = "7"
- }
- Post_Encapsulated_PetriNet/T2P (post_p2t_7, post_p2t_4) {
- label = "8"
- }
- Post_Encapsulated_PetriNet/T2P (post_p2t_7, post_p2t_1) {
- label = "9"
- }
- }
- }
- {Contains} ForAll remove_old {
- LHS {
- Pre_Encapsulated_PetriNet/Place pre_rem_1 {
- label = "1"
- }
- Pre_Encapsulated_PetriNet/Port pre_rem_2 {
- label = "2"
- }
- Pre_Encapsulated_PetriNet/PortPlace (pre_rem_2, pre_rem_1){
- label = "3"
- constraint_selected = $
- Boolean function constraint(value : Boolean):
- return value!
- $
- }
- Pre_Encapsulated_PetriNet/Place pre_rem_4 {
- label = "4"
- }
- Pre_Encapsulated_PetriNet/Port pre_rem_5 {
- label = "5"
- }
- Pre_Encapsulated_PetriNet/PortPlace (pre_rem_5, pre_rem_4){
- label = "6"
- }
- }
- RHS {
- Post_Encapsulated_PetriNet/Place post_rem_1 {
- label = "1"
- }
- Post_Encapsulated_PetriNet/Port post_rem_2 {
- label = "2"
- }
- Post_Encapsulated_PetriNet/PortPlace (post_rem_2, post_rem_1){
- label = "3"
- }
- }
- }
- {Contains} Atomic unselect {
- LHS {
- Pre_Encapsulated_PetriNet/Place pre_uns_1 {
- label = "1"
- }
- Pre_Encapsulated_PetriNet/Port pre_uns_2 {
- label = "2"
- }
- Pre_Encapsulated_PetriNet/PortPlace (pre_uns_2, pre_uns_1){
- label = "3"
- constraint_selected = $
- Boolean function constraint(value : Boolean):
- return value!
- $
- }
- }
- RHS {
- Post_Encapsulated_PetriNet/Place post_uns_1 {
- label = "1"
- }
- }
- }
- }
- Initial (schedule, unselect_all) {}
- OnSuccess (unselect_all, select) {}
- OnSuccess (select, merge_P2T) {}
- OnSuccess (merge_P2T, merge_T2P) {}
- OnSuccess (merge_T2P, remove_old) {}
- OnSuccess (remove_old, unselect) {}
- OnSuccess (unselect, select) {}
- OnFailure (select, finish) {}
- OnFailure (unselect_all, select) {}
- OnFailure (merge_P2T, merge_T2P) {}
- OnFailure (merge_T2P, remove_old) {}
- OnFailure (remove_old, unselect) {}
- OnFailure (unselect, failure) {}
- }
|