src/HOL/WF_Rel.ML
changeset 3296 2ee6c397003d
parent 3237 4da86d44de33
child 3413 c1f63cc3a768
equal deleted inserted replaced
3295:c9c99aa082fb 3296:2ee6c397003d
     1 (*  Title: 	HOL/WF_Rel
     1 (*  Title: 	HOL/WF_Rel
     2     ID:         $Id$
     2     ID:         $Id$
     3     Author: 	Konrad Slind
     3     Author: 	Konrad Slind
     4     Copyright   1996  TU Munich
     4     Copyright   1996  TU Munich
     5 
     5 
     6 Derived wellfounded relations: inverse image, relational product, measure, ...
     6 Derived WF relations: inverse image, lexicographic product, measure, ...
     7 *)
     7 *)
     8 
     8 
     9 open WF_Rel;
     9 open WF_Rel;
    10 
    10 
    11 
    11 
    77 by (rtac (wfb RS spec RS mp) 1);
    77 by (rtac (wfb RS spec RS mp) 1);
    78 by (Blast_tac 1);
    78 by (Blast_tac 1);
    79 qed "wf_lex_prod";
    79 qed "wf_lex_prod";
    80 AddSIs [wf_lex_prod];
    80 AddSIs [wf_lex_prod];
    81 
    81 
    82 (*----------------------------------------------------------------------------
       
    83  * Wellfoundedness of relational product
       
    84  *---------------------------------------------------------------------------*)
       
    85 val [wfa,wfb] = goalw thy [wf_def,rprod_def]
       
    86  "[| wf(ra); wf(rb) |] ==> wf(rprod ra rb)";
       
    87 by (EVERY1 [rtac allI,rtac impI, rtac split_all_pair]);
       
    88 by (rtac (wfa RS spec RS mp) 1);
       
    89 by (EVERY1 [rtac allI,rtac impI]);
       
    90 by (rtac (wfb RS spec RS mp) 1);
       
    91 by (Blast_tac 1);
       
    92 qed "wf_rel_prod";
       
    93 AddSIs [wf_rel_prod];
       
    94 
       
    95 
       
    96 (*---------------------------------------------------------------------------
    82 (*---------------------------------------------------------------------------
    97  * Wellfoundedness of subsets
    83  * Wellfoundedness of subsets
    98  *---------------------------------------------------------------------------*)
    84  *---------------------------------------------------------------------------*)
    99 
    85 
   100 goal thy "!!r. [| wf(r);  p<=r |] ==> wf(p)";
    86 goal thy "!!r. [| wf(r);  p<=r |] ==> wf(p)";
   120 by (Simp_tac 1);
   106 by (Simp_tac 1);
   121 by (Blast_tac 1);
   107 by (Blast_tac 1);
   122 qed "trans_lex_prod";
   108 qed "trans_lex_prod";
   123 AddSIs [trans_lex_prod];
   109 AddSIs [trans_lex_prod];
   124 
   110 
   125 goalw thy [trans_def, rprod_def]
       
   126     "!!R1 R2. [| trans R1; trans R2 |] ==> trans (rprod R1 R2)";
       
   127 by (Simp_tac 1);
       
   128 by (Blast_tac 1);
       
   129 qed "trans_rprod";
       
   130 AddSIs [trans_rprod];
       
   131 
       
   132 
   111 
   133 (*---------------------------------------------------------------------------
   112 (*---------------------------------------------------------------------------
   134  * Wellfoundedness of proper subset on finite sets.
   113  * Wellfoundedness of proper subset on finite sets.
   135  *---------------------------------------------------------------------------*)
   114  *---------------------------------------------------------------------------*)
   136 goalw thy [finite_psubset_def] "wf(finite_psubset)";
   115 goalw thy [finite_psubset_def] "wf(finite_psubset)";