mk_thm : term list * term -> thm
mk_thm([a1,...,an],c) = ({a1,...,an} |- c)
- val falsity = mk_thm([],boolSyntax.F); > val falsity = |- F : thm - Globals.show_tags := true; > val it = () : unit - falsity; > val it = [oracles: MK_THM] [axioms: ] [] |- F : thm
All theorems which are likely to be needed can be derived using only HOL’s inbuilt axioms and primitive inference rules, which are provably sound (see the DESCRIPTION). Basing all proofs, normally via derived rules and tactics, on just these axioms and inference rules gives proofs which are (apart from bugs in HOL or the underlying system) completely secure. This is one of the great strengths of HOL, and it is foolish to sacrifice it to save a little work.
Because of the way tags are propagated during proof, a theorem proved with the aid of mk_thm is detectable by examining its tag.