278 pnat_two_eq,real_add,prat_of_pnat_add RS sym,preal_of_prat_add RS sym |
278 pnat_two_eq,real_add,prat_of_pnat_add RS sym,preal_of_prat_add RS sym |
279 ] @ pnat_add_ac) 1); |
279 ] @ pnat_add_ac) 1); |
280 qed "real_of_posnat_two"; |
280 qed "real_of_posnat_two"; |
281 |
281 |
282 Goalw [real_of_posnat_def] |
282 Goalw [real_of_posnat_def] |
283 "real_of_posnat n1 + real_of_posnat n2 = real_of_posnat (n1 + n2) + 1r"; |
283 "real_of_posnat n1 + real_of_posnat n2 = real_of_posnat (n1 + n2) + 1r"; |
284 by (full_simp_tac (simpset() addsimps [real_of_posnat_one RS sym, |
284 by (full_simp_tac (simpset() addsimps [real_of_posnat_one RS sym, |
285 real_of_posnat_def,real_of_preal_add RS sym,preal_of_prat_add RS sym, |
285 real_of_posnat_def,real_of_preal_add RS sym,preal_of_prat_add RS sym, |
286 prat_of_pnat_add RS sym,pnat_of_nat_add]) 1); |
286 prat_of_pnat_add RS sym,pnat_of_nat_add]) 1); |
287 qed "real_of_posnat_add"; |
287 qed "real_of_posnat_add"; |
288 |
288 |
450 Goal "[| 0r<=z; x<=y |] ==> z*x<=z*y"; |
446 Goal "[| 0r<=z; x<=y |] ==> z*x<=z*y"; |
451 by (dres_inst_tac [("x","x")] real_le_imp_less_or_eq 1); |
447 by (dres_inst_tac [("x","x")] real_le_imp_less_or_eq 1); |
452 by (auto_tac (claset() addIs [real_mult_le_less_mono2], simpset())); |
448 by (auto_tac (claset() addIs [real_mult_le_less_mono2], simpset())); |
453 qed "real_mult_le_le_mono1"; |
449 qed "real_mult_le_le_mono1"; |
454 |
450 |
455 Goal "[| 0r < r1; r1 <r2; 0r < x; x < y|] \ |
451 Goal "[| 0r < r1; r1 <r2; 0r < x; x < y|] ==> r1 * x < r2 * y"; |
456 \ ==> r1 * x < r2 * y"; |
|
457 by (dres_inst_tac [("x","x")] real_mult_less_mono2 1); |
452 by (dres_inst_tac [("x","x")] real_mult_less_mono2 1); |
458 by (dres_inst_tac [("R1.0","0r")] real_less_trans 2); |
453 by (dres_inst_tac [("R1.0","0r")] real_less_trans 2); |
459 by (dres_inst_tac [("x","r1")] real_mult_less_mono1 3); |
454 by (dres_inst_tac [("x","r1")] real_mult_less_mono1 3); |
460 by Auto_tac; |
455 by Auto_tac; |
461 by (blast_tac (claset() addIs [real_less_trans]) 1); |
456 by (blast_tac (claset() addIs [real_less_trans]) 1); |
462 qed "real_mult_less_mono"; |
457 qed "real_mult_less_mono"; |
463 |
458 |
464 Goal "[| 0r < r1; r1 <r2; 0r < y|] \ |
459 Goal "[| 0r < r1; r1 <r2; 0r < y|] ==> 0r < r2 * y"; |
465 \ ==> 0r < r2 * y"; |
|
466 by (dres_inst_tac [("R1.0","0r")] real_less_trans 1); |
460 by (dres_inst_tac [("R1.0","0r")] real_less_trans 1); |
467 by (assume_tac 1); |
461 by (assume_tac 1); |
468 by (blast_tac (claset() addIs [real_mult_order]) 1); |
462 by (blast_tac (claset() addIs [real_mult_order]) 1); |
469 qed "real_mult_order_trans"; |
463 qed "real_mult_order_trans"; |
470 |
464 |
471 Goal "[| 0r < r1; r1 <r2; 0r <= x; x < y|] \ |
465 Goal "[| 0r < r1; r1 <r2; 0r <= x; x < y|] ==> r1 * x < r2 * y"; |
472 \ ==> r1 * x < r2 * y"; |
|
473 by (auto_tac (claset() addSDs [real_le_imp_less_or_eq] |
466 by (auto_tac (claset() addSDs [real_le_imp_less_or_eq] |
474 addIs [real_mult_less_mono,real_mult_order_trans], |
467 addIs [real_mult_less_mono,real_mult_order_trans], |
475 simpset())); |
468 simpset())); |
476 qed "real_mult_less_mono3"; |
469 qed "real_mult_less_mono3"; |
477 |
470 |
478 Goal "[| 0r <= r1; r1 <r2; 0r <= x; x < y|] \ |
471 Goal "[| 0r <= r1; r1 <r2; 0r <= x; x < y|] ==> r1 * x < r2 * y"; |
479 \ ==> r1 * x < r2 * y"; |
|
480 by (auto_tac (claset() addSDs [real_le_imp_less_or_eq] |
472 by (auto_tac (claset() addSDs [real_le_imp_less_or_eq] |
481 addIs [real_mult_less_mono,real_mult_order_trans, |
473 addIs [real_mult_less_mono,real_mult_order_trans, |
482 real_mult_order], |
474 real_mult_order], |
483 simpset())); |
475 simpset())); |
484 by (dres_inst_tac [("R2.0","x")] real_less_trans 1); |
476 by (dres_inst_tac [("R2.0","x")] real_less_trans 1); |
485 by (assume_tac 1); |
477 by (assume_tac 1); |
486 by (blast_tac (claset() addIs [real_mult_order]) 1); |
478 by (blast_tac (claset() addIs [real_mult_order]) 1); |
487 qed "real_mult_less_mono4"; |
479 qed "real_mult_less_mono4"; |
488 |
480 |
489 Goal "[| 0r < r1; r1 <= r2; 0r <= x; x <= y |] \ |
481 Goal "[| 0r < r1; r1 <= r2; 0r <= x; x <= y |] ==> r1 * x <= r2 * y"; |
490 \ ==> r1 * x <= r2 * y"; |
|
491 by (rtac real_less_or_eq_imp_le 1); |
482 by (rtac real_less_or_eq_imp_le 1); |
492 by (REPEAT(dtac real_le_imp_less_or_eq 1)); |
483 by (REPEAT(dtac real_le_imp_less_or_eq 1)); |
493 by (auto_tac (claset() addIs [real_mult_less_mono, |
484 by (auto_tac (claset() addIs [real_mult_less_mono, |
494 real_mult_order_trans,real_mult_order], |
485 real_mult_order_trans,real_mult_order], |
495 simpset())); |
486 simpset())); |
496 qed "real_mult_le_mono"; |
487 qed "real_mult_le_mono"; |
497 |
488 |
498 Goal "[| 0r < r1; r1 < r2; 0r <= x; x <= y |] \ |
489 Goal "[| 0r < r1; r1 < r2; 0r <= x; x <= y |] ==> r1 * x <= r2 * y"; |
499 \ ==> r1 * x <= r2 * y"; |
|
500 by (rtac real_less_or_eq_imp_le 1); |
490 by (rtac real_less_or_eq_imp_le 1); |
501 by (REPEAT(dtac real_le_imp_less_or_eq 1)); |
491 by (REPEAT(dtac real_le_imp_less_or_eq 1)); |
502 by (auto_tac (claset() addIs [real_mult_less_mono, real_mult_order_trans, |
492 by (auto_tac (claset() addIs [real_mult_less_mono, real_mult_order_trans, |
503 real_mult_order], |
493 real_mult_order], |
504 simpset())); |
494 simpset())); |
505 qed "real_mult_le_mono2"; |
495 qed "real_mult_le_mono2"; |
506 |
496 |
507 Goal "[| 0r <= r1; r1 < r2; 0r <= x; x <= y |] \ |
497 Goal "[| 0r <= r1; r1 < r2; 0r <= x; x <= y |] ==> r1 * x <= r2 * y"; |
508 \ ==> r1 * x <= r2 * y"; |
|
509 by (dtac real_le_imp_less_or_eq 1); |
498 by (dtac real_le_imp_less_or_eq 1); |
510 by (auto_tac (claset() addIs [real_mult_le_mono2],simpset())); |
499 by (auto_tac (claset() addIs [real_mult_le_mono2],simpset())); |
511 by (dtac real_le_trans 1 THEN assume_tac 1); |
500 by (dtac real_le_trans 1 THEN assume_tac 1); |
512 by (auto_tac (claset() addIs [real_less_le_mult_order], simpset())); |
501 by (auto_tac (claset() addIs [real_less_le_mult_order], simpset())); |
513 qed "real_mult_le_mono3"; |
502 qed "real_mult_le_mono3"; |
514 |
503 |
515 Goal "[| 0r <= r1; r1 <= r2; 0r <= x; x <= y |] \ |
504 Goal "[| 0r <= r1; r1 <= r2; 0r <= x; x <= y |] ==> r1 * x <= r2 * y"; |
516 \ ==> r1 * x <= r2 * y"; |
|
517 by (dres_inst_tac [("x","r1")] real_le_imp_less_or_eq 1); |
505 by (dres_inst_tac [("x","r1")] real_le_imp_less_or_eq 1); |
518 by (auto_tac (claset() addIs [real_mult_le_mono3, real_mult_le_le_mono1], |
506 by (auto_tac (claset() addIs [real_mult_le_mono3, real_mult_le_le_mono1], |
519 simpset())); |
507 simpset())); |
520 qed "real_mult_le_mono4"; |
508 qed "real_mult_le_mono4"; |
521 |
509 |