GEN : term -> thm -> thm
      A |- t
   ------------  GEN x                [where x is not free in A]
    A |- !x. t
- show_types := true; > val it = () : unit - val t = ASSUME (Term `x=T`); > val t = [.] |- (x :bool) = T : thm - try (GEN (Term `x:bool`)) t; Exception raised at Thm.GEN: variable occurs free in hypotheses ! Uncaught exception: ! HOL_ERR