Compat.new_axiom : (string * term) -> thm

SYNOPSIS
Sets up a new axiom in the current theory.

DESCRIBE

Found in the hol88 library. If tm is a term of type bool, a call new_axiom("name",tm) creates a theorem

   |- !x1..xn. tm
and stores it away in the theory file. Note that all free variables in tm are generalized automatically before the axiom is set up.

FAILURE
Fails if HOL is not in draft mode, or there is already an axiom or definition of that name in the current theory, or it the given term does not have type bool. The function will not be available unless the hol88 library is loaded.

EXAMPLE
  - new_theory "gurk";
  () : unit

  - new_axiom("untrue",--`x = 1`--));
  |- !x. x = 1

COMMENTS
hol90 doesn't have new_axiom; use new_open_axiom instead, which does not automatically generalize the term being asserted as an axiom. For most purposes, it is unnecessary to declare new axioms: all of classical mathematics can be derived by definitional extension alone. Proceeding by definition is not only more elegant, but also guarantees the consistency of the deductions made. However, there are certain entities which cannot be modelled in simple type theory without further axioms, such as higher transfinite ordinals.

SEEALSO  mk_thm,   new_definition

HOL  Kananaskis 0