src/HOL/Recdef.thy
author wenzelm
Tue, 05 Sep 2000 18:48:04 +0200
changeset 9855 709a295731e2
parent 8303 5e7037409118
child 10212 33fe2d701ddd
permissions -rw-r--r--
improved recdef setup;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7701
2c8c3b7003e5 load / setup recdef package (TFL);
wenzelm
parents: 7357
diff changeset
     1
(*  Title:      HOL/Recdef.thy
2c8c3b7003e5 load / setup recdef package (TFL);
wenzelm
parents: 7357
diff changeset
     2
    ID:         $Id$
2c8c3b7003e5 load / setup recdef package (TFL);
wenzelm
parents: 7357
diff changeset
     3
    Author:     Konrad Slind
5123
97c1d5c7b701 stepping stones;
wenzelm
parents:
diff changeset
     4
7701
2c8c3b7003e5 load / setup recdef package (TFL);
wenzelm
parents: 7357
diff changeset
     5
TFL: recursive function definitions.
2c8c3b7003e5 load / setup recdef package (TFL);
wenzelm
parents: 7357
diff changeset
     6
*)
2c8c3b7003e5 load / setup recdef package (TFL);
wenzelm
parents: 7357
diff changeset
     7
2c8c3b7003e5 load / setup recdef package (TFL);
wenzelm
parents: 7357
diff changeset
     8
theory Recdef = WF_Rel + Datatype
2c8c3b7003e5 load / setup recdef package (TFL);
wenzelm
parents: 7357
diff changeset
     9
files
2c8c3b7003e5 load / setup recdef package (TFL);
wenzelm
parents: 7357
diff changeset
    10
  "../TFL/utils.sml"
2c8c3b7003e5 load / setup recdef package (TFL);
wenzelm
parents: 7357
diff changeset
    11
  "../TFL/usyntax.sml"
2c8c3b7003e5 load / setup recdef package (TFL);
wenzelm
parents: 7357
diff changeset
    12
  "../TFL/thms.sml"
2c8c3b7003e5 load / setup recdef package (TFL);
wenzelm
parents: 7357
diff changeset
    13
  "../TFL/dcterm.sml"
2c8c3b7003e5 load / setup recdef package (TFL);
wenzelm
parents: 7357
diff changeset
    14
  "../TFL/rules.sml"
2c8c3b7003e5 load / setup recdef package (TFL);
wenzelm
parents: 7357
diff changeset
    15
  "../TFL/thry.sml"
2c8c3b7003e5 load / setup recdef package (TFL);
wenzelm
parents: 7357
diff changeset
    16
  "../TFL/tfl.sml"
2c8c3b7003e5 load / setup recdef package (TFL);
wenzelm
parents: 7357
diff changeset
    17
  "../TFL/post.sml"
8303
5e7037409118 early setup of induct_method;
wenzelm
parents: 7701
diff changeset
    18
  "Tools/recdef_package.ML":
6438
e55a1869ed38 'HOL/recdef' theory data;
wenzelm
parents: 5123
diff changeset
    19
e55a1869ed38 'HOL/recdef' theory data;
wenzelm
parents: 5123
diff changeset
    20
setup RecdefPackage.setup
e55a1869ed38 'HOL/recdef' theory data;
wenzelm
parents: 5123
diff changeset
    21
9855
709a295731e2 improved recdef setup;
wenzelm
parents: 8303
diff changeset
    22
lemmas [recdef_simp] =
709a295731e2 improved recdef setup;
wenzelm
parents: 8303
diff changeset
    23
  inv_image_def
709a295731e2 improved recdef setup;
wenzelm
parents: 8303
diff changeset
    24
  measure_def
709a295731e2 improved recdef setup;
wenzelm
parents: 8303
diff changeset
    25
  lex_prod_def
709a295731e2 improved recdef setup;
wenzelm
parents: 8303
diff changeset
    26
  less_Suc_eq [THEN iffD2]
709a295731e2 improved recdef setup;
wenzelm
parents: 8303
diff changeset
    27
709a295731e2 improved recdef setup;
wenzelm
parents: 8303
diff changeset
    28
lemmas [recdef_cong] =
709a295731e2 improved recdef setup;
wenzelm
parents: 8303
diff changeset
    29
  if_cong
709a295731e2 improved recdef setup;
wenzelm
parents: 8303
diff changeset
    30
709a295731e2 improved recdef setup;
wenzelm
parents: 8303
diff changeset
    31
lemma let_cong [recdef_cong]:
709a295731e2 improved recdef setup;
wenzelm
parents: 8303
diff changeset
    32
    "M = N ==> (!!x. x = N ==> f x = g x) ==> Let M f = Let N g"
709a295731e2 improved recdef setup;
wenzelm
parents: 8303
diff changeset
    33
  by (unfold Let_def) blast
709a295731e2 improved recdef setup;
wenzelm
parents: 8303
diff changeset
    34
709a295731e2 improved recdef setup;
wenzelm
parents: 8303
diff changeset
    35
lemmas [recdef_wf] =
709a295731e2 improved recdef setup;
wenzelm
parents: 8303
diff changeset
    36
  wf_trancl
709a295731e2 improved recdef setup;
wenzelm
parents: 8303
diff changeset
    37
  wf_less_than
709a295731e2 improved recdef setup;
wenzelm
parents: 8303
diff changeset
    38
  wf_lex_prod
709a295731e2 improved recdef setup;
wenzelm
parents: 8303
diff changeset
    39
  wf_inv_image
709a295731e2 improved recdef setup;
wenzelm
parents: 8303
diff changeset
    40
  wf_measure
709a295731e2 improved recdef setup;
wenzelm
parents: 8303
diff changeset
    41
  wf_pred_nat
709a295731e2 improved recdef setup;
wenzelm
parents: 8303
diff changeset
    42
  wf_empty
709a295731e2 improved recdef setup;
wenzelm
parents: 8303
diff changeset
    43
6438
e55a1869ed38 'HOL/recdef' theory data;
wenzelm
parents: 5123
diff changeset
    44
end