597 qed "real_less_asym"; |
651 qed "real_less_asym"; |
598 |
652 |
599 (****)(****)(****)(****)(****)(****)(****)(****)(****)(****) |
653 (****)(****)(****)(****)(****)(****)(****)(****)(****)(****) |
600 (****** Map and more real_less ******) |
654 (****** Map and more real_less ******) |
601 (*** mapping from preal into real ***) |
655 (*** mapping from preal into real ***) |
602 Goalw [real_preal_def] |
656 Goalw [real_of_preal_def] |
603 "%#((z1::preal) + z2) = %#z1 + %#z2"; |
657 "real_of_preal ((z1::preal) + z2) = \ |
|
658 \ real_of_preal z1 + real_of_preal z2"; |
604 by (asm_simp_tac (simpset() addsimps [real_add, |
659 by (asm_simp_tac (simpset() addsimps [real_add, |
605 preal_add_mult_distrib,preal_mult_1] addsimps preal_add_ac) 1); |
660 preal_add_mult_distrib,preal_mult_1] addsimps preal_add_ac) 1); |
606 qed "real_preal_add"; |
661 qed "real_of_preal_add"; |
607 |
662 |
608 Goalw [real_preal_def] |
663 Goalw [real_of_preal_def] |
609 "%#((z1::preal) * z2) = %#z1* %#z2"; |
664 "real_of_preal ((z1::preal) * z2) = \ |
|
665 \ real_of_preal z1* real_of_preal z2"; |
610 by (full_simp_tac (simpset() addsimps [real_mult, |
666 by (full_simp_tac (simpset() addsimps [real_mult, |
611 preal_add_mult_distrib2,preal_mult_1, |
667 preal_add_mult_distrib2,preal_mult_1, |
612 preal_mult_1_right,pnat_one_def] |
668 preal_mult_1_right,pnat_one_def] |
613 @ preal_add_ac @ preal_mult_ac) 1); |
669 @ preal_add_ac @ preal_mult_ac) 1); |
614 qed "real_preal_mult"; |
670 qed "real_of_preal_mult"; |
615 |
671 |
616 Goalw [real_preal_def] |
672 Goalw [real_of_preal_def] |
617 "!!(x::preal). y < x ==> ? m. Abs_real (realrel ^^ {(x,y)}) = %#m"; |
673 "!!(x::preal). y < x ==> \ |
|
674 \ ? m. Abs_real (realrel ^^ {(x,y)}) = real_of_preal m"; |
618 by (auto_tac (claset() addSDs [preal_less_add_left_Ex], |
675 by (auto_tac (claset() addSDs [preal_less_add_left_Ex], |
619 simpset() addsimps preal_add_ac)); |
676 simpset() addsimps preal_add_ac)); |
620 qed "real_preal_ExI"; |
677 qed "real_of_preal_ExI"; |
621 |
678 |
622 Goalw [real_preal_def] |
679 Goalw [real_of_preal_def] |
623 "!!(x::preal). ? m. Abs_real (realrel ^^ {(x,y)}) = %#m ==> y < x"; |
680 "!!(x::preal). ? m. Abs_real (realrel ^^ {(x,y)}) = \ |
|
681 \ real_of_preal m ==> y < x"; |
624 by (auto_tac (claset(), |
682 by (auto_tac (claset(), |
625 simpset() addsimps |
683 simpset() addsimps |
626 [preal_add_commute,preal_add_assoc])); |
684 [preal_add_commute,preal_add_assoc])); |
627 by (asm_full_simp_tac (simpset() addsimps |
685 by (asm_full_simp_tac (simpset() addsimps |
628 [preal_add_assoc RS sym,preal_self_less_add_left]) 1); |
686 [preal_add_assoc RS sym,preal_self_less_add_left]) 1); |
629 qed "real_preal_ExD"; |
687 qed "real_of_preal_ExD"; |
630 |
688 |
631 Goal "(? m. Abs_real (realrel ^^ {(x,y)}) = %#m) = (y < x)"; |
689 Goal "(? m. Abs_real (realrel ^^ {(x,y)}) = real_of_preal m) = (y < x)"; |
632 by (blast_tac (claset() addSIs [real_preal_ExI,real_preal_ExD]) 1); |
690 by (blast_tac (claset() addSIs [real_of_preal_ExI,real_of_preal_ExD]) 1); |
633 qed "real_preal_iff"; |
691 qed "real_of_preal_iff"; |
634 |
692 |
635 (*** Gleason prop 9-4.4 p 127 ***) |
693 (*** Gleason prop 9-4.4 p 127 ***) |
636 Goalw [real_preal_def,real_zero_def] |
694 Goalw [real_of_preal_def,real_zero_def] |
637 "? m. (x::real) = %#m | x = 0r | x = -(%#m)"; |
695 "? m. (x::real) = real_of_preal m | x = 0r | x = -(real_of_preal m)"; |
638 by (res_inst_tac [("z","x")] eq_Abs_real 1); |
696 by (res_inst_tac [("z","x")] eq_Abs_real 1); |
639 by (auto_tac (claset(),simpset() addsimps [real_minus] @ preal_add_ac)); |
697 by (auto_tac (claset(),simpset() addsimps [real_minus] @ preal_add_ac)); |
640 by (cut_inst_tac [("r1.0","x"),("r2.0","y")] preal_linear 1); |
698 by (cut_inst_tac [("r1.0","x"),("r2.0","y")] preal_linear 1); |
641 by (auto_tac (claset() addSDs [preal_less_add_left_Ex], |
699 by (auto_tac (claset() addSDs [preal_less_add_left_Ex], |
642 simpset() addsimps [preal_add_assoc RS sym])); |
700 simpset() addsimps [preal_add_assoc RS sym])); |
643 by (auto_tac (claset(),simpset() addsimps [preal_add_commute])); |
701 by (auto_tac (claset(),simpset() addsimps [preal_add_commute])); |
644 qed "real_preal_trichotomy"; |
702 qed "real_of_preal_trichotomy"; |
645 |
703 |
646 Goal "!!P. [| !!m. x = %#m ==> P; \ |
704 Goal "!!P. [| !!m. x = real_of_preal m ==> P; \ |
647 \ x = 0r ==> P; \ |
705 \ x = 0r ==> P; \ |
648 \ !!m. x = -(%#m) ==> P |] ==> P"; |
706 \ !!m. x = -(real_of_preal m) ==> P |] ==> P"; |
649 by (cut_inst_tac [("x","x")] real_preal_trichotomy 1); |
707 by (cut_inst_tac [("x","x")] real_of_preal_trichotomy 1); |
650 by Auto_tac; |
708 by Auto_tac; |
651 qed "real_preal_trichotomyE"; |
709 qed "real_of_preal_trichotomyE"; |
652 |
710 |
653 Goalw [real_preal_def] "%#m1 < %#m2 ==> m1 < m2"; |
711 Goalw [real_of_preal_def] |
|
712 "real_of_preal m1 < real_of_preal m2 ==> m1 < m2"; |
654 by (auto_tac (claset(),simpset() addsimps [real_less_def] @ preal_add_ac)); |
713 by (auto_tac (claset(),simpset() addsimps [real_less_def] @ preal_add_ac)); |
655 by (auto_tac (claset(),simpset() addsimps [preal_add_assoc RS sym])); |
714 by (auto_tac (claset(),simpset() addsimps [preal_add_assoc RS sym])); |
656 by (auto_tac (claset(),simpset() addsimps preal_add_ac)); |
715 by (auto_tac (claset(),simpset() addsimps preal_add_ac)); |
657 qed "real_preal_lessD"; |
716 qed "real_of_preal_lessD"; |
658 |
717 |
659 Goal "m1 < m2 ==> %#m1 < %#m2"; |
718 Goal "m1 < m2 ==> real_of_preal m1 < real_of_preal m2"; |
660 by (dtac preal_less_add_left_Ex 1); |
719 by (dtac preal_less_add_left_Ex 1); |
661 by (auto_tac (claset(), |
720 by (auto_tac (claset(), |
662 simpset() addsimps [real_preal_add, |
721 simpset() addsimps [real_of_preal_add, |
663 real_preal_def,real_less_def])); |
722 real_of_preal_def,real_less_def])); |
664 by (REPEAT(rtac exI 1)); |
723 by (REPEAT(rtac exI 1)); |
665 by (EVERY[rtac conjI 1, rtac conjI 2]); |
724 by (EVERY[rtac conjI 1, rtac conjI 2]); |
666 by (REPEAT(Blast_tac 2)); |
725 by (REPEAT(Blast_tac 2)); |
667 by (simp_tac (simpset() addsimps [preal_self_less_add_left] |
726 by (simp_tac (simpset() addsimps [preal_self_less_add_left] |
668 delsimps [preal_add_less_iff2]) 1); |
727 delsimps [preal_add_less_iff2]) 1); |
669 qed "real_preal_lessI"; |
728 qed "real_of_preal_lessI"; |
670 |
729 |
671 Goal "(%#m1 < %#m2) = (m1 < m2)"; |
730 Goal "(real_of_preal m1 < real_of_preal m2) = (m1 < m2)"; |
672 by (blast_tac (claset() addIs [real_preal_lessI,real_preal_lessD]) 1); |
731 by (blast_tac (claset() addIs [real_of_preal_lessI,real_of_preal_lessD]) 1); |
673 qed "real_preal_less_iff1"; |
732 qed "real_of_preal_less_iff1"; |
674 |
733 |
675 Addsimps [real_preal_less_iff1]; |
734 Addsimps [real_of_preal_less_iff1]; |
676 |
735 |
677 Goal "- %#m < %#m"; |
736 Goal "- real_of_preal m < real_of_preal m"; |
678 by (auto_tac (claset(), |
737 by (auto_tac (claset(), |
679 simpset() addsimps |
738 simpset() addsimps |
680 [real_preal_def,real_less_def,real_minus])); |
739 [real_of_preal_def,real_less_def,real_minus])); |
681 by (REPEAT(rtac exI 1)); |
740 by (REPEAT(rtac exI 1)); |
682 by (EVERY[rtac conjI 1, rtac conjI 2]); |
741 by (EVERY[rtac conjI 1, rtac conjI 2]); |
683 by (REPEAT(Blast_tac 2)); |
742 by (REPEAT(Blast_tac 2)); |
684 by (full_simp_tac (simpset() addsimps preal_add_ac) 1); |
743 by (full_simp_tac (simpset() addsimps preal_add_ac) 1); |
685 by (full_simp_tac (simpset() addsimps [preal_self_less_add_right, |
744 by (full_simp_tac (simpset() addsimps [preal_self_less_add_right, |
686 preal_add_assoc RS sym]) 1); |
745 preal_add_assoc RS sym]) 1); |
687 qed "real_preal_minus_less_self"; |
746 qed "real_of_preal_minus_less_self"; |
688 |
747 |
689 Goalw [real_zero_def] "- %#m < 0r"; |
748 Goalw [real_zero_def] "- real_of_preal m < 0r"; |
690 by (auto_tac (claset(), |
749 by (auto_tac (claset(), |
691 simpset() addsimps [real_preal_def,real_less_def,real_minus])); |
750 simpset() addsimps [real_of_preal_def, |
|
751 real_less_def,real_minus])); |
692 by (REPEAT(rtac exI 1)); |
752 by (REPEAT(rtac exI 1)); |
693 by (EVERY[rtac conjI 1, rtac conjI 2]); |
753 by (EVERY[rtac conjI 1, rtac conjI 2]); |
694 by (REPEAT(Blast_tac 2)); |
754 by (REPEAT(Blast_tac 2)); |
695 by (full_simp_tac (simpset() addsimps |
755 by (full_simp_tac (simpset() addsimps |
696 [preal_self_less_add_right] @ preal_add_ac) 1); |
756 [preal_self_less_add_right] @ preal_add_ac) 1); |
697 qed "real_preal_minus_less_zero"; |
757 qed "real_of_preal_minus_less_zero"; |
698 |
758 |
699 Goal "~ 0r < - %#m"; |
759 Goal "~ 0r < - real_of_preal m"; |
700 by (cut_facts_tac [real_preal_minus_less_zero] 1); |
760 by (cut_facts_tac [real_of_preal_minus_less_zero] 1); |
701 by (fast_tac (claset() addDs [real_less_trans] |
761 by (fast_tac (claset() addDs [real_less_trans] |
702 addEs [real_less_irrefl]) 1); |
762 addEs [real_less_irrefl]) 1); |
703 qed "real_preal_not_minus_gt_zero"; |
763 qed "real_of_preal_not_minus_gt_zero"; |
704 |
764 |
705 Goalw [real_zero_def] "0r < %#m"; |
765 Goalw [real_zero_def] "0r < real_of_preal m"; |
706 by (auto_tac (claset(), |
766 by (auto_tac (claset(),simpset() addsimps |
707 simpset() addsimps [real_preal_def,real_less_def,real_minus])); |
767 [real_of_preal_def,real_less_def,real_minus])); |
708 by (REPEAT(rtac exI 1)); |
768 by (REPEAT(rtac exI 1)); |
709 by (EVERY[rtac conjI 1, rtac conjI 2]); |
769 by (EVERY[rtac conjI 1, rtac conjI 2]); |
710 by (REPEAT(Blast_tac 2)); |
770 by (REPEAT(Blast_tac 2)); |
711 by (full_simp_tac (simpset() addsimps |
771 by (full_simp_tac (simpset() addsimps |
712 [preal_self_less_add_right] @ preal_add_ac) 1); |
772 [preal_self_less_add_right] @ preal_add_ac) 1); |
713 qed "real_preal_zero_less"; |
773 qed "real_of_preal_zero_less"; |
714 |
774 |
715 Goal "~ %#m < 0r"; |
775 Goal "~ real_of_preal m < 0r"; |
716 by (cut_facts_tac [real_preal_zero_less] 1); |
776 by (cut_facts_tac [real_of_preal_zero_less] 1); |
717 by (blast_tac (claset() addDs [real_less_trans] |
777 by (blast_tac (claset() addDs [real_less_trans] |
718 addEs [real_less_irrefl]) 1); |
778 addEs [real_less_irrefl]) 1); |
719 qed "real_preal_not_less_zero"; |
779 qed "real_of_preal_not_less_zero"; |
720 |
780 |
721 Goal "0r < - - %#m"; |
781 Goal "0r < - - real_of_preal m"; |
722 by (simp_tac (simpset() addsimps |
782 by (simp_tac (simpset() addsimps |
723 [real_preal_zero_less]) 1); |
783 [real_of_preal_zero_less]) 1); |
724 qed "real_minus_minus_zero_less"; |
784 qed "real_minus_minus_zero_less"; |
725 |
785 |
726 (* another lemma *) |
786 (* another lemma *) |
727 Goalw [real_zero_def] "0r < %#m + %#m1"; |
787 Goalw [real_zero_def] |
728 by (auto_tac (claset(), |
788 "0r < real_of_preal m + real_of_preal m1"; |
729 simpset() addsimps [real_preal_def,real_less_def,real_add])); |
789 by (auto_tac (claset(), |
|
790 simpset() addsimps [real_of_preal_def, |
|
791 real_less_def,real_add])); |
730 by (REPEAT(rtac exI 1)); |
792 by (REPEAT(rtac exI 1)); |
731 by (EVERY[rtac conjI 1, rtac conjI 2]); |
793 by (EVERY[rtac conjI 1, rtac conjI 2]); |
732 by (REPEAT(Blast_tac 2)); |
794 by (REPEAT(Blast_tac 2)); |
733 by (full_simp_tac (simpset() addsimps preal_add_ac) 1); |
795 by (full_simp_tac (simpset() addsimps preal_add_ac) 1); |
734 by (full_simp_tac (simpset() addsimps [preal_self_less_add_right, |
796 by (full_simp_tac (simpset() addsimps [preal_self_less_add_right, |
735 preal_add_assoc RS sym]) 1); |
797 preal_add_assoc RS sym]) 1); |
736 qed "real_preal_sum_zero_less"; |
798 qed "real_of_preal_sum_zero_less"; |
737 |
799 |
738 Goal "- %#m < %#m1"; |
800 Goal "- real_of_preal m < real_of_preal m1"; |
739 by (auto_tac (claset(), |
801 by (auto_tac (claset(), |
740 simpset() addsimps [real_preal_def,real_less_def,real_minus])); |
802 simpset() addsimps [real_of_preal_def, |
|
803 real_less_def,real_minus])); |
741 by (REPEAT(rtac exI 1)); |
804 by (REPEAT(rtac exI 1)); |
742 by (EVERY[rtac conjI 1, rtac conjI 2]); |
805 by (EVERY[rtac conjI 1, rtac conjI 2]); |
743 by (REPEAT(Blast_tac 2)); |
806 by (REPEAT(Blast_tac 2)); |
744 by (full_simp_tac (simpset() addsimps preal_add_ac) 1); |
807 by (full_simp_tac (simpset() addsimps preal_add_ac) 1); |
745 by (full_simp_tac (simpset() addsimps [preal_self_less_add_right, |
808 by (full_simp_tac (simpset() addsimps [preal_self_less_add_right, |
746 preal_add_assoc RS sym]) 1); |
809 preal_add_assoc RS sym]) 1); |
747 qed "real_preal_minus_less_all"; |
810 qed "real_of_preal_minus_less_all"; |
748 |
811 |
749 Goal "~ %#m < - %#m1"; |
812 Goal "~ real_of_preal m < - real_of_preal m1"; |
750 by (cut_facts_tac [real_preal_minus_less_all] 1); |
813 by (cut_facts_tac [real_of_preal_minus_less_all] 1); |
751 by (blast_tac (claset() addDs [real_less_trans] |
814 by (blast_tac (claset() addDs [real_less_trans] |
752 addEs [real_less_irrefl]) 1); |
815 addEs [real_less_irrefl]) 1); |
753 qed "real_preal_not_minus_gt_all"; |
816 qed "real_of_preal_not_minus_gt_all"; |
754 |
817 |
755 Goal "- %#m1 < - %#m2 ==> %#m2 < %#m1"; |
818 Goal "- real_of_preal m1 < - real_of_preal m2 \ |
756 by (auto_tac (claset(), |
819 \ ==> real_of_preal m2 < real_of_preal m1"; |
757 simpset() addsimps [real_preal_def,real_less_def,real_minus])); |
820 by (auto_tac (claset(), |
|
821 simpset() addsimps [real_of_preal_def, |
|
822 real_less_def,real_minus])); |
758 by (REPEAT(rtac exI 1)); |
823 by (REPEAT(rtac exI 1)); |
759 by (EVERY[rtac conjI 1, rtac conjI 2]); |
824 by (EVERY[rtac conjI 1, rtac conjI 2]); |
760 by (REPEAT(Blast_tac 2)); |
825 by (REPEAT(Blast_tac 2)); |
761 by (auto_tac (claset(),simpset() addsimps preal_add_ac)); |
826 by (auto_tac (claset(),simpset() addsimps preal_add_ac)); |
762 by (asm_full_simp_tac (simpset() addsimps [preal_add_assoc RS sym]) 1); |
827 by (asm_full_simp_tac (simpset() addsimps [preal_add_assoc RS sym]) 1); |
763 by (auto_tac (claset(),simpset() addsimps preal_add_ac)); |
828 by (auto_tac (claset(),simpset() addsimps preal_add_ac)); |
764 qed "real_preal_minus_less_rev1"; |
829 qed "real_of_preal_minus_less_rev1"; |
765 |
830 |
766 Goal "%#m1 < %#m2 ==> - %#m2 < - %#m1"; |
831 Goal "real_of_preal m1 < real_of_preal m2 \ |
767 by (auto_tac (claset(), |
832 \ ==> - real_of_preal m2 < - real_of_preal m1"; |
768 simpset() addsimps [real_preal_def,real_less_def,real_minus])); |
833 by (auto_tac (claset(), |
|
834 simpset() addsimps [real_of_preal_def, |
|
835 real_less_def,real_minus])); |
769 by (REPEAT(rtac exI 1)); |
836 by (REPEAT(rtac exI 1)); |
770 by (EVERY[rtac conjI 1, rtac conjI 2]); |
837 by (EVERY[rtac conjI 1, rtac conjI 2]); |
771 by (REPEAT(Blast_tac 2)); |
838 by (REPEAT(Blast_tac 2)); |
772 by (auto_tac (claset(),simpset() addsimps preal_add_ac)); |
839 by (auto_tac (claset(),simpset() addsimps preal_add_ac)); |
773 by (asm_full_simp_tac (simpset() addsimps [preal_add_assoc RS sym]) 1); |
840 by (asm_full_simp_tac (simpset() addsimps [preal_add_assoc RS sym]) 1); |
774 by (auto_tac (claset(),simpset() addsimps preal_add_ac)); |
841 by (auto_tac (claset(),simpset() addsimps preal_add_ac)); |
775 qed "real_preal_minus_less_rev2"; |
842 qed "real_of_preal_minus_less_rev2"; |
776 |
843 |
777 Goal "(- %#m1 < - %#m2) = (%#m2 < %#m1)"; |
844 Goal "(- real_of_preal m1 < - real_of_preal m2) = \ |
778 by (blast_tac (claset() addSIs [real_preal_minus_less_rev1, |
845 \ (real_of_preal m2 < real_of_preal m1)"; |
779 real_preal_minus_less_rev2]) 1); |
846 by (blast_tac (claset() addSIs [real_of_preal_minus_less_rev1, |
780 qed "real_preal_minus_less_rev_iff"; |
847 real_of_preal_minus_less_rev2]) 1); |
781 |
848 qed "real_of_preal_minus_less_rev_iff"; |
782 Addsimps [real_preal_minus_less_rev_iff]; |
849 |
|
850 Addsimps [real_of_preal_minus_less_rev_iff]; |
783 |
851 |
784 (*** linearity ***) |
852 (*** linearity ***) |
785 Goal "(R1::real) < R2 | R1 = R2 | R2 < R1"; |
853 Goal "(R1::real) < R2 | R1 = R2 | R2 < R1"; |
786 by (res_inst_tac [("x","R1")] real_preal_trichotomyE 1); |
854 by (res_inst_tac [("x","R1")] real_of_preal_trichotomyE 1); |
787 by (ALLGOALS(res_inst_tac [("x","R2")] real_preal_trichotomyE)); |
855 by (ALLGOALS(res_inst_tac [("x","R2")] real_of_preal_trichotomyE)); |
788 by (auto_tac (claset() addSDs [preal_le_anti_sym], |
856 by (auto_tac (claset() addSDs [preal_le_anti_sym], |
789 simpset() addsimps [preal_less_le_iff,real_preal_minus_less_zero, |
857 simpset() addsimps [preal_less_le_iff,real_of_preal_minus_less_zero, |
790 real_preal_zero_less,real_preal_minus_less_all])); |
858 real_of_preal_zero_less,real_of_preal_minus_less_all])); |
791 qed "real_linear"; |
859 qed "real_linear"; |
792 |
860 |
793 Goal "!!w::real. (w ~= z) = (w<z | z<w)"; |
861 Goal "!!w::real. (w ~= z) = (w<z | z<w)"; |
794 by (cut_facts_tac [real_linear] 1); |
862 by (cut_facts_tac [real_linear] 1); |
795 by (Blast_tac 1); |
863 by (Blast_tac 1); |
881 Goal "(w::real) < z = (w <= z & w ~= z)"; |
949 Goal "(w::real) < z = (w <= z & w ~= z)"; |
882 by (simp_tac (simpset() addsimps [real_le_def, real_neq_iff]) 1); |
950 by (simp_tac (simpset() addsimps [real_le_def, real_neq_iff]) 1); |
883 by (blast_tac (claset() addSEs [real_less_asym]) 1); |
951 by (blast_tac (claset() addSEs [real_less_asym]) 1); |
884 qed "real_less_le"; |
952 qed "real_less_le"; |
885 |
953 |
886 |
|
887 Goal "(0r < -R) = (R < 0r)"; |
954 Goal "(0r < -R) = (R < 0r)"; |
888 by (res_inst_tac [("x","R")] real_preal_trichotomyE 1); |
955 by (res_inst_tac [("x","R")] real_of_preal_trichotomyE 1); |
889 by (auto_tac (claset(), |
956 by (auto_tac (claset(), |
890 simpset() addsimps [real_preal_not_minus_gt_zero, |
957 simpset() addsimps [real_of_preal_not_minus_gt_zero, |
891 real_preal_not_less_zero,real_preal_zero_less, |
958 real_of_preal_not_less_zero,real_of_preal_zero_less, |
892 real_preal_minus_less_zero])); |
959 real_of_preal_minus_less_zero])); |
893 qed "real_minus_zero_less_iff"; |
960 qed "real_minus_zero_less_iff"; |
894 |
961 |
895 Addsimps [real_minus_zero_less_iff]; |
962 Addsimps [real_minus_zero_less_iff]; |
896 |
963 |
897 Goal "(-R < 0r) = (0r < R)"; |
964 Goal "(-R < 0r) = (0r < R)"; |
898 by (res_inst_tac [("x","R")] real_preal_trichotomyE 1); |
965 by (res_inst_tac [("x","R")] real_of_preal_trichotomyE 1); |
899 by (auto_tac (claset(), |
966 by (auto_tac (claset(), |
900 simpset() addsimps [real_preal_not_minus_gt_zero, |
967 simpset() addsimps [real_of_preal_not_minus_gt_zero, |
901 real_preal_not_less_zero,real_preal_zero_less, |
968 real_of_preal_not_less_zero,real_of_preal_zero_less, |
902 real_preal_minus_less_zero])); |
969 real_of_preal_minus_less_zero])); |
903 qed "real_minus_zero_less_iff2"; |
970 qed "real_minus_zero_less_iff2"; |
904 |
|
905 |
971 |
906 (*Alternative definition for real_less*) |
972 (*Alternative definition for real_less*) |
907 Goal "!!(R::real). R < S ==> ? T. 0r < T & R + T = S"; |
973 Goal "!!(R::real). R < S ==> ? T. 0r < T & R + T = S"; |
908 by (res_inst_tac [("x","R")] real_preal_trichotomyE 1); |
974 by (res_inst_tac [("x","R")] real_of_preal_trichotomyE 1); |
909 by (ALLGOALS(res_inst_tac [("x","S")] real_preal_trichotomyE)); |
975 by (ALLGOALS(res_inst_tac [("x","S")] real_of_preal_trichotomyE)); |
910 by (auto_tac (claset() addSDs [preal_less_add_left_Ex], |
976 by (auto_tac (claset() addSDs [preal_less_add_left_Ex], |
911 simpset() addsimps [real_preal_not_minus_gt_all, |
977 simpset() addsimps [real_of_preal_not_minus_gt_all, |
912 real_preal_add, real_preal_not_less_zero, |
978 real_of_preal_add, real_of_preal_not_less_zero, |
913 real_less_not_refl, |
979 real_less_not_refl, |
914 real_preal_not_minus_gt_zero])); |
980 real_of_preal_not_minus_gt_zero])); |
915 by (res_inst_tac [("x","%#D")] exI 1); |
981 by (res_inst_tac [("x","real_of_preal D")] exI 1); |
916 by (res_inst_tac [("x","%#m+%#ma")] exI 2); |
982 by (res_inst_tac [("x","real_of_preal m+real_of_preal ma")] exI 2); |
917 by (res_inst_tac [("x","%#m")] exI 3); |
983 by (res_inst_tac [("x","real_of_preal m")] exI 3); |
918 by (res_inst_tac [("x","%#D")] exI 4); |
984 by (res_inst_tac [("x","real_of_preal D")] exI 4); |
919 by (auto_tac (claset(), |
985 by (auto_tac (claset(), |
920 simpset() addsimps [real_preal_zero_less, |
986 simpset() addsimps [real_of_preal_zero_less, |
921 real_preal_sum_zero_less,real_add_assoc])); |
987 real_of_preal_sum_zero_less,real_add_assoc])); |
922 qed "real_less_add_positive_left_Ex"; |
988 qed "real_less_add_positive_left_Ex"; |
923 |
|
924 |
|
925 |
989 |
926 (** change naff name(s)! **) |
990 (** change naff name(s)! **) |
927 Goal "(W < S) ==> (0r < S + -W)"; |
991 Goal "(W < S) ==> (0r < S + -W)"; |
928 by (dtac real_less_add_positive_left_Ex 1); |
992 by (dtac real_less_add_positive_left_Ex 1); |
929 by (auto_tac (claset(), |
993 by (auto_tac (claset(), |