The proofreading is slightly moronic, for the program cannot alert the user to an error like  an  for  and,  because  an  is a valid word in its memory; still, it is better than nothing.
The proofreading program has faults.