fun gseqp :: "('s, 'm, 'p, 'l) seqp_env ==> ('s, 'm, 'p, 'l) seqp ==> ('p, 'l) node list * ('p, 'l) node list * ('p, 'l) link list" where "gseqp Γ ({l}⟨_⟩ p) = (let me = InternalNode l in let (next, acc, links) = gseqp Γ p in ([me], me # acc, map (ILink me) next @ links))"
| "gseqp Γ ({l}[_] p) = (let me = InternalNode l in let (next, acc, links) = gseqp Γ p in ([me], me # acc, map (ILink me) next @ links))"
| "gseqp Γ (p1 ⊕ p2) = (let (next1, acc1, links1) = gseqp Γ p1 in let (next2, acc2, links2) = gseqp Γ p2 in (next1 @ next2, acc1 @ acc2, links1 @ links2))"
| "gseqp Γ ({l}unicast(_, _).p ▹ q) = (let me = InternalNode l in let (next1, acc1, links1) = gseqp Γ p in let (next2, acc2, links2) = gseqp Γ q in ([me], me # acc1 @ acc2, map (ELink me) (next1 @ next2) @ links1 @ links2))"
| "gseqp Γ ({l}broadcast(_). p) = (let me = InternalNode l in let (next, acc, links) = gseqp Γ p in ([me], me # acc, map (ELink me) next @ links))"
| "gseqp Γ ({l}groupcast(_, _). p) = (let me = InternalNode l in let (next, acc, links) = gseqp Γ p in ([me], me # acc, map (ELink me) next @ links))"
| "gseqp Γ ({l}send(_).p) = (let me = InternalNode l in let (next, acc, links) = gseqp Γ p in ([me], me # acc, map (ELink me) next @ links))"
| "gseqp Γ ({l}deliver(_).p) = (let me = InternalNode l in let (next, acc, links) = gseqp Γ p in ([me], me # acc, map (ELink me) next @ links))"
| "gseqp Γ ({l}receive(_).p) = (let me = InternalNode l in let (next, acc, links) = gseqp Γ p in ([me], me # acc, map (ELink me) next @ links))"
| "gseqp Γ (call(pn)) = (gseqp' Γ (Γ pn), [], [])"
definition graph_of_other :: "('s, 'm, 'p, 'l) seqp_env ==> (('p, 'l) node list * ('p, 'l) link list) ==> 'p ==> ('p, 'l) node list * ('p, 'l) link list" where "graph_of_other Γ r pn = (let (next, acc, links) = gseqp Γ (Γ pn) in (acc @ fst r, links @ snd r))"
definition graph_of_root :: "('s, 'm, 'p, 'l) seqp_env ==> (('p, 'l) node list * ('p, 'l) link list) ==> 'p ==> ('p, 'l) node list * ('p, 'l) link list" where "graph_of_root Γ r pn = (let me = RootNode pn in let (next, acc, links) = gseqp Γ (Γ pn) in (acc @ fst r @ [me], map (ILink me) next @ links @ snd r))"
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.