NEWS
changeset 17442 c0f0b92c198c
parent 17436 4e603046e539
child 17445 3c9c46b820f5
equal deleted inserted replaced
17441:5b5feca0344a 17442:c0f0b92c198c
   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,