mk_thm : term list * term -> thm

SYNOPSIS
Creates an arbitrary theorem (dangerous!)

DESCRIBE
The function mk_thm can be used to construct an arbitrary theorem. It is applied to a pair consisting of the desired assumption list (possibly empty) and conclusion. All the terms therein should be of type bool.
   mk_thm([a1,...,an],c) = ({a1,...,an} |- c)

FAILURE
Fails unless all the terms provided for assumptions and conclusion are of type bool.

EXAMPLE
The following shows how to create a simple contradiction:
   - mk_thm([],boolSyntax.F);
   val it = |- F : thm

COMMENTS
Although mk_thm can be useful for experimentation or temporarily plugging gaps, its use should be avoided if at all possible in important proofs, because it can be used to create theorems leading to contradictions. The example above is a trivial case, but it is all too easy to create a contradiction by asserting `obviously sound' theorems.

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.

SEEALSO  new_axiom,   mk_oracle_thm

HOL  Kananaskis 0