equal
deleted
inserted
replaced
319 goal Integ.thy |
319 goal Integ.thy |
320 "congruent2 intrel (%p1 p2. \ |
320 "congruent2 intrel (%p1 p2. \ |
321 \ split (%x1 y1. split (%x2 y2. \ |
321 \ split (%x1 y1. split (%x2 y2. \ |
322 \ intrel^^{(x1*x2 + y1*y2, x1*y2 + y1*x2)}) p2) p1)"; |
322 \ intrel^^{(x1*x2 + y1*y2, x1*y2 + y1*x2)}) p2) p1)"; |
323 by (rtac (equiv_intrel RS congruent2_commuteI) 1); |
323 by (rtac (equiv_intrel RS congruent2_commuteI) 1); |
|
324 by (pair_tac "w" 2); |
|
325 by (rename_tac "z1 z2" 2); |
324 by Safe_tac; |
326 by Safe_tac; |
325 by (rewtac split_def); |
327 by (rewtac split_def); |
326 by (simp_tac (simpset() addsimps add_ac@mult_ac) 1); |
328 by (simp_tac (simpset() addsimps add_ac@mult_ac) 1); |
327 by (rename_tac "x1 y1 x2 y2 z1 z2" 1); |
|
328 by (asm_simp_tac (simpset() delsimps [equiv_intrel_iff] |
329 by (asm_simp_tac (simpset() delsimps [equiv_intrel_iff] |
329 addsimps add_ac@mult_ac) 1); |
330 addsimps add_ac@mult_ac) 1); |
330 by (rtac (intrelI RS(equiv_intrel RS equiv_class_eq)) 1); |
331 by (rtac (intrelI RS(equiv_intrel RS equiv_class_eq)) 1); |
331 by (rtac (zmult_congruent_lemma RS trans) 1); |
332 by (rtac (zmult_congruent_lemma RS trans) 1); |
332 by (rtac (zmult_congruent_lemma RS trans RS sym) 1); |
333 by (rtac (zmult_congruent_lemma RS trans RS sym) 1); |