src/HOL/Real/PReal.ML
changeset 11655 923e4d0d36d5
parent 11464 ddea204de5bc
child 11701 3d51fbf81c17
equal deleted inserted replaced
11654:53d18ab990f6 11655:923e4d0d36d5
   413 \      ==> z: Rep_preal(R+S)";
   413 \      ==> z: Rep_preal(R+S)";
   414 by (rtac (preal_mem_add_set RS Abs_preal_inverse RS ssubst) 1);
   414 by (rtac (preal_mem_add_set RS Abs_preal_inverse RS ssubst) 1);
   415 by (Fast_tac 1);
   415 by (Fast_tac 1);
   416 qed "mem_Rep_preal_addI";
   416 qed "mem_Rep_preal_addI";
   417 
   417 
   418 Goal " z: Rep_preal(R+S) = (EX x: Rep_preal(R). \
   418 Goal "(z: Rep_preal(R+S)) = (EX x: Rep_preal(R). \
   419 \                                 EX y: Rep_preal(S). z = x + y)";
   419 \                                 EX y: Rep_preal(S). z = x + y)";
   420 by (fast_tac (claset() addSIs [mem_Rep_preal_addD,mem_Rep_preal_addI]) 1);
   420 by (fast_tac (claset() addSIs [mem_Rep_preal_addD,mem_Rep_preal_addI]) 1);
   421 qed "mem_Rep_preal_add_iff";
   421 qed "mem_Rep_preal_add_iff";
   422 
   422 
   423 Goalw [preal_mult_def] 
   423 Goalw [preal_mult_def] 
   432 \      ==> z: Rep_preal(R*S)";
   432 \      ==> z: Rep_preal(R*S)";
   433 by (rtac (preal_mem_mult_set RS Abs_preal_inverse RS ssubst) 1);
   433 by (rtac (preal_mem_mult_set RS Abs_preal_inverse RS ssubst) 1);
   434 by (Fast_tac 1);
   434 by (Fast_tac 1);
   435 qed "mem_Rep_preal_multI";
   435 qed "mem_Rep_preal_multI";
   436 
   436 
   437 Goal " z: Rep_preal(R*S) = (EX x: Rep_preal(R). \
   437 Goal "(z: Rep_preal(R*S)) = (EX x: Rep_preal(R). \
   438 \                                 EX y: Rep_preal(S). z = x * y)";
   438 \                                 EX y: Rep_preal(S). z = x * y)";
   439 by (fast_tac (claset() addSIs [mem_Rep_preal_multD,mem_Rep_preal_multI]) 1);
   439 by (fast_tac (claset() addSIs [mem_Rep_preal_multD,mem_Rep_preal_multI]) 1);
   440 qed "mem_Rep_preal_mult_iff";
   440 qed "mem_Rep_preal_mult_iff";
   441 
   441 
   442 (** More lemmas for preal_add_mult_distrib2 **)
   442 (** More lemmas for preal_add_mult_distrib2 **)
   783 by (cut_inst_tac [("r1.0","w"),("r2.0","z")] preal_linear 1);
   783 by (cut_inst_tac [("r1.0","w"),("r2.0","z")] preal_linear 1);
   784 by (auto_tac (claset() addEs [preal_less_irrefl], simpset()));
   784 by (auto_tac (claset() addEs [preal_less_irrefl], simpset()));
   785 qed "preal_neq_iff";
   785 qed "preal_neq_iff";
   786 
   786 
   787 (* Axiom 'order_less_le' of class 'order': *)
   787 (* Axiom 'order_less_le' of class 'order': *)
   788 Goal "(w::preal) < z = (w <= z & w ~= z)";
   788 Goal "((w::preal) < z) = (w <= z & w ~= z)";
   789 by (simp_tac (simpset() addsimps [preal_less_le_iff RS sym, preal_neq_iff]) 1);
   789 by (simp_tac (simpset() addsimps [preal_less_le_iff RS sym, preal_neq_iff]) 1);
   790 by (blast_tac (claset() addSEs [preal_less_asym]) 1);
   790 by (blast_tac (claset() addSEs [preal_less_asym]) 1);
   791 qed "preal_less_le";
   791 qed "preal_less_le";
   792 
   792 
   793 
   793