import models/RAM_PetriNets_Design_Runtime as RAM_PN_DR RAM_PN_DR annotate { Composite schedule { {Contains} Failure failure {} {Contains} Success success {} {Contains} ForAll copy_transitions { LHS { Pre_PetriNets_Transition { label = "0" } } RHS { Post_PetriNets_Transition ct1 { label = "0" } Post_PetriNets_Runtime_Transition ct2 { label = "1" action = $ include "primitives.alh" include "modelling.alh" Void function action(host_model : Element, name : String, mapping : Element): instantiate_attribute(host_model, name, "executing", False) return! $ } Post_D2R_TransitionLink (ct1, ct2){ label = "2" } } } {Contains} ForAll copy_places { LHS { Pre_PetriNets_Place { label = "0" } } RHS { Post_PetriNets_Place cp1 { label = "0" } Post_PetriNets_Runtime_Place cp2 { label = "1" action = $ include "primitives.alh" include "modelling.alh" Void function action(host_model : Element, name : String, mapping : Element): instantiate_attribute(host_model, name, "tokens", read_attribute(host_model, mapping["0"], "tokens")) instantiate_attribute(host_model, name, "name", read_attribute(host_model, mapping["0"], "name")) return! $ } Post_D2R_PlaceLink (cp1, cp2){ label = "2" } } } {Contains} ForAll copy_P2T { LHS { Pre_PetriNets_Place cp2t_p{ label = "0" } Pre_PetriNets_Transition cp2t_t{ label = "1" } Pre_PetriNets_P2T (cp2t_p, cp2t_t){ label = "2" } Pre_PetriNets_Runtime_Place cp2t_p2{ label = "3" } Pre_PetriNets_Runtime_Transition cp2t_t2{ label = "4" } Pre_D2R_PlaceLink (cp2t_p, cp2t_p2){ label = "5" } Pre_D2R_TransitionLink (cp2t_t, cp2t_t2){ label = "6" } } RHS { Post_PetriNets_Place rhs_cp2t_p{ label = "0" } Post_PetriNets_Transition rhs_cp2t_t{ label = "1" } Post_PetriNets_P2T rhs_cp2t_p2t (rhs_cp2t_p, rhs_cp2t_t){ label = "2" } Post_PetriNets_Runtime_Place rhs_cp2t_p2 { label = "3" } Post_PetriNets_Runtime_Transition rhs_cp2t_t2 { label = "4" } Post_D2R_PlaceLink (rhs_cp2t_p, rhs_cp2t_p2){ label = "5" } Post_D2R_TransitionLink (rhs_cp2t_t, rhs_cp2t_t2){ label = "6" } Post_PetriNets_Runtime_P2T rhs_cp2t_p2t2(rhs_cp2t_p2, rhs_cp2t_t2) { label = "7" action = $ include "primitives.alh" include "modelling.alh" Void function action(host_model : Element, name : String, mapping : Element): instantiate_attribute(host_model, name, "weight", read_attribute(host_model, mapping["2"], "weight")) return! $ } } } {Contains} ForAll copy_T2P { LHS { Pre_PetriNets_Place ct2p_p{ label = "0" } Pre_PetriNets_Transition ct2p_t{ label = "1" } Pre_PetriNets_T2P (ct2p_t, ct2p_p){ label = "2" } Pre_PetriNets_Runtime_Place ct2p_p2{ label = "3" } Pre_PetriNets_Runtime_Transition ct2p_t2{ label = "4" } Pre_D2R_PlaceLink (ct2p_p, ct2p_p2){ label = "5" } Pre_D2R_TransitionLink (ct2p_t, ct2p_t2){ label = "6" } } RHS { Post_PetriNets_Place rhs_ct2p_p{ label = "0" } Post_PetriNets_Transition rhs_ct2p_t{ label = "1" } Post_PetriNets_T2P (rhs_ct2p_t, rhs_ct2p_p){ label = "2" } Post_PetriNets_Runtime_Place rhs_ct2p_p2 { label = "3" } Post_PetriNets_Runtime_Transition rhs_ct2p_t2 { label = "4" } Post_D2R_PlaceLink (rhs_ct2p_p, rhs_ct2p_p2){ label = "5" } Post_D2R_TransitionLink (rhs_ct2p_t, rhs_ct2p_t2){ label = "6" } Post_PetriNets_Runtime_T2P (rhs_ct2p_t2, rhs_ct2p_p2) { label = "7" action = $ include "primitives.alh" include "modelling.alh" Void function action(host_model : Element, name : String, mapping : Element): instantiate_attribute(host_model, name, "weight", read_attribute(host_model, mapping["2"], "weight")) return! $ } } } } OnSuccess (copy_places, copy_transitions) {} OnSuccess (copy_transitions, copy_P2T) {} OnSuccess (copy_P2T, copy_T2P) {} OnSuccess (copy_T2P, success) {} OnFailure (copy_places, copy_transitions) {} OnFailure (copy_transitions, copy_P2T) {} OnFailure (copy_P2T, copy_T2P) {} OnFailure (copy_T2P, success) {} Initial (schedule, copy_places) {} } export annotate to models/pn_annotate