# HG changeset patch # User wenzelm # Date 1468663862 -7200 # Node ID 76492eaf3dc1b801559c4ee7d1094f910a55bc7f # Parent 6c46a1e786da35d32abedcef3fd9412a09109758 tuned proofs; diff -r 6c46a1e786da -r 76492eaf3dc1 src/HOL/Library/Convex.thy --- a/src/HOL/Library/Convex.thy Sat Jul 16 12:10:37 2016 +0200 +++ b/src/HOL/Library/Convex.thy Sat Jul 16 12:11:02 2016 +0200 @@ -177,16 +177,16 @@ then have "0 \ setsum a s" by (simp add: setsum_nonneg) have "a i *\<^sub>R y i + (\j\s. a j *\<^sub>R y j) \ C" - proof (cases) - assume z: "setsum a s = 0" + proof (cases "setsum a s = 0") + case True with \a i + setsum a s = 1\ have "a i = 1" by simp - from setsum_nonneg_0 [OF \finite s\ _ z] \\j\s. 0 \ a j\ have "\j\s. a j = 0" + from setsum_nonneg_0 [OF \finite s\ _ True] \\j\s. 0 \ a j\ have "\j\s. a j = 0" by simp show ?thesis using \a i = 1\ and \\j\s. a j = 0\ and \y i \ C\ by simp next - assume nz: "setsum a s \ 0" + case False with \0 \ setsum a s\ have "0 < setsum a s" by simp then have "(\j\s. (a j / setsum a s) *\<^sub>R y j) \ C" @@ -197,7 +197,7 @@ have "a i *\<^sub>R y i + setsum a s *\<^sub>R (\j\s. (a j / setsum a s) *\<^sub>R y j) \ C" by (rule convexD) then show ?thesis - by (simp add: scaleR_setsum_right nz) + by (simp add: scaleR_setsum_right False) qed then show ?case using \finite s\ and \i \ s\ by simp diff -r 6c46a1e786da -r 76492eaf3dc1 src/HOL/Library/Discrete.thy --- a/src/HOL/Library/Discrete.thy Sat Jul 16 12:10:37 2016 +0200 +++ b/src/HOL/Library/Discrete.thy Sat Jul 16 12:11:02 2016 +0200 @@ -92,11 +92,12 @@ lemma log_exp2_le: assumes "n > 0" shows "2 ^ log n \ n" -using assms proof (induct n rule: log_induct) - show "2 ^ log 1 \ (1 :: nat)" by simp + using assms +proof (induct n rule: log_induct) + case one + then show ?case by simp next - fix n :: nat - assume "n \ 2" + case (double n) with log_mono have "log n \ Suc 0" by (simp add: log.simps) assume "2 ^ log (n div 2) \ n div 2" @@ -105,7 +106,7 @@ with \log n \ Suc 0\ have "2 ^ log n \ n div 2 * 2" unfolding power_add [symmetric] by simp also have "n div 2 * 2 \ n" by (cases "even n") simp_all - finally show "2 ^ log n \ n" . + finally show ?case . qed