void Completion(char *ifile1, char *ifile2, char *ifile3, int threefiles, FILE *f10)
{
        FILE *f1, *f2, *f3;
        FSM fsm1, fsm2, fsm3;

        /* Illustration of Completion of graph of a finite state machine */
        
        if(!threefiles)
        {
                ifile1 = "../data/completion.data";
                ifile2 = "../data/completion_events.data";
                ifile3 = "../data/completion.results";
        }
        f1 = fopen(ifile1, "r");
        f2 = fopen(ifile2, "r");
        f3 = fopen(ifile3, "w");

        fsm_read(f1, &fsm1);
        CompleteGraph(f2,&fsm1, &fsm2);
        fsm_print(f3, &fsm2);
                                 
        fclose(f1);
        fclose(f2);
        fclose(f3);
        fsm_delete(&fsm1);
        fsm_delete(&fsm2);

        fprintf(f10, "Graph to be completed in input file:\n\t %s \n", ifile1);
        fprintf(f10, "Events with which to be completed in input file: \n\t ");
        fprintf(f10, "%s\n", ifile2);
        fprintf(f10, "Completed graph in output file:\n\t %s \n\n\n", ifile3);

        /*end r*/
}
