| author | paulson | 
| Wed, 09 Jun 2004 11:19:23 +0200 | |
| changeset 14890 | 51f28df21c8b | 
| parent 12338 | de0f4a63baa5 | 
| child 14981 | e73f8140af78 | 
| permissions | -rw-r--r-- | 
| 2841 
c2508f4ab739
Added "discrete" CPOs and modified IMP to use those rather than "lift"
 nipkow parents: diff
changeset | 1 | (* Title: HOLCF/Discrete.ML | 
| 
c2508f4ab739
Added "discrete" CPOs and modified IMP to use those rather than "lift"
 nipkow parents: diff
changeset | 2 | ID: $Id$ | 
| 
c2508f4ab739
Added "discrete" CPOs and modified IMP to use those rather than "lift"
 nipkow parents: diff
changeset | 3 | Author: Tobias Nipkow | 
| 12030 | 4 | License: GPL (GNU GENERAL PUBLIC LICENSE) | 
| 2841 
c2508f4ab739
Added "discrete" CPOs and modified IMP to use those rather than "lift"
 nipkow parents: diff
changeset | 5 | *) | 
| 
c2508f4ab739
Added "discrete" CPOs and modified IMP to use those rather than "lift"
 nipkow parents: diff
changeset | 6 | |
| 5068 | 7 | Goalw [undiscr_def] "undiscr(Discr x) = x"; | 
| 4423 | 8 | by (Simp_tac 1); | 
| 2841 
c2508f4ab739
Added "discrete" CPOs and modified IMP to use those rather than "lift"
 nipkow parents: diff
changeset | 9 | qed "undiscr_Discr"; | 
| 
c2508f4ab739
Added "discrete" CPOs and modified IMP to use those rather than "lift"
 nipkow parents: diff
changeset | 10 | Addsimps [undiscr_Discr]; | 
| 
c2508f4ab739
Added "discrete" CPOs and modified IMP to use those rather than "lift"
 nipkow parents: diff
changeset | 11 | |
| 5068 | 12 | Goal | 
| 12338 
de0f4a63baa5
renamed class "term" to "type" (actually "HOL.type");
 wenzelm parents: 
12030diff
changeset | 13 |  "!!S::nat=>('a::type)discr. chain(S) ==> range(%i. f(S i)) = {f(S 0)}";
 | 
| 4423 | 14 | by (fast_tac (claset() addDs [discr_chain0] addEs [arg_cong]) 1); | 
| 2841 
c2508f4ab739
Added "discrete" CPOs and modified IMP to use those rather than "lift"
 nipkow parents: diff
changeset | 15 | qed "discr_chain_f_range0"; | 
| 
c2508f4ab739
Added "discrete" CPOs and modified IMP to use those rather than "lift"
 nipkow parents: diff
changeset | 16 | |
| 12338 
de0f4a63baa5
renamed class "term" to "type" (actually "HOL.type");
 wenzelm parents: 
12030diff
changeset | 17 | Goalw [cont,is_lub_def,is_ub_def] "cont(%x::('a::type)discr. f x)";
 | 
| 4423 | 18 | by (simp_tac (simpset() addsimps [discr_chain_f_range0]) 1); | 
| 2841 
c2508f4ab739
Added "discrete" CPOs and modified IMP to use those rather than "lift"
 nipkow parents: diff
changeset | 19 | qed "cont_discr"; | 
| 
c2508f4ab739
Added "discrete" CPOs and modified IMP to use those rather than "lift"
 nipkow parents: diff
changeset | 20 | AddIffs [cont_discr]; |