equal
deleted
inserted
replaced
126 let |
126 let |
127 fun last_disc_tac iffD = |
127 fun last_disc_tac iffD = |
128 HEADGOAL (rtac ctxt (rotate_prems ~1 exhaust_disc) THEN' assume_tac ctxt THEN' |
128 HEADGOAL (rtac ctxt (rotate_prems ~1 exhaust_disc) THEN' assume_tac ctxt THEN' |
129 REPEAT_DETERM o (rotate_tac ~1 THEN' dtac ctxt (rotate_prems 1 iffD) THEN' |
129 REPEAT_DETERM o (rotate_tac ~1 THEN' dtac ctxt (rotate_prems 1 iffD) THEN' |
130 assume_tac ctxt THEN' rotate_tac ~1 THEN' |
130 assume_tac ctxt THEN' rotate_tac ~1 THEN' |
131 etac ctxt (rotate_prems 1 notE) THEN' eresolve0_tac distinct_disc)); |
131 etac ctxt (rotate_prems 1 notE) THEN' eresolve_tac ctxt distinct_disc)); |
132 in |
132 in |
133 HEADGOAL Goal.conjunction_tac THEN |
133 HEADGOAL Goal.conjunction_tac THEN |
134 REPEAT_DETERM (HEADGOAL (rtac ctxt rel_funI THEN' dtac ctxt (rel_sel RS iffD1) THEN' |
134 REPEAT_DETERM (HEADGOAL (rtac ctxt rel_funI THEN' dtac ctxt (rel_sel RS iffD1) THEN' |
135 REPEAT_DETERM o (etac ctxt conjE) THEN' (assume_tac ctxt ORELSE' rtac ctxt iffI))) THEN |
135 REPEAT_DETERM o (etac ctxt conjE) THEN' (assume_tac ctxt ORELSE' rtac ctxt iffI))) THEN |
136 TRY (last_disc_tac iffD2) THEN TRY (last_disc_tac iffD1) |
136 TRY (last_disc_tac iffD2) THEN TRY (last_disc_tac iffD1) |