equal
deleted
inserted
replaced
1 (* Title: HOL/Tools/function_package/fundef_datatype.ML |
1 (* Title: HOL/Tools/function_package/fundef_datatype.ML |
2 ID: $Id$ |
|
3 Author: Alexander Krauss, TU Muenchen |
2 Author: Alexander Krauss, TU Muenchen |
4 |
3 |
5 A package for general recursive function definitions. |
4 A package for general recursive function definitions. |
6 A tactic to prove completeness of datatype patterns. |
5 A tactic to prove completeness of datatype patterns. |
7 *) |
6 *) |
62 forall_elim inst (forall_intr var thm) |
61 forall_elim inst (forall_intr var thm) |
63 |
62 |
64 |
63 |
65 fun inst_case_thm thy x P thm = |
64 fun inst_case_thm thy x P thm = |
66 let |
65 let |
67 val [Pv, xv] = term_vars (prop_of thm) |
66 val [Pv, xv] = OldTerm.term_vars (prop_of thm) |
68 in |
67 in |
69 cterm_instantiate [(cterm_of thy xv, cterm_of thy x), (cterm_of thy Pv, cterm_of thy P)] thm |
68 cterm_instantiate [(cterm_of thy xv, cterm_of thy x), (cterm_of thy Pv, cterm_of thy P)] thm |
70 end |
69 end |
71 |
70 |
72 |
71 |