5.4 Definitions

 HOL Lightでは新たなconstant(固定された数や関数など)を定義することもできます.それにはnew_definition関数を用いて,その定義をtheoremにすればよいのです.

let def_of_wordlimit = new_definition `wordlimit = 2 EXP 32`;;
val def_of_wordlimit : thm = |- wordlimit = 2 EXP 32
def_of_wordlimit;;
val it : thm = |- wordlimit = 2 EXP 32

ただし,既にHOL Lightにおいて異なるとされるものを同じconstantにしようとすると

ARITH_RULE`~(2 EXP 32=2 EXP 64)`;;
val it : thm = |- ~(2 EXP 32 = 2 EXP 64)
let def_of_wordlimit = new_definition `wordlimit = 2 EXP 64`;;
Exception: Failure "new_basic_definition".

と叱られます.
 このような場合は,数のcontantではなく,関数のconstantとして定義すれば上手く行きます.

let def_of_wordlimitfun = new_definition `wordlimitfun n = 2 EXP n`;;
val def_of_wordlimitfun : thm = |- !n. wordlimitfun n = 2 EXP n