Algebraic Principles for Program Correctness Tools in Isabelle/HOL