equal
deleted
inserted
replaced
440 shows "swap (a,b) c = (if a=c then b else (if b=c then a else c))" |
440 shows "swap (a,b) c = (if a=c then b else (if b=c then a else c))" |
441 using a by (simp only: at_def) |
441 using a by (simp only: at_def) |
442 |
442 |
443 (* rules to calculate simple premutations *) |
443 (* rules to calculate simple premutations *) |
444 lemmas at_calc = at2 at1 at3 |
444 lemmas at_calc = at2 at1 at3 |
|
445 |
|
446 lemma at_swap_simps: |
|
447 fixes a ::"'x" |
|
448 and b ::"'x" |
|
449 assumes a: "at TYPE('x)" |
|
450 shows "[(a,b)]\<bullet>a = b" |
|
451 and "[(a,b)]\<bullet>b = a" |
|
452 using a by (simp_all add: at_calc) |
445 |
453 |
446 lemma at4: |
454 lemma at4: |
447 assumes a: "at TYPE('x)" |
455 assumes a: "at TYPE('x)" |
448 shows "infinite (UNIV::'x set)" |
456 shows "infinite (UNIV::'x set)" |
449 using a by (simp add: at_def) |
457 using a by (simp add: at_def) |
1087 apply(simp_all add: pt3[OF pta]) |
1095 apply(simp_all add: pt3[OF pta]) |
1088 done |
1096 done |
1089 |
1097 |
1090 section {* further lemmas for permutation types *} |
1098 section {* further lemmas for permutation types *} |
1091 (*==============================================*) |
1099 (*==============================================*) |
1092 |
|
1093 lemma swap_simp_a: |
|
1094 fixes a ::"'x" |
|
1095 and b ::"'x" |
|
1096 assumes a: "at TYPE('x)" |
|
1097 shows "[(a,b)]\<bullet> a = b" |
|
1098 using a by (auto simp add:at_calc) |
|
1099 |
|
1100 lemma swap_simp_b: |
|
1101 fixes a ::"'x" |
|
1102 and b ::"'x" |
|
1103 assumes a: "at TYPE('x)" |
|
1104 shows "[(a,b)]\<bullet> b = a" |
|
1105 using a by (auto simp add:at_calc) |
|
1106 |
1100 |
1107 lemma pt_rev_pi: |
1101 lemma pt_rev_pi: |
1108 fixes pi :: "'x prm" |
1102 fixes pi :: "'x prm" |
1109 and x :: "'a" |
1103 and x :: "'a" |
1110 assumes pt: "pt TYPE('a) TYPE('x)" |
1104 assumes pt: "pt TYPE('a) TYPE('x)" |