|
@@ -0,0 +1,52 @@
|
|
|
+include "primitives.alh"
|
|
|
+include "modelling.alh"
|
|
|
+include "object_operations.alh"
|
|
|
+
|
|
|
+A B {
|
|
|
+ Composite schedule {
|
|
|
+ {Contains} Failure failure {}
|
|
|
+ {Contains} Success success {}
|
|
|
+ {Contains} Query match {
|
|
|
+ LHS {
|
|
|
+ Pre_Query/State {
|
|
|
+ label = "0"
|
|
|
+ }
|
|
|
+ Pre_ReachabilityGraph/State {
|
|
|
+ label = "1"
|
|
|
+ }
|
|
|
+ }
|
|
|
+ NAC {
|
|
|
+ Pre_Query/State pre_0 {
|
|
|
+ label = "0"
|
|
|
+ }
|
|
|
+ Pre_ReachabilityGraph/State pre_1 {
|
|
|
+ label = "1"
|
|
|
+ }
|
|
|
+ Pre_Query/Place pre_2 {
|
|
|
+ label = "2"
|
|
|
+ }
|
|
|
+ Pre_ReachabilityGraph/Place pre_3 {
|
|
|
+ label = "3"
|
|
|
+ }
|
|
|
+ Pre_Query/Contains (pre_0, pre_2) {
|
|
|
+ label = "4"
|
|
|
+ }
|
|
|
+ Pre_Reachability/Contains (pre_1, pre_3) {
|
|
|
+ label = "5"
|
|
|
+ }
|
|
|
+
|
|
|
+ constraint = $
|
|
|
+ Boolean function constraint(host_model : Element, mapping : Element):
|
|
|
+ Boolean names_match
|
|
|
+ Boolean tokens_mismatch
|
|
|
+ names_match = value_eq(read_attribute(host_model, mapping["2"], "name"), read_attribute(host_model, mapping["3"], "name"))
|
|
|
+ tokens_mismatch = value_neq(read_attribute(host_model, mapping["2"], "tokens"), read_attribute(host_model, mapping["3"], "tokens"))
|
|
|
+ return bool_and(names_match, tokens_mismatch)!
|
|
|
+ $
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ Initial (schedule, match) {}
|
|
|
+ OnSuccess (match, success) {}
|
|
|
+ OnFailure (match, failure) {}
|
|
|
+}
|