author | huffman |
Sat, 27 Nov 2010 16:08:10 -0800 | |
changeset 41022 | 0437dbc127b3 |
parent 40985 | src/HOLCF/Powerdomains.thy@2037021f034f |
child 41537 | f655912ac235 |
permissions | -rw-r--r-- |
huffman@35459 | 1 |
(* Title: HOLCF/Powerdomains.thy |
huffman@35459 | 2 |
Author: Brian Huffman |
huffman@35459 | 3 |
*) |
huffman@35459 | 4 |
|
huffman@35459 | 5 |
header {* Powerdomains *} |
huffman@35459 | 6 |
|
huffman@35459 | 7 |
theory Powerdomains |
huffman@40155 | 8 |
imports ConvexPD Domain |
huffman@35459 | 9 |
begin |
huffman@35459 | 10 |
|
huffman@35459 | 11 |
lemma isodefl_upper: |
huffman@40170 | 12 |
"isodefl d t \<Longrightarrow> isodefl (upper_map\<cdot>d) (upper_defl\<cdot>t)" |
huffman@35459 | 13 |
apply (rule isodeflI) |
huffman@40170 | 14 |
apply (simp add: cast_upper_defl cast_isodefl) |
huffman@35459 | 15 |
apply (simp add: emb_upper_pd_def prj_upper_pd_def) |
huffman@35459 | 16 |
apply (simp add: upper_map_map) |
huffman@35459 | 17 |
done |
huffman@35459 | 18 |
|
huffman@35459 | 19 |
lemma isodefl_lower: |
huffman@40170 | 20 |
"isodefl d t \<Longrightarrow> isodefl (lower_map\<cdot>d) (lower_defl\<cdot>t)" |
huffman@35459 | 21 |
apply (rule isodeflI) |
huffman@40170 | 22 |
apply (simp add: cast_lower_defl cast_isodefl) |
huffman@35459 | 23 |
apply (simp add: emb_lower_pd_def prj_lower_pd_def) |
huffman@35459 | 24 |
apply (simp add: lower_map_map) |
huffman@35459 | 25 |
done |
huffman@35459 | 26 |
|
huffman@35459 | 27 |
lemma isodefl_convex: |
huffman@40170 | 28 |
"isodefl d t \<Longrightarrow> isodefl (convex_map\<cdot>d) (convex_defl\<cdot>t)" |
huffman@35459 | 29 |
apply (rule isodeflI) |
huffman@40170 | 30 |
apply (simp add: cast_convex_defl cast_isodefl) |
huffman@35459 | 31 |
apply (simp add: emb_convex_pd_def prj_convex_pd_def) |
huffman@35459 | 32 |
apply (simp add: convex_map_map) |
huffman@35459 | 33 |
done |
huffman@35459 | 34 |
|
huffman@35459 | 35 |
subsection {* Domain package setup for powerdomains *} |
huffman@35459 | 36 |
|
huffman@40457 | 37 |
lemmas [domain_defl_simps] = DEFL_upper DEFL_lower DEFL_convex |
huffman@40457 | 38 |
lemmas [domain_map_ID] = upper_map_ID lower_map_ID convex_map_ID |
huffman@40457 | 39 |
lemmas [domain_isodefl] = isodefl_upper isodefl_lower isodefl_convex |
huffman@40457 | 40 |
|
huffman@40457 | 41 |
lemmas [domain_deflation] = |
huffman@40457 | 42 |
deflation_upper_map deflation_lower_map deflation_convex_map |
huffman@40457 | 43 |
|
huffman@35459 | 44 |
setup {* |
huffman@40985 | 45 |
fold Domain_Take_Proofs.add_rec_type |
huffman@40985 | 46 |
[(@{type_name "upper_pd"}, [true]), |
huffman@40985 | 47 |
(@{type_name "lower_pd"}, [true]), |
huffman@40985 | 48 |
(@{type_name "convex_pd"}, [true])] |
huffman@35459 | 49 |
*} |
huffman@35459 | 50 |
|
huffman@35459 | 51 |
end |