the_definitions : thm list ref
- SYNOPSIS
-
List of all definitions introduced so far.
- DESCRIPTION
-
The reference variable the_definitions holds the list of definitions made so
far. Various definitional rules such as new_definition automatically augment
it. Note that in some cases (e.g. new_inductive_definition) the stored form
of the definition may look very different from what the user sees or enters at
the top level.
- FAILURE CONDITIONS
-
Not applicable.
- EXAMPLE
-
If we examine the list in HOL Light's initial state, we see the most recent
definition at the head (superadmissible is connected with HOL's automated
definitional rule define) and the oldest, logical truth T, at the tail:
# !the_definitions;;
val it : thm list =
[|- !(<<) p s t.
superadmissible (<<) p s t <=>
admissible (<<) (\f a. T) s p ==> tailadmissible (<<) p s t;
...
...
|- (/\) = (\p q. (\f. f p q) = (\f. f T T)); |- T <=> (\p. p) = (\p. p)]
If we make a new definition of any sort, e.g.
# new_definition `false <=> F`;;
val it : thm = |- false <=> F
we will see a new entry at the head:
# !the_definitions;;
val it : thm list =
[|- false <=> F;
...
...
|- (/\) = (\p q. (\f. f p q) = (\f. f T T)); |- T <=> (\p. p) = (\p. p)]
- USES
-
This list is not logically necessary and is not part of HOL Light's logical
core, but it is used outside the core so that multiple instances of the same
definition are quietly ``ignored'' rather than rejected. (By contrast, the list
of new constants introduced by definitions is logically necessary to avoid
inconsistent redefinition.) Users may also sometimes find it convenient.
- SEE ALSO
-
axioms, constants, define, definitions, new_definition,
new_inductive_definition, new_recursive_definition, new_specification,
the_inductive_definitions, the_specifications.