[STATEMENT]
lemma from_nat_neq_rows:
  fixes A::"'a^'cols::mod_type^'rows::mod_type"
  assumes i: "i<(nrows A)" and k: "k<(nrows A)" and ik: "i \<noteq> k"
  shows "from_nat i \<noteq> (from_nat k::'rows)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. from_nat i \<noteq> from_nat k
[PROOF STEP]
proof (rule ccontr, auto)
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. from_nat i = from_nat k \<Longrightarrow> False
[PROOF STEP]
let ?i="from_nat i::'rows"
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. from_nat i = from_nat k \<Longrightarrow> False
[PROOF STEP]
let ?k="from_nat k::'rows"
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. from_nat i = from_nat k \<Longrightarrow> False
[PROOF STEP]
assume "?i = ?k"
[PROOF STATE]
proof (state)
this:
from_nat i = from_nat k

goal (1 subgoal):
 1. from_nat i = from_nat k \<Longrightarrow> False
[PROOF STEP]
hence "to_nat ?i = to_nat ?k"
[PROOF STATE]
proof (prove)
using this:
from_nat i = from_nat k

goal (1 subgoal):
 1. to_nat (from_nat i) = to_nat (from_nat k)
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
to_nat (from_nat i) = to_nat (from_nat k)

goal (1 subgoal):
 1. from_nat i = from_nat k \<Longrightarrow> False
[PROOF STEP]
hence "i = k"
[PROOF STATE]
proof (prove)
using this:
to_nat (from_nat i) = to_nat (from_nat k)

goal (1 subgoal):
 1. i = k
[PROOF STEP]
unfolding to_nat_from_nat_id[OF i[unfolded nrows_def]]
[PROOF STATE]
proof (prove)
using this:
i = to_nat (from_nat k)

goal (1 subgoal):
 1. i = k
[PROOF STEP]
unfolding to_nat_from_nat_id[OF k[unfolded nrows_def]]
[PROOF STATE]
proof (prove)
using this:
i = k

goal (1 subgoal):
 1. i = k
[PROOF STEP]
.
[PROOF STATE]
proof (state)
this:
i = k

goal (1 subgoal):
 1. from_nat i = from_nat k \<Longrightarrow> False
[PROOF STEP]
thus False
[PROOF STATE]
proof (prove)
using this:
i = k

goal (1 subgoal):
 1. False
[PROOF STEP]
using ik
[PROOF STATE]
proof (prove)
using this:
i = k
i \<noteq> k

goal (1 subgoal):
 1. False
[PROOF STEP]
by contradiction
[PROOF STATE]
proof (state)
this:
False

goal:
No subgoals!
[PROOF STEP]
qed


[STATEMENT]
lemma point_to_eval_map_closed:
  assumes "as \<in> carrier (R\<^bsup>n\<^esup>)"
  shows "closed_fun R (point_to_eval_map R as)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<lambda>i. if i < length as then as ! i else \<zero>) \<in> UNIV \<rightarrow> carrier R
[PROOF STEP]
using assms
[PROOF STATE]
proof (prove)
using this:
as \<in> carrier (R\<^bsup>n\<^esup>)

goal (1 subgoal):
 1. (\<lambda>i. if i < length as then as ! i else \<zero>) \<in> UNIV \<rightarrow> carrier R
[PROOF STEP]
by (smt cartesian_power_car_memE cartesian_power_car_memE' R.closed_funI R.zero_closed)


[STATEMENT]
lemma sset_subset_stream_pred: "sset w \<subseteq> A \<longleftrightarrow> pred_stream (\<lambda> a. a \<in> A) w"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (sset w \<subseteq> A) = pred_stream (\<lambda>a. a \<in> A) w
[PROOF STEP]
unfolding stream.pred_set
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (sset w \<subseteq> A) = (\<forall>a\<in>sset w. a \<in> A)
[PROOF STEP]
by auto


[STATEMENT]
lemma state_set_card_ii:
  fixes X a
  shows "card (Cons a ` state_set X) = card (state_set X)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. card ((#) a ` state_set X) = card (state_set X)
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. card ((#) a ` state_set X) = card (state_set X)
[PROOF STEP]
have "inj_on (Cons a) (state_set X)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. inj_on ((#) a) (state_set X)
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
inj_on ((#) a) (state_set X)

goal (1 subgoal):
 1. card ((#) a ` state_set X) = card (state_set X)
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
inj_on ((#) a) (state_set X)
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
inj_on ((#) a) (state_set X)

goal (1 subgoal):
 1. card ((#) a ` state_set X) = card (state_set X)
[PROOF STEP]
using card_image
[PROOF STATE]
proof (prove)
using this:
inj_on ((#) a) (state_set X)
inj_on ?f ?A \<Longrightarrow> card (?f ` ?A) = card ?A

goal (1 subgoal):
 1. card ((#) a ` state_set X) = card (state_set X)
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
card ((#) a ` state_set X) = card (state_set X)

goal:
No subgoals!
[PROOF STEP]
qed

\<comment> \<open>NOTE added lemma.\<close>


[STATEMENT]
lemma scaleR_nonneg_nonpos: "0 \<le> a \<Longrightarrow> x \<le> 0 \<Longrightarrow> a *\<^sub>R x \<le> 0"
  for x :: "'a::ordered_real_vector"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>0 \<le> a; x \<le> (0::'a)\<rbrakk> \<Longrightarrow> a *\<^sub>R x \<le> (0::'a)
[PROOF STEP]
using scaleR_left_mono [of x 0 a]
[PROOF STATE]
proof (prove)
using this:
\<lbrakk>x \<le> (0::'a); 0 \<le> a\<rbrakk> \<Longrightarrow> a *\<^sub>R x \<le> a *\<^sub>R (0::'a)

goal (1 subgoal):
 1. \<lbrakk>0 \<le> a; x \<le> (0::'a)\<rbrakk> \<Longrightarrow> a *\<^sub>R x \<le> (0::'a)
[PROOF STEP]
by simp


[STATEMENT]
lemma fls_deriv_delta:
  "fls_deriv (Abs_fls (\<lambda>n. if n=m then c else 0)) =
    Abs_fls (\<lambda>n. if n=m-1 then of_int m * c else 0)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. fls_deriv (Abs_fls (\<lambda>n. if n = m then c else (0::'a))) = Abs_fls (\<lambda>n. if n = m - 1 then of_int m * c else (0::'a))
[PROOF STEP]
proof-
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. fls_deriv (Abs_fls (\<lambda>n. if n = m then c else (0::'a))) = Abs_fls (\<lambda>n. if n = m - 1 then of_int m * c else (0::'a))
[PROOF STEP]
have
    "fls_deriv (Abs_fls (\<lambda>n. if n=m then c else 0)) = fls_shift (1-m) (fls_const (of_int m * c))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. fls_deriv (Abs_fls (\<lambda>n. if n = m then c else (0::'a))) = fls_shift (1 - m) (fls_const (of_int m * c))
[PROOF STEP]
using fls_deriv_shift[of "-m" "fls_const c"]
[PROOF STATE]
proof (prove)
using this:
fls_deriv (fls_shift (- m) (fls_const c)) = of_int (- (- m)) * fls_shift (- m + 1) (fls_const c) + fls_shift (- m) (fls_deriv (fls_const c))

goal (1 subgoal):
 1. fls_deriv (Abs_fls (\<lambda>n. if n = m then c else (0::'a))) = fls_shift (1 - m) (fls_const (of_int m * c))
[PROOF STEP]
by    (simp
            add: fls_shift_const fls_of_int fls_shifted_times_simps(1)[symmetric]
            fls_const_mult_const[symmetric]
            del: fls_const_mult_const
          )
[PROOF STATE]
proof (state)
this:
fls_deriv (Abs_fls (\<lambda>n. if n = m then c else (0::'a))) = fls_shift (1 - m) (fls_const (of_int m * c))

goal (1 subgoal):
 1. fls_deriv (Abs_fls (\<lambda>n. if n = m then c else (0::'a))) = Abs_fls (\<lambda>n. if n = m - 1 then of_int m * c else (0::'a))
[PROOF STEP]
thus ?thesis
[PROOF STATE]
proof (prove)
using this:
fls_deriv (Abs_fls (\<lambda>n. if n = m then c else (0::'a))) = fls_shift (1 - m) (fls_const (of_int m * c))

goal (1 subgoal):
 1. fls_deriv (Abs_fls (\<lambda>n. if n = m then c else (0::'a))) = Abs_fls (\<lambda>n. if n = m - 1 then of_int m * c else (0::'a))
[PROOF STEP]
by (simp add: fls_shift_const)
[PROOF STATE]
proof (state)
this:
fls_deriv (Abs_fls (\<lambda>n. if n = m then c else (0::'a))) = Abs_fls (\<lambda>n. if n = m - 1 then of_int m * c else (0::'a))

goal:
No subgoals!
[PROOF STEP]
qed


[STATEMENT]
lemma of_nat_tree: "of_nat n = pure_tree (of_nat n)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. of_nat n = pure (of_nat n)
[PROOF STEP]
proof (induction n)
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. of_nat 0 = pure (of_nat 0)
 2. \<And>n. of_nat n = pure (of_nat n) \<Longrightarrow> of_nat (Suc n) = pure (of_nat (Suc n))
[PROOF STEP]
case 0
[PROOF STATE]
proof (state)
this:

goal (2 subgoals):
 1. of_nat 0 = pure (of_nat 0)
 2. \<And>n. of_nat n = pure (of_nat n) \<Longrightarrow> of_nat (Suc n) = pure (of_nat (Suc n))
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. of_nat 0 = pure (of_nat 0)
[PROOF STEP]
by (simp add: zero_tree_def)
[PROOF STATE]
proof (state)
this:
of_nat 0 = pure (of_nat 0)

goal (1 subgoal):
 1. \<And>n. of_nat n = pure (of_nat n) \<Longrightarrow> of_nat (Suc n) = pure (of_nat (Suc n))
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>n. of_nat n = pure (of_nat n) \<Longrightarrow> of_nat (Suc n) = pure (of_nat (Suc n))
[PROOF STEP]
case (Suc n)
[PROOF STATE]
proof (state)
this:
of_nat n = pure (of_nat n)

goal (1 subgoal):
 1. \<And>n. of_nat n = pure (of_nat n) \<Longrightarrow> of_nat (Suc n) = pure (of_nat (Suc n))
[PROOF STEP]
have "1 + pure (of_nat n) = pure (1 + of_nat n)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. 1 + pure (of_nat n) = pure ((1::'b) + of_nat n)
[PROOF STEP]
by applicative_nf rule
[PROOF STATE]
proof (state)
this:
1 + pure (of_nat n) = pure ((1::?'b1) + of_nat n)

goal (1 subgoal):
 1. \<And>n. of_nat n = pure (of_nat n) \<Longrightarrow> of_nat (Suc n) = pure (of_nat (Suc n))
[PROOF STEP]
with Suc.IH
[PROOF STATE]
proof (chain)
picking this:
of_nat n = pure (of_nat n)
1 + pure (of_nat n) = pure ((1::?'b1) + of_nat n)
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
of_nat n = pure (of_nat n)
1 + pure (of_nat n) = pure ((1::?'b1) + of_nat n)

goal (1 subgoal):
 1. of_nat (Suc n) = pure (of_nat (Suc n))
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
of_nat (Suc n) = pure (of_nat (Suc n))

goal:
No subgoals!
[PROOF STEP]
qed


[STATEMENT]
lemma iso_inv_into:
assumes WELL: "Well_order r" and ISO: "iso r r' f"
shows "iso r' r (inv_into (Field r) f)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. iso r' r (inv_into (Field r) f)
[PROOF STEP]
using assms
[PROOF STATE]
proof (prove)
using this:
Well_order r
iso r r' f

goal (1 subgoal):
 1. iso r' r (inv_into (Field r) f)
[PROOF STEP]
unfolding iso_def
[PROOF STATE]
proof (prove)
using this:
Well_order r
embed r r' f \<and> bij_betw f (Field r) (Field r')

goal (1 subgoal):
 1. embed r' r (inv_into (Field r) f) \<and> bij_betw (inv_into (Field r) f) (Field r') (Field r)
[PROOF STEP]
using bij_betw_inv_into inv_into_Field_embed_bij_betw
[PROOF STATE]
proof (prove)
using this:
Well_order r
embed r r' f \<and> bij_betw f (Field r) (Field r')
bij_betw ?f ?A ?B \<Longrightarrow> bij_betw (inv_into ?A ?f) ?B ?A
\<lbrakk>embed ?r ?r' ?f; bij_betw ?f (Field ?r) (Field ?r')\<rbrakk> \<Longrightarrow> embed ?r' ?r (inv_into (Field ?r) ?f)

goal (1 subgoal):
 1. embed r' r (inv_into (Field r) f) \<and> bij_betw (inv_into (Field r) f) (Field r') (Field r)
[PROOF STEP]
by blast


[STATEMENT]
lemma sH_orbit: "\<^bold>{P\<^bold>} \<gamma>\<^sup>\<phi>\<^sup>\<bullet> \<^bold>{Q\<^bold>}  = (\<forall>s \<in> S. P s \<longrightarrow> (\<forall> t \<in> T. Q (\<phi> t s)))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<^bold>{P\<^bold>}\<gamma>\<^sup>\<phi>\<^sup>\<bullet>\<^bold>{Q\<^bold>} = (\<forall>s\<in>S. P s \<longrightarrow> (\<forall>t\<in>T. Q (\<phi> t s)))
[PROOF STEP]
using sH_g_ode
[PROOF STATE]
proof (prove)
using this:
\<^bold>{?P\<^bold>}x\<acute>= \<lambda>t. f & ?G on \<lambda>s. T S @ 0\<^bold>{?Q\<^bold>} = (\<forall>s\<in>S. ?P s \<longrightarrow> (\<forall>t\<in>T. (\<forall>\<tau>\<in>down T t. ?G (\<phi> \<tau> s)) \<longrightarrow> ?Q (\<phi> t s)))

goal (1 subgoal):
 1. \<^bold>{P\<^bold>}\<gamma>\<^sup>\<phi>\<^sup>\<bullet>\<^bold>{Q\<^bold>} = (\<forall>s\<in>S. P s \<longrightarrow> (\<forall>t\<in>T. Q (\<phi> t s)))
[PROOF STEP]
unfolding orbit_def g_ode_def
[PROOF STATE]
proof (prove)
using this:
\<^bold>{?P\<^bold>}g_orbital (\<lambda>t. f) ?G (\<lambda>s. T) S 0\<^sup>\<bullet>\<^bold>{?Q\<^bold>} = (\<forall>s\<in>S. ?P s \<longrightarrow> (\<forall>t\<in>T. (\<forall>\<tau>\<in>down T t. ?G (\<phi> \<tau> s)) \<longrightarrow> ?Q (\<phi> t s)))

goal (1 subgoal):
 1. \<^bold>{P\<^bold>}g_orbital (\<lambda>t. f) (\<lambda>s. True) (\<lambda>s. T) S 0\<^sup>\<bullet>\<^bold>{Q\<^bold>} = (\<forall>s\<in>S. P s \<longrightarrow> (\<forall>t\<in>T. Q (\<phi> t s)))
[PROOF STEP]
by auto


[STATEMENT]
lemma Im_cinner_x_x[simp]: "Im (x \<bullet>\<^sub>C x) = 0"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. Im (x \<bullet>\<^sub>C x) = 0
[PROOF STEP]
using comp_Im_same[OF cinner_ge_zero]
[PROOF STATE]
proof (prove)
using this:
Im 0 = Im (?x1 \<bullet>\<^sub>C ?x1)

goal (1 subgoal):
 1. Im (x \<bullet>\<^sub>C x) = 0
[PROOF STEP]
by simp


[STATEMENT]
lemma Domain_actFF: "Domain (range (\<lambda>x::int. (x, x + 1))) = UNIV"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. Domain (range (\<lambda>x. (x, x + 1))) = UNIV
[PROOF STEP]
by force


[STATEMENT]
lemma mat_det_adj:
  shows "mat_det (mat_adj A) = cnj (mat_det A)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. mat_det (mat_adj A) = cnj (mat_det A)
[PROOF STEP]
by (cases A) (auto simp add: mat_adj_def mat_cnj_def)


[STATEMENT]
lemma critical_set_oSuc:
"normal_set A
 \<Longrightarrow> critical_set A (oSuc x) = range (oDeriv (ordering (critical_set A x)))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. normal_set A \<Longrightarrow> critical_set A (oSuc x) = range (oDeriv (OrdinalVeblen.ordering (critical_set A x)))
[PROOF STEP]
apply (simp only: critical_set_oSuc_lemma)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. normal_set A \<Longrightarrow> critical_set A x \<inter> range (oDeriv (OrdinalVeblen.ordering (critical_set A x))) = range (oDeriv (OrdinalVeblen.ordering (critical_set A x)))
[PROOF STEP]
apply (rule Int_absorb1)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. normal_set A \<Longrightarrow> range (oDeriv (OrdinalVeblen.ordering (critical_set A x))) \<subseteq> critical_set A x
[PROOF STEP]
apply (rule normal_set.range_oDeriv_subset)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. normal_set A \<Longrightarrow> normal_set (critical_set A x)
[PROOF STEP]
apply (erule normal_set_critical_set)
[PROOF STATE]
proof (prove)
goal:
No subgoals!
[PROOF STEP]
done


[STATEMENT]
lemma funpow_Suc_conv [simp]: "(Suc ^^ n) m = m + n"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (Suc ^^ n) m = m + n
[PROOF STEP]
by(induct n arbitrary: m) simp_all


[STATEMENT]
lemma measure_pmf_of_set: "measure (measure_pmf pmf_of_set) A = card (S \<inter> A) / card S"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. measure_pmf.prob local.pmf_of_set A = real (card (S \<inter> A)) / real (card S)
[PROOF STEP]
using emeasure_pmf_of_set[of A]
[PROOF STATE]
proof (prove)
using this:
emeasure (measure_pmf local.pmf_of_set) A = ennreal (real (card (S \<inter> A)) / real (card S))

goal (1 subgoal):
 1. measure_pmf.prob local.pmf_of_set A = real (card (S \<inter> A)) / real (card S)
[PROOF STEP]
by (simp add: measure_nonneg measure_pmf.emeasure_eq_measure)


[STATEMENT]
lemma attracting_fixed_point_neq_repelling_fixed_point:
  assumes "loxodromic_isometry f"
  shows "attracting_fixed_point f \<noteq> repelling_fixed_point f"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. attracting_fixed_point f \<noteq> repelling_fixed_point f
[PROOF STEP]
using loxodromic_repelling_fixed_point[OF assms] loxodromic_attracting_fixed_point[OF assms]
[PROOF STATE]
proof (prove)
using this:
repelling_fixed_point f \<in> Gromov_boundary
Gromov_extension f (repelling_fixed_point f) = repelling_fixed_point f
0 < additive_strength f (repelling_fixed_point f)
attracting_fixed_point f \<in> Gromov_boundary
Gromov_extension f (attracting_fixed_point f) = attracting_fixed_point f
additive_strength f (attracting_fixed_point f) < 0

goal (1 subgoal):
 1. attracting_fixed_point f \<noteq> repelling_fixed_point f
[PROOF STEP]
by auto


[STATEMENT]
lemma nhds_enat: "nhds x = (if x = \<infinity> then INF i. principal {enat i..} else principal {x})"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. nhds x = (if x = \<infinity> then INF i. principal {enat i..} else principal {x})
[PROOF STEP]
proof auto
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. x = \<infinity> \<Longrightarrow> nhds \<infinity> = (INF i. principal {enat i..})
 2. \<And>i. x = enat i \<Longrightarrow> nhds (enat i) = principal {enat i}
[PROOF STEP]
show "nhds \<infinity> = (INF i. principal {enat i..})"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. nhds \<infinity> = (INF i. principal {enat i..})
[PROOF STEP]
proof (rule antisym)
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. nhds \<infinity> \<le> (INF i. principal {enat i..})
 2. (INF i. principal {enat i..}) \<le> nhds \<infinity>
[PROOF STEP]
show "nhds \<infinity> \<le> (INF i. principal {enat i..})"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. nhds \<infinity> \<le> (INF i. principal {enat i..})
[PROOF STEP]
unfolding nhds_def
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. Inf (principal ` {S. open S \<and> \<infinity> \<in> S}) \<le> (INF i. principal {enat i..})
[PROOF STEP]
using Ioi_le_Ico
[PROOF STATE]
proof (prove)
using this:
{?a<..} \<subseteq> {?a..}

goal (1 subgoal):
 1. Inf (principal ` {S. open S \<and> \<infinity> \<in> S}) \<le> (INF i. principal {enat i..})
[PROOF STEP]
by (intro INF_greatest INF_lower) (auto simp add: open_enat_iff)
[PROOF STATE]
proof (state)
this:
nhds \<infinity> \<le> (INF i. principal {enat i..})

goal (1 subgoal):
 1. (INF i. principal {enat i..}) \<le> nhds \<infinity>
[PROOF STEP]
show "(INF i. principal {enat i..}) \<le> nhds \<infinity>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (INF i. principal {enat i..}) \<le> nhds \<infinity>
[PROOF STEP]
unfolding nhds_def
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (INF i. principal {enat i..}) \<le> Inf (principal ` {S. open S \<and> \<infinity> \<in> S})
[PROOF STEP]
by (intro INF_greatest) (force intro: INF_lower2[of "Suc _"] simp add: open_enat_iff Suc_ile_eq)
[PROOF STATE]
proof (state)
this:
(INF i. principal {enat i..}) \<le> nhds \<infinity>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
nhds \<infinity> = (INF i. principal {enat i..})

goal (1 subgoal):
 1. \<And>i. x = enat i \<Longrightarrow> nhds (enat i) = principal {enat i}
[PROOF STEP]
show "nhds (enat i) = principal {enat i}" for i
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. nhds (enat i) = principal {enat i}
[PROOF STEP]
by (simp add: nhds_discrete_open open_enat)
[PROOF STATE]
proof (state)
this:
nhds (enat ?i) = principal {enat ?i}

goal:
No subgoals!
[PROOF STEP]
qed


[STATEMENT]
lemma Domain_symcl[simp]: "Domain (symcl r) = Field r"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. Domain (symcl r) = Field r
[PROOF STEP]
unfolding symcl_def Field_def
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. Domain {(x, y). (x, y) \<in> r \<or> (y, x) \<in> r} = Domain r \<union> Range r
[PROOF STEP]
by auto


[STATEMENT]
lemma scaleC_minus1_left_vec: "-1 \<cdot>\<^sub>v v = - v" for v :: "_::ring_1 vec"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. - (1::'b) \<cdot>\<^sub>v v = - v
[PROOF STEP]
unfolding smult_vec_def uminus_vec_def
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. vec (dim_vec v) (\<lambda>i. - (1::'b) * v $ i) = vec (dim_vec v) (\<lambda>i. - v $ i)
[PROOF STEP]
by auto


[STATEMENT]
lemma zero_le_divide_1_iff [simp]:
  "0 \<le> 1 / a \<longleftrightarrow> 0 \<le> a"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. ((0::'a) \<le> (1::'a) / a) = ((0::'a) \<le> a)
[PROOF STEP]
using local.dual_order.order_iff_strict local.inverse_eq_divide
    local.inverse_positive_iff_positive
[PROOF STATE]
proof (prove)
using this:
(?b \<le> ?a) = (?b < ?a \<or> ?a = ?b)
inverse ?a = (1::'a) / ?a
((0::'a) < inverse ?a) = ((0::'a) < ?a)

goal (1 subgoal):
 1. ((0::'a) \<le> (1::'a) / a) = ((0::'a) \<le> a)
[PROOF STEP]
by auto


[STATEMENT]
lemma continuous_on_inverse_open:
  fixes f :: "'a::euclidean_space \<Rightarrow> 'b::euclidean_space"
  assumes "open S" "continuous_on S f" "DIM('b) \<le> DIM('a)" and gf: "\<And>x. x \<in> S \<Longrightarrow> g(f x) = x"
    shows "continuous_on (f ` S) g"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. continuous_on (f ` S) g
[PROOF STEP]
proof (clarsimp simp add: continuous_openin_preimage_eq)
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>T. open T \<Longrightarrow> openin (top_of_set (f ` S)) (f ` S \<inter> g -` T)
[PROOF STEP]
fix T :: "'a set"
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>T. open T \<Longrightarrow> openin (top_of_set (f ` S)) (f ` S \<inter> g -` T)
[PROOF STEP]
assume "open T"
[PROOF STATE]
proof (state)
this:
open T

goal (1 subgoal):
 1. \<And>T. open T \<Longrightarrow> openin (top_of_set (f ` S)) (f ` S \<inter> g -` T)
[PROOF STEP]
have eq: "f ` S \<inter> g -` T = f ` (S \<inter> T)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. f ` S \<inter> g -` T = f ` (S \<inter> T)
[PROOF STEP]
by (auto simp: gf)
[PROOF STATE]
proof (state)
this:
f ` S \<inter> g -` T = f ` (S \<inter> T)

goal (1 subgoal):
 1. \<And>T. open T \<Longrightarrow> openin (top_of_set (f ` S)) (f ` S \<inter> g -` T)
[PROOF STEP]
have "open (f ` S)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. open (f ` S)
[PROOF STEP]
by (rule invariance_of_domain_gen) (use assms inj_on_inverseI in auto)
[PROOF STATE]
proof (state)
this:
open (f ` S)

goal (1 subgoal):
 1. \<And>T. open T \<Longrightarrow> openin (top_of_set (f ` S)) (f ` S \<inter> g -` T)
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
open (f ` S)

goal (1 subgoal):
 1. \<And>T. open T \<Longrightarrow> openin (top_of_set (f ` S)) (f ` S \<inter> g -` T)
[PROOF STEP]
have "open (f ` (S \<inter> T))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. open (f ` (S \<inter> T))
[PROOF STEP]
using assms
[PROOF STATE]
proof (prove)
using this:
open S
continuous_on S f
DIM('b) \<le> DIM('a)
?x \<in> S \<Longrightarrow> g (f ?x) = ?x

goal (1 subgoal):
 1. open (f ` (S \<inter> T))
[PROOF STEP]
by (metis \<open>open T\<close> continuous_on_subset inj_onI inj_on_subset invariance_of_domain_gen openin_open openin_open_eq)
[PROOF STATE]
proof (state)
this:
open (f ` (S \<inter> T))

goal (1 subgoal):
 1. \<And>T. open T \<Longrightarrow> openin (top_of_set (f ` S)) (f ` S \<inter> g -` T)
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
open (f ` S)
open (f ` (S \<inter> T))
[PROOF STEP]
show "openin (top_of_set (f ` S)) (f ` S \<inter> g -` T)"
[PROOF STATE]
proof (prove)
using this:
open (f ` S)
open (f ` (S \<inter> T))

goal (1 subgoal):
 1. openin (top_of_set (f ` S)) (f ` S \<inter> g -` T)
[PROOF STEP]
unfolding eq
[PROOF STATE]
proof (prove)
using this:
open (f ` S)
open (f ` (S \<inter> T))

goal (1 subgoal):
 1. openin (top_of_set (f ` S)) (f ` (S \<inter> T))
[PROOF STEP]
by (auto intro: open_openin_trans)
[PROOF STATE]
proof (state)
this:
openin (top_of_set (f ` S)) (f ` S \<inter> g -` T)

goal:
No subgoals!
[PROOF STEP]
qed


[STATEMENT]
lemma finite_inc: "finite (inc ` X) = finite X"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. finite (inc ` X) = finite X
[PROOF STEP]
apply(rule inj_finite_image_eq_finite)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. inj_on inc X
[PROOF STEP]
apply(rule_tac B=UNIV in subset_inj_on)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. inj inc
 2. X \<subseteq> UNIV
[PROOF STEP]
apply(auto)
[PROOF STATE]
proof (prove)
goal:
No subgoals!
[PROOF STEP]
done


[STATEMENT]
theorem Fst: "Fst (Opair x y) = x"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. Fst (Opair x y) = x
[PROOF STEP]
apply (simp add: Fst_def)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (SOME xa. \<exists>ya. Opair x y = Opair xa ya) = x
[PROOF STEP]
apply (rule someI2)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<exists>ya. Opair x y = Opair ?a ya
 2. \<And>xa. \<exists>ya. Opair x y = Opair xa ya \<Longrightarrow> xa = x
[PROOF STEP]
apply (simp_all add: Opair)
[PROOF STATE]
proof (prove)
goal:
No subgoals!
[PROOF STEP]
done


[STATEMENT]
lemma sum_list_nonneg: "(\<And>x. x \<in> set xs \<Longrightarrow> 0 \<le> x) \<Longrightarrow> 0 \<le> sum_list xs"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<And>x. x \<in> set xs \<Longrightarrow> (0::'a) \<le> x) \<Longrightarrow> (0::'a) \<le> sum_list xs
[PROOF STEP]
by (induction xs) auto


[STATEMENT]
lemma convex_halfspace_Re_ge: "convex {x. Re x \<ge> b}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. convex {x. b \<le> Re x}
[PROOF STEP]
using convex_halfspace_ge[of b "1::complex"]
[PROOF STATE]
proof (prove)
using this:
convex {x. b \<le> 1 \<bullet> x}

goal (1 subgoal):
 1. convex {x. b \<le> Re x}
[PROOF STEP]
by simp


[STATEMENT]
lemma shortest_period_bound:
  assumes "\<pi> \<alpha> i \<noteq> 0"
  shows "i \<le> shortest_period \<alpha>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. i \<le> shortest_period \<alpha>
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. i \<le> shortest_period \<alpha>
[PROOF STEP]
let ?support = "{i . \<pi> \<alpha> i \<noteq> 0}"
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. i \<le> shortest_period \<alpha>
[PROOF STEP]
have "shortest_period \<alpha> = Max ?support"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. shortest_period \<alpha> = Max {i. \<pi> \<alpha> i \<noteq> 0}
[PROOF STEP]
using assms
[PROOF STATE]
proof (prove)
using this:
\<pi> \<alpha> i \<noteq> 0

goal (1 subgoal):
 1. shortest_period \<alpha> = Max {i. \<pi> \<alpha> i \<noteq> 0}
[PROOF STEP]
unfolding shortest_period_def
[PROOF STATE]
proof (prove)
using this:
\<pi> \<alpha> i \<noteq> 0

goal (1 subgoal):
 1. (if \<forall>i. \<pi> \<alpha> i = 0 then 0 else Max {i. \<pi> \<alpha> i \<noteq> 0}) = Max {i. \<pi> \<alpha> i \<noteq> 0}
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
shortest_period \<alpha> = Max {i. \<pi> \<alpha> i \<noteq> 0}

goal (1 subgoal):
 1. i \<le> shortest_period \<alpha>
[PROOF STEP]
have "shortest_period \<alpha> \<in> ?support"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. shortest_period \<alpha> \<in> {i. \<pi> \<alpha> i \<noteq> 0}
[PROOF STEP]
using assms shortest_period_\<pi>
[PROOF STATE]
proof (prove)
using this:
\<pi> \<alpha> i \<noteq> 0
\<pi> ?\<alpha> ?i \<noteq> 0 \<Longrightarrow> \<pi> ?\<alpha> (shortest_period ?\<alpha>) \<noteq> 0

goal (1 subgoal):
 1. shortest_period \<alpha> \<in> {i. \<pi> \<alpha> i \<noteq> 0}
[PROOF STEP]
by force
[PROOF STATE]
proof (state)
this:
shortest_period \<alpha> \<in> {i. \<pi> \<alpha> i \<noteq> 0}

goal (1 subgoal):
 1. i \<le> shortest_period \<alpha>
[PROOF STEP]
thus ?thesis
[PROOF STATE]
proof (prove)
using this:
shortest_period \<alpha> \<in> {i. \<pi> \<alpha> i \<noteq> 0}

goal (1 subgoal):
 1. i \<le> shortest_period \<alpha>
[PROOF STEP]
unfolding \<open>shortest_period \<alpha> = Max ?support\<close>
[PROOF STATE]
proof (prove)
using this:
Max {i. \<pi> \<alpha> i \<noteq> 0} \<in> {i. \<pi> \<alpha> i \<noteq> 0}

goal (1 subgoal):
 1. i \<le> Max {i. \<pi> \<alpha> i \<noteq> 0}
[PROOF STEP]
by (simp add: assms finite_account_support)
[PROOF STATE]
proof (state)
this:
i \<le> shortest_period \<alpha>

goal:
No subgoals!
[PROOF STEP]
qed


[STATEMENT]
lemma diag_block_mat_adjoint:
  shows "Complex_Matrix.adjoint (diag_block_mat Al) =
    diag_block_mat (map Complex_Matrix.adjoint Al)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. Complex_Matrix.adjoint (diag_block_mat Al) = diag_block_mat (map Complex_Matrix.adjoint Al)
[PROOF STEP]
proof (induct Al)
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. Complex_Matrix.adjoint (diag_block_mat []) = diag_block_mat (map Complex_Matrix.adjoint [])
 2. \<And>a Al. Complex_Matrix.adjoint (diag_block_mat Al) = diag_block_mat (map Complex_Matrix.adjoint Al) \<Longrightarrow> Complex_Matrix.adjoint (diag_block_mat (a # Al)) = diag_block_mat (map Complex_Matrix.adjoint (a # Al))
[PROOF STEP]
case Nil
[PROOF STATE]
proof (state)
this:

goal (2 subgoals):
 1. Complex_Matrix.adjoint (diag_block_mat []) = diag_block_mat (map Complex_Matrix.adjoint [])
 2. \<And>a Al. Complex_Matrix.adjoint (diag_block_mat Al) = diag_block_mat (map Complex_Matrix.adjoint Al) \<Longrightarrow> Complex_Matrix.adjoint (diag_block_mat (a # Al)) = diag_block_mat (map Complex_Matrix.adjoint (a # Al))
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. Complex_Matrix.adjoint (diag_block_mat []) = diag_block_mat (map Complex_Matrix.adjoint [])
[PROOF STEP]
using zero_adjoint
[PROOF STATE]
proof (prove)
using this:
Complex_Matrix.adjoint (0\<^sub>m ?n ?m) = 0\<^sub>m ?m ?n

goal (1 subgoal):
 1. Complex_Matrix.adjoint (diag_block_mat []) = diag_block_mat (map Complex_Matrix.adjoint [])
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
Complex_Matrix.adjoint (diag_block_mat []) = diag_block_mat (map Complex_Matrix.adjoint [])

goal (1 subgoal):
 1. \<And>a Al. Complex_Matrix.adjoint (diag_block_mat Al) = diag_block_mat (map Complex_Matrix.adjoint Al) \<Longrightarrow> Complex_Matrix.adjoint (diag_block_mat (a # Al)) = diag_block_mat (map Complex_Matrix.adjoint (a # Al))
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>a Al. Complex_Matrix.adjoint (diag_block_mat Al) = diag_block_mat (map Complex_Matrix.adjoint Al) \<Longrightarrow> Complex_Matrix.adjoint (diag_block_mat (a # Al)) = diag_block_mat (map Complex_Matrix.adjoint (a # Al))
[PROOF STEP]
case (Cons a Al)
[PROOF STATE]
proof (state)
this:
Complex_Matrix.adjoint (diag_block_mat Al) = diag_block_mat (map Complex_Matrix.adjoint Al)

goal (1 subgoal):
 1. \<And>a Al. Complex_Matrix.adjoint (diag_block_mat Al) = diag_block_mat (map Complex_Matrix.adjoint Al) \<Longrightarrow> Complex_Matrix.adjoint (diag_block_mat (a # Al)) = diag_block_mat (map Complex_Matrix.adjoint (a # Al))
[PROOF STEP]
have "Complex_Matrix.adjoint (diag_block_mat (a # Al)) =
    Complex_Matrix.adjoint (four_block_diag a (diag_block_mat Al))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. Complex_Matrix.adjoint (diag_block_mat (a # Al)) = Complex_Matrix.adjoint (four_block_diag a (diag_block_mat Al))
[PROOF STEP]
using diag_block_mat.simps(2)[of a]
[PROOF STATE]
proof (prove)
using this:
diag_block_mat (a # ?As) = Let (diag_block_mat ?As) (four_block_diag a)

goal (1 subgoal):
 1. Complex_Matrix.adjoint (diag_block_mat (a # Al)) = Complex_Matrix.adjoint (four_block_diag a (diag_block_mat Al))
[PROOF STEP]
unfolding Let_def
[PROOF STATE]
proof (prove)
using this:
diag_block_mat (a # ?As) = four_block_diag a (diag_block_mat ?As)

goal (1 subgoal):
 1. Complex_Matrix.adjoint (diag_block_mat (a # Al)) = Complex_Matrix.adjoint (four_block_diag a (diag_block_mat Al))
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
Complex_Matrix.adjoint (diag_block_mat (a # Al)) = Complex_Matrix.adjoint (four_block_diag a (diag_block_mat Al))

goal (1 subgoal):
 1. \<And>a Al. Complex_Matrix.adjoint (diag_block_mat Al) = diag_block_mat (map Complex_Matrix.adjoint Al) \<Longrightarrow> Complex_Matrix.adjoint (diag_block_mat (a # Al)) = diag_block_mat (map Complex_Matrix.adjoint (a # Al))
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
Complex_Matrix.adjoint (diag_block_mat (a # Al)) = Complex_Matrix.adjoint (four_block_diag a (diag_block_mat Al))

goal (1 subgoal):
 1. \<And>a Al. Complex_Matrix.adjoint (diag_block_mat Al) = diag_block_mat (map Complex_Matrix.adjoint Al) \<Longrightarrow> Complex_Matrix.adjoint (diag_block_mat (a # Al)) = diag_block_mat (map Complex_Matrix.adjoint (a # Al))
[PROOF STEP]
have "... = four_block_diag (Complex_Matrix.adjoint a)
    (Complex_Matrix.adjoint (diag_block_mat Al))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. Complex_Matrix.adjoint (four_block_diag a (diag_block_mat Al)) = four_block_diag (Complex_Matrix.adjoint a) (Complex_Matrix.adjoint (diag_block_mat Al))
[PROOF STEP]
using four_block_diag_adjoint[of a]
[PROOF STATE]
proof (prove)
using this:
Complex_Matrix.adjoint (four_block_diag a ?A2.0) = four_block_diag (Complex_Matrix.adjoint a) (Complex_Matrix.adjoint ?A2.0)

goal (1 subgoal):
 1. Complex_Matrix.adjoint (four_block_diag a (diag_block_mat Al)) = four_block_diag (Complex_Matrix.adjoint a) (Complex_Matrix.adjoint (diag_block_mat Al))
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
Complex_Matrix.adjoint (four_block_diag a (diag_block_mat Al)) = four_block_diag (Complex_Matrix.adjoint a) (Complex_Matrix.adjoint (diag_block_mat Al))

goal (1 subgoal):
 1. \<And>a Al. Complex_Matrix.adjoint (diag_block_mat Al) = diag_block_mat (map Complex_Matrix.adjoint Al) \<Longrightarrow> Complex_Matrix.adjoint (diag_block_mat (a # Al)) = diag_block_mat (map Complex_Matrix.adjoint (a # Al))
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
Complex_Matrix.adjoint (four_block_diag a (diag_block_mat Al)) = four_block_diag (Complex_Matrix.adjoint a) (Complex_Matrix.adjoint (diag_block_mat Al))

goal (1 subgoal):
 1. \<And>a Al. Complex_Matrix.adjoint (diag_block_mat Al) = diag_block_mat (map Complex_Matrix.adjoint Al) \<Longrightarrow> Complex_Matrix.adjoint (diag_block_mat (a # Al)) = diag_block_mat (map Complex_Matrix.adjoint (a # Al))
[PROOF STEP]
have "... = four_block_diag (Complex_Matrix.adjoint a)
    (diag_block_mat (map Complex_Matrix.adjoint Al))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. four_block_diag (Complex_Matrix.adjoint a) (Complex_Matrix.adjoint (diag_block_mat Al)) = four_block_diag (Complex_Matrix.adjoint a) (diag_block_mat (map Complex_Matrix.adjoint Al))
[PROOF STEP]
using Cons
[PROOF STATE]
proof (prove)
using this:
Complex_Matrix.adjoint (diag_block_mat Al) = diag_block_mat (map Complex_Matrix.adjoint Al)

goal (1 subgoal):
 1. four_block_diag (Complex_Matrix.adjoint a) (Complex_Matrix.adjoint (diag_block_mat Al)) = four_block_diag (Complex_Matrix.adjoint a) (diag_block_mat (map Complex_Matrix.adjoint Al))
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
four_block_diag (Complex_Matrix.adjoint a) (Complex_Matrix.adjoint (diag_block_mat Al)) = four_block_diag (Complex_Matrix.adjoint a) (diag_block_mat (map Complex_Matrix.adjoint Al))

goal (1 subgoal):
 1. \<And>a Al. Complex_Matrix.adjoint (diag_block_mat Al) = diag_block_mat (map Complex_Matrix.adjoint Al) \<Longrightarrow> Complex_Matrix.adjoint (diag_block_mat (a # Al)) = diag_block_mat (map Complex_Matrix.adjoint (a # Al))
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
four_block_diag (Complex_Matrix.adjoint a) (Complex_Matrix.adjoint (diag_block_mat Al)) = four_block_diag (Complex_Matrix.adjoint a) (diag_block_mat (map Complex_Matrix.adjoint Al))

goal (1 subgoal):
 1. \<And>a Al. Complex_Matrix.adjoint (diag_block_mat Al) = diag_block_mat (map Complex_Matrix.adjoint Al) \<Longrightarrow> Complex_Matrix.adjoint (diag_block_mat (a # Al)) = diag_block_mat (map Complex_Matrix.adjoint (a # Al))
[PROOF STEP]
have "... = diag_block_mat (map Complex_Matrix.adjoint (a#Al))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. four_block_diag (Complex_Matrix.adjoint a) (diag_block_mat (map Complex_Matrix.adjoint Al)) = diag_block_mat (map Complex_Matrix.adjoint (a # Al))
[PROOF STEP]
using diag_block_mat.simps(2)
[PROOF STATE]
proof (prove)
using this:
diag_block_mat (?A # ?As) = Let (diag_block_mat ?As) (four_block_diag ?A)

goal (1 subgoal):
 1. four_block_diag (Complex_Matrix.adjoint a) (diag_block_mat (map Complex_Matrix.adjoint Al)) = diag_block_mat (map Complex_Matrix.adjoint (a # Al))
[PROOF STEP]
unfolding Let_def
[PROOF STATE]
proof (prove)
using this:
diag_block_mat (?A # ?As) = four_block_diag ?A (diag_block_mat ?As)

goal (1 subgoal):
 1. four_block_diag (Complex_Matrix.adjoint a) (diag_block_mat (map Complex_Matrix.adjoint Al)) = diag_block_mat (map Complex_Matrix.adjoint (a # Al))
[PROOF STEP]
by (metis (no_types) diag_block_mat.simps(2) list.map(2))
[PROOF STATE]
proof (state)
this:
four_block_diag (Complex_Matrix.adjoint a) (diag_block_mat (map Complex_Matrix.adjoint Al)) = diag_block_mat (map Complex_Matrix.adjoint (a # Al))

goal (1 subgoal):
 1. \<And>a Al. Complex_Matrix.adjoint (diag_block_mat Al) = diag_block_mat (map Complex_Matrix.adjoint Al) \<Longrightarrow> Complex_Matrix.adjoint (diag_block_mat (a # Al)) = diag_block_mat (map Complex_Matrix.adjoint (a # Al))
[PROOF STEP]
finally
[PROOF STATE]
proof (chain)
picking this:
Complex_Matrix.adjoint (diag_block_mat (a # Al)) = diag_block_mat (map Complex_Matrix.adjoint (a # Al))
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
Complex_Matrix.adjoint (diag_block_mat (a # Al)) = diag_block_mat (map Complex_Matrix.adjoint (a # Al))

goal (1 subgoal):
 1. Complex_Matrix.adjoint (diag_block_mat (a # Al)) = diag_block_mat (map Complex_Matrix.adjoint (a # Al))
[PROOF STEP]
.
[PROOF STATE]
proof (state)
this:
Complex_Matrix.adjoint (diag_block_mat (a # Al)) = diag_block_mat (map Complex_Matrix.adjoint (a # Al))

goal:
No subgoals!
[PROOF STEP]
qed


[STATEMENT]
lemma One_le_of_nat_ennreal: "(1 :: ennreal) \<le> of_nat x \<longleftrightarrow> 1 \<le> x"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (1 \<le> of_nat x) = (1 \<le> x)
[PROOF STEP]
by (metis of_nat_le_iff of_nat_1)


[STATEMENT]
lemma lists_of_len_fin1:
  "finite (lists A \<inter> {l. length l = n})" if "finite A"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. finite (lists A \<inter> {l. length l = n})
[PROOF STEP]
using that
[PROOF STATE]
proof (prove)
using this:
finite A

goal (1 subgoal):
 1. finite (lists A \<inter> {l. length l = n})
[PROOF STEP]
proof (induction n)
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. finite A \<Longrightarrow> finite (lists A \<inter> {l. length l = 0})
 2. \<And>n. \<lbrakk>finite A \<Longrightarrow> finite (lists A \<inter> {l. length l = n}); finite A\<rbrakk> \<Longrightarrow> finite (lists A \<inter> {l. length l = Suc n})
[PROOF STEP]
case 0
[PROOF STATE]
proof (state)
this:
finite A

goal (2 subgoals):
 1. finite A \<Longrightarrow> finite (lists A \<inter> {l. length l = 0})
 2. \<And>n. \<lbrakk>finite A \<Longrightarrow> finite (lists A \<inter> {l. length l = n}); finite A\<rbrakk> \<Longrightarrow> finite (lists A \<inter> {l. length l = Suc n})
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
using this:
finite A

goal (1 subgoal):
 1. finite (lists A \<inter> {l. length l = 0})
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
finite (lists A \<inter> {l. length l = 0})

goal (1 subgoal):
 1. \<And>n. \<lbrakk>finite A \<Longrightarrow> finite (lists A \<inter> {l. length l = n}); finite A\<rbrakk> \<Longrightarrow> finite (lists A \<inter> {l. length l = Suc n})
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>n. \<lbrakk>finite A \<Longrightarrow> finite (lists A \<inter> {l. length l = n}); finite A\<rbrakk> \<Longrightarrow> finite (lists A \<inter> {l. length l = Suc n})
[PROOF STEP]
case (Suc n)
[PROOF STATE]
proof (state)
this:
finite A \<Longrightarrow> finite (lists A \<inter> {l. length l = n})
finite A

goal (1 subgoal):
 1. \<And>n. \<lbrakk>finite A \<Longrightarrow> finite (lists A \<inter> {l. length l = n}); finite A\<rbrakk> \<Longrightarrow> finite (lists A \<inter> {l. length l = Suc n})
[PROOF STEP]
have "lists A \<inter> { l. length l = Suc n } = (\<lambda>(a,l). a#l) ` (A \<times> (lists A \<inter> {l. length l = n}))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. lists A \<inter> {l. length l = Suc n} = (\<lambda>(a, l). a # l) ` (A \<times> (lists A \<inter> {l. length l = n}))
[PROOF STEP]
by (auto simp: length_Suc_conv)
[PROOF STATE]
proof (state)
this:
lists A \<inter> {l. length l = Suc n} = (\<lambda>(a, l). a # l) ` (A \<times> (lists A \<inter> {l. length l = n}))

goal (1 subgoal):
 1. \<And>n. \<lbrakk>finite A \<Longrightarrow> finite (lists A \<inter> {l. length l = n}); finite A\<rbrakk> \<Longrightarrow> finite (lists A \<inter> {l. length l = Suc n})
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
lists A \<inter> {l. length l = Suc n} = (\<lambda>(a, l). a # l) ` (A \<times> (lists A \<inter> {l. length l = n}))

goal (1 subgoal):
 1. \<And>n. \<lbrakk>finite A \<Longrightarrow> finite (lists A \<inter> {l. length l = n}); finite A\<rbrakk> \<Longrightarrow> finite (lists A \<inter> {l. length l = Suc n})
[PROOF STEP]
from Suc
[PROOF STATE]
proof (chain)
picking this:
finite A \<Longrightarrow> finite (lists A \<inter> {l. length l = n})
finite A
[PROOF STEP]
have "finite \<dots>"
[PROOF STATE]
proof (prove)
using this:
finite A \<Longrightarrow> finite (lists A \<inter> {l. length l = n})
finite A

goal (1 subgoal):
 1. finite ((\<lambda>(a, l). a # l) ` (A \<times> (lists A \<inter> {l. length l = n})))
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
finite ((\<lambda>(a, l). a # l) ` (A \<times> (lists A \<inter> {l. length l = n})))

goal (1 subgoal):
 1. \<And>n. \<lbrakk>finite A \<Longrightarrow> finite (lists A \<inter> {l. length l = n}); finite A\<rbrakk> \<Longrightarrow> finite (lists A \<inter> {l. length l = Suc n})
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
lists A \<inter> {l. length l = Suc n} = (\<lambda>(a, l). a # l) ` (A \<times> (lists A \<inter> {l. length l = n}))
finite ((\<lambda>(a, l). a # l) ` (A \<times> (lists A \<inter> {l. length l = n})))
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
lists A \<inter> {l. length l = Suc n} = (\<lambda>(a, l). a # l) ` (A \<times> (lists A \<inter> {l. length l = n}))
finite ((\<lambda>(a, l). a # l) ` (A \<times> (lists A \<inter> {l. length l = n})))

goal (1 subgoal):
 1. finite (lists A \<inter> {l. length l = Suc n})
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
finite (lists A \<inter> {l. length l = Suc n})

goal:
No subgoals!
[PROOF STEP]
qed


[STATEMENT]
lemma eval_fds_scale [simp]:
  fixes z :: "'a :: {banach, nat_power_field, real_normed_field}"
  assumes c: "c > 0"
  shows   "eval_fds (fds_scale c f) z = eval_fds f (of_nat c * z)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. eval_fds (fds_scale c f) z = eval_fds f (of_nat c * z)
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. eval_fds (fds_scale c f) z = eval_fds f (of_nat c * z)
[PROOF STEP]
have "eval_fds (fds_scale c f) z =
          (\<Sum>n. fds_nth (fds_scale c f) (n ^ c) / nat_power (n ^ c) z)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. eval_fds (fds_scale c f) z = (\<Sum>n. fds_nth (fds_scale c f) (n ^ c) / nat_power (n ^ c) z)
[PROOF STEP]
unfolding eval_fds_def
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<Sum>n. fds_nth (fds_scale c f) n / nat_power n z) = (\<Sum>n. fds_nth (fds_scale c f) (n ^ c) / nat_power (n ^ c) z)
[PROOF STEP]
by (rule suminf_mono_reindex [symmetric])
       (insert c, auto simp: fds_nth_scale is_nth_power_def strict_mono_def power_strict_mono)
[PROOF STATE]
proof (state)
this:
eval_fds (fds_scale c f) z = (\<Sum>n. fds_nth (fds_scale c f) (n ^ c) / nat_power (n ^ c) z)

goal (1 subgoal):
 1. eval_fds (fds_scale c f) z = eval_fds f (of_nat c * z)
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
eval_fds (fds_scale c f) z = (\<Sum>n. fds_nth (fds_scale c f) (n ^ c) / nat_power (n ^ c) z)

goal (1 subgoal):
 1. eval_fds (fds_scale c f) z = eval_fds f (of_nat c * z)
[PROOF STEP]
have "\<dots> = (\<Sum>n. fds_nth f n / nat_power n (of_nat c * z))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<Sum>n. fds_nth (fds_scale c f) (n ^ c) / nat_power (n ^ c) z) = (\<Sum>n. fds_nth f n / nat_power n (of_nat c * z))
[PROOF STEP]
proof (intro suminf_cong, goal_cases)
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>n. fds_nth (fds_scale c f) (n ^ c) / nat_power (n ^ c) z = fds_nth f n / nat_power n (of_nat c * z)
[PROOF STEP]
case (1 n)
[PROOF STATE]
proof (state)
this:

goal (1 subgoal):
 1. \<And>n. fds_nth (fds_scale c f) (n ^ c) / nat_power (n ^ c) z = fds_nth f n / nat_power n (of_nat c * z)
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. fds_nth (fds_scale c f) (n ^ c) / nat_power (n ^ c) z = fds_nth f n / nat_power n (of_nat c * z)
[PROOF STEP]
using c
[PROOF STATE]
proof (prove)
using this:
0 < c

goal (1 subgoal):
 1. fds_nth (fds_scale c f) (n ^ c) / nat_power (n ^ c) z = fds_nth f n / nat_power n (of_nat c * z)
[PROOF STEP]
by (cases "n = 0") (simp_all add: nat_power_power_left nat_power_power [symmetric] mult_ac)
[PROOF STATE]
proof (state)
this:
fds_nth (fds_scale c f) (n ^ c) / nat_power (n ^ c) z = fds_nth f n / nat_power n (of_nat c * z)

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
(\<Sum>n. fds_nth (fds_scale c f) (n ^ c) / nat_power (n ^ c) z) = (\<Sum>n. fds_nth f n / nat_power n (of_nat c * z))

goal (1 subgoal):
 1. eval_fds (fds_scale c f) z = eval_fds f (of_nat c * z)
[PROOF STEP]
finally
[PROOF STATE]
proof (chain)
picking this:
eval_fds (fds_scale c f) z = (\<Sum>n. fds_nth f n / nat_power n (of_nat c * z))
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
eval_fds (fds_scale c f) z = (\<Sum>n. fds_nth f n / nat_power n (of_nat c * z))

goal (1 subgoal):
 1. eval_fds (fds_scale c f) z = eval_fds f (of_nat c * z)
[PROOF STEP]
by (simp add: eval_fds_def)
[PROOF STATE]
proof (state)
this:
eval_fds (fds_scale c f) z = eval_fds f (of_nat c * z)

goal:
No subgoals!
[PROOF STEP]
qed


[STATEMENT]
lemma one_less_power [simp]: "1 < a \<Longrightarrow> 0 < n \<Longrightarrow> 1 < a ^ n"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>(1::'a) < a; 0 < n\<rbrakk> \<Longrightarrow> (1::'a) < a ^ n
[PROOF STEP]
by (cases n) (simp_all add: power_gt1_lemma)


[STATEMENT]
lemma real_power_diff: "d > 0 \<Longrightarrow> real_power d (a - b) = real_power d a / real_power d b"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. 0 < d \<Longrightarrow> real_power d (a - b) = real_power d a / real_power d b
[PROOF STEP]
using real_power_add[of d b "a - b"]
[PROOF STATE]
proof (prove)
using this:
0 < d \<Longrightarrow> real_power d (b + (a - b)) = real_power d b * real_power d (a - b)

goal (1 subgoal):
 1. 0 < d \<Longrightarrow> real_power d (a - b) = real_power d a / real_power d b
[PROOF STEP]
by (simp add: field_simps)


[STATEMENT]
lemma cinner_minus_right [simp]: "cinner x (- y) = - cinner x y"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. cinner x (- y) = - cinner x y
[PROOF STEP]
using cinner_minus_left [of y x]
[PROOF STATE]
proof (prove)
using this:
cinner (- y) x = - cinner y x

goal (1 subgoal):
 1. cinner x (- y) = - cinner x y
[PROOF STEP]
by (metis complex_cnj_minus local.cinner_commute)


[STATEMENT]
lemma lborel_integrable_real_affine:
  fixes f :: "real \<Rightarrow> 'a :: {banach, second_countable_topology}"
  assumes f: "integrable lborel f"
  shows "c \<noteq> 0 \<Longrightarrow> integrable lborel (\<lambda>x. f (t + c * x))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. c \<noteq> 0 \<Longrightarrow> integrable lborel (\<lambda>x. f (t + c * x))
[PROOF STEP]
using f f[THEN borel_measurable_integrable]
[PROOF STATE]
proof (prove)
using this:
integrable lborel f
f \<in> borel_measurable lborel

goal (1 subgoal):
 1. c \<noteq> 0 \<Longrightarrow> integrable lborel (\<lambda>x. f (t + c * x))
[PROOF STEP]
unfolding integrable_iff_bounded
[PROOF STATE]
proof (prove)
using this:
f \<in> borel_measurable lborel \<and> \<integral>\<^sup>+ x. ennreal (norm (f x)) \<partial>lborel < \<infinity>
f \<in> borel_measurable lborel

goal (1 subgoal):
 1. c \<noteq> 0 \<Longrightarrow> (\<lambda>x. f (t + c * x)) \<in> borel_measurable lborel \<and> \<integral>\<^sup>+ x. ennreal (norm (f (t + c * x))) \<partial>lborel < \<infinity>
[PROOF STEP]
by (subst (asm) nn_integral_real_affine[where c=c and t=t]) (auto simp: ennreal_mult_less_top)


[STATEMENT]
lemma vebt_delete_code[code]:
    "vebt_delete (Leaf a b) x = (if x = 0 then Leaf False b else if x = 1 then Leaf a False else Leaf a b)"
    "vebt_delete (Node info deg treeList summary) x = (
      case info of
        None \<Rightarrow> (Node info deg treeList summary)
      | Some mima \<Rightarrow> (
          if deg \<le> 1 then (Node info deg treeList summary)
          else (case mima of (mi, ma) \<Rightarrow> (
            if (x < mi \<or> x > ma) then (Node (Some (mi, ma)) deg treeList summary)
            else if (x = mi \<and> x = ma) then (Node None deg treeList summary)
            else let
              xn = (if x = mi then the (vebt_mint summary) * 2^(deg div 2)
                                      + the (vebt_mint (treeList ! the (vebt_mint summary)))
                     else x);
              minn = (if x = mi then xn else mi);
              l = low xn (deg div 2);
              h = high xn (deg div 2)
            in
              if h < length treeList then let
                newnode = vebt_delete (treeList ! h) l;
                newlist = treeList[h:= newnode]
              in
                if minNull newnode then let
                  sn = vebt_delete summary h;
                  maxn =
                    if xn = ma then let
                      maxs = vebt_maxt sn
                      in
                        if maxs = None then minn
                        else 2^(deg div 2) * the maxs + the (vebt_maxt (newlist ! the maxs))
                    else ma
                  in (Node (Some (minn, maxn)) deg newlist sn)
                else let
                  maxn = (if xn = ma then h * 2^(deg div 2) + the( vebt_maxt (newlist ! h))
                                     else ma)
                in (Node (Some (minn, maxn)) deg newlist summary)
              else (Node (Some (mi, ma)) deg treeList summary)
     ))))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. vebt_delete (Leaf a b) x = (if x = 0 then Leaf False b else if x = 1 then Leaf a False else Leaf a b) &&& vebt_delete (Node info deg treeList summary) x = (case info of None \<Rightarrow> Node info deg treeList summary | Some mima \<Rightarrow> if deg \<le> 1 then Node info deg treeList summary else case mima of (mi, ma) \<Rightarrow> if x < mi \<or> ma < x then Node (Some (mi, ma)) deg treeList summary else if x = mi \<and> x = ma then Node None deg treeList summary else let xn = if x = mi then the (vebt_mint summary) * 2 ^ (deg div 2) + the (vebt_mint (treeList ! the (vebt_mint summary))) else x; minn = if x = mi then xn else mi; l = low xn (deg div 2); h = high xn (deg div 2) in if h < length treeList then let newnode = vebt_delete (treeList ! h) l; newlist = treeList[h := newnode] in if minNull newnode then let sn = vebt_delete summary h; maxn = if xn = ma then let maxs = vebt_maxt sn in if maxs = None then minn else 2 ^ (deg div 2) * the maxs + the (vebt_maxt (newlist ! the maxs)) else ma in Node (Some (minn, maxn)) deg newlist sn else let maxn = if xn = ma then h * 2 ^ (deg div 2) + the (vebt_maxt (newlist ! h)) else ma in Node (Some (minn, maxn)) deg newlist summary else Node (Some (mi, ma)) deg treeList summary)
[PROOF STEP]
apply (cases "(Leaf a b,x)" rule: vebt_delete.cases; simp)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. vebt_delete (Node info deg treeList summary) x = (case info of None \<Rightarrow> Node info deg treeList summary | Some mima \<Rightarrow> if deg \<le> 1 then Node info deg treeList summary else case mima of (mi, ma) \<Rightarrow> if x < mi \<or> ma < x then Node (Some (mi, ma)) deg treeList summary else if x = mi \<and> x = ma then Node None deg treeList summary else let xn = if x = mi then the (vebt_mint summary) * 2 ^ (deg div 2) + the (vebt_mint (treeList ! the (vebt_mint summary))) else x; minn = if x = mi then xn else mi; l = low xn (deg div 2); h = high xn (deg div 2) in if h < length treeList then let newnode = vebt_delete (treeList ! h) l; newlist = treeList[h := newnode] in if minNull newnode then let sn = vebt_delete summary h; maxn = if xn = ma then let maxs = vebt_maxt sn in if maxs = None then minn else 2 ^ (deg div 2) * the maxs + the (vebt_maxt (newlist ! the maxs)) else ma in Node (Some (minn, maxn)) deg newlist sn else let maxn = if xn = ma then h * 2 ^ (deg div 2) + the (vebt_maxt (newlist ! h)) else ma in Node (Some (minn, maxn)) deg newlist summary else Node (Some (mi, ma)) deg treeList summary)
[PROOF STEP]
apply (cases "(Node info  deg treeList summary,x)" rule: vebt_delete.cases; simp add: Let_def)
[PROOF STATE]
proof (prove)
goal:
No subgoals!
[PROOF STEP]
done


[STATEMENT]
lemma subset_dual1: "(X \<subseteq> Y) \<longleftrightarrow> (\<partial> ` X \<subseteq> \<partial> ` Y)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (X \<subseteq> Y) = (\<partial> ` X \<subseteq> \<partial> ` Y)
[PROOF STEP]
by (simp add: dual_inj inj_image_subset_iff)


[STATEMENT]
lemma sin_arcsin_abs: "\<bar>y\<bar> \<le> 1 \<Longrightarrow> sin (arcsin y) = y"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<bar>y\<bar> \<le> 1 \<Longrightarrow> sin (arcsin y) = y
[PROOF STEP]
by (simp add: abs_le_iff)


[STATEMENT]
lemma SA_zero:
"(\<zero>\<^bsub>SA n\<^esub>) = (\<zero>\<^bsub>Fun\<^bsub>n\<^esub> Q\<^sub>p\<^esub>)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<zero>\<^bsub>SA n\<^esub> = \<zero>\<^bsub>function_ring (carrier (Q\<^sub>p\<^bsup>n\<^esup>)) Q\<^sub>p\<^esub>
[PROOF STEP]
unfolding SA_def
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<zero>\<^bsub>function_ring (carrier (Q\<^sub>p\<^bsup>n\<^esup>)) Q\<^sub>p\<lparr>carrier := semialg_functions n\<rparr>\<^esub> = \<zero>\<^bsub>function_ring (carrier (Q\<^sub>p\<^bsup>n\<^esup>)) Q\<^sub>p\<^esub>
[PROOF STEP]
by simp


[STATEMENT]
lemma iterate_additive': "iterate (t\<^sub>1 + t\<^sub>2) f x = iterate t\<^sub>2 f (iterate t\<^sub>1 f x)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. iterate (t\<^sub>1 + t\<^sub>2) f x = iterate t\<^sub>2 f (iterate t\<^sub>1 f x)
[PROOF STEP]
using iterate_additive
[PROOF STATE]
proof (prove)
using this:
\<lbrakk>iterate ?t\<^sub>1 ?f ?x = ?y; iterate ?t\<^sub>2 ?f ?y = ?z\<rbrakk> \<Longrightarrow> iterate (?t\<^sub>1 + ?t\<^sub>2) ?f ?x = ?z

goal (1 subgoal):
 1. iterate (t\<^sub>1 + t\<^sub>2) f x = iterate t\<^sub>2 f (iterate t\<^sub>1 f x)
[PROOF STEP]
by metis


[STATEMENT]
lemma wf_finite_less:
  assumes "finite (C :: 'a::order set)"
  shows "wf {(x, y). {x, y} \<subseteq> C \<and> x < y}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. wf {(x, y). {x, y} \<subseteq> C \<and> x < y}
[PROOF STEP]
by (rule wf_measure[where f="\<lambda>b. card {a. a \<in> C \<and> a < b}", THEN wf_subset])
   (fastforce simp: less_eq assms intro: psubset_card_mono)


[STATEMENT]
lemma cardSuc_ordLeq_cpow: "Card_order r \<Longrightarrow> cardSuc r \<le>o cpow r"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. Card_order r \<Longrightarrow> cardSuc r \<le>o cpow r
[PROOF STEP]
unfolding cpow_def
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. Card_order r \<Longrightarrow> cardSuc r \<le>o |Pow (Field r)|
[PROOF STEP]
by (metis Card_order_Pow cardSuc_ordLess_ordLeq card_of_Card_order)


[STATEMENT]
lemma analz_UN_analz [simp]: "analz (\<Union>i\<in>A. analz (H i)) = analz (\<Union>i\<in>A. H i)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. analz (\<Union>i\<in>A. analz (H i)) = analz (\<Union> (H ` A))
[PROOF STEP]
by (blast intro: analz_UN_analz_lemma analz_mono [THEN [2] rev_subsetD])


[STATEMENT]
lemma col_cong2_bet4:
  assumes "Col A B C" and
    "Bet A B D" and
    "Cong A B C D" and
    "Cong A D B C"
  shows "Bet B D C"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. Bet B D C
[PROOF STEP]
using assms(1) assms(2) assms(3) assms(4) col_cong2_bet3 cong_right_commutativity
[PROOF STATE]
proof (prove)
using this:
Col A B C
Bet A B D
Cong A B C D
Cong A D B C
\<lbrakk>Col ?A ?B ?D; Bet ?A ?B ?C; Cong ?A ?B ?C ?D; Cong ?A ?C ?B ?D\<rbrakk> \<Longrightarrow> Bet ?B ?C ?D
Cong ?A ?B ?C ?D \<Longrightarrow> Cong ?A ?B ?D ?C

goal (1 subgoal):
 1. Bet B D C
[PROOF STEP]
by blast


[STATEMENT]
lemma auxm2_lm0246:
  assumes "(\<forall>r< n.(nth_bit a r + nth_bit b r \<le> 1))"
  shows "(nth_bit (a+b) n) = (nth_bit a n + nth_bit b n) mod 2"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (a + b) \<exclamdown> n = (a \<exclamdown> n + b \<exclamdown> n) mod 2
[PROOF STEP]
using assms no_carry
[PROOF STATE]
proof (prove)
using this:
\<forall>r<n. a \<exclamdown> r + b \<exclamdown> r \<le> 1
\<forall>r<?n. ?a \<exclamdown> r + ?b \<exclamdown> r \<le> 1 \<Longrightarrow> (?a + ?b) \<exclamdown> ?n = (?a \<exclamdown> ?n + ?b \<exclamdown> ?n) mod 2

goal (1 subgoal):
 1. (a + b) \<exclamdown> n = (a \<exclamdown> n + b \<exclamdown> n) mod 2
[PROOF STEP]
by auto


[STATEMENT]
lemma select_index_inter:
  "{k| k::nat. select_index n i k} \<inter> {k| k::nat. (k<2^n) \<and> \<not> select_index n i k} = {}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. {k |k. select_index n i k} \<inter> {k |k. k < 2 ^ n \<and> \<not> select_index n i k} = {}
[PROOF STEP]
by auto


[STATEMENT]
lemma listset_finite[iff]:
    assumes "list_all (\<lambda> A. A \<noteq> {}) XS"
    shows "finite (listset XS) \<longleftrightarrow> list_all finite XS"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. finite (listset XS) = list_all finite XS
[PROOF STEP]
using assms
[PROOF STATE]
proof (prove)
using this:
list_all (\<lambda>A. A \<noteq> {}) XS

goal (1 subgoal):
 1. finite (listset XS) = list_all finite XS
[PROOF STEP]
proof (induct XS)
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. list_all (\<lambda>A. A \<noteq> {}) [] \<Longrightarrow> finite (listset []) = list_all finite []
 2. \<And>a XS. \<lbrakk>list_all (\<lambda>A. A \<noteq> {}) XS \<Longrightarrow> finite (listset XS) = list_all finite XS; list_all (\<lambda>A. A \<noteq> {}) (a # XS)\<rbrakk> \<Longrightarrow> finite (listset (a # XS)) = list_all finite (a # XS)
[PROOF STEP]
case Nil
[PROOF STATE]
proof (state)
this:
list_all (\<lambda>A. A \<noteq> {}) []

goal (2 subgoals):
 1. list_all (\<lambda>A. A \<noteq> {}) [] \<Longrightarrow> finite (listset []) = list_all finite []
 2. \<And>a XS. \<lbrakk>list_all (\<lambda>A. A \<noteq> {}) XS \<Longrightarrow> finite (listset XS) = list_all finite XS; list_all (\<lambda>A. A \<noteq> {}) (a # XS)\<rbrakk> \<Longrightarrow> finite (listset (a # XS)) = list_all finite (a # XS)
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. finite (listset []) = list_all finite []
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
finite (listset []) = list_all finite []

goal (1 subgoal):
 1. \<And>a XS. \<lbrakk>list_all (\<lambda>A. A \<noteq> {}) XS \<Longrightarrow> finite (listset XS) = list_all finite XS; list_all (\<lambda>A. A \<noteq> {}) (a # XS)\<rbrakk> \<Longrightarrow> finite (listset (a # XS)) = list_all finite (a # XS)
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>a XS. \<lbrakk>list_all (\<lambda>A. A \<noteq> {}) XS \<Longrightarrow> finite (listset XS) = list_all finite XS; list_all (\<lambda>A. A \<noteq> {}) (a # XS)\<rbrakk> \<Longrightarrow> finite (listset (a # XS)) = list_all finite (a # XS)
[PROOF STEP]
case (Cons A XS)
[PROOF STATE]
proof (state)
this:
list_all (\<lambda>A. A \<noteq> {}) XS \<Longrightarrow> finite (listset XS) = list_all finite XS
list_all (\<lambda>A. A \<noteq> {}) (A # XS)

goal (1 subgoal):
 1. \<And>a XS. \<lbrakk>list_all (\<lambda>A. A \<noteq> {}) XS \<Longrightarrow> finite (listset XS) = list_all finite XS; list_all (\<lambda>A. A \<noteq> {}) (a # XS)\<rbrakk> \<Longrightarrow> finite (listset (a # XS)) = list_all finite (a # XS)
[PROOF STEP]
note [simp] = finite_image_iff finite_cartesian_product_iff
[PROOF STATE]
proof (state)
this:
inj_on ?f ?A \<Longrightarrow> finite (?f ` ?A) = finite ?A
finite (?A \<times> ?B) = (?A = {} \<or> ?B = {} \<or> finite ?A \<and> finite ?B)

goal (1 subgoal):
 1. \<And>a XS. \<lbrakk>list_all (\<lambda>A. A \<noteq> {}) XS \<Longrightarrow> finite (listset XS) = list_all finite XS; list_all (\<lambda>A. A \<noteq> {}) (a # XS)\<rbrakk> \<Longrightarrow> finite (listset (a # XS)) = list_all finite (a # XS)
[PROOF STEP]
have "listset (A # XS) = case_prod Cons ` (A \<times> listset XS)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. listset (A # XS) = (\<lambda>(x, y). x # y) ` (A \<times> listset XS)
[PROOF STEP]
by (auto simp: set_Cons_def)
[PROOF STATE]
proof (state)
this:
listset (A # XS) = (\<lambda>(x, y). x # y) ` (A \<times> listset XS)

goal (1 subgoal):
 1. \<And>a XS. \<lbrakk>list_all (\<lambda>A. A \<noteq> {}) XS \<Longrightarrow> finite (listset XS) = list_all finite XS; list_all (\<lambda>A. A \<noteq> {}) (a # XS)\<rbrakk> \<Longrightarrow> finite (listset (a # XS)) = list_all finite (a # XS)
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
listset (A # XS) = (\<lambda>(x, y). x # y) ` (A \<times> listset XS)

goal (1 subgoal):
 1. \<And>a XS. \<lbrakk>list_all (\<lambda>A. A \<noteq> {}) XS \<Longrightarrow> finite (listset XS) = list_all finite XS; list_all (\<lambda>A. A \<noteq> {}) (a # XS)\<rbrakk> \<Longrightarrow> finite (listset (a # XS)) = list_all finite (a # XS)
[PROOF STEP]
have "finite \<dots> \<longleftrightarrow> finite (A \<times> listset XS)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. finite ((\<lambda>(x, y). x # y) ` (A \<times> listset XS)) = finite (A \<times> listset XS)
[PROOF STEP]
by (simp add: inj_on_def)
[PROOF STATE]
proof (state)
this:
finite ((\<lambda>(x, y). x # y) ` (A \<times> listset XS)) = finite (A \<times> listset XS)

goal (1 subgoal):
 1. \<And>a XS. \<lbrakk>list_all (\<lambda>A. A \<noteq> {}) XS \<Longrightarrow> finite (listset XS) = list_all finite XS; list_all (\<lambda>A. A \<noteq> {}) (a # XS)\<rbrakk> \<Longrightarrow> finite (listset (a # XS)) = list_all finite (a # XS)
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
finite ((\<lambda>(x, y). x # y) ` (A \<times> listset XS)) = finite (A \<times> listset XS)

goal (1 subgoal):
 1. \<And>a XS. \<lbrakk>list_all (\<lambda>A. A \<noteq> {}) XS \<Longrightarrow> finite (listset XS) = list_all finite XS; list_all (\<lambda>A. A \<noteq> {}) (a # XS)\<rbrakk> \<Longrightarrow> finite (listset (a # XS)) = list_all finite (a # XS)
[PROOF STEP]
have "\<dots> \<longleftrightarrow> finite A \<and> finite (listset XS)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. finite (A \<times> listset XS) = (finite A \<and> finite (listset XS))
[PROOF STEP]
using Cons(2)
[PROOF STATE]
proof (prove)
using this:
list_all (\<lambda>A. A \<noteq> {}) (A # XS)

goal (1 subgoal):
 1. finite (A \<times> listset XS) = (finite A \<and> finite (listset XS))
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
finite (A \<times> listset XS) = (finite A \<and> finite (listset XS))

goal (1 subgoal):
 1. \<And>a XS. \<lbrakk>list_all (\<lambda>A. A \<noteq> {}) XS \<Longrightarrow> finite (listset XS) = list_all finite XS; list_all (\<lambda>A. A \<noteq> {}) (a # XS)\<rbrakk> \<Longrightarrow> finite (listset (a # XS)) = list_all finite (a # XS)
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
finite (A \<times> listset XS) = (finite A \<and> finite (listset XS))

goal (1 subgoal):
 1. \<And>a XS. \<lbrakk>list_all (\<lambda>A. A \<noteq> {}) XS \<Longrightarrow> finite (listset XS) = list_all finite XS; list_all (\<lambda>A. A \<noteq> {}) (a # XS)\<rbrakk> \<Longrightarrow> finite (listset (a # XS)) = list_all finite (a # XS)
[PROOF STEP]
have "finite (listset XS) \<longleftrightarrow> list_all finite XS"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. finite (listset XS) = list_all finite XS
[PROOF STEP]
using Cons
[PROOF STATE]
proof (prove)
using this:
list_all (\<lambda>A. A \<noteq> {}) XS \<Longrightarrow> finite (listset XS) = list_all finite XS
list_all (\<lambda>A. A \<noteq> {}) (A # XS)

goal (1 subgoal):
 1. finite (listset XS) = list_all finite XS
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
finite (listset XS) = list_all finite XS

goal (1 subgoal):
 1. \<And>a XS. \<lbrakk>list_all (\<lambda>A. A \<noteq> {}) XS \<Longrightarrow> finite (listset XS) = list_all finite XS; list_all (\<lambda>A. A \<noteq> {}) (a # XS)\<rbrakk> \<Longrightarrow> finite (listset (a # XS)) = list_all finite (a # XS)
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
finite (listset XS) = list_all finite XS

goal (1 subgoal):
 1. \<And>a XS. \<lbrakk>list_all (\<lambda>A. A \<noteq> {}) XS \<Longrightarrow> finite (listset XS) = list_all finite XS; list_all (\<lambda>A. A \<noteq> {}) (a # XS)\<rbrakk> \<Longrightarrow> finite (listset (a # XS)) = list_all finite (a # XS)
[PROOF STEP]
have "finite A \<and> \<dots> \<longleftrightarrow> list_all finite (A # XS)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (finite A \<and> list_all finite XS) = list_all finite (A # XS)
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
(finite A \<and> list_all finite XS) = list_all finite (A # XS)

goal (1 subgoal):
 1. \<And>a XS. \<lbrakk>list_all (\<lambda>A. A \<noteq> {}) XS \<Longrightarrow> finite (listset XS) = list_all finite XS; list_all (\<lambda>A. A \<noteq> {}) (a # XS)\<rbrakk> \<Longrightarrow> finite (listset (a # XS)) = list_all finite (a # XS)
[PROOF STEP]
finally
[PROOF STATE]
proof (chain)
picking this:
finite (listset (A # XS)) = list_all finite (A # XS)
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
finite (listset (A # XS)) = list_all finite (A # XS)

goal (1 subgoal):
 1. finite (listset (A # XS)) = list_all finite (A # XS)
[PROOF STEP]
by this
[PROOF STATE]
proof (state)
this:
finite (listset (A # XS)) = list_all finite (A # XS)

goal:
No subgoals!
[PROOF STEP]
qed


[STATEMENT]
lemma sum_list_map_dropWhile0:
  assumes f0: "f 0 = 0"
  shows "sum_list (map f (dropWhile ((=) 0) xs)) = sum_list (map f xs)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. sum_list (map f (dropWhile ((=) (0::'b)) xs)) = sum_list (map f xs)
[PROOF STEP]
by (induct xs, auto simp add: f0)


[STATEMENT]
lemma det_linear_rows_sum:
  assumes fS: "finite S"
  and a: "a \<in> {0..<n} \<rightarrow> S \<rightarrow> carrier_vec n"
  shows "det (mat\<^sub>r n n (\<lambda> i. finsum_vec TYPE('a :: comm_ring_1) n (a i) S)) =
    sum (\<lambda>f. det (mat\<^sub>r n n (\<lambda> i. a i (f i))))
    {f. (\<forall>i\<in>{0..<n}. f i \<in> S) \<and> (\<forall>i. i \<notin> {0..<n} \<longrightarrow> f i = i)}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. det (mat\<^sub>r n n (\<lambda>i. finsum_vec TYPE('a) n (a i) S)) = (\<Sum>f | (\<forall>i\<in>{0..<n}. f i \<in> S) \<and> (\<forall>i. i \<notin> {0..<n} \<longrightarrow> f i = i). det (mat\<^sub>r n n (\<lambda>i. a i (f i))))
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. det (mat\<^sub>r n n (\<lambda>i. finsum_vec TYPE('a) n (a i) S)) = (\<Sum>f | (\<forall>i\<in>{0..<n}. f i \<in> S) \<and> (\<forall>i. i \<notin> {0..<n} \<longrightarrow> f i = i). det (mat\<^sub>r n n (\<lambda>i. a i (f i))))
[PROOF STEP]
let ?T = "{0..<n}"
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. det (mat\<^sub>r n n (\<lambda>i. finsum_vec TYPE('a) n (a i) S)) = (\<Sum>f | (\<forall>i\<in>{0..<n}. f i \<in> S) \<and> (\<forall>i. i \<notin> {0..<n} \<longrightarrow> f i = i). det (mat\<^sub>r n n (\<lambda>i. a i (f i))))
[PROOF STEP]
have fT: "finite ?T"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. finite {0..<n}
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
finite {0..<n}

goal (1 subgoal):
 1. det (mat\<^sub>r n n (\<lambda>i. finsum_vec TYPE('a) n (a i) S)) = (\<Sum>f | (\<forall>i\<in>{0..<n}. f i \<in> S) \<and> (\<forall>i. i \<notin> {0..<n} \<longrightarrow> f i = i). det (mat\<^sub>r n n (\<lambda>i. a i (f i))))
[PROOF STEP]
have th0: "\<And>x y. mat\<^sub>r n n (\<lambda> i. if i \<in> ?T then x i else y i) = mat\<^sub>r n n (\<lambda> i. x i)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y. mat\<^sub>r n n (\<lambda>i. if i \<in> {0..<n} then x i else y i) = mat\<^sub>r n n x
[PROOF STEP]
by (rule eq_rowI, auto)
[PROOF STATE]
proof (state)
this:
mat\<^sub>r n n (\<lambda>i. if i \<in> {0..<n} then ?x i else ?y i) = mat\<^sub>r n n ?x

goal (1 subgoal):
 1. det (mat\<^sub>r n n (\<lambda>i. finsum_vec TYPE('a) n (a i) S)) = (\<Sum>f | (\<forall>i\<in>{0..<n}. f i \<in> S) \<and> (\<forall>i. i \<notin> {0..<n} \<longrightarrow> f i = i). det (mat\<^sub>r n n (\<lambda>i. a i (f i))))
[PROOF STEP]
have c: "(\<lambda> _. 0\<^sub>v n) \<in> ?T \<rightarrow> carrier_vec n"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<lambda>_. 0\<^sub>v n) \<in> {0..<n} \<rightarrow> carrier_vec n
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
(\<lambda>_. 0\<^sub>v n) \<in> {0..<n} \<rightarrow> carrier_vec n

goal (1 subgoal):
 1. det (mat\<^sub>r n n (\<lambda>i. finsum_vec TYPE('a) n (a i) S)) = (\<Sum>f | (\<forall>i\<in>{0..<n}. f i \<in> S) \<and> (\<forall>i. i \<notin> {0..<n} \<longrightarrow> f i = i). det (mat\<^sub>r n n (\<lambda>i. a i (f i))))
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. det (mat\<^sub>r n n (\<lambda>i. finsum_vec TYPE('a) n (a i) S)) = (\<Sum>f | (\<forall>i\<in>{0..<n}. f i \<in> S) \<and> (\<forall>i. i \<notin> {0..<n} \<longrightarrow> f i = i). det (mat\<^sub>r n n (\<lambda>i. a i (f i))))
[PROOF STEP]
by (rule det_linear_rows_finsum_lemma[OF fS fT c subset_refl a, unfolded th0])
[PROOF STATE]
proof (state)
this:
det (mat\<^sub>r n n (\<lambda>i. finsum_vec TYPE('a) n (a i) S)) = (\<Sum>f | (\<forall>i\<in>{0..<n}. f i \<in> S) \<and> (\<forall>i. i \<notin> {0..<n} \<longrightarrow> f i = i). det (mat\<^sub>r n n (\<lambda>i. a i (f i))))

goal:
No subgoals!
[PROOF STEP]
qed


[STATEMENT]
lemma Tran': \<open>\<turnstile> (q \<rightarrow> r) \<rightarrow> (p \<rightarrow> q) \<rightarrow> p \<rightarrow> r\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<turnstile> (q \<rightarrow> r) \<rightarrow> (p \<rightarrow> q) \<rightarrow> p \<rightarrow> r
[PROOF STEP]
using MP Swap Tran
[PROOF STATE]
proof (prove)
using this:
\<lbrakk>\<turnstile> ?p \<rightarrow> ?q; \<turnstile> ?p\<rbrakk> \<Longrightarrow> \<turnstile> ?q
\<turnstile> (?p \<rightarrow> ?q \<rightarrow> ?r) \<rightarrow> ?q \<rightarrow> ?p \<rightarrow> ?r
\<turnstile> (?p \<rightarrow> ?q) \<rightarrow> (?q \<rightarrow> ?r) \<rightarrow> ?p \<rightarrow> ?r

goal (1 subgoal):
 1. \<turnstile> (q \<rightarrow> r) \<rightarrow> (p \<rightarrow> q) \<rightarrow> p \<rightarrow> r
[PROOF STEP]
.


[STATEMENT]
theorem orbit_equality:
  "x \<in> S \<Longrightarrow> orbit.Class x = {\<alpha> x | \<alpha>. \<alpha> \<in> G}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. x \<in> S \<Longrightarrow> orbit.Class x = {\<alpha> x |\<alpha>. \<alpha> \<in> G}
[PROOF STEP]
by (simp add: orbit.Class_def) (blast intro: orbit.symmetric dest: orbit.symmetric)


[STATEMENT]
lemma internalize_card_of_ordLess2:
"( |A| <o |C| ) = (\<exists>B < C. |A| =o |B| \<and> |B| <o |C| )"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (|A| <o |C|) = (\<exists>B\<subset>C. |A| =o |B| \<and> |B| <o |C|)
[PROOF STEP]
using internalize_card_of_ordLess[of "A" "|C|"] Field_card_of[of C]
[PROOF STATE]
proof (prove)
using this:
(|A| <o |C|) = (\<exists>B\<subset>Field |C|. |A| =o |B| \<and> |B| <o |C|)
Field |C| = C

goal (1 subgoal):
 1. (|A| <o |C|) = (\<exists>B\<subset>C. |A| =o |B| \<and> |B| <o |C|)
[PROOF STEP]
by auto


[STATEMENT]
lemma some_gcd_dvd: "some_gcd a b dvd d \<longleftrightarrow> gcd a b dvd d" "d dvd some_gcd a b \<longleftrightarrow> d dvd gcd a b"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (some_gcd a b dvd d) = (gcd a b dvd d) &&& (d dvd some_gcd a b) = (d dvd gcd a b)
[PROOF STEP]
using some_gcd_ddvd_gcd[of a b]
[PROOF STATE]
proof (prove)
using this:
some_gcd a b ddvd gcd a b

goal (1 subgoal):
 1. (some_gcd a b dvd d) = (gcd a b dvd d) &&& (d dvd some_gcd a b) = (d dvd gcd a b)
[PROOF STEP]
by (auto dest:dvd_trans)


[STATEMENT]
lemma ev_iff_ev_at_unique: "ev P \<omega> \<longleftrightarrow> (\<exists>!n. ev_at P n \<omega>)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. ev P \<omega> = (\<exists>!n. ev_at P n \<omega>)
[PROOF STEP]
by (auto intro: ev_at_unique simp: ev_iff_ev_at)


[STATEMENT]
lemma (in prob_space) discount_factor_real_cond_exp:
  assumes "integrable M X"
and "subalgebra M G"
and "-1 < r"
shows "AE w in M. real_cond_exp M G (\<lambda>x. discount_factor r n x * X x) w = discount_factor r n w * (real_cond_exp M G X) w"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. AEeq M (real_cond_exp M G (\<lambda>x. discount_factor r n x * X x)) (\<lambda>w. discount_factor r n w * real_cond_exp M G X w)
[PROOF STEP]
proof (rule sigma_finite_subalgebra.real_cond_exp_mult)
[PROOF STATE]
proof (state)
goal (4 subgoals):
 1. sigma_finite_subalgebra M G
 2. discount_factor r n \<in> borel_measurable G
 3. random_variable borel X
 4. integrable M (\<lambda>x. discount_factor r n x * X x)
[PROOF STEP]
show "sigma_finite_subalgebra M G"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. sigma_finite_subalgebra M G
[PROOF STEP]
using assms subalgebra_sigma_finite
[PROOF STATE]
proof (prove)
using this:
integrable M X
subalgebra M G
- 1 < r
subalgebra M ?N \<Longrightarrow> sigma_finite_subalgebra M ?N

goal (1 subgoal):
 1. sigma_finite_subalgebra M G
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
sigma_finite_subalgebra M G

goal (3 subgoals):
 1. discount_factor r n \<in> borel_measurable G
 2. random_variable borel X
 3. integrable M (\<lambda>x. discount_factor r n x * X x)
[PROOF STEP]
show "discount_factor r n \<in> borel_measurable G"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. discount_factor r n \<in> borel_measurable G
[PROOF STEP]
by (simp add: discount_factor_borel_measurable)
[PROOF STATE]
proof (state)
this:
discount_factor r n \<in> borel_measurable G

goal (2 subgoals):
 1. random_variable borel X
 2. integrable M (\<lambda>x. discount_factor r n x * X x)
[PROOF STEP]
show "random_variable borel X"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. random_variable borel X
[PROOF STEP]
using assms
[PROOF STATE]
proof (prove)
using this:
integrable M X
subalgebra M G
- 1 < r

goal (1 subgoal):
 1. random_variable borel X
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
random_variable borel X

goal (1 subgoal):
 1. integrable M (\<lambda>x. discount_factor r n x * X x)
[PROOF STEP]
show "integrable M (\<lambda>x. discount_factor r n x * X x)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. integrable M (\<lambda>x. discount_factor r n x * X x)
[PROOF STEP]
using assms discounted_integrable[of M "\<lambda>n. X"]
[PROOF STATE]
proof (prove)
using this:
integrable M X
subalgebra M G
- 1 < r
\<lbrakk>integrable M X; - 1 < ?r; space M = space M\<rbrakk> \<Longrightarrow> integrable M (discounted_value ?r (\<lambda>n. X) ?n)

goal (1 subgoal):
 1. integrable M (\<lambda>x. discount_factor r n x * X x)
[PROOF STEP]
unfolding discounted_value_def
[PROOF STATE]
proof (prove)
using this:
integrable M X
subalgebra M G
- 1 < r
\<lbrakk>integrable M X; - 1 < ?r; space M = space M\<rbrakk> \<Longrightarrow> integrable M (\<lambda>w. discount_factor ?r ?n w * X w)

goal (1 subgoal):
 1. integrable M (\<lambda>x. discount_factor r n x * X x)
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
integrable M (\<lambda>x. discount_factor r n x * X x)

goal:
No subgoals!
[PROOF STEP]
qed


[STATEMENT]
lemma simple_path_join_loop_eq:
  assumes "pathfinish g2 = pathstart g1" "pathfinish g1 = pathstart g2"
    shows "simple_path(g1 +++ g2) \<longleftrightarrow>
             arc g1 \<and> arc g2 \<and> path_image g1 \<inter> path_image g2 \<subseteq> {pathstart g1, pathstart g2}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. simple_path (g1 +++ g2) = (arc g1 \<and> arc g2 \<and> path_image g1 \<inter> path_image g2 \<subseteq> {pathstart g1, pathstart g2})
[PROOF STEP]
by (metis assms simple_path_joinE simple_path_join_loop)


[STATEMENT]
lemma tendsto_componentwise_min:
  assumes f: "(f \<longlongrightarrow> l) F" and g: "(g \<longlongrightarrow> m) F"
  shows "((\<lambda>x. (\<Sum>i\<in>Basis. min (f x \<bullet> i) (g x \<bullet> i) *\<^sub>R i)) \<longlongrightarrow> (\<Sum>i\<in>Basis. min (l \<bullet> i) (m \<bullet> i) *\<^sub>R i)) F"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. ((\<lambda>x. \<Sum>i\<in>Basis. min (f x \<bullet> i) (g x \<bullet> i) *\<^sub>R i) \<longlongrightarrow> (\<Sum>i\<in>Basis. min (l \<bullet> i) (m \<bullet> i) *\<^sub>R i)) F
[PROOF STEP]
by (intro tendsto_intros assms)


[STATEMENT]
lemma advice_sets_subformulas:
  "X \<subseteq> subformulas\<^sub>\<mu> \<phi> \<and> Y \<subseteq> subformulas\<^sub>\<nu> \<phi> \<longleftrightarrow> (\<exists>xs ys. X = set xs \<and> Y = set ys \<and> (xs, ys) \<in> set (advice_sets \<phi>))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (X \<subseteq> subformulas\<^sub>\<mu> \<phi> \<and> Y \<subseteq> subformulas\<^sub>\<nu> \<phi>) = (\<exists>xs ys. X = set xs \<and> Y = set ys \<and> (xs, ys) \<in> set (advice_sets \<phi>))
[PROOF STEP]
unfolding advice_sets_def set_product subseqs_subformulas\<^sub>\<mu>_list subseqs_subformulas\<^sub>\<nu>_list
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. ((\<exists>xs. X = set xs \<and> xs \<in> set (subseqs (subformulas\<^sub>\<mu>_list \<phi>))) \<and> (\<exists>ys. Y = set ys \<and> ys \<in> set (subseqs (subformulas\<^sub>\<nu>_list \<phi>)))) = (\<exists>xs ys. X = set xs \<and> Y = set ys \<and> (xs, ys) \<in> set (subseqs (subformulas\<^sub>\<mu>_list \<phi>)) \<times> set (subseqs (subformulas\<^sub>\<nu>_list \<phi>)))
[PROOF STEP]
by blast


[STATEMENT]
lemma density_cong':
  "(\<And>x. x \<in> space M \<Longrightarrow> f x = g x) \<Longrightarrow> density M f = density M g"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<And>x. x \<in> space M \<Longrightarrow> f x = g x) \<Longrightarrow> density M f = density M g
[PROOF STEP]
unfolding density_def
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<And>x. x \<in> space M \<Longrightarrow> f x = g x) \<Longrightarrow> measure_of (space M) (sets M) (\<lambda>A. set_nn_integral M A f) = measure_of (space M) (sets M) (\<lambda>A. set_nn_integral M A g)
[PROOF STEP]
by (auto dest: sets.sets_into_space intro!: nn_integral_cong measure_of_eq)


[STATEMENT]
lemma fps_cos_fps_exp_ii: "fps_cos c = (fps_exp (\<i> * c) + fps_exp (- \<i> * c)) / fps_const 2"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. fps_cos c = (fps_exp (\<i> * c) + fps_exp (- \<i> * c)) / fps_const 2
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. fps_cos c = (fps_exp (\<i> * c) + fps_exp (- \<i> * c)) / fps_const 2
[PROOF STEP]
have th: "fps_cos c + fps_cos c = fps_cos c * fps_const 2"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. fps_cos c + fps_cos c = fps_cos c * fps_const 2
[PROOF STEP]
by (simp add: numeral_fps_const)
[PROOF STATE]
proof (state)
this:
fps_cos c + fps_cos c = fps_cos c * fps_const 2

goal (1 subgoal):
 1. fps_cos c = (fps_exp (\<i> * c) + fps_exp (- \<i> * c)) / fps_const 2
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. fps_cos c = (fps_exp (\<i> * c) + fps_exp (- \<i> * c)) / fps_const 2
[PROOF STEP]
unfolding fps_exp_ii_sin_cos minus_mult_commute
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. fps_cos c = (fps_cos c + fps_const \<i> * fps_sin c + (fps_cos (- c) + fps_const \<i> * fps_sin (- c))) / fps_const 2
[PROOF STEP]
by (simp add: fps_sin_even fps_cos_odd numeral_fps_const fps_divide_unit fps_const_inverse th)
[PROOF STATE]
proof (state)
this:
fps_cos c = (fps_exp (\<i> * c) + fps_exp (- \<i> * c)) / fps_const 2

goal:
No subgoals!
[PROOF STEP]
qed


[STATEMENT]
theorem b_least2_scheme: "\<lbrakk> f \<in> PrimRec2; g \<in> PrimRec1; \<forall> x. h x < g x; \<forall> x. f x (h x) \<noteq> 0; \<forall> z x. z < h x \<longrightarrow> f x z = 0 \<rbrakk> \<Longrightarrow>
                            h \<in> PrimRec1"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>f \<in> PrimRec2; g \<in> PrimRec1; \<forall>x. h x < g x; \<forall>x. f x (h x) \<noteq> 0; \<forall>z x. z < h x \<longrightarrow> f x z = 0\<rbrakk> \<Longrightarrow> h \<in> PrimRec1
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<lbrakk>f \<in> PrimRec2; g \<in> PrimRec1; \<forall>x. h x < g x; \<forall>x. f x (h x) \<noteq> 0; \<forall>z x. z < h x \<longrightarrow> f x z = 0\<rbrakk> \<Longrightarrow> h \<in> PrimRec1
[PROOF STEP]
assume f_is_pr: "f \<in> PrimRec2"
[PROOF STATE]
proof (state)
this:
f \<in> PrimRec2

goal (1 subgoal):
 1. \<lbrakk>f \<in> PrimRec2; g \<in> PrimRec1; \<forall>x. h x < g x; \<forall>x. f x (h x) \<noteq> 0; \<forall>z x. z < h x \<longrightarrow> f x z = 0\<rbrakk> \<Longrightarrow> h \<in> PrimRec1
[PROOF STEP]
assume g_is_pr: "g \<in> PrimRec1"
[PROOF STATE]
proof (state)
this:
g \<in> PrimRec1

goal (1 subgoal):
 1. \<lbrakk>f \<in> PrimRec2; g \<in> PrimRec1; \<forall>x. h x < g x; \<forall>x. f x (h x) \<noteq> 0; \<forall>z x. z < h x \<longrightarrow> f x z = 0\<rbrakk> \<Longrightarrow> h \<in> PrimRec1
[PROOF STEP]
assume h_lt_g: "\<forall> x. h x < g x"
[PROOF STATE]
proof (state)
this:
\<forall>x. h x < g x

goal (1 subgoal):
 1. \<lbrakk>f \<in> PrimRec2; g \<in> PrimRec1; \<forall>x. h x < g x; \<forall>x. f x (h x) \<noteq> 0; \<forall>z x. z < h x \<longrightarrow> f x z = 0\<rbrakk> \<Longrightarrow> h \<in> PrimRec1
[PROOF STEP]
assume f_at_h_nz: "\<forall> x. f x (h x) \<noteq> 0"
[PROOF STATE]
proof (state)
this:
\<forall>x. f x (h x) \<noteq> 0

goal (1 subgoal):
 1. \<lbrakk>f \<in> PrimRec2; g \<in> PrimRec1; \<forall>x. h x < g x; \<forall>x. f x (h x) \<noteq> 0; \<forall>z x. z < h x \<longrightarrow> f x z = 0\<rbrakk> \<Longrightarrow> h \<in> PrimRec1
[PROOF STEP]
assume h_is_min: "\<forall> z x. z < h x \<longrightarrow> f x z = 0"
[PROOF STATE]
proof (state)
this:
\<forall>z x. z < h x \<longrightarrow> f x z = 0

goal (1 subgoal):
 1. \<lbrakk>f \<in> PrimRec2; g \<in> PrimRec1; \<forall>x. h x < g x; \<forall>x. f x (h x) \<noteq> 0; \<forall>z x. z < h x \<longrightarrow> f x z = 0\<rbrakk> \<Longrightarrow> h \<in> PrimRec1
[PROOF STEP]
have h_def: "h = (\<lambda> x. b_least2 f x (g x))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. h = (\<lambda>x. b_least2 f x (g x))
[PROOF STEP]
proof
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>x. h x = b_least2 f x (g x)
[PROOF STEP]
fix x
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>x. h x = b_least2 f x (g x)
[PROOF STEP]
show "h x = b_least2 f x (g x)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. h x = b_least2 f x (g x)
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. h x = b_least2 f x (g x)
[PROOF STEP]
from f_at_h_nz
[PROOF STATE]
proof (chain)
picking this:
\<forall>x. f x (h x) \<noteq> 0
[PROOF STEP]
have S1: "b_least2 f x (g x) \<le> h x"
[PROOF STATE]
proof (prove)
using this:
\<forall>x. f x (h x) \<noteq> 0

goal (1 subgoal):
 1. b_least2 f x (g x) \<le> h x
[PROOF STEP]
by (simp add: nz_impl_b_least2_le)
[PROOF STATE]
proof (state)
this:
b_least2 f x (g x) \<le> h x

goal (1 subgoal):
 1. h x = b_least2 f x (g x)
[PROOF STEP]
from h_lt_g
[PROOF STATE]
proof (chain)
picking this:
\<forall>x. h x < g x
[PROOF STEP]
have "h x < g x"
[PROOF STATE]
proof (prove)
using this:
\<forall>x. h x < g x

goal (1 subgoal):
 1. h x < g x
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
h x < g x

goal (1 subgoal):
 1. h x = b_least2 f x (g x)
[PROOF STEP]
with S1
[PROOF STATE]
proof (chain)
picking this:
b_least2 f x (g x) \<le> h x
h x < g x
[PROOF STEP]
have "b_least2 f x (g x) < g x"
[PROOF STATE]
proof (prove)
using this:
b_least2 f x (g x) \<le> h x
h x < g x

goal (1 subgoal):
 1. b_least2 f x (g x) < g x
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
b_least2 f x (g x) < g x

goal (1 subgoal):
 1. h x = b_least2 f x (g x)
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
b_least2 f x (g x) < g x
[PROOF STEP]
have S2: "f x (b_least2 f x (g x)) \<noteq> 0"
[PROOF STATE]
proof (prove)
using this:
b_least2 f x (g x) < g x

goal (1 subgoal):
 1. f x (b_least2 f x (g x)) \<noteq> 0
[PROOF STEP]
by (rule b_least2_less_impl_nz)
[PROOF STATE]
proof (state)
this:
f x (b_least2 f x (g x)) \<noteq> 0

goal (1 subgoal):
 1. h x = b_least2 f x (g x)
[PROOF STEP]
have S3: "h x \<le> b_least2 f x (g x)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. h x \<le> b_least2 f x (g x)
[PROOF STEP]
proof (rule ccontr)
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<not> h x \<le> b_least2 f x (g x) \<Longrightarrow> False
[PROOF STEP]
assume "\<not> h x \<le> b_least2 f x (g x)"
[PROOF STATE]
proof (state)
this:
\<not> h x \<le> b_least2 f x (g x)

goal (1 subgoal):
 1. \<not> h x \<le> b_least2 f x (g x) \<Longrightarrow> False
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
\<not> h x \<le> b_least2 f x (g x)
[PROOF STEP]
have "b_least2 f x (g x) < h x"
[PROOF STATE]
proof (prove)
using this:
\<not> h x \<le> b_least2 f x (g x)

goal (1 subgoal):
 1. b_least2 f x (g x) < h x
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
b_least2 f x (g x) < h x

goal (1 subgoal):
 1. \<not> h x \<le> b_least2 f x (g x) \<Longrightarrow> False
[PROOF STEP]
with h_is_min
[PROOF STATE]
proof (chain)
picking this:
\<forall>z x. z < h x \<longrightarrow> f x z = 0
b_least2 f x (g x) < h x
[PROOF STEP]
have "f x (b_least2 f x (g x)) = 0"
[PROOF STATE]
proof (prove)
using this:
\<forall>z x. z < h x \<longrightarrow> f x z = 0
b_least2 f x (g x) < h x

goal (1 subgoal):
 1. f x (b_least2 f x (g x)) = 0
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
f x (b_least2 f x (g x)) = 0

goal (1 subgoal):
 1. \<not> h x \<le> b_least2 f x (g x) \<Longrightarrow> False
[PROOF STEP]
with S2
[PROOF STATE]
proof (chain)
picking this:
f x (b_least2 f x (g x)) \<noteq> 0
f x (b_least2 f x (g x)) = 0
[PROOF STEP]
show False
[PROOF STATE]
proof (prove)
using this:
f x (b_least2 f x (g x)) \<noteq> 0
f x (b_least2 f x (g x)) = 0

goal (1 subgoal):
 1. False
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
False

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
h x \<le> b_least2 f x (g x)

goal (1 subgoal):
 1. h x = b_least2 f x (g x)
[PROOF STEP]
from S1 S3
[PROOF STATE]
proof (chain)
picking this:
b_least2 f x (g x) \<le> h x
h x \<le> b_least2 f x (g x)
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
b_least2 f x (g x) \<le> h x
h x \<le> b_least2 f x (g x)

goal (1 subgoal):
 1. h x = b_least2 f x (g x)
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
h x = b_least2 f x (g x)

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
h x = b_least2 f x (g x)

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
h = (\<lambda>x. b_least2 f x (g x))

goal (1 subgoal):
 1. \<lbrakk>f \<in> PrimRec2; g \<in> PrimRec1; \<forall>x. h x < g x; \<forall>x. f x (h x) \<noteq> 0; \<forall>z x. z < h x \<longrightarrow> f x z = 0\<rbrakk> \<Longrightarrow> h \<in> PrimRec1
[PROOF STEP]
define f1 where "f1 = b_least2 f"
[PROOF STATE]
proof (state)
this:
f1 = b_least2 f

goal (1 subgoal):
 1. \<lbrakk>f \<in> PrimRec2; g \<in> PrimRec1; \<forall>x. h x < g x; \<forall>x. f x (h x) \<noteq> 0; \<forall>z x. z < h x \<longrightarrow> f x z = 0\<rbrakk> \<Longrightarrow> h \<in> PrimRec1
[PROOF STEP]
from f_is_pr f1_def
[PROOF STATE]
proof (chain)
picking this:
f \<in> PrimRec2
f1 = b_least2 f
[PROOF STEP]
have f1_is_pr: "f1 \<in> PrimRec2"
[PROOF STATE]
proof (prove)
using this:
f \<in> PrimRec2
f1 = b_least2 f

goal (1 subgoal):
 1. f1 \<in> PrimRec2
[PROOF STEP]
by (simp add: pr_b_least2)
[PROOF STATE]
proof (state)
this:
f1 \<in> PrimRec2

goal (1 subgoal):
 1. \<lbrakk>f \<in> PrimRec2; g \<in> PrimRec1; \<forall>x. h x < g x; \<forall>x. f x (h x) \<noteq> 0; \<forall>z x. z < h x \<longrightarrow> f x z = 0\<rbrakk> \<Longrightarrow> h \<in> PrimRec1
[PROOF STEP]
with g_is_pr
[PROOF STATE]
proof (chain)
picking this:
g \<in> PrimRec1
f1 \<in> PrimRec2
[PROOF STEP]
have "(\<lambda> x. f1 x (g x)) \<in> PrimRec1"
[PROOF STATE]
proof (prove)
using this:
g \<in> PrimRec1
f1 \<in> PrimRec2

goal (1 subgoal):
 1. (\<lambda>x. f1 x (g x)) \<in> PrimRec1
[PROOF STEP]
by prec
[PROOF STATE]
proof (state)
this:
(\<lambda>x. f1 x (g x)) \<in> PrimRec1

goal (1 subgoal):
 1. \<lbrakk>f \<in> PrimRec2; g \<in> PrimRec1; \<forall>x. h x < g x; \<forall>x. f x (h x) \<noteq> 0; \<forall>z x. z < h x \<longrightarrow> f x z = 0\<rbrakk> \<Longrightarrow> h \<in> PrimRec1
[PROOF STEP]
with h_def f1_def
[PROOF STATE]
proof (chain)
picking this:
h = (\<lambda>x. b_least2 f x (g x))
f1 = b_least2 f
(\<lambda>x. f1 x (g x)) \<in> PrimRec1
[PROOF STEP]
show "h \<in> PrimRec1"
[PROOF STATE]
proof (prove)
using this:
h = (\<lambda>x. b_least2 f x (g x))
f1 = b_least2 f
(\<lambda>x. f1 x (g x)) \<in> PrimRec1

goal (1 subgoal):
 1. h \<in> PrimRec1
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
h \<in> PrimRec1

goal:
No subgoals!
[PROOF STEP]
qed


[STATEMENT]
lemma span_empty[simp]: "span {} = {0}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. span {} = {0::'b}
[PROOF STEP]
by (rule span_unique) (auto simp add: subspace_def)


[STATEMENT]
theorem delete_correct': assumes "invar_vebt t n"
  shows "set_vebt' (vebt_delete t x) = set_vebt' t - {x}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. set_vebt' (vebt_delete t x) = set_vebt' t - {x}
[PROOF STEP]
using assms
[PROOF STATE]
proof (prove)
using this:
invar_vebt t n

goal (1 subgoal):
 1. set_vebt' (vebt_delete t x) = set_vebt' t - {x}
[PROOF STEP]
by(auto simp add: set_vebt'_def dele_member_cont_corr)