equal
deleted
inserted
replaced
335 by blast |
335 by blast |
336 |
336 |
337 |
337 |
338 subsection{*Internalized Formulas for some Set-Theoretic Concepts*} |
338 subsection{*Internalized Formulas for some Set-Theoretic Concepts*} |
339 |
339 |
340 lemmas setclass_simps = rall_setclass_is_ball rex_setclass_is_bex |
|
341 |
|
342 subsubsection{*Some numbers to help write de Bruijn indices*} |
340 subsubsection{*Some numbers to help write de Bruijn indices*} |
343 |
341 |
344 syntax |
342 syntax |
345 "3" :: i ("3") |
343 "3" :: i ("3") |
346 "4" :: i ("4") |
344 "4" :: i ("4") |
381 by simp |
379 by simp |
382 |
380 |
383 theorem empty_reflection: |
381 theorem empty_reflection: |
384 "REFLECTS[\<lambda>x. empty(L,f(x)), |
382 "REFLECTS[\<lambda>x. empty(L,f(x)), |
385 \<lambda>i x. empty(**Lset(i),f(x))]" |
383 \<lambda>i x. empty(**Lset(i),f(x))]" |
386 apply (simp only: empty_def setclass_simps) |
384 apply (simp only: empty_def) |
387 apply (intro FOL_reflections) |
385 apply (intro FOL_reflections) |
388 done |
386 done |
389 |
387 |
390 text{*Not used. But maybe useful?*} |
388 text{*Not used. But maybe useful?*} |
391 lemma Transset_sats_empty_fm_eq_0: |
389 lemma Transset_sats_empty_fm_eq_0: |
465 by (simp add: sats_pair_fm) |
463 by (simp add: sats_pair_fm) |
466 |
464 |
467 theorem pair_reflection: |
465 theorem pair_reflection: |
468 "REFLECTS[\<lambda>x. pair(L,f(x),g(x),h(x)), |
466 "REFLECTS[\<lambda>x. pair(L,f(x),g(x),h(x)), |
469 \<lambda>i x. pair(**Lset(i),f(x),g(x),h(x))]" |
467 \<lambda>i x. pair(**Lset(i),f(x),g(x),h(x))]" |
470 apply (simp only: pair_def setclass_simps) |
468 apply (simp only: pair_def) |
471 apply (intro FOL_reflections upair_reflection) |
469 apply (intro FOL_reflections upair_reflection) |
472 done |
470 done |
473 |
471 |
474 |
472 |
475 subsubsection{*Binary Unions, Internalized*} |
473 subsubsection{*Binary Unions, Internalized*} |
496 by (simp add: sats_union_fm) |
494 by (simp add: sats_union_fm) |
497 |
495 |
498 theorem union_reflection: |
496 theorem union_reflection: |
499 "REFLECTS[\<lambda>x. union(L,f(x),g(x),h(x)), |
497 "REFLECTS[\<lambda>x. union(L,f(x),g(x),h(x)), |
500 \<lambda>i x. union(**Lset(i),f(x),g(x),h(x))]" |
498 \<lambda>i x. union(**Lset(i),f(x),g(x),h(x))]" |
501 apply (simp only: union_def setclass_simps) |
499 apply (simp only: union_def) |
502 apply (intro FOL_reflections) |
500 apply (intro FOL_reflections) |
503 done |
501 done |
504 |
502 |
505 |
503 |
506 subsubsection{*Set ``Cons,'' Internalized*} |
504 subsubsection{*Set ``Cons,'' Internalized*} |
528 by simp |
526 by simp |
529 |
527 |
530 theorem cons_reflection: |
528 theorem cons_reflection: |
531 "REFLECTS[\<lambda>x. is_cons(L,f(x),g(x),h(x)), |
529 "REFLECTS[\<lambda>x. is_cons(L,f(x),g(x),h(x)), |
532 \<lambda>i x. is_cons(**Lset(i),f(x),g(x),h(x))]" |
530 \<lambda>i x. is_cons(**Lset(i),f(x),g(x),h(x))]" |
533 apply (simp only: is_cons_def setclass_simps) |
531 apply (simp only: is_cons_def) |
534 apply (intro FOL_reflections upair_reflection union_reflection) |
532 apply (intro FOL_reflections upair_reflection union_reflection) |
535 done |
533 done |
536 |
534 |
537 |
535 |
538 subsubsection{*Successor Function, Internalized*} |
536 subsubsection{*Successor Function, Internalized*} |
557 by simp |
555 by simp |
558 |
556 |
559 theorem successor_reflection: |
557 theorem successor_reflection: |
560 "REFLECTS[\<lambda>x. successor(L,f(x),g(x)), |
558 "REFLECTS[\<lambda>x. successor(L,f(x),g(x)), |
561 \<lambda>i x. successor(**Lset(i),f(x),g(x))]" |
559 \<lambda>i x. successor(**Lset(i),f(x),g(x))]" |
562 apply (simp only: successor_def setclass_simps) |
560 apply (simp only: successor_def) |
563 apply (intro cons_reflection) |
561 apply (intro cons_reflection) |
564 done |
562 done |
565 |
563 |
566 |
564 |
567 subsubsection{*The Number 1, Internalized*} |
565 subsubsection{*The Number 1, Internalized*} |
586 by simp |
584 by simp |
587 |
585 |
588 theorem number1_reflection: |
586 theorem number1_reflection: |
589 "REFLECTS[\<lambda>x. number1(L,f(x)), |
587 "REFLECTS[\<lambda>x. number1(L,f(x)), |
590 \<lambda>i x. number1(**Lset(i),f(x))]" |
588 \<lambda>i x. number1(**Lset(i),f(x))]" |
591 apply (simp only: number1_def setclass_simps) |
589 apply (simp only: number1_def) |
592 apply (intro FOL_reflections empty_reflection successor_reflection) |
590 apply (intro FOL_reflections empty_reflection successor_reflection) |
593 done |
591 done |
594 |
592 |
595 |
593 |
596 subsubsection{*Big Union, Internalized*} |
594 subsubsection{*Big Union, Internalized*} |
618 by simp |
616 by simp |
619 |
617 |
620 theorem big_union_reflection: |
618 theorem big_union_reflection: |
621 "REFLECTS[\<lambda>x. big_union(L,f(x),g(x)), |
619 "REFLECTS[\<lambda>x. big_union(L,f(x),g(x)), |
622 \<lambda>i x. big_union(**Lset(i),f(x),g(x))]" |
620 \<lambda>i x. big_union(**Lset(i),f(x),g(x))]" |
623 apply (simp only: big_union_def setclass_simps) |
621 apply (simp only: big_union_def) |
624 apply (intro FOL_reflections) |
622 apply (intro FOL_reflections) |
625 done |
623 done |
626 |
624 |
627 |
625 |
628 subsubsection{*Variants of Satisfaction Definitions for Ordinals, etc.*} |
626 subsubsection{*Variants of Satisfaction Definitions for Ordinals, etc.*} |
639 by (simp add: subset_fm_def Relative.subset_def) |
637 by (simp add: subset_fm_def Relative.subset_def) |
640 |
638 |
641 theorem subset_reflection: |
639 theorem subset_reflection: |
642 "REFLECTS[\<lambda>x. subset(L,f(x),g(x)), |
640 "REFLECTS[\<lambda>x. subset(L,f(x),g(x)), |
643 \<lambda>i x. subset(**Lset(i),f(x),g(x))]" |
641 \<lambda>i x. subset(**Lset(i),f(x),g(x))]" |
644 apply (simp only: Relative.subset_def setclass_simps) |
642 apply (simp only: Relative.subset_def) |
645 apply (intro FOL_reflections) |
643 apply (intro FOL_reflections) |
646 done |
644 done |
647 |
645 |
648 lemma sats_transset_fm': |
646 lemma sats_transset_fm': |
649 "[|x \<in> nat; env \<in> list(A)|] |
647 "[|x \<in> nat; env \<in> list(A)|] |
651 by (simp add: sats_subset_fm' transset_fm_def transitive_set_def) |
649 by (simp add: sats_subset_fm' transset_fm_def transitive_set_def) |
652 |
650 |
653 theorem transitive_set_reflection: |
651 theorem transitive_set_reflection: |
654 "REFLECTS[\<lambda>x. transitive_set(L,f(x)), |
652 "REFLECTS[\<lambda>x. transitive_set(L,f(x)), |
655 \<lambda>i x. transitive_set(**Lset(i),f(x))]" |
653 \<lambda>i x. transitive_set(**Lset(i),f(x))]" |
656 apply (simp only: transitive_set_def setclass_simps) |
654 apply (simp only: transitive_set_def) |
657 apply (intro FOL_reflections subset_reflection) |
655 apply (intro FOL_reflections subset_reflection) |
658 done |
656 done |
659 |
657 |
660 lemma sats_ordinal_fm': |
658 lemma sats_ordinal_fm': |
661 "[|x \<in> nat; env \<in> list(A)|] |
659 "[|x \<in> nat; env \<in> list(A)|] |
667 ==> ordinal(**A, x) <-> sats(A, ordinal_fm(i), env)" |
665 ==> ordinal(**A, x) <-> sats(A, ordinal_fm(i), env)" |
668 by (simp add: sats_ordinal_fm') |
666 by (simp add: sats_ordinal_fm') |
669 |
667 |
670 theorem ordinal_reflection: |
668 theorem ordinal_reflection: |
671 "REFLECTS[\<lambda>x. ordinal(L,f(x)), \<lambda>i x. ordinal(**Lset(i),f(x))]" |
669 "REFLECTS[\<lambda>x. ordinal(L,f(x)), \<lambda>i x. ordinal(**Lset(i),f(x))]" |
672 apply (simp only: ordinal_def setclass_simps) |
670 apply (simp only: ordinal_def) |
673 apply (intro FOL_reflections transitive_set_reflection) |
671 apply (intro FOL_reflections transitive_set_reflection) |
674 done |
672 done |
675 |
673 |
676 |
674 |
677 subsubsection{*Membership Relation, Internalized*} |
675 subsubsection{*Membership Relation, Internalized*} |
701 by simp |
699 by simp |
702 |
700 |
703 theorem membership_reflection: |
701 theorem membership_reflection: |
704 "REFLECTS[\<lambda>x. membership(L,f(x),g(x)), |
702 "REFLECTS[\<lambda>x. membership(L,f(x),g(x)), |
705 \<lambda>i x. membership(**Lset(i),f(x),g(x))]" |
703 \<lambda>i x. membership(**Lset(i),f(x),g(x))]" |
706 apply (simp only: membership_def setclass_simps) |
704 apply (simp only: membership_def) |
707 apply (intro FOL_reflections pair_reflection) |
705 apply (intro FOL_reflections pair_reflection) |
708 done |
706 done |
709 |
707 |
710 subsubsection{*Predecessor Set, Internalized*} |
708 subsubsection{*Predecessor Set, Internalized*} |
711 |
709 |
735 by (simp add: sats_pred_set_fm) |
733 by (simp add: sats_pred_set_fm) |
736 |
734 |
737 theorem pred_set_reflection: |
735 theorem pred_set_reflection: |
738 "REFLECTS[\<lambda>x. pred_set(L,f(x),g(x),h(x),b(x)), |
736 "REFLECTS[\<lambda>x. pred_set(L,f(x),g(x),h(x),b(x)), |
739 \<lambda>i x. pred_set(**Lset(i),f(x),g(x),h(x),b(x))]" |
737 \<lambda>i x. pred_set(**Lset(i),f(x),g(x),h(x),b(x))]" |
740 apply (simp only: pred_set_def setclass_simps) |
738 apply (simp only: pred_set_def) |
741 apply (intro FOL_reflections pair_reflection) |
739 apply (intro FOL_reflections pair_reflection) |
742 done |
740 done |
743 |
741 |
744 |
742 |
745 |
743 |
770 by simp |
768 by simp |
771 |
769 |
772 theorem domain_reflection: |
770 theorem domain_reflection: |
773 "REFLECTS[\<lambda>x. is_domain(L,f(x),g(x)), |
771 "REFLECTS[\<lambda>x. is_domain(L,f(x),g(x)), |
774 \<lambda>i x. is_domain(**Lset(i),f(x),g(x))]" |
772 \<lambda>i x. is_domain(**Lset(i),f(x),g(x))]" |
775 apply (simp only: is_domain_def setclass_simps) |
773 apply (simp only: is_domain_def) |
776 apply (intro FOL_reflections pair_reflection) |
774 apply (intro FOL_reflections pair_reflection) |
777 done |
775 done |
778 |
776 |
779 |
777 |
780 subsubsection{*Range of a Relation, Internalized*} |
778 subsubsection{*Range of a Relation, Internalized*} |
804 by simp |
802 by simp |
805 |
803 |
806 theorem range_reflection: |
804 theorem range_reflection: |
807 "REFLECTS[\<lambda>x. is_range(L,f(x),g(x)), |
805 "REFLECTS[\<lambda>x. is_range(L,f(x),g(x)), |
808 \<lambda>i x. is_range(**Lset(i),f(x),g(x))]" |
806 \<lambda>i x. is_range(**Lset(i),f(x),g(x))]" |
809 apply (simp only: is_range_def setclass_simps) |
807 apply (simp only: is_range_def) |
810 apply (intro FOL_reflections pair_reflection) |
808 apply (intro FOL_reflections pair_reflection) |
811 done |
809 done |
812 |
810 |
813 |
811 |
814 subsubsection{*Field of a Relation, Internalized*} |
812 subsubsection{*Field of a Relation, Internalized*} |
839 by simp |
837 by simp |
840 |
838 |
841 theorem field_reflection: |
839 theorem field_reflection: |
842 "REFLECTS[\<lambda>x. is_field(L,f(x),g(x)), |
840 "REFLECTS[\<lambda>x. is_field(L,f(x),g(x)), |
843 \<lambda>i x. is_field(**Lset(i),f(x),g(x))]" |
841 \<lambda>i x. is_field(**Lset(i),f(x),g(x))]" |
844 apply (simp only: is_field_def setclass_simps) |
842 apply (simp only: is_field_def) |
845 apply (intro FOL_reflections domain_reflection range_reflection |
843 apply (intro FOL_reflections domain_reflection range_reflection |
846 union_reflection) |
844 union_reflection) |
847 done |
845 done |
848 |
846 |
849 |
847 |
875 by (simp add: sats_image_fm) |
873 by (simp add: sats_image_fm) |
876 |
874 |
877 theorem image_reflection: |
875 theorem image_reflection: |
878 "REFLECTS[\<lambda>x. image(L,f(x),g(x),h(x)), |
876 "REFLECTS[\<lambda>x. image(L,f(x),g(x),h(x)), |
879 \<lambda>i x. image(**Lset(i),f(x),g(x),h(x))]" |
877 \<lambda>i x. image(**Lset(i),f(x),g(x),h(x))]" |
880 apply (simp only: Relative.image_def setclass_simps) |
878 apply (simp only: Relative.image_def) |
881 apply (intro FOL_reflections pair_reflection) |
879 apply (intro FOL_reflections pair_reflection) |
882 done |
880 done |
883 |
881 |
884 |
882 |
885 subsubsection{*Pre-Image under a Relation, Internalized*} |
883 subsubsection{*Pre-Image under a Relation, Internalized*} |
910 by (simp add: sats_pre_image_fm) |
908 by (simp add: sats_pre_image_fm) |
911 |
909 |
912 theorem pre_image_reflection: |
910 theorem pre_image_reflection: |
913 "REFLECTS[\<lambda>x. pre_image(L,f(x),g(x),h(x)), |
911 "REFLECTS[\<lambda>x. pre_image(L,f(x),g(x),h(x)), |
914 \<lambda>i x. pre_image(**Lset(i),f(x),g(x),h(x))]" |
912 \<lambda>i x. pre_image(**Lset(i),f(x),g(x),h(x))]" |
915 apply (simp only: Relative.pre_image_def setclass_simps) |
913 apply (simp only: Relative.pre_image_def) |
916 apply (intro FOL_reflections pair_reflection) |
914 apply (intro FOL_reflections pair_reflection) |
917 done |
915 done |
918 |
916 |
919 |
917 |
920 subsubsection{*Function Application, Internalized*} |
918 subsubsection{*Function Application, Internalized*} |
945 by simp |
943 by simp |
946 |
944 |
947 theorem fun_apply_reflection: |
945 theorem fun_apply_reflection: |
948 "REFLECTS[\<lambda>x. fun_apply(L,f(x),g(x),h(x)), |
946 "REFLECTS[\<lambda>x. fun_apply(L,f(x),g(x),h(x)), |
949 \<lambda>i x. fun_apply(**Lset(i),f(x),g(x),h(x))]" |
947 \<lambda>i x. fun_apply(**Lset(i),f(x),g(x),h(x))]" |
950 apply (simp only: fun_apply_def setclass_simps) |
948 apply (simp only: fun_apply_def) |
951 apply (intro FOL_reflections upair_reflection image_reflection |
949 apply (intro FOL_reflections upair_reflection image_reflection |
952 big_union_reflection) |
950 big_union_reflection) |
953 done |
951 done |
954 |
952 |
955 |
953 |
977 by simp |
975 by simp |
978 |
976 |
979 theorem is_relation_reflection: |
977 theorem is_relation_reflection: |
980 "REFLECTS[\<lambda>x. is_relation(L,f(x)), |
978 "REFLECTS[\<lambda>x. is_relation(L,f(x)), |
981 \<lambda>i x. is_relation(**Lset(i),f(x))]" |
979 \<lambda>i x. is_relation(**Lset(i),f(x))]" |
982 apply (simp only: is_relation_def setclass_simps) |
980 apply (simp only: is_relation_def) |
983 apply (intro FOL_reflections pair_reflection) |
981 apply (intro FOL_reflections pair_reflection) |
984 done |
982 done |
985 |
983 |
986 |
984 |
987 subsubsection{*The Concept of Function, Internalized*} |
985 subsubsection{*The Concept of Function, Internalized*} |
1013 by simp |
1011 by simp |
1014 |
1012 |
1015 theorem is_function_reflection: |
1013 theorem is_function_reflection: |
1016 "REFLECTS[\<lambda>x. is_function(L,f(x)), |
1014 "REFLECTS[\<lambda>x. is_function(L,f(x)), |
1017 \<lambda>i x. is_function(**Lset(i),f(x))]" |
1015 \<lambda>i x. is_function(**Lset(i),f(x))]" |
1018 apply (simp only: is_function_def setclass_simps) |
1016 apply (simp only: is_function_def) |
1019 apply (intro FOL_reflections pair_reflection) |
1017 apply (intro FOL_reflections pair_reflection) |
1020 done |
1018 done |
1021 |
1019 |
1022 |
1020 |
1023 subsubsection{*Typed Functions, Internalized*} |
1021 subsubsection{*Typed Functions, Internalized*} |
1071 |
1069 |
1072 |
1070 |
1073 theorem typed_function_reflection: |
1071 theorem typed_function_reflection: |
1074 "REFLECTS[\<lambda>x. typed_function(L,f(x),g(x),h(x)), |
1072 "REFLECTS[\<lambda>x. typed_function(L,f(x),g(x),h(x)), |
1075 \<lambda>i x. typed_function(**Lset(i),f(x),g(x),h(x))]" |
1073 \<lambda>i x. typed_function(**Lset(i),f(x),g(x),h(x))]" |
1076 apply (simp only: typed_function_def setclass_simps) |
1074 apply (simp only: typed_function_def) |
1077 apply (intro FOL_reflections function_reflections) |
1075 apply (intro FOL_reflections function_reflections) |
1078 done |
1076 done |
1079 |
1077 |
1080 |
1078 |
1081 subsubsection{*Composition of Relations, Internalized*} |
1079 subsubsection{*Composition of Relations, Internalized*} |
1111 by simp |
1109 by simp |
1112 |
1110 |
1113 theorem composition_reflection: |
1111 theorem composition_reflection: |
1114 "REFLECTS[\<lambda>x. composition(L,f(x),g(x),h(x)), |
1112 "REFLECTS[\<lambda>x. composition(L,f(x),g(x),h(x)), |
1115 \<lambda>i x. composition(**Lset(i),f(x),g(x),h(x))]" |
1113 \<lambda>i x. composition(**Lset(i),f(x),g(x),h(x))]" |
1116 apply (simp only: composition_def setclass_simps) |
1114 apply (simp only: composition_def) |
1117 apply (intro FOL_reflections pair_reflection) |
1115 apply (intro FOL_reflections pair_reflection) |
1118 done |
1116 done |
1119 |
1117 |
1120 |
1118 |
1121 subsubsection{*Injections, Internalized*} |
1119 subsubsection{*Injections, Internalized*} |
1151 by simp |
1149 by simp |
1152 |
1150 |
1153 theorem injection_reflection: |
1151 theorem injection_reflection: |
1154 "REFLECTS[\<lambda>x. injection(L,f(x),g(x),h(x)), |
1152 "REFLECTS[\<lambda>x. injection(L,f(x),g(x),h(x)), |
1155 \<lambda>i x. injection(**Lset(i),f(x),g(x),h(x))]" |
1153 \<lambda>i x. injection(**Lset(i),f(x),g(x),h(x))]" |
1156 apply (simp only: injection_def setclass_simps) |
1154 apply (simp only: injection_def) |
1157 apply (intro FOL_reflections function_reflections typed_function_reflection) |
1155 apply (intro FOL_reflections function_reflections typed_function_reflection) |
1158 done |
1156 done |
1159 |
1157 |
1160 |
1158 |
1161 subsubsection{*Surjections, Internalized*} |
1159 subsubsection{*Surjections, Internalized*} |
1188 by simp |
1186 by simp |
1189 |
1187 |
1190 theorem surjection_reflection: |
1188 theorem surjection_reflection: |
1191 "REFLECTS[\<lambda>x. surjection(L,f(x),g(x),h(x)), |
1189 "REFLECTS[\<lambda>x. surjection(L,f(x),g(x),h(x)), |
1192 \<lambda>i x. surjection(**Lset(i),f(x),g(x),h(x))]" |
1190 \<lambda>i x. surjection(**Lset(i),f(x),g(x),h(x))]" |
1193 apply (simp only: surjection_def setclass_simps) |
1191 apply (simp only: surjection_def) |
1194 apply (intro FOL_reflections function_reflections typed_function_reflection) |
1192 apply (intro FOL_reflections function_reflections typed_function_reflection) |
1195 done |
1193 done |
1196 |
1194 |
1197 |
1195 |
1198 |
1196 |
1220 by simp |
1218 by simp |
1221 |
1219 |
1222 theorem bijection_reflection: |
1220 theorem bijection_reflection: |
1223 "REFLECTS[\<lambda>x. bijection(L,f(x),g(x),h(x)), |
1221 "REFLECTS[\<lambda>x. bijection(L,f(x),g(x),h(x)), |
1224 \<lambda>i x. bijection(**Lset(i),f(x),g(x),h(x))]" |
1222 \<lambda>i x. bijection(**Lset(i),f(x),g(x),h(x))]" |
1225 apply (simp only: bijection_def setclass_simps) |
1223 apply (simp only: bijection_def) |
1226 apply (intro And_reflection injection_reflection surjection_reflection) |
1224 apply (intro And_reflection injection_reflection surjection_reflection) |
1227 done |
1225 done |
1228 |
1226 |
1229 |
1227 |
1230 subsubsection{*Restriction of a Relation, Internalized*} |
1228 subsubsection{*Restriction of a Relation, Internalized*} |
1256 by simp |
1254 by simp |
1257 |
1255 |
1258 theorem restriction_reflection: |
1256 theorem restriction_reflection: |
1259 "REFLECTS[\<lambda>x. restriction(L,f(x),g(x),h(x)), |
1257 "REFLECTS[\<lambda>x. restriction(L,f(x),g(x),h(x)), |
1260 \<lambda>i x. restriction(**Lset(i),f(x),g(x),h(x))]" |
1258 \<lambda>i x. restriction(**Lset(i),f(x),g(x),h(x))]" |
1261 apply (simp only: restriction_def setclass_simps) |
1259 apply (simp only: restriction_def) |
1262 apply (intro FOL_reflections pair_reflection) |
1260 apply (intro FOL_reflections pair_reflection) |
1263 done |
1261 done |
1264 |
1262 |
1265 subsubsection{*Order-Isomorphisms, Internalized*} |
1263 subsubsection{*Order-Isomorphisms, Internalized*} |
1266 |
1264 |
1306 by simp |
1304 by simp |
1307 |
1305 |
1308 theorem order_isomorphism_reflection: |
1306 theorem order_isomorphism_reflection: |
1309 "REFLECTS[\<lambda>x. order_isomorphism(L,f(x),g(x),h(x),g'(x),h'(x)), |
1307 "REFLECTS[\<lambda>x. order_isomorphism(L,f(x),g(x),h(x),g'(x),h'(x)), |
1310 \<lambda>i x. order_isomorphism(**Lset(i),f(x),g(x),h(x),g'(x),h'(x))]" |
1308 \<lambda>i x. order_isomorphism(**Lset(i),f(x),g(x),h(x),g'(x),h'(x))]" |
1311 apply (simp only: order_isomorphism_def setclass_simps) |
1309 apply (simp only: order_isomorphism_def) |
1312 apply (intro FOL_reflections function_reflections bijection_reflection) |
1310 apply (intro FOL_reflections function_reflections bijection_reflection) |
1313 done |
1311 done |
1314 |
1312 |
1315 subsubsection{*Limit Ordinals, Internalized*} |
1313 subsubsection{*Limit Ordinals, Internalized*} |
1316 |
1314 |
1344 by simp |
1342 by simp |
1345 |
1343 |
1346 theorem limit_ordinal_reflection: |
1344 theorem limit_ordinal_reflection: |
1347 "REFLECTS[\<lambda>x. limit_ordinal(L,f(x)), |
1345 "REFLECTS[\<lambda>x. limit_ordinal(L,f(x)), |
1348 \<lambda>i x. limit_ordinal(**Lset(i),f(x))]" |
1346 \<lambda>i x. limit_ordinal(**Lset(i),f(x))]" |
1349 apply (simp only: limit_ordinal_def setclass_simps) |
1347 apply (simp only: limit_ordinal_def) |
1350 apply (intro FOL_reflections ordinal_reflection |
1348 apply (intro FOL_reflections ordinal_reflection |
1351 empty_reflection successor_reflection) |
1349 empty_reflection successor_reflection) |
1352 done |
1350 done |
1353 |
1351 |
1354 subsubsection{*Finite Ordinals: The Predicate ``Is A Natural Number''*} |
1352 subsubsection{*Finite Ordinals: The Predicate ``Is A Natural Number''*} |
1379 by simp |
1377 by simp |
1380 |
1378 |
1381 theorem finite_ordinal_reflection: |
1379 theorem finite_ordinal_reflection: |
1382 "REFLECTS[\<lambda>x. finite_ordinal(L,f(x)), |
1380 "REFLECTS[\<lambda>x. finite_ordinal(L,f(x)), |
1383 \<lambda>i x. finite_ordinal(**Lset(i),f(x))]" |
1381 \<lambda>i x. finite_ordinal(**Lset(i),f(x))]" |
1384 apply (simp only: finite_ordinal_def setclass_simps) |
1382 apply (simp only: finite_ordinal_def) |
1385 apply (intro FOL_reflections ordinal_reflection limit_ordinal_reflection) |
1383 apply (intro FOL_reflections ordinal_reflection limit_ordinal_reflection) |
1386 done |
1384 done |
1387 |
1385 |
1388 |
1386 |
1389 subsubsection{*Omega: The Set of Natural Numbers*} |
1387 subsubsection{*Omega: The Set of Natural Numbers*} |
1411 by simp |
1409 by simp |
1412 |
1410 |
1413 theorem omega_reflection: |
1411 theorem omega_reflection: |
1414 "REFLECTS[\<lambda>x. omega(L,f(x)), |
1412 "REFLECTS[\<lambda>x. omega(L,f(x)), |
1415 \<lambda>i x. omega(**Lset(i),f(x))]" |
1413 \<lambda>i x. omega(**Lset(i),f(x))]" |
1416 apply (simp only: omega_def setclass_simps) |
1414 apply (simp only: omega_def) |
1417 apply (intro FOL_reflections limit_ordinal_reflection) |
1415 apply (intro FOL_reflections limit_ordinal_reflection) |
1418 done |
1416 done |
1419 |
1417 |
1420 |
1418 |
1421 lemmas fun_plus_reflections = |
1419 lemmas fun_plus_reflections = |