uses Pure straight from isabelle now