[STATEMENT]
lemma arc_regular:
  assumes "arc x"
    shows "regular x"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. regular x
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. regular x
[PROOF STEP]
have "--x \<le> --(x * top \<sqinter> top * x)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. - - x \<le> - - (x * top \<sqinter> top * x)
[PROOF STEP]
by (simp add: pp_isotone top_left_mult_increasing top_right_mult_increasing)
[PROOF STATE]
proof (state)
this:
- - x \<le> - - (x * top \<sqinter> top * x)

goal (1 subgoal):
 1. regular x
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
- - x \<le> - - (x * top \<sqinter> top * x)

goal (1 subgoal):
 1. regular x
[PROOF STEP]
have "... = --(x * top) \<sqinter> --(top * x)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. - - (x * top \<sqinter> top * x) = - - (x * top) \<sqinter> - - (top * x)
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
- - (x * top \<sqinter> top * x) = - - (x * top) \<sqinter> - - (top * x)

goal (1 subgoal):
 1. regular x
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
- - (x * top \<sqinter> top * x) = - - (x * top) \<sqinter> - - (top * x)

goal (1 subgoal):
 1. regular x
[PROOF STEP]
have "... = x * top \<sqinter> top * x"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. - - (x * top) \<sqinter> - - (top * x) = x * top \<sqinter> top * x
[PROOF STEP]
by (metis assms bijective_regular conv_top conv_dist_comp conv_involutive mapping_regular)
[PROOF STATE]
proof (state)
this:
- - (x * top) \<sqinter> - - (top * x) = x * top \<sqinter> top * x

goal (1 subgoal):
 1. regular x
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
- - (x * top) \<sqinter> - - (top * x) = x * top \<sqinter> top * x

goal (1 subgoal):
 1. regular x
[PROOF STEP]
have "... \<le> x * x\<^sup>T * top * x"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. x * top \<sqinter> top * x \<le> x * x\<^sup>T * top * x
[PROOF STEP]
by (metis comp_associative dedekind_1 inf.commute inf_top.right_neutral)
[PROOF STATE]
proof (state)
this:
x * top \<sqinter> top * x \<le> x * x\<^sup>T * top * x

goal (1 subgoal):
 1. regular x
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
x * top \<sqinter> top * x \<le> x * x\<^sup>T * top * x

goal (1 subgoal):
 1. regular x
[PROOF STEP]
have "... \<le> x"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. x * x\<^sup>T * top * x \<le> x
[PROOF STEP]
by (metis assms comp_right_one conv_top comp_associative conv_dist_comp conv_involutive mult_right_isotone vector_top_closed)
[PROOF STATE]
proof (state)
this:
x * x\<^sup>T * top * x \<le> x

goal (1 subgoal):
 1. regular x
[PROOF STEP]
finally
[PROOF STATE]
proof (chain)
picking this:
- - x \<le> x
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
- - x \<le> x

goal (1 subgoal):
 1. regular x
[PROOF STEP]
by (simp add: order.antisym pp_increasing)
[PROOF STATE]
proof (state)
this:
regular x

goal:
No subgoals!
[PROOF STEP]
qed


[STATEMENT]
lemma eheight_Leaf [simp]: "eheight Leaf = 0"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. eheight \<langle>\<rangle> = 0
[PROOF STEP]
by (simp add: eheight_def)


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

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

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

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

goal (1 subgoal):
 1. \<And>n. \<lbrakk>finite P \<Longrightarrow> finite (lists P \<inter> {l. length l = n}); finite P\<rbrakk> \<Longrightarrow> finite (lists P \<inter> {l. length l = Suc n})
[PROOF STEP]
have "lists P \<inter> { l. length l = Suc n }
          = (\<lambda>(a,l). a#l) ` (P \<times> (lists P \<inter> {l. length l = n}))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. lists P \<inter> {l. length l = Suc n} = (\<lambda>(a, l). a # l) ` (P \<times> (lists P \<inter> {l. length l = n}))
[PROOF STEP]
apply auto
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x. \<lbrakk>\<forall>x\<in>set x. x \<in> P; length x = Suc n\<rbrakk> \<Longrightarrow> x \<in> (\<lambda>x. case x of (a, l) \<Rightarrow> a # l) ` (P \<times> (lists P \<inter> {l. length l = n}))
[PROOF STEP]
apply (case_tac x)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<And>x. \<lbrakk>\<forall>x\<in>set x. x \<in> P; length x = Suc n; x = []\<rbrakk> \<Longrightarrow> x \<in> (\<lambda>x. case x of (a, l) \<Rightarrow> a # l) ` (P \<times> (lists P \<inter> {l. length l = n}))
 2. \<And>x a list. \<lbrakk>\<forall>x\<in>set x. x \<in> P; length x = Suc n; x = a # list\<rbrakk> \<Longrightarrow> x \<in> (\<lambda>x. case x of (a, l) \<Rightarrow> a # l) ` (P \<times> (lists P \<inter> {l. length l = n}))
[PROOF STEP]
apply auto
[PROOF STATE]
proof (prove)
goal:
No subgoals!
[PROOF STEP]
done
[PROOF STATE]
proof (state)
this:
lists P \<inter> {l. length l = Suc n} = (\<lambda>(a, l). a # l) ` (P \<times> (lists P \<inter> {l. length l = n}))

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

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

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

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

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

goal:
No subgoals!
[PROOF STEP]
qed


[STATEMENT]
lemma field_differentiable_series:
  fixes f :: "nat \<Rightarrow> 'a::{real_normed_field,banach} \<Rightarrow> 'a"
  assumes "convex S" "open S"
  assumes "\<And>n x. x \<in> S \<Longrightarrow> (f n has_field_derivative f' n x) (at x)"
  assumes "uniformly_convergent_on S (\<lambda>n x. \<Sum>i<n. f' i x)"
  assumes "x0 \<in> S" "summable (\<lambda>n. f n x0)" and x: "x \<in> S"
  shows  "(\<lambda>x. \<Sum>n. f n x) field_differentiable (at x)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<lambda>x. \<Sum>n. f n x) field_differentiable at x
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. (\<lambda>x. \<Sum>n. f n x) field_differentiable at x
[PROOF STEP]
from assms(4)
[PROOF STATE]
proof (chain)
picking this:
uniformly_convergent_on S (\<lambda>n x. \<Sum>i<n. f' i x)
[PROOF STEP]
obtain g' where A: "uniform_limit S (\<lambda>n x. \<Sum>i<n. f' i x) g' sequentially"
[PROOF STATE]
proof (prove)
using this:
uniformly_convergent_on S (\<lambda>n x. \<Sum>i<n. f' i x)

goal (1 subgoal):
 1. (\<And>g'. uniform_limit S (\<lambda>n x. \<Sum>i<n. f' i x) g' sequentially \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
unfolding uniformly_convergent_on_def
[PROOF STATE]
proof (prove)
using this:
\<exists>l. uniform_limit S (\<lambda>n x. \<Sum>i<n. f' i x) l sequentially

goal (1 subgoal):
 1. (\<And>g'. uniform_limit S (\<lambda>n x. \<Sum>i<n. f' i x) g' sequentially \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
uniform_limit S (\<lambda>n x. \<Sum>i<n. f' i x) g' sequentially

goal (1 subgoal):
 1. (\<lambda>x. \<Sum>n. f n x) field_differentiable at x
[PROOF STEP]
from x and \<open>open S\<close>
[PROOF STATE]
proof (chain)
picking this:
x \<in> S
open S
[PROOF STEP]
have S: "at x within S = at x"
[PROOF STATE]
proof (prove)
using this:
x \<in> S
open S

goal (1 subgoal):
 1. at x within S = at x
[PROOF STEP]
by (rule at_within_open)
[PROOF STATE]
proof (state)
this:
at x within S = at x

goal (1 subgoal):
 1. (\<lambda>x. \<Sum>n. f n x) field_differentiable at x
[PROOF STEP]
have "\<exists>g. \<forall>x\<in>S. (\<lambda>n. f n x) sums g x \<and> (g has_field_derivative g' x) (at x within S)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<exists>g. \<forall>x\<in>S. (\<lambda>n. f n x) sums g x \<and> (g has_field_derivative g' x) (at x within S)
[PROOF STEP]
by (intro has_field_derivative_series[of S f f' g' x0] assms A has_field_derivative_at_within)
[PROOF STATE]
proof (state)
this:
\<exists>g. \<forall>x\<in>S. (\<lambda>n. f n x) sums g x \<and> (g has_field_derivative g' x) (at x within S)

goal (1 subgoal):
 1. (\<lambda>x. \<Sum>n. f n x) field_differentiable at x
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
\<exists>g. \<forall>x\<in>S. (\<lambda>n. f n x) sums g x \<and> (g has_field_derivative g' x) (at x within S)
[PROOF STEP]
obtain g where g: "\<And>x. x \<in> S \<Longrightarrow> (\<lambda>n. f n x) sums g x"
    "\<And>x. x \<in> S \<Longrightarrow> (g has_field_derivative g' x) (at x within S)"
[PROOF STATE]
proof (prove)
using this:
\<exists>g. \<forall>x\<in>S. (\<lambda>n. f n x) sums g x \<and> (g has_field_derivative g' x) (at x within S)

goal (1 subgoal):
 1. (\<And>g. \<lbrakk>\<And>x. x \<in> S \<Longrightarrow> (\<lambda>n. f n x) sums g x; \<And>x. x \<in> S \<Longrightarrow> (g has_field_derivative g' x) (at x within S)\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
?x \<in> S \<Longrightarrow> (\<lambda>n. f n ?x) sums g ?x
?x \<in> S \<Longrightarrow> (g has_field_derivative g' ?x) (at ?x within S)

goal (1 subgoal):
 1. (\<lambda>x. \<Sum>n. f n x) field_differentiable at x
[PROOF STEP]
from g(2)[OF x]
[PROOF STATE]
proof (chain)
picking this:
(g has_field_derivative g' x) (at x within S)
[PROOF STEP]
have g': "(g has_derivative (*) (g' x)) (at x)"
[PROOF STATE]
proof (prove)
using this:
(g has_field_derivative g' x) (at x within S)

goal (1 subgoal):
 1. (g has_derivative (*) (g' x)) (at x)
[PROOF STEP]
by (simp add: has_field_derivative_def S)
[PROOF STATE]
proof (state)
this:
(g has_derivative (*) (g' x)) (at x)

goal (1 subgoal):
 1. (\<lambda>x. \<Sum>n. f n x) field_differentiable at x
[PROOF STEP]
have "((\<lambda>x. \<Sum>n. f n x) has_derivative (*) (g' x)) (at x)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. ((\<lambda>x. \<Sum>n. f n x) has_derivative (*) (g' x)) (at x)
[PROOF STEP]
by (rule has_derivative_transform_within_open[OF g' \<open>open S\<close> x])
       (insert g, auto simp: sums_iff)
[PROOF STATE]
proof (state)
this:
((\<lambda>x. \<Sum>n. f n x) has_derivative (*) (g' x)) (at x)

goal (1 subgoal):
 1. (\<lambda>x. \<Sum>n. f n x) field_differentiable at x
[PROOF STEP]
thus "(\<lambda>x. \<Sum>n. f n x) field_differentiable (at x)"
[PROOF STATE]
proof (prove)
using this:
((\<lambda>x. \<Sum>n. f n x) has_derivative (*) (g' x)) (at x)

goal (1 subgoal):
 1. (\<lambda>x. \<Sum>n. f n x) field_differentiable at x
[PROOF STEP]
unfolding differentiable_def
[PROOF STATE]
proof (prove)
using this:
((\<lambda>x. \<Sum>n. f n x) has_derivative (*) (g' x)) (at x)

goal (1 subgoal):
 1. (\<lambda>x. \<Sum>n. f n x) field_differentiable at x
[PROOF STEP]
by (auto simp: summable_def field_differentiable_def has_field_derivative_def)
[PROOF STATE]
proof (state)
this:
(\<lambda>x. \<Sum>n. f n x) field_differentiable at x

goal:
No subgoals!
[PROOF STEP]
qed


[STATEMENT]
lemma llist_all2_lmirror_aux:
  "\<lbrakk> llist_all2 P acc acc'; llist_all2 P xs xs' \<rbrakk>
  \<Longrightarrow> llist_all2 P (lmirror_aux acc xs) (lmirror_aux acc' xs')"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>llist_all2 P acc acc'; llist_all2 P xs xs'\<rbrakk> \<Longrightarrow> llist_all2 P (lmirror_aux acc xs) (lmirror_aux acc' xs')
[PROOF STEP]
by(coinduction arbitrary: acc acc' xs xs')(auto simp add: lhd_lmirror_aux ltl_lmirror_aux elim: llist_all2_lhdD intro!: llist_all2_ltlI exI dest: llist_all2_lnullD)


[STATEMENT]
lemma blaschke_ounit_circle_fix':
  assumes "cmod a < 1"
  shows "moebius_ocircline (blaschke a) ounit_circle = ounit_circle"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. moebius_ocircline (blaschke a) ounit_circle = ounit_circle
[PROOF STEP]
proof-
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. moebius_ocircline (blaschke a) ounit_circle = ounit_circle
[PROOF STEP]
have "Re (a * cnj a) < 1"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. Re (a * cnj a) < 1
[PROOF STEP]
using assms
[PROOF STATE]
proof (prove)
using this:
cmod a < 1

goal (1 subgoal):
 1. Re (a * cnj a) < 1
[PROOF STEP]
by (metis complex_mod_sqrt_Re_mult_cnj real_sqrt_lt_1_iff)
[PROOF STATE]
proof (state)
this:
Re (a * cnj a) < 1

goal (1 subgoal):
 1. moebius_ocircline (blaschke a) ounit_circle = ounit_circle
[PROOF STEP]
thus ?thesis
[PROOF STATE]
proof (prove)
using this:
Re (a * cnj a) < 1

goal (1 subgoal):
 1. moebius_ocircline (blaschke a) ounit_circle = ounit_circle
[PROOF STEP]
using assms
[PROOF STATE]
proof (prove)
using this:
Re (a * cnj a) < 1
cmod a < 1

goal (1 subgoal):
 1. moebius_ocircline (blaschke a) ounit_circle = ounit_circle
[PROOF STEP]
using blaschke_unit_disc_fix unit_disc_fix_iff_ounit_circle
[PROOF STATE]
proof (prove)
using this:
Re (a * cnj a) < 1
cmod a < 1
cmod ?a < 1 \<Longrightarrow> unit_disc_fix (blaschke ?a)
unit_disc_fix ?M = (moebius_ocircline ?M ounit_circle = ounit_circle)

goal (1 subgoal):
 1. moebius_ocircline (blaschke a) ounit_circle = ounit_circle
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
moebius_ocircline (blaschke a) ounit_circle = ounit_circle

goal:
No subgoals!
[PROOF STEP]
qed


[STATEMENT]
lemma closed_fip_Heine_Borel:
  fixes \<F> :: "'a::heine_borel set set"
  assumes "closed S" "T \<in> \<F>" "bounded T"
      and "\<And>T. T \<in> \<F> \<Longrightarrow> closed T"
      and "\<And>\<F>'. \<lbrakk>finite \<F>'; \<F>' \<subseteq> \<F>\<rbrakk> \<Longrightarrow> \<Inter>\<F>' \<noteq> {}"
    shows "\<Inter>\<F> \<noteq> {}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<Inter> \<F> \<noteq> {}
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<Inter> \<F> \<noteq> {}
[PROOF STEP]
have "UNIV \<inter> \<Inter>\<F> \<noteq> {}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. UNIV \<inter> \<Inter> \<F> \<noteq> {}
[PROOF STEP]
using assms closed_imp_fip [OF closed_UNIV]
[PROOF STATE]
proof (prove)
using this:
closed S
T \<in> \<F>
bounded T
?T \<in> \<F> \<Longrightarrow> closed ?T
\<lbrakk>finite ?\<F>'; ?\<F>' \<subseteq> \<F>\<rbrakk> \<Longrightarrow> \<Inter> ?\<F>' \<noteq> {}
\<lbrakk>?T \<in> ?\<F>; bounded ?T; \<And>T. T \<in> ?\<F> \<Longrightarrow> closed T; \<And>\<F>'. \<lbrakk>finite \<F>'; \<F>' \<subseteq> ?\<F>\<rbrakk> \<Longrightarrow> UNIV \<inter> \<Inter> \<F>' \<noteq> {}\<rbrakk> \<Longrightarrow> UNIV \<inter> \<Inter> ?\<F> \<noteq> {}

goal (1 subgoal):
 1. UNIV \<inter> \<Inter> \<F> \<noteq> {}
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
UNIV \<inter> \<Inter> \<F> \<noteq> {}

goal (1 subgoal):
 1. \<Inter> \<F> \<noteq> {}
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
UNIV \<inter> \<Inter> \<F> \<noteq> {}
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
UNIV \<inter> \<Inter> \<F> \<noteq> {}

goal (1 subgoal):
 1. \<Inter> \<F> \<noteq> {}
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
\<Inter> \<F> \<noteq> {}

goal:
No subgoals!
[PROOF STEP]
qed


[STATEMENT]
lemma to_nat_from_nat_id:
  assumes x: "x<CARD('a)"
  shows "to_nat ((from_nat x)::'a) = x"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. mod_type_class.to_nat (mod_type_class.from_nat x) = x
[PROOF STEP]
unfolding to_nat_is_inv[symmetric]
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. the_inv_into {0..<CARD('a)} mod_type_class.from_nat (mod_type_class.from_nat x) = x
[PROOF STEP]
proof (rule the_inv_into_f_f)
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. inj_on mod_type_class.from_nat {0..<CARD('a)}
 2. x \<in> {0..<CARD('a)}
[PROOF STEP]
show "inj_on (from_nat::nat=>'a) {0..<CARD('a)}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. inj_on mod_type_class.from_nat {0..<CARD('a)}
[PROOF STEP]
using bij_from_nat
[PROOF STATE]
proof (prove)
using this:
bij_betw mod_type_class.from_nat {0..<CARD('a)} UNIV

goal (1 subgoal):
 1. inj_on mod_type_class.from_nat {0..<CARD('a)}
[PROOF STEP]
unfolding bij_betw_def
[PROOF STATE]
proof (prove)
using this:
inj_on mod_type_class.from_nat {0..<CARD('a)} \<and> mod_type_class.from_nat ` {0..<CARD('a)} = UNIV

goal (1 subgoal):
 1. inj_on mod_type_class.from_nat {0..<CARD('a)}
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
inj_on mod_type_class.from_nat {0..<CARD('a)}

goal (1 subgoal):
 1. x \<in> {0..<CARD('a)}
[PROOF STEP]
show "x \<in> {0..<CARD('a)}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. x \<in> {0..<CARD('a)}
[PROOF STEP]
using x
[PROOF STATE]
proof (prove)
using this:
x < CARD('a)

goal (1 subgoal):
 1. x \<in> {0..<CARD('a)}
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
x \<in> {0..<CARD('a)}

goal:
No subgoals!
[PROOF STEP]
qed


[STATEMENT]
lemma prefixeq_iprefix_trans: "\<lbrakk> prefix xs ys; ys \<sqsubseteq> f \<rbrakk> \<Longrightarrow> xs \<sqsubseteq> f"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>prefix xs ys; ys \<sqsubseteq> f\<rbrakk> \<Longrightarrow> xs \<sqsubseteq> f
[PROOF STEP]
by (fastforce simp: iprefix_eq_iprefix_take_ex prefix_eq_prefix_take_ex)


[STATEMENT]
lemma restrict_indets_ideal: "restrict_indets ` ideal F = ideal (restrict_indets ` F)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. restrict_indets ` ideal F = ideal (restrict_indets ` F)
[PROOF STEP]
using restrict_indets_plus restrict_indets_times
[PROOF STATE]
proof (prove)
using this:
restrict_indets (?p + ?q) = restrict_indets ?p + restrict_indets ?q
restrict_indets (?p * ?q) = restrict_indets ?p * restrict_indets ?q

goal (1 subgoal):
 1. restrict_indets ` ideal F = ideal (restrict_indets ` F)
[PROOF STEP]
proof (rule image_ideal_eq_surj)
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. surj restrict_indets
[PROOF STEP]
from restrict_extend_indets
[PROOF STATE]
proof (chain)
picking this:
restrict_indets (extend_indets ?p) = ?p
[PROOF STEP]
show "surj restrict_indets"
[PROOF STATE]
proof (prove)
using this:
restrict_indets (extend_indets ?p) = ?p

goal (1 subgoal):
 1. surj restrict_indets
[PROOF STEP]
by (rule surjI)
[PROOF STATE]
proof (state)
this:
surj restrict_indets

goal:
No subgoals!
[PROOF STEP]
qed


[STATEMENT]
lemma lt_1_WtFT[simp]: "WtFT cl \<noteq> 1 \<Longrightarrow> 0 < 1 - WtFT cl"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. WtFT cl \<noteq> 1 \<Longrightarrow> 0 < 1 - WtFT cl
[PROOF STEP]
using le_1_WtFT
[PROOF STATE]
proof (prove)
using this:
0 \<le> 1 - WtFT ?cl

goal (1 subgoal):
 1. WtFT cl \<noteq> 1 \<Longrightarrow> 0 < 1 - WtFT cl
[PROOF STEP]
by (metis le_1_WtFT eq_iff_diff_eq_0 less_eq_real_def)


[STATEMENT]
lemma idx_sequence_idx:
  assumes "idx_sequence idx"
  shows "idx k \<in> {idx k ..< idx (Suc k)}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. idx k \<in> {idx k..<idx (Suc k)}
[PROOF STEP]
using assms
[PROOF STATE]
proof (prove)
using this:
idx_sequence idx

goal (1 subgoal):
 1. idx k \<in> {idx k..<idx (Suc k)}
[PROOF STEP]
by (auto simp add: idx_sequence_def)


[STATEMENT]
lemma finite_csucc: "a \<in> elts \<omega> \<Longrightarrow> csucc a = succ a"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. a \<in> elts \<omega> \<Longrightarrow> csucc a = ZFC_in_HOL.succ a
[PROOF STEP]
unfolding csucc_def
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. a \<in> elts \<omega> \<Longrightarrow> (LEAST \<kappa>'. Ord \<kappa>' \<and> Card \<kappa>' \<and> a < \<kappa>') = ZFC_in_HOL.succ a
[PROOF STEP]
proof (rule Least_equality)
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. a \<in> elts \<omega> \<Longrightarrow> Ord (ZFC_in_HOL.succ a) \<and> Card (ZFC_in_HOL.succ a) \<and> a < ZFC_in_HOL.succ a
 2. \<And>y. \<lbrakk>a \<in> elts \<omega>; Ord y \<and> Card y \<and> a < y\<rbrakk> \<Longrightarrow> ZFC_in_HOL.succ a \<le> y
[PROOF STEP]
show "Ord (ZFC_in_HOL.succ a) \<and> Card (ZFC_in_HOL.succ a) \<and> a < ZFC_in_HOL.succ a"
    if "a \<in> elts \<omega>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. Ord (ZFC_in_HOL.succ a) \<and> Card (ZFC_in_HOL.succ a) \<and> a < ZFC_in_HOL.succ a
[PROOF STEP]
using that
[PROOF STATE]
proof (prove)
using this:
a \<in> elts \<omega>

goal (1 subgoal):
 1. Ord (ZFC_in_HOL.succ a) \<and> Card (ZFC_in_HOL.succ a) \<and> a < ZFC_in_HOL.succ a
[PROOF STEP]
by (auto simp: less_V_def less_eq_V_def nat_into_Card)
[PROOF STATE]
proof (state)
this:
a \<in> elts \<omega> \<Longrightarrow> Ord (ZFC_in_HOL.succ a) \<and> Card (ZFC_in_HOL.succ a) \<and> a < ZFC_in_HOL.succ a

goal (1 subgoal):
 1. \<And>y. \<lbrakk>a \<in> elts \<omega>; Ord y \<and> Card y \<and> a < y\<rbrakk> \<Longrightarrow> ZFC_in_HOL.succ a \<le> y
[PROOF STEP]
show "ZFC_in_HOL.succ a \<le> y"
    if "a \<in> elts \<omega>"
      and "Ord y \<and> Card y \<and> a < y"
    for y :: V
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. ZFC_in_HOL.succ a \<le> y
[PROOF STEP]
using that
[PROOF STATE]
proof (prove)
using this:
a \<in> elts \<omega>
Ord y \<and> Card y \<and> a < y

goal (1 subgoal):
 1. ZFC_in_HOL.succ a \<le> y
[PROOF STEP]
using Ord_mem_iff_lt dual_order.strict_implies_order
[PROOF STATE]
proof (prove)
using this:
a \<in> elts \<omega>
Ord y \<and> Card y \<and> a < y
\<lbrakk>Ord ?k; Ord ?l\<rbrakk> \<Longrightarrow> (?k \<in> elts ?l) = (?k < ?l)
?b < ?a \<Longrightarrow> ?b \<le> ?a

goal (1 subgoal):
 1. ZFC_in_HOL.succ a \<le> y
[PROOF STEP]
by fastforce
[PROOF STATE]
proof (state)
this:
\<lbrakk>a \<in> elts \<omega>; Ord ?y \<and> Card ?y \<and> a < ?y\<rbrakk> \<Longrightarrow> ZFC_in_HOL.succ a \<le> ?y

goal:
No subgoals!
[PROOF STEP]
qed


[STATEMENT]
lemma index_iff[simp]: "x\<in>index f s i \<longleftrightarrow> x\<in>s \<and> f x = i"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (x \<in> index f s i) = (x \<in> s \<and> f x = i)
[PROOF STEP]
by (simp add: index_def)


[STATEMENT]
lemma prime_sum_upto_mono:
  assumes "\<And>n. n > 0 \<Longrightarrow> f n \<ge> (0::real)" "x \<le> y"
  shows   "prime_sum_upto f x \<le> prime_sum_upto f y"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. prime_sum_upto f x \<le> prime_sum_upto f y
[PROOF STEP]
using assms
[PROOF STATE]
proof (prove)
using this:
0 < ?n \<Longrightarrow> 0 \<le> f ?n
x \<le> y

goal (1 subgoal):
 1. prime_sum_upto f x \<le> prime_sum_upto f y
[PROOF STEP]
unfolding prime_sum_upto_altdef1 sum_upto_altdef
[PROOF STATE]
proof (prove)
using this:
0 < ?n \<Longrightarrow> 0 \<le> f ?n
x \<le> y

goal (1 subgoal):
 1. (\<Sum>p\<in>{0<..nat \<lfloor>x\<rfloor>}. ind prime p * f p) \<le> (\<Sum>p\<in>{0<..nat \<lfloor>y\<rfloor>}. ind prime p * f p)
[PROOF STEP]
by (intro sum_mono2) (auto simp: le_nat_iff' le_floor_iff ind_def)


[STATEMENT]
lemma reflp_joinablep: "reflp P \<Longrightarrow> reflp (joinablep P)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. reflp P \<Longrightarrow> reflp (joinablep P)
[PROOF STEP]
by (blast intro: reflpI joinable_refl[to_pred] refl_onI[to_pred] dest: reflpD)


[STATEMENT]
lemma (in linearform) diff [iff]:
  assumes "vectorspace V"
  shows "x \<in> V \<Longrightarrow> y \<in> V \<Longrightarrow> f (x - y) = f x - f y"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>x \<in> V; y \<in> V\<rbrakk> \<Longrightarrow> f (x - y) = f x - f y
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<lbrakk>x \<in> V; y \<in> V\<rbrakk> \<Longrightarrow> f (x - y) = f x - f y
[PROOF STEP]
interpret vectorspace V
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. vectorspace V
[PROOF STEP]
by fact
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<lbrakk>x \<in> V; y \<in> V\<rbrakk> \<Longrightarrow> f (x - y) = f x - f y
[PROOF STEP]
assume x: "x \<in> V" and y: "y \<in> V"
[PROOF STATE]
proof (state)
this:
x \<in> V
y \<in> V

goal (1 subgoal):
 1. \<lbrakk>x \<in> V; y \<in> V\<rbrakk> \<Longrightarrow> f (x - y) = f x - f y
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
x \<in> V
y \<in> V
[PROOF STEP]
have "x - y = x + - y"
[PROOF STATE]
proof (prove)
using this:
x \<in> V
y \<in> V

goal (1 subgoal):
 1. x - y = x + - y
[PROOF STEP]
by (rule diff_eq1)
[PROOF STATE]
proof (state)
this:
x - y = x + - y

goal (1 subgoal):
 1. \<lbrakk>x \<in> V; y \<in> V\<rbrakk> \<Longrightarrow> f (x - y) = f x - f y
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
x - y = x + - y

goal (1 subgoal):
 1. \<lbrakk>x \<in> V; y \<in> V\<rbrakk> \<Longrightarrow> f (x - y) = f x - f y
[PROOF STEP]
have "f \<dots> = f x + f (- y)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. f (x + - y) = f x + f (- y)
[PROOF STEP]
by (rule add) (simp_all add: x y)
[PROOF STATE]
proof (state)
this:
f (x + - y) = f x + f (- y)

goal (1 subgoal):
 1. \<lbrakk>x \<in> V; y \<in> V\<rbrakk> \<Longrightarrow> f (x - y) = f x - f y
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
f (x + - y) = f x + f (- y)

goal (1 subgoal):
 1. \<lbrakk>x \<in> V; y \<in> V\<rbrakk> \<Longrightarrow> f (x - y) = f x - f y
[PROOF STEP]
have "f (- y) = - f y"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. f (- y) = - f y
[PROOF STEP]
using \<open>vectorspace V\<close> y
[PROOF STATE]
proof (prove)
using this:
vectorspace V
y \<in> V

goal (1 subgoal):
 1. f (- y) = - f y
[PROOF STEP]
by (rule neg)
[PROOF STATE]
proof (state)
this:
f (- y) = - f y

goal (1 subgoal):
 1. \<lbrakk>x \<in> V; y \<in> V\<rbrakk> \<Longrightarrow> f (x - y) = f x - f y
[PROOF STEP]
finally
[PROOF STATE]
proof (chain)
picking this:
f (x - y) = f x + - f y
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
f (x - y) = f x + - f y

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

goal:
No subgoals!
[PROOF STEP]
qed


[STATEMENT]
lemma perp2_comm:
  assumes "P Perp2 A B C D"
  shows "P Perp2 B A D C"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. P Perp2 B A D C
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. P Perp2 B A D C
[PROOF STEP]
obtain X Y where "Col P X Y \<and> X Y Perp A B \<and> X Y Perp C D"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<And>X Y. Col P X Y \<and> X Y Perp A B \<and> X Y Perp C D \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
using Perp2_def assms
[PROOF STATE]
proof (prove)
using this:
?P Perp2 ?A ?B ?C ?D \<equiv> \<exists>X Y. Col ?P X Y \<and> X Y Perp ?A ?B \<and> X Y Perp ?C ?D
P Perp2 A B C D

goal (1 subgoal):
 1. (\<And>X Y. Col P X Y \<and> X Y Perp A B \<and> X Y Perp C D \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
Col P X Y \<and> X Y Perp A B \<and> X Y Perp C D

goal (1 subgoal):
 1. P Perp2 B A D C
[PROOF STEP]
thus ?thesis
[PROOF STATE]
proof (prove)
using this:
Col P X Y \<and> X Y Perp A B \<and> X Y Perp C D

goal (1 subgoal):
 1. P Perp2 B A D C
[PROOF STEP]
using assms perp2_left_comm perp2_right_comm
[PROOF STATE]
proof (prove)
using this:
Col P X Y \<and> X Y Perp A B \<and> X Y Perp C D
P Perp2 A B C D
?P Perp2 ?A ?B ?C ?D \<Longrightarrow> ?P Perp2 ?B ?A ?C ?D
?P Perp2 ?A ?B ?C ?D \<Longrightarrow> ?P Perp2 ?A ?B ?D ?C

goal (1 subgoal):
 1. P Perp2 B A D C
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
P Perp2 B A D C

goal:
No subgoals!
[PROOF STEP]
qed


[STATEMENT]
lemma sym_derive_design_bibd:
  assumes "\<Lambda> > 1"
  shows "bibd bl \<B>\<^sup>D \<Lambda> (\<Lambda> - 1)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. bibd bl \<B>\<^sup>D \<Lambda> (\<Lambda> - 1)
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. bibd bl \<B>\<^sup>D \<Lambda> (\<Lambda> - 1)
[PROOF STEP]
interpret des: proper_design bl "\<B>\<^sup>D"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. proper_design bl \<B>\<^sup>D
[PROOF STEP]
using derived_is_proper assms valid_block
[PROOF STATE]
proof (prove)
using this:
(\<And>b. b \<in># remove1_mset bl \<B> \<Longrightarrow> 0 < bl |\<inter>| b) \<Longrightarrow> proper_design bl \<B>\<^sup>D
1 < \<Lambda>
bl \<in># \<B>

goal (1 subgoal):
 1. proper_design bl \<B>\<^sup>D
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. bibd bl \<B>\<^sup>D \<Lambda> (\<Lambda> - 1)
[PROOF STEP]
have "\<Lambda> < \<k>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<Lambda> < \<k>
[PROOF STEP]
using index_lt_replication rep_value_sym
[PROOF STATE]
proof (prove)
using this:
\<Lambda> < \<r>
\<r> = \<k>

goal (1 subgoal):
 1. \<Lambda> < \<k>
[PROOF STEP]
by linarith
[PROOF STATE]
proof (state)
this:
\<Lambda> < \<k>

goal (1 subgoal):
 1. bibd bl \<B>\<^sup>D \<Lambda> (\<Lambda> - 1)
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
\<Lambda> < \<k>
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
\<Lambda> < \<k>

goal (1 subgoal):
 1. bibd bl \<B>\<^sup>D \<Lambda> (\<Lambda> - 1)
[PROOF STEP]
using derived_block_size assms derived_points_index derived_points_order
[PROOF STATE]
proof (prove)
using this:
\<Lambda> < \<k>
?b \<in># \<B>\<^sup>D \<Longrightarrow> card ?b = \<Lambda>
1 < \<Lambda>
\<lbrakk>?ps \<subseteq> bl; card ?ps = 2\<rbrakk> \<Longrightarrow> \<B>\<^sup>D index ?ps = \<Lambda> - 1
derived_incidence_sys.\<v> = \<k>

goal (1 subgoal):
 1. bibd bl \<B>\<^sup>D \<Lambda> (\<Lambda> - 1)
[PROOF STEP]
by (unfold_locales) (simp_all)
[PROOF STATE]
proof (state)
this:
bibd bl \<B>\<^sup>D \<Lambda> (\<Lambda> - 1)

goal:
No subgoals!
[PROOF STEP]
qed


[STATEMENT]
lemma triangle_set_graph_edge_ss:
  assumes "E' \<subseteq> E"
  shows "(sgraph.triangle_set E') \<subseteq> (triangle_set)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. sgraph.triangle_set E' \<subseteq> triangle_set
[PROOF STEP]
proof (intro subsetI)
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>x. x \<in> sgraph.triangle_set E' \<Longrightarrow> x \<in> triangle_set
[PROOF STEP]
interpret gnew: sgraph V E'
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. sgraph V E'
[PROOF STEP]
using assms wellformed two_edges
[PROOF STATE]
proof (prove)
using this:
E' \<subseteq> E
?e \<in> E \<Longrightarrow> ?e \<subseteq> V
?e \<in> E \<Longrightarrow> card ?e = 2

goal (1 subgoal):
 1. sgraph V E'
[PROOF STEP]
by (unfold_locales) auto
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>x. x \<in> gnew.triangle_set \<Longrightarrow> x \<in> triangle_set
[PROOF STEP]
fix t
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>x. x \<in> gnew.triangle_set \<Longrightarrow> x \<in> triangle_set
[PROOF STEP]
assume "t \<in> gnew.triangle_set"
[PROOF STATE]
proof (state)
this:
t \<in> gnew.triangle_set

goal (1 subgoal):
 1. \<And>x. x \<in> gnew.triangle_set \<Longrightarrow> x \<in> triangle_set
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
t \<in> gnew.triangle_set
[PROOF STEP]
obtain x y z where "t = {x,y,z}" and "gnew.triangle_in_graph x y z"
[PROOF STATE]
proof (prove)
using this:
t \<in> gnew.triangle_set

goal (1 subgoal):
 1. (\<And>x y z. \<lbrakk>t = {x, y, z}; gnew.triangle_in_graph x y z\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
using gnew.triangle_set_def assms mem_Collect_eq
[PROOF STATE]
proof (prove)
using this:
t \<in> gnew.triangle_set
gnew.triangle_set \<equiv> {{x, y, z} |x y z. gnew.triangle_in_graph x y z}
E' \<subseteq> E
(?a \<in> Collect ?P) = ?P ?a

goal (1 subgoal):
 1. (\<And>x y z. \<lbrakk>t = {x, y, z}; gnew.triangle_in_graph x y z\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
t = {x, y, z}
gnew.triangle_in_graph x y z

goal (1 subgoal):
 1. \<And>x. x \<in> gnew.triangle_set \<Longrightarrow> x \<in> triangle_set
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
t = {x, y, z}
gnew.triangle_in_graph x y z
[PROOF STEP]
have "triangle_in_graph x y z"
[PROOF STATE]
proof (prove)
using this:
t = {x, y, z}
gnew.triangle_in_graph x y z

goal (1 subgoal):
 1. triangle_in_graph x y z
[PROOF STEP]
using assms triangle_in_graph_ss
[PROOF STATE]
proof (prove)
using this:
t = {x, y, z}
gnew.triangle_in_graph x y z
E' \<subseteq> E
\<lbrakk>?E' \<subseteq> E; sgraph.triangle_in_graph ?E' ?x ?y ?z\<rbrakk> \<Longrightarrow> triangle_in_graph ?x ?y ?z

goal (1 subgoal):
 1. triangle_in_graph x y z
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
triangle_in_graph x y z

goal (1 subgoal):
 1. \<And>x. x \<in> gnew.triangle_set \<Longrightarrow> x \<in> triangle_set
[PROOF STEP]
thus "t \<in> triangle_set"
[PROOF STATE]
proof (prove)
using this:
triangle_in_graph x y z

goal (1 subgoal):
 1. t \<in> triangle_set
[PROOF STEP]
using triangle_set_def assms
[PROOF STATE]
proof (prove)
using this:
triangle_in_graph x y z
triangle_set \<equiv> {{x, y, z} |x y z. triangle_in_graph x y z}
E' \<subseteq> E

goal (1 subgoal):
 1. t \<in> triangle_set
[PROOF STEP]
using \<open>t = {x,y,z}\<close>
[PROOF STATE]
proof (prove)
using this:
triangle_in_graph x y z
triangle_set \<equiv> {{x, y, z} |x y z. triangle_in_graph x y z}
E' \<subseteq> E
t = {x, y, z}

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

goal:
No subgoals!
[PROOF STEP]
qed


[STATEMENT]
lemma poincare_map_returns:
  assumes "returns_to P x" "closed P"
  shows "poincare_map P x \<in> P"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. poincare_map P x \<in> P
[PROOF STEP]
by (auto intro!: return_time_returns assms simp: poincare_map_def)


[STATEMENT]
lemma eq_2_32_0:
  "(2 ^ 32 :: word32) = 0"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. 2 ^ 32 = 0
[PROOF STEP]
by simp


[STATEMENT]
lemma odd_Numeral1: "odd (Numeral1)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. odd Numeral1
[PROOF STEP]
by simp


[STATEMENT]
lemma (in is_cat_coequalizer) cat_coeq_unique:
  assumes "\<epsilon>' : (\<aa>,\<bb>,F,F') >\<^sub>C\<^sub>F\<^sub>.\<^sub>c\<^sub>o\<^sub>e\<^sub>q E' : \<Up>\<^sub>C \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<CC>"
  shows "\<exists>!f'.
    f' : E \<mapsto>\<^bsub>\<CC>\<^esub> E' \<and> \<epsilon>' = ntcf_const (\<Up>\<^sub>C (\<bb>\<^sub>P\<^sub>L F) (\<aa>\<^sub>P\<^sub>L F) F) \<CC> f' \<bullet>\<^sub>N\<^sub>T\<^sub>C\<^sub>F \<epsilon>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<exists>!f'. f' : E \<mapsto>\<^bsub>\<CC>\<^esub> E' \<and> \<epsilon>' = ntcf_const (\<Up>\<^sub>C (\<bb>\<^sub>P\<^sub>L F) (\<aa>\<^sub>P\<^sub>L F) F) \<CC> f' \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F \<epsilon>
[PROOF STEP]
by (rule cat_colim_unique[OF is_cat_coequalizerD(1)[OF assms]])


[STATEMENT]
lemma (in aGroup) nsum_add_nmTr:
  "(\<forall>j \<le> n. f j \<in> carrier A) \<and> (\<forall>j \<le> m. g j \<in> carrier A) \<longrightarrow>
   nsum A (jointfun n f m g) (Suc (n + m)) = (nsum A f n) \<plusminus> (nsum A g m)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<forall>j\<le>n. f j \<in> carrier A) \<and> (\<forall>j\<le>m. g j \<in> carrier A) \<longrightarrow> \<Sigma>\<^sub>e A jointfun n f m g Suc (n + m) = \<Sigma>\<^sub>e A f n \<plusminus> \<Sigma>\<^sub>e A g m
[PROOF STEP]
apply (induct_tac m)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. (\<forall>j\<le>n. f j \<in> carrier A) \<and> (\<forall>j\<le>0. g j \<in> carrier A) \<longrightarrow> \<Sigma>\<^sub>e A jointfun n f 0 g Suc (n + 0) = \<Sigma>\<^sub>e A f n \<plusminus> \<Sigma>\<^sub>e A g 0
 2. \<And>na. (\<forall>j\<le>n. f j \<in> carrier A) \<and> (\<forall>j\<le>na. g j \<in> carrier A) \<longrightarrow> \<Sigma>\<^sub>e A jointfun n f na g Suc (n + na) = \<Sigma>\<^sub>e A f n \<plusminus> \<Sigma>\<^sub>e A g na \<Longrightarrow> (\<forall>j\<le>n. f j \<in> carrier A) \<and> (\<forall>j\<le>Suc na. g j \<in> carrier A) \<longrightarrow> \<Sigma>\<^sub>e A jointfun n f (Suc na) g Suc (n + Suc na) = \<Sigma>\<^sub>e A f n \<plusminus> \<Sigma>\<^sub>e A g Suc na
[PROOF STEP]
apply (simp add:jointfun_def sliden_def)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. (\<forall>j\<le>n. f j \<in> carrier A) \<and> g 0 \<in> carrier A \<longrightarrow> \<Sigma>\<^sub>e A (\<lambda>a. if a \<le> n then f a else g (sliden (Suc n) a)) n \<plusminus> g 0 = \<Sigma>\<^sub>e A f n \<plusminus> g 0
 2. \<And>na. (\<forall>j\<le>n. f j \<in> carrier A) \<and> (\<forall>j\<le>na. g j \<in> carrier A) \<longrightarrow> \<Sigma>\<^sub>e A jointfun n f na g Suc (n + na) = \<Sigma>\<^sub>e A f n \<plusminus> \<Sigma>\<^sub>e A g na \<Longrightarrow> (\<forall>j\<le>n. f j \<in> carrier A) \<and> (\<forall>j\<le>Suc na. g j \<in> carrier A) \<longrightarrow> \<Sigma>\<^sub>e A jointfun n f (Suc na) g Suc (n + Suc na) = \<Sigma>\<^sub>e A f n \<plusminus> \<Sigma>\<^sub>e A g Suc na
[PROOF STEP]
apply (rule impI)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. (\<forall>j\<le>n. f j \<in> carrier A) \<and> g 0 \<in> carrier A \<Longrightarrow> \<Sigma>\<^sub>e A (\<lambda>a. if a \<le> n then f a else g (sliden (Suc n) a)) n \<plusminus> g 0 = \<Sigma>\<^sub>e A f n \<plusminus> g 0
 2. \<And>na. (\<forall>j\<le>n. f j \<in> carrier A) \<and> (\<forall>j\<le>na. g j \<in> carrier A) \<longrightarrow> \<Sigma>\<^sub>e A jointfun n f na g Suc (n + na) = \<Sigma>\<^sub>e A f n \<plusminus> \<Sigma>\<^sub>e A g na \<Longrightarrow> (\<forall>j\<le>n. f j \<in> carrier A) \<and> (\<forall>j\<le>Suc na. g j \<in> carrier A) \<longrightarrow> \<Sigma>\<^sub>e A jointfun n f (Suc na) g Suc (n + Suc na) = \<Sigma>\<^sub>e A f n \<plusminus> \<Sigma>\<^sub>e A g Suc na
[PROOF STEP]
apply (rule ag_pOp_add_r)
[PROOF STATE]
proof (prove)
goal (5 subgoals):
 1. (\<forall>j\<le>n. f j \<in> carrier A) \<and> g 0 \<in> carrier A \<Longrightarrow> \<Sigma>\<^sub>e A (\<lambda>a. if a \<le> n then f a else g (sliden (Suc n) a)) n \<in> carrier A
 2. (\<forall>j\<le>n. f j \<in> carrier A) \<and> g 0 \<in> carrier A \<Longrightarrow> \<Sigma>\<^sub>e A f n \<in> carrier A
 3. (\<forall>j\<le>n. f j \<in> carrier A) \<and> g 0 \<in> carrier A \<Longrightarrow> g 0 \<in> carrier A
 4. (\<forall>j\<le>n. f j \<in> carrier A) \<and> g 0 \<in> carrier A \<Longrightarrow> \<Sigma>\<^sub>e A (\<lambda>a. if a \<le> n then f a else g (sliden (Suc n) a)) n = \<Sigma>\<^sub>e A f n
 5. \<And>na. (\<forall>j\<le>n. f j \<in> carrier A) \<and> (\<forall>j\<le>na. g j \<in> carrier A) \<longrightarrow> \<Sigma>\<^sub>e A jointfun n f na g Suc (n + na) = \<Sigma>\<^sub>e A f n \<plusminus> \<Sigma>\<^sub>e A g na \<Longrightarrow> (\<forall>j\<le>n. f j \<in> carrier A) \<and> (\<forall>j\<le>Suc na. g j \<in> carrier A) \<longrightarrow> \<Sigma>\<^sub>e A jointfun n f (Suc na) g Suc (n + Suc na) = \<Sigma>\<^sub>e A f n \<plusminus> \<Sigma>\<^sub>e A g Suc na
[PROOF STEP]
apply (rule nsum_mem, rule allI, erule conjE, rule impI, simp)
[PROOF STATE]
proof (prove)
goal (4 subgoals):
 1. (\<forall>j\<le>n. f j \<in> carrier A) \<and> g 0 \<in> carrier A \<Longrightarrow> \<Sigma>\<^sub>e A f n \<in> carrier A
 2. (\<forall>j\<le>n. f j \<in> carrier A) \<and> g 0 \<in> carrier A \<Longrightarrow> g 0 \<in> carrier A
 3. (\<forall>j\<le>n. f j \<in> carrier A) \<and> g 0 \<in> carrier A \<Longrightarrow> \<Sigma>\<^sub>e A (\<lambda>a. if a \<le> n then f a else g (sliden (Suc n) a)) n = \<Sigma>\<^sub>e A f n
 4. \<And>na. (\<forall>j\<le>n. f j \<in> carrier A) \<and> (\<forall>j\<le>na. g j \<in> carrier A) \<longrightarrow> \<Sigma>\<^sub>e A jointfun n f na g Suc (n + na) = \<Sigma>\<^sub>e A f n \<plusminus> \<Sigma>\<^sub>e A g na \<Longrightarrow> (\<forall>j\<le>n. f j \<in> carrier A) \<and> (\<forall>j\<le>Suc na. g j \<in> carrier A) \<longrightarrow> \<Sigma>\<^sub>e A jointfun n f (Suc na) g Suc (n + Suc na) = \<Sigma>\<^sub>e A f n \<plusminus> \<Sigma>\<^sub>e A g Suc na
[PROOF STEP]
apply (erule conjE, simp add:nsum_mem, simp)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. (\<forall>j\<le>n. f j \<in> carrier A) \<and> g 0 \<in> carrier A \<Longrightarrow> \<Sigma>\<^sub>e A (\<lambda>a. if a \<le> n then f a else g (sliden (Suc n) a)) n = \<Sigma>\<^sub>e A f n
 2. \<And>na. (\<forall>j\<le>n. f j \<in> carrier A) \<and> (\<forall>j\<le>na. g j \<in> carrier A) \<longrightarrow> \<Sigma>\<^sub>e A jointfun n f na g Suc (n + na) = \<Sigma>\<^sub>e A f n \<plusminus> \<Sigma>\<^sub>e A g na \<Longrightarrow> (\<forall>j\<le>n. f j \<in> carrier A) \<and> (\<forall>j\<le>Suc na. g j \<in> carrier A) \<longrightarrow> \<Sigma>\<^sub>e A jointfun n f (Suc na) g Suc (n + Suc na) = \<Sigma>\<^sub>e A f n \<plusminus> \<Sigma>\<^sub>e A g Suc na
[PROOF STEP]
apply (rule nsum_eq[of n], simp+)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>na. (\<forall>j\<le>n. f j \<in> carrier A) \<and> (\<forall>j\<le>na. g j \<in> carrier A) \<longrightarrow> \<Sigma>\<^sub>e A jointfun n f na g (n + na) \<plusminus> jointfun n f na g (Suc (n + na)) = \<Sigma>\<^sub>e A f n \<plusminus> \<Sigma>\<^sub>e A g na \<Longrightarrow> (\<forall>j\<le>n. f j \<in> carrier A) \<and> (\<forall>j\<le>Suc na. g j \<in> carrier A) \<longrightarrow> \<Sigma>\<^sub>e A jointfun n f (Suc na) g (n + na) \<plusminus> jointfun n f (Suc na) g (Suc (n + na)) \<plusminus> jointfun n f (Suc na) g (Suc (Suc (n + na))) = \<Sigma>\<^sub>e A f n \<plusminus> (\<Sigma>\<^sub>e A g na \<plusminus> g (Suc na))
[PROOF STEP]
apply (simp add:jointfun_def)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>na. (\<forall>j\<le>n. f j \<in> carrier A) \<and> (\<forall>j\<le>na. g j \<in> carrier A) \<longrightarrow> \<Sigma>\<^sub>e A (\<lambda>i. if i \<le> n then f i else g (sliden (Suc n) i)) (n + na) \<plusminus> g (sliden (Suc n) (Suc (n + na))) = \<Sigma>\<^sub>e A f n \<plusminus> \<Sigma>\<^sub>e A g na \<Longrightarrow> (\<forall>j\<le>n. f j \<in> carrier A) \<and> (\<forall>j\<le>Suc na. g j \<in> carrier A) \<longrightarrow> \<Sigma>\<^sub>e A f n \<plusminus> \<Sigma>\<^sub>e A g na \<plusminus> g (sliden (Suc n) (Suc (Suc (n + na)))) = \<Sigma>\<^sub>e A f n \<plusminus> (\<Sigma>\<^sub>e A g na \<plusminus> g (Suc na))
[PROOF STEP]
apply (rule impI, simp)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>na. \<lbrakk>\<Sigma>\<^sub>e A (\<lambda>i. if i \<le> n then f i else g (sliden (Suc n) i)) (n + na) \<plusminus> g (sliden (Suc n) (Suc (n + na))) = \<Sigma>\<^sub>e A f n \<plusminus> \<Sigma>\<^sub>e A g na; (\<forall>j\<le>n. f j \<in> carrier A) \<and> (\<forall>j\<le>Suc na. g j \<in> carrier A)\<rbrakk> \<Longrightarrow> \<Sigma>\<^sub>e A f n \<plusminus> \<Sigma>\<^sub>e A g na \<plusminus> g (sliden (Suc n) (Suc (Suc (n + na)))) = \<Sigma>\<^sub>e A f n \<plusminus> (\<Sigma>\<^sub>e A g na \<plusminus> g (Suc na))
[PROOF STEP]
apply (erule conjE, simp add:sliden_def)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>na. \<lbrakk>\<Sigma>\<^sub>e A (\<lambda>i. if i \<le> n then f i else g (sliden (Suc n) i)) (n + na) \<plusminus> g na = \<Sigma>\<^sub>e A f n \<plusminus> \<Sigma>\<^sub>e A g na; \<forall>j\<le>n. f j \<in> carrier A; \<forall>j\<le>Suc na. g j \<in> carrier A\<rbrakk> \<Longrightarrow> \<Sigma>\<^sub>e A f n \<plusminus> \<Sigma>\<^sub>e A g na \<plusminus> g (Suc na) = \<Sigma>\<^sub>e A f n \<plusminus> (\<Sigma>\<^sub>e A g na \<plusminus> g (Suc na))
[PROOF STEP]
apply (thin_tac "\<Sigma>\<^sub>e A (\<lambda>i. if i \<le> n then f i else g (sliden (Suc n) i))
        (n + na) \<plusminus> g na = \<Sigma>\<^sub>e A f n \<plusminus> \<Sigma>\<^sub>e A g na")
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>na. \<lbrakk>\<forall>j\<le>n. f j \<in> carrier A; \<forall>j\<le>Suc na. g j \<in> carrier A\<rbrakk> \<Longrightarrow> \<Sigma>\<^sub>e A f n \<plusminus> \<Sigma>\<^sub>e A g na \<plusminus> g (Suc na) = \<Sigma>\<^sub>e A f n \<plusminus> (\<Sigma>\<^sub>e A g na \<plusminus> g (Suc na))
[PROOF STEP]
apply (subst ag_pOp_assoc)
[PROOF STATE]
proof (prove)
goal (4 subgoals):
 1. \<And>na. \<lbrakk>\<forall>j\<le>n. f j \<in> carrier A; \<forall>j\<le>Suc na. g j \<in> carrier A\<rbrakk> \<Longrightarrow> \<Sigma>\<^sub>e A f n \<in> carrier A
 2. \<And>na. \<lbrakk>\<forall>j\<le>n. f j \<in> carrier A; \<forall>j\<le>Suc na. g j \<in> carrier A\<rbrakk> \<Longrightarrow> \<Sigma>\<^sub>e A g na \<in> carrier A
 3. \<And>na. \<lbrakk>\<forall>j\<le>n. f j \<in> carrier A; \<forall>j\<le>Suc na. g j \<in> carrier A\<rbrakk> \<Longrightarrow> g (Suc na) \<in> carrier A
 4. \<And>na. \<lbrakk>\<forall>j\<le>n. f j \<in> carrier A; \<forall>j\<le>Suc na. g j \<in> carrier A\<rbrakk> \<Longrightarrow> \<Sigma>\<^sub>e A f n \<plusminus> (\<Sigma>\<^sub>e A g na \<plusminus> g (Suc na)) = \<Sigma>\<^sub>e A f n \<plusminus> (\<Sigma>\<^sub>e A g na \<plusminus> g (Suc na))
[PROOF STEP]
apply (simp add:nsum_mem)
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. \<And>na. \<lbrakk>\<forall>j\<le>n. f j \<in> carrier A; \<forall>j\<le>Suc na. g j \<in> carrier A\<rbrakk> \<Longrightarrow> \<Sigma>\<^sub>e A g na \<in> carrier A
 2. \<And>na. \<lbrakk>\<forall>j\<le>n. f j \<in> carrier A; \<forall>j\<le>Suc na. g j \<in> carrier A\<rbrakk> \<Longrightarrow> g (Suc na) \<in> carrier A
 3. \<And>na. \<lbrakk>\<forall>j\<le>n. f j \<in> carrier A; \<forall>j\<le>Suc na. g j \<in> carrier A\<rbrakk> \<Longrightarrow> \<Sigma>\<^sub>e A f n \<plusminus> (\<Sigma>\<^sub>e A g na \<plusminus> g (Suc na)) = \<Sigma>\<^sub>e A f n \<plusminus> (\<Sigma>\<^sub>e A g na \<plusminus> g (Suc na))
[PROOF STEP]
apply (simp add:nsum_mem, simp)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>na. \<lbrakk>\<forall>j\<le>n. f j \<in> carrier A; \<forall>j\<le>Suc na. g j \<in> carrier A\<rbrakk> \<Longrightarrow> \<Sigma>\<^sub>e A f n \<plusminus> (\<Sigma>\<^sub>e A g na \<plusminus> g (Suc na)) = \<Sigma>\<^sub>e A f n \<plusminus> (\<Sigma>\<^sub>e A g na \<plusminus> g (Suc na))
[PROOF STEP]
apply simp
[PROOF STATE]
proof (prove)
goal:
No subgoals!
[PROOF STEP]
done


[STATEMENT]
lemma extended_Gromov_product_boundary_inside_aux:
  assumes "y \<in> Gromov_boundary"
  shows "extended_Gromov_product_at e y (to_Gromov_completion x) = Inf {liminf (\<lambda>n. ereal(Gromov_product_at e (v n) x)) |v. (\<lambda>n. to_Gromov_completion (v n)) \<longlonglongrightarrow> y}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. extended_Gromov_product_at e y (to_Gromov_completion x) = Inf {liminf (\<lambda>n. ereal (Gromov_product_at e (v n) x)) |v. (\<lambda>n. to_Gromov_completion (v n)) \<longlonglongrightarrow> y}
[PROOF STEP]
using extended_Gromov_product_inside_boundary_aux[OF assms]
[PROOF STATE]
proof (prove)
using this:
extended_Gromov_product_at ?e (to_Gromov_completion ?x) y = Inf {liminf (\<lambda>n. ereal (Gromov_product_at ?e ?x (v n))) |v. (\<lambda>n. to_Gromov_completion (v n)) \<longlonglongrightarrow> y}

goal (1 subgoal):
 1. extended_Gromov_product_at e y (to_Gromov_completion x) = Inf {liminf (\<lambda>n. ereal (Gromov_product_at e (v n) x)) |v. (\<lambda>n. to_Gromov_completion (v n)) \<longlonglongrightarrow> y}
[PROOF STEP]
by (simp add: extended_Gromov_product_at_commute Gromov_product_commute)


[STATEMENT]
lemma p_or_not_p: "(P \<or> \<not> P) = true"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (P \<or> \<not> P) = true
[PROOF STEP]
by (rule ext) blast


[STATEMENT]
lemma nrows_transpose: "nrows (transpose A) = ncols A"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. nrows (Finite_Cartesian_Product.transpose A) = ncols A
[PROOF STEP]
unfolding nrows_def ncols_def
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. CARD('c) = CARD('c)
[PROOF STEP]
..


[STATEMENT]
lemma enat_less_enat_plusI: "x < y \<Longrightarrow> enat x < enat y + z"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. x < y \<Longrightarrow> enat x < enat y + z
[PROOF STEP]
by(cases z) simp_all


[STATEMENT]
lemma find_base_vector_not_1:
    "find_base_vector A \<in> carrier_vec n"
    "find_base_vector A \<noteq> 0\<^sub>v n"
    "A *\<^sub>v find_base_vector A = 0\<^sub>v n"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. find_base_vector A \<in> carrier_vec n &&& find_base_vector A \<noteq> 0\<^sub>v n &&& A *\<^sub>v find_base_vector A = 0\<^sub>v n
[PROOF STEP]
using find_base_vector[OF ref A find_base_vector_not_1_pivot_positions]
[PROOF STATE]
proof (prove)
using this:
find_base_vector A \<in> carrier_vec n
find_base_vector A \<noteq> 0\<^sub>v n
A *\<^sub>v find_base_vector A = 0\<^sub>v n

goal (1 subgoal):
 1. find_base_vector A \<in> carrier_vec n &&& find_base_vector A \<noteq> 0\<^sub>v n &&& A *\<^sub>v find_base_vector A = 0\<^sub>v n
[PROOF STEP]
.


[STATEMENT]
lemma brnL_pickFT_BrnFT[simp]:
assumes "properL cl" and "WtFT cl = 1"
shows "brnL cl (pickFT cl) \<in> BrnFT cl dl"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. brnL cl (pickFT cl) \<in> BrnFT cl dl
[PROOF STEP]
using assms brn_gt_0_L
[PROOF STATE]
proof (prove)
using this:
properL cl
WtFT cl = 1
\<lbrakk>properL ?cl; ?c \<in> set ?cl\<rbrakk> \<Longrightarrow> 0 < brn ?c

goal (1 subgoal):
 1. brnL cl (pickFT cl) \<in> BrnFT cl dl
[PROOF STEP]
unfolding BrnFT_def
[PROOF STATE]
proof (prove)
using this:
properL cl
WtFT cl = 1
\<lbrakk>properL ?cl; ?c \<in> set ?cl\<rbrakk> \<Longrightarrow> 0 < brn ?c

goal (1 subgoal):
 1. brnL cl (pickFT cl) \<in> (\<Union>n\<in>theFTOne cl dl. {brnL cl n..<brnL cl n + brn (cl ! n)})
[PROOF STEP]
by auto


[STATEMENT]
lemma set_pmf_binomial[simp]: "0 < p \<Longrightarrow> p < 1 \<Longrightarrow> set_pmf (binomial_pmf n p) = {..n}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>0 < p; p < 1\<rbrakk> \<Longrightarrow> set_pmf (binomial_pmf n p) = {..n}
[PROOF STEP]
by (simp add: set_pmf_binomial_eq)


[STATEMENT]
lemma inheritedUNEq[rule_format]:
  "finite A --> inherited subs P --> (!x:A. P (B x)) = P (UN a:A. B a)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. finite A \<longrightarrow> inherited subs P \<longrightarrow> (\<forall>x\<in>A. P (B x)) = P (\<Union> (B ` A))
[PROOF STEP]
apply(intro impI)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>finite A; inherited subs P\<rbrakk> \<Longrightarrow> (\<forall>x\<in>A. P (B x)) = P (\<Union> (B ` A))
[PROOF STEP]
apply(erule finite_induct)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. inherited subs P \<Longrightarrow> (\<forall>x\<in>{}. P (B x)) = P (\<Union> (B ` {}))
 2. \<And>x F. \<lbrakk>inherited subs P; finite F; x \<notin> F; (\<forall>x\<in>F. P (B x)) = P (\<Union> (B ` F))\<rbrakk> \<Longrightarrow> (\<forall>x\<in>insert x F. P (B x)) = P (\<Union> (B ` insert x F))
[PROOF STEP]
apply simp
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. inherited subs P \<Longrightarrow> P {}
 2. \<And>x F. \<lbrakk>inherited subs P; finite F; x \<notin> F; (\<forall>x\<in>F. P (B x)) = P (\<Union> (B ` F))\<rbrakk> \<Longrightarrow> (\<forall>x\<in>insert x F. P (B x)) = P (\<Union> (B ` insert x F))
[PROOF STEP]
apply(simp add: inheritedEmpty)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x F. \<lbrakk>inherited subs P; finite F; x \<notin> F; (\<forall>x\<in>F. P (B x)) = P (\<Union> (B ` F))\<rbrakk> \<Longrightarrow> (\<forall>x\<in>insert x F. P (B x)) = P (\<Union> (B ` insert x F))
[PROOF STEP]
apply(force dest: inheritedUnEq)
[PROOF STATE]
proof (prove)
goal:
No subgoals!
[PROOF STEP]
done


[STATEMENT]
lemma eventually_nhds_top:
  fixes P :: "'a :: {order_top,linorder_topology} \<Rightarrow> bool"
    and b :: 'a
  assumes "b < top"
  shows "eventually P (nhds top) \<longleftrightarrow> (\<exists>b<top. (\<forall>z. b < z \<longrightarrow> P z))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. eventually P (nhds top) = (\<exists>b<top. \<forall>z>b. P z)
[PROOF STEP]
unfolding eventually_nhds
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<exists>S. open S \<and> top \<in> S \<and> Ball S P) = (\<exists>b<top. \<forall>z>b. P z)
[PROOF STEP]
proof safe
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<And>S. \<lbrakk>open S; top \<in> S; Ball S P\<rbrakk> \<Longrightarrow> \<exists>b<top. \<forall>z>b. P z
 2. \<And>b. \<lbrakk>b < top; \<forall>z>b. P z\<rbrakk> \<Longrightarrow> \<exists>S. open S \<and> top \<in> S \<and> Ball S P
[PROOF STEP]
fix S :: "'a set"
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<And>S. \<lbrakk>open S; top \<in> S; Ball S P\<rbrakk> \<Longrightarrow> \<exists>b<top. \<forall>z>b. P z
 2. \<And>b. \<lbrakk>b < top; \<forall>z>b. P z\<rbrakk> \<Longrightarrow> \<exists>S. open S \<and> top \<in> S \<and> Ball S P
[PROOF STEP]
assume "open S" "top \<in> S"
[PROOF STATE]
proof (state)
this:
open S
top \<in> S

goal (2 subgoals):
 1. \<And>S. \<lbrakk>open S; top \<in> S; Ball S P\<rbrakk> \<Longrightarrow> \<exists>b<top. \<forall>z>b. P z
 2. \<And>b. \<lbrakk>b < top; \<forall>z>b. P z\<rbrakk> \<Longrightarrow> \<exists>S. open S \<and> top \<in> S \<and> Ball S P
[PROOF STEP]
note open_left[OF this \<open>b < top\<close>]
[PROOF STATE]
proof (state)
this:
\<exists>b<top. {b<..top} \<subseteq> S

goal (2 subgoals):
 1. \<And>S. \<lbrakk>open S; top \<in> S; Ball S P\<rbrakk> \<Longrightarrow> \<exists>b<top. \<forall>z>b. P z
 2. \<And>b. \<lbrakk>b < top; \<forall>z>b. P z\<rbrakk> \<Longrightarrow> \<exists>S. open S \<and> top \<in> S \<and> Ball S P
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<exists>b<top. {b<..top} \<subseteq> S

goal (2 subgoals):
 1. \<And>S. \<lbrakk>open S; top \<in> S; Ball S P\<rbrakk> \<Longrightarrow> \<exists>b<top. \<forall>z>b. P z
 2. \<And>b. \<lbrakk>b < top; \<forall>z>b. P z\<rbrakk> \<Longrightarrow> \<exists>S. open S \<and> top \<in> S \<and> Ball S P
[PROOF STEP]
assume "\<forall>s\<in>S. P s"
[PROOF STATE]
proof (state)
this:
\<forall>s\<in>S. P s

goal (2 subgoals):
 1. \<And>S. \<lbrakk>open S; top \<in> S; Ball S P\<rbrakk> \<Longrightarrow> \<exists>b<top. \<forall>z>b. P z
 2. \<And>b. \<lbrakk>b < top; \<forall>z>b. P z\<rbrakk> \<Longrightarrow> \<exists>S. open S \<and> top \<in> S \<and> Ball S P
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
\<exists>b<top. {b<..top} \<subseteq> S
\<forall>s\<in>S. P s
[PROOF STEP]
show "\<exists>b<top. \<forall>z>b. P z"
[PROOF STATE]
proof (prove)
using this:
\<exists>b<top. {b<..top} \<subseteq> S
\<forall>s\<in>S. P s

goal (1 subgoal):
 1. \<exists>b<top. \<forall>z>b. P z
[PROOF STEP]
by (auto simp: subset_eq Ball_def)
[PROOF STATE]
proof (state)
this:
\<exists>b<top. \<forall>z>b. P z

goal (1 subgoal):
 1. \<And>b. \<lbrakk>b < top; \<forall>z>b. P z\<rbrakk> \<Longrightarrow> \<exists>S. open S \<and> top \<in> S \<and> Ball S P
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>b. \<lbrakk>b < top; \<forall>z>b. P z\<rbrakk> \<Longrightarrow> \<exists>S. open S \<and> top \<in> S \<and> Ball S P
[PROOF STEP]
fix b
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>b. \<lbrakk>b < top; \<forall>z>b. P z\<rbrakk> \<Longrightarrow> \<exists>S. open S \<and> top \<in> S \<and> Ball S P
[PROOF STEP]
assume "b < top" "\<forall>z>b. P z"
[PROOF STATE]
proof (state)
this:
b < top
\<forall>z>b. P z

goal (1 subgoal):
 1. \<And>b. \<lbrakk>b < top; \<forall>z>b. P z\<rbrakk> \<Longrightarrow> \<exists>S. open S \<and> top \<in> S \<and> Ball S P
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
b < top
\<forall>z>b. P z
[PROOF STEP]
show "\<exists>S. open S \<and> top \<in> S \<and> (\<forall>xa\<in>S. P xa)"
[PROOF STATE]
proof (prove)
using this:
b < top
\<forall>z>b. P z

goal (1 subgoal):
 1. \<exists>S. open S \<and> top \<in> S \<and> (\<forall>xa\<in>S. P xa)
[PROOF STEP]
by (intro exI[of _ "{b <..}"]) auto
[PROOF STATE]
proof (state)
this:
\<exists>S. open S \<and> top \<in> S \<and> (\<forall>xa\<in>S. P xa)

goal:
No subgoals!
[PROOF STEP]
qed


[STATEMENT]
lemma bv_slice_length [simp]: "[| j \<le> i; i < length w |] ==> length (bv_slice w (i,j)) = i - j + 1"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>j \<le> i; i < length w\<rbrakk> \<Longrightarrow> length (bv_slice w (i, j)) = i - j + 1
[PROOF STEP]
by (auto simp add: bv_slice_def)


[STATEMENT]
lemma Red_I_Sup_subset_Red_I_Liminf:
  "chain (\<rhd>) Ns \<Longrightarrow> Red_I (Sup_llist Ns) \<subseteq> Red_I (Liminf_llist Ns)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. chain (\<rhd>) Ns \<Longrightarrow> Red_I (Sup_llist Ns) \<subseteq> Red_I (Liminf_llist Ns)
[PROOF STEP]
by (metis Liminf_llist_subset_Sup_llist Red_I_of_Red_F_subset Red_in_Sup double_diff subset_refl)


[STATEMENT]
lemma reflexive:
  fixes P :: pi

  shows "P \<sim>\<^sup>s P"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. P \<sim>\<^sup>s P
[PROOF STEP]
by(force simp add: substClosed_def intro: Strong_Early_Bisim.reflexive)


[STATEMENT]
lemma aligned_add_xor:
  \<open>(x + 2 ^ n) XOR 2 ^ n = x\<close>
  if al: \<open>is_aligned (x::'a::len word) n'\<close> and le: \<open>n < n'\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. x + 2 ^ n XOR 2 ^ n = x
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. x + 2 ^ n XOR 2 ^ n = x
[PROOF STEP]
have \<open>\<not> bit x n\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<not> bit x n
[PROOF STEP]
using that
[PROOF STATE]
proof (prove)
using this:
is_aligned x n'
n < n'

goal (1 subgoal):
 1. \<not> bit x n
[PROOF STEP]
by (rule is_aligned_imp_not_bit)
[PROOF STATE]
proof (state)
this:
\<not> bit x n

goal (1 subgoal):
 1. x + 2 ^ n XOR 2 ^ n = x
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
\<not> bit x n
[PROOF STEP]
have \<open>x + 2 ^ n = x OR 2 ^ n\<close>
[PROOF STATE]
proof (prove)
using this:
\<not> bit x n

goal (1 subgoal):
 1. x + 2 ^ n = x OR 2 ^ n
[PROOF STEP]
by (subst disjunctive_add) (auto simp add: bit_simps disjunctive_add)
[PROOF STATE]
proof (state)
this:
x + 2 ^ n = x OR 2 ^ n

goal (1 subgoal):
 1. x + 2 ^ n XOR 2 ^ n = x
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
x + 2 ^ n = x OR 2 ^ n

goal (1 subgoal):
 1. x + 2 ^ n XOR 2 ^ n = x
[PROOF STEP]
have \<open>(x OR 2 ^ n) XOR 2 ^ n = x\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (x OR 2 ^ n) XOR 2 ^ n = x
[PROOF STEP]
by (rule bit_word_eqI) (auto simp add: bit_simps \<open>\<not> bit x n\<close>)
[PROOF STATE]
proof (state)
this:
(x OR 2 ^ n) XOR 2 ^ n = x

goal (1 subgoal):
 1. x + 2 ^ n XOR 2 ^ n = x
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
x + 2 ^ n = x OR 2 ^ n
(x OR 2 ^ n) XOR 2 ^ n = x
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
x + 2 ^ n = x OR 2 ^ n
(x OR 2 ^ n) XOR 2 ^ n = x

goal (1 subgoal):
 1. x + 2 ^ n XOR 2 ^ n = x
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
x + 2 ^ n XOR 2 ^ n = x

goal:
No subgoals!
[PROOF STEP]
qed


[STATEMENT]
lemma assertion_fun_disj_less_one: "assertion_fun = Apply.disjunctive \<inter> {x::'a::boolean_algebra \<Rightarrow> 'a . x \<le> id}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. assertion_fun = Apply.disjunctive \<inter> {x. x \<le> id}
[PROOF STEP]
apply safe
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. \<And>x. x \<in> assertion_fun \<Longrightarrow> x \<in> Apply.disjunctive
 2. \<And>x. x \<in> assertion_fun \<Longrightarrow> x \<le> id
 3. \<And>x. \<lbrakk>x \<in> Apply.disjunctive; x \<le> id\<rbrakk> \<Longrightarrow> x \<in> assertion_fun
[PROOF STEP]
apply (simp_all add: assertion_fun_def, auto simp add: image_def)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x. \<lbrakk>x \<in> Apply.disjunctive; x \<le> id\<rbrakk> \<Longrightarrow> \<exists>xa. x = assert_fun xa
[PROOF STEP]
apply (rule_tac x = "x \<top>" in exI)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x. \<lbrakk>x \<in> Apply.disjunctive; x \<le> id\<rbrakk> \<Longrightarrow> x = assert_fun (x \<top>)
[PROOF STEP]
by (rule assert_cont, simp_all)


[STATEMENT]
lemma float_divr_nonneg_neg_upper_bound:
  "0 \<le> real_of_float x \<Longrightarrow> real_of_float y \<le> 0 \<Longrightarrow> real_of_float (float_divr prec x y) \<le> 0"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>0 \<le> real_of_float x; real_of_float y \<le> 0\<rbrakk> \<Longrightarrow> real_of_float (float_divr prec x y) \<le> 0
[PROOF STEP]
by transfer (rule real_divr_nonneg_neg_upper_bound)


[STATEMENT]
theorem HEndPhase2_HInv4c:
  "\<lbrakk> HEndPhase2 s s' p; HInv4c s q\<rbrakk> \<Longrightarrow> HInv4c s' q"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>HEndPhase2 s s' p; HInv4c s q\<rbrakk> \<Longrightarrow> HInv4c s' q
[PROOF STEP]
by(blast dest: HEndPhase2_HInv4c_p HEndPhase2_HInv4c_q)


[STATEMENT]
lemma Im_sum [simp]:
  \<open>Im (sum f s) = (\<Sum>x\<in>s. Im (f x))\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. Im (sum f s) = (\<Sum>x\<in>s. Im (f x))
[PROOF STEP]
by (induct s rule: infinite_finite_induct) auto


[STATEMENT]
lemma linf_norm_poly_eq_0 [simp]:
  fixes f :: "'a :: ordered_ab_group_add_abs poly"
  shows "\<parallel>f\<parallel>\<^sub>\<infinity> = 0 \<longleftrightarrow> f = 0"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<parallel>f\<parallel>\<^sub>\<infinity> = (0::'a)) = (f = 0)
[PROOF STEP]
by (induct f, auto simp: max_def)


[STATEMENT]
lemma list_allI: "(\<And>x. x \<in> set xs \<Longrightarrow> P x) \<Longrightarrow> list_all P xs"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<And>x. x \<in> set xs \<Longrightarrow> P x) \<Longrightarrow> list_all P xs
[PROOF STEP]
by (auto simp: list_all_iff)


[STATEMENT]
lemma is_hom_GB_boundD:
  "is_hom_GB_bound F b \<Longrightarrow> (\<And>f. f \<in> F \<Longrightarrow> homogeneous f) \<Longrightarrow> g \<in> punit.reduced_GB F \<Longrightarrow> poly_deg g \<le> b"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>is_hom_GB_bound F b; \<And>f. f \<in> F \<Longrightarrow> homogeneous f; g \<in> punit.reduced_GB F\<rbrakk> \<Longrightarrow> poly_deg g \<le> b
[PROOF STEP]
unfolding is_hom_GB_bound_def
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>Ball F homogeneous \<longrightarrow> (\<forall>g\<in>punit.reduced_GB F. poly_deg g \<le> b); \<And>f. f \<in> F \<Longrightarrow> homogeneous f; g \<in> punit.reduced_GB F\<rbrakk> \<Longrightarrow> poly_deg g \<le> b
[PROOF STEP]
by blast


[STATEMENT]
lemma isom_tgch_unitsTr0_3:"\<lbrakk>Ugp E; Gchain (Suc n) g; \<not> g (Suc n) \<cong> E\<rbrakk>
      \<Longrightarrow> {i. i \<le> (Suc n) \<and> g i \<cong> E} = {i. i \<le> n \<and> g i \<cong> E}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>Ugp E; Gchain (Suc n) g; \<not> g (Suc n) \<cong> E\<rbrakk> \<Longrightarrow> {i. i \<le> Suc n \<and> g i \<cong> E} = {i. i \<le> n \<and> g i \<cong> E}
[PROOF STEP]
apply (rule equalityI)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<lbrakk>Ugp E; Gchain (Suc n) g; \<not> g (Suc n) \<cong> E\<rbrakk> \<Longrightarrow> {i. i \<le> Suc n \<and> g i \<cong> E} \<subseteq> {i. i \<le> n \<and> g i \<cong> E}
 2. \<lbrakk>Ugp E; Gchain (Suc n) g; \<not> g (Suc n) \<cong> E\<rbrakk> \<Longrightarrow> {i. i \<le> n \<and> g i \<cong> E} \<subseteq> {i. i \<le> Suc n \<and> g i \<cong> E}
[PROOF STEP]
apply (rule subsetI, simp add:CollectI)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<And>x. \<lbrakk>Ugp E; Gchain (Suc n) g; \<not> g (Suc n) \<cong> E; x \<le> Suc n \<and> g x \<cong> E\<rbrakk> \<Longrightarrow> x \<le> n
 2. \<lbrakk>Ugp E; Gchain (Suc n) g; \<not> g (Suc n) \<cong> E\<rbrakk> \<Longrightarrow> {i. i \<le> n \<and> g i \<cong> E} \<subseteq> {i. i \<le> Suc n \<and> g i \<cong> E}
[PROOF STEP]
apply (case_tac "x = Suc n", simp, erule conjE)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<And>x. \<lbrakk>Ugp E; Gchain (Suc n) g; \<not> g (Suc n) \<cong> E; x \<noteq> Suc n; x \<le> Suc n; g x \<cong> E\<rbrakk> \<Longrightarrow> x \<le> n
 2. \<lbrakk>Ugp E; Gchain (Suc n) g; \<not> g (Suc n) \<cong> E\<rbrakk> \<Longrightarrow> {i. i \<le> n \<and> g i \<cong> E} \<subseteq> {i. i \<le> Suc n \<and> g i \<cong> E}
[PROOF STEP]
apply arith
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>Ugp E; Gchain (Suc n) g; \<not> g (Suc n) \<cong> E\<rbrakk> \<Longrightarrow> {i. i \<le> n \<and> g i \<cong> E} \<subseteq> {i. i \<le> Suc n \<and> g i \<cong> E}
[PROOF STEP]
apply (rule subsetI, simp add:CollectI)
[PROOF STATE]
proof (prove)
goal:
No subgoals!
[PROOF STEP]
done


[STATEMENT]
lemma  cross_basis_nonzero:
  "u \<noteq> 0 \<Longrightarrow> u \<times> axis 1 1 \<noteq> 0 \<or> u \<times> axis 2 1 \<noteq> 0 \<or> u \<times> axis 3 1 \<noteq> 0"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. u \<noteq> 0 \<Longrightarrow> u \<times> axis 1 1 \<noteq> 0 \<or> u \<times> axis 2 1 \<noteq> 0 \<or> u \<times> axis 3 1 \<noteq> 0
[PROOF STEP]
by (clarsimp simp add: axis_def cross3_simps) (metis exhaust_3)


[STATEMENT]
lemma rel_list_all2_Cons [iff]:
  "list_all2 (fun_of S) (x#xs) (y#ys) =
   ((x,y) \<in> S \<and> list_all2 (fun_of S) xs ys)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. list_all2 (fun_of S) (x # xs) (y # ys) = ((x, y) \<in> S \<and> list_all2 (fun_of S) xs ys)
[PROOF STEP]
(*<*)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. list_all2 (fun_of S) (x # xs) (y # ys) = ((x, y) \<in> S \<and> list_all2 (fun_of S) xs ys)
[PROOF STEP]
by simp


[STATEMENT]
lemma n_anti_iff: "n x \<le> n y \<longleftrightarrow> t y \<le> t x"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (!x \<le> !y) = (t y \<le> t x)
[PROOF STEP]
using n_anti
[PROOF STATE]
proof (prove)
using this:
!?x \<le> !?y \<Longrightarrow> t ?y \<le> t ?x

goal (1 subgoal):
 1. (!x \<le> !y) = (t y \<le> t x)
[PROOF STEP]
by fastforce


[STATEMENT]
lemma enumerateE:
  assumes "finite A"
  assumes "a \<in> A"
  shows "\<exists> i < card A. a = (enumerate A) i"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<exists>i<card A. a = Generated_Boolean_Algebra.enumerate A i
[PROOF STEP]
using  enumerate_enumerates[of A] enumeratesE[of A] assms
[PROOF STATE]
proof (prove)
using this:
finite A \<Longrightarrow> enumerates A (Generated_Boolean_Algebra.enumerate A)
enumerates A ?f \<Longrightarrow> finite A
enumerates A ?f \<Longrightarrow> A = ?f ` {..<card A}
enumerates A ?f \<Longrightarrow> inj_on ?f {..<card A}
finite A
a \<in> A

goal (1 subgoal):
 1. \<exists>i<card A. a = Generated_Boolean_Algebra.enumerate A i
[PROOF STEP]
by blast


[STATEMENT]
lemma class_linorder_compare: "class.linorder (le_of_comp compare) (lt_of_comp compare)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. class.linorder (le_of_comp compare) (lt_of_comp compare)
[PROOF STEP]
apply standard
[PROOF STATE]
proof (prove)
goal (5 subgoals):
 1. \<And>x y. lt_of_comp compare x y = strict (le_of_comp compare) x y
 2. \<And>x. le_of_comp compare x x
 3. \<And>x y z. \<lbrakk>le_of_comp compare x y; le_of_comp compare y z\<rbrakk> \<Longrightarrow> le_of_comp compare x z
 4. \<And>x y. \<lbrakk>le_of_comp compare x y; le_of_comp compare y x\<rbrakk> \<Longrightarrow> x = y
 5. \<And>x y. le_of_comp compare x y \<or> le_of_comp compare y x
[PROOF STEP]
apply (simp_all add: lt_of_comp_def le_of_comp_def split: order.splits)
[PROOF STATE]
proof (prove)
goal (4 subgoals):
 1. \<And>x y. compare y x = Lt \<longrightarrow> compare x y \<noteq> Lt
 2. \<And>x y z. \<lbrakk>compare x y = Lt; compare y z = Lt\<rbrakk> \<Longrightarrow> compare x z \<noteq> Gt
 3. \<And>x y. \<lbrakk>compare x y = Lt; compare y x = Lt\<rbrakk> \<Longrightarrow> x = y
 4. \<And>x y. compare x y = Gt \<longrightarrow> compare y x \<noteq> Gt
[PROOF STEP]
apply (metis comparator.sym comparator_compare invert_order.simps(1) order.distinct(5))
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. \<And>x y z. \<lbrakk>compare x y = Lt; compare y z = Lt\<rbrakk> \<Longrightarrow> compare x z \<noteq> Gt
 2. \<And>x y. \<lbrakk>compare x y = Lt; compare y x = Lt\<rbrakk> \<Longrightarrow> x = y
 3. \<And>x y. compare x y = Gt \<longrightarrow> compare y x \<noteq> Gt
[PROOF STEP]
apply (metis comparator_compare comparator_def order.distinct(5))
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<And>x y. \<lbrakk>compare x y = Lt; compare y x = Lt\<rbrakk> \<Longrightarrow> x = y
 2. \<And>x y. compare x y = Gt \<longrightarrow> compare y x \<noteq> Gt
[PROOF STEP]
apply (metis comparator.sym comparator_compare invert_order.simps(1) order.distinct(5))
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y. compare x y = Gt \<longrightarrow> compare y x \<noteq> Gt
[PROOF STEP]
by (metis comparator.sym comparator_compare invert_order.simps(2) order.distinct(5))


[STATEMENT]
lemma lnull_lmerge [simp]: "lnull (lmerge xs ys) \<longleftrightarrow> (lnull xs \<or> lnull ys)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. lnull (lmerge xs ys) = (lnull xs \<or> lnull ys)
[PROOF STEP]
by(simp add: lmerge_def)


[STATEMENT]
lemma ord_option_Some1_iff: "ord_option R (Some a) y \<longleftrightarrow> (\<exists>b. y = Some b \<and> R a b)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. ord_option R (Some a) y = (\<exists>b. y = Some b \<and> R a b)
[PROOF STEP]
by (cases y; auto)


[STATEMENT]
lemma evalid_def2: "\<Turnstile>\<^sub>e {P} e {Q} = (\<forall>n. \<Turnstile>n:\<^sub>e (P,e,Q))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<Turnstile>\<^sub>e {P} e {Q} = (\<forall>n. \<Turnstile>n:\<^sub>e (P, e, Q))
[PROOF STEP]
apply (simp add: evalid_def envalid_def2)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<forall>s. P s \<longrightarrow> (\<forall>v t. (\<exists>n. s -e\<succ>v-n\<rightarrow> t) \<longrightarrow> Q v t)) = (\<forall>n s v t. s -e\<succ>v-n\<rightarrow> t \<longrightarrow> P s \<longrightarrow> Q v t)
[PROOF STEP]
apply blast
[PROOF STATE]
proof (prove)
goal:
No subgoals!
[PROOF STEP]
done


[STATEMENT]
lemma \<K>_pow: "\<K> = (\<Sum>i\<in>L. 1 / b powr cw_len i)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<K> = (\<Sum>i\<in>L. 1 / b powr real (cw_len i))
[PROOF STEP]
using powr_realpow b_gt_1
[PROOF STATE]
proof (prove)
using this:
0 < ?x \<Longrightarrow> ?x powr real ?n = ?x ^ ?n
1 < b

goal (1 subgoal):
 1. \<K> = (\<Sum>i\<in>L. 1 / b powr real (cw_len i))
[PROOF STEP]
by (simp add: \<K>_def)


[STATEMENT]
lemma sets_distinct5: "(s::int) < g \<Longrightarrow> {(a::int, b::int). a = s} \<noteq> {(a::int, b::int).  g < a}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. s < g \<Longrightarrow> {(a, b). a = s} \<noteq> {(a, b). g < a}
[PROOF STEP]
apply (auto simp: sets_distinct3)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>s < g; {(a, b). a = s} = {(a, b). g < a}\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
apply (subgoal_tac "(s,4) \<in> {(a::int,b::int). a = (s)}")
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<lbrakk>s < g; {(a, b). a = s} = {(a, b). g < a}; (s, 4) \<in> {(a, b). a = s}\<rbrakk> \<Longrightarrow> False
 2. \<lbrakk>s < g; {(a, b). a = s} = {(a, b). g < a}\<rbrakk> \<Longrightarrow> (s, 4) \<in> {(a, b). a = s}
[PROOF STEP]
apply (subgoal_tac "(s,4) \<notin> {(a::int,b::int). g < a}")
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. \<lbrakk>s < g; {(a, b). a = s} = {(a, b). g < a}; (s, 4) \<in> {(a, b). a = s}; (s, 4) \<notin> {(a, b). g < a}\<rbrakk> \<Longrightarrow> False
 2. \<lbrakk>s < g; {(a, b). a = s} = {(a, b). g < a}; (s, 4) \<in> {(a, b). a = s}\<rbrakk> \<Longrightarrow> (s, 4) \<notin> {(a, b). g < a}
 3. \<lbrakk>s < g; {(a, b). a = s} = {(a, b). g < a}\<rbrakk> \<Longrightarrow> (s, 4) \<in> {(a, b). a = s}
[PROOF STEP]
apply (erule aux)
[PROOF STATE]
proof (prove)
goal (4 subgoals):
 1. \<lbrakk>s < g; {(a, b). a = s} = {(a, b). g < a}; (s, 4) \<notin> {(a, b). g < a}\<rbrakk> \<Longrightarrow> (s, 4) \<notin> ?d3
 2. \<lbrakk>s < g; {(a, b). a = s} = {(a, b). g < a}; (s, 4) \<notin> {(a, b). g < a}\<rbrakk> \<Longrightarrow> {(a, b). a = s} = ?d3
 3. \<lbrakk>s < g; {(a, b). a = s} = {(a, b). g < a}; (s, 4) \<in> {(a, b). a = s}\<rbrakk> \<Longrightarrow> (s, 4) \<notin> {(a, b). g < a}
 4. \<lbrakk>s < g; {(a, b). a = s} = {(a, b). g < a}\<rbrakk> \<Longrightarrow> (s, 4) \<in> {(a, b). a = s}
[PROOF STEP]
apply assumption+
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<lbrakk>s < g; {(a, b). a = s} = {(a, b). g < a}; (s, 4) \<in> {(a, b). a = s}\<rbrakk> \<Longrightarrow> (s, 4) \<notin> {(a, b). g < a}
 2. \<lbrakk>s < g; {(a, b). a = s} = {(a, b). g < a}\<rbrakk> \<Longrightarrow> (s, 4) \<in> {(a, b). a = s}
[PROOF STEP]
apply simp
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>s < g; {(a, b). a = s} = {(a, b). g < a}\<rbrakk> \<Longrightarrow> (s, 4) \<in> {(a, b). a = s}
[PROOF STEP]
by blast


[STATEMENT]
lemma connected_component_sym_eq: "connected_component S x y \<longleftrightarrow> connected_component S y x"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. connected_component S x y = connected_component S y x
[PROOF STEP]
using connected_component_sym
[PROOF STATE]
proof (prove)
using this:
connected_component ?S ?x ?y \<Longrightarrow> connected_component ?S ?y ?x

goal (1 subgoal):
 1. connected_component S x y = connected_component S y x
[PROOF STEP]
by blast


[STATEMENT]
lemma strict_ex_refine_lemma:
     "strict_ex_prop X
      ==> (\<forall>H. F ok H & G ok H & F\<squnion>H \<in> X --> G\<squnion>H \<in> X)
              = (F \<in> X --> G \<in> X)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. strict_ex_prop X \<Longrightarrow> (\<forall>H. F ok H \<and> G ok H \<and> F \<squnion> H \<in> X \<longrightarrow> G \<squnion> H \<in> X) = (F \<in> X \<longrightarrow> G \<in> X)
[PROOF STEP]
by (unfold strict_ex_prop_def, auto)