equal
deleted
inserted
replaced
568 by (simp add: ennreal_mult_eq_top_iff) |
568 by (simp add: ennreal_mult_eq_top_iff) |
569 |
569 |
570 lemma enn2ereal_eq_top_iff[simp]: "enn2ereal x = \<infinity> \<longleftrightarrow> x = top" |
570 lemma enn2ereal_eq_top_iff[simp]: "enn2ereal x = \<infinity> \<longleftrightarrow> x = top" |
571 by transfer (simp add: top_ereal_def) |
571 by transfer (simp add: top_ereal_def) |
572 |
572 |
573 lemma enn2ereal_top: "enn2ereal top = \<infinity>" |
573 lemma enn2ereal_top[simp]: "enn2ereal top = \<infinity>" |
574 by transfer (simp add: top_ereal_def) |
574 by transfer (simp add: top_ereal_def) |
575 |
575 |
576 lemma e2ennreal_infty: "e2ennreal \<infinity> = top" |
576 lemma e2ennreal_infty[simp]: "e2ennreal \<infinity> = top" |
577 by (simp add: top_ennreal.abs_eq top_ereal_def) |
577 by (simp add: top_ennreal.abs_eq top_ereal_def) |
578 |
578 |
579 lemma ennreal_top_minus[simp]: "top - x = (top::ennreal)" |
579 lemma ennreal_top_minus[simp]: "top - x = (top::ennreal)" |
580 by transfer (auto simp: top_ereal_def max_def) |
580 by transfer (auto simp: top_ereal_def max_def) |
581 |
581 |
923 lemma enn2ereal_ennreal[simp]: "0 \<le> x \<Longrightarrow> enn2ereal (ennreal x) = x" |
923 lemma enn2ereal_ennreal[simp]: "0 \<le> x \<Longrightarrow> enn2ereal (ennreal x) = x" |
924 by transfer (simp add: max_absorb2) |
924 by transfer (simp add: max_absorb2) |
925 |
925 |
926 lemma e2ennreal_enn2ereal[simp]: "e2ennreal (enn2ereal x) = x" |
926 lemma e2ennreal_enn2ereal[simp]: "e2ennreal (enn2ereal x) = x" |
927 by (simp add: e2ennreal_def max_absorb2 ennreal.enn2ereal_inverse) |
927 by (simp add: e2ennreal_def max_absorb2 ennreal.enn2ereal_inverse) |
|
928 |
|
929 lemma e2ennreal_ereal [simp]: "e2ennreal (ereal x) = ennreal x" |
|
930 by (metis e2ennreal_def enn2ereal_inverse ennreal.rep_eq sup_ereal_def) |
928 |
931 |
929 lemma ennreal_0[simp]: "ennreal 0 = 0" |
932 lemma ennreal_0[simp]: "ennreal 0 = 0" |
930 by (simp add: ennreal_def max.absorb1 zero_ennreal.abs_eq) |
933 by (simp add: ennreal_def max.absorb1 zero_ennreal.abs_eq) |
931 |
934 |
932 lemma ennreal_1[simp]: "ennreal 1 = 1" |
935 lemma ennreal_1[simp]: "ennreal 1 = 1" |
998 by transfer |
1001 by transfer |
999 (simp add: max.absorb2 zero_ereal_def ereal_max[symmetric] del: ereal_max) |
1002 (simp add: max.absorb2 zero_ereal_def ereal_max[symmetric] del: ereal_max) |
1000 |
1003 |
1001 lemma ennreal_minus_top[simp]: "ennreal a - top = 0" |
1004 lemma ennreal_minus_top[simp]: "ennreal a - top = 0" |
1002 by (simp add: minus_top_ennreal) |
1005 by (simp add: minus_top_ennreal) |
|
1006 |
|
1007 lemma e2eenreal_enn2ereal_diff [simp]: |
|
1008 "e2ennreal(enn2ereal x - enn2ereal y) = x - y" for x y |
|
1009 by (cases x, cases y, auto simp add: ennreal_minus e2ennreal_neg) |
1003 |
1010 |
1004 lemma ennreal_mult: "0 \<le> a \<Longrightarrow> 0 \<le> b \<Longrightarrow> ennreal (a * b) = ennreal a * ennreal b" |
1011 lemma ennreal_mult: "0 \<le> a \<Longrightarrow> 0 \<le> b \<Longrightarrow> ennreal (a * b) = ennreal a * ennreal b" |
1005 by transfer (simp add: max_absorb2) |
1012 by transfer (simp add: max_absorb2) |
1006 |
1013 |
1007 lemma ennreal_mult': "0 \<le> a \<Longrightarrow> ennreal (a * b) = ennreal a * ennreal b" |
1014 lemma ennreal_mult': "0 \<le> a \<Longrightarrow> ennreal (a * b) = ennreal a * ennreal b" |
1463 fix y :: ennreal assume "y < top" |
1470 fix y :: ennreal assume "y < top" |
1464 then obtain r where "y = ennreal r" |
1471 then obtain r where "y = ennreal r" |
1465 by (cases y rule: ennreal_cases) auto |
1472 by (cases y rule: ennreal_cases) auto |
1466 then show "\<exists>i\<in>UNIV. y < of_nat i" |
1473 then show "\<exists>i\<in>UNIV. y < of_nat i" |
1467 using reals_Archimedean2[of "max 1 r"] zero_less_one |
1474 using reals_Archimedean2[of "max 1 r"] zero_less_one |
1468 by (auto simp: ennreal_of_nat_eq_real_of_nat ennreal_def less_ennreal.abs_eq eq_onp_def max.absorb2 |
1475 by (simp add: ennreal_Ex_less_of_nat) |
1469 dest!: one_less_of_natD intro: less_trans) |
|
1470 qed |
1476 qed |
1471 |
1477 |
1472 lemma ennreal_SUP_eq_top: |
1478 lemma ennreal_SUP_eq_top: |
1473 fixes f :: "'a \<Rightarrow> ennreal" |
1479 fixes f :: "'a \<Rightarrow> ennreal" |
1474 assumes "\<And>n. \<exists>i\<in>I. of_nat n \<le> f i" |
1480 assumes "\<And>n. \<exists>i\<in>I. of_nat n \<le> f i" |