src/HOL/Real/PRat.ML
changeset 7825 1be9b63e7d93
parent 7376 46f92a120af9
child 9043 ca761fe227d8
equal deleted inserted replaced
7824:1a85ba81d019 7825:1be9b63e7d93
   784 Goal "? q. q ~: {x::prat. x < prat_of_pnat (Abs_pnat 1)}";
   784 Goal "? q. q ~: {x::prat. x < prat_of_pnat (Abs_pnat 1)}";
   785 by (res_inst_tac [("x","prat_of_pnat (Abs_pnat 1)")] exI 1);
   785 by (res_inst_tac [("x","prat_of_pnat (Abs_pnat 1)")] exI 1);
   786 by (auto_tac (claset(),simpset() addsimps [prat_less_not_refl]));
   786 by (auto_tac (claset(),simpset() addsimps [prat_less_not_refl]));
   787 qed "lemma_prat_less_1_not_memEx";
   787 qed "lemma_prat_less_1_not_memEx";
   788 
   788 
   789 Goal "{x::prat. x < prat_of_pnat (Abs_pnat 1)} ~= {q::prat. True}";
   789 Goal "{x::prat. x < prat_of_pnat (Abs_pnat 1)} ~= UNIV";
   790 by (rtac notI 1);
   790 by (rtac notI 1);
   791 by (cut_facts_tac [lemma_prat_less_1_not_memEx] 1);
   791 by (cut_facts_tac [lemma_prat_less_1_not_memEx] 1);
   792 by (Asm_full_simp_tac 1);
   792 by (Asm_full_simp_tac 1);
   793 qed "lemma_prat_less_1_set_not_rat_set";
   793 qed "lemma_prat_less_1_set_not_rat_set";
   794 
   794 
   795 Goalw [psubset_def,subset_def] 
   795 Goalw [psubset_def,subset_def] 
   796       "{x::prat. x < prat_of_pnat (Abs_pnat 1)} < {q::prat. True}";
   796       "{x::prat. x < prat_of_pnat (Abs_pnat 1)} < UNIV";
   797 by (asm_full_simp_tac (simpset() addsimps 
   797 by (asm_full_simp_tac
   798       [lemma_prat_less_1_set_not_rat_set,
   798     (simpset() addsimps [lemma_prat_less_1_set_not_rat_set,
   799        lemma_prat_less_1_not_memEx]) 1);
   799 			 lemma_prat_less_1_not_memEx]) 1);
   800 qed "lemma_prat_less_1_set_psubset_rat_set";
   800 qed "lemma_prat_less_1_set_psubset_rat_set";
   801 
   801 
   802 (*** prove non_emptiness of type ***)
   802 (*** prove non_emptiness of type ***)
   803 Goal "{x::prat. x < prat_of_pnat (Abs_pnat 1)} : {A. {} < A & \
   803 Goal "{x::prat. x < prat_of_pnat (Abs_pnat 1)} : {A. {} < A & \
   804 \               A < {q::prat. True} & \
   804 \               A < UNIV & \
   805 \               (!y: A. ((!z. z < y --> z: A) & \
   805 \               (!y: A. ((!z. z < y --> z: A) & \
   806 \               (? u: A. y < u)))}";
   806 \               (? u: A. y < u)))}";
   807 by (auto_tac (claset() addDs [prat_less_trans],
   807 by (auto_tac (claset() addDs [prat_less_trans],
   808     simpset() addsimps [empty_set_psubset_lemma_prat_less_1_set,
   808     simpset() addsimps [empty_set_psubset_lemma_prat_less_1_set,
   809                        lemma_prat_less_1_set_psubset_rat_set]));
   809                        lemma_prat_less_1_set_psubset_rat_set]));