[STATEMENT]
lemma monomial_split_card:
  assumes "P \<in> indexed_pset I (carrier R)"
  assumes "m \<in> monomials_of R P"
  shows "card (monomials_of R (restrict_poly_to_monom_set R P ((monomials_of R P) - {m})))=
        card (monomials_of R P) -1"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. card (monomials_of R (restrict_poly_to_monom_set R P (monomials_of R P - {m}))) = card (monomials_of R P) - 1
[PROOF STEP]
proof-
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. card (monomials_of R (restrict_poly_to_monom_set R P (monomials_of R P - {m}))) = card (monomials_of R P) - 1
[PROOF STEP]
have 0: "(monomials_of R (restrict_poly_to_monom_set R P ((monomials_of R P) - {m}))) =
        (monomials_of R P) - {m}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. monomials_of R (restrict_poly_to_monom_set R P (monomials_of R P - {m})) = monomials_of R P - {m}
[PROOF STEP]
using assms(1)
[PROOF STATE]
proof (prove)
using this:
P \<in> carrier R [\<X>\<^bsub>I\<^esub>]

goal (1 subgoal):
 1. monomials_of R (restrict_poly_to_monom_set R P (monomials_of R P - {m})) = monomials_of R P - {m}
[PROOF STEP]
by (meson Diff_subset restrict_poly_to_monom_set_monoms)
[PROOF STATE]
proof (state)
this:
monomials_of R (restrict_poly_to_monom_set R P (monomials_of R P - {m})) = monomials_of R P - {m}

goal (1 subgoal):
 1. card (monomials_of R (restrict_poly_to_monom_set R P (monomials_of R P - {m}))) = card (monomials_of R P) - 1
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
monomials_of R (restrict_poly_to_monom_set R P (monomials_of R P - {m})) = monomials_of R P - {m}
[PROOF STEP]
have 1:  "card (monomials_of R (restrict_poly_to_monom_set R P ((monomials_of R P) - {m}))) =
              card ((monomials_of R P) - {m})"
[PROOF STATE]
proof (prove)
using this:
monomials_of R (restrict_poly_to_monom_set R P (monomials_of R P - {m})) = monomials_of R P - {m}

goal (1 subgoal):
 1. card (monomials_of R (restrict_poly_to_monom_set R P (monomials_of R P - {m}))) = card (monomials_of R P - {m})
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
card (monomials_of R (restrict_poly_to_monom_set R P (monomials_of R P - {m}))) = card (monomials_of R P - {m})

goal (1 subgoal):
 1. card (monomials_of R (restrict_poly_to_monom_set R P (monomials_of R P - {m}))) = card (monomials_of R P) - 1
[PROOF STEP]
have " card ((monomials_of R P) - {m}) =  card (monomials_of R P) - 1"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. card (monomials_of R P - {m}) = card (monomials_of R P) - 1
[PROOF STEP]
using assms(2)
[PROOF STATE]
proof (prove)
using this:
m \<in> monomials_of R P

goal (1 subgoal):
 1. card (monomials_of R P - {m}) = card (monomials_of R P) - 1
[PROOF STEP]
using assms(1) monomials_finite
[PROOF STATE]
proof (prove)
using this:
m \<in> monomials_of R P
P \<in> carrier R [\<X>\<^bsub>I\<^esub>]
?P \<in> ?I [\<X>\<^bsub>?K\<^esub>] \<Longrightarrow> finite (monomials_of R ?P)

goal (1 subgoal):
 1. card (monomials_of R P - {m}) = card (monomials_of R P) - 1
[PROOF STEP]
by fastforce
[PROOF STATE]
proof (state)
this:
card (monomials_of R P - {m}) = card (monomials_of R P) - 1

goal (1 subgoal):
 1. card (monomials_of R (restrict_poly_to_monom_set R P (monomials_of R P - {m}))) = card (monomials_of R P) - 1
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
card (monomials_of R P - {m}) = card (monomials_of R P) - 1
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
card (monomials_of R P - {m}) = card (monomials_of R P) - 1

goal (1 subgoal):
 1. card (monomials_of R (restrict_poly_to_monom_set R P (monomials_of R P - {m}))) = card (monomials_of R P) - 1
[PROOF STEP]
by (simp add: "1")
[PROOF STATE]
proof (state)
this:
card (monomials_of R (restrict_poly_to_monom_set R P (monomials_of R P - {m}))) = card (monomials_of R P) - 1

goal:
No subgoals!
[PROOF STEP]
qed


[STATEMENT]
lemma inv_upOne_eq: "(inv upOne) (n::int) = n - 1"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. inv upOne n = n - 1
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. inv upOne n = n - 1
[PROOF STEP]
fix "n" :: int
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. inv upOne n = n - 1
[PROOF STEP]
have "((inv upOne) \<circ> upOne) (n - 1) = (inv upOne) n"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (inv upOne \<circ> upOne) (n - 1) = inv upOne n
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
(inv upOne \<circ> upOne) (n - 1) = inv upOne n

goal (1 subgoal):
 1. inv upOne n = n - 1
[PROOF STEP]
with inj_upOne and Hilbert_Choice.inv_o_cancel
[PROOF STATE]
proof (chain)
picking this:
inj upOne
inj ?f \<Longrightarrow> inv ?f \<circ> ?f = id
(inv upOne \<circ> upOne) (n - 1) = inv upOne n
[PROOF STEP]
show "(inv upOne) n = n - 1"
[PROOF STATE]
proof (prove)
using this:
inj upOne
inj ?f \<Longrightarrow> inv ?f \<circ> ?f = id
(inv upOne \<circ> upOne) (n - 1) = inv upOne n

goal (1 subgoal):
 1. inv upOne n = n - 1
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
inv upOne n = n - 1

goal:
No subgoals!
[PROOF STEP]
qed


[STATEMENT]
theorem card_pderivs_lang_UNIV_le_awidth: "card (pderivs_lang UNIV r) \<le> awidth r + 1"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. card (pderivs_lang UNIV r) \<le> awidth r + 1
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. card (pderivs_lang UNIV r) \<le> awidth r + 1
[PROOF STEP]
have "card (insert r (pderivs_lang UNIV1 r)) \<le> Suc (card (pderivs_lang UNIV1 r))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. card (insert r (pderivs_lang UNIV1 r)) \<le> Suc (card (pderivs_lang UNIV1 r))
[PROOF STEP]
by(auto simp: card_insert_if[OF finite_pderivs_lang_UNIV1])
[PROOF STATE]
proof (state)
this:
card (insert r (pderivs_lang UNIV1 r)) \<le> Suc (card (pderivs_lang UNIV1 r))

goal (1 subgoal):
 1. card (pderivs_lang UNIV r) \<le> awidth r + 1
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
card (insert r (pderivs_lang UNIV1 r)) \<le> Suc (card (pderivs_lang UNIV1 r))

goal (1 subgoal):
 1. card (pderivs_lang UNIV r) \<le> awidth r + 1
[PROOF STEP]
have "\<dots> \<le> Suc (awidth r)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. Suc (card (pderivs_lang UNIV1 r)) \<le> Suc (awidth r)
[PROOF STEP]
by(simp add: card_pderivs_lang_UNIV1_le_awidth)
[PROOF STATE]
proof (state)
this:
Suc (card (pderivs_lang UNIV1 r)) \<le> Suc (awidth r)

goal (1 subgoal):
 1. card (pderivs_lang UNIV r) \<le> awidth r + 1
[PROOF STEP]
finally
[PROOF STATE]
proof (chain)
picking this:
card (insert r (pderivs_lang UNIV1 r)) \<le> Suc (awidth r)
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
card (insert r (pderivs_lang UNIV1 r)) \<le> Suc (awidth r)

goal (1 subgoal):
 1. card (pderivs_lang UNIV r) \<le> awidth r + 1
[PROOF STEP]
by(simp add: pderivs_lang_UNIV)
[PROOF STATE]
proof (state)
this:
card (pderivs_lang UNIV r) \<le> awidth r + 1

goal:
No subgoals!
[PROOF STEP]
qed


[STATEMENT]
lemma scaleR_sum_list:
  fixes xs::"'a::real_vector list"
  shows "a *\<^sub>R sum_list xs = sum_list (map (scaleR a) xs)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. a *\<^sub>R sum_list xs = sum_list (map ((*\<^sub>R) a) xs)
[PROOF STEP]
by (induct xs) (auto simp: algebra_simps)


[STATEMENT]
lemma (in domain) Units_mult_eq_Units [simp]: "Units (mult_of R) = Units R"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. Units (Ring_Divisibility.mult_of R) = Units R
[PROOF STEP]
unfolding Units_def
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. {y \<in> carrier (Ring_Divisibility.mult_of R). \<exists>x\<in>carrier (Ring_Divisibility.mult_of R). x \<otimes>\<^bsub>Ring_Divisibility.mult_of R\<^esub> y = \<one>\<^bsub>Ring_Divisibility.mult_of R\<^esub> \<and> y \<otimes>\<^bsub>Ring_Divisibility.mult_of R\<^esub> x = \<one>\<^bsub>Ring_Divisibility.mult_of R\<^esub>} = {y \<in> carrier R. \<exists>x\<in>carrier R. x \<otimes> y = \<one> \<and> y \<otimes> x = \<one>}
[PROOF STEP]
using insert_Diff integral_iff
[PROOF STATE]
proof (prove)
using this:
?a \<in> ?A \<Longrightarrow> insert ?a (?A - {?a}) = ?A
\<lbrakk>?a \<in> carrier R; ?b \<in> carrier R\<rbrakk> \<Longrightarrow> (?a \<otimes> ?b = \<zero>) = (?a = \<zero> \<or> ?b = \<zero>)

goal (1 subgoal):
 1. {y \<in> carrier (Ring_Divisibility.mult_of R). \<exists>x\<in>carrier (Ring_Divisibility.mult_of R). x \<otimes>\<^bsub>Ring_Divisibility.mult_of R\<^esub> y = \<one>\<^bsub>Ring_Divisibility.mult_of R\<^esub> \<and> y \<otimes>\<^bsub>Ring_Divisibility.mult_of R\<^esub> x = \<one>\<^bsub>Ring_Divisibility.mult_of R\<^esub>} = {y \<in> carrier R. \<exists>x\<in>carrier R. x \<otimes> y = \<one> \<and> y \<otimes> x = \<one>}
[PROOF STEP]
by auto


[STATEMENT]
lemma abs_Max_sum:
  fixes A::"real set"
  assumes "finite A" "A \<noteq> {}"
  shows "abs(Max A) \<le> (\<Sum>a\<in>A. abs(a))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<bar>Max A\<bar> \<le> sum abs A
[PROOF STEP]
by (simp add: assms member_le_sum)


[STATEMENT]
lemma "(2::int) + 3 * (- 4) * 1 + 0 = -10"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. 2 + 3 * - 4 * 1 + 0 = - 10
[PROOF STEP]
by normalization


[STATEMENT]
lemma holomorphic_on_divide [holomorphic_intros]:
  "\<lbrakk>f holomorphic_on s; g holomorphic_on s; \<And>z. z \<in> s \<Longrightarrow> g z \<noteq> 0\<rbrakk> \<Longrightarrow> (\<lambda>z. f z / g z) holomorphic_on s"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>f holomorphic_on s; g holomorphic_on s; \<And>z. z \<in> s \<Longrightarrow> g z \<noteq> 0\<rbrakk> \<Longrightarrow> (\<lambda>z. f z / g z) holomorphic_on s
[PROOF STEP]
unfolding holomorphic_on_def
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>\<forall>x\<in>s. f field_differentiable at x within s; \<forall>x\<in>s. g field_differentiable at x within s; \<And>z. z \<in> s \<Longrightarrow> g z \<noteq> 0\<rbrakk> \<Longrightarrow> \<forall>x\<in>s. (\<lambda>z. f z / g z) field_differentiable at x within s
[PROOF STEP]
by (metis field_differentiable_divide)


[STATEMENT]
lemma rel_interior_same_affine_hull:
  fixes S :: "'n::euclidean_space set"
  assumes "convex S"
  shows "affine hull (rel_interior S) = affine hull S"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. affine hull rel_interior S = affine hull S
[PROOF STEP]
by (metis assms closure_same_affine_hull convex_closure_rel_interior)


[STATEMENT]
lemma poly_tuple_evalE'':
  assumes "is_poly_tuple n fs"
  assumes "length fs = m"
  assumes "as \<in> carrier (R\<^bsup>n\<^esup>)"
  assumes "j < m"
  shows "(poly_tuple_eval fs as)!j = (eval_at_poly R (fs!j) as)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. poly_tuple_eval fs as ! j = eval_at_point R as (fs ! j)
[PROOF STEP]
using assms
[PROOF STATE]
proof (prove)
using this:
is_poly_tuple n fs
length fs = m
as \<in> carrier (R\<^bsup>n\<^esup>)
j < m

goal (1 subgoal):
 1. poly_tuple_eval fs as ! j = eval_at_point R as (fs ! j)
[PROOF STEP]
unfolding poly_tuple_eval_def
[PROOF STATE]
proof (prove)
using this:
is_poly_tuple n fs
length fs = m
as \<in> carrier (R\<^bsup>n\<^esup>)
j < m

goal (1 subgoal):
 1. map (eval_at_point R as) fs ! j = eval_at_point R as (fs ! j)
[PROOF STEP]
using nth_map
[PROOF STATE]
proof (prove)
using this:
is_poly_tuple n fs
length fs = m
as \<in> carrier (R\<^bsup>n\<^esup>)
j < m
?n < length ?xs \<Longrightarrow> map ?f ?xs ! ?n = ?f (?xs ! ?n)

goal (1 subgoal):
 1. map (eval_at_point R as) fs ! j = eval_at_point R as (fs ! j)
[PROOF STEP]
by blast


[STATEMENT]
lemma simplex_extremal_le_exists:
  fixes S :: "'a::real_inner set"
  shows "finite S \<Longrightarrow> x \<in> convex hull S \<Longrightarrow> y \<in> convex hull S \<Longrightarrow>
    \<exists>u\<in>S. \<exists>v\<in>S. norm (x - y) \<le> norm (u - v)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>finite S; x \<in> convex hull S; y \<in> convex hull S\<rbrakk> \<Longrightarrow> \<exists>u\<in>S. \<exists>v\<in>S. norm (x - y) \<le> norm (u - v)
[PROOF STEP]
using convex_hull_empty simplex_extremal_le[of S]
[PROOF STATE]
proof (prove)
using this:
convex hull {} = {}
\<lbrakk>finite S; S \<noteq> {}\<rbrakk> \<Longrightarrow> \<exists>u\<in>S. \<exists>v\<in>S. \<forall>x\<in>convex hull S. \<forall>y\<in>convex hull S. norm (x - y) \<le> norm (u - v)

goal (1 subgoal):
 1. \<lbrakk>finite S; x \<in> convex hull S; y \<in> convex hull S\<rbrakk> \<Longrightarrow> \<exists>u\<in>S. \<exists>v\<in>S. norm (x - y) \<le> norm (u - v)
[PROOF STEP]
by(cases "S = {}") auto


[STATEMENT]
lemma floor_le_numeral [simp]: "\<lfloor>x\<rfloor> \<le> numeral v \<longleftrightarrow> x < numeral v + 1"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<lfloor>x\<rfloor> \<le> numeral v) = (x < numeral v + (1::'a))
[PROOF STEP]
by (simp add: floor_le_iff)


[STATEMENT]
lemma v_equals_sum_group_sizes: "\<v> = (\<Sum>G \<in> \<G>. card G)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<v> = sum card \<G>
[PROOF STEP]
using group_partitions groups_disjoint partition_onD1 card_Union_disjoint group_elements_finite
[PROOF STATE]
proof (prove)
using this:
partition_on \<V> \<G>
disjoint \<G>
partition_on ?A ?P \<Longrightarrow> ?A = \<Union> ?P
\<lbrakk>disjoint ?C; \<And>A. A \<in> ?C \<Longrightarrow> finite A\<rbrakk> \<Longrightarrow> card (\<Union> ?C) = sum card ?C
?G \<in> \<G> \<Longrightarrow> finite ?G

goal (1 subgoal):
 1. \<v> = sum card \<G>
[PROOF STEP]
by fastforce


[STATEMENT]
lemma cis_minus_pi_half[simp]: "cis (-(pi / 2)) = -\<i>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. cis (- (pi / 2)) = - \<i>
[PROOF STEP]
by (simp add: cis.ctr complex_eq_iff)


[STATEMENT]
lemma leadsto_false: "\<turnstile> (F \<leadsto> #False) = (\<box>\<not>F)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<turnstile> (F \<leadsto> #False) = (\<box>\<not> F)
[PROOF STEP]
apply (unfold leadsto_def)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<turnstile> (\<box>(Init F \<longrightarrow> \<diamond>#False)) = (\<box>\<not> F)
[PROOF STEP]
apply (simp add: boxNotInitD)
[PROOF STATE]
proof (prove)
goal:
No subgoals!
[PROOF STEP]
done


[STATEMENT]
lemma ex_less_Suc:
  "(\<exists>i<Suc j. P i) \<longleftrightarrow> P 0 \<or> (\<exists>i<j. P (Suc i))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<exists>i<Suc j. P i) = (P 0 \<or> (\<exists>i<j. P (Suc i)))
[PROOF STEP]
by (auto simp: less_Suc_eq_0_disj)


[STATEMENT]
lemma resultant_zero_iff_coprime: fixes f g :: "'a :: field poly"
  assumes "f \<noteq> 0 \<or> g \<noteq> 0"
  shows "resultant f g = 0 \<longleftrightarrow> \<not> coprime f g"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (resultant f g = (0::'a)) = (\<not> comm_monoid_mult_class.coprime f g)
[PROOF STEP]
proof (cases "degree f > 0 \<or> degree g > 0")
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. 0 < degree f \<or> 0 < degree g \<Longrightarrow> (resultant f g = (0::'a)) = (\<not> comm_monoid_mult_class.coprime f g)
 2. \<not> (0 < degree f \<or> 0 < degree g) \<Longrightarrow> (resultant f g = (0::'a)) = (\<not> comm_monoid_mult_class.coprime f g)
[PROOF STEP]
case True
[PROOF STATE]
proof (state)
this:
0 < degree f \<or> 0 < degree g

goal (2 subgoals):
 1. 0 < degree f \<or> 0 < degree g \<Longrightarrow> (resultant f g = (0::'a)) = (\<not> comm_monoid_mult_class.coprime f g)
 2. \<not> (0 < degree f \<or> 0 < degree g) \<Longrightarrow> (resultant f g = (0::'a)) = (\<not> comm_monoid_mult_class.coprime f g)
[PROOF STEP]
thus ?thesis
[PROOF STATE]
proof (prove)
using this:
0 < degree f \<or> 0 < degree g

goal (1 subgoal):
 1. (resultant f g = (0::'a)) = (\<not> comm_monoid_mult_class.coprime f g)
[PROOF STEP]
using resultant_iff_coprime_main[OF True]
[PROOF STATE]
proof (prove)
using this:
0 < degree f \<or> 0 < degree g
(resultant f g = (0::'a)) = (\<not> comm_monoid_mult_class.coprime f g)

goal (1 subgoal):
 1. (resultant f g = (0::'a)) = (\<not> comm_monoid_mult_class.coprime f g)
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
(resultant f g = (0::'a)) = (\<not> comm_monoid_mult_class.coprime f g)

goal (1 subgoal):
 1. \<not> (0 < degree f \<or> 0 < degree g) \<Longrightarrow> (resultant f g = (0::'a)) = (\<not> comm_monoid_mult_class.coprime f g)
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<not> (0 < degree f \<or> 0 < degree g) \<Longrightarrow> (resultant f g = (0::'a)) = (\<not> comm_monoid_mult_class.coprime f g)
[PROOF STEP]
case False
[PROOF STATE]
proof (state)
this:
\<not> (0 < degree f \<or> 0 < degree g)

goal (1 subgoal):
 1. \<not> (0 < degree f \<or> 0 < degree g) \<Longrightarrow> (resultant f g = (0::'a)) = (\<not> comm_monoid_mult_class.coprime f g)
[PROOF STEP]
hence "degree f = 0" "degree g = 0"
[PROOF STATE]
proof (prove)
using this:
\<not> (0 < degree f \<or> 0 < degree g)

goal (1 subgoal):
 1. degree f = 0 &&& degree g = 0
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
degree f = 0
degree g = 0

goal (1 subgoal):
 1. \<not> (0 < degree f \<or> 0 < degree g) \<Longrightarrow> (resultant f g = (0::'a)) = (\<not> comm_monoid_mult_class.coprime f g)
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
degree f = 0
degree g = 0
[PROOF STEP]
obtain c d where f: "f = [:c:]" and g: "g = [:d:]"
[PROOF STATE]
proof (prove)
using this:
degree f = 0
degree g = 0

goal (1 subgoal):
 1. (\<And>c d. \<lbrakk>f = [:c:]; g = [:d:]\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
using degree0_coeffs
[PROOF STATE]
proof (prove)
using this:
degree f = 0
degree g = 0
degree ?p = 0 \<Longrightarrow> \<exists>a. ?p = [:a:]

goal (1 subgoal):
 1. (\<And>c d. \<lbrakk>f = [:c:]; g = [:d:]\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by metis+
[PROOF STATE]
proof (state)
this:
f = [:c:]
g = [:d:]

goal (1 subgoal):
 1. \<not> (0 < degree f \<or> 0 < degree g) \<Longrightarrow> (resultant f g = (0::'a)) = (\<not> comm_monoid_mult_class.coprime f g)
[PROOF STEP]
from assms
[PROOF STATE]
proof (chain)
picking this:
f \<noteq> 0 \<or> g \<noteq> 0
[PROOF STEP]
have cd: "c \<noteq> 0 \<or> d \<noteq> 0"
[PROOF STATE]
proof (prove)
using this:
f \<noteq> 0 \<or> g \<noteq> 0

goal (1 subgoal):
 1. c \<noteq> (0::'a) \<or> d \<noteq> (0::'a)
[PROOF STEP]
unfolding f g
[PROOF STATE]
proof (prove)
using this:
[:c:] \<noteq> 0 \<or> [:d:] \<noteq> 0

goal (1 subgoal):
 1. c \<noteq> (0::'a) \<or> d \<noteq> (0::'a)
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
c \<noteq> (0::'a) \<or> d \<noteq> (0::'a)

goal (1 subgoal):
 1. \<not> (0 < degree f \<or> 0 < degree g) \<Longrightarrow> (resultant f g = (0::'a)) = (\<not> comm_monoid_mult_class.coprime f g)
[PROOF STEP]
have res: "resultant f g = 1"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. resultant f g = (1::'a)
[PROOF STEP]
unfolding f g resultant_const
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. d ^ degree [:c:] = (1::'a)
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
resultant f g = (1::'a)

goal (1 subgoal):
 1. \<not> (0 < degree f \<or> 0 < degree g) \<Longrightarrow> (resultant f g = (0::'a)) = (\<not> comm_monoid_mult_class.coprime f g)
[PROOF STEP]
have "coprime f g"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. comm_monoid_mult_class.coprime f g
[PROOF STEP]
by (metis assms one_neq_zero res resultant_non_zero_imp_coprime)
[PROOF STATE]
proof (state)
this:
comm_monoid_mult_class.coprime f g

goal (1 subgoal):
 1. \<not> (0 < degree f \<or> 0 < degree g) \<Longrightarrow> (resultant f g = (0::'a)) = (\<not> comm_monoid_mult_class.coprime f g)
[PROOF STEP]
with res
[PROOF STATE]
proof (chain)
picking this:
resultant f g = (1::'a)
comm_monoid_mult_class.coprime f g
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
resultant f g = (1::'a)
comm_monoid_mult_class.coprime f g

goal (1 subgoal):
 1. (resultant f g = (0::'a)) = (\<not> comm_monoid_mult_class.coprime f g)
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
(resultant f g = (0::'a)) = (\<not> comm_monoid_mult_class.coprime f g)

goal:
No subgoals!
[PROOF STEP]
qed


[STATEMENT]
lemma is_mult_sum4sq_int: "is_sum4sq_int x \<Longrightarrow> is_sum4sq_int y \<Longrightarrow> is_sum4sq_int (x*y)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>is_sum4sq_int x; is_sum4sq_int y\<rbrakk> \<Longrightarrow> is_sum4sq_int (x * y)
[PROOF STEP]
by (unfold is_sum4sq_int_def, auto simp only: mult_sum4sq_int, blast)


[STATEMENT]
lemma nat_eq_diff_eq:
  fixes a b c :: nat
  shows "c \<le> b \<Longrightarrow> a = b - c \<longleftrightarrow> a + c = b"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. c \<le> b \<Longrightarrow> (a = b - c) = (a + c = b)
[PROOF STEP]
by auto


[STATEMENT]
lemma index_mod_eq [simp]:
  fixes i::nat
  shows "i\<in>{a*b..<(a+1)*b} \<Longrightarrow> i mod b = i-a*b"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. i \<in> {a * b..<(a + 1) * b} \<Longrightarrow> i mod b = i - a * b
[PROOF STEP]
by (simp add: modulo_nat_def)


[STATEMENT]
lemma poly_no_roots_leq_leq:
  "(\<forall>x. a \<le> x \<and> x \<le> b \<longrightarrow> poly p x \<noteq> 0) \<longleftrightarrow>
   ((a > b \<or> (p \<noteq> 0 \<and> poly p a \<noteq> 0 \<and> count_roots_between p a b = 0)))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<forall>x. a \<le> x \<and> x \<le> b \<longrightarrow> poly p x \<noteq> 0) = (b < a \<or> p \<noteq> 0 \<and> poly p a \<noteq> 0 \<and> count_roots_between p a b = 0)
[PROOF STEP]
apply (intro iffI)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<forall>x. a \<le> x \<and> x \<le> b \<longrightarrow> poly p x \<noteq> 0 \<Longrightarrow> b < a \<or> p \<noteq> 0 \<and> poly p a \<noteq> 0 \<and> count_roots_between p a b = 0
 2. b < a \<or> p \<noteq> 0 \<and> poly p a \<noteq> 0 \<and> count_roots_between p a b = 0 \<Longrightarrow> \<forall>x. a \<le> x \<and> x \<le> b \<longrightarrow> poly p x \<noteq> 0
[PROOF STEP]
apply (force simp add: count_roots_between_correct card_eq_0_iff)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. b < a \<or> p \<noteq> 0 \<and> poly p a \<noteq> 0 \<and> count_roots_between p a b = 0 \<Longrightarrow> \<forall>x. a \<le> x \<and> x \<le> b \<longrightarrow> poly p x \<noteq> 0
[PROOF STEP]
apply (elim conjE disjE, simp, intro allI)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x. \<lbrakk>p \<noteq> 0; poly p a \<noteq> 0; count_roots_between p a b = 0\<rbrakk> \<Longrightarrow> a \<le> x \<and> x \<le> b \<longrightarrow> poly p x \<noteq> 0
[PROOF STEP]
apply (rename_tac x, case_tac "x = a")
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<And>x. \<lbrakk>p \<noteq> 0; poly p a \<noteq> 0; count_roots_between p a b = 0; x = a\<rbrakk> \<Longrightarrow> a \<le> x \<and> x \<le> b \<longrightarrow> poly p x \<noteq> 0
 2. \<And>x. \<lbrakk>p \<noteq> 0; poly p a \<noteq> 0; count_roots_between p a b = 0; x \<noteq> a\<rbrakk> \<Longrightarrow> a \<le> x \<and> x \<le> b \<longrightarrow> poly p x \<noteq> 0
[PROOF STEP]
apply (auto simp add: count_roots_between_correct card_eq_0_iff
            dest: poly_roots_finite)
[PROOF STATE]
proof (prove)
goal:
No subgoals!
[PROOF STEP]
done


[STATEMENT]
lemma gen_ramanujan_sum_1_n: "s f g 1 n = f 1 * g 1"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. s f g 1 n = f 1 * g 1
[PROOF STEP]
unfolding gen_ramanujan_sum_def
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<Sum>d | d dvd gcd n 1. f d * g (1 div d)) = f 1 * g 1
[PROOF STEP]
by simp


[STATEMENT]
lemma guard_match_symmetry: "(guardMatch t1 t2) = (guardMatch t2 t1)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. guardMatch t1 t2 = guardMatch t2 t1
[PROOF STEP]
apply (simp add: guardMatch_def)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. ((\<exists>n. Guards t1 = [Eq (V (I 0)) (L (Num n))]) \<and> (\<exists>n'. Guards t2 = [Eq (V (I 0)) (L (Num n'))])) = ((\<exists>n. Guards t2 = [Eq (V (I 0)) (L (Num n))]) \<and> (\<exists>n'. Guards t1 = [Eq (V (I 0)) (L (Num n'))]))
[PROOF STEP]
by auto


[STATEMENT]
lemma gcd_dvd_lcm [simp]: "gcd a b dvd lcm a b"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. gcd a b dvd lcm a b
[PROOF STEP]
using gcd_dvd2
[PROOF STATE]
proof (prove)
using this:
gcd ?a ?b dvd ?b

goal (1 subgoal):
 1. gcd a b dvd lcm a b
[PROOF STEP]
by (rule dvd_lcmI2)


[STATEMENT]
lemma prime_elem_linear_poly:
  fixes a b :: "'a::{idom_divide,ring_gcd,factorial_semiring,semiring_Gcd,semiring_gcd_mult_normalize}"
  shows "b \<noteq> 0 \<Longrightarrow> coprime a b \<Longrightarrow> prime_elem [:a,b:]"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>b \<noteq> (0::'a); coprime a b\<rbrakk> \<Longrightarrow> prime_elem [:a, b:]
[PROOF STEP]
by (rule irreducible_imp_prime_poly, rule irreducible_linear_poly)


[STATEMENT]
lemma integrable_on_mono_on:
  fixes f :: "real \<Rightarrow> real"
  assumes "mono_on {a..b} f"
  shows "f integrable_on {a..b}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. f integrable_on {a..b}
[PROOF STEP]
by (simp add: assms integrable_mono_on integrable_on_lebesgue_on)


[STATEMENT]
lemma pivot_lvars: "\<lbrakk>\<triangle> (\<T> s); x\<^sub>i \<in> lvars (\<T> s); x\<^sub>j \<in> rvars_of_lvar (\<T> s) x\<^sub>i\<rbrakk> \<Longrightarrow> lvars (\<T> (pivot x\<^sub>i x\<^sub>j s)) = lvars (\<T> s) - {x\<^sub>i} \<union> {x\<^sub>j}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>\<triangle> (\<T> s); x\<^sub>i \<in> lvars (\<T> s); x\<^sub>j \<in> rvars_eq (eq_for_lvar (\<T> s) x\<^sub>i)\<rbrakk> \<Longrightarrow> lvars (\<T> (pivot x\<^sub>i x\<^sub>j s)) = lvars (\<T> s) - {x\<^sub>i} \<union> {x\<^sub>j}
[PROOF STEP]
using pivot_vars'
[PROOF STATE]
proof (prove)
using this:
\<lbrakk>\<triangle> (\<T> ?s); ?x\<^sub>i \<in> lvars (\<T> ?s); ?x\<^sub>j \<in> rvars_eq (eq_for_lvar (\<T> ?s) ?x\<^sub>i)\<rbrakk> \<Longrightarrow> let s' = pivot ?x\<^sub>i ?x\<^sub>j ?s in rvars (\<T> s') = rvars (\<T> ?s) - {?x\<^sub>j} \<union> {?x\<^sub>i} \<and> lvars (\<T> s') = lvars (\<T> ?s) - {?x\<^sub>i} \<union> {?x\<^sub>j}

goal (1 subgoal):
 1. \<lbrakk>\<triangle> (\<T> s); x\<^sub>i \<in> lvars (\<T> s); x\<^sub>j \<in> rvars_eq (eq_for_lvar (\<T> s) x\<^sub>i)\<rbrakk> \<Longrightarrow> lvars (\<T> (pivot x\<^sub>i x\<^sub>j s)) = lvars (\<T> s) - {x\<^sub>i} \<union> {x\<^sub>j}
[PROOF STEP]
by (simp add: Let_def)


[STATEMENT]
lemma list_all_iff_fset: "list_all P xs \<longleftrightarrow> fBall (fset_of_list xs) P"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. list_all P xs = fBall (fset_of_list xs) P
[PROOF STEP]
by transfer (rule list_all_iff)


[STATEMENT]
lemma triangle_Suc [simp]: "triangle (Suc n) = triangle n + Suc n"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. triangle (Suc n) = triangle n + Suc n
[PROOF STEP]
by (simp add: triangle_def)


[STATEMENT]
lemma has_integral_le:
  fixes f :: "'n::euclidean_space \<Rightarrow> real"
  assumes fg: "(f has_integral i) S" "(g has_integral j) S"
    and le: "\<And>x. x \<in> S \<Longrightarrow> f x \<le> g x"
  shows "i \<le> j"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. i \<le> j
[PROOF STEP]
using has_integral_component_le[OF _ fg, of 1] le
[PROOF STATE]
proof (prove)
using this:
\<lbrakk>1 \<in> Basis; \<And>x. x \<in> S \<Longrightarrow> f x \<bullet> 1 \<le> g x \<bullet> 1\<rbrakk> \<Longrightarrow> i \<bullet> 1 \<le> j \<bullet> 1
?x \<in> S \<Longrightarrow> f ?x \<le> g ?x

goal (1 subgoal):
 1. i \<le> j
[PROOF STEP]
by auto


[STATEMENT]
lemma Red_F_subs_Red_F_diff_Red_F: "Red_F N \<subseteq> Red_F (N - Red_F N)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. Red_F N \<subseteq> Red_F (N - Red_F N)
[PROOF STEP]
unfolding Red_F_conv
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. fin_std_red_F.Red_F N \<subseteq> fin_std_red_F.Red_F (N - fin_std_red_F.Red_F N)
[PROOF STEP]
by (rule fin_std_red_F.Red_F_subs_Red_F_diff_Red_F)


[STATEMENT]
lemma summable_norm_cos: "summable (\<lambda>n. norm (cos_coeff n *\<^sub>R x^n))"
  for x :: "'a::{real_normed_algebra_1,banach}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. summable (\<lambda>n. norm (cos_coeff n *\<^sub>R x ^ n))
[PROOF STEP]
proof (rule summable_comparison_test [OF _ summable_norm_exp])
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<exists>N. \<forall>n\<ge>N. norm (norm (cos_coeff n *\<^sub>R x ^ n)) \<le> norm (?x1 ^ n /\<^sub>R fact n)
[PROOF STEP]
show "\<exists>N. \<forall>n\<ge>N. norm (norm (cos_coeff n *\<^sub>R x ^ n)) \<le> norm (x ^ n /\<^sub>R fact n)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<exists>N. \<forall>n\<ge>N. norm (norm (cos_coeff n *\<^sub>R x ^ n)) \<le> norm (x ^ n /\<^sub>R fact n)
[PROOF STEP]
unfolding cos_coeff_def
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<exists>N. \<forall>n\<ge>N. norm (norm ((if even n then (- 1) ^ (n div 2) / fact n else 0) *\<^sub>R x ^ n)) \<le> norm (x ^ n /\<^sub>R fact n)
[PROOF STEP]
by (auto simp: divide_inverse abs_mult power_abs [symmetric] zero_le_mult_iff)
[PROOF STATE]
proof (state)
this:
\<exists>N. \<forall>n\<ge>N. norm (norm (cos_coeff n *\<^sub>R x ^ n)) \<le> norm (x ^ n /\<^sub>R fact n)

goal:
No subgoals!
[PROOF STEP]
qed


[STATEMENT]
lemma sum_vec_list: "sum_list (list_of_vec v) = sum_vec v"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. sum_list (list_of_vec v) = sum_vec v
[PROOF STEP]
by (induct v)(simp_all add: sum_vec_vCons)


[STATEMENT]
lemma zero_right: "prod a 0 = 0"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. a ** (0::'b) = (0::'c)
[PROOF STEP]
by (rule additive.zero [OF additive_right])


[STATEMENT]
lemma diff_frac_eq_2:
assumes "b \<noteq> (1::real)"
shows "1 - (a - b) / (1 - b) = (1 - a) / (1 - b)"
(is "?L = ?R")
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. 1 - (a - b) / (1 - b) = (1 - a) / (1 - b)
[PROOF STEP]
proof-
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. 1 - (a - b) / (1 - b) = (1 - a) / (1 - b)
[PROOF STEP]
have b: "1 - b \<noteq> 0"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. 1 - b \<noteq> 0
[PROOF STEP]
using assms
[PROOF STATE]
proof (prove)
using this:
b \<noteq> 1

goal (1 subgoal):
 1. 1 - b \<noteq> 0
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
1 - b \<noteq> 0

goal (1 subgoal):
 1. 1 - (a - b) / (1 - b) = (1 - a) / (1 - b)
[PROOF STEP]
hence "?L = (1 - b - (a - b)) / (1 - b)"  (is "?L = ?A / ?B")
[PROOF STATE]
proof (prove)
using this:
1 - b \<noteq> 0

goal (1 subgoal):
 1. 1 - (a - b) / (1 - b) = (1 - b - (a - b)) / (1 - b)
[PROOF STEP]
using diff_frac_eq_1
[PROOF STATE]
proof (prove)
using this:
1 - b \<noteq> 0
?b \<noteq> 0 \<Longrightarrow> 1 - ?a / ?b = (?b - ?a) / ?b

goal (1 subgoal):
 1. 1 - (a - b) / (1 - b) = (1 - b - (a - b)) / (1 - b)
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
1 - (a - b) / (1 - b) = (1 - b - (a - b)) / (1 - b)

goal (1 subgoal):
 1. 1 - (a - b) / (1 - b) = (1 - a) / (1 - b)
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
1 - (a - b) / (1 - b) = (1 - b - (a - b)) / (1 - b)

goal (1 subgoal):
 1. 1 - (a - b) / (1 - b) = (1 - a) / (1 - b)
[PROOF STEP]
have "?A = 1 - a"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. 1 - b - (a - b) = 1 - a
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
1 - b - (a - b) = 1 - a

goal (1 subgoal):
 1. 1 - (a - b) / (1 - b) = (1 - a) / (1 - b)
[PROOF STEP]
finally
[PROOF STATE]
proof (chain)
picking this:
1 - (a - b) / (1 - b) = (1 - a) / (1 - b)
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
1 - (a - b) / (1 - b) = (1 - a) / (1 - b)

goal (1 subgoal):
 1. 1 - (a - b) / (1 - b) = (1 - a) / (1 - b)
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
1 - (a - b) / (1 - b) = (1 - a) / (1 - b)

goal:
No subgoals!
[PROOF STEP]
qed


[STATEMENT]
lemma discriminant_negative:
  fixes a b c x :: real
  assumes "a \<noteq> 0"
    and "discrim a b c < 0"
  shows "a * x\<^sup>2 + b * x + c \<noteq> 0"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. a * x\<^sup>2 + b * x + c \<noteq> 0
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. a * x\<^sup>2 + b * x + c \<noteq> 0
[PROOF STEP]
have "(2 * a * x + b)\<^sup>2 \<ge> 0"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. 0 \<le> (2 * a * x + b)\<^sup>2
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
0 \<le> (2 * a * x + b)\<^sup>2

goal (1 subgoal):
 1. a * x\<^sup>2 + b * x + c \<noteq> 0
[PROOF STEP]
with \<open>discrim a b c < 0\<close>
[PROOF STATE]
proof (chain)
picking this:
discrim a b c < 0
0 \<le> (2 * a * x + b)\<^sup>2
[PROOF STEP]
have "(2 * a * x + b)\<^sup>2 \<noteq> discrim a b c"
[PROOF STATE]
proof (prove)
using this:
discrim a b c < 0
0 \<le> (2 * a * x + b)\<^sup>2

goal (1 subgoal):
 1. (2 * a * x + b)\<^sup>2 \<noteq> discrim a b c
[PROOF STEP]
by arith
[PROOF STATE]
proof (state)
this:
(2 * a * x + b)\<^sup>2 \<noteq> discrim a b c

goal (1 subgoal):
 1. a * x\<^sup>2 + b * x + c \<noteq> 0
[PROOF STEP]
with complete_square and \<open>a \<noteq> 0\<close>
[PROOF STATE]
proof (chain)
picking this:
?a \<noteq> 0 \<Longrightarrow> (?a * ?x\<^sup>2 + ?b * ?x + ?c = 0) = ((2 * ?a * ?x + ?b)\<^sup>2 = discrim ?a ?b ?c)
a \<noteq> 0
(2 * a * x + b)\<^sup>2 \<noteq> discrim a b c
[PROOF STEP]
show "a * x\<^sup>2 + b * x + c \<noteq> 0"
[PROOF STATE]
proof (prove)
using this:
?a \<noteq> 0 \<Longrightarrow> (?a * ?x\<^sup>2 + ?b * ?x + ?c = 0) = ((2 * ?a * ?x + ?b)\<^sup>2 = discrim ?a ?b ?c)
a \<noteq> 0
(2 * a * x + b)\<^sup>2 \<noteq> discrim a b c

goal (1 subgoal):
 1. a * x\<^sup>2 + b * x + c \<noteq> 0
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
a * x\<^sup>2 + b * x + c \<noteq> 0

goal:
No subgoals!
[PROOF STEP]
qed


[STATEMENT]
lemma sorted_list_of_set_0_LEAST:
  assumes finI: "finite I" and I: "I \<noteq> {}"
  shows "sorted_list_of_set I ! 0 = (LEAST n. n\<in>I)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. sorted_list_of_set I ! 0 = (LEAST n. n \<in> I)
[PROOF STEP]
proof (rule Least_equality[symmetric])
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. sorted_list_of_set I ! 0 \<in> I
 2. \<And>y. y \<in> I \<Longrightarrow> sorted_list_of_set I ! 0 \<le> y
[PROOF STEP]
show "sorted_list_of_set I ! 0 \<in> I"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. sorted_list_of_set I ! 0 \<in> I
[PROOF STEP]
by (metis I Max_in finI gr_zeroI in_set_conv_nth not_less_zero set_sorted_list_of_set)
[PROOF STATE]
proof (state)
this:
sorted_list_of_set I ! 0 \<in> I

goal (1 subgoal):
 1. \<And>y. y \<in> I \<Longrightarrow> sorted_list_of_set I ! 0 \<le> y
[PROOF STEP]
fix y
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>y. y \<in> I \<Longrightarrow> sorted_list_of_set I ! 0 \<le> y
[PROOF STEP]
assume "y \<in> I"
[PROOF STATE]
proof (state)
this:
y \<in> I

goal (1 subgoal):
 1. \<And>y. y \<in> I \<Longrightarrow> sorted_list_of_set I ! 0 \<le> y
[PROOF STEP]
thus "sorted_list_of_set I ! 0 \<le> y"
[PROOF STATE]
proof (prove)
using this:
y \<in> I

goal (1 subgoal):
 1. sorted_list_of_set I ! 0 \<le> y
[PROOF STEP]
by (metis eq_iff finI in_set_conv_nth neq0_conv sorted_iff_nth_mono_less
        sorted_list_of_set(1) sorted_sorted_list_of_set)
[PROOF STATE]
proof (state)
this:
sorted_list_of_set I ! 0 \<le> y

goal:
No subgoals!
[PROOF STEP]
qed


[STATEMENT]
lemma onorm_Sup_on_ball:
  includes notation_norm
  assumes \<open>r > 0\<close>
  shows "\<parallel>f\<parallel> \<le> Sup ( (\<lambda>x. \<parallel>f *\<^sub>v x\<parallel>) ` (ball x r) ) / r"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<parallel>f\<parallel> \<le> (SUP x\<in>ball x r. \<parallel>f *\<^sub>v x\<parallel>) / r
[PROOF STEP]
text \<open>
  Explanation: Let \<^term>\<open>f\<close> be a bounded operator and let \<^term>\<open>x\<close> be a point. For any \<^term>\<open>r > 0\<close>,
  the operator norm of \<^term>\<open>f\<close> is bounded above by the supremum of $f$ applied to the open ball of
  radius \<^term>\<open>r\<close> around \<^term>\<open>x\<close>, divided by \<^term>\<open>r\<close>.
\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<parallel>f\<parallel> \<le> (SUP x\<in>ball x r. \<parallel>f *\<^sub>v x\<parallel>) / r
[PROOF STEP]
proof-
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<parallel>f\<parallel> \<le> (SUP x\<in>ball x r. \<parallel>f *\<^sub>v x\<parallel>) / r
[PROOF STEP]
have bdd_above_3: \<open>bdd_above ((\<lambda>x. \<parallel>f *\<^sub>v x\<parallel>) ` (ball 0 r))\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. bdd_above ((\<lambda>x. \<parallel>f *\<^sub>v x\<parallel>) ` ball (0::'a) r)
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. bdd_above ((\<lambda>x. \<parallel>f *\<^sub>v x\<parallel>) ` ball (0::'a) r)
[PROOF STEP]
obtain M where \<open>\<And> \<xi>.  \<parallel>f *\<^sub>v \<xi>\<parallel> \<le> M * norm \<xi>\<close> and \<open>M \<ge> 0\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<And>M. \<lbrakk>\<And>\<xi>. \<parallel>f *\<^sub>v \<xi>\<parallel> \<le> M * \<parallel>\<xi>\<parallel>; 0 \<le> M\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
using norm_blinfun norm_ge_zero
[PROOF STATE]
proof (prove)
using this:
\<parallel>?f *\<^sub>v ?x\<parallel> \<le> \<parallel>?f\<parallel> * \<parallel>?x\<parallel>
0 \<le> \<parallel>?x\<parallel>

goal (1 subgoal):
 1. (\<And>M. \<lbrakk>\<And>\<xi>. \<parallel>f *\<^sub>v \<xi>\<parallel> \<le> M * \<parallel>\<xi>\<parallel>; 0 \<le> M\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
\<parallel>f *\<^sub>v ?\<xi>\<parallel> \<le> M * \<parallel>?\<xi>\<parallel>
0 \<le> M

goal (1 subgoal):
 1. bdd_above ((\<lambda>x. \<parallel>f *\<^sub>v x\<parallel>) ` ball (0::'a) r)
[PROOF STEP]
hence \<open>\<And> \<xi>. \<xi> \<in> ball 0 r \<Longrightarrow> \<parallel>f *\<^sub>v \<xi>\<parallel> \<le> M * r\<close>
[PROOF STATE]
proof (prove)
using this:
\<parallel>f *\<^sub>v ?\<xi>\<parallel> \<le> M * \<parallel>?\<xi>\<parallel>
0 \<le> M

goal (1 subgoal):
 1. \<And>\<xi>. \<xi> \<in> ball (0::'a) r \<Longrightarrow> \<parallel>f *\<^sub>v \<xi>\<parallel> \<le> M * r
[PROOF STEP]
using \<open>r > 0\<close>
[PROOF STATE]
proof (prove)
using this:
\<parallel>f *\<^sub>v ?\<xi>\<parallel> \<le> M * \<parallel>?\<xi>\<parallel>
0 \<le> M
0 < r

goal (1 subgoal):
 1. \<And>\<xi>. \<xi> \<in> ball (0::'a) r \<Longrightarrow> \<parallel>f *\<^sub>v \<xi>\<parallel> \<le> M * r
[PROOF STEP]
by (smt mem_ball_0 mult_left_mono)
[PROOF STATE]
proof (state)
this:
?\<xi> \<in> ball (0::'a) r \<Longrightarrow> \<parallel>f *\<^sub>v ?\<xi>\<parallel> \<le> M * r

goal (1 subgoal):
 1. bdd_above ((\<lambda>x. \<parallel>f *\<^sub>v x\<parallel>) ` ball (0::'a) r)
[PROOF STEP]
thus ?thesis
[PROOF STATE]
proof (prove)
using this:
?\<xi> \<in> ball (0::'a) r \<Longrightarrow> \<parallel>f *\<^sub>v ?\<xi>\<parallel> \<le> M * r

goal (1 subgoal):
 1. bdd_above ((\<lambda>x. \<parallel>f *\<^sub>v x\<parallel>) ` ball (0::'a) r)
[PROOF STEP]
by (meson bdd_aboveI2)
[PROOF STATE]
proof (state)
this:
bdd_above ((\<lambda>x. \<parallel>f *\<^sub>v x\<parallel>) ` ball (0::'a) r)

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
bdd_above ((\<lambda>x. \<parallel>f *\<^sub>v x\<parallel>) ` ball (0::'a) r)

goal (1 subgoal):
 1. \<parallel>f\<parallel> \<le> (SUP x\<in>ball x r. \<parallel>f *\<^sub>v x\<parallel>) / r
[PROOF STEP]
have bdd_above_2: \<open>bdd_above ((\<lambda> \<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` (ball 0 r))\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball (0::'a) r)
[PROOF STEP]
proof-
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball (0::'a) r)
[PROOF STEP]
have \<open>bdd_above ((\<lambda> \<xi>. \<parallel>f *\<^sub>v x\<parallel>) ` (ball 0 r))\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v x\<parallel>) ` ball (0::'c) r)
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v x\<parallel>) ` ball (0::?'c1) r)

goal (1 subgoal):
 1. bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball (0::'a) r)
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v x\<parallel>) ` ball (0::?'c1) r)

goal (1 subgoal):
 1. bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball (0::'a) r)
[PROOF STEP]
have \<open>bdd_above ((\<lambda> \<xi>. \<parallel>f *\<^sub>v \<xi>\<parallel>) ` (ball 0 r))\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v \<xi>\<parallel>) ` ball (0::'a) r)
[PROOF STEP]
using bdd_above_3
[PROOF STATE]
proof (prove)
using this:
bdd_above ((\<lambda>x. \<parallel>f *\<^sub>v x\<parallel>) ` ball (0::'a) r)

goal (1 subgoal):
 1. bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v \<xi>\<parallel>) ` ball (0::'a) r)
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v \<xi>\<parallel>) ` ball (0::'a) r)

goal (1 subgoal):
 1. bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball (0::'a) r)
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v x\<parallel>) ` ball (0::?'c1) r)
bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v \<xi>\<parallel>) ` ball (0::'a) r)
[PROOF STEP]
have \<open>bdd_above ((\<lambda> \<xi>. \<parallel>f *\<^sub>v x\<parallel> + \<parallel>f *\<^sub>v \<xi>\<parallel>) ` (ball 0 r))\<close>
[PROOF STATE]
proof (prove)
using this:
bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v x\<parallel>) ` ball (0::?'c1) r)
bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v \<xi>\<parallel>) ` ball (0::'a) r)

goal (1 subgoal):
 1. bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v x\<parallel> + \<parallel>f *\<^sub>v \<xi>\<parallel>) ` ball (0::'a) r)
[PROOF STEP]
by (rule bdd_above_plus)
[PROOF STATE]
proof (state)
this:
bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v x\<parallel> + \<parallel>f *\<^sub>v \<xi>\<parallel>) ` ball (0::'a) r)

goal (1 subgoal):
 1. bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball (0::'a) r)
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v x\<parallel> + \<parallel>f *\<^sub>v \<xi>\<parallel>) ` ball (0::'a) r)
[PROOF STEP]
obtain M where \<open>\<And> \<xi>. \<xi> \<in> ball 0 r \<Longrightarrow> \<parallel>f *\<^sub>v x\<parallel> + \<parallel>f *\<^sub>v \<xi>\<parallel> \<le> M\<close>
[PROOF STATE]
proof (prove)
using this:
bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v x\<parallel> + \<parallel>f *\<^sub>v \<xi>\<parallel>) ` ball (0::'a) r)

goal (1 subgoal):
 1. (\<And>M. (\<And>\<xi>. \<xi> \<in> ball (0::'a) r \<Longrightarrow> \<parallel>f *\<^sub>v x\<parallel> + \<parallel>f *\<^sub>v \<xi>\<parallel> \<le> M) \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
unfolding bdd_above_def
[PROOF STATE]
proof (prove)
using this:
\<exists>M. \<forall>x\<in>(\<lambda>\<xi>. \<parallel>f *\<^sub>v x\<parallel> + \<parallel>f *\<^sub>v \<xi>\<parallel>) ` ball (0::'a) r. x \<le> M

goal (1 subgoal):
 1. (\<And>M. (\<And>\<xi>. \<xi> \<in> ball (0::'a) r \<Longrightarrow> \<parallel>f *\<^sub>v x\<parallel> + \<parallel>f *\<^sub>v \<xi>\<parallel> \<le> M) \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by (meson image_eqI)
[PROOF STATE]
proof (state)
this:
?\<xi>1 \<in> ball (0::'a) r \<Longrightarrow> \<parallel>f *\<^sub>v x\<parallel> + \<parallel>f *\<^sub>v ?\<xi>1\<parallel> \<le> M

goal (1 subgoal):
 1. bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball (0::'a) r)
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
?\<xi>1 \<in> ball (0::'a) r \<Longrightarrow> \<parallel>f *\<^sub>v x\<parallel> + \<parallel>f *\<^sub>v ?\<xi>1\<parallel> \<le> M

goal (1 subgoal):
 1. bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball (0::'a) r)
[PROOF STEP]
have \<open>\<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<le> \<parallel>f *\<^sub>v x\<parallel> + \<parallel>f *\<^sub>v \<xi>\<parallel>\<close> for \<xi>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<le> \<parallel>f *\<^sub>v x\<parallel> + \<parallel>f *\<^sub>v \<xi>\<parallel>
[PROOF STEP]
by (simp add: blinfun.add_right norm_triangle_ineq)
[PROOF STATE]
proof (state)
this:
\<parallel>f *\<^sub>v (x + ?\<xi>1)\<parallel> \<le> \<parallel>f *\<^sub>v x\<parallel> + \<parallel>f *\<^sub>v ?\<xi>1\<parallel>

goal (1 subgoal):
 1. bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball (0::'a) r)
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
?\<xi>1 \<in> ball (0::'a) r \<Longrightarrow> \<parallel>f *\<^sub>v x\<parallel> + \<parallel>f *\<^sub>v ?\<xi>1\<parallel> \<le> M
\<parallel>f *\<^sub>v (x + ?\<xi>1)\<parallel> \<le> \<parallel>f *\<^sub>v x\<parallel> + \<parallel>f *\<^sub>v ?\<xi>1\<parallel>
[PROOF STEP]
have \<open>\<And> \<xi>. \<xi> \<in> ball 0 r \<Longrightarrow> \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<le> M\<close>
[PROOF STATE]
proof (prove)
using this:
?\<xi>1 \<in> ball (0::'a) r \<Longrightarrow> \<parallel>f *\<^sub>v x\<parallel> + \<parallel>f *\<^sub>v ?\<xi>1\<parallel> \<le> M
\<parallel>f *\<^sub>v (x + ?\<xi>1)\<parallel> \<le> \<parallel>f *\<^sub>v x\<parallel> + \<parallel>f *\<^sub>v ?\<xi>1\<parallel>

goal (1 subgoal):
 1. \<And>\<xi>. \<xi> \<in> ball (0::'a) r \<Longrightarrow> \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<le> M
[PROOF STEP]
by (simp add: blinfun.add_right norm_triangle_le)
[PROOF STATE]
proof (state)
this:
?\<xi>1 \<in> ball (0::'a) r \<Longrightarrow> \<parallel>f *\<^sub>v (x + ?\<xi>1)\<parallel> \<le> M

goal (1 subgoal):
 1. bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball (0::'a) r)
[PROOF STEP]
thus ?thesis
[PROOF STATE]
proof (prove)
using this:
?\<xi>1 \<in> ball (0::'a) r \<Longrightarrow> \<parallel>f *\<^sub>v (x + ?\<xi>1)\<parallel> \<le> M

goal (1 subgoal):
 1. bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball (0::'a) r)
[PROOF STEP]
by (meson bdd_aboveI2)
[PROOF STATE]
proof (state)
this:
bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball (0::'a) r)

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball (0::'a) r)

goal (1 subgoal):
 1. \<parallel>f\<parallel> \<le> (SUP x\<in>ball x r. \<parallel>f *\<^sub>v x\<parallel>) / r
[PROOF STEP]
have bdd_above_4: \<open>bdd_above ((\<lambda> \<xi>. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` (ball 0 r))\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r)
[PROOF STEP]
proof-
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r)
[PROOF STEP]
obtain K where K_def: \<open>\<And> \<xi>. \<xi> \<in> ball 0 r \<Longrightarrow> \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<le> K\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<And>K. (\<And>\<xi>. \<xi> \<in> ball (0::'a) r \<Longrightarrow> \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<le> K) \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
using  \<open>bdd_above ((\<lambda> \<xi>. norm (f (x + \<xi>))) ` (ball 0 r))\<close>
[PROOF STATE]
proof (prove)
using this:
bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball (0::'a) r)

goal (1 subgoal):
 1. (\<And>K. (\<And>\<xi>. \<xi> \<in> ball (0::'a) r \<Longrightarrow> \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<le> K) \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
unfolding bdd_above_def
[PROOF STATE]
proof (prove)
using this:
\<exists>M. \<forall>x\<in>(\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball (0::'a) r. x \<le> M

goal (1 subgoal):
 1. (\<And>K. (\<And>\<xi>. \<xi> \<in> ball (0::'a) r \<Longrightarrow> \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<le> K) \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by (meson image_eqI)
[PROOF STATE]
proof (state)
this:
?\<xi> \<in> ball (0::'a) r \<Longrightarrow> \<parallel>f *\<^sub>v (x + ?\<xi>)\<parallel> \<le> K

goal (1 subgoal):
 1. bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r)
[PROOF STEP]
have \<open>\<xi> \<in> ball (0::'a) r \<Longrightarrow> -\<xi> \<in> ball 0 r\<close> for \<xi>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<xi> \<in> ball (0::'a) r \<Longrightarrow> - \<xi> \<in> ball (0::'a) r
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
?\<xi> \<in> ball (0::'a) r \<Longrightarrow> - ?\<xi> \<in> ball (0::'a) r

goal (1 subgoal):
 1. bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r)
[PROOF STEP]
thus ?thesis
[PROOF STATE]
proof (prove)
using this:
?\<xi> \<in> ball (0::'a) r \<Longrightarrow> - ?\<xi> \<in> ball (0::'a) r

goal (1 subgoal):
 1. bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r)
[PROOF STEP]
by (metis K_def ab_group_add_class.ab_diff_conv_add_uminus bdd_aboveI2)
[PROOF STATE]
proof (state)
this:
bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r)

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r)

goal (1 subgoal):
 1. \<parallel>f\<parallel> \<le> (SUP x\<in>ball x r. \<parallel>f *\<^sub>v x\<parallel>) / r
[PROOF STEP]
have bdd_above_1: \<open>bdd_above ((\<lambda> \<xi>. max \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>  \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` (ball 0 r))\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. bdd_above ((\<lambda>\<xi>. max \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r)
[PROOF STEP]
proof-
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. bdd_above ((\<lambda>\<xi>. max \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r)
[PROOF STEP]
have \<open>bdd_above ((\<lambda> \<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` (ball 0 r))\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball (0::'a) r)
[PROOF STEP]
using bdd_above_2
[PROOF STATE]
proof (prove)
using this:
bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball (0::'a) r)

goal (1 subgoal):
 1. bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball (0::'a) r)
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball (0::'a) r)

goal (1 subgoal):
 1. bdd_above ((\<lambda>\<xi>. max \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r)
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball (0::'a) r)

goal (1 subgoal):
 1. bdd_above ((\<lambda>\<xi>. max \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r)
[PROOF STEP]
have \<open>bdd_above ((\<lambda> \<xi>.  \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` (ball 0 r))\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r)
[PROOF STEP]
using bdd_above_4
[PROOF STATE]
proof (prove)
using this:
bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r)

goal (1 subgoal):
 1. bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r)
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r)

goal (1 subgoal):
 1. bdd_above ((\<lambda>\<xi>. max \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r)
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball (0::'a) r)
bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r)
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball (0::'a) r)
bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r)

goal (1 subgoal):
 1. bdd_above ((\<lambda>\<xi>. max \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r)
[PROOF STEP]
unfolding max_def
[PROOF STATE]
proof (prove)
using this:
bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball (0::'a) r)
bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r)

goal (1 subgoal):
 1. bdd_above ((\<lambda>\<xi>. if \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<le> \<parallel>f *\<^sub>v (x - \<xi>)\<parallel> then \<parallel>f *\<^sub>v (x - \<xi>)\<parallel> else \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball (0::'a) r)
[PROOF STEP]
apply auto
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<lbrakk>bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball (0::'a) r); bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r)\<rbrakk> \<Longrightarrow> bdd_above ((\<lambda>xa. \<parallel>f *\<^sub>v (x - xa)\<parallel>) ` (ball (0::'a) r \<inter> {\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<le> \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>}))
 2. \<lbrakk>bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball (0::'a) r); bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r)\<rbrakk> \<Longrightarrow> bdd_above ((\<lambda>xa. \<parallel>f *\<^sub>v (x + xa)\<parallel>) ` (ball (0::'a) r \<inter> {\<xi>. \<not> \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<le> \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>}))
[PROOF STEP]
apply (meson bdd_above_Int1 bdd_above_mono image_Int_subset)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball (0::'a) r); bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r)\<rbrakk> \<Longrightarrow> bdd_above ((\<lambda>xa. \<parallel>f *\<^sub>v (x + xa)\<parallel>) ` (ball (0::'a) r \<inter> {\<xi>. \<not> \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<le> \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>}))
[PROOF STEP]
by (meson bdd_above_Int1 bdd_above_mono image_Int_subset)
[PROOF STATE]
proof (state)
this:
bdd_above ((\<lambda>\<xi>. max \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r)

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
bdd_above ((\<lambda>\<xi>. max \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r)

goal (1 subgoal):
 1. \<parallel>f\<parallel> \<le> (SUP x\<in>ball x r. \<parallel>f *\<^sub>v x\<parallel>) / r
[PROOF STEP]
have bdd_above_6: \<open>bdd_above ((\<lambda>t. \<parallel>f *\<^sub>v t\<parallel>) ` ball x r)\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. bdd_above ((\<lambda>t. \<parallel>f *\<^sub>v t\<parallel>) ` ball x r)
[PROOF STEP]
proof-
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. bdd_above ((\<lambda>t. \<parallel>f *\<^sub>v t\<parallel>) ` ball x r)
[PROOF STEP]
have \<open>bounded (ball x r)\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. bounded (ball x r)
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
bounded (ball x r)

goal (1 subgoal):
 1. bdd_above ((\<lambda>t. \<parallel>f *\<^sub>v t\<parallel>) ` ball x r)
[PROOF STEP]
hence \<open>bounded ((\<lambda>t. \<parallel>f *\<^sub>v t\<parallel>) ` ball x r)\<close>
[PROOF STATE]
proof (prove)
using this:
bounded (ball x r)

goal (1 subgoal):
 1. bounded ((\<lambda>t. \<parallel>f *\<^sub>v t\<parallel>) ` ball x r)
[PROOF STEP]
by (metis (no_types) add.left_neutral bdd_above_2 bdd_above_norm bounded_norm_comp
          image_add_ball image_image)
[PROOF STATE]
proof (state)
this:
bounded ((\<lambda>t. \<parallel>f *\<^sub>v t\<parallel>) ` ball x r)

goal (1 subgoal):
 1. bdd_above ((\<lambda>t. \<parallel>f *\<^sub>v t\<parallel>) ` ball x r)
[PROOF STEP]
thus ?thesis
[PROOF STATE]
proof (prove)
using this:
bounded ((\<lambda>t. \<parallel>f *\<^sub>v t\<parallel>) ` ball x r)

goal (1 subgoal):
 1. bdd_above ((\<lambda>t. \<parallel>f *\<^sub>v t\<parallel>) ` ball x r)
[PROOF STEP]
by (simp add: bounded_imp_bdd_above)
[PROOF STATE]
proof (state)
this:
bdd_above ((\<lambda>t. \<parallel>f *\<^sub>v t\<parallel>) ` ball x r)

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
bdd_above ((\<lambda>t. \<parallel>f *\<^sub>v t\<parallel>) ` ball x r)

goal (1 subgoal):
 1. \<parallel>f\<parallel> \<le> (SUP x\<in>ball x r. \<parallel>f *\<^sub>v x\<parallel>) / r
[PROOF STEP]
have norm_1: \<open>(\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball 0 r = (\<lambda>t. \<parallel>f *\<^sub>v t\<parallel>) ` ball x r\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball (0::'a) r = (\<lambda>t. \<parallel>f *\<^sub>v t\<parallel>) ` ball x r
[PROOF STEP]
by (metis add.right_neutral ball_translation image_image)
[PROOF STATE]
proof (state)
this:
(\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball (0::'a) r = (\<lambda>t. \<parallel>f *\<^sub>v t\<parallel>) ` ball x r

goal (1 subgoal):
 1. \<parallel>f\<parallel> \<le> (SUP x\<in>ball x r. \<parallel>f *\<^sub>v x\<parallel>) / r
[PROOF STEP]
have bdd_above_5: \<open>bdd_above ((\<lambda>\<xi>. norm (f (x + \<xi>))) ` ball 0 r)\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball (0::'a) r)
[PROOF STEP]
by (simp add: bdd_above_2)
[PROOF STATE]
proof (state)
this:
bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball (0::'a) r)

goal (1 subgoal):
 1. \<parallel>f\<parallel> \<le> (SUP x\<in>ball x r. \<parallel>f *\<^sub>v x\<parallel>) / r
[PROOF STEP]
have norm_2: \<open>\<parallel>\<xi>\<parallel> < r \<Longrightarrow> \<parallel>f *\<^sub>v (x - \<xi>)\<parallel> \<in> (\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball 0 r\<close> for \<xi>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<parallel>\<xi>\<parallel> < r \<Longrightarrow> \<parallel>f *\<^sub>v (x - \<xi>)\<parallel> \<in> (\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball (0::'a) r
[PROOF STEP]
proof-
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<parallel>\<xi>\<parallel> < r \<Longrightarrow> \<parallel>f *\<^sub>v (x - \<xi>)\<parallel> \<in> (\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball (0::'a) r
[PROOF STEP]
assume \<open>\<parallel>\<xi>\<parallel> < r\<close>
[PROOF STATE]
proof (state)
this:
\<parallel>\<xi>\<parallel> < r

goal (1 subgoal):
 1. \<parallel>\<xi>\<parallel> < r \<Longrightarrow> \<parallel>f *\<^sub>v (x - \<xi>)\<parallel> \<in> (\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball (0::'a) r
[PROOF STEP]
hence \<open>\<xi> \<in> ball (0::'a) r\<close>
[PROOF STATE]
proof (prove)
using this:
\<parallel>\<xi>\<parallel> < r

goal (1 subgoal):
 1. \<xi> \<in> ball (0::'a) r
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
\<xi> \<in> ball (0::'a) r

goal (1 subgoal):
 1. \<parallel>\<xi>\<parallel> < r \<Longrightarrow> \<parallel>f *\<^sub>v (x - \<xi>)\<parallel> \<in> (\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball (0::'a) r
[PROOF STEP]
hence \<open>-\<xi> \<in> ball (0::'a) r\<close>
[PROOF STATE]
proof (prove)
using this:
\<xi> \<in> ball (0::'a) r

goal (1 subgoal):
 1. - \<xi> \<in> ball (0::'a) r
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
- \<xi> \<in> ball (0::'a) r

goal (1 subgoal):
 1. \<parallel>\<xi>\<parallel> < r \<Longrightarrow> \<parallel>f *\<^sub>v (x - \<xi>)\<parallel> \<in> (\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball (0::'a) r
[PROOF STEP]
thus ?thesis
[PROOF STATE]
proof (prove)
using this:
- \<xi> \<in> ball (0::'a) r

goal (1 subgoal):
 1. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel> \<in> (\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball (0::'a) r
[PROOF STEP]
by (metis (no_types, lifting) ab_group_add_class.ab_diff_conv_add_uminus image_iff)
[PROOF STATE]
proof (state)
this:
\<parallel>f *\<^sub>v (x - \<xi>)\<parallel> \<in> (\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball (0::'a) r

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<parallel>?\<xi>\<parallel> < r \<Longrightarrow> \<parallel>f *\<^sub>v (x - ?\<xi>)\<parallel> \<in> (\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball (0::'a) r

goal (1 subgoal):
 1. \<parallel>f\<parallel> \<le> (SUP x\<in>ball x r. \<parallel>f *\<^sub>v x\<parallel>) / r
[PROOF STEP]
have norm_2': \<open>\<parallel>\<xi>\<parallel> < r \<Longrightarrow> \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<in> (\<lambda>\<xi>. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball 0 r\<close> for \<xi>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<parallel>\<xi>\<parallel> < r \<Longrightarrow> \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<in> (\<lambda>\<xi>. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r
[PROOF STEP]
proof-
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<parallel>\<xi>\<parallel> < r \<Longrightarrow> \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<in> (\<lambda>\<xi>. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r
[PROOF STEP]
assume \<open>norm \<xi> < r\<close>
[PROOF STATE]
proof (state)
this:
\<parallel>\<xi>\<parallel> < r

goal (1 subgoal):
 1. \<parallel>\<xi>\<parallel> < r \<Longrightarrow> \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<in> (\<lambda>\<xi>. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r
[PROOF STEP]
hence \<open>\<xi> \<in> ball (0::'a) r\<close>
[PROOF STATE]
proof (prove)
using this:
\<parallel>\<xi>\<parallel> < r

goal (1 subgoal):
 1. \<xi> \<in> ball (0::'a) r
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
\<xi> \<in> ball (0::'a) r

goal (1 subgoal):
 1. \<parallel>\<xi>\<parallel> < r \<Longrightarrow> \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<in> (\<lambda>\<xi>. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r
[PROOF STEP]
hence \<open>-\<xi> \<in> ball (0::'a) r\<close>
[PROOF STATE]
proof (prove)
using this:
\<xi> \<in> ball (0::'a) r

goal (1 subgoal):
 1. - \<xi> \<in> ball (0::'a) r
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
- \<xi> \<in> ball (0::'a) r

goal (1 subgoal):
 1. \<parallel>\<xi>\<parallel> < r \<Longrightarrow> \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<in> (\<lambda>\<xi>. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r
[PROOF STEP]
thus ?thesis
[PROOF STATE]
proof (prove)
using this:
- \<xi> \<in> ball (0::'a) r

goal (1 subgoal):
 1. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<in> (\<lambda>\<xi>. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r
[PROOF STEP]
by (metis (no_types, lifting) diff_minus_eq_add image_iff)
[PROOF STATE]
proof (state)
this:
\<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<in> (\<lambda>\<xi>. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<parallel>?\<xi>\<parallel> < r \<Longrightarrow> \<parallel>f *\<^sub>v (x + ?\<xi>)\<parallel> \<in> (\<lambda>\<xi>. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r

goal (1 subgoal):
 1. \<parallel>f\<parallel> \<le> (SUP x\<in>ball x r. \<parallel>f *\<^sub>v x\<parallel>) / r
[PROOF STEP]
have bdd_above_6: \<open>bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball 0 r)\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r)
[PROOF STEP]
by (simp add: bdd_above_4)
[PROOF STATE]
proof (state)
this:
bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r)

goal (1 subgoal):
 1. \<parallel>f\<parallel> \<le> (SUP x\<in>ball x r. \<parallel>f *\<^sub>v x\<parallel>) / r
[PROOF STEP]
have Sup_2: \<open>(SUP \<xi>\<in>ball 0 r. max \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) =
                 max (SUP \<xi>\<in>ball 0 r. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) (SUP \<xi>\<in>ball 0 r. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>)\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (SUP \<xi>\<in>ball (0::'a) r. max \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) = max (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>)
[PROOF STEP]
proof-
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. (SUP \<xi>\<in>ball (0::'a) r. max \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) = max (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>)
[PROOF STEP]
have \<open>ball (0::'a) r \<noteq> {}\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. ball (0::'a) r \<noteq> {}
[PROOF STEP]
using \<open>r > 0\<close>
[PROOF STATE]
proof (prove)
using this:
0 < r

goal (1 subgoal):
 1. ball (0::'a) r \<noteq> {}
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
ball (0::'a) r \<noteq> {}

goal (1 subgoal):
 1. (SUP \<xi>\<in>ball (0::'a) r. max \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) = max (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>)
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
ball (0::'a) r \<noteq> {}

goal (1 subgoal):
 1. (SUP \<xi>\<in>ball (0::'a) r. max \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) = max (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>)
[PROOF STEP]
have \<open>bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball 0 r)\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball (0::'a) r)
[PROOF STEP]
using bdd_above_5
[PROOF STATE]
proof (prove)
using this:
bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball (0::'a) r)

goal (1 subgoal):
 1. bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball (0::'a) r)
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball (0::'a) r)

goal (1 subgoal):
 1. (SUP \<xi>\<in>ball (0::'a) r. max \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) = max (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>)
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball (0::'a) r)

goal (1 subgoal):
 1. (SUP \<xi>\<in>ball (0::'a) r. max \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) = max (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>)
[PROOF STEP]
have \<open>bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball 0 r)\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r)
[PROOF STEP]
using bdd_above_6
[PROOF STATE]
proof (prove)
using this:
bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r)

goal (1 subgoal):
 1. bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r)
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r)

goal (1 subgoal):
 1. (SUP \<xi>\<in>ball (0::'a) r. max \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) = max (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>)
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
ball (0::'a) r \<noteq> {}
bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball (0::'a) r)
bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r)
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
ball (0::'a) r \<noteq> {}
bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball (0::'a) r)
bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r)

goal (1 subgoal):
 1. (SUP \<xi>\<in>ball (0::'a) r. max \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) = max (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>)
[PROOF STEP]
using max_Sup
[PROOF STATE]
proof (prove)
using this:
ball (0::'a) r \<noteq> {}
bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball (0::'a) r)
bdd_above ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r)
\<lbrakk>?X \<noteq> {}; bdd_above (?f ` ?X); bdd_above (?g ` ?X)\<rbrakk> \<Longrightarrow> Sup (pointwise_max ?f ?g ` ?X) = max (Sup (?f ` ?X)) (Sup (?g ` ?X))

goal (1 subgoal):
 1. (SUP \<xi>\<in>ball (0::'a) r. max \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) = max (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>)
[PROOF STEP]
by (metis (mono_tags, lifting) Banach_Steinhaus_Missing.pointwise_max_def image_cong)
[PROOF STATE]
proof (state)
this:
(SUP \<xi>\<in>ball (0::'a) r. max \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) = max (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>)

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
(SUP \<xi>\<in>ball (0::'a) r. max \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) = max (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>)

goal (1 subgoal):
 1. \<parallel>f\<parallel> \<le> (SUP x\<in>ball x r. \<parallel>f *\<^sub>v x\<parallel>) / r
[PROOF STEP]
have Sup_3': \<open>\<parallel>\<xi>\<parallel> < r \<Longrightarrow> \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<in> (\<lambda>\<xi>. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball 0 r\<close> for \<xi>::'a
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<parallel>\<xi>\<parallel> < r \<Longrightarrow> \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<in> (\<lambda>\<xi>. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r
[PROOF STEP]
by (simp add: norm_2')
[PROOF STATE]
proof (state)
this:
\<parallel>?\<xi>\<parallel> < r \<Longrightarrow> \<parallel>f *\<^sub>v (x + ?\<xi>)\<parallel> \<in> (\<lambda>\<xi>. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r

goal (1 subgoal):
 1. \<parallel>f\<parallel> \<le> (SUP x\<in>ball x r. \<parallel>f *\<^sub>v x\<parallel>) / r
[PROOF STEP]
have Sup_3'': \<open>\<parallel>\<xi>\<parallel> < r \<Longrightarrow> \<parallel>f *\<^sub>v (x - \<xi>)\<parallel> \<in> (\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball 0 r\<close> for \<xi>::'a
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<parallel>\<xi>\<parallel> < r \<Longrightarrow> \<parallel>f *\<^sub>v (x - \<xi>)\<parallel> \<in> (\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball (0::'a) r
[PROOF STEP]
by (simp add: norm_2)
[PROOF STATE]
proof (state)
this:
\<parallel>?\<xi>\<parallel> < r \<Longrightarrow> \<parallel>f *\<^sub>v (x - ?\<xi>)\<parallel> \<in> (\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball (0::'a) r

goal (1 subgoal):
 1. \<parallel>f\<parallel> \<le> (SUP x\<in>ball x r. \<parallel>f *\<^sub>v x\<parallel>) / r
[PROOF STEP]
have Sup_3: \<open>max (SUP \<xi>\<in>ball 0 r. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) (SUP \<xi>\<in>ball 0 r.  \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) =
        (SUP \<xi>\<in>ball 0 r. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>)\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. max (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) = (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>)
[PROOF STEP]
proof-
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. max (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) = (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>)
[PROOF STEP]
have \<open>(\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` (ball 0 r) = (\<lambda>\<xi>. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` (ball 0 r)\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball (0::'a) r = (\<lambda>\<xi>. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r
[PROOF STEP]
apply auto
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<And>\<xi>. \<parallel>\<xi>\<parallel> < r \<Longrightarrow> \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<in> (\<lambda>\<xi>. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r
 2. \<And>\<xi>. \<parallel>\<xi>\<parallel> < r \<Longrightarrow> \<parallel>f *\<^sub>v (x - \<xi>)\<parallel> \<in> (\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball (0::'a) r
[PROOF STEP]
using Sup_3'
[PROOF STATE]
proof (prove)
using this:
\<parallel>?\<xi>\<parallel> < r \<Longrightarrow> \<parallel>f *\<^sub>v (x + ?\<xi>)\<parallel> \<in> (\<lambda>\<xi>. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r

goal (2 subgoals):
 1. \<And>\<xi>. \<parallel>\<xi>\<parallel> < r \<Longrightarrow> \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<in> (\<lambda>\<xi>. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r
 2. \<And>\<xi>. \<parallel>\<xi>\<parallel> < r \<Longrightarrow> \<parallel>f *\<^sub>v (x - \<xi>)\<parallel> \<in> (\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball (0::'a) r
[PROOF STEP]
apply auto
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>\<xi>. \<lbrakk>\<parallel>\<xi>\<parallel> < r; \<And>\<xi>. \<parallel>\<xi>\<parallel> < r \<Longrightarrow> \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<in> (\<lambda>\<xi>. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r\<rbrakk> \<Longrightarrow> \<parallel>f *\<^sub>v (x - \<xi>)\<parallel> \<in> (\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball (0::'a) r
[PROOF STEP]
using Sup_3''
[PROOF STATE]
proof (prove)
using this:
\<parallel>?\<xi>\<parallel> < r \<Longrightarrow> \<parallel>f *\<^sub>v (x - ?\<xi>)\<parallel> \<in> (\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball (0::'a) r

goal (1 subgoal):
 1. \<And>\<xi>. \<lbrakk>\<parallel>\<xi>\<parallel> < r; \<And>\<xi>. \<parallel>\<xi>\<parallel> < r \<Longrightarrow> \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<in> (\<lambda>\<xi>. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r\<rbrakk> \<Longrightarrow> \<parallel>f *\<^sub>v (x - \<xi>)\<parallel> \<in> (\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball (0::'a) r
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
(\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball (0::'a) r = (\<lambda>\<xi>. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r

goal (1 subgoal):
 1. max (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) = (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>)
[PROOF STEP]
hence \<open>Sup ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` (ball 0 r))=Sup ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` (ball 0 r))\<close>
[PROOF STATE]
proof (prove)
using this:
(\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` ball (0::'a) r = (\<lambda>\<xi>. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r

goal (1 subgoal):
 1. (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) = (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>)
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
(SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) = (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>)

goal (1 subgoal):
 1. max (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) = (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>)
[PROOF STEP]
thus ?thesis
[PROOF STATE]
proof (prove)
using this:
(SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) = (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>)

goal (1 subgoal):
 1. max (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) = (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>)
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
max (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) = (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>)

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
max (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) = (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>)

goal (1 subgoal):
 1. \<parallel>f\<parallel> \<le> (SUP x\<in>ball x r. \<parallel>f *\<^sub>v x\<parallel>) / r
[PROOF STEP]
have Sup_1: \<open>Sup ((\<lambda>t. \<parallel>f *\<^sub>v t\<parallel>) ` (ball 0 r)) \<le> Sup ( (\<lambda>\<xi>. \<parallel>f *\<^sub>v \<xi>\<parallel>) ` (ball x r) )\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (SUP t\<in>ball (0::'a) r. \<parallel>f *\<^sub>v t\<parallel>) \<le> (SUP \<xi>\<in>ball x r. \<parallel>f *\<^sub>v \<xi>\<parallel>)
[PROOF STEP]
proof-
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. (SUP t\<in>ball (0::'a) r. \<parallel>f *\<^sub>v t\<parallel>) \<le> (SUP \<xi>\<in>ball x r. \<parallel>f *\<^sub>v \<xi>\<parallel>)
[PROOF STEP]
have \<open>(\<lambda>t. \<parallel>f *\<^sub>v t\<parallel>) \<xi> \<le> max \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>\<close> for \<xi>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<parallel>f *\<^sub>v \<xi>\<parallel> \<le> max \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>
[PROOF STEP]
apply(rule linear_plus_norm)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. linear ((*\<^sub>v) f)
[PROOF STEP]
apply (rule bounded_linear.linear)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. bounded_linear ((*\<^sub>v) f)
[PROOF STEP]
by (simp add: blinfun.bounded_linear_right)
[PROOF STATE]
proof (state)
this:
\<parallel>f *\<^sub>v ?\<xi>\<parallel> \<le> max \<parallel>f *\<^sub>v (x + ?\<xi>)\<parallel> \<parallel>f *\<^sub>v (x - ?\<xi>)\<parallel>

goal (1 subgoal):
 1. (SUP t\<in>ball (0::'a) r. \<parallel>f *\<^sub>v t\<parallel>) \<le> (SUP \<xi>\<in>ball x r. \<parallel>f *\<^sub>v \<xi>\<parallel>)
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<parallel>f *\<^sub>v ?\<xi>\<parallel> \<le> max \<parallel>f *\<^sub>v (x + ?\<xi>)\<parallel> \<parallel>f *\<^sub>v (x - ?\<xi>)\<parallel>

goal (1 subgoal):
 1. (SUP t\<in>ball (0::'a) r. \<parallel>f *\<^sub>v t\<parallel>) \<le> (SUP \<xi>\<in>ball x r. \<parallel>f *\<^sub>v \<xi>\<parallel>)
[PROOF STEP]
have \<open>bdd_above ((\<lambda> \<xi>. max \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>  \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` (ball 0 r))\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. bdd_above ((\<lambda>\<xi>. max \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r)
[PROOF STEP]
using bdd_above_1
[PROOF STATE]
proof (prove)
using this:
bdd_above ((\<lambda>\<xi>. max \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r)

goal (1 subgoal):
 1. bdd_above ((\<lambda>\<xi>. max \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r)
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
bdd_above ((\<lambda>\<xi>. max \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r)

goal (1 subgoal):
 1. (SUP t\<in>ball (0::'a) r. \<parallel>f *\<^sub>v t\<parallel>) \<le> (SUP \<xi>\<in>ball x r. \<parallel>f *\<^sub>v \<xi>\<parallel>)
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
bdd_above ((\<lambda>\<xi>. max \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r)

goal (1 subgoal):
 1. (SUP t\<in>ball (0::'a) r. \<parallel>f *\<^sub>v t\<parallel>) \<le> (SUP \<xi>\<in>ball x r. \<parallel>f *\<^sub>v \<xi>\<parallel>)
[PROOF STEP]
have \<open>ball (0::'a) r \<noteq> {}\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. ball (0::'a) r \<noteq> {}
[PROOF STEP]
using \<open>r > 0\<close>
[PROOF STATE]
proof (prove)
using this:
0 < r

goal (1 subgoal):
 1. ball (0::'a) r \<noteq> {}
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
ball (0::'a) r \<noteq> {}

goal (1 subgoal):
 1. (SUP t\<in>ball (0::'a) r. \<parallel>f *\<^sub>v t\<parallel>) \<le> (SUP \<xi>\<in>ball x r. \<parallel>f *\<^sub>v \<xi>\<parallel>)
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
\<parallel>f *\<^sub>v ?\<xi>\<parallel> \<le> max \<parallel>f *\<^sub>v (x + ?\<xi>)\<parallel> \<parallel>f *\<^sub>v (x - ?\<xi>)\<parallel>
bdd_above ((\<lambda>\<xi>. max \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r)
ball (0::'a) r \<noteq> {}
[PROOF STEP]
have \<open>Sup ((\<lambda>t. \<parallel>f *\<^sub>v t\<parallel>) ` (ball 0 r)) \<le>
                     Sup ((\<lambda>\<xi>. max \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` (ball 0 r))\<close>
[PROOF STATE]
proof (prove)
using this:
\<parallel>f *\<^sub>v ?\<xi>\<parallel> \<le> max \<parallel>f *\<^sub>v (x + ?\<xi>)\<parallel> \<parallel>f *\<^sub>v (x - ?\<xi>)\<parallel>
bdd_above ((\<lambda>\<xi>. max \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r)
ball (0::'a) r \<noteq> {}

goal (1 subgoal):
 1. (SUP t\<in>ball (0::'a) r. \<parallel>f *\<^sub>v t\<parallel>) \<le> (SUP \<xi>\<in>ball (0::'a) r. max \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>)
[PROOF STEP]
using cSUP_mono
[PROOF STATE]
proof (prove)
using this:
\<parallel>f *\<^sub>v ?\<xi>\<parallel> \<le> max \<parallel>f *\<^sub>v (x + ?\<xi>)\<parallel> \<parallel>f *\<^sub>v (x - ?\<xi>)\<parallel>
bdd_above ((\<lambda>\<xi>. max \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` ball (0::'a) r)
ball (0::'a) r \<noteq> {}
\<lbrakk>?A \<noteq> {}; bdd_above (?g ` ?B); \<And>n. n \<in> ?A \<Longrightarrow> \<exists>m\<in>?B. ?f n \<le> ?g m\<rbrakk> \<Longrightarrow> Sup (?f ` ?A) \<le> Sup (?g ` ?B)

goal (1 subgoal):
 1. (SUP t\<in>ball (0::'a) r. \<parallel>f *\<^sub>v t\<parallel>) \<le> (SUP \<xi>\<in>ball (0::'a) r. max \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>)
[PROOF STEP]
by smt
[PROOF STATE]
proof (state)
this:
(SUP t\<in>ball (0::'a) r. \<parallel>f *\<^sub>v t\<parallel>) \<le> (SUP \<xi>\<in>ball (0::'a) r. max \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>)

goal (1 subgoal):
 1. (SUP t\<in>ball (0::'a) r. \<parallel>f *\<^sub>v t\<parallel>) \<le> (SUP \<xi>\<in>ball x r. \<parallel>f *\<^sub>v \<xi>\<parallel>)
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
(SUP t\<in>ball (0::'a) r. \<parallel>f *\<^sub>v t\<parallel>) \<le> (SUP \<xi>\<in>ball (0::'a) r. max \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>)

goal (1 subgoal):
 1. (SUP t\<in>ball (0::'a) r. \<parallel>f *\<^sub>v t\<parallel>) \<le> (SUP \<xi>\<in>ball x r. \<parallel>f *\<^sub>v \<xi>\<parallel>)
[PROOF STEP]
have \<open>\<dots> = max (Sup ((\<lambda>\<xi>.  \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` (ball 0 r)))
                        (Sup ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) ` (ball 0 r)))\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (SUP \<xi>\<in>ball (0::'a) r. max \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) = max (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>)
[PROOF STEP]
using Sup_2
[PROOF STATE]
proof (prove)
using this:
(SUP \<xi>\<in>ball (0::'a) r. max \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) = max (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>)

goal (1 subgoal):
 1. (SUP \<xi>\<in>ball (0::'a) r. max \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) = max (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>)
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
(SUP \<xi>\<in>ball (0::'a) r. max \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) = max (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>)

goal (1 subgoal):
 1. (SUP t\<in>ball (0::'a) r. \<parallel>f *\<^sub>v t\<parallel>) \<le> (SUP \<xi>\<in>ball x r. \<parallel>f *\<^sub>v \<xi>\<parallel>)
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
(SUP \<xi>\<in>ball (0::'a) r. max \<parallel>f *\<^sub>v (x + \<xi>)\<parallel> \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) = max (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>)

goal (1 subgoal):
 1. (SUP t\<in>ball (0::'a) r. \<parallel>f *\<^sub>v t\<parallel>) \<le> (SUP \<xi>\<in>ball x r. \<parallel>f *\<^sub>v \<xi>\<parallel>)
[PROOF STEP]
have \<open>\<dots> = Sup ((\<lambda>\<xi>. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) ` (ball 0 r))\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. max (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) = (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>)
[PROOF STEP]
using Sup_3
[PROOF STATE]
proof (prove)
using this:
max (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) = (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>)

goal (1 subgoal):
 1. max (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) = (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>)
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
max (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) = (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>)

goal (1 subgoal):
 1. (SUP t\<in>ball (0::'a) r. \<parallel>f *\<^sub>v t\<parallel>) \<le> (SUP \<xi>\<in>ball x r. \<parallel>f *\<^sub>v \<xi>\<parallel>)
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
max (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x - \<xi>)\<parallel>) = (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>)

goal (1 subgoal):
 1. (SUP t\<in>ball (0::'a) r. \<parallel>f *\<^sub>v t\<parallel>) \<le> (SUP \<xi>\<in>ball x r. \<parallel>f *\<^sub>v \<xi>\<parallel>)
[PROOF STEP]
have \<open>\<dots> = Sup ((\<lambda>\<xi>. \<parallel>f *\<^sub>v \<xi>\<parallel>) ` (ball x r))\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) = (SUP \<xi>\<in>ball x r. \<parallel>f *\<^sub>v \<xi>\<parallel>)
[PROOF STEP]
by (metis  add.right_neutral ball_translation image_image)
[PROOF STATE]
proof (state)
this:
(SUP \<xi>\<in>ball (0::'a) r. \<parallel>f *\<^sub>v (x + \<xi>)\<parallel>) = (SUP \<xi>\<in>ball x r. \<parallel>f *\<^sub>v \<xi>\<parallel>)

goal (1 subgoal):
 1. (SUP t\<in>ball (0::'a) r. \<parallel>f *\<^sub>v t\<parallel>) \<le> (SUP \<xi>\<in>ball x r. \<parallel>f *\<^sub>v \<xi>\<parallel>)
[PROOF STEP]
finally
[PROOF STATE]
proof (chain)
picking this:
(SUP t\<in>ball (0::'a) r. \<parallel>f *\<^sub>v t\<parallel>) \<le> (SUP \<xi>\<in>ball x r. \<parallel>f *\<^sub>v \<xi>\<parallel>)
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
(SUP t\<in>ball (0::'a) r. \<parallel>f *\<^sub>v t\<parallel>) \<le> (SUP \<xi>\<in>ball x r. \<parallel>f *\<^sub>v \<xi>\<parallel>)

goal (1 subgoal):
 1. (SUP t\<in>ball (0::'a) r. \<parallel>f *\<^sub>v t\<parallel>) \<le> (SUP \<xi>\<in>ball x r. \<parallel>f *\<^sub>v \<xi>\<parallel>)
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
(SUP t\<in>ball (0::'a) r. \<parallel>f *\<^sub>v t\<parallel>) \<le> (SUP \<xi>\<in>ball x r. \<parallel>f *\<^sub>v \<xi>\<parallel>)

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
(SUP t\<in>ball (0::'a) r. \<parallel>f *\<^sub>v t\<parallel>) \<le> (SUP \<xi>\<in>ball x r. \<parallel>f *\<^sub>v \<xi>\<parallel>)

goal (1 subgoal):
 1. \<parallel>f\<parallel> \<le> (SUP x\<in>ball x r. \<parallel>f *\<^sub>v x\<parallel>) / r
[PROOF STEP]
have \<open>\<parallel>f\<parallel> = (SUP x\<in>ball 0 r. \<parallel>f *\<^sub>v x\<parallel>) / r\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<parallel>f\<parallel> = (SUP x\<in>ball (0::'a) r. \<parallel>f *\<^sub>v x\<parallel>) / r
[PROOF STEP]
using \<open>0 < r\<close> onorm_r
[PROOF STATE]
proof (prove)
using this:
0 < r
0 < ?r \<Longrightarrow> \<parallel>?f\<parallel> = (SUP x\<in>ball (0::?'a) ?r. \<parallel>?f *\<^sub>v x\<parallel>) / ?r

goal (1 subgoal):
 1. \<parallel>f\<parallel> = (SUP x\<in>ball (0::'a) r. \<parallel>f *\<^sub>v x\<parallel>) / r
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
\<parallel>f\<parallel> = (SUP x\<in>ball (0::'a) r. \<parallel>f *\<^sub>v x\<parallel>) / r

goal (1 subgoal):
 1. \<parallel>f\<parallel> \<le> (SUP x\<in>ball x r. \<parallel>f *\<^sub>v x\<parallel>) / r
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<parallel>f\<parallel> = (SUP x\<in>ball (0::'a) r. \<parallel>f *\<^sub>v x\<parallel>) / r

goal (1 subgoal):
 1. \<parallel>f\<parallel> \<le> (SUP x\<in>ball x r. \<parallel>f *\<^sub>v x\<parallel>) / r
[PROOF STEP]
have \<open>Sup ((\<lambda>t. \<parallel>f *\<^sub>v t\<parallel>) ` (ball 0 r)) / r \<le> Sup ((\<lambda>\<xi>. \<parallel>f *\<^sub>v \<xi>\<parallel>) ` (ball x r)) / r\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (SUP t\<in>ball (0::'a) r. \<parallel>f *\<^sub>v t\<parallel>) / r \<le> (SUP \<xi>\<in>ball x r. \<parallel>f *\<^sub>v \<xi>\<parallel>) / r
[PROOF STEP]
using Sup_1 \<open>0 < r\<close> divide_right_mono
[PROOF STATE]
proof (prove)
using this:
(SUP t\<in>ball (0::'a) r. \<parallel>f *\<^sub>v t\<parallel>) \<le> (SUP \<xi>\<in>ball x r. \<parallel>f *\<^sub>v \<xi>\<parallel>)
0 < r
\<lbrakk>?a \<le> ?b; (0::?'a) \<le> ?c\<rbrakk> \<Longrightarrow> ?a / ?c \<le> ?b / ?c

goal (1 subgoal):
 1. (SUP t\<in>ball (0::'a) r. \<parallel>f *\<^sub>v t\<parallel>) / r \<le> (SUP \<xi>\<in>ball x r. \<parallel>f *\<^sub>v \<xi>\<parallel>) / r
[PROOF STEP]
by fastforce
[PROOF STATE]
proof (state)
this:
(SUP t\<in>ball (0::'a) r. \<parallel>f *\<^sub>v t\<parallel>) / r \<le> (SUP \<xi>\<in>ball x r. \<parallel>f *\<^sub>v \<xi>\<parallel>) / r

goal (1 subgoal):
 1. \<parallel>f\<parallel> \<le> (SUP x\<in>ball x r. \<parallel>f *\<^sub>v x\<parallel>) / r
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
\<parallel>f\<parallel> = (SUP x\<in>ball (0::'a) r. \<parallel>f *\<^sub>v x\<parallel>) / r
(SUP t\<in>ball (0::'a) r. \<parallel>f *\<^sub>v t\<parallel>) / r \<le> (SUP \<xi>\<in>ball x r. \<parallel>f *\<^sub>v \<xi>\<parallel>) / r
[PROOF STEP]
have \<open>\<parallel>f\<parallel> \<le> Sup ((\<lambda>t. \<parallel>f *\<^sub>v t\<parallel>) ` ball x r) / r\<close>
[PROOF STATE]
proof (prove)
using this:
\<parallel>f\<parallel> = (SUP x\<in>ball (0::'a) r. \<parallel>f *\<^sub>v x\<parallel>) / r
(SUP t\<in>ball (0::'a) r. \<parallel>f *\<^sub>v t\<parallel>) / r \<le> (SUP \<xi>\<in>ball x r. \<parallel>f *\<^sub>v \<xi>\<parallel>) / r

goal (1 subgoal):
 1. \<parallel>f\<parallel> \<le> (SUP t\<in>ball x r. \<parallel>f *\<^sub>v t\<parallel>) / r
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
\<parallel>f\<parallel> \<le> (SUP t\<in>ball x r. \<parallel>f *\<^sub>v t\<parallel>) / r

goal (1 subgoal):
 1. \<parallel>f\<parallel> \<le> (SUP x\<in>ball x r. \<parallel>f *\<^sub>v x\<parallel>) / r
[PROOF STEP]
thus ?thesis
[PROOF STATE]
proof (prove)
using this:
\<parallel>f\<parallel> \<le> (SUP t\<in>ball x r. \<parallel>f *\<^sub>v t\<parallel>) / r

goal (1 subgoal):
 1. \<parallel>f\<parallel> \<le> (SUP x\<in>ball x r. \<parallel>f *\<^sub>v x\<parallel>) / r
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
\<parallel>f\<parallel> \<le> (SUP x\<in>ball x r. \<parallel>f *\<^sub>v x\<parallel>) / r

goal:
No subgoals!
[PROOF STEP]
qed


[STATEMENT]
lemma nvlr_length: "\<And> old.  (length (natToVertexListRec old v f ls)) = length ls"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>old. |natToVertexListRec old v f ls| = |ls|
[PROOF STEP]
apply (induct ls)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<And>old. |natToVertexListRec old v f []| = |[]|
 2. \<And>a ls old. (\<And>old. |natToVertexListRec old v f ls| = |ls|) \<Longrightarrow> |natToVertexListRec old v f (a # ls)| = |a # ls|
[PROOF STEP]
by auto