src/HOL/Multivariate_Analysis/Topology_Euclidean_Space.thy
changeset 50942 1aa1a7991fd9
parent 50941 3690724028b1
child 50943 88a00a1c7c2c
equal deleted inserted replaced
50941:3690724028b1 50942:1aa1a7991fd9
    14   "~~/src/HOL/Library/Glbs"
    14   "~~/src/HOL/Library/Glbs"
    15   "~~/src/HOL/Library/FuncSet"
    15   "~~/src/HOL/Library/FuncSet"
    16   Linear_Algebra
    16   Linear_Algebra
    17   Norm_Arith
    17   Norm_Arith
    18 begin
    18 begin
       
    19 
       
    20 (* TODO: Move this to RComplete.thy -- would need to include Glb into RComplete *)
       
    21 lemma real_isGlb_unique: "[| isGlb R S x; isGlb R S y |] ==> x = (y::real)"
       
    22   apply (frule isGlb_isLb)
       
    23   apply (frule_tac x = y in isGlb_isLb)
       
    24   apply (blast intro!: order_antisym dest!: isGlb_le_isLb)
       
    25   done
    19 
    26 
    20 lemma countable_PiE: 
    27 lemma countable_PiE: 
    21   "finite I \<Longrightarrow> (\<And>i. i \<in> I \<Longrightarrow> countable (F i)) \<Longrightarrow> countable (PiE I F)"
    28   "finite I \<Longrightarrow> (\<And>i. i \<in> I \<Longrightarrow> countable (F i)) \<Longrightarrow> countable (PiE I F)"
    22   by (induct I arbitrary: F rule: finite_induct) (auto simp: PiE_insert_eq)
    29   by (induct I arbitrary: F rule: finite_induct) (auto simp: PiE_insert_eq)
    23 
    30 
  2318 by auto (metis Int_absorb Inf_insert_nonempty bounded_has_Inf(1) disjoint_iff_not_equal) 
  2325 by auto (metis Int_absorb Inf_insert_nonempty bounded_has_Inf(1) disjoint_iff_not_equal) 
  2319 lemma Inf_insert_finite:
  2326 lemma Inf_insert_finite:
  2320   fixes S :: "real set"
  2327   fixes S :: "real set"
  2321   shows "finite S ==> Inf(insert x S) = (if S = {} then x else min x (Inf S))"
  2328   shows "finite S ==> Inf(insert x S) = (if S = {} then x else min x (Inf S))"
  2322   by (rule Inf_insert, rule finite_imp_bounded, simp)
  2329   by (rule Inf_insert, rule finite_imp_bounded, simp)
  2323 
       
  2324 (* TODO: Move this to RComplete.thy -- would need to include Glb into RComplete *)
       
  2325 lemma real_isGlb_unique: "[| isGlb R S x; isGlb R S y |] ==> x = (y::real)"
       
  2326   apply (frule isGlb_isLb)
       
  2327   apply (frule_tac x = y in isGlb_isLb)
       
  2328   apply (blast intro!: order_antisym dest!: isGlb_le_isLb)
       
  2329   done
       
  2330 
  2330 
  2331 subsection {* Compactness *}
  2331 subsection {* Compactness *}
  2332 
  2332 
  2333 subsubsection{* Open-cover compactness *}
  2333 subsubsection{* Open-cover compactness *}
  2334 
  2334