src/HOLCF/IOA/meta_theory/Sequence.ML
author huffman
Wed, 03 May 2006 05:56:11 +0200
changeset 19551 4103954f3668
parent 19550 ae77a20f6995
permissions -rw-r--r--
converted to isar theory; removed unsound adm_all axiom
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
     1
(*  Title:      HOLCF/IOA/meta_theory/Sequence.ML
3275
3f53f2c876f4 changes for release 94-8
mueller
parents: 3071
diff changeset
     2
    ID:         $Id$
15594
36f3e7ef3cb6 fixed variable name
huffman
parents: 15570
diff changeset
     3
    Author:     Olaf Mller
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
     4
*)
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
     5
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
     6
(* ----------------------------------------------------------------------------------- *)
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
     7
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
     8
fun Seq_case_tac s i = res_inst_tac [("x",s)] Seq_cases i
17233
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 16744
diff changeset
     9
          THEN hyp_subst_tac i THEN hyp_subst_tac (i+1) THEN hyp_subst_tac (i+2);
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    10
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    11
(* on a>>s only simp_tac, as full_simp_tac is uncomplete and often causes errors *)
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    12
fun Seq_case_simp_tac s i = Seq_case_tac s i THEN Asm_simp_tac (i+2)
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    13
                                             THEN Asm_full_simp_tac (i+1)
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    14
                                             THEN Asm_full_simp_tac i;
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    15
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    16
(* rws are definitions to be unfolded for admissibility check *)
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    17
fun Seq_induct_tac s rws i = res_inst_tac [("x",s)] Seq_induct i
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    18
                         THEN (REPEAT_DETERM (CHANGED (Asm_simp_tac (i+1))))
4098
71e05eb27fb6 isatool fixclasimp;
wenzelm
parents: 4042
diff changeset
    19
                         THEN simp_tac (simpset() addsimps rws) i;
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    20
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    21
fun Seq_Finite_induct_tac i = etac Seq_Finite_ind i
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    22
                              THEN (REPEAT_DETERM (CHANGED (Asm_simp_tac i)));
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    23
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    24
fun pair_tac s = res_inst_tac [("p",s)] PairE
17233
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 16744
diff changeset
    25
                          THEN' hyp_subst_tac THEN' Asm_full_simp_tac;
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    26
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    27
(* induction on a sequence of pairs with pairsplitting and simplification *)
17233
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 16744
diff changeset
    28
fun pair_induct_tac s rws i =
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 16744
diff changeset
    29
           res_inst_tac [("x",s)] Seq_induct i
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 16744
diff changeset
    30
           THEN pair_tac "a" (i+3)
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 16744
diff changeset
    31
           THEN (REPEAT_DETERM (CHANGED (Simp_tac (i+1))))
4098
71e05eb27fb6 isatool fixclasimp;
wenzelm
parents: 4042
diff changeset
    32
           THEN simp_tac (simpset() addsimps rws) i;