mk_rewrites : bool -> thm -> thm list -> thm list
- SYNOPSIS
-
Turn theorem into list of (conditional) rewrites.
- DESCRIPTION
-
Given a Boolean flag b, a theorem th and a list of theorems thl, the call
mk_rewrites b th thl breaks th down into a collection of rewrites (for
example, splitting conjunctions up into several sub-theorems) and appends them
to the front of thl (which are normally theorems already processed in this
way). Non-equational theorems |- p are converted to |- p <=> T. If the flag
b is true, then implicational theorems |- p ==> s = t are used as
conditional rewrites; otherwise they are converted to |- (p ==> s = t) <=> T.
This function is applied inside extend_basic_rewrites and
set_basic_rewrites.
- FAILURE CONDITIONS
-
Never fails.
- EXAMPLE
-
# ADD_CLAUSES;;
val it : thm =
|- (!n. 0 + n = n) /\
(!m. m + 0 = m) /\
(!m n. SUC m + n = SUC (m + n)) /\
(!m n. m + SUC n = SUC (m + n))
# mk_rewrites false ADD_CLAUSES [];;
val it : thm list =
[|- 0 + n = n; |- m + 0 = m; |- SUC m + n = SUC (m + n);
|- m + SUC n = SUC (m + n)]
- SEE ALSO
-
extend_basic_rewrites, GEN_REWRITE_CONV, REWRITE_CONV, set_basic_rewrites,
SIMP_CONV.