save_thmTheory.save_thm : string * thm -> thm
Stores a theorem in the current theory segment.
The call save_thm(name, th) adds the theorem
th to the current theory segment under the name
name. The theorem is also the return value of the call.
When the current segment thy is exported, things are
arranged in such a way that, if thyTheory is loaded into a
later session, the ML variable thyTheory.name will have
th as its value.
If th is out-of-date, then save_thm will
fail. If name is not a valid ML alphanumeric identifier,
save_thm will not fail, but export_theory will
(printing an informative error message first).
- val foo = save_thm("foo", REFL (Term `x:bool`));
> val foo = |- x = x : thm
- current_theorems();
> val it = [("foo", |- x = x)] : (string * thm) list
If a theorem is already saved under name in the current
theory segment, it will be overwritten.
The results of new_axiom, and definition principle (such
as new_definition, new_type_definition, and
new_specification) are automatically stored in the current
theory: one does not have to call save_thm on them.
Saving important theorems for eventual export. Binding the result of
save_thm to an ML variable makes it easy to access the
theorem in the remainder of the current session.
Theory.new_theory,
Tactical.store_thm,
DB.fetch, DB.thy, Theory.current_definitions,
Theory.current_theorems,
Theory.uptodate_thm,
Theory.new_axiom, Definition.new_type_definition,
Definition.new_definition,
Definition.new_specification