I know how to calculate a minimal cover-- ensure each functional dependency only has one attribute on the RHS, remove extraneous/redundant LHS attributes by calculating the closure of each, examining all FD's, seeing if any can be removed (again by calculating a closure).
Is 'canonical' cover just another word for the same thing?