| author | huffman |
| Tue, 12 Oct 2010 05:48:15 -0700 | |
| changeset 40004 | 9f6ed6840e8d |
| parent 39989 | ad60d7311f43 |
| child 40216 | 366309dfaf60 |
| permissions | -rw-r--r-- |
| 35473 | 1 |
(* Title: HOLCF/Powerdomains.thy |
2 |
Author: Brian Huffman |
|
3 |
*) |
|
4 |
||
5 |
header {* Powerdomains *}
|
|
6 |
||
7 |
theory Powerdomains |
|
|
39974
b525988432e9
major reorganization/simplification of HOLCF type classes:
huffman
parents:
39973
diff
changeset
|
8 |
imports ConvexPD Domain |
| 35473 | 9 |
begin |
10 |
||
11 |
lemma isodefl_upper: |
|
|
39989
ad60d7311f43
renamed type and constant 'sfp' to 'defl'; replaced syntax SFP('a) with DEFL('a)
huffman
parents:
39974
diff
changeset
|
12 |
"isodefl d t \<Longrightarrow> isodefl (upper_map\<cdot>d) (upper_defl\<cdot>t)" |
| 35473 | 13 |
apply (rule isodeflI) |
|
39989
ad60d7311f43
renamed type and constant 'sfp' to 'defl'; replaced syntax SFP('a) with DEFL('a)
huffman
parents:
39974
diff
changeset
|
14 |
apply (simp add: cast_upper_defl cast_isodefl) |
| 35473 | 15 |
apply (simp add: emb_upper_pd_def prj_upper_pd_def) |
16 |
apply (simp add: upper_map_map) |
|
17 |
done |
|
18 |
||
19 |
lemma isodefl_lower: |
|
|
39989
ad60d7311f43
renamed type and constant 'sfp' to 'defl'; replaced syntax SFP('a) with DEFL('a)
huffman
parents:
39974
diff
changeset
|
20 |
"isodefl d t \<Longrightarrow> isodefl (lower_map\<cdot>d) (lower_defl\<cdot>t)" |
| 35473 | 21 |
apply (rule isodeflI) |
|
39989
ad60d7311f43
renamed type and constant 'sfp' to 'defl'; replaced syntax SFP('a) with DEFL('a)
huffman
parents:
39974
diff
changeset
|
22 |
apply (simp add: cast_lower_defl cast_isodefl) |
| 35473 | 23 |
apply (simp add: emb_lower_pd_def prj_lower_pd_def) |
24 |
apply (simp add: lower_map_map) |
|
25 |
done |
|
26 |
||
27 |
lemma isodefl_convex: |
|
|
39989
ad60d7311f43
renamed type and constant 'sfp' to 'defl'; replaced syntax SFP('a) with DEFL('a)
huffman
parents:
39974
diff
changeset
|
28 |
"isodefl d t \<Longrightarrow> isodefl (convex_map\<cdot>d) (convex_defl\<cdot>t)" |
| 35473 | 29 |
apply (rule isodeflI) |
|
39989
ad60d7311f43
renamed type and constant 'sfp' to 'defl'; replaced syntax SFP('a) with DEFL('a)
huffman
parents:
39974
diff
changeset
|
30 |
apply (simp add: cast_convex_defl cast_isodefl) |
| 35473 | 31 |
apply (simp add: emb_convex_pd_def prj_convex_pd_def) |
32 |
apply (simp add: convex_map_map) |
|
33 |
done |
|
34 |
||
35 |
subsection {* Domain package setup for powerdomains *}
|
|
36 |
||
37 |
setup {*
|
|
38 |
fold Domain_Isomorphism.add_type_constructor |
|
|
39989
ad60d7311f43
renamed type and constant 'sfp' to 'defl'; replaced syntax SFP('a) with DEFL('a)
huffman
parents:
39974
diff
changeset
|
39 |
[(@{type_name "upper_pd"}, @{term upper_defl}, @{const_name upper_map},
|
|
ad60d7311f43
renamed type and constant 'sfp' to 'defl'; replaced syntax SFP('a) with DEFL('a)
huffman
parents:
39974
diff
changeset
|
40 |
@{thm DEFL_upper}, @{thm isodefl_upper}, @{thm upper_map_ID},
|
|
35479
dffffe36344a
store deflation thms for map functions in theory data
huffman
parents:
35473
diff
changeset
|
41 |
@{thm deflation_upper_map}),
|
| 35473 | 42 |
|
|
39989
ad60d7311f43
renamed type and constant 'sfp' to 'defl'; replaced syntax SFP('a) with DEFL('a)
huffman
parents:
39974
diff
changeset
|
43 |
(@{type_name "lower_pd"}, @{term lower_defl}, @{const_name lower_map},
|
|
ad60d7311f43
renamed type and constant 'sfp' to 'defl'; replaced syntax SFP('a) with DEFL('a)
huffman
parents:
39974
diff
changeset
|
44 |
@{thm DEFL_lower}, @{thm isodefl_lower}, @{thm lower_map_ID},
|
|
35479
dffffe36344a
store deflation thms for map functions in theory data
huffman
parents:
35473
diff
changeset
|
45 |
@{thm deflation_lower_map}),
|
| 35473 | 46 |
|
|
39989
ad60d7311f43
renamed type and constant 'sfp' to 'defl'; replaced syntax SFP('a) with DEFL('a)
huffman
parents:
39974
diff
changeset
|
47 |
(@{type_name "convex_pd"}, @{term convex_defl}, @{const_name convex_map},
|
|
ad60d7311f43
renamed type and constant 'sfp' to 'defl'; replaced syntax SFP('a) with DEFL('a)
huffman
parents:
39974
diff
changeset
|
48 |
@{thm DEFL_convex}, @{thm isodefl_convex}, @{thm convex_map_ID},
|
|
35479
dffffe36344a
store deflation thms for map functions in theory data
huffman
parents:
35473
diff
changeset
|
49 |
@{thm deflation_convex_map})]
|
| 35473 | 50 |
*} |
51 |
||
52 |
end |