equal
deleted
inserted
replaced
140 |
140 |
141 |
141 |
142 subsection {* Type definition *} |
142 subsection {* Type definition *} |
143 |
143 |
144 cpodef (open) 'a convex_pd = |
144 cpodef (open) 'a convex_pd = |
145 "{S::'a::bifinite pd_basis set. convex_le.ideal S}" |
145 "{S::'a::profinite pd_basis set. convex_le.ideal S}" |
146 apply (simp add: convex_le.adm_ideal) |
146 apply (simp add: convex_le.adm_ideal) |
147 apply (fast intro: convex_le.ideal_principal) |
147 apply (fast intro: convex_le.ideal_principal) |
148 done |
148 done |
149 |
149 |
150 lemma ideal_Rep_convex_pd: "convex_le.ideal (Rep_convex_pd xs)" |
150 lemma ideal_Rep_convex_pd: "convex_le.ideal (Rep_convex_pd xs)" |
204 by (rule convex_pd_minimal [THEN UU_I, symmetric]) |
204 by (rule convex_pd_minimal [THEN UU_I, symmetric]) |
205 |
205 |
206 |
206 |
207 subsection {* Approximation *} |
207 subsection {* Approximation *} |
208 |
208 |
209 instance convex_pd :: (bifinite) approx .. |
209 instance convex_pd :: (profinite) approx .. |
210 |
210 |
211 defs (overloaded) |
211 defs (overloaded) |
212 approx_convex_pd_def: |
212 approx_convex_pd_def: |
213 "approx \<equiv> (\<lambda>n. convex_pd.basis_fun (\<lambda>t. convex_principal (approx_pd n t)))" |
213 "approx \<equiv> (\<lambda>n. convex_pd.basis_fun (\<lambda>t. convex_principal (approx_pd n t)))" |
214 |
214 |
243 lemma finite_fixes_approx_convex_pd: |
243 lemma finite_fixes_approx_convex_pd: |
244 "finite {xs::'a convex_pd. approx n\<cdot>xs = xs}" |
244 "finite {xs::'a convex_pd. approx n\<cdot>xs = xs}" |
245 unfolding approx_convex_pd_def |
245 unfolding approx_convex_pd_def |
246 by (rule convex_pd.finite_fixes_basis_fun_take) |
246 by (rule convex_pd.finite_fixes_basis_fun_take) |
247 |
247 |
248 instance convex_pd :: (bifinite) bifinite |
248 instance convex_pd :: (profinite) profinite |
249 apply intro_classes |
249 apply intro_classes |
250 apply (simp add: chain_approx_convex_pd) |
250 apply (simp add: chain_approx_convex_pd) |
251 apply (rule lub_approx_convex_pd) |
251 apply (rule lub_approx_convex_pd) |
252 apply (rule approx_convex_pd_idem) |
252 apply (rule approx_convex_pd_idem) |
253 apply (rule finite_fixes_approx_convex_pd) |
253 apply (rule finite_fixes_approx_convex_pd) |
254 done |
254 done |
|
255 |
|
256 instance convex_pd :: (bifinite) bifinite .. |
255 |
257 |
256 lemma compact_imp_convex_principal: |
258 lemma compact_imp_convex_principal: |
257 "compact xs \<Longrightarrow> \<exists>t. xs = convex_principal t" |
259 "compact xs \<Longrightarrow> \<exists>t. xs = convex_principal t" |
258 apply (drule bifinite_compact_eq_approx) |
260 apply (drule bifinite_compact_eq_approx) |
259 apply (erule exE) |
261 apply (erule exE) |