src/HOL/Cardinals/README.txt
changeset 54473 8bee5ca99e63
parent 49310 6e30078de4f0
child 54481 5c9819d7713b
equal deleted inserted replaced
54472:073f041d83ae 54473:8bee5ca99e63
    88 
    88 
    89 Minor technicalities and naming issues:
    89 Minor technicalities and naming issues:
    90 ---------------------------------------
    90 ---------------------------------------
    91 
    91 
    92 1. Most of the definitions and theorems are proved in files suffixed with
    92 1. Most of the definitions and theorems are proved in files suffixed with
    93 "_Base". Bootstrapping considerations (for the (co)datatype package) made this
    93 "_LFP" or "_GFP". Bootstrapping considerations (for the (co)datatype package) made
    94 division desirable.
    94 this division desirable.
    95 
    95 
    96 
    96 
    97 2. Even though we would have preferred to use "initial segment" instead of 
    97 2. Even though we would have preferred to use "initial segment" instead of 
    98 "order filter", we chose the latter to avoid terminological clash with 
    98 "order filter", we chose the latter to avoid terminological clash with 
    99 the operator "init_seg_of" from Zorn.thy.  The latter expresses a related, but different 
    99 the operator "init_seg_of" from Zorn.thy.  The latter expresses a related, but different 
   146 
   146 
   147 
   147 
   148 Notes for anyone who would like to enrich these theories in the future
   148 Notes for anyone who would like to enrich these theories in the future
   149 --------------------------------------------------------------------------------------
   149 --------------------------------------------------------------------------------------
   150 
   150 
   151 Theory Fun_More (and Fun_More_Base):
   151 Theory Fun_More (and Fun_More_*):
   152 - Careful: "inj" is an abbreviation for "inj_on UNIV", while  
   152 - Careful: "inj" is an abbreviation for "inj_on UNIV", while  
   153   "bij" is not an abreviation for "bij_betw UNIV UNIV", but 
   153   "bij" is not an abreviation for "bij_betw UNIV UNIV", but 
   154   a defined constant; there is no "surj_betw", but only "surj". 
   154   a defined constant; there is no "surj_betw", but only "surj". 
   155   "inv" is an abbreviation for "inv_into UNIV"
   155   "inv" is an abbreviation for "inv_into UNIV"
   156 - In subsection "Purely functional properties": 
   156 - In subsection "Purely functional properties": 
   164 "proof(auto simp add: bij_betw_inv_into_left)" finish the proof?
   164 "proof(auto simp add: bij_betw_inv_into_left)" finish the proof?
   165 -- Recall lemma "bij_betw_inv_into". 
   165 -- Recall lemma "bij_betw_inv_into". 
   166 - In subsection "Other facts": 
   166 - In subsection "Other facts": 
   167 -- Does the lemma "atLeastLessThan_injective" already exist anywhere? 
   167 -- Does the lemma "atLeastLessThan_injective" already exist anywhere? 
   168 
   168 
   169 Theory Order_Relation_More (and Order_Relation_More_Base):
   169 Theory Order_Relation_More (and Order_Relation_More_*):
   170 - In subsection "Auxiliaries": 
   170 - In subsection "Auxiliaries": 
   171 -- Recall the lemmas "order_on_defs", "Field_def", "Domain_def", "Range_def", "converse_def". 
   171 -- Recall the lemmas "order_on_defs", "Field_def", "Domain_def", "Range_def", "converse_def". 
   172 -- Recall that "refl_on r A" forces r to not be defined outside A.  
   172 -- Recall that "refl_on r A" forces r to not be defined outside A.  
   173    This is  why "partial_order_def" 
   173    This is  why "partial_order_def" 
   174    can afford to use non-parameterized versions of antisym and trans.  
   174    can afford to use non-parameterized versions of antisym and trans.  
   179    abbreviation "Partial_order r ≡ partial_order_on (Field r) r"
   179    abbreviation "Partial_order r ≡ partial_order_on (Field r) r"
   180    abbreviation "Total r ≡ total_on (Field r) r"
   180    abbreviation "Total r ≡ total_on (Field r) r"
   181    abbreviation "Linear_order r ≡ linear_order_on (Field r) r"
   181    abbreviation "Linear_order r ≡ linear_order_on (Field r) r"
   182    abbreviation "Well_order r ≡ well_order_on (Field r) r"
   182    abbreviation "Well_order r ≡ well_order_on (Field r) r"
   183 
   183 
   184 Theory Wellorder_Relation (and Wellorder_Relation_Base):
   184 Theory Wellorder_Relation (and Wellorder_Relation_*):
   185 - In subsection "Auxiliaries": recall lemmas "order_on_defs"
   185 - In subsection "Auxiliaries": recall lemmas "order_on_defs"
   186 - In subsection "The notions of maximum, minimum, supremum, successor and order filter": 
   186 - In subsection "The notions of maximum, minimum, supremum, successor and order filter": 
   187   Should we define all constants from "wo_rel" in "rel" instead, 
   187   Should we define all constants from "wo_rel" in "rel" instead, 
   188   so that their outside definition not be conditional in "wo_rel r"? 
   188   so that their outside definition not be conditional in "wo_rel r"? 
   189 
   189 
   190 Theory Wellfounded_More (and Wellfounded_More_Base):
   190 Theory Wellfounded_More (and Wellfounded_More_*):
   191   Recall the lemmas "wfrec" and "wf_induct". 
   191   Recall the lemmas "wfrec" and "wf_induct". 
   192 
   192 
   193 Theory Wellorder_Embedding (and Wellorder_Embedding_Base):
   193 Theory Wellorder_Embedding (and Wellorder_Embedding_*):
   194 - Recall "inj_on_def" and "bij_betw_def". 
   194 - Recall "inj_on_def" and "bij_betw_def". 
   195 - Line 5 in the proof of lemma embed_in_Field: we have to figure out for this and many other 
   195 - Line 5 in the proof of lemma embed_in_Field: we have to figure out for this and many other 
   196   situations:  Why did it work without annotations to Refl_under_in?
   196   situations:  Why did it work without annotations to Refl_under_in?
   197 - At the proof of theorem "wellorders_totally_ordered" (and, similarly, elsewhere): 
   197 - At the proof of theorem "wellorders_totally_ordered" (and, similarly, elsewhere): 
   198   Had we used metavariables instead of local definitions for H, f, g and test, the 
   198   Had we used metavariables instead of local definitions for H, f, g and test, the 
   199   goals (in the goal window) would have become unreadable, 
   199   goals (in the goal window) would have become unreadable, 
   200   making impossible to debug theorem instantiations.  
   200   making impossible to debug theorem instantiations.  
   201 - At lemma "embed_unique": If we add the attribute "rule format" at lemma, we get an error at qed.
   201 - At lemma "embed_unique": If we add the attribute "rule format" at lemma, we get an error at qed.
   202 
   202 
   203 Theory Constructions_on_Wellorders (and Constructions_on_Wellorders_Base):
   203 Theory Constructions_on_Wellorders (and Constructions_on_Wellorders_*):
   204 - Some of the lemmas in this section are about more general kinds of relations than 
   204 - Some of the lemmas in this section are about more general kinds of relations than 
   205   well-orders, but it is not clear whether they are useful in such more general contexts.
   205   well-orders, but it is not clear whether they are useful in such more general contexts.
   206 - Recall that "equiv" does not have the "equiv_on" and "Equiv" versions, 
   206 - Recall that "equiv" does not have the "equiv_on" and "Equiv" versions, 
   207  like the order relation. "equiv" corresponds, for instance, to "well_order_on". 
   207  like the order relation. "equiv" corresponds, for instance, to "well_order_on". 
   208 - The lemmas "ord_trans" are not clearly useful together, as their employment within blast or auto 
   208 - The lemmas "ord_trans" are not clearly useful together, as their employment within blast or auto 
   209 tends to diverge.  
   209 tends to diverge.  
   210 
   210 
   211 Theory Cardinal_Order_Relation (and Cardinal_Order_Relation_Base):
   211 Theory Cardinal_Order_Relation (and Cardinal_Order_Relation_*):
   212 - Careful: if "|..|" meets an outer parehthesis, an extra space needs to be inserted, as in
   212 - Careful: if "|..|" meets an outer parehthesis, an extra space needs to be inserted, as in
   213   "( |A| )". 
   213   "( |A| )". 
   214 - At lemma like ordLeq_Sigma_mono1: Not worth stating something like ordLeq_Sigma_mono2 -- 
   214 - At lemma like ordLeq_Sigma_mono1: Not worth stating something like ordLeq_Sigma_mono2 -- 
   215   would be a mere instance of card_of_Sigma_mono2.  
   215   would be a mere instance of card_of_Sigma_mono2.  
   216 - At lemma ordLeq_Sigma_cong2: Again, no reason for stating something like ordLeq_Sigma_cong2.  
   216 - At lemma ordLeq_Sigma_cong2: Again, no reason for stating something like ordLeq_Sigma_cong2.