487 hypreal = real star |
487 hypreal = real star |
488 hypnat = nat star |
488 hypnat = nat star |
489 hcomplex = complex star |
489 hcomplex = complex star |
490 |
490 |
491 * Hyperreal: Many groups of similarly-defined constants have been |
491 * Hyperreal: Many groups of similarly-defined constants have been |
492 replaced by polymorphic versions: |
492 replaced by polymorphic versions (INCOMPATIBILITY): |
493 |
493 |
494 star_of <-- hypreal_of_real, hypnat_of_nat, hcomplex_of_complex |
494 star_of <-- hypreal_of_real, hypnat_of_nat, hcomplex_of_complex |
495 |
495 |
496 starset <-- starsetNat, starsetC |
496 starset <-- starsetNat, starsetC |
497 *s* <-- *sNat*, *sc* |
497 *s* <-- *sNat*, *sc* |
498 starset_n <-- starsetNat_n, starsetC_n |
498 starset_n <-- starsetNat_n, starsetC_n |
499 *sn* <-- *sNatn*, *scn* |
499 *sn* <-- *sNatn*, *scn* |
500 InternalSets <-- InternalNatSets, InternalCSets |
500 InternalSets <-- InternalNatSets, InternalCSets |
501 |
501 |
502 starfun <-- starfunNat, starfunNat2, starfunC, starfunRC, starfunCR |
502 starfun <-- starfun{Nat,Nat2,C,RC,CR} |
503 *f* <-- *fNat*, *fNat2*, *fc*, *fRc*, *fcR* |
503 *f* <-- *fNat*, *fNat2*, *fc*, *fRc*, *fcR* |
504 starfun_n <-- starfunNat_n, starfunNat2_n, starfunC_n, starfunRC_n, starfunCR_n |
504 starfun_n <-- starfun{Nat,Nat2,C,RC,CR}_n |
505 *fn* <-- *fNatn*, *fNat2n*, *fcn*, *fRcn*, *fcRn* |
505 *fn* <-- *fNatn*, *fNat2n*, *fcn*, *fRcn*, *fcRn* |
506 InternalFuns <-- InternalNatFuns, InternalNatFuns2, InternalCFuns, InternalRCFuns, InternalCRFuns |
506 InternalFuns <-- InternalNatFuns, InternalNatFuns2, Internal{C,RC,CR}Funs |
507 |
507 |
508 * Hyperreal: Many type-specific theorems have been removed in favor of |
508 * Hyperreal: Many type-specific theorems have been removed in favor of |
509 theorems specific to various axiomatic type classes: |
509 theorems specific to various axiomatic type classes (INCOMPATIBILITY): |
510 |
510 |
511 add_commute <-- hypreal_add_commute, hypnat_add_commute, hcomplex_add_commute |
511 add_commute <-- {hypreal,hypnat,hcomplex}_add_commute |
512 add_assoc <-- hypreal_add_assoc, hypnat_add_assoc, hcomplex_add_assoc |
512 add_assoc <-- {hypreal,hypnat,hcomplex}_add_assocs |
513 OrderedGroup.add_0 <-- hypreal_add_zero_left, hypnat_add_zero_left, hcomplex_add_zero_left |
513 OrderedGroup.add_0 <-- {hypreal,hypnat,hcomplex}_add_zero_left |
514 OrderedGroup.add_0_right <-- hypreal_add_zero_right, hcomplex_add_zero_right |
514 OrderedGroup.add_0_right <-- {hypreal,hcomplex}_add_zero_right |
515 right_minus <-- hypreal_add_minus |
515 right_minus <-- hypreal_add_minus |
516 left_minus <-- hypreal_add_minus_left, hcomplex_add_minus_left |
516 left_minus <-- {hypreal,hcomplex}_add_minus_left |
517 mult_commute <-- hypreal_mult_commute, hypnat_mult_commute, hcomplex_mult_commute |
517 mult_commute <-- {hypreal,hypnat,hcomplex}_mult_commute |
518 mult_assoc <-- hypreal_mult_assoc, hypnat_mult_assoc, hcomplex_mult_assoc |
518 mult_assoc <-- {hypreal,hypnat,hcomplex}_mult_assoc |
519 mult_1_left <-- hypreal_mult_1, hypnat_mult_1, hcomplex_mult_one_left |
519 mult_1_left <-- {hypreal,hypnat}_mult_1, hcomplex_mult_one_left |
520 mult_1_right <-- hcomplex_mult_one_right |
520 mult_1_right <-- hcomplex_mult_one_right |
521 mult_zero_left <-- hcomplex_mult_zero_left |
521 mult_zero_left <-- hcomplex_mult_zero_left |
522 left_distrib <-- hypreal_add_mult_distrib, hypnat_add_mult_distrib, hcomplex_add_mult_distrib |
522 left_distrib <-- {hypreal,hypnat,hcomplex}_add_mult_distrib |
523 right_distrib <-- hypnat_add_mult_distrib2 |
523 right_distrib <-- hypnat_add_mult_distrib2 |
524 zero_neq_one <-- hypreal_zero_not_eq_one, hypnat_zero_not_eq_one, hcomplex_zero_not_eq_one |
524 zero_neq_one <-- {hypreal,hypnat,hcomplex}_zero_not_eq_one |
525 right_inverse <-- hypreal_mult_inverse |
525 right_inverse <-- hypreal_mult_inverse |
526 left_inverse <-- hypreal_mult_inverse_left, hcomplex_mult_inv_left |
526 left_inverse <-- hypreal_mult_inverse_left, hcomplex_mult_inv_left |
527 order_refl <-- hypreal_le_refl, hypnat_le_refl |
527 order_refl <-- {hypreal,hypnat}_le_refl |
528 order_trans <-- hypreal_le_trans, hypnat_le_trans |
528 order_trans <-- {hypreal,hypnat}_le_trans |
529 order_antisym <-- hypreal_le_anti_sym, hypnat_le_anti_sym |
529 order_antisym <-- {hypreal,hypnat}_le_anti_sym |
530 order_less_le <-- hypreal_less_le, hypnat_less_le |
530 order_less_le <-- {hypreal,hypnat}_less_le |
531 linorder_linear <-- hypreal_le_linear, hypnat_le_linear |
531 linorder_linear <-- {hypreal,hypnat}_le_linear |
532 add_left_mono <-- hypreal_add_left_mono, hypnat_add_left_mono |
532 add_left_mono <-- {hypreal,hypnat}_add_left_mono |
533 mult_strict_left_mono <-- hypreal_mult_less_mono2, hypnat_mult_less_mono2 |
533 mult_strict_left_mono <-- {hypreal,hypnat}_mult_less_mono2 |
534 add_nonneg_nonneg <-- hypreal_le_add_order |
534 add_nonneg_nonneg <-- hypreal_le_add_order |
535 |
535 |
536 * Hyperreal: Separate theorems having to do with type-specific |
536 * Hyperreal: Separate theorems having to do with type-specific |
537 versions of constants have been merged into theorems that apply to the |
537 versions of constants have been merged into theorems that apply to the |
538 new polymorphic constants: |
538 new polymorphic constants (INCOMPATIBILITY): |
539 |
539 |
540 STAR_UNIV_set <-- STAR_real_set, NatStar_real_set, STARC_complex_set |
540 STAR_UNIV_set <-- {STAR_real,NatStar_real,STARC_complex}_set |
541 STAR_empty_set <-- NatStar_empty_set, STARC_empty_set |
541 STAR_empty_set <-- {STAR,NatStar,STARC}_empty_set |
542 STAR_Un <-- NatStar_Un, STARC_Un |
542 STAR_Un <-- {STAR,NatStar,STARC}_Un |
543 STAR_Int <-- NatStar_Int, STARC_Int |
543 STAR_Int <-- {STAR,NatStar,STARC}_Int |
544 STAR_Compl <-- NatStar_Compl, STARC_Compl |
544 STAR_Compl <-- {STAR,NatStar,STARC}_Compl |
545 STAR_subset <-- NatStar_subset, STARC_subset |
545 STAR_subset <-- {STAR,NatStar,STARC}_subset |
546 STAR_mem <-- NatStar_mem, STARC_mem |
546 STAR_mem <-- {STAR,NatStar,STARC}_mem |
547 STAR_mem_Compl <-- STARC_mem_Compl |
547 STAR_mem_Compl <-- {STAR,STARC}_mem_Compl |
548 STAR_diff <-- STARC_diff |
548 STAR_diff <-- {STAR,STARC}_diff |
549 STAR_star_of_image_subset <-- STAR_hypreal_of_real_image_subset, NatStar_hypreal_of_real_image_subset, STARC_hcomplex_of_complex_image_subset |
549 STAR_star_of_image_subset <-- {STAR_hypreal_of_real, NatStar_hypreal_of_real, |
550 starset_n_Un <-- starsetNat_n_Un, starsetC_n_Un |
550 STARC_hcomplex_of_complex}_image_subset |
551 starset_n_Int <-- starsetNat_n_Int, starsetC_n_Int |
551 starset_n_Un <-- starset{Nat,C}_n_Un |
552 starset_n_Compl <-- starsetNat_n_Compl, starsetC_n_Compl |
552 starset_n_Int <-- starset{Nat,C}_n_Int |
553 starset_n_diff <-- starsetNat_n_diff, starsetC_n_diff |
553 starset_n_Compl <-- starset{Nat,C}_n_Compl |
554 InternalSets_Un <-- InternalNatSets_Un, InternalCSets_Un |
554 starset_n_diff <-- starset{Nat,C}_n_diff |
555 InternalSets_Int <-- InternalNatSets_Int, InternalCSets_Int |
555 InternalSets_Un <-- Internal{Nat,C}Sets_Un |
556 InternalSets_Compl <-- InternalNatSets_Compl, InternalCSets_Compl |
556 InternalSets_Int <-- Internal{Nat,C}Sets_Int |
557 InternalSets_diff <-- InternalNatSets_diff, InternalCSets_diff |
557 InternalSets_Compl <-- Internal{Nat,C}Sets_Compl |
558 InternalSets_UNIV_diff <-- InternalNatSets_UNIV_diff, InternalCSets_UNIV_diff |
558 InternalSets_diff <-- Internal{Nat,C}Sets_diff |
559 InternalSets_starset_n <-- InternalNatSets_starsetNat_n, InternalCSets_starsetC_n |
559 InternalSets_UNIV_diff <-- Internal{Nat,C}Sets_UNIV_diff |
560 starset_starset_n_eq <-- starsetNat_starsetNat_n_eq, starsetC_starsetC_n_eq |
560 InternalSets_starset_n <-- Internal{Nat,C}Sets_starset{Nat,C}_n |
561 starset_n_starset <-- starsetNat_n_starsetNat, starsetC_n_starsetC |
561 starset_starset_n_eq <-- starset{Nat,C}_starset{Nat,C}_n_eq |
562 starfun_n_starfun <-- starfunNat_n_starfunNat, starfunNat2_n_starfunNat2, starfunC_n_starfunC, starfunRC_n_starfunRC, starfunCR_n_starfunCR |
562 starset_n_starset <-- starset{Nat,C}_n_starset{Nat,C} |
563 starfun <-- starfunNat, starfunNat2, starfunC, starfunRC, starfunCR |
563 starfun_n_starfun <-- starfun{Nat,Nat2,C,RC,CR}_n_starfun{Nat,Nat2,C,RC,CR} |
564 starfun_mult <-- starfunNat_mult, starfunNat2_mult, starfunC_mult, starfunRC_mult, starfunCR_mult |
564 starfun <-- starfun{Nat,Nat2,C,RC,CR} |
565 starfun_add <-- starfunNat_add, starfunNat2_add, starfunC_add, starfunRC_add, starfunCR_add |
565 starfun_mult <-- starfun{Nat,Nat2,C,RC,CR}_mult |
566 starfun_minus <-- starfunNat_minus, starfunNat2_minus, starfunC_minus, starfunRC_minus, starfunCR_minus |
566 starfun_add <-- starfun{Nat,Nat2,C,RC,CR}_add |
567 starfun_diff <-- starfunC_diff, starfunRC_diff, starfunCR_diff |
567 starfun_minus <-- starfun{Nat,Nat2,C,RC,CR}_minus |
568 starfun_o <-- starfunNatNat2_o, starfunNat2_o, starfun_stafunNat_o, starfunC_o, starfunC_starfunRC_o, starfun_starfunCR_o |
568 starfun_diff <-- starfun{C,RC,CR}_diff |
569 starfun_o2 <-- starfunNatNat2_o2, starfun_stafunNat_o2, starfunC_o2, starfunC_starfunRC_o2, starfun_starfunCR_o2 |
569 starfun_o <-- starfun{NatNat2,Nat2,_stafunNat,C,C_starfunRC,_starfunCR}_o |
570 starfun_const_fun <-- starfunNat_const_fun, starfunNat2_const_fun, starfunC_const_fun, starfunRC_const_fun, starfunCR_const_fun |
570 starfun_o2 <-- starfun{NatNat2,_stafunNat,C,C_starfunRC,_starfunCR}_o2 |
571 starfun_inverse <-- starfunNat_inverse, starfunC_inverse, starfunRC_inverse, starfunCR_inverse |
571 starfun_const_fun <-- starfun{Nat,Nat2,C,RC,CR}_const_fun |
572 starfun_eq <-- starfunNat_eq, starfunNat2_eq, starfunC_eq, starfunRC_eq, starfunCR_eq |
572 starfun_inverse <-- starfun{Nat,C,RC,CR}_inverse |
573 starfun_eq_iff <-- starfunC_eq_iff, starfunRC_eq_iff, starfunCR_eq_iff |
573 starfun_eq <-- starfun{Nat,Nat2,C,RC,CR}_eq |
|
574 starfun_eq_iff <-- starfun{C,RC,CR}_eq_iff |
574 starfun_Id <-- starfunC_Id |
575 starfun_Id <-- starfunC_Id |
575 starfun_approx <-- starfunNat_approx, starfunCR_approx |
576 starfun_approx <-- starfun{Nat,CR}_approx |
576 starfun_capprox <-- starfunC_capprox, starfunRC_capprox |
577 starfun_capprox <-- starfun{C,RC}_capprox |
577 starfun_abs <-- starfunNat_rabs |
578 starfun_abs <-- starfunNat_rabs |
578 starfun_lambda_cancel <-- starfunC_lambda_cancel, starfunCR_lambda_cancel, starfunRC_lambda_cancel |
579 starfun_lambda_cancel <-- starfun{C,CR,RC}_lambda_cancel |
579 starfun_lambda_cancel2 <-- starfunC_lambda_cancel2, starfunCR_lambda_cancel2, starfunRC_lambda_cancel2 |
580 starfun_lambda_cancel2 <-- starfun{C,CR,RC}_lambda_cancel2 |
580 starfun_mult_HFinite_approx <-- starfunCR_mult_HFinite_capprox |
581 starfun_mult_HFinite_approx <-- starfunCR_mult_HFinite_capprox |
581 starfun_mult_CFinite_capprox <-- starfunC_mult_CFinite_capprox, starfunRC_mult_CFinite_capprox |
582 starfun_mult_CFinite_capprox <-- starfun{C,RC}_mult_CFinite_capprox |
582 starfun_add_capprox <-- starfunC_add_capprox, starfunRC_add_capprox |
583 starfun_add_capprox <-- starfun{C,RC}_add_capprox |
583 starfun_add_approx <-- starfunCR_add_approx |
584 starfun_add_approx <-- starfunCR_add_approx |
584 starfun_inverse_inverse <-- starfunC_inverse_inverse |
585 starfun_inverse_inverse <-- starfunC_inverse_inverse |
585 starfun_divide <-- starfunC_divide, starfunCR_divide, starfunRC_divide |
586 starfun_divide <-- starfun{C,CR,RC}_divide |
586 starfun_n_congruent <-- starfunNat_n_congruent, starfunC_n_congruent |
587 starfun_n <-- starfun{Nat,C}_n |
587 starfun_n <-- starfunNat_n, starfunC_n |
588 starfun_n_mult <-- starfun{Nat,C}_n_mult |
588 starfun_n_mult <-- starfunNat_n_mult, starfunC_n_mult |
589 starfun_n_add <-- starfun{Nat,C}_n_add |
589 starfun_n_add <-- starfunNat_n_add, starfunC_n_add |
|
590 starfun_n_add_minus <-- starfunNat_n_add_minus |
590 starfun_n_add_minus <-- starfunNat_n_add_minus |
591 starfun_n_const_fun <-- starfunNat_n_const_fun, starfunC_n_const_fun |
591 starfun_n_const_fun <-- starfun{Nat,C}_n_const_fun |
592 starfun_n_minus <-- starfunNat_n_minus, starfunC_n_minus |
592 starfun_n_minus <-- starfun{Nat,C}_n_minus |
593 starfun_n_eq <-- starfunNat_n_eq, starfunC_n_eq |
593 starfun_n_eq <-- starfun{Nat,C}_n_eq |
594 |
594 |
595 star_n_add <-- hypreal_add, hypnat_add, hcomplex_add |
595 star_n_add <-- {hypreal,hypnat,hcomplex}_add |
596 star_n_minus <-- hypreal_minus, hcomplex_minus |
596 star_n_minus <-- {hypreal,hcomplex}_minus |
597 star_n_diff <-- hypreal_diff, hcomplex_diff |
597 star_n_diff <-- {hypreal,hcomplex}_diff |
598 star_n_mult <-- hypreal_mult, hcomplex_mult |
598 star_n_mult <-- {hypreal,hcomplex}_mult |
599 star_n_inverse <-- hypreal_inverse, hcomplex_inverse |
599 star_n_inverse <-- {hypreal,hcomplex}_inverse |
600 star_n_le <-- hypreal_le, hypnat_le |
600 star_n_le <-- {hypreal,hypnat}_le |
601 star_n_less <-- hypreal_less, hypnat_less |
601 star_n_less <-- {hypreal,hypnat}_less |
602 star_n_zero_num <-- hypreal_zero_num, hypnat_zero_num, hcomplex_zero_num |
602 star_n_zero_num <-- {hypreal,hypnat,hcomplex}_zero_num |
603 star_n_one_num <-- hypreal_one_num, hypnat_one_num, hcomplex_one_num |
603 star_n_one_num <-- {hypreal,hypnat,hcomplex}_one_num |
604 star_n_abs <-- hypreal_hrabs |
604 star_n_abs <-- hypreal_hrabs |
605 star_n_divide <-- hcomplex_divide |
605 star_n_divide <-- hcomplex_divide |
606 |
606 |
607 star_of_add <-- hypreal_of_real_add, hcomplex_of_complex_add |
607 star_of_add <-- {hypreal_of_real,hypnat_of_nat,hcomplex_of_complex}_add |
608 star_of_minus <-- hypreal_of_real_minus, hcomplex_of_complex_minus |
608 star_of_minus <-- {hypreal_of_real,hcomplex_of_complex}_minus |
609 star_of_diff <-- hypreal_of_real_diff |
609 star_of_diff <-- hypreal_of_real_diff |
610 star_of_mult <-- hypreal_of_real_mult, hcomplex_of_complex_mult |
610 star_of_mult <-- {hypreal_of_real,hypnat_of_nat,hcomplex_of_complex}_mult |
611 star_of_one <-- hypreal_of_real_one, hcomplex_of_complex_one |
611 star_of_one <-- {hypreal_of_real,hcomplex_of_complex}_one |
612 star_of_zero <-- hypreal_of_real_zero, hcomplex_of_complex_zero |
612 star_of_zero <-- {hypreal_of_real,hypnat_of_nat,hcomplex_of_complex}_zero |
613 star_of_le <-- hypreal_of_real_le_iff |
613 star_of_le <-- {hypreal_of_real,hypnat_of_nat}_le_iff |
614 star_of_less <-- hypreal_of_real_less_iff |
614 star_of_less <-- {hypreal_of_real,hypnat_of_nat}_less_iff |
615 star_of_eq <-- hypreal_of_real_eq_iff, hcomplex_of_complex_eq_iff |
615 star_of_eq <-- {hypreal_of_real,hypnat_of_nat,hcomplex_of_complex}_eq_iff |
616 star_of_inverse <-- hypreal_of_real_inverse, hcomplex_of_complex_inverse |
616 star_of_inverse <-- {hypreal_of_real,hcomplex_of_complex}_inverse |
617 star_of_divide <-- hypreal_of_real_divide, hcomplex_of_complex_divide |
617 star_of_divide <-- {hypreal_of_real,hcomplex_of_complex}_divide |
618 star_of_of_nat <-- hypreal_of_real_of_nat, hcomplex_of_complex_of_nat |
618 star_of_of_nat <-- {hypreal_of_real,hcomplex_of_complex}_of_nat |
619 star_of_of_int <-- hypreal_of_real_of_int, hcomplex_of_complex_of_int |
619 star_of_of_int <-- {hypreal_of_real,hcomplex_of_complex}_of_int |
620 star_of_number_of <-- hypreal_number_of, hcomplex_number_of |
620 star_of_number_of <-- {hypreal,hcomplex}_number_of |
621 star_of_number_less <-- number_of_less_hypreal_of_real_iff |
621 star_of_number_less <-- number_of_less_hypreal_of_real_iff |
622 star_of_number_le <-- number_of_le_hypreal_of_real_iff |
622 star_of_number_le <-- number_of_le_hypreal_of_real_iff |
623 star_of_eq_number <-- hypreal_of_real_eq_number_of_iff |
623 star_of_eq_number <-- hypreal_of_real_eq_number_of_iff |
624 star_of_less_number <-- hypreal_of_real_less_number_of_iff |
624 star_of_less_number <-- hypreal_of_real_less_number_of_iff |
625 star_of_le_number <-- hypreal_of_real_le_number_of_iff |
625 star_of_le_number <-- hypreal_of_real_le_number_of_iff |
626 star_of_power <-- hypreal_of_real_power |
626 star_of_power <-- hypreal_of_real_power |
627 star_of_eq_0 <-- hcomplex_of_complex_zero_iff |
627 star_of_eq_0 <-- hcomplex_of_complex_zero_iff |
628 |
628 |
|
629 * Hyperreal: new method "transfer" that implements the transfer |
|
630 principle of nonstandard analysis. With a subgoal that mentions |
|
631 nonstandard types like "'a star", the command "apply transfer" |
|
632 replaces it with an equivalent one that mentions only standard types. |
|
633 To be successful, all free variables must have standard types; non- |
|
634 standard variables must have explicit universal quantifiers. |
|
635 |
629 |
636 |
630 *** HOLCF *** |
637 *** HOLCF *** |
631 |
638 |
632 * HOLCF: discontinued special version of 'constdefs' (which used to |
639 * HOLCF: discontinued special version of 'constdefs' (which used to |
633 support continuous functions) in favor of the general Pure one with |
640 support continuous functions) in favor of the general Pure one with |
634 full type-inference. |
641 full type-inference. |
|
642 |
|
643 * HOLCF: new simplification procedure for solving continuity conditions; |
|
644 it is much faster on terms with many nested lambda abstractions (cubic |
|
645 instead of exponential time). |
|
646 |
|
647 * HOLCF: new syntax for domain package: selector names are now optional. |
|
648 Parentheses should be omitted unless argument is lazy, for example: |
|
649 |
|
650 domain 'a stream = cons "'a" (lazy "'a stream") |
|
651 |
|
652 * HOLCF: new command "fixrec" for defining recursive functions with pattern |
|
653 matching; defining multiple functions with mutual recursion is also supported. |
|
654 Patterns may include the constants cpair, spair, up, sinl, sinr, or any data |
|
655 constructor defined by the domain package. The given equations are proven as |
|
656 rewrite rules. See HOLCF/ex/Fixrec_ex.thy for syntax and examples. |
|
657 |
|
658 * HOLCF: new commands "cpodef" and "pcpodef" for defining predicate subtypes |
|
659 of cpo and pcpo types. Syntax is exactly like the "typedef" command, but the |
|
660 proof obligation additionally includes an admissibility requirement. The |
|
661 packages generate instances of class cpo or pcpo, with continuity and |
|
662 strictness theorems for Rep and Abs. |
635 |
663 |
636 |
664 |
637 *** ZF *** |
665 *** ZF *** |
638 |
666 |
639 * ZF/ex: theories Group and Ring provide examples in abstract algebra, |
667 * ZF/ex: theories Group and Ring provide examples in abstract algebra, |