Research Article
Efficient Semantics-Based Compliance Checking Using LTL Formulae and Unfolding
Algorithm 3
Transforming an annotated CFP into a set of conflict-free annotated CFPs.
function | Input: An annotated CFP where and | Output: A set of annotated CFPs | begin | ; | ; | /* compute CFPs from each of the co-sets of leaf conditions */ | CS:= GetLeafCondCoSets(); | for do | ComputeCFP; | /* generate annotated CFPs from the above (conflict-free) CFPs */ | := ; | repeat | Select ; | ; | := GetCutoffEvents(); | := FALSE; /* the flag changes to TRUE if there are CFP updates */ | while do | Select ; | := GetContinuationEvent(); | if then | ; | else | := GetUpdatedCFPs(); /* see Algorithm 4 */ | ; | ; | := GetLinks_to; | for do | | ; | ; | := TRUE; /* set the flag to TRUE upon CFP updates */ | ; /* add to the remaining CFPs for link annotations */ | ; | if then | ; | | until ; |
|