NEWS
changeset 17442 c0f0b92c198c
parent 17436 4e603046e539
child 17445 3c9c46b820f5
--- a/NEWS	Fri Sep 16 23:01:29 2005 +0200
+++ b/NEWS	Fri Sep 16 23:55:23 2005 +0200
@@ -489,7 +489,7 @@
   hcomplex = complex star
 
 * Hyperreal: Many groups of similarly-defined constants have been
-replaced by polymorphic versions:
+replaced by polymorphic versions (INCOMPATIBILITY):
 
   star_of <-- hypreal_of_real, hypnat_of_nat, hcomplex_of_complex
 
@@ -499,125 +499,125 @@
   *sn*         <-- *sNatn*, *scn*
   InternalSets <-- InternalNatSets, InternalCSets
 
-  starfun      <-- starfunNat, starfunNat2, starfunC, starfunRC, starfunCR
+  starfun      <-- starfun{Nat,Nat2,C,RC,CR}
   *f*          <-- *fNat*, *fNat2*, *fc*, *fRc*, *fcR*
-  starfun_n    <-- starfunNat_n, starfunNat2_n, starfunC_n, starfunRC_n, starfunCR_n
+  starfun_n    <-- starfun{Nat,Nat2,C,RC,CR}_n
   *fn*         <-- *fNatn*, *fNat2n*, *fcn*, *fRcn*, *fcRn*
-  InternalFuns <-- InternalNatFuns, InternalNatFuns2, InternalCFuns, InternalRCFuns, InternalCRFuns
+  InternalFuns <-- InternalNatFuns, InternalNatFuns2, Internal{C,RC,CR}Funs
 
 * Hyperreal: Many type-specific theorems have been removed in favor of
-theorems specific to various axiomatic type classes:
-
-  add_commute <-- hypreal_add_commute, hypnat_add_commute, hcomplex_add_commute
-  add_assoc   <-- hypreal_add_assoc, hypnat_add_assoc, hcomplex_add_assoc
-  OrderedGroup.add_0 <-- hypreal_add_zero_left, hypnat_add_zero_left, hcomplex_add_zero_left
-  OrderedGroup.add_0_right <-- hypreal_add_zero_right, hcomplex_add_zero_right
+theorems specific to various axiomatic type classes (INCOMPATIBILITY):
+
+  add_commute <-- {hypreal,hypnat,hcomplex}_add_commute
+  add_assoc   <-- {hypreal,hypnat,hcomplex}_add_assocs
+  OrderedGroup.add_0 <-- {hypreal,hypnat,hcomplex}_add_zero_left
+  OrderedGroup.add_0_right <-- {hypreal,hcomplex}_add_zero_right
   right_minus <-- hypreal_add_minus
-  left_minus <-- hypreal_add_minus_left, hcomplex_add_minus_left
-  mult_commute <-- hypreal_mult_commute, hypnat_mult_commute, hcomplex_mult_commute
-  mult_assoc <-- hypreal_mult_assoc, hypnat_mult_assoc, hcomplex_mult_assoc
-  mult_1_left <-- hypreal_mult_1, hypnat_mult_1, hcomplex_mult_one_left
+  left_minus <-- {hypreal,hcomplex}_add_minus_left
+  mult_commute <-- {hypreal,hypnat,hcomplex}_mult_commute
+  mult_assoc <-- {hypreal,hypnat,hcomplex}_mult_assoc
+  mult_1_left <-- {hypreal,hypnat}_mult_1, hcomplex_mult_one_left
   mult_1_right <-- hcomplex_mult_one_right
   mult_zero_left <-- hcomplex_mult_zero_left
-  left_distrib <-- hypreal_add_mult_distrib, hypnat_add_mult_distrib, hcomplex_add_mult_distrib
+  left_distrib <-- {hypreal,hypnat,hcomplex}_add_mult_distrib
   right_distrib <-- hypnat_add_mult_distrib2
-  zero_neq_one <-- hypreal_zero_not_eq_one, hypnat_zero_not_eq_one, hcomplex_zero_not_eq_one
+  zero_neq_one <-- {hypreal,hypnat,hcomplex}_zero_not_eq_one
   right_inverse <-- hypreal_mult_inverse
   left_inverse <-- hypreal_mult_inverse_left, hcomplex_mult_inv_left
-  order_refl <-- hypreal_le_refl, hypnat_le_refl
-  order_trans <-- hypreal_le_trans, hypnat_le_trans
-  order_antisym <-- hypreal_le_anti_sym, hypnat_le_anti_sym
-  order_less_le <-- hypreal_less_le, hypnat_less_le
-  linorder_linear <-- hypreal_le_linear, hypnat_le_linear
-  add_left_mono <-- hypreal_add_left_mono, hypnat_add_left_mono
-  mult_strict_left_mono <-- hypreal_mult_less_mono2, hypnat_mult_less_mono2
+  order_refl <-- {hypreal,hypnat}_le_refl
+  order_trans <-- {hypreal,hypnat}_le_trans
+  order_antisym <-- {hypreal,hypnat}_le_anti_sym
+  order_less_le <-- {hypreal,hypnat}_less_le
+  linorder_linear <-- {hypreal,hypnat}_le_linear
+  add_left_mono <-- {hypreal,hypnat}_add_left_mono
+  mult_strict_left_mono <-- {hypreal,hypnat}_mult_less_mono2
   add_nonneg_nonneg <-- hypreal_le_add_order
 
 * Hyperreal: Separate theorems having to do with type-specific
 versions of constants have been merged into theorems that apply to the
-new polymorphic constants:
-
-  STAR_UNIV_set <-- STAR_real_set, NatStar_real_set, STARC_complex_set
-  STAR_empty_set <-- NatStar_empty_set, STARC_empty_set
-  STAR_Un <-- NatStar_Un, STARC_Un
-  STAR_Int <-- NatStar_Int, STARC_Int
-  STAR_Compl <-- NatStar_Compl, STARC_Compl
-  STAR_subset <-- NatStar_subset, STARC_subset
-  STAR_mem <-- NatStar_mem, STARC_mem
-  STAR_mem_Compl <-- STARC_mem_Compl
-  STAR_diff <-- STARC_diff
-  STAR_star_of_image_subset <-- STAR_hypreal_of_real_image_subset, NatStar_hypreal_of_real_image_subset, STARC_hcomplex_of_complex_image_subset
-  starset_n_Un <-- starsetNat_n_Un, starsetC_n_Un
-  starset_n_Int <-- starsetNat_n_Int, starsetC_n_Int
-  starset_n_Compl <-- starsetNat_n_Compl, starsetC_n_Compl
-  starset_n_diff <-- starsetNat_n_diff, starsetC_n_diff
-  InternalSets_Un <-- InternalNatSets_Un, InternalCSets_Un
-  InternalSets_Int <-- InternalNatSets_Int, InternalCSets_Int
-  InternalSets_Compl <-- InternalNatSets_Compl, InternalCSets_Compl
-  InternalSets_diff <-- InternalNatSets_diff, InternalCSets_diff
-  InternalSets_UNIV_diff <-- InternalNatSets_UNIV_diff, InternalCSets_UNIV_diff
-  InternalSets_starset_n <-- InternalNatSets_starsetNat_n, InternalCSets_starsetC_n
-  starset_starset_n_eq <-- starsetNat_starsetNat_n_eq, starsetC_starsetC_n_eq
-  starset_n_starset <-- starsetNat_n_starsetNat, starsetC_n_starsetC
-  starfun_n_starfun <-- starfunNat_n_starfunNat, starfunNat2_n_starfunNat2, starfunC_n_starfunC, starfunRC_n_starfunRC, starfunCR_n_starfunCR
-  starfun <-- starfunNat, starfunNat2, starfunC, starfunRC, starfunCR
-  starfun_mult <-- starfunNat_mult, starfunNat2_mult, starfunC_mult, starfunRC_mult, starfunCR_mult
-  starfun_add <-- starfunNat_add, starfunNat2_add, starfunC_add, starfunRC_add, starfunCR_add
-  starfun_minus <-- starfunNat_minus, starfunNat2_minus, starfunC_minus, starfunRC_minus, starfunCR_minus
-  starfun_diff <-- starfunC_diff, starfunRC_diff, starfunCR_diff
-  starfun_o <-- starfunNatNat2_o, starfunNat2_o, starfun_stafunNat_o, starfunC_o, starfunC_starfunRC_o, starfun_starfunCR_o
-  starfun_o2 <-- starfunNatNat2_o2, starfun_stafunNat_o2, starfunC_o2, starfunC_starfunRC_o2, starfun_starfunCR_o2
-  starfun_const_fun <-- starfunNat_const_fun, starfunNat2_const_fun, starfunC_const_fun, starfunRC_const_fun, starfunCR_const_fun
-  starfun_inverse <-- starfunNat_inverse, starfunC_inverse, starfunRC_inverse, starfunCR_inverse
-  starfun_eq <-- starfunNat_eq, starfunNat2_eq, starfunC_eq, starfunRC_eq, starfunCR_eq
-  starfun_eq_iff <-- starfunC_eq_iff, starfunRC_eq_iff, starfunCR_eq_iff
+new polymorphic constants (INCOMPATIBILITY):
+
+  STAR_UNIV_set <-- {STAR_real,NatStar_real,STARC_complex}_set
+  STAR_empty_set <-- {STAR,NatStar,STARC}_empty_set
+  STAR_Un <-- {STAR,NatStar,STARC}_Un
+  STAR_Int <-- {STAR,NatStar,STARC}_Int
+  STAR_Compl <-- {STAR,NatStar,STARC}_Compl
+  STAR_subset <-- {STAR,NatStar,STARC}_subset
+  STAR_mem <-- {STAR,NatStar,STARC}_mem
+  STAR_mem_Compl <-- {STAR,STARC}_mem_Compl
+  STAR_diff <-- {STAR,STARC}_diff
+  STAR_star_of_image_subset <-- {STAR_hypreal_of_real, NatStar_hypreal_of_real,
+    STARC_hcomplex_of_complex}_image_subset
+  starset_n_Un <-- starset{Nat,C}_n_Un
+  starset_n_Int <-- starset{Nat,C}_n_Int
+  starset_n_Compl <-- starset{Nat,C}_n_Compl
+  starset_n_diff <-- starset{Nat,C}_n_diff
+  InternalSets_Un <-- Internal{Nat,C}Sets_Un
+  InternalSets_Int <-- Internal{Nat,C}Sets_Int
+  InternalSets_Compl <-- Internal{Nat,C}Sets_Compl
+  InternalSets_diff <-- Internal{Nat,C}Sets_diff
+  InternalSets_UNIV_diff <-- Internal{Nat,C}Sets_UNIV_diff
+  InternalSets_starset_n <-- Internal{Nat,C}Sets_starset{Nat,C}_n
+  starset_starset_n_eq <-- starset{Nat,C}_starset{Nat,C}_n_eq
+  starset_n_starset <-- starset{Nat,C}_n_starset{Nat,C}
+  starfun_n_starfun <-- starfun{Nat,Nat2,C,RC,CR}_n_starfun{Nat,Nat2,C,RC,CR}
+  starfun <-- starfun{Nat,Nat2,C,RC,CR}
+  starfun_mult <-- starfun{Nat,Nat2,C,RC,CR}_mult
+  starfun_add <-- starfun{Nat,Nat2,C,RC,CR}_add
+  starfun_minus <-- starfun{Nat,Nat2,C,RC,CR}_minus
+  starfun_diff <-- starfun{C,RC,CR}_diff
+  starfun_o <-- starfun{NatNat2,Nat2,_stafunNat,C,C_starfunRC,_starfunCR}_o
+  starfun_o2 <-- starfun{NatNat2,_stafunNat,C,C_starfunRC,_starfunCR}_o2
+  starfun_const_fun <-- starfun{Nat,Nat2,C,RC,CR}_const_fun
+  starfun_inverse <-- starfun{Nat,C,RC,CR}_inverse
+  starfun_eq <-- starfun{Nat,Nat2,C,RC,CR}_eq
+  starfun_eq_iff <-- starfun{C,RC,CR}_eq_iff
   starfun_Id <-- starfunC_Id
-  starfun_approx <-- starfunNat_approx, starfunCR_approx
-  starfun_capprox <-- starfunC_capprox, starfunRC_capprox
+  starfun_approx <-- starfun{Nat,CR}_approx
+  starfun_capprox <-- starfun{C,RC}_capprox
   starfun_abs <-- starfunNat_rabs
-  starfun_lambda_cancel <-- starfunC_lambda_cancel, starfunCR_lambda_cancel, starfunRC_lambda_cancel
-  starfun_lambda_cancel2 <-- starfunC_lambda_cancel2, starfunCR_lambda_cancel2, starfunRC_lambda_cancel2
+  starfun_lambda_cancel <-- starfun{C,CR,RC}_lambda_cancel
+  starfun_lambda_cancel2 <-- starfun{C,CR,RC}_lambda_cancel2
   starfun_mult_HFinite_approx <-- starfunCR_mult_HFinite_capprox
-  starfun_mult_CFinite_capprox <-- starfunC_mult_CFinite_capprox, starfunRC_mult_CFinite_capprox
-  starfun_add_capprox <-- starfunC_add_capprox, starfunRC_add_capprox
+  starfun_mult_CFinite_capprox <-- starfun{C,RC}_mult_CFinite_capprox
+  starfun_add_capprox <-- starfun{C,RC}_add_capprox
   starfun_add_approx <-- starfunCR_add_approx
   starfun_inverse_inverse <-- starfunC_inverse_inverse
-  starfun_divide <-- starfunC_divide, starfunCR_divide, starfunRC_divide
-  starfun_n_congruent <-- starfunNat_n_congruent, starfunC_n_congruent
-  starfun_n <-- starfunNat_n, starfunC_n
-  starfun_n_mult <-- starfunNat_n_mult, starfunC_n_mult
-  starfun_n_add <-- starfunNat_n_add, starfunC_n_add
+  starfun_divide <-- starfun{C,CR,RC}_divide
+  starfun_n <-- starfun{Nat,C}_n
+  starfun_n_mult <-- starfun{Nat,C}_n_mult
+  starfun_n_add <-- starfun{Nat,C}_n_add
   starfun_n_add_minus <-- starfunNat_n_add_minus
-  starfun_n_const_fun <-- starfunNat_n_const_fun, starfunC_n_const_fun
-  starfun_n_minus <-- starfunNat_n_minus, starfunC_n_minus
-  starfun_n_eq <-- starfunNat_n_eq, starfunC_n_eq
-
-  star_n_add <-- hypreal_add, hypnat_add, hcomplex_add
-  star_n_minus <-- hypreal_minus, hcomplex_minus
-  star_n_diff <-- hypreal_diff, hcomplex_diff
-  star_n_mult <-- hypreal_mult, hcomplex_mult
-  star_n_inverse <-- hypreal_inverse, hcomplex_inverse
-  star_n_le <-- hypreal_le, hypnat_le
-  star_n_less <-- hypreal_less, hypnat_less
-  star_n_zero_num <-- hypreal_zero_num, hypnat_zero_num, hcomplex_zero_num
-  star_n_one_num <-- hypreal_one_num, hypnat_one_num, hcomplex_one_num
+  starfun_n_const_fun <-- starfun{Nat,C}_n_const_fun
+  starfun_n_minus <-- starfun{Nat,C}_n_minus
+  starfun_n_eq <-- starfun{Nat,C}_n_eq
+
+  star_n_add <-- {hypreal,hypnat,hcomplex}_add
+  star_n_minus <-- {hypreal,hcomplex}_minus
+  star_n_diff <-- {hypreal,hcomplex}_diff
+  star_n_mult <-- {hypreal,hcomplex}_mult
+  star_n_inverse <-- {hypreal,hcomplex}_inverse
+  star_n_le <-- {hypreal,hypnat}_le
+  star_n_less <-- {hypreal,hypnat}_less
+  star_n_zero_num <-- {hypreal,hypnat,hcomplex}_zero_num
+  star_n_one_num <-- {hypreal,hypnat,hcomplex}_one_num
   star_n_abs <-- hypreal_hrabs
   star_n_divide <-- hcomplex_divide
 
-  star_of_add <-- hypreal_of_real_add, hcomplex_of_complex_add
-  star_of_minus <-- hypreal_of_real_minus, hcomplex_of_complex_minus
+  star_of_add <-- {hypreal_of_real,hypnat_of_nat,hcomplex_of_complex}_add
+  star_of_minus <-- {hypreal_of_real,hcomplex_of_complex}_minus
   star_of_diff <-- hypreal_of_real_diff
-  star_of_mult <-- hypreal_of_real_mult, hcomplex_of_complex_mult
-  star_of_one <-- hypreal_of_real_one, hcomplex_of_complex_one
-  star_of_zero <-- hypreal_of_real_zero, hcomplex_of_complex_zero
-  star_of_le <-- hypreal_of_real_le_iff
-  star_of_less <-- hypreal_of_real_less_iff
-  star_of_eq <-- hypreal_of_real_eq_iff, hcomplex_of_complex_eq_iff
-  star_of_inverse <-- hypreal_of_real_inverse, hcomplex_of_complex_inverse
-  star_of_divide <-- hypreal_of_real_divide, hcomplex_of_complex_divide
-  star_of_of_nat <-- hypreal_of_real_of_nat, hcomplex_of_complex_of_nat
-  star_of_of_int <-- hypreal_of_real_of_int, hcomplex_of_complex_of_int
-  star_of_number_of <-- hypreal_number_of, hcomplex_number_of
+  star_of_mult <-- {hypreal_of_real,hypnat_of_nat,hcomplex_of_complex}_mult
+  star_of_one <-- {hypreal_of_real,hcomplex_of_complex}_one
+  star_of_zero <-- {hypreal_of_real,hypnat_of_nat,hcomplex_of_complex}_zero
+  star_of_le <-- {hypreal_of_real,hypnat_of_nat}_le_iff
+  star_of_less <-- {hypreal_of_real,hypnat_of_nat}_less_iff
+  star_of_eq <-- {hypreal_of_real,hypnat_of_nat,hcomplex_of_complex}_eq_iff
+  star_of_inverse <-- {hypreal_of_real,hcomplex_of_complex}_inverse
+  star_of_divide <-- {hypreal_of_real,hcomplex_of_complex}_divide
+  star_of_of_nat <-- {hypreal_of_real,hcomplex_of_complex}_of_nat
+  star_of_of_int <-- {hypreal_of_real,hcomplex_of_complex}_of_int
+  star_of_number_of <-- {hypreal,hcomplex}_number_of
   star_of_number_less <-- number_of_less_hypreal_of_real_iff
   star_of_number_le <-- number_of_le_hypreal_of_real_iff
   star_of_eq_number <-- hypreal_of_real_eq_number_of_iff
@@ -626,6 +626,13 @@
   star_of_power <-- hypreal_of_real_power
   star_of_eq_0 <-- hcomplex_of_complex_zero_iff
 
+* Hyperreal: new method "transfer" that implements the transfer
+principle of nonstandard analysis. With a subgoal that mentions
+nonstandard types like "'a star", the command "apply transfer"
+replaces it with an equivalent one that mentions only standard types.
+To be successful, all free variables must have standard types; non-
+standard variables must have explicit universal quantifiers.
+
 
 *** HOLCF ***
 
@@ -633,6 +640,27 @@
 support continuous functions) in favor of the general Pure one with
 full type-inference.
 
+* HOLCF: new simplification procedure for solving continuity conditions;
+it is much faster on terms with many nested lambda abstractions (cubic
+instead of exponential time).
+
+* HOLCF: new syntax for domain package: selector names are now optional.
+Parentheses should be omitted unless argument is lazy, for example:
+
+  domain 'a stream = cons "'a" (lazy "'a stream")
+
+* HOLCF: new command "fixrec" for defining recursive functions with pattern
+matching; defining multiple functions with mutual recursion is also supported.
+Patterns may include the constants cpair, spair, up, sinl, sinr, or any data
+constructor defined by the domain package. The given equations are proven as
+rewrite rules. See HOLCF/ex/Fixrec_ex.thy for syntax and examples.
+
+* HOLCF: new commands "cpodef" and "pcpodef" for defining predicate subtypes
+of cpo and pcpo types. Syntax is exactly like the "typedef" command, but the
+proof obligation additionally includes an admissibility requirement. The
+packages generate instances of class cpo or pcpo, with continuity and
+strictness theorems for Rep and Abs.
+
 
 *** ZF ***