src/HOL/HOLCF/IOA/meta_theory/Sequence.thy
changeset 51798 ad3a241def73
parent 51717 9e7d1c139569
child 59755 f8d164ab0dc1
equal deleted inserted replaced
51797:182454c06a80 51798:ad3a241def73
  1080 
  1080 
  1081 ML {*
  1081 ML {*
  1082 
  1082 
  1083 fun Seq_case_tac ctxt s i =
  1083 fun Seq_case_tac ctxt s i =
  1084   res_inst_tac ctxt [(("x", 0), s)] @{thm Seq_cases} i
  1084   res_inst_tac ctxt [(("x", 0), s)] @{thm Seq_cases} i
  1085   THEN hyp_subst_tac i THEN hyp_subst_tac (i+1) THEN hyp_subst_tac (i+2);
  1085   THEN hyp_subst_tac ctxt i THEN hyp_subst_tac ctxt (i+1) THEN hyp_subst_tac ctxt (i+2);
  1086 
  1086 
  1087 (* on a>>s only simp_tac, as full_simp_tac is uncomplete and often causes errors *)
  1087 (* on a>>s only simp_tac, as full_simp_tac is uncomplete and often causes errors *)
  1088 fun Seq_case_simp_tac ctxt s i =
  1088 fun Seq_case_simp_tac ctxt s i =
  1089   Seq_case_tac ctxt s i
  1089   Seq_case_tac ctxt s i
  1090   THEN asm_simp_tac ctxt (i+2)
  1090   THEN asm_simp_tac ctxt (i+2)
  1101   etac @{thm Seq_Finite_ind} i
  1101   etac @{thm Seq_Finite_ind} i
  1102   THEN (REPEAT_DETERM (CHANGED (asm_simp_tac ctxt i)));
  1102   THEN (REPEAT_DETERM (CHANGED (asm_simp_tac ctxt i)));
  1103 
  1103 
  1104 fun pair_tac ctxt s =
  1104 fun pair_tac ctxt s =
  1105   res_inst_tac ctxt [(("p", 0), s)] @{thm PairE}
  1105   res_inst_tac ctxt [(("p", 0), s)] @{thm PairE}
  1106   THEN' hyp_subst_tac THEN' asm_full_simp_tac ctxt;
  1106   THEN' hyp_subst_tac ctxt THEN' asm_full_simp_tac ctxt;
  1107 
  1107 
  1108 (* induction on a sequence of pairs with pairsplitting and simplification *)
  1108 (* induction on a sequence of pairs with pairsplitting and simplification *)
  1109 fun pair_induct_tac ctxt s rws i =
  1109 fun pair_induct_tac ctxt s rws i =
  1110   res_inst_tac ctxt [(("x", 0), s)] @{thm Seq_induct} i
  1110   res_inst_tac ctxt [(("x", 0), s)] @{thm Seq_induct} i
  1111   THEN pair_tac ctxt "a" (i+3)
  1111   THEN pair_tac ctxt "a" (i+3)