src/HOL/Library/Extended_Nonnegative_Real.thy
changeset 63060 293ede07b775
parent 62975 1d066f6ab25d
child 63099 af0e964aad7b
equal deleted inserted replaced
63059:3f577308551e 63060:293ede07b775
  1481     by (cases "F = bot") auto
  1481     by (cases "F = bot") auto
  1482 next
  1482 next
  1483   case (real r)
  1483   case (real r)
  1484   then have "\<forall>x. \<exists>q\<ge>0. g x \<le> c \<longrightarrow> (g x = ennreal q \<and> q \<le> r)"
  1484   then have "\<forall>x. \<exists>q\<ge>0. g x \<le> c \<longrightarrow> (g x = ennreal q \<and> q \<le> r)"
  1485     by (auto simp: le_ennreal_iff)
  1485     by (auto simp: le_ennreal_iff)
  1486   then obtain f where *: "\<And>x. g x \<le> c \<Longrightarrow> 0 \<le> f x" "\<And>x. g x \<le> c \<Longrightarrow> g x = ennreal (f x)" "\<And>x. g x \<le> c \<Longrightarrow> f x \<le> r"
  1486   then obtain f where *: "0 \<le> f x" "g x = ennreal (f x)" "f x \<le> r" if "g x \<le> c" for x
  1487     by metis
  1487     by metis
  1488   from ae have ae2: "\<forall>\<^sub>F x in F. c - g x = ennreal (r - f x) \<and> f x \<le> r \<and> g x = ennreal (f x) \<and> 0 \<le> f x"
  1488   from ae have ae2: "\<forall>\<^sub>F x in F. c - g x = ennreal (r - f x) \<and> f x \<le> r \<and> g x = ennreal (f x) \<and> 0 \<le> f x"
  1489   proof eventually_elim
  1489   proof eventually_elim
  1490     fix x assume "g x \<le> c" with *[of x] \<open>0 \<le> r\<close> show "c - g x = ennreal (r - f x) \<and> f x \<le> r \<and> g x = ennreal (f x) \<and> 0 \<le> f x"
  1490     fix x assume "g x \<le> c" with *[of x] \<open>0 \<le> r\<close> show "c - g x = ennreal (r - f x) \<and> f x \<le> r \<and> g x = ennreal (f x) \<and> 0 \<le> f x"
  1491       by (auto simp: real ennreal_minus)
  1491       by (auto simp: real ennreal_minus)