115 apply (erule (1) 4 [OF 3]) |
115 apply (erule (1) 4 [OF 3]) |
116 apply (drule convex_le_PDPlus_lemma, clarify) |
116 apply (drule convex_le_PDPlus_lemma, clarify) |
117 apply (simp add: 4) |
117 apply (simp add: 4) |
118 done |
118 done |
119 |
119 |
120 lemma approx_pd_convex_chain: |
120 lemma pd_take_convex_chain: |
121 "approx_pd n t \<le>\<natural> approx_pd (Suc n) t" |
121 "pd_take n t \<le>\<natural> pd_take (Suc n) t" |
122 apply (induct t rule: pd_basis_induct) |
122 apply (induct t rule: pd_basis_induct) |
123 apply (simp add: compact_basis.take_chain) |
123 apply (simp add: compact_basis.take_chain) |
124 apply (simp add: PDPlus_convex_mono) |
124 apply (simp add: PDPlus_convex_mono) |
125 done |
125 done |
126 |
126 |
127 lemma approx_pd_convex_le: "approx_pd i t \<le>\<natural> t" |
127 lemma pd_take_convex_le: "pd_take i t \<le>\<natural> t" |
128 apply (induct t rule: pd_basis_induct) |
128 apply (induct t rule: pd_basis_induct) |
129 apply (simp add: compact_basis.take_less) |
129 apply (simp add: compact_basis.take_less) |
130 apply (simp add: PDPlus_convex_mono) |
130 apply (simp add: PDPlus_convex_mono) |
131 done |
131 done |
132 |
132 |
133 lemma approx_pd_convex_mono: |
133 lemma pd_take_convex_mono: |
134 "t \<le>\<natural> u \<Longrightarrow> approx_pd n t \<le>\<natural> approx_pd n u" |
134 "t \<le>\<natural> u \<Longrightarrow> pd_take n t \<le>\<natural> pd_take n u" |
135 apply (erule convex_le_induct) |
135 apply (erule convex_le_induct) |
136 apply (erule (1) convex_le_trans) |
136 apply (erule (1) convex_le_trans) |
137 apply (simp add: compact_basis.take_mono) |
137 apply (simp add: compact_basis.take_mono) |
138 apply (simp add: PDPlus_convex_mono) |
138 apply (simp add: PDPlus_convex_mono) |
139 done |
139 done |
178 "Rep_convex_pd (convex_principal t) = {u. u \<le>\<natural> t}" |
178 "Rep_convex_pd (convex_principal t) = {u. u \<le>\<natural> t}" |
179 unfolding convex_principal_def |
179 unfolding convex_principal_def |
180 by (simp add: Abs_convex_pd_inverse convex_le.ideal_principal) |
180 by (simp add: Abs_convex_pd_inverse convex_le.ideal_principal) |
181 |
181 |
182 interpretation convex_pd: |
182 interpretation convex_pd: |
183 ideal_completion [convex_le approx_pd convex_principal Rep_convex_pd] |
183 ideal_completion [convex_le pd_take convex_principal Rep_convex_pd] |
184 apply unfold_locales |
184 apply unfold_locales |
185 apply (rule approx_pd_convex_le) |
185 apply (rule pd_take_convex_le) |
186 apply (rule approx_pd_idem) |
186 apply (rule pd_take_idem) |
187 apply (erule approx_pd_convex_mono) |
187 apply (erule pd_take_convex_mono) |
188 apply (rule approx_pd_convex_chain) |
188 apply (rule pd_take_convex_chain) |
189 apply (rule finite_range_approx_pd) |
189 apply (rule finite_range_pd_take) |
190 apply (rule approx_pd_covers) |
190 apply (rule pd_take_covers) |
191 apply (rule ideal_Rep_convex_pd) |
191 apply (rule ideal_Rep_convex_pd) |
192 apply (erule Rep_convex_pd_lub) |
192 apply (erule Rep_convex_pd_lub) |
193 apply (rule Rep_convex_principal) |
193 apply (rule Rep_convex_principal) |
194 apply (simp only: sq_le_convex_pd_def) |
194 apply (simp only: sq_le_convex_pd_def) |
195 done |
195 done |
224 end |
224 end |
225 |
225 |
226 instance convex_pd :: (bifinite) bifinite .. |
226 instance convex_pd :: (bifinite) bifinite .. |
227 |
227 |
228 lemma approx_convex_principal [simp]: |
228 lemma approx_convex_principal [simp]: |
229 "approx n\<cdot>(convex_principal t) = convex_principal (approx_pd n t)" |
229 "approx n\<cdot>(convex_principal t) = convex_principal (pd_take n t)" |
230 unfolding approx_convex_pd_def |
230 unfolding approx_convex_pd_def |
231 by (rule convex_pd.completion_approx_principal) |
231 by (rule convex_pd.completion_approx_principal) |
232 |
232 |
233 lemma approx_eq_convex_principal: |
233 lemma approx_eq_convex_principal: |
234 "\<exists>t\<in>Rep_convex_pd xs. approx n\<cdot>xs = convex_principal (approx_pd n t)" |
234 "\<exists>t\<in>Rep_convex_pd xs. approx n\<cdot>xs = convex_principal (pd_take n t)" |
235 unfolding approx_convex_pd_def |
235 unfolding approx_convex_pd_def |
236 by (rule convex_pd.completion_approx_eq_principal) |
236 by (rule convex_pd.completion_approx_eq_principal) |
237 |
237 |
238 |
238 |
239 subsection {* Monadic unit and plus *} |
239 subsection {* Monadic unit and plus *} |