Consider running the following code having built HOL atop Poly/ML v5.9.2:
> val false_thm = RunCall.unsafeCast (Thm.tag $ REFL F_tm, HOLset.empty Term.compare, F_tm) : thm;
val false_thm = ⊢ F: thm
> (Tag.dest_tag $ Thm.tag false_thm, hyp false_thm, concl false_thm ~~ F_tm);
val it = (([], []), [], true): (string list * string list) * term list * bool
If this approach is used somewhere in one's development, it can be hard to tell that the theorem isn't trustworthy.
Consider running the following code having built HOL atop Poly/ML v5.9.2:
If this approach is used somewhere in one's development, it can be hard to tell that the theorem isn't trustworthy.