Input: the preprocessing results

Output: the output of Map in the first cycle of MapReduce for variable violation

Input: key=offset, value=tuple

Map (Object, Data_Text, Data_Text, Data_Text, Data-Text)

FOR each cfd r = (R:X→Y, tp) DO

IF tuple[X] = tp[X] and tuple[Y] ≠tp[Y] THEN

tuple[Y] = tp[Y]

FOR each cfd r = (R:X→Y,Tp) DO

IF fixFlag THEN

output_key := (cfdseq, ptseq, propseq,1)

output_value := (offset, tuple)

FOR tuples not match cfd with varialbles

DO

output_key := (cfdseq, ptseq, propseq, 0)

output_value := (offset, tuple)