equal
deleted
inserted
replaced
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) |