| 7626 |      1 | (*  Title:      HOL/BCV/Types.ML
 | 
|  |      2 |     ID:         $Id$
 | 
|  |      3 |     Author:     Tobias Nipkow
 | 
|  |      4 |     Copyright   1999 TUM
 | 
|  |      5 | *)
 | 
|  |      6 | 
 | 
|  |      7 | Goalw [semilat_def,le_typ,plus_typ] "semilat (UNIV::typ set)";
 | 
| 7961 |      8 | by (Auto_tac);
 | 
| 7626 |      9 | qed "semilat_typ";
 | 
|  |     10 | AddIffs [semilat_typ];
 | 
|  |     11 | 
 | 
|  |     12 | Goal "{(x,y::'a::order). y<x}^+ = {(x,y::'a::order). y<x}";
 | 
| 7961 |     13 | by (Auto_tac);
 | 
|  |     14 |  by (etac trancl_induct 1);
 | 
|  |     15 |  by (Blast_tac 1);
 | 
|  |     16 |  by (blast_tac (claset() addIs [order_less_trans]) 1);
 | 
|  |     17 | by (blast_tac (claset() addIs [r_into_trancl]) 1);
 | 
| 7626 |     18 | qed "trancl_order1_conv";
 | 
|  |     19 | Addsimps [trancl_order1_conv];
 | 
|  |     20 | 
 | 
|  |     21 | Goalw [acyclic_def] "acyclic{(x,y::'a::order). y<x}";
 | 
| 7961 |     22 | by (Simp_tac 1);
 | 
| 7626 |     23 | qed "acyclic_order1";
 | 
|  |     24 | AddIffs [acyclic_order1];
 | 
|  |     25 | 
 | 
|  |     26 | Goalw [acc_def] "acc(UNIV::typ set)";
 | 
| 7961 |     27 | by (rtac finite_acyclic_wf 1);
 | 
|  |     28 |  by (fast_tac (claset() addIs [finite_SigmaI RSN (2,finite_subset)]) 1);
 | 
|  |     29 | by (blast_tac (claset() addIs [acyclic_subset]) 1);
 | 
| 7626 |     30 | qed "acc_UNIV_typ";
 | 
|  |     31 | AddIffs [acc_UNIV_typ];
 |