10315 done |
10315 done |
10316 |
10316 |
10317 lemma NOTRIGHT_eqvt_name: |
10317 lemma NOTRIGHT_eqvt_name: |
10318 fixes pi::"name prm" |
10318 fixes pi::"name prm" |
10319 shows "(pi\<bullet>(NOTRIGHT (NOT B) X)) = NOTRIGHT (NOT B) (pi\<bullet>X)" |
10319 shows "(pi\<bullet>(NOTRIGHT (NOT B) X)) = NOTRIGHT (NOT B) (pi\<bullet>X)" |
10320 apply(auto simp add: perm_set_def) |
10320 apply(auto simp add: perm_set_eq) |
10321 apply(rule_tac x="pi\<bullet>a" in exI) |
10321 apply(rule_tac x="pi\<bullet>a" in exI) |
10322 apply(rule_tac x="pi\<bullet>xb" in exI) |
10322 apply(rule_tac x="pi\<bullet>xb" in exI) |
10323 apply(rule_tac x="pi\<bullet>M" in exI) |
10323 apply(rule_tac x="pi\<bullet>M" in exI) |
10324 apply(simp) |
10324 apply(simp) |
10325 apply(rule conjI) |
10325 apply(rule conjI) |
10341 done |
10341 done |
10342 |
10342 |
10343 lemma NOTRIGHT_eqvt_coname: |
10343 lemma NOTRIGHT_eqvt_coname: |
10344 fixes pi::"coname prm" |
10344 fixes pi::"coname prm" |
10345 shows "(pi\<bullet>(NOTRIGHT (NOT B) X)) = NOTRIGHT (NOT B) (pi\<bullet>X)" |
10345 shows "(pi\<bullet>(NOTRIGHT (NOT B) X)) = NOTRIGHT (NOT B) (pi\<bullet>X)" |
10346 apply(auto simp add: perm_set_def) |
10346 apply(auto simp add: perm_set_eq) |
10347 apply(rule_tac x="pi\<bullet>a" in exI) |
10347 apply(rule_tac x="pi\<bullet>a" in exI) |
10348 apply(rule_tac x="pi\<bullet>xb" in exI) |
10348 apply(rule_tac x="pi\<bullet>xb" in exI) |
10349 apply(rule_tac x="pi\<bullet>M" in exI) |
10349 apply(rule_tac x="pi\<bullet>M" in exI) |
10350 apply(simp) |
10350 apply(simp) |
10351 apply(rule conjI) |
10351 apply(rule conjI) |
10375 done |
10375 done |
10376 |
10376 |
10377 lemma NOTLEFT_eqvt_name: |
10377 lemma NOTLEFT_eqvt_name: |
10378 fixes pi::"name prm" |
10378 fixes pi::"name prm" |
10379 shows "(pi\<bullet>(NOTLEFT (NOT B) X)) = NOTLEFT (NOT B) (pi\<bullet>X)" |
10379 shows "(pi\<bullet>(NOTLEFT (NOT B) X)) = NOTLEFT (NOT B) (pi\<bullet>X)" |
10380 apply(auto simp add: perm_set_def) |
10380 apply(auto simp add: perm_set_eq) |
10381 apply(rule_tac x="pi\<bullet>a" in exI) |
10381 apply(rule_tac x="pi\<bullet>a" in exI) |
10382 apply(rule_tac x="pi\<bullet>xb" in exI) |
10382 apply(rule_tac x="pi\<bullet>xb" in exI) |
10383 apply(rule_tac x="pi\<bullet>M" in exI) |
10383 apply(rule_tac x="pi\<bullet>M" in exI) |
10384 apply(simp) |
10384 apply(simp) |
10385 apply(rule conjI) |
10385 apply(rule conjI) |
10401 done |
10401 done |
10402 |
10402 |
10403 lemma NOTLEFT_eqvt_coname: |
10403 lemma NOTLEFT_eqvt_coname: |
10404 fixes pi::"coname prm" |
10404 fixes pi::"coname prm" |
10405 shows "(pi\<bullet>(NOTLEFT (NOT B) X)) = NOTLEFT (NOT B) (pi\<bullet>X)" |
10405 shows "(pi\<bullet>(NOTLEFT (NOT B) X)) = NOTLEFT (NOT B) (pi\<bullet>X)" |
10406 apply(auto simp add: perm_set_def) |
10406 apply(auto simp add: perm_set_eq) |
10407 apply(rule_tac x="pi\<bullet>a" in exI) |
10407 apply(rule_tac x="pi\<bullet>a" in exI) |
10408 apply(rule_tac x="pi\<bullet>xb" in exI) |
10408 apply(rule_tac x="pi\<bullet>xb" in exI) |
10409 apply(rule_tac x="pi\<bullet>M" in exI) |
10409 apply(rule_tac x="pi\<bullet>M" in exI) |
10410 apply(simp) |
10410 apply(simp) |
10411 apply(rule conjI) |
10411 apply(rule conjI) |
10436 done |
10436 done |
10437 |
10437 |
10438 lemma ANDRIGHT_eqvt_name: |
10438 lemma ANDRIGHT_eqvt_name: |
10439 fixes pi::"name prm" |
10439 fixes pi::"name prm" |
10440 shows "(pi\<bullet>(ANDRIGHT (A AND B) X Y)) = ANDRIGHT (A AND B) (pi\<bullet>X) (pi\<bullet>Y)" |
10440 shows "(pi\<bullet>(ANDRIGHT (A AND B) X Y)) = ANDRIGHT (A AND B) (pi\<bullet>X) (pi\<bullet>Y)" |
10441 apply(auto simp add: perm_set_def) |
10441 apply(auto simp add: perm_set_eq) |
10442 apply(rule_tac x="pi\<bullet>c" in exI) |
10442 apply(rule_tac x="pi\<bullet>c" in exI) |
10443 apply(rule_tac x="pi\<bullet>a" in exI) |
10443 apply(rule_tac x="pi\<bullet>a" in exI) |
10444 apply(rule_tac x="pi\<bullet>b" in exI) |
10444 apply(rule_tac x="pi\<bullet>b" in exI) |
10445 apply(rule_tac x="pi\<bullet>M" in exI) |
10445 apply(rule_tac x="pi\<bullet>M" in exI) |
10446 apply(rule_tac x="pi\<bullet>N" in exI) |
10446 apply(rule_tac x="pi\<bullet>N" in exI) |
10471 done |
10471 done |
10472 |
10472 |
10473 lemma ANDRIGHT_eqvt_coname: |
10473 lemma ANDRIGHT_eqvt_coname: |
10474 fixes pi::"coname prm" |
10474 fixes pi::"coname prm" |
10475 shows "(pi\<bullet>(ANDRIGHT (A AND B) X Y)) = ANDRIGHT (A AND B) (pi\<bullet>X) (pi\<bullet>Y)" |
10475 shows "(pi\<bullet>(ANDRIGHT (A AND B) X Y)) = ANDRIGHT (A AND B) (pi\<bullet>X) (pi\<bullet>Y)" |
10476 apply(auto simp add: perm_set_def) |
10476 apply(auto simp add: perm_set_eq) |
10477 apply(rule_tac x="pi\<bullet>c" in exI) |
10477 apply(rule_tac x="pi\<bullet>c" in exI) |
10478 apply(rule_tac x="pi\<bullet>a" in exI) |
10478 apply(rule_tac x="pi\<bullet>a" in exI) |
10479 apply(rule_tac x="pi\<bullet>b" in exI) |
10479 apply(rule_tac x="pi\<bullet>b" in exI) |
10480 apply(rule_tac x="pi\<bullet>M" in exI) |
10480 apply(rule_tac x="pi\<bullet>M" in exI) |
10481 apply(rule_tac x="pi\<bullet>N" in exI) |
10481 apply(rule_tac x="pi\<bullet>N" in exI) |
10514 done |
10514 done |
10515 |
10515 |
10516 lemma ANDLEFT1_eqvt_name: |
10516 lemma ANDLEFT1_eqvt_name: |
10517 fixes pi::"name prm" |
10517 fixes pi::"name prm" |
10518 shows "(pi\<bullet>(ANDLEFT1 (A AND B) X)) = ANDLEFT1 (A AND B) (pi\<bullet>X)" |
10518 shows "(pi\<bullet>(ANDLEFT1 (A AND B) X)) = ANDLEFT1 (A AND B) (pi\<bullet>X)" |
10519 apply(auto simp add: perm_set_def) |
10519 apply(auto simp add: perm_set_eq) |
10520 apply(rule_tac x="pi\<bullet>xb" in exI) |
10520 apply(rule_tac x="pi\<bullet>xb" in exI) |
10521 apply(rule_tac x="pi\<bullet>y" in exI) |
10521 apply(rule_tac x="pi\<bullet>y" in exI) |
10522 apply(rule_tac x="pi\<bullet>M" in exI) |
10522 apply(rule_tac x="pi\<bullet>M" in exI) |
10523 apply(simp) |
10523 apply(simp) |
10524 apply(rule conjI) |
10524 apply(rule conjI) |
10540 done |
10540 done |
10541 |
10541 |
10542 lemma ANDLEFT1_eqvt_coname: |
10542 lemma ANDLEFT1_eqvt_coname: |
10543 fixes pi::"coname prm" |
10543 fixes pi::"coname prm" |
10544 shows "(pi\<bullet>(ANDLEFT1 (A AND B) X)) = ANDLEFT1 (A AND B) (pi\<bullet>X)" |
10544 shows "(pi\<bullet>(ANDLEFT1 (A AND B) X)) = ANDLEFT1 (A AND B) (pi\<bullet>X)" |
10545 apply(auto simp add: perm_set_def) |
10545 apply(auto simp add: perm_set_eq) |
10546 apply(rule_tac x="pi\<bullet>xb" in exI) |
10546 apply(rule_tac x="pi\<bullet>xb" in exI) |
10547 apply(rule_tac x="pi\<bullet>y" in exI) |
10547 apply(rule_tac x="pi\<bullet>y" in exI) |
10548 apply(rule_tac x="pi\<bullet>M" in exI) |
10548 apply(rule_tac x="pi\<bullet>M" in exI) |
10549 apply(simp) |
10549 apply(simp) |
10550 apply(rule conjI) |
10550 apply(rule conjI) |
10574 done |
10574 done |
10575 |
10575 |
10576 lemma ANDLEFT2_eqvt_name: |
10576 lemma ANDLEFT2_eqvt_name: |
10577 fixes pi::"name prm" |
10577 fixes pi::"name prm" |
10578 shows "(pi\<bullet>(ANDLEFT2 (A AND B) X)) = ANDLEFT2 (A AND B) (pi\<bullet>X)" |
10578 shows "(pi\<bullet>(ANDLEFT2 (A AND B) X)) = ANDLEFT2 (A AND B) (pi\<bullet>X)" |
10579 apply(auto simp add: perm_set_def) |
10579 apply(auto simp add: perm_set_eq) |
10580 apply(rule_tac x="pi\<bullet>xb" in exI) |
10580 apply(rule_tac x="pi\<bullet>xb" in exI) |
10581 apply(rule_tac x="pi\<bullet>y" in exI) |
10581 apply(rule_tac x="pi\<bullet>y" in exI) |
10582 apply(rule_tac x="pi\<bullet>M" in exI) |
10582 apply(rule_tac x="pi\<bullet>M" in exI) |
10583 apply(simp) |
10583 apply(simp) |
10584 apply(rule conjI) |
10584 apply(rule conjI) |
10600 done |
10600 done |
10601 |
10601 |
10602 lemma ANDLEFT2_eqvt_coname: |
10602 lemma ANDLEFT2_eqvt_coname: |
10603 fixes pi::"coname prm" |
10603 fixes pi::"coname prm" |
10604 shows "(pi\<bullet>(ANDLEFT2 (A AND B) X)) = ANDLEFT2 (A AND B) (pi\<bullet>X)" |
10604 shows "(pi\<bullet>(ANDLEFT2 (A AND B) X)) = ANDLEFT2 (A AND B) (pi\<bullet>X)" |
10605 apply(auto simp add: perm_set_def) |
10605 apply(auto simp add: perm_set_eq) |
10606 apply(rule_tac x="pi\<bullet>xb" in exI) |
10606 apply(rule_tac x="pi\<bullet>xb" in exI) |
10607 apply(rule_tac x="pi\<bullet>y" in exI) |
10607 apply(rule_tac x="pi\<bullet>y" in exI) |
10608 apply(rule_tac x="pi\<bullet>M" in exI) |
10608 apply(rule_tac x="pi\<bullet>M" in exI) |
10609 apply(simp) |
10609 apply(simp) |
10610 apply(rule conjI) |
10610 apply(rule conjI) |
10635 done |
10635 done |
10636 |
10636 |
10637 lemma ORLEFT_eqvt_name: |
10637 lemma ORLEFT_eqvt_name: |
10638 fixes pi::"name prm" |
10638 fixes pi::"name prm" |
10639 shows "(pi\<bullet>(ORLEFT (A OR B) X Y)) = ORLEFT (A OR B) (pi\<bullet>X) (pi\<bullet>Y)" |
10639 shows "(pi\<bullet>(ORLEFT (A OR B) X Y)) = ORLEFT (A OR B) (pi\<bullet>X) (pi\<bullet>Y)" |
10640 apply(auto simp add: perm_set_def) |
10640 apply(auto simp add: perm_set_eq) |
10641 apply(rule_tac x="pi\<bullet>xb" in exI) |
10641 apply(rule_tac x="pi\<bullet>xb" in exI) |
10642 apply(rule_tac x="pi\<bullet>y" in exI) |
10642 apply(rule_tac x="pi\<bullet>y" in exI) |
10643 apply(rule_tac x="pi\<bullet>z" in exI) |
10643 apply(rule_tac x="pi\<bullet>z" in exI) |
10644 apply(rule_tac x="pi\<bullet>M" in exI) |
10644 apply(rule_tac x="pi\<bullet>M" in exI) |
10645 apply(rule_tac x="pi\<bullet>N" in exI) |
10645 apply(rule_tac x="pi\<bullet>N" in exI) |
10670 done |
10670 done |
10671 |
10671 |
10672 lemma ORLEFT_eqvt_coname: |
10672 lemma ORLEFT_eqvt_coname: |
10673 fixes pi::"coname prm" |
10673 fixes pi::"coname prm" |
10674 shows "(pi\<bullet>(ORLEFT (A OR B) X Y)) = ORLEFT (A OR B) (pi\<bullet>X) (pi\<bullet>Y)" |
10674 shows "(pi\<bullet>(ORLEFT (A OR B) X Y)) = ORLEFT (A OR B) (pi\<bullet>X) (pi\<bullet>Y)" |
10675 apply(auto simp add: perm_set_def) |
10675 apply(auto simp add: perm_set_eq) |
10676 apply(rule_tac x="pi\<bullet>xb" in exI) |
10676 apply(rule_tac x="pi\<bullet>xb" in exI) |
10677 apply(rule_tac x="pi\<bullet>y" in exI) |
10677 apply(rule_tac x="pi\<bullet>y" in exI) |
10678 apply(rule_tac x="pi\<bullet>z" in exI) |
10678 apply(rule_tac x="pi\<bullet>z" in exI) |
10679 apply(rule_tac x="pi\<bullet>M" in exI) |
10679 apply(rule_tac x="pi\<bullet>M" in exI) |
10680 apply(rule_tac x="pi\<bullet>N" in exI) |
10680 apply(rule_tac x="pi\<bullet>N" in exI) |
10713 done |
10713 done |
10714 |
10714 |
10715 lemma ORRIGHT1_eqvt_name: |
10715 lemma ORRIGHT1_eqvt_name: |
10716 fixes pi::"name prm" |
10716 fixes pi::"name prm" |
10717 shows "(pi\<bullet>(ORRIGHT1 (A OR B) X)) = ORRIGHT1 (A OR B) (pi\<bullet>X)" |
10717 shows "(pi\<bullet>(ORRIGHT1 (A OR B) X)) = ORRIGHT1 (A OR B) (pi\<bullet>X)" |
10718 apply(auto simp add: perm_set_def) |
10718 apply(auto simp add: perm_set_eq) |
10719 apply(rule_tac x="pi\<bullet>a" in exI) |
10719 apply(rule_tac x="pi\<bullet>a" in exI) |
10720 apply(rule_tac x="pi\<bullet>b" in exI) |
10720 apply(rule_tac x="pi\<bullet>b" in exI) |
10721 apply(rule_tac x="pi\<bullet>M" in exI) |
10721 apply(rule_tac x="pi\<bullet>M" in exI) |
10722 apply(simp) |
10722 apply(simp) |
10723 apply(rule conjI) |
10723 apply(rule conjI) |
10739 done |
10739 done |
10740 |
10740 |
10741 lemma ORRIGHT1_eqvt_coname: |
10741 lemma ORRIGHT1_eqvt_coname: |
10742 fixes pi::"coname prm" |
10742 fixes pi::"coname prm" |
10743 shows "(pi\<bullet>(ORRIGHT1 (A OR B) X)) = ORRIGHT1 (A OR B) (pi\<bullet>X)" |
10743 shows "(pi\<bullet>(ORRIGHT1 (A OR B) X)) = ORRIGHT1 (A OR B) (pi\<bullet>X)" |
10744 apply(auto simp add: perm_set_def) |
10744 apply(auto simp add: perm_set_eq) |
10745 apply(rule_tac x="pi\<bullet>a" in exI) |
10745 apply(rule_tac x="pi\<bullet>a" in exI) |
10746 apply(rule_tac x="pi\<bullet>b" in exI) |
10746 apply(rule_tac x="pi\<bullet>b" in exI) |
10747 apply(rule_tac x="pi\<bullet>M" in exI) |
10747 apply(rule_tac x="pi\<bullet>M" in exI) |
10748 apply(simp) |
10748 apply(simp) |
10749 apply(rule conjI) |
10749 apply(rule conjI) |
10773 done |
10773 done |
10774 |
10774 |
10775 lemma ORRIGHT2_eqvt_name: |
10775 lemma ORRIGHT2_eqvt_name: |
10776 fixes pi::"name prm" |
10776 fixes pi::"name prm" |
10777 shows "(pi\<bullet>(ORRIGHT2 (A OR B) X)) = ORRIGHT2 (A OR B) (pi\<bullet>X)" |
10777 shows "(pi\<bullet>(ORRIGHT2 (A OR B) X)) = ORRIGHT2 (A OR B) (pi\<bullet>X)" |
10778 apply(auto simp add: perm_set_def) |
10778 apply(auto simp add: perm_set_eq) |
10779 apply(rule_tac x="pi\<bullet>a" in exI) |
10779 apply(rule_tac x="pi\<bullet>a" in exI) |
10780 apply(rule_tac x="pi\<bullet>b" in exI) |
10780 apply(rule_tac x="pi\<bullet>b" in exI) |
10781 apply(rule_tac x="pi\<bullet>M" in exI) |
10781 apply(rule_tac x="pi\<bullet>M" in exI) |
10782 apply(simp) |
10782 apply(simp) |
10783 apply(rule conjI) |
10783 apply(rule conjI) |
10799 done |
10799 done |
10800 |
10800 |
10801 lemma ORRIGHT2_eqvt_coname: |
10801 lemma ORRIGHT2_eqvt_coname: |
10802 fixes pi::"coname prm" |
10802 fixes pi::"coname prm" |
10803 shows "(pi\<bullet>(ORRIGHT2 (A OR B) X)) = ORRIGHT2 (A OR B) (pi\<bullet>X)" |
10803 shows "(pi\<bullet>(ORRIGHT2 (A OR B) X)) = ORRIGHT2 (A OR B) (pi\<bullet>X)" |
10804 apply(auto simp add: perm_set_def) |
10804 apply(auto simp add: perm_set_eq) |
10805 apply(rule_tac x="pi\<bullet>a" in exI) |
10805 apply(rule_tac x="pi\<bullet>a" in exI) |
10806 apply(rule_tac x="pi\<bullet>b" in exI) |
10806 apply(rule_tac x="pi\<bullet>b" in exI) |
10807 apply(rule_tac x="pi\<bullet>M" in exI) |
10807 apply(rule_tac x="pi\<bullet>M" in exI) |
10808 apply(simp) |
10808 apply(simp) |
10809 apply(rule conjI) |
10809 apply(rule conjI) |
10836 done |
10836 done |
10837 |
10837 |
10838 lemma IMPRIGHT_eqvt_name: |
10838 lemma IMPRIGHT_eqvt_name: |
10839 fixes pi::"name prm" |
10839 fixes pi::"name prm" |
10840 shows "(pi\<bullet>(IMPRIGHT (A IMP B) X Y Z U)) = IMPRIGHT (A IMP B) (pi\<bullet>X) (pi\<bullet>Y) (pi\<bullet>Z) (pi\<bullet>U)" |
10840 shows "(pi\<bullet>(IMPRIGHT (A IMP B) X Y Z U)) = IMPRIGHT (A IMP B) (pi\<bullet>X) (pi\<bullet>Y) (pi\<bullet>Z) (pi\<bullet>U)" |
10841 apply(auto simp add: perm_set_def) |
10841 apply(auto simp add: perm_set_eq) |
10842 apply(rule_tac x="pi\<bullet>xb" in exI) |
10842 apply(rule_tac x="pi\<bullet>xb" in exI) |
10843 apply(rule_tac x="pi\<bullet>a" in exI) |
10843 apply(rule_tac x="pi\<bullet>a" in exI) |
10844 apply(rule_tac x="pi\<bullet>b" in exI) |
10844 apply(rule_tac x="pi\<bullet>b" in exI) |
10845 apply(rule_tac x="pi\<bullet>M" in exI) |
10845 apply(rule_tac x="pi\<bullet>M" in exI) |
10846 apply(simp) |
10846 apply(simp) |
10896 done |
10896 done |
10897 |
10897 |
10898 lemma IMPRIGHT_eqvt_coname: |
10898 lemma IMPRIGHT_eqvt_coname: |
10899 fixes pi::"coname prm" |
10899 fixes pi::"coname prm" |
10900 shows "(pi\<bullet>(IMPRIGHT (A IMP B) X Y Z U)) = IMPRIGHT (A IMP B) (pi\<bullet>X) (pi\<bullet>Y) (pi\<bullet>Z) (pi\<bullet>U)" |
10900 shows "(pi\<bullet>(IMPRIGHT (A IMP B) X Y Z U)) = IMPRIGHT (A IMP B) (pi\<bullet>X) (pi\<bullet>Y) (pi\<bullet>Z) (pi\<bullet>U)" |
10901 apply(auto simp add: perm_set_def) |
10901 apply(auto simp add: perm_set_eq) |
10902 apply(rule_tac x="pi\<bullet>xb" in exI) |
10902 apply(rule_tac x="pi\<bullet>xb" in exI) |
10903 apply(rule_tac x="pi\<bullet>a" in exI) |
10903 apply(rule_tac x="pi\<bullet>a" in exI) |
10904 apply(rule_tac x="pi\<bullet>b" in exI) |
10904 apply(rule_tac x="pi\<bullet>b" in exI) |
10905 apply(rule_tac x="pi\<bullet>M" in exI) |
10905 apply(rule_tac x="pi\<bullet>M" in exI) |
10906 apply(simp) |
10906 apply(simp) |
10964 done |
10964 done |
10965 |
10965 |
10966 lemma IMPLEFT_eqvt_name: |
10966 lemma IMPLEFT_eqvt_name: |
10967 fixes pi::"name prm" |
10967 fixes pi::"name prm" |
10968 shows "(pi\<bullet>(IMPLEFT (A IMP B) X Y)) = IMPLEFT (A IMP B) (pi\<bullet>X) (pi\<bullet>Y)" |
10968 shows "(pi\<bullet>(IMPLEFT (A IMP B) X Y)) = IMPLEFT (A IMP B) (pi\<bullet>X) (pi\<bullet>Y)" |
10969 apply(auto simp add: perm_set_def) |
10969 apply(auto simp add: perm_set_eq) |
10970 apply(rule_tac x="pi\<bullet>xb" in exI) |
10970 apply(rule_tac x="pi\<bullet>xb" in exI) |
10971 apply(rule_tac x="pi\<bullet>a" in exI) |
10971 apply(rule_tac x="pi\<bullet>a" in exI) |
10972 apply(rule_tac x="pi\<bullet>y" in exI) |
10972 apply(rule_tac x="pi\<bullet>y" in exI) |
10973 apply(rule_tac x="pi\<bullet>M" in exI) |
10973 apply(rule_tac x="pi\<bullet>M" in exI) |
10974 apply(rule_tac x="pi\<bullet>N" in exI) |
10974 apply(rule_tac x="pi\<bullet>N" in exI) |
10999 done |
10999 done |
11000 |
11000 |
11001 lemma IMPLEFT_eqvt_coname: |
11001 lemma IMPLEFT_eqvt_coname: |
11002 fixes pi::"coname prm" |
11002 fixes pi::"coname prm" |
11003 shows "(pi\<bullet>(IMPLEFT (A IMP B) X Y)) = IMPLEFT (A IMP B) (pi\<bullet>X) (pi\<bullet>Y)" |
11003 shows "(pi\<bullet>(IMPLEFT (A IMP B) X Y)) = IMPLEFT (A IMP B) (pi\<bullet>X) (pi\<bullet>Y)" |
11004 apply(auto simp add: perm_set_def) |
11004 apply(auto simp add: perm_set_eq) |
11005 apply(rule_tac x="pi\<bullet>xb" in exI) |
11005 apply(rule_tac x="pi\<bullet>xb" in exI) |
11006 apply(rule_tac x="pi\<bullet>a" in exI) |
11006 apply(rule_tac x="pi\<bullet>a" in exI) |
11007 apply(rule_tac x="pi\<bullet>y" in exI) |
11007 apply(rule_tac x="pi\<bullet>y" in exI) |
11008 apply(rule_tac x="pi\<bullet>M" in exI) |
11008 apply(rule_tac x="pi\<bullet>M" in exI) |
11009 apply(rule_tac x="pi\<bullet>N" in exI) |
11009 apply(rule_tac x="pi\<bullet>N" in exI) |
11096 |
11096 |
11097 lemma test2: |
11097 lemma test2: |
11098 shows "x\<in>(X\<inter>Y) = (x\<in>X \<and> x\<in>Y)" |
11098 shows "x\<in>(X\<inter>Y) = (x\<in>X \<and> x\<in>Y)" |
11099 by blast |
11099 by blast |
11100 |
11100 |
11101 lemma pt_Collect_eqvt: |
|
11102 fixes pi::"'x prm" |
|
11103 assumes pt: "pt TYPE('a) TYPE('x)" |
|
11104 and at: "at TYPE('x)" |
|
11105 shows "pi\<bullet>{x::'a. P x} = {x. P ((rev pi)\<bullet>x)}" |
|
11106 apply(auto simp add: perm_set_def pt_rev_pi[OF pt, OF at]) |
|
11107 apply(rule_tac x="(rev pi)\<bullet>x" in exI) |
|
11108 apply(simp add: pt_pi_rev[OF pt, OF at]) |
|
11109 done |
|
11110 |
|
11111 lemma big_inter_eqvt: |
11101 lemma big_inter_eqvt: |
11112 fixes pi1::"name prm" |
11102 fixes pi1::"name prm" |
11113 and X::"('a::pt_name) set set" |
11103 and X::"('a::pt_name) set set" |
11114 and pi2::"coname prm" |
11104 and pi2::"coname prm" |
11115 and Y::"('b::pt_coname) set set" |
11105 and Y::"('b::pt_coname) set set" |
11116 shows "(pi1\<bullet>(\<Inter> X)) = \<Inter> (pi1\<bullet>X)" |
11106 shows "(pi1\<bullet>(\<Inter> X)) = \<Inter> (pi1\<bullet>X)" |
11117 and "(pi2\<bullet>(\<Inter> Y)) = \<Inter> (pi2\<bullet>Y)" |
11107 and "(pi2\<bullet>(\<Inter> Y)) = \<Inter> (pi2\<bullet>Y)" |
11118 apply(auto simp add: perm_set_def) |
11108 apply(auto simp add: perm_set_eq) |
11119 apply(rule_tac x="(rev pi1)\<bullet>x" in exI) |
11109 apply(rule_tac x="(rev pi1)\<bullet>x" in exI) |
11120 apply(perm_simp) |
11110 apply(perm_simp) |
11121 apply(rule ballI) |
11111 apply(rule ballI) |
11122 apply(drule_tac x="pi1\<bullet>xa" in spec) |
11112 apply(drule_tac x="pi1\<bullet>xa" in spec) |
11123 apply(auto) |
11113 apply(auto) |
11148 and pi2::"coname prm" |
11138 and pi2::"coname prm" |
11149 and g::"'b set \<Rightarrow> ('b::pt_coname) set" |
11139 and g::"'b set \<Rightarrow> ('b::pt_coname) set" |
11150 shows "pi1\<bullet>(lfp f) = lfp (pi1\<bullet>f)" |
11140 shows "pi1\<bullet>(lfp f) = lfp (pi1\<bullet>f)" |
11151 and "pi2\<bullet>(lfp g) = lfp (pi2\<bullet>g)" |
11141 and "pi2\<bullet>(lfp g) = lfp (pi2\<bullet>g)" |
11152 apply(simp add: lfp_def) |
11142 apply(simp add: lfp_def) |
11153 apply(simp add: Inf_set_def) |
11143 apply(simp add: Inf_set_eq) |
11154 apply(simp add: big_inter_eqvt) |
11144 apply(simp add: big_inter_eqvt) |
11155 apply(simp add: pt_Collect_eqvt[OF pt_name_inst, OF at_name_inst]) |
11145 apply(simp add: pt_Collect_eqvt[OF pt_name_inst, OF at_name_inst]) |
11156 apply(subgoal_tac "{u. (pi1\<bullet>f) u \<subseteq> u} = {u. ((rev pi1)\<bullet>((pi1\<bullet>f) u)) \<subseteq> ((rev pi1)\<bullet>u)}") |
11146 apply(subgoal_tac "{u. (pi1\<bullet>f) u \<subseteq> u} = {u. ((rev pi1)\<bullet>((pi1\<bullet>f) u)) \<subseteq> ((rev pi1)\<bullet>u)}") |
11157 apply(perm_simp) |
11147 apply(perm_simp) |
11158 apply(rule Collect_cong) |
11148 apply(rule Collect_cong) |
11160 apply(rule subseteq_eqvt(1)[THEN iffD1]) |
11150 apply(rule subseteq_eqvt(1)[THEN iffD1]) |
11161 apply(simp add: perm_bool) |
11151 apply(simp add: perm_bool) |
11162 apply(drule subseteq_eqvt(1)[THEN iffD2]) |
11152 apply(drule subseteq_eqvt(1)[THEN iffD2]) |
11163 apply(simp add: perm_bool) |
11153 apply(simp add: perm_bool) |
11164 apply(simp add: lfp_def) |
11154 apply(simp add: lfp_def) |
11165 apply(simp add: Inf_set_def) |
11155 apply(simp add: Inf_set_eq) |
11166 apply(simp add: big_inter_eqvt) |
11156 apply(simp add: big_inter_eqvt) |
11167 apply(simp add: pt_Collect_eqvt[OF pt_coname_inst, OF at_coname_inst]) |
11157 apply(simp add: pt_Collect_eqvt[OF pt_coname_inst, OF at_coname_inst]) |
11168 apply(subgoal_tac "{u. (pi2\<bullet>g) u \<subseteq> u} = {u. ((rev pi2)\<bullet>((pi2\<bullet>g) u)) \<subseteq> ((rev pi2)\<bullet>u)}") |
11158 apply(subgoal_tac "{u. (pi2\<bullet>g) u \<subseteq> u} = {u. ((rev pi2)\<bullet>((pi2\<bullet>g) u)) \<subseteq> ((rev pi2)\<bullet>u)}") |
11169 apply(perm_simp) |
11159 apply(perm_simp) |
11170 apply(rule Collect_cong) |
11160 apply(rule Collect_cong) |
11343 |
11333 |
11344 lemma BINDING_eqvt_name: |
11334 lemma BINDING_eqvt_name: |
11345 fixes pi::"name prm" |
11335 fixes pi::"name prm" |
11346 shows "(pi\<bullet>(BINDINGn B X)) = BINDINGn B (pi\<bullet>X)" |
11336 shows "(pi\<bullet>(BINDINGn B X)) = BINDINGn B (pi\<bullet>X)" |
11347 and "(pi\<bullet>(BINDINGc B Y)) = BINDINGc B (pi\<bullet>Y)" |
11337 and "(pi\<bullet>(BINDINGc B Y)) = BINDINGc B (pi\<bullet>Y)" |
11348 apply(auto simp add: BINDINGn_def BINDINGc_def perm_set_def) |
11338 apply(auto simp add: BINDINGn_def BINDINGc_def perm_set_eq) |
11349 apply(rule_tac x="pi\<bullet>xb" in exI) |
11339 apply(rule_tac x="pi\<bullet>xb" in exI) |
11350 apply(rule_tac x="pi\<bullet>M" in exI) |
11340 apply(rule_tac x="pi\<bullet>M" in exI) |
11351 apply(simp) |
11341 apply(simp) |
11352 apply(auto)[1] |
11342 apply(auto)[1] |
11353 apply(drule_tac x="(rev pi)\<bullet>a" in spec) |
11343 apply(drule_tac x="(rev pi)\<bullet>a" in spec) |
11398 |
11388 |
11399 lemma BINDING_eqvt_coname: |
11389 lemma BINDING_eqvt_coname: |
11400 fixes pi::"coname prm" |
11390 fixes pi::"coname prm" |
11401 shows "(pi\<bullet>(BINDINGn B X)) = BINDINGn B (pi\<bullet>X)" |
11391 shows "(pi\<bullet>(BINDINGn B X)) = BINDINGn B (pi\<bullet>X)" |
11402 and "(pi\<bullet>(BINDINGc B Y)) = BINDINGc B (pi\<bullet>Y)" |
11392 and "(pi\<bullet>(BINDINGc B Y)) = BINDINGc B (pi\<bullet>Y)" |
11403 apply(auto simp add: BINDINGn_def BINDINGc_def perm_set_def) |
11393 apply(auto simp add: BINDINGn_def BINDINGc_def perm_set_eq) |
11404 apply(rule_tac x="pi\<bullet>xb" in exI) |
11394 apply(rule_tac x="pi\<bullet>xb" in exI) |
11405 apply(rule_tac x="pi\<bullet>M" in exI) |
11395 apply(rule_tac x="pi\<bullet>M" in exI) |
11406 apply(simp) |
11396 apply(simp) |
11407 apply(auto)[1] |
11397 apply(auto)[1] |
11408 apply(drule_tac x="(rev pi)\<bullet>a" in spec) |
11398 apply(drule_tac x="(rev pi)\<bullet>a" in spec) |
11458 proof (nominal_induct B rule: ty.induct) |
11448 proof (nominal_induct B rule: ty.induct) |
11459 case (PR X) |
11449 case (PR X) |
11460 { case 1 show ?case |
11450 { case 1 show ?case |
11461 apply - |
11451 apply - |
11462 apply(simp add: lfp_eqvt) |
11452 apply(simp add: lfp_eqvt) |
11463 apply(simp add: perm_fun_def) |
11453 apply(simp add: perm_fun_def [where 'a="ntrm \<Rightarrow> bool"]) |
11464 apply(simp add: union_eqvt AXIOMS_eqvt_name BINDING_eqvt_name) |
11454 apply(simp add: union_eqvt AXIOMS_eqvt_name BINDING_eqvt_name) |
11465 apply(perm_simp) |
11455 apply(perm_simp) |
11466 done |
11456 done |
11467 next |
11457 next |
11468 case 2 show ?case |
11458 case 2 show ?case |
11469 apply - |
11459 apply - |
11470 apply(simp only: NEGc_simps) |
11460 apply(simp only: NEGc_simps) |
11471 apply(simp add: union_eqvt AXIOMS_eqvt_name BINDING_eqvt_name) |
11461 apply(simp add: union_eqvt AXIOMS_eqvt_name BINDING_eqvt_name) |
11472 apply(simp add: lfp_eqvt) |
11462 apply(simp add: lfp_eqvt) |
11473 apply(simp add: comp_def) |
11463 apply(simp add: comp_def) |
11474 apply(simp add: perm_fun_def) |
11464 apply(simp add: perm_fun_def [where 'a="ntrm \<Rightarrow> bool"]) |
11475 apply(simp add: union_eqvt AXIOMS_eqvt_name BINDING_eqvt_name) |
11465 apply(simp add: union_eqvt AXIOMS_eqvt_name BINDING_eqvt_name) |
11476 apply(perm_simp) |
11466 apply(perm_simp) |
11477 done |
11467 done |
11478 } |
11468 } |
11479 next |
11469 next |
11482 have ih2: "pi\<bullet>(\<parallel><B>\<parallel>) = (\<parallel><B>\<parallel>)" by fact |
11472 have ih2: "pi\<bullet>(\<parallel><B>\<parallel>) = (\<parallel><B>\<parallel>)" by fact |
11483 have g: "pi\<bullet>(\<parallel>(NOT B)\<parallel>) = (\<parallel>(NOT B)\<parallel>)" |
11473 have g: "pi\<bullet>(\<parallel>(NOT B)\<parallel>) = (\<parallel>(NOT B)\<parallel>)" |
11484 apply - |
11474 apply - |
11485 apply(simp only: lfp_eqvt) |
11475 apply(simp only: lfp_eqvt) |
11486 apply(simp only: comp_def) |
11476 apply(simp only: comp_def) |
11487 apply(simp only: perm_fun_def) |
11477 apply(simp only: perm_fun_def [where 'a="ntrm \<Rightarrow> bool"]) |
11488 apply(simp only: NEGc.simps NEGn.simps) |
11478 apply(simp only: NEGc.simps NEGn.simps) |
11489 apply(simp only: union_eqvt AXIOMS_eqvt_name BINDING_eqvt_name NOTRIGHT_eqvt_name NOTLEFT_eqvt_name) |
11479 apply(simp only: union_eqvt AXIOMS_eqvt_name BINDING_eqvt_name NOTRIGHT_eqvt_name NOTLEFT_eqvt_name) |
11490 apply(perm_simp add: ih1 ih2) |
11480 apply(perm_simp add: ih1 ih2) |
11491 done |
11481 done |
11492 { case 1 show ?case by (rule g) |
11482 { case 1 show ?case by (rule g) |
11502 have ih4: "pi\<bullet>(\<parallel><B>\<parallel>) = (\<parallel><B>\<parallel>)" by fact |
11492 have ih4: "pi\<bullet>(\<parallel><B>\<parallel>) = (\<parallel><B>\<parallel>)" by fact |
11503 have g: "pi\<bullet>(\<parallel>(A AND B)\<parallel>) = (\<parallel>(A AND B)\<parallel>)" |
11493 have g: "pi\<bullet>(\<parallel>(A AND B)\<parallel>) = (\<parallel>(A AND B)\<parallel>)" |
11504 apply - |
11494 apply - |
11505 apply(simp only: lfp_eqvt) |
11495 apply(simp only: lfp_eqvt) |
11506 apply(simp only: comp_def) |
11496 apply(simp only: comp_def) |
11507 apply(simp only: perm_fun_def) |
11497 apply(simp only: perm_fun_def [where 'a="ntrm \<Rightarrow> bool"]) |
11508 apply(simp only: NEGc.simps NEGn.simps) |
11498 apply(simp only: NEGc.simps NEGn.simps) |
11509 apply(simp only: union_eqvt AXIOMS_eqvt_name BINDING_eqvt_name ANDRIGHT_eqvt_name |
11499 apply(simp only: union_eqvt AXIOMS_eqvt_name BINDING_eqvt_name ANDRIGHT_eqvt_name |
11510 ANDLEFT2_eqvt_name ANDLEFT1_eqvt_name) |
11500 ANDLEFT2_eqvt_name ANDLEFT1_eqvt_name) |
11511 apply(perm_simp add: ih1 ih2 ih3 ih4) |
11501 apply(perm_simp add: ih1 ih2 ih3 ih4) |
11512 done |
11502 done |
11524 have ih4: "pi\<bullet>(\<parallel><B>\<parallel>) = (\<parallel><B>\<parallel>)" by fact |
11514 have ih4: "pi\<bullet>(\<parallel><B>\<parallel>) = (\<parallel><B>\<parallel>)" by fact |
11525 have g: "pi\<bullet>(\<parallel>(A OR B)\<parallel>) = (\<parallel>(A OR B)\<parallel>)" |
11515 have g: "pi\<bullet>(\<parallel>(A OR B)\<parallel>) = (\<parallel>(A OR B)\<parallel>)" |
11526 apply - |
11516 apply - |
11527 apply(simp only: lfp_eqvt) |
11517 apply(simp only: lfp_eqvt) |
11528 apply(simp only: comp_def) |
11518 apply(simp only: comp_def) |
11529 apply(simp only: perm_fun_def) |
11519 apply(simp only: perm_fun_def [where 'a="ntrm \<Rightarrow> bool"]) |
11530 apply(simp only: NEGc.simps NEGn.simps) |
11520 apply(simp only: NEGc.simps NEGn.simps) |
11531 apply(simp only: union_eqvt AXIOMS_eqvt_name BINDING_eqvt_name ORRIGHT1_eqvt_name |
11521 apply(simp only: union_eqvt AXIOMS_eqvt_name BINDING_eqvt_name ORRIGHT1_eqvt_name |
11532 ORRIGHT2_eqvt_name ORLEFT_eqvt_name) |
11522 ORRIGHT2_eqvt_name ORLEFT_eqvt_name) |
11533 apply(perm_simp add: ih1 ih2 ih3 ih4) |
11523 apply(perm_simp add: ih1 ih2 ih3 ih4) |
11534 done |
11524 done |
11546 have ih4: "pi\<bullet>(\<parallel><B>\<parallel>) = (\<parallel><B>\<parallel>)" by fact |
11536 have ih4: "pi\<bullet>(\<parallel><B>\<parallel>) = (\<parallel><B>\<parallel>)" by fact |
11547 have g: "pi\<bullet>(\<parallel>(A IMP B)\<parallel>) = (\<parallel>(A IMP B)\<parallel>)" |
11537 have g: "pi\<bullet>(\<parallel>(A IMP B)\<parallel>) = (\<parallel>(A IMP B)\<parallel>)" |
11548 apply - |
11538 apply - |
11549 apply(simp only: lfp_eqvt) |
11539 apply(simp only: lfp_eqvt) |
11550 apply(simp only: comp_def) |
11540 apply(simp only: comp_def) |
11551 apply(simp only: perm_fun_def) |
11541 apply(simp only: perm_fun_def [where 'a="ntrm \<Rightarrow> bool"]) |
11552 apply(simp only: NEGc.simps NEGn.simps) |
11542 apply(simp only: NEGc.simps NEGn.simps) |
11553 apply(simp only: union_eqvt AXIOMS_eqvt_name BINDING_eqvt_name IMPRIGHT_eqvt_name IMPLEFT_eqvt_name) |
11543 apply(simp only: union_eqvt AXIOMS_eqvt_name BINDING_eqvt_name IMPRIGHT_eqvt_name IMPLEFT_eqvt_name) |
11554 apply(perm_simp add: ih1 ih2 ih3 ih4) |
11544 apply(perm_simp add: ih1 ih2 ih3 ih4) |
11555 done |
11545 done |
11556 { case 1 show ?case by (rule g) |
11546 { case 1 show ?case by (rule g) |
11568 proof (nominal_induct B rule: ty.induct) |
11558 proof (nominal_induct B rule: ty.induct) |
11569 case (PR X) |
11559 case (PR X) |
11570 { case 1 show ?case |
11560 { case 1 show ?case |
11571 apply - |
11561 apply - |
11572 apply(simp add: lfp_eqvt) |
11562 apply(simp add: lfp_eqvt) |
11573 apply(simp add: perm_fun_def) |
11563 apply(simp add: perm_fun_def [where 'a="ntrm \<Rightarrow> bool"]) |
11574 apply(simp add: union_eqvt AXIOMS_eqvt_coname BINDING_eqvt_coname) |
11564 apply(simp add: union_eqvt AXIOMS_eqvt_coname BINDING_eqvt_coname) |
11575 apply(perm_simp) |
11565 apply(perm_simp) |
11576 done |
11566 done |
11577 next |
11567 next |
11578 case 2 show ?case |
11568 case 2 show ?case |
11579 apply - |
11569 apply - |
11580 apply(simp only: NEGc_simps) |
11570 apply(simp only: NEGc_simps) |
11581 apply(simp add: union_eqvt AXIOMS_eqvt_coname BINDING_eqvt_coname) |
11571 apply(simp add: union_eqvt AXIOMS_eqvt_coname BINDING_eqvt_coname) |
11582 apply(simp add: lfp_eqvt) |
11572 apply(simp add: lfp_eqvt) |
11583 apply(simp add: comp_def) |
11573 apply(simp add: comp_def) |
11584 apply(simp add: perm_fun_def) |
11574 apply(simp add: perm_fun_def [where 'a="ntrm \<Rightarrow> bool"]) |
11585 apply(simp add: union_eqvt AXIOMS_eqvt_coname BINDING_eqvt_coname) |
11575 apply(simp add: union_eqvt AXIOMS_eqvt_coname BINDING_eqvt_coname) |
11586 apply(perm_simp) |
11576 apply(perm_simp) |
11587 done |
11577 done |
11588 } |
11578 } |
11589 next |
11579 next |
11592 have ih2: "pi\<bullet>(\<parallel><B>\<parallel>) = (\<parallel><B>\<parallel>)" by fact |
11582 have ih2: "pi\<bullet>(\<parallel><B>\<parallel>) = (\<parallel><B>\<parallel>)" by fact |
11593 have g: "pi\<bullet>(\<parallel>(NOT B)\<parallel>) = (\<parallel>(NOT B)\<parallel>)" |
11583 have g: "pi\<bullet>(\<parallel>(NOT B)\<parallel>) = (\<parallel>(NOT B)\<parallel>)" |
11594 apply - |
11584 apply - |
11595 apply(simp only: lfp_eqvt) |
11585 apply(simp only: lfp_eqvt) |
11596 apply(simp only: comp_def) |
11586 apply(simp only: comp_def) |
11597 apply(simp only: perm_fun_def) |
11587 apply(simp only: perm_fun_def [where 'a="ntrm \<Rightarrow> bool"]) |
11598 apply(simp only: NEGc.simps NEGn.simps) |
11588 apply(simp only: NEGc.simps NEGn.simps) |
11599 apply(simp only: union_eqvt AXIOMS_eqvt_coname BINDING_eqvt_coname |
11589 apply(simp only: union_eqvt AXIOMS_eqvt_coname BINDING_eqvt_coname |
11600 NOTRIGHT_eqvt_coname NOTLEFT_eqvt_coname) |
11590 NOTRIGHT_eqvt_coname NOTLEFT_eqvt_coname) |
11601 apply(perm_simp add: ih1 ih2) |
11591 apply(perm_simp add: ih1 ih2) |
11602 done |
11592 done |
11614 have ih4: "pi\<bullet>(\<parallel><B>\<parallel>) = (\<parallel><B>\<parallel>)" by fact |
11604 have ih4: "pi\<bullet>(\<parallel><B>\<parallel>) = (\<parallel><B>\<parallel>)" by fact |
11615 have g: "pi\<bullet>(\<parallel>(A AND B)\<parallel>) = (\<parallel>(A AND B)\<parallel>)" |
11605 have g: "pi\<bullet>(\<parallel>(A AND B)\<parallel>) = (\<parallel>(A AND B)\<parallel>)" |
11616 apply - |
11606 apply - |
11617 apply(simp only: lfp_eqvt) |
11607 apply(simp only: lfp_eqvt) |
11618 apply(simp only: comp_def) |
11608 apply(simp only: comp_def) |
11619 apply(simp only: perm_fun_def) |
11609 apply(simp only: perm_fun_def [where 'a="ntrm \<Rightarrow> bool"]) |
11620 apply(simp only: NEGc.simps NEGn.simps) |
11610 apply(simp only: NEGc.simps NEGn.simps) |
11621 apply(simp only: union_eqvt AXIOMS_eqvt_coname BINDING_eqvt_coname ANDRIGHT_eqvt_coname |
11611 apply(simp only: union_eqvt AXIOMS_eqvt_coname BINDING_eqvt_coname ANDRIGHT_eqvt_coname |
11622 ANDLEFT2_eqvt_coname ANDLEFT1_eqvt_coname) |
11612 ANDLEFT2_eqvt_coname ANDLEFT1_eqvt_coname) |
11623 apply(perm_simp add: ih1 ih2 ih3 ih4) |
11613 apply(perm_simp add: ih1 ih2 ih3 ih4) |
11624 done |
11614 done |
11636 have ih4: "pi\<bullet>(\<parallel><B>\<parallel>) = (\<parallel><B>\<parallel>)" by fact |
11626 have ih4: "pi\<bullet>(\<parallel><B>\<parallel>) = (\<parallel><B>\<parallel>)" by fact |
11637 have g: "pi\<bullet>(\<parallel>(A OR B)\<parallel>) = (\<parallel>(A OR B)\<parallel>)" |
11627 have g: "pi\<bullet>(\<parallel>(A OR B)\<parallel>) = (\<parallel>(A OR B)\<parallel>)" |
11638 apply - |
11628 apply - |
11639 apply(simp only: lfp_eqvt) |
11629 apply(simp only: lfp_eqvt) |
11640 apply(simp only: comp_def) |
11630 apply(simp only: comp_def) |
11641 apply(simp only: perm_fun_def) |
11631 apply(simp only: perm_fun_def [where 'a="ntrm \<Rightarrow> bool"]) |
11642 apply(simp only: NEGc.simps NEGn.simps) |
11632 apply(simp only: NEGc.simps NEGn.simps) |
11643 apply(simp only: union_eqvt AXIOMS_eqvt_coname BINDING_eqvt_coname ORRIGHT1_eqvt_coname |
11633 apply(simp only: union_eqvt AXIOMS_eqvt_coname BINDING_eqvt_coname ORRIGHT1_eqvt_coname |
11644 ORRIGHT2_eqvt_coname ORLEFT_eqvt_coname) |
11634 ORRIGHT2_eqvt_coname ORLEFT_eqvt_coname) |
11645 apply(perm_simp add: ih1 ih2 ih3 ih4) |
11635 apply(perm_simp add: ih1 ih2 ih3 ih4) |
11646 done |
11636 done |
11658 have ih4: "pi\<bullet>(\<parallel><B>\<parallel>) = (\<parallel><B>\<parallel>)" by fact |
11648 have ih4: "pi\<bullet>(\<parallel><B>\<parallel>) = (\<parallel><B>\<parallel>)" by fact |
11659 have g: "pi\<bullet>(\<parallel>(A IMP B)\<parallel>) = (\<parallel>(A IMP B)\<parallel>)" |
11649 have g: "pi\<bullet>(\<parallel>(A IMP B)\<parallel>) = (\<parallel>(A IMP B)\<parallel>)" |
11660 apply - |
11650 apply - |
11661 apply(simp only: lfp_eqvt) |
11651 apply(simp only: lfp_eqvt) |
11662 apply(simp only: comp_def) |
11652 apply(simp only: comp_def) |
11663 apply(simp only: perm_fun_def) |
11653 apply(simp only: perm_fun_def [where 'a="ntrm \<Rightarrow> bool"]) |
11664 apply(simp only: NEGc.simps NEGn.simps) |
11654 apply(simp only: NEGc.simps NEGn.simps) |
11665 apply(simp only: union_eqvt AXIOMS_eqvt_coname BINDING_eqvt_coname IMPRIGHT_eqvt_coname |
11655 apply(simp only: union_eqvt AXIOMS_eqvt_coname BINDING_eqvt_coname IMPRIGHT_eqvt_coname |
11666 IMPLEFT_eqvt_coname) |
11656 IMPLEFT_eqvt_coname) |
11667 apply(perm_simp add: ih1 ih2 ih3 ih4) |
11657 apply(perm_simp add: ih1 ih2 ih3 ih4) |
11668 done |
11658 done |