src/HOL/Induct/ABexp.ML
author nipkow
Thu, 05 Nov 1998 14:05:57 +0100
changeset 5802 614f2f30781a
parent 5737 31fc1d0e66d5
child 7847 5a3fa0c4b215
permissions -rw-r--r--
Shortened names and added new thm.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5737
31fc1d0e66d5 New example for using the datatype package:
berghofe
parents:
diff changeset
     1
(*  Title:      HOL/Induct/ABexp.ML
31fc1d0e66d5 New example for using the datatype package:
berghofe
parents:
diff changeset
     2
    ID:         $Id$
31fc1d0e66d5 New example for using the datatype package:
berghofe
parents:
diff changeset
     3
    Author:     Stefan Berghofer, TU Muenchen
31fc1d0e66d5 New example for using the datatype package:
berghofe
parents:
diff changeset
     4
    Copyright   1998  TU Muenchen
31fc1d0e66d5 New example for using the datatype package:
berghofe
parents:
diff changeset
     5
31fc1d0e66d5 New example for using the datatype package:
berghofe
parents:
diff changeset
     6
Arithmetic and boolean expressions
31fc1d0e66d5 New example for using the datatype package:
berghofe
parents:
diff changeset
     7
*)
31fc1d0e66d5 New example for using the datatype package:
berghofe
parents:
diff changeset
     8
5802
614f2f30781a Shortened names and added new thm.
nipkow
parents: 5737
diff changeset
     9
(** substitution theorems for arithmetic and boolean expressions **)
5737
31fc1d0e66d5 New example for using the datatype package:
berghofe
parents:
diff changeset
    10
5802
614f2f30781a Shortened names and added new thm.
nipkow
parents: 5737
diff changeset
    11
(* One variable *)
5737
31fc1d0e66d5 New example for using the datatype package:
berghofe
parents:
diff changeset
    12
Goal
5802
614f2f30781a Shortened names and added new thm.
nipkow
parents: 5737
diff changeset
    13
  "evala env (substa (Var(v := a')) a) = evala (env(v := evala env a')) a &  \
614f2f30781a Shortened names and added new thm.
nipkow
parents: 5737
diff changeset
    14
 \ evalb env (substb (Var(v := a')) b) = evalb (env(v := evala env a')) b";
5737
31fc1d0e66d5 New example for using the datatype package:
berghofe
parents:
diff changeset
    15
by (mutual_induct_tac ["a","b"] 1);
31fc1d0e66d5 New example for using the datatype package:
berghofe
parents:
diff changeset
    16
by (ALLGOALS Asm_full_simp_tac);
5802
614f2f30781a Shortened names and added new thm.
nipkow
parents: 5737
diff changeset
    17
qed "subst1_aexp_bexp";
614f2f30781a Shortened names and added new thm.
nipkow
parents: 5737
diff changeset
    18
614f2f30781a Shortened names and added new thm.
nipkow
parents: 5737
diff changeset
    19
(* All variables *)
614f2f30781a Shortened names and added new thm.
nipkow
parents: 5737
diff changeset
    20
Goal
614f2f30781a Shortened names and added new thm.
nipkow
parents: 5737
diff changeset
    21
  "evala env (substa s a) = evala (%x. evala env (s x)) a &  \
614f2f30781a Shortened names and added new thm.
nipkow
parents: 5737
diff changeset
    22
 \ evalb env (substb s b) = evalb (%x. evala env (s x)) b";
614f2f30781a Shortened names and added new thm.
nipkow
parents: 5737
diff changeset
    23
by (mutual_induct_tac ["a","b"] 1);
614f2f30781a Shortened names and added new thm.
nipkow
parents: 5737
diff changeset
    24
by (Auto_tac);
614f2f30781a Shortened names and added new thm.
nipkow
parents: 5737
diff changeset
    25
qed "subst_all_aexp_bexp";