src/HOL/Multivariate_Analysis/Brouwer_Fixpoint.thy
 author haftmann Thu, 11 Mar 2010 15:52:34 +0100 changeset 35729 3cd1e4b65111 parent 34964 4e8be3c04d37 child 36318 3567d0571932 permissions -rw-r--r--
replaced card_def by card_eq_setsum
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
 33741 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 2` ```(* ========================================================================= *) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 3` ```(* Results connected with topological dimension. *) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 4` ```(* *) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 5` ```(* At the moment this is just Brouwer's fixpoint theorem. The proof is from *) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 6` ```(* Kuhn: "some combinatorial lemmas in topology", IBM J. v4. (1960) p. 518 *) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 7` ```(* See "http://www.research.ibm.com/journal/rd/045/ibmrd0405K.pdf". *) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 8` ```(* *) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 9` ```(* The script below is quite messy, but at least we avoid formalizing any *) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 10` ```(* topological machinery; we don't even use barycentric subdivision; this is *) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 11` ```(* the big advantage of Kuhn's proof over the usual Sperner's lemma one. *) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 12` ```(* *) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 13` ```(* (c) Copyright, John Harrison 1998-2008 *) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 14` ```(* ========================================================================= *) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 15` 33759 b369324fc244 Added the contributions of Robert Himmelmann to CONTRIBUTIONS and NEWS hoelzl parents: 33758 diff changeset ` 16` ```(* Author: John Harrison ``` b369324fc244 Added the contributions of Robert Himmelmann to CONTRIBUTIONS and NEWS hoelzl parents: 33758 diff changeset ` 17` ``` Translation from HOL light: Robert Himmelmann, TU Muenchen *) ``` 33741 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 18` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 19` ```header {* Results connected with topological dimension. *} ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 20` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 21` ```theory Brouwer_Fixpoint ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 22` ``` imports Convex_Euclidean_Space ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 23` ```begin ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 24` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 25` ```declare norm_scaleR[simp] ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 26` ``` ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 27` ```lemma brouwer_compactness_lemma: ``` 34291 4e896680897e finite annotation on cartesian product is now implicit. hoelzl parents: 34289 diff changeset ` 28` ``` assumes "compact s" "continuous_on s f" "\ (\x\s. (f x = (0::real^'n)))" ``` 33741 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 29` ``` obtains d where "0 < d" "\x\s. d \ norm(f x)" proof(cases "s={}") case False ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 30` ``` have "continuous_on s (norm \ f)" by(rule continuous_on_intros continuous_on_norm assms(2))+ ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 31` ``` then obtain x where x:"x\s" "\y\s. (norm \ f) x \ (norm \ f) y" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 32` ``` using continuous_attains_inf[OF assms(1), of "norm \ f"] and False unfolding o_def by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 33` ``` have "(norm \ f) x > 0" using assms(3) and x(1) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 34` ``` thus ?thesis apply(rule that) using x(2) unfolding o_def by auto qed(rule that[of 1], auto) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 35` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 36` ```lemma kuhn_labelling_lemma: ``` 34289 c9c14c72d035 Made finite cartesian products finite himmelma parents: 33759 diff changeset ` 37` ``` assumes "(\x::real^_. P x \ P (f x))" "\x. P x \ (\i. Q i \ 0 \ x\$i \ x\$i \ 1)" ``` 33741 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 38` ``` shows "\l. (\x i. l x i \ (1::nat)) \ ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 39` ``` (\x i. P x \ Q i \ (x\$i = 0) \ (l x i = 0)) \ ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 40` ``` (\x i. P x \ Q i \ (x\$i = 1) \ (l x i = 1)) \ ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 41` ``` (\x i. P x \ Q i \ (l x i = 0) \ x\$i \ f(x)\$i) \ ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 42` ``` (\x i. P x \ Q i \ (l x i = 1) \ f(x)\$i \ x\$i)" proof- ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 43` ``` have and_forall_thm:"\P Q. (\x. P x) \ (\x. Q x) \ (\x. P x \ Q x)" by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 44` ``` have *:"\x y::real. 0 \ x \ x \ 1 \ 0 \ y \ y \ 1 \ (x \ 1 \ x \ y \ x \ 0 \ y \ x)" by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 45` ``` show ?thesis unfolding and_forall_thm apply(subst choice_iff[THEN sym])+ proof(rule,rule) case goal1 ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 46` ``` let ?R = "\y. (P x \ Q xa \ x \$ xa = 0 \ y = (0::nat)) \ ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 47` ``` (P x \ Q xa \ x \$ xa = 1 \ y = 1) \ (P x \ Q xa \ y = 0 \ x \$ xa \ f x \$ xa) \ (P x \ Q xa \ y = 1 \ f x \$ xa \ x \$ xa)" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 48` ``` { assume "P x" "Q xa" hence "0 \ f x \$ xa \ f x \$ xa \ 1" using assms(2)[rule_format,of "f x" xa] ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 49` ``` apply(drule_tac assms(1)[rule_format]) by auto } ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 50` ``` hence "?R 0 \ ?R 1" by auto thus ?case by auto qed qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 51` ``` ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 52` ```subsection {* The key "counting" observation, somewhat abstracted. *} ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 53` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 54` ```lemma setsum_Un_disjoint':assumes "finite A" "finite B" "A \ B = {}" "A \ B = C" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 55` ``` shows "setsum g C = setsum g A + setsum g B" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 56` ``` using setsum_Un_disjoint[OF assms(1-3)] and assms(4) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 57` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 58` ```lemma kuhn_counting_lemma: assumes "finite faces" "finite simplices" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 59` ``` "\f\faces. bnd f \ (card {s \ simplices. face f s} = 1)" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 60` ``` "\f\faces. \ bnd f \ (card {s \ simplices. face f s} = 2)" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 61` ``` "\s\simplices. compo s \ (card {f \ faces. face f s \ compo' f} = 1)" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 62` ``` "\s\simplices. \ compo s \ (card {f \ faces. face f s \ compo' f} = 0) \ ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 63` ``` (card {f \ faces. face f s \ compo' f} = 2)" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 64` ``` "odd(card {f \ faces. compo' f \ bnd f})" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 65` ``` shows "odd(card {s \ simplices. compo s})" proof- ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 66` ``` have "\x. {f\faces. compo' f \ bnd f \ face f x} \ {f\faces. compo' f \ \bnd f \ face f x} = {f\faces. compo' f \ face f x}" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 67` ``` "\x. {f \ faces. compo' f \ bnd f \ face f x} \ {f \ faces. compo' f \ \ bnd f \ face f x} = {}" by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 68` ``` hence lem1:"setsum (\s. (card {f \ faces. face f s \ compo' f})) simplices = ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 69` ``` setsum (\s. card {f \ {f \ faces. compo' f \ bnd f}. face f s}) simplices + ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 70` ``` setsum (\s. card {f \ {f \ faces. compo' f \ \ (bnd f)}. face f s}) simplices" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 71` ``` unfolding setsum_addf[THEN sym] apply- apply(rule setsum_cong2) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 72` ``` using assms(1) by(auto simp add: card_Un_Int, auto simp add:conj_commute) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 73` ``` have lem2:"setsum (\j. card {f \ {f \ faces. compo' f \ bnd f}. face f j}) simplices = ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 74` ``` 1 * card {f \ faces. compo' f \ bnd f}" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 75` ``` "setsum (\j. card {f \ {f \ faces. compo' f \ \ bnd f}. face f j}) simplices = ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 76` ``` 2 * card {f \ faces. compo' f \ \ bnd f}" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 77` ``` apply(rule_tac[!] setsum_multicount) using assms by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 78` ``` have lem3:"setsum (\s. card {f \ faces. face f s \ compo' f}) simplices = ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 79` ``` setsum (\s. card {f \ faces. face f s \ compo' f}) {s \ simplices. compo s}+ ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 80` ``` setsum (\s. card {f \ faces. face f s \ compo' f}) {s \ simplices. \ compo s}" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 81` ``` apply(rule setsum_Un_disjoint') using assms(2) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 82` ``` have lem4:"setsum (\s. card {f \ faces. face f s \ compo' f}) {s \ simplices. compo s} ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 83` ``` = setsum (\s. 1) {s \ simplices. compo s}" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 84` ``` apply(rule setsum_cong2) using assms(5) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 85` ``` have lem5: "setsum (\s. card {f \ faces. face f s \ compo' f}) {s \ simplices. \ compo s} = ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 86` ``` setsum (\s. card {f \ faces. face f s \ compo' f}) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 87` ``` {s \ simplices. (\ compo s) \ (card {f \ faces. face f s \ compo' f} = 0)} + ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 88` ``` setsum (\s. card {f \ faces. face f s \ compo' f}) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 89` ``` {s \ simplices. (\ compo s) \ (card {f \ faces. face f s \ compo' f} = 2)}" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 90` ``` apply(rule setsum_Un_disjoint') using assms(2,6) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 91` ``` have *:"int (\s\{s \ simplices. compo s}. card {f \ faces. face f s \ compo' f}) = ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 92` ``` int (card {f \ faces. compo' f \ bnd f} + 2 * card {f \ faces. compo' f \ \ bnd f}) - ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 93` ``` int (card {s \ simplices. \ compo s \ card {f \ faces. face f s \ compo' f} = 2} * 2)" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 94` ``` using lem1[unfolded lem3 lem2 lem5] by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 95` ``` have even_minus_odd:"\x y. even x \ odd (y::int) \ odd (x - y)" using assms by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 96` ``` have odd_minus_even:"\x y. odd x \ even (y::int) \ odd (x - y)" using assms by auto ``` 35729 3cd1e4b65111 replaced card_def by card_eq_setsum haftmann parents: 34964 diff changeset ` 97` ``` show ?thesis unfolding even_nat_def unfolding card_eq_setsum and lem4[THEN sym] and *[unfolded card_eq_setsum] ``` 3cd1e4b65111 replaced card_def by card_eq_setsum haftmann parents: 34964 diff changeset ` 98` ``` unfolding card_eq_setsum[THEN sym] apply (rule odd_minus_even) unfolding zadd_int[THEN sym] apply(rule odd_plus_even) ``` 33741 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 99` ``` apply(rule assms(7)[unfolded even_nat_def]) unfolding int_mult by auto qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 100` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 101` ```subsection {* The odd/even result for faces of complete vertices, generalized. *} ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 102` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 103` ```lemma card_1_exists: "card s = 1 \ (\!x. x \ s)" unfolding One_nat_def ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 104` ``` apply rule apply(drule card_eq_SucD) defer apply(erule ex1E) proof- ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 105` ``` fix x assume as:"x \ s" "\y. y \ s \ y = x" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 106` ``` have *:"s = insert x {}" apply- apply(rule set_ext,rule) unfolding singleton_iff ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 107` ``` apply(rule as(2)[rule_format]) using as(1) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 108` ``` show "card s = Suc 0" unfolding * using card_insert by auto qed auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 109` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 110` ```lemma card_2_exists: "card s = 2 \ (\x\s. \y\s. x \ y \ (\z\s. (z = x) \ (z = y)))" proof ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 111` ``` assume "card s = 2" then obtain x y where obt:"s = {x, y}" "x\y" unfolding numeral_2_eq_2 apply - apply(erule exE conjE|drule card_eq_SucD)+ by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 112` ``` show "\x\s. \y\s. x \ y \ (\z\s. z = x \ z = y)" using obt by auto next ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 113` ``` assume "\x\s. \y\s. x \ y \ (\z\s. z = x \ z = y)" then guess x .. from this(2) guess y .. ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 114` ``` with `x\s` have *:"s = {x, y}" "x\y" by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 115` ``` from this(2) show "card s = 2" unfolding * by auto qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 116` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 117` ```lemma image_lemma_0: assumes "card {a\s. f ` (s - {a}) = t - {b}} = n" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 118` ``` shows "card {s'. \a\s. (s' = s - {a}) \ (f ` s' = t - {b})} = n" proof- ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 119` ``` have *:"{s'. \a\s. (s' = s - {a}) \ (f ` s' = t - {b})} = (\a. s - {a}) ` {a\s. f ` (s - {a}) = t - {b}}" by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 120` ``` show ?thesis unfolding * unfolding assms[THEN sym] apply(rule card_image) unfolding inj_on_def ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 121` ``` apply(rule,rule,rule) unfolding mem_Collect_eq by auto qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 122` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 123` ```lemma image_lemma_1: assumes "finite s" "finite t" "card s = card t" "f ` s = t" "b \ t" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 124` ``` shows "card {s'. \a\s. s' = s - {a} \ f ` s' = t - {b}} = 1" proof- ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 125` ``` obtain a where a:"b = f a" "a\s" using assms(4-5) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 126` ``` have inj:"inj_on f s" apply(rule eq_card_imp_inj_on) using assms(1-4) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 127` ``` have *:"{a \ s. f ` (s - {a}) = t - {b}} = {a}" apply(rule set_ext) unfolding singleton_iff ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 128` ``` apply(rule,rule inj[unfolded inj_on_def,rule_format]) unfolding a using a(2) and assms and inj[unfolded inj_on_def] by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 129` ``` show ?thesis apply(rule image_lemma_0) unfolding * by auto qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 130` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 131` ```lemma image_lemma_2: assumes "finite s" "finite t" "card s = card t" "f ` s \ t" "f ` s \ t" "b \ t" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 132` ``` shows "(card {s'. \a\s. (s' = s - {a}) \ f ` s' = t - {b}} = 0) \ ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 133` ``` (card {s'. \a\s. (s' = s - {a}) \ f ` s' = t - {b}} = 2)" proof(cases "{a\s. f ` (s - {a}) = t - {b}} = {}") ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 134` ``` case True thus ?thesis apply-apply(rule disjI1, rule image_lemma_0) using assms(1) by(auto simp add:card_0_eq) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 135` ```next let ?M = "{a\s. f ` (s - {a}) = t - {b}}" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 136` ``` case False then obtain a where "a\?M" by auto hence a:"a\s" "f ` (s - {a}) = t - {b}" by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 137` ``` have "f a \ t - {b}" using a and assms by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 138` ``` hence "\c \ s - {a}. f a = f c" unfolding image_iff[symmetric] and a by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 139` ``` then obtain c where c:"c \ s" "a \ c" "f a = f c" by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 140` ``` hence *:"f ` (s - {c}) = f ` (s - {a})" apply-apply(rule set_ext,rule) proof- ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 141` ``` fix x assume "x \ f ` (s - {a})" then obtain y where y:"f y = x" "y\s- {a}" by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 142` ``` thus "x \ f ` (s - {c})" unfolding image_iff apply(rule_tac x="if y = c then a else y" in bexI) using c a by auto qed auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 143` ``` have "c\?M" unfolding mem_Collect_eq and * using a and c(1) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 144` ``` show ?thesis apply(rule disjI2, rule image_lemma_0) unfolding card_2_exists ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 145` ``` apply(rule bexI[OF _ `a\?M`], rule bexI[OF _ `c\?M`],rule,rule `a\c`) proof(rule,unfold mem_Collect_eq,erule conjE) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 146` ``` fix z assume as:"z \ s" "f ` (s - {z}) = t - {b}" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 147` ``` have inj:"inj_on f (s - {z})" apply(rule eq_card_imp_inj_on) unfolding as using as(1) and assms by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 148` ``` show "z = a \ z = c" proof(rule ccontr) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 149` ``` assume "\ (z = a \ z = c)" thus False using inj[unfolded inj_on_def,THEN bspec[where x=a],THEN bspec[where x=c]] ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 150` ``` using `a\s` `c\s` `f a = f c` `a\c` by auto qed qed qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 151` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 152` ```subsection {* Combine this with the basic counting lemma. *} ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 153` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 154` ```lemma kuhn_complete_lemma: ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 155` ``` assumes "finite simplices" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 156` ``` "\f s. face f s \ (\a\s. f = s - {a})" "\s\simplices. card s = n + 2" "\s\simplices. (rl ` s) \ {0..n+1}" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 157` ``` "\f\ {f. \s\simplices. face f s}. bnd f \ (card {s\simplices. face f s} = 1)" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 158` ``` "\f\ {f. \s\simplices. face f s}. \bnd f \ (card {s\simplices. face f s} = 2)" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 159` ``` "odd(card {f\{f. \s\simplices. face f s}. rl ` f = {0..n} \ bnd f})" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 160` ``` shows "odd (card {s\simplices. (rl ` s = {0..n+1})})" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 161` ``` apply(rule kuhn_counting_lemma) defer apply(rule assms)+ prefer 3 apply(rule assms) proof(rule_tac[1-2] ballI impI)+ ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 162` ``` have *:"{f. \s\simplices. \a\s. f = s - {a}} = (\s\simplices. {f. \a\s. (f = s - {a})})" by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 163` ``` have **: "\s\simplices. card s = n + 2 \ finite s" using assms(3) by (auto intro: card_ge_0_finite) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 164` ``` show "finite {f. \s\simplices. face f s}" unfolding assms(2)[rule_format] and * ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 165` ``` apply(rule finite_UN_I[OF assms(1)]) using ** by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 166` ``` have *:"\ P f s. s\simplices \ (f \ {f. \s\simplices. \a\s. f = s - {a}}) \ ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 167` ``` (\a\s. (f = s - {a})) \ P f \ (\a\s. (f = s - {a}) \ P f)" by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 168` ``` fix s assume s:"s\simplices" let ?S = "{f \ {f. \s\simplices. face f s}. face f s \ rl ` f = {0..n}}" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 169` ``` have "{0..n + 1} - {n + 1} = {0..n}" by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 170` ``` hence S:"?S = {s'. \a\s. s' = s - {a} \ rl ` s' = {0..n + 1} - {n + 1}}" apply- apply(rule set_ext) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 171` ``` unfolding assms(2)[rule_format] mem_Collect_eq and *[OF s, unfolded mem_Collect_eq, where P="\x. rl ` x = {0..n}"] by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 172` ``` show "rl ` s = {0..n+1} \ card ?S = 1" "rl ` s \ {0..n+1} \ card ?S = 0 \ card ?S = 2" unfolding S ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 173` ``` apply(rule_tac[!] image_lemma_1 image_lemma_2) using ** assms(4) and s by auto qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 174` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 175` ```subsection {*We use the following notion of ordering rather than pointwise indexing. *} ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 176` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 177` ```definition "kle n x y \ (\k\{1..n::nat}. (\j. y(j) = x(j) + (if j \ k then (1::nat) else 0)))" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 178` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 179` ```lemma kle_refl[intro]: "kle n x x" unfolding kle_def by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 180` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 181` ```lemma kle_antisym: "kle n x y \ kle n y x \ (x = y)" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 182` ``` unfolding kle_def apply rule apply(rule ext) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 183` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 184` ```lemma pointwise_minimal_pointwise_maximal: fixes s::"(nat\nat) set" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 185` ``` assumes "finite s" "s \ {}" "\x\s. \y\s. (\j. x j \ y j) \ (\j. y j \ x j)" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 186` ``` shows "\a\s. \x\s. \j. a j \ x j" "\a\s. \x\s. \j. x j \ a j" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 187` ``` using assms unfolding atomize_conj apply- proof(induct s rule:finite_induct) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 188` ``` fix x and F::"(nat\nat) set" assume as:"finite F" "x \ F" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 189` ``` "\F \ {}; \x\F. \y\F. (\j. x j \ y j) \ (\j. y j \ x j)\ ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 190` ``` \ (\a\F. \x\F. \j. a j \ x j) \ (\a\F. \x\F. \j. x j \ a j)" "insert x F \ {}" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 191` ``` "\xa\insert x F. \y\insert x F. (\j. xa j \ y j) \ (\j. y j \ xa j)" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 192` ``` show "(\a\insert x F. \x\insert x F. \j. a j \ x j) \ (\a\insert x F. \x\insert x F. \j. x j \ a j)" proof(cases "F={}") ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 193` ``` case True thus ?thesis apply-apply(rule,rule_tac[!] x=x in bexI) by auto next ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 194` ``` case False obtain a b where a:"a\insert x F" "\x\F. \j. a j \ x j" and ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 195` ``` b:"b\insert x F" "\x\F. \j. x j \ b j" using as(3)[OF False] using as(5) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 196` ``` have "\a\insert x F. \x\insert x F. \j. a j \ x j" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 197` ``` using as(5)[rule_format,OF a(1) insertI1] apply- proof(erule disjE) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 198` ``` assume "\j. a j \ x j" thus ?thesis apply(rule_tac x=a in bexI) using a by auto next ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 199` ``` assume "\j. x j \ a j" thus ?thesis apply(rule_tac x=x in bexI) apply(rule,rule) using a apply - ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 200` ``` apply(erule_tac x=xa in ballE) apply(erule_tac x=j in allE)+ by auto qed moreover ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 201` ``` have "\b\insert x F. \x\insert x F. \j. x j \ b j" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 202` ``` using as(5)[rule_format,OF b(1) insertI1] apply- proof(erule disjE) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 203` ``` assume "\j. x j \ b j" thus ?thesis apply(rule_tac x=b in bexI) using b by auto next ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 204` ``` assume "\j. b j \ x j" thus ?thesis apply(rule_tac x=x in bexI) apply(rule,rule) using b apply - ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 205` ``` apply(erule_tac x=xa in ballE) apply(erule_tac x=j in allE)+ by auto qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 206` ``` ultimately show ?thesis by auto qed qed(auto) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 207` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 208` ```lemma kle_imp_pointwise: "kle n x y \ (\j. x j \ y j)" unfolding kle_def by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 209` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 210` ```lemma pointwise_antisym: fixes x::"nat \ nat" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 211` ``` shows "(\j. x j \ y j) \ (\j. y j \ x j) \ (x = y)" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 212` ``` apply(rule, rule ext,erule conjE) apply(erule_tac x=xa in allE)+ by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 213` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 214` ```lemma kle_trans: assumes "kle n x y" "kle n y z" "kle n x z \ kle n z x" shows "kle n x z" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 215` ``` using assms apply- apply(erule disjE) apply assumption proof- case goal1 ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 216` ``` hence "x=z" apply- apply(rule ext) apply(drule kle_imp_pointwise)+ ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 217` ``` apply(erule_tac x=xa in allE)+ by auto thus ?case by auto qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 218` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 219` ```lemma kle_strict: assumes "kle n x y" "x \ y" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 220` ``` shows "\j. x j \ y j" "\k. 1 \ k \ k \ n \ x(k) < y(k)" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 221` ``` apply(rule kle_imp_pointwise[OF assms(1)]) proof- ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 222` ``` guess k using assms(1)[unfolded kle_def] .. note k = this ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 223` ``` show "\k. 1 \ k \ k \ n \ x(k) < y(k)" proof(cases "k={}") ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 224` ``` case True hence "x=y" apply-apply(rule ext) using k by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 225` ``` thus ?thesis using assms(2) by auto next ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 226` ``` case False hence "(SOME k'. k' \ k) \ k" apply-apply(rule someI_ex) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 227` ``` thus ?thesis apply(rule_tac x="SOME k'. k' \ k" in exI) using k by auto qed qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 228` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 229` ```lemma kle_minimal: assumes "finite s" "s \ {}" "\x\s. \y\s. kle n x y \ kle n y x" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 230` ``` shows "\a\s. \x\s. kle n a x" proof- ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 231` ``` have "\a\s. \x\s. \j. a j \ x j" apply(rule pointwise_minimal_pointwise_maximal(1)[OF assms(1-2)]) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 232` ``` apply(rule,rule) apply(drule_tac assms(3)[rule_format],assumption) using kle_imp_pointwise by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 233` ``` then guess a .. note a=this show ?thesis apply(rule_tac x=a in bexI) proof fix x assume "x\s" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 234` ``` show "kle n a x" using assms(3)[rule_format,OF a(1) `x\s`] apply- proof(erule disjE) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 235` ``` assume "kle n x a" hence "x = a" apply- unfolding pointwise_antisym[THEN sym] ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 236` ``` apply(drule kle_imp_pointwise) using a(2)[rule_format,OF `x\s`] by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 237` ``` thus ?thesis using kle_refl by auto qed qed(insert a, auto) qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 238` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 239` ```lemma kle_maximal: assumes "finite s" "s \ {}" "\x\s. \y\s. kle n x y \ kle n y x" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 240` ``` shows "\a\s. \x\s. kle n x a" proof- ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 241` ``` have "\a\s. \x\s. \j. a j \ x j" apply(rule pointwise_minimal_pointwise_maximal(2)[OF assms(1-2)]) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 242` ``` apply(rule,rule) apply(drule_tac assms(3)[rule_format],assumption) using kle_imp_pointwise by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 243` ``` then guess a .. note a=this show ?thesis apply(rule_tac x=a in bexI) proof fix x assume "x\s" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 244` ``` show "kle n x a" using assms(3)[rule_format,OF a(1) `x\s`] apply- proof(erule disjE) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 245` ``` assume "kle n a x" hence "x = a" apply- unfolding pointwise_antisym[THEN sym] ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 246` ``` apply(drule kle_imp_pointwise) using a(2)[rule_format,OF `x\s`] by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 247` ``` thus ?thesis using kle_refl by auto qed qed(insert a, auto) qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 248` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 249` ```lemma kle_strict_set: assumes "kle n x y" "x \ y" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 250` ``` shows "1 \ card {k\{1..n}. x k < y k}" proof- ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 251` ``` guess i using kle_strict(2)[OF assms] .. ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 252` ``` hence "card {i} \ card {k\{1..n}. x k < y k}" apply- apply(rule card_mono) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 253` ``` thus ?thesis by auto qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 254` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 255` ```lemma kle_range_combine: ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 256` ``` assumes "kle n x y" "kle n y z" "kle n x z \ kle n z x" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 257` ``` "m1 \ card {k\{1..n}. x k < y k}" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 258` ``` "m2 \ card {k\{1..n}. y k < z k}" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 259` ``` shows "kle n x z \ m1 + m2 \ card {k\{1..n}. x k < z k}" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 260` ``` apply(rule,rule kle_trans[OF assms(1-3)]) proof- ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 261` ``` have "\j. x j < y j \ x j < z j" apply(rule less_le_trans) using kle_imp_pointwise[OF assms(2)] by auto moreover ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 262` ``` have "\j. y j < z j \ x j < z j" apply(rule le_less_trans) using kle_imp_pointwise[OF assms(1)] by auto ultimately ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 263` ``` have *:"{k\{1..n}. x k < y k} \ {k\{1..n}. y k < z k} = {k\{1..n}. x k < z k}" by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 264` ``` have **:"{k \ {1..n}. x k < y k} \ {k \ {1..n}. y k < z k} = {}" unfolding disjoint_iff_not_equal ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 265` ``` apply(rule,rule,unfold mem_Collect_eq,rule ccontr) apply(erule conjE)+ proof- ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 266` ``` fix i j assume as:"i \ {1..n}" "x i < y i" "j \ {1..n}" "y j < z j" "\ i \ j" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 267` ``` guess kx using assms(1)[unfolded kle_def] .. note kx=this ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 268` ``` have "x i < y i" using as by auto hence "i \ kx" using as(1) kx apply(rule_tac ccontr) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 269` ``` hence "x i + 1 = y i" using kx by auto moreover ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 270` ``` guess ky using assms(2)[unfolded kle_def] .. note ky=this ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 271` ``` have "y i < z i" using as by auto hence "i \ ky" using as(1) ky apply(rule_tac ccontr) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 272` ``` hence "y i + 1 = z i" using ky by auto ultimately ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 273` ``` have "z i = x i + 2" by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 274` ``` thus False using assms(3) unfolding kle_def by(auto simp add: split_if_eq1) qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 275` ``` have fin:"\P. finite {x\{1..n::nat}. P x}" by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 276` ``` have "m1 + m2 \ card {k\{1..n}. x k < y k} + card {k\{1..n}. y k < z k}" using assms(4-5) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 277` ``` also have "\ \ card {k\{1..n}. x k < z k}" unfolding card_Un_Int[OF fin fin] unfolding * ** by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 278` ``` finally show " m1 + m2 \ card {k \ {1..n}. x k < z k}" by auto qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 279` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 280` ```lemma kle_range_combine_l: ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 281` ``` assumes "kle n x y" "kle n y z" "kle n x z \ kle n z x" "m \ card {k\{1..n}. y(k) < z(k)}" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 282` ``` shows "kle n x z \ m \ card {k\{1..n}. x(k) < z(k)}" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 283` ``` using kle_range_combine[OF assms(1-3) _ assms(4), of 0] by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 284` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 285` ```lemma kle_range_combine_r: ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 286` ``` assumes "kle n x y" "kle n y z" "kle n x z \ kle n z x" "m \ card {k\{1..n}. x k < y k}" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 287` ``` shows "kle n x z \ m \ card {k\{1..n}. x(k) < z(k)}" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 288` ``` using kle_range_combine[OF assms(1-3) assms(4), of 0] by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 289` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 290` ```lemma kle_range_induct: ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 291` ``` assumes "card s = Suc m" "\x\s. \y\s. kle n x y \ kle n y x" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 292` ``` shows "\x\s. \y\s. kle n x y \ m \ card {k\{1..n}. x k < y k}" proof- ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 293` ```have "finite s" "s\{}" using assms(1) by (auto intro: card_ge_0_finite) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 294` ```thus ?thesis using assms apply- proof(induct m arbitrary: s) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 295` ``` case 0 thus ?case using kle_refl by auto next ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 296` ``` case (Suc m) then obtain a where a:"a\s" "\x\s. kle n a x" using kle_minimal[of s n] by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 297` ``` show ?case proof(cases "s \ {a}") case False ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 298` ``` hence "card (s - {a}) = Suc m" "s - {a} \ {}" using card_Diff_singleton[OF _ a(1)] Suc(4) `finite s` by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 299` ``` then obtain x b where xb:"x\s - {a}" "b\s - {a}" "kle n x b" "m \ card {k \ {1..n}. x k < b k}" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 300` ``` using Suc(1)[of "s - {a}"] using Suc(5) `finite s` by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 301` ``` have "1 \ card {k \ {1..n}. a k < x k}" "m \ card {k \ {1..n}. x k < b k}" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 302` ``` apply(rule kle_strict_set) apply(rule a(2)[rule_format]) using a and xb by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 303` ``` thus ?thesis apply(rule_tac x=a in bexI, rule_tac x=b in bexI) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 304` ``` using kle_range_combine[OF a(2)[rule_format] xb(3) Suc(5)[rule_format], of 1 "m"] using a(1) xb(1-2) by auto next ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 305` ``` case True hence "s = {a}" using Suc(3) by auto hence "card s = 1" by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 306` ``` hence False using Suc(4) `finite s` by auto thus ?thesis by auto qed qed qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 307` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 308` ```lemma kle_Suc: "kle n x y \ kle (n + 1) x y" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 309` ``` unfolding kle_def apply(erule exE) apply(rule_tac x=k in exI) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 310` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 311` ```lemma kle_trans_1: assumes "kle n x y" shows "x j \ y j" "y j \ x j + 1" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 312` ``` using assms[unfolded kle_def] by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 313` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 314` ```lemma kle_trans_2: assumes "kle n a b" "kle n b c" "\j. c j \ a j + 1" shows "kle n a c" proof- ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 315` ``` guess kk1 using assms(1)[unfolded kle_def] .. note kk1=this ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 316` ``` guess kk2 using assms(2)[unfolded kle_def] .. note kk2=this ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 317` ``` show ?thesis unfolding kle_def apply(rule_tac x="kk1 \ kk2" in exI) apply(rule) defer proof ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 318` ``` fix i show "c i = a i + (if i \ kk1 \ kk2 then 1 else 0)" proof(cases "i\kk1 \ kk2") ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 319` ``` case True hence "c i \ a i + (if i \ kk1 \ kk2 then 1 else 0)" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 320` ``` unfolding kk1[THEN conjunct2,rule_format,of i] kk2[THEN conjunct2,rule_format,of i] by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 321` ``` moreover have "c i \ a i + (if i \ kk1 \ kk2 then 1 else 0)" using True assms(3) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 322` ``` ultimately show ?thesis by auto next ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 323` ``` case False thus ?thesis using kk1 kk2 by auto qed qed(insert kk1 kk2, auto) qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 324` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 325` ```lemma kle_between_r: assumes "kle n a b" "kle n b c" "kle n a x" "kle n c x" shows "kle n b x" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 326` ``` apply(rule kle_trans_2[OF assms(2,4)]) proof have *:"\c b x::nat. x \ c + 1 \ c \ b \ x \ b + 1" by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 327` ``` fix j show "x j \ b j + 1" apply(rule *)using kle_trans_1[OF assms(1),of j] kle_trans_1[OF assms(3), of j] by auto qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 328` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 329` ```lemma kle_between_l: assumes "kle n a b" "kle n b c" "kle n x a" "kle n x c" shows "kle n x b" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 330` ``` apply(rule kle_trans_2[OF assms(3,1)]) proof have *:"\c b x::nat. c \ x + 1 \ b \ c \ b \ x + 1" by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 331` ``` fix j show "b j \ x j + 1" apply(rule *) using kle_trans_1[OF assms(2),of j] kle_trans_1[OF assms(4), of j] by auto qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 332` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 333` ```lemma kle_adjacent: ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 334` ``` assumes "\j. b j = (if j = k then a(j) + 1 else a j)" "kle n a x" "kle n x b" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 335` ``` shows "(x = a) \ (x = b)" proof(cases "x k = a k") ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 336` ``` case True show ?thesis apply(rule disjI1,rule ext) proof- fix j ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 337` ``` have "x j \ a j" using kle_imp_pointwise[OF assms(3),THEN spec[where x=j]] ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 338` ``` unfolding assms(1)[rule_format] apply-apply(cases "j=k") using True by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 339` ``` thus "x j = a j" using kle_imp_pointwise[OF assms(2),THEN spec[where x=j]] by auto qed next ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 340` ``` case False show ?thesis apply(rule disjI2,rule ext) proof- fix j ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 341` ``` have "x j \ b j" using kle_imp_pointwise[OF assms(2),THEN spec[where x=j]] ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 342` ``` unfolding assms(1)[rule_format] apply-apply(cases "j=k") using False by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 343` ``` thus "x j = b j" using kle_imp_pointwise[OF assms(3),THEN spec[where x=j]] by auto qed qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 344` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 345` ```subsection {* kuhn's notion of a simplex (a reformulation to avoid so much indexing). *} ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 346` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 347` ```definition "ksimplex p n (s::(nat \ nat) set) \ ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 348` ``` (card s = n + 1 \ ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 349` ``` (\x\s. \j. x(j) \ p) \ ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 350` ``` (\x\s. \j. j\{1..n} \ (x j = p)) \ ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 351` ``` (\x\s. \y\s. kle n x y \ kle n y x))" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 352` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 353` ```lemma ksimplexI:"card s = n + 1 \ \x\s. \j. x j \ p \ \x\s. \j. j \ {1..?n} \ x j = ?p \ \x\s. \y\s. kle n x y \ kle n y x \ ksimplex p n s" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 354` ``` unfolding ksimplex_def by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 355` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 356` ```lemma ksimplex_eq: "ksimplex p n (s::(nat \ nat) set) \ ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 357` ``` (card s = n + 1 \ finite s \ ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 358` ``` (\x\s. \j. x(j) \ p) \ ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 359` ``` (\x\s. \j. j\{1..n} \ (x j = p)) \ ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 360` ``` (\x\s. \y\s. kle n x y \ kle n y x))" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 361` ``` unfolding ksimplex_def by (auto intro: card_ge_0_finite) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 362` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 363` ```lemma ksimplex_extrema: assumes "ksimplex p n s" obtains a b where "a \ s" "b \ s" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 364` ``` "\x\s. kle n a x \ kle n x b" "\i. b(i) = (if i \ {1..n} then a(i) + 1 else a(i))" proof(cases "n=0") ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 365` ``` case True obtain x where *:"s = {x}" using assms[unfolded ksimplex_eq True,THEN conjunct1] ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 366` ``` unfolding add_0_left card_1_exists by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 367` ``` show ?thesis apply(rule that[of x x]) unfolding * True by auto next ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 368` ``` note assm = assms[unfolded ksimplex_eq] ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 369` ``` case False have "s\{}" using assm by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 370` ``` obtain a where a:"a\s" "\x\s. kle n a x" using `s\{}` assm using kle_minimal[of s n] by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 371` ``` obtain b where b:"b\s" "\x\s. kle n x b" using `s\{}` assm using kle_maximal[of s n] by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 372` ``` obtain c d where c_d:"c\s" "d\s" "kle n c d" "n \ card {k \ {1..n}. c k < d k}" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 373` ``` using kle_range_induct[of s n n] using assm by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 374` ``` have "kle n c b \ n \ card {k \ {1..n}. c k < b k}" apply(rule kle_range_combine_r[where y=d]) using c_d a b by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 375` ``` hence "kle n a b \ n \ card {k\{1..n}. a(k) < b(k)}" apply-apply(rule kle_range_combine_l[where y=c]) using a `c\s` `b\s` by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 376` ``` moreover have "card {1..n} \ card {k\{1..n}. a(k) < b(k)}" apply(rule card_mono) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 377` ``` ultimately have *:"{k\{1 .. n}. a k < b k} = {1..n}" apply- apply(rule card_subset_eq) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 378` ``` show ?thesis apply(rule that[OF a(1) b(1)]) defer apply(subst *[THEN sym]) unfolding mem_Collect_eq proof ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 379` ``` guess k using a(2)[rule_format,OF b(1),unfolded kle_def] .. note k=this ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 380` ``` fix i show "b i = (if i \ {1..n} \ a i < b i then a i + 1 else a i)" proof(cases "i \ {1..n}") ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 381` ``` case True thus ?thesis unfolding k[THEN conjunct2,rule_format] by auto next ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 382` ``` case False have "a i = p" using assm and False `a\s` by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 383` ``` moreover have "b i = p" using assm and False `b\s` by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 384` ``` ultimately show ?thesis by auto qed qed(insert a(2) b(2) assm,auto) qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 385` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 386` ```lemma ksimplex_extrema_strong: ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 387` ``` assumes "ksimplex p n s" "n \ 0" obtains a b where "a \ s" "b \ s" "a \ b" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 388` ``` "\x\s. kle n a x \ kle n x b" "\i. b(i) = (if i \ {1..n} then a(i) + 1 else a(i))" proof- ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 389` ``` obtain a b where ab:"a \ s" "b \ s" "\x\s. kle n a x \ kle n x b" "\i. b(i) = (if i \ {1..n} then a(i) + 1 else a(i))" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 390` ``` apply(rule ksimplex_extrema[OF assms(1)]) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 391` ``` have "a \ b" apply(rule ccontr) unfolding not_not apply(drule cong[of _ _ 1 1]) using ab(4) assms(2) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 392` ``` thus ?thesis apply(rule_tac that[of a b]) using ab by auto qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 393` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 394` ```lemma ksimplexD: ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 395` ``` assumes "ksimplex p n s" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 396` ``` shows "card s = n + 1" "finite s" "card s = n + 1" "\x\s. \j. x j \ p" "\x\s. \j. j \ {1..?n} \ x j = p" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 397` ``` "\x\s. \y\s. kle n x y \ kle n y x" using assms unfolding ksimplex_eq by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 398` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 399` ```lemma ksimplex_successor: ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 400` ``` assumes "ksimplex p n s" "a \ s" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 401` ``` shows "(\x\s. kle n x a) \ (\y\s. \k\{1..n}. \j. y(j) = (if j = k then a(j) + 1 else a(j)))" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 402` ```proof(cases "\x\s. kle n x a") case True thus ?thesis by auto next note assm = ksimplexD[OF assms(1)] ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 403` ``` case False then obtain b where b:"b\s" "\ kle n b a" "\x\{x \ s. \ kle n x a}. kle n b x" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 404` ``` using kle_minimal[of "{x\s. \ kle n x a}" n] and assm by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 405` ``` hence **:"1 \ card {k\{1..n}. a k < b k}" apply- apply(rule kle_strict_set) using assm(6) and `a\s` by(auto simp add:kle_refl) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 406` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 407` ``` let ?kle1 = "{x \ s. \ kle n x a}" have "card ?kle1 > 0" apply(rule ccontr) using assm(2) and False by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 408` ``` hence sizekle1: "card ?kle1 = Suc (card ?kle1 - 1)" using assm(2) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 409` ``` obtain c d where c_d: "c \ s" "\ kle n c a" "d \ s" "\ kle n d a" "kle n c d" "card ?kle1 - 1 \ card {k \ {1..n}. c k < d k}" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 410` ``` using kle_range_induct[OF sizekle1, of n] using assm by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 411` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 412` ``` let ?kle2 = "{x \ s. kle n x a}" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 413` ``` have "card ?kle2 > 0" apply(rule ccontr) using assm(6)[rule_format,of a a] and `a\s` and assm(2) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 414` ``` hence sizekle2:"card ?kle2 = Suc (card ?kle2 - 1)" using assm(2) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 415` ``` obtain e f where e_f: "e \ s" "kle n e a" "f \ s" "kle n f a" "kle n e f" "card ?kle2 - 1 \ card {k \ {1..n}. e k < f k}" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 416` ``` using kle_range_induct[OF sizekle2, of n] using assm by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 417` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 418` ``` have "card {k\{1..n}. a k < b k} = 1" proof(rule ccontr) case goal1 ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 419` ``` hence as:"card {k\{1..n}. a k < b k} \ 2" using ** by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 420` ``` have *:"finite ?kle2" "finite ?kle1" "?kle2 \ ?kle1 = s" "?kle2 \ ?kle1 = {}" using assm(2) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 421` ``` have "(card ?kle2 - 1) + 2 + (card ?kle1 - 1) = card ?kle2 + card ?kle1" using sizekle1 sizekle2 by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 422` ``` also have "\ = n + 1" unfolding card_Un_Int[OF *(1-2)] *(3-) using assm(3) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 423` ``` finally have n:"(card ?kle2 - 1) + (2 + (card ?kle1 - 1)) = n + 1" by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 424` ``` have "kle n e a \ card {x \ s. kle n x a} - 1 \ card {k \ {1..n}. e k < a k}" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 425` ``` apply(rule kle_range_combine_r[where y=f]) using e_f using `a\s` assm(6) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 426` ``` moreover have "kle n b d \ card {x \ s. \ kle n x a} - 1 \ card {k \ {1..n}. b k < d k}" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 427` ``` apply(rule kle_range_combine_l[where y=c]) using c_d using assm(6) and b by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 428` ``` hence "kle n a d \ 2 + (card {x \ s. \ kle n x a} - 1) \ card {k \ {1..n}. a k < d k}" apply- ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 429` ``` apply(rule kle_range_combine[where y=b]) using as and b assm(6) `a\s` `d\s` apply- by blast+ ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 430` ``` ultimately have "kle n e d \ (card ?kle2 - 1) + (2 + (card ?kle1 - 1)) \ card {k\{1..n}. e k < d k}" apply- ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 431` ``` apply(rule kle_range_combine[where y=a]) using assm(6)[rule_format,OF `e\s` `d\s`] apply - by blast+ ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 432` ``` moreover have "card {k \ {1..n}. e k < d k} \ card {1..n}" apply(rule card_mono) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 433` ``` ultimately show False unfolding n by auto qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 434` ``` then guess k unfolding card_1_exists .. note k=this[unfolded mem_Collect_eq] ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 435` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 436` ``` show ?thesis apply(rule disjI2) apply(rule_tac x=b in bexI,rule_tac x=k in bexI) proof ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 437` ``` fix j::nat have "kle n a b" using b and assm(6)[rule_format, OF `a\s` `b\s`] by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 438` ``` then guess kk unfolding kle_def .. note kk_raw=this note kk=this[THEN conjunct2,rule_format] ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 439` ``` have kkk:"k\kk" apply(rule ccontr) using k(1) unfolding kk by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 440` ``` show "b j = (if j = k then a j + 1 else a j)" proof(cases "j\kk") ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 441` ``` case True hence "j=k" apply-apply(rule k(2)[rule_format]) using kk_raw kkk by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 442` ``` thus ?thesis unfolding kk using kkk by auto next ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 443` ``` case False hence "j\k" using k(2)[rule_format, of j k] using kk_raw kkk by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 444` ``` thus ?thesis unfolding kk using kkk using False by auto qed qed(insert k(1) `b\s`, auto) qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 445` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 446` ```lemma ksimplex_predecessor: ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 447` ``` assumes "ksimplex p n s" "a \ s" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 448` ``` shows "(\x\s. kle n a x) \ (\y\s. \k\{1..n}. \j. a(j) = (if j = k then y(j) + 1 else y(j)))" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 449` ```proof(cases "\x\s. kle n a x") case True thus ?thesis by auto next note assm = ksimplexD[OF assms(1)] ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 450` ``` case False then obtain b where b:"b\s" "\ kle n a b" "\x\{x \ s. \ kle n a x}. kle n x b" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 451` ``` using kle_maximal[of "{x\s. \ kle n a x}" n] and assm by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 452` ``` hence **:"1 \ card {k\{1..n}. a k > b k}" apply- apply(rule kle_strict_set) using assm(6) and `a\s` by(auto simp add:kle_refl) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 453` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 454` ``` let ?kle1 = "{x \ s. \ kle n a x}" have "card ?kle1 > 0" apply(rule ccontr) using assm(2) and False by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 455` ``` hence sizekle1:"card ?kle1 = Suc (card ?kle1 - 1)" using assm(2) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 456` ``` obtain c d where c_d: "c \ s" "\ kle n a c" "d \ s" "\ kle n a d" "kle n d c" "card ?kle1 - 1 \ card {k \ {1..n}. c k > d k}" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 457` ``` using kle_range_induct[OF sizekle1, of n] using assm by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 458` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 459` ``` let ?kle2 = "{x \ s. kle n a x}" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 460` ``` have "card ?kle2 > 0" apply(rule ccontr) using assm(6)[rule_format,of a a] and `a\s` and assm(2) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 461` ``` hence sizekle2:"card ?kle2 = Suc (card ?kle2 - 1)" using assm(2) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 462` ``` obtain e f where e_f: "e \ s" "kle n a e" "f \ s" "kle n a f" "kle n f e" "card ?kle2 - 1 \ card {k \ {1..n}. e k > f k}" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 463` ``` using kle_range_induct[OF sizekle2, of n] using assm by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 464` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 465` ``` have "card {k\{1..n}. a k > b k} = 1" proof(rule ccontr) case goal1 ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 466` ``` hence as:"card {k\{1..n}. a k > b k} \ 2" using ** by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 467` ``` have *:"finite ?kle2" "finite ?kle1" "?kle2 \ ?kle1 = s" "?kle2 \ ?kle1 = {}" using assm(2) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 468` ``` have "(card ?kle2 - 1) + 2 + (card ?kle1 - 1) = card ?kle2 + card ?kle1" using sizekle1 sizekle2 by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 469` ``` also have "\ = n + 1" unfolding card_Un_Int[OF *(1-2)] *(3-) using assm(3) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 470` ``` finally have n:"(card ?kle1 - 1) + 2 + (card ?kle2 - 1) = n + 1" by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 471` ``` have "kle n a e \ card {x \ s. kle n a x} - 1 \ card {k \ {1..n}. e k > a k}" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 472` ``` apply(rule kle_range_combine_l[where y=f]) using e_f using `a\s` assm(6) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 473` ``` moreover have "kle n d b \ card {x \ s. \ kle n a x} - 1 \ card {k \ {1..n}. b k > d k}" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 474` ``` apply(rule kle_range_combine_r[where y=c]) using c_d using assm(6) and b by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 475` ``` hence "kle n d a \ (card {x \ s. \ kle n a x} - 1) + 2 \ card {k \ {1..n}. a k > d k}" apply- ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 476` ``` apply(rule kle_range_combine[where y=b]) using as and b assm(6) `a\s` `d\s` by blast+ ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 477` ``` ultimately have "kle n d e \ (card ?kle1 - 1 + 2) + (card ?kle2 - 1) \ card {k\{1..n}. e k > d k}" apply- ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 478` ``` apply(rule kle_range_combine[where y=a]) using assm(6)[rule_format,OF `e\s` `d\s`] apply - by blast+ ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 479` ``` moreover have "card {k \ {1..n}. e k > d k} \ card {1..n}" apply(rule card_mono) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 480` ``` ultimately show False unfolding n by auto qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 481` ``` then guess k unfolding card_1_exists .. note k=this[unfolded mem_Collect_eq] ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 482` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 483` ``` show ?thesis apply(rule disjI2) apply(rule_tac x=b in bexI,rule_tac x=k in bexI) proof ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 484` ``` fix j::nat have "kle n b a" using b and assm(6)[rule_format, OF `a\s` `b\s`] by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 485` ``` then guess kk unfolding kle_def .. note kk_raw=this note kk=this[THEN conjunct2,rule_format] ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 486` ``` have kkk:"k\kk" apply(rule ccontr) using k(1) unfolding kk by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 487` ``` show "a j = (if j = k then b j + 1 else b j)" proof(cases "j\kk") ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 488` ``` case True hence "j=k" apply-apply(rule k(2)[rule_format]) using kk_raw kkk by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 489` ``` thus ?thesis unfolding kk using kkk by auto next ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 490` ``` case False hence "j\k" using k(2)[rule_format, of j k] using kk_raw kkk by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 491` ``` thus ?thesis unfolding kk using kkk using False by auto qed qed(insert k(1) `b\s`, auto) qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 492` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 493` ```subsection {* The lemmas about simplices that we need. *} ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 494` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 495` ```lemma card_funspace': assumes "finite s" "finite t" "card s = m" "card t = n" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 496` ``` shows "card {f. (\x\s. f x \ t) \ (\x\UNIV - s. f x = d)} = n ^ m" (is "card (?M s) = _") ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 497` ``` using assms apply - proof(induct m arbitrary: s) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 498` ``` have *:"{f. \x. f x = d} = {\x. d}" apply(rule set_ext,rule)unfolding mem_Collect_eq apply(rule,rule ext) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 499` ``` case 0 thus ?case by(auto simp add: *) next ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 500` ``` case (Suc m) guess a using card_eq_SucD[OF Suc(4)] .. then guess s0 ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 501` ``` apply(erule_tac exE) apply(erule conjE)+ . note as0 = this ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 502` ``` have **:"card s0 = m" using as0 using Suc(2) Suc(4) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 503` ``` let ?l = "(\(b,g) x. if x = a then b else g x)" have *:"?M (insert a s0) = ?l ` {(b,g). b\t \ g\?M s0}" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 504` ``` apply(rule set_ext,rule) unfolding mem_Collect_eq image_iff apply(erule conjE) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 505` ``` apply(rule_tac x="(x a, \y. if y\s0 then x y else d)" in bexI) apply(rule ext) prefer 3 apply rule defer ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 506` ``` apply(erule bexE,rule) unfolding mem_Collect_eq apply(erule splitE)+ apply(erule conjE)+ proof- ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 507` ``` fix x xa xb xc y assume as:"x = (\(b, g) x. if x = a then b else g x) xa" "xb \ UNIV - insert a s0" "xa = (xc, y)" "xc \ t" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 508` ``` "\x\s0. y x \ t" "\x\UNIV - s0. y x = d" thus "x xb = d" unfolding as by auto qed auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 509` ``` have inj:"inj_on ?l {(b,g). b\t \ g\?M s0}" unfolding inj_on_def apply(rule,rule,rule) unfolding mem_Collect_eq apply(erule splitE conjE)+ proof- ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 510` ``` case goal1 note as = this(1,4-)[unfolded goal1 split_conv] ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 511` ``` have "xa = xb" using as(1)[THEN cong[of _ _ a]] by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 512` ``` moreover have "ya = yb" proof(rule ext) fix x show "ya x = yb x" proof(cases "x = a") ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 513` ``` case False thus ?thesis using as(1)[THEN cong[of _ _ x x]] by auto next ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 514` ``` case True thus ?thesis using as(5,7) using as0(2) by auto qed qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 515` ``` ultimately show ?case unfolding goal1 by auto qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 516` ``` have "finite s0" using `finite s` unfolding as0 by simp ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 517` ``` show ?case unfolding as0 * card_image[OF inj] using assms ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 518` ``` unfolding SetCompr_Sigma_eq apply- ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 519` ``` unfolding card_cartesian_product ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 520` ``` using Suc(1)[OF `finite s0` `finite t` ** `card t = n`] by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 521` ```qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 522` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 523` ```lemma card_funspace: assumes "finite s" "finite t" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 524` ``` shows "card {f. (\x\s. f x \ t) \ (\x\UNIV - s. f x = d)} = (card t) ^ (card s)" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 525` ``` using assms by (auto intro: card_funspace') ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 526` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 527` ```lemma finite_funspace: assumes "finite s" "finite t" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 528` ``` shows "finite {f. (\x\s. f x \ t) \ (\x\UNIV - s. f x = d)}" (is "finite ?S") ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 529` ```proof (cases "card t > 0") ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 530` ``` case True ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 531` ``` have "card ?S = (card t) ^ (card s)" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 532` ``` using assms by (auto intro!: card_funspace) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 533` ``` thus ?thesis using True by (auto intro: card_ge_0_finite) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 534` ```next ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 535` ``` case False hence "t = {}" using `finite t` by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 536` ``` show ?thesis ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 537` ``` proof (cases "s = {}") ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 538` ``` have *:"{f. \x. f x = d} = {\x. d}" by (auto intro: ext) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 539` ``` case True thus ?thesis using `t = {}` by (auto simp: *) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 540` ``` next ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 541` ``` case False thus ?thesis using `t = {}` by simp ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 542` ``` qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 543` ```qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 544` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 545` ```lemma finite_simplices: "finite {s. ksimplex p n s}" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 546` ``` apply(rule finite_subset[of _ "{s. s\{f. (\i\{1..n}. f i \ {0..p}) \ (\i\UNIV-{1..n}. f i = p)}}"]) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 547` ``` unfolding ksimplex_def defer apply(rule finite_Collect_subsets) apply(rule finite_funspace) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 548` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 549` ```lemma simplex_top_face: assumes "0x\f. x (n + 1) = p" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 550` ``` shows "(\s a. ksimplex p (n + 1) s \ a \ s \ (f = s - {a})) \ ksimplex p n f" (is "?ls = ?rs") proof ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 551` ``` assume ?ls then guess s .. then guess a apply-apply(erule exE,(erule conjE)+) . note sa=this ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 552` ``` show ?rs unfolding ksimplex_def sa(3) apply(rule) defer apply rule defer apply(rule,rule,rule,rule) defer apply(rule,rule) proof- ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 553` ``` fix x y assume as:"x \s - {a}" "y \s - {a}" have xyp:"x (n + 1) = y (n + 1)" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 554` ``` using as(1)[unfolded sa(3)[THEN sym], THEN assms(2)[rule_format]] ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 555` ``` using as(2)[unfolded sa(3)[THEN sym], THEN assms(2)[rule_format]] by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 556` ``` show "kle n x y \ kle n y x" proof(cases "kle (n + 1) x y") ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 557` ``` case True then guess k unfolding kle_def .. note k=this hence *:"n+1 \ k" using xyp by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 558` ``` have "\ (\x\k. x\{1..n})" apply(rule ccontr) unfolding not_not apply(erule bexE) proof- ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 559` ``` fix x assume as:"x \ k" "x \ {1..n}" have "x \ n+1" using as and * by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 560` ``` thus False using as and k[THEN conjunct1,unfolded subset_eq] by auto qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 561` ``` thus ?thesis apply-apply(rule disjI1) unfolding kle_def using k apply(rule_tac x=k in exI) by auto next ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 562` ``` case False hence "kle (n + 1) y x" using ksimplexD(6)[OF sa(1),rule_format, of x y] using as by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 563` ``` then guess k unfolding kle_def .. note k=this hence *:"n+1 \ k" using xyp by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 564` ``` hence "\ (\x\k. x\{1..n})" apply-apply(rule ccontr) unfolding not_not apply(erule bexE) proof- ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 565` ``` fix x assume as:"x \ k" "x \ {1..n}" have "x \ n+1" using as and * by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 566` ``` thus False using as and k[THEN conjunct1,unfolded subset_eq] by auto qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 567` ``` thus ?thesis apply-apply(rule disjI2) unfolding kle_def using k apply(rule_tac x=k in exI) by auto qed next ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 568` ``` fix x j assume as:"x\s - {a}" "j\{1..n}" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 569` ``` thus "x j = p" using as(1)[unfolded sa(3)[THEN sym], THEN assms(2)[rule_format]] ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 570` ``` apply(cases "j = n+1") using sa(1)[unfolded ksimplex_def] by auto qed(insert sa ksimplexD[OF sa(1)], auto) next ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 571` ``` assume ?rs note rs=ksimplexD[OF this] guess a b apply(rule ksimplex_extrema[OF `?rs`]) . note ab = this ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 572` ``` def c \ "\i. if i = (n + 1) then p - 1 else a i" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 573` ``` have "c\f" apply(rule ccontr) unfolding not_not apply(drule assms(2)[rule_format]) unfolding c_def using assms(1) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 574` ``` thus ?ls apply(rule_tac x="insert c f" in exI,rule_tac x=c in exI) unfolding ksimplex_def conj_assoc ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 575` ``` apply(rule conjI) defer apply(rule conjI) defer apply(rule conjI) defer apply(rule conjI) defer ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 576` ``` proof(rule_tac[3-5] ballI allI)+ ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 577` ``` fix x j assume x:"x \ insert c f" thus "x j \ p" proof (cases "x=c") ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 578` ``` case True show ?thesis unfolding True c_def apply(cases "j=n+1") using ab(1) and rs(4) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 579` ``` qed(insert x rs(4), auto simp add:c_def) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 580` ``` show "j \ {1..n + 1} \ x j = p" apply(cases "x=c") using x ab(1) rs(5) unfolding c_def by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 581` ``` { fix z assume z:"z \ insert c f" hence "kle (n + 1) c z" apply(cases "z = c") (*defer apply(rule kle_Suc)*) proof- ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 582` ``` case False hence "z\f" using z by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 583` ``` then guess k apply(drule_tac ab(3)[THEN bspec[where x=z], THEN conjunct1]) unfolding kle_def apply(erule exE) . ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 584` ``` thus "kle (n + 1) c z" unfolding kle_def apply(rule_tac x="insert (n + 1) k" in exI) unfolding c_def ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 585` ``` using ab using rs(5)[rule_format,OF ab(1),of "n + 1"] assms(1) by auto qed auto } note * = this ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 586` ``` fix y assume y:"y \ insert c f" show "kle (n + 1) x y \ kle (n + 1) y x" proof(cases "x = c \ y = c") ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 587` ``` case False hence **:"x\f" "y\f" using x y by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 588` ``` show ?thesis using rs(6)[rule_format,OF **] by(auto dest: kle_Suc) qed(insert * x y, auto) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 589` ``` qed(insert rs, auto) qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 590` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 591` ```lemma ksimplex_fix_plane: ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 592` ``` assumes "a \ s" "j\{1..n::nat}" "\x\s - {a}. x j = q" "a0 \ s" "a1 \ s" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 593` ``` "\i. a1 i = ((if i\{1..n} then a0 i + 1 else a0 i)::nat)" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 594` ``` shows "(a = a0) \ (a = a1)" proof- have *:"\P A x y. \x\A. P x \ x\A \ y\A \ P x \ P y" by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 595` ``` show ?thesis apply(rule ccontr) using *[OF assms(3), of a0 a1] unfolding assms(6)[THEN spec[where x=j]] ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 596` ``` using assms(1-2,4-5) by auto qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 597` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 598` ```lemma ksimplex_fix_plane_0: ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 599` ``` assumes "a \ s" "j\{1..n::nat}" "\x\s - {a}. x j = 0" "a0 \ s" "a1 \ s" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 600` ``` "\i. a1 i = ((if i\{1..n} then a0 i + 1 else a0 i)::nat)" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 601` ``` shows "a = a1" apply(rule ccontr) using ksimplex_fix_plane[OF assms] ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 602` ``` using assms(3)[THEN bspec[where x=a1]] using assms(2,5) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 603` ``` unfolding assms(6)[THEN spec[where x=j]] by simp ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 604` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 605` ```lemma ksimplex_fix_plane_p: ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 606` ``` assumes "ksimplex p n s" "a \ s" "j\{1..n}" "\x\s - {a}. x j = p" "a0 \ s" "a1 \ s" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 607` ``` "\i. a1 i = (if i\{1..n} then a0 i + 1 else a0 i)" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 608` ``` shows "a = a0" proof(rule ccontr) note s = ksimplexD[OF assms(1),rule_format] ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 609` ``` assume as:"a \ a0" hence *:"a0 \ s - {a}" using assms(5) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 610` ``` hence "a1 = a" using ksimplex_fix_plane[OF assms(2-)] by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 611` ``` thus False using as using assms(3,5) and assms(7)[rule_format,of j] ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 612` ``` unfolding assms(4)[rule_format,OF *] using s(4)[OF assms(6), of j] by auto qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 613` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 614` ```lemma ksimplex_replace_0: ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 615` ``` assumes "ksimplex p n s" "a \ s" "n \ 0" "j\{1..n}" "\x\s - {a}. x j = 0" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 616` ``` shows "card {s'. ksimplex p n s' \ (\b\s'. s' - {b} = s - {a})} = 1" proof- ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 617` ``` have *:"\s' a a'. s' - {a'} = s - {a} \ a' = a \ a' \ s' \ a \ s \ (s' = s)" by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 618` ``` have **:"\s' a'. ksimplex p n s' \ a' \ s' \ s' - {a'} = s - {a} \ s' = s" proof- case goal1 ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 619` ``` guess a0 a1 apply(rule ksimplex_extrema_strong[OF assms(1,3)]) . note exta = this[rule_format] ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 620` ``` have a:"a = a1" apply(rule ksimplex_fix_plane_0[OF assms(2,4-5)]) using exta(1-2,5) by auto moreover ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 621` ``` guess b0 b1 apply(rule ksimplex_extrema_strong[OF goal1(1) assms(3)]) . note extb = this[rule_format] ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 622` ``` have a':"a' = b1" apply(rule ksimplex_fix_plane_0[OF goal1(2) assms(4), of b0]) unfolding goal1(3) using assms extb goal1 by auto moreover ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 623` ``` have "b0 = a0" unfolding kle_antisym[THEN sym, of b0 a0 n] using exta extb using goal1(3) unfolding a a' by blast ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 624` ``` hence "b1 = a1" apply-apply(rule ext) unfolding exta(5) extb(5) by auto ultimately ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 625` ``` show "s' = s" apply-apply(rule *[of _ a1 b1]) using exta(1-2) extb(1-2) goal1 by auto qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 626` ``` show ?thesis unfolding card_1_exists apply-apply(rule ex1I[of _ s]) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 627` ``` unfolding mem_Collect_eq defer apply(erule conjE bexE)+ apply(rule_tac a'=b in **) using assms(1,2) by auto qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 628` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 629` ```lemma ksimplex_replace_1: ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 630` ``` assumes "ksimplex p n s" "a \ s" "n \ 0" "j\{1..n}" "\x\s - {a}. x j = p" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 631` ``` shows "card {s'. ksimplex p n s' \ (\b\s'. s' - {b} = s - {a})} = 1" proof- ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 632` ``` have lem:"\a a' s'. s' - {a'} = s - {a} \ a' = a \ a' \ s' \ a \ s \ s' = s" by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 633` ``` have lem:"\s' a'. ksimplex p n s' \ a'\s' \ s' - {a'} = s - {a} \ s' = s" proof- case goal1 ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 634` ``` guess a0 a1 apply(rule ksimplex_extrema_strong[OF assms(1,3)]) . note exta = this[rule_format] ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 635` ``` have a:"a = a0" apply(rule ksimplex_fix_plane_p[OF assms(1-2,4-5) exta(1,2)]) unfolding exta by auto moreover ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 636` ``` guess b0 b1 apply(rule ksimplex_extrema_strong[OF goal1(1) assms(3)]) . note extb = this[rule_format] ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 637` ``` have a':"a' = b0" apply(rule ksimplex_fix_plane_p[OF goal1(1-2) assms(4), of _ b1]) unfolding goal1 extb using extb(1,2) assms(5) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 638` ``` moreover have *:"b1 = a1" unfolding kle_antisym[THEN sym, of b1 a1 n] using exta extb using goal1(3) unfolding a a' by blast moreover ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 639` ``` have "a0 = b0" apply(rule ext) proof- case goal1 show "a0 x = b0 x" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 640` ``` using *[THEN cong, of x x] unfolding exta extb apply-apply(cases "x\{1..n}") by auto qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 641` ``` ultimately show "s' = s" apply-apply(rule lem[OF goal1(3) _ goal1(2) assms(2)]) by auto qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 642` ``` show ?thesis unfolding card_1_exists apply(rule ex1I[of _ s]) unfolding mem_Collect_eq apply(rule,rule assms(1)) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 643` ``` apply(rule_tac x=a in bexI) prefer 3 apply(erule conjE bexE)+ apply(rule_tac a'=b in lem) using assms(1-2) by auto qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 644` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 645` ```lemma ksimplex_replace_2: ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 646` ``` assumes "ksimplex p n s" "a \ s" "n \ 0" "~(\j\{1..n}. \x\s - {a}. x j = 0)" "~(\j\{1..n}. \x\s - {a}. x j = p)" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 647` ``` shows "card {s'. ksimplex p n s' \ (\b\s'. s' - {b} = s - {a})} = 2" (is "card ?A = 2") proof- ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 648` ``` have lem1:"\a a' s s'. s' - {a'} = s - {a} \ a' = a \ a' \ s' \ a \ s \ s' = s" by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 649` ``` have lem2:"\a b. a\s \ b\a \ s \ insert b (s - {a})" proof case goal1 ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 650` ``` hence "a\insert b (s - {a})" by auto hence "a\ s - {a}" unfolding insert_iff using goal1 by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 651` ``` thus False by auto qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 652` ``` guess a0 a1 apply(rule ksimplex_extrema_strong[OF assms(1,3)]) . note a0a1=this ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 653` ``` { assume "a=a0" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 654` ``` have *:"\P Q. (P \ Q) \ \ P \ Q" by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 655` ``` have "\x\s. \ kle n x a0" apply(rule_tac x=a1 in bexI) proof assume as:"kle n a1 a0" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 656` ``` show False using kle_imp_pointwise[OF as,THEN spec[where x=1]] unfolding a0a1(5)[THEN spec[where x=1]] ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 657` ``` using assms(3) by auto qed(insert a0a1,auto) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 658` ``` hence "\y\s. \k\{1..n}. \j. y j = (if j = k then a0 j + 1 else a0 j)" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 659` ``` apply(rule_tac *[OF ksimplex_successor[OF assms(1-2),unfolded `a=a0`]]) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 660` ``` then guess a2 .. from this(2) guess k .. note k=this note a2=`a2\s` ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 661` ``` def a3 \ "\j. if j = k then a1 j + 1 else a1 j" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 662` ``` have "a3 \ s" proof assume "a3\s" hence "kle n a3 a1" using a0a1(4) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 663` ``` thus False apply(drule_tac kle_imp_pointwise) unfolding a3_def ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 664` ``` apply(erule_tac x=k in allE) by auto qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 665` ``` hence "a3 \ a0" "a3 \ a1" using a0a1 by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 666` ``` have "a2 \ a0" using k(2)[THEN spec[where x=k]] by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 667` ``` have lem3:"\x. x\(s - {a0}) \ kle n a2 x" proof(rule ccontr) case goal1 hence as:"x\s" "x\a0" by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 668` ``` have "kle n a2 x \ kle n x a2" using ksimplexD(6)[OF assms(1)] and as `a2\s` by auto moreover ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 669` ``` have "kle n a0 x" using a0a1(4) as by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 670` ``` ultimately have "x = a0 \ x = a2" apply-apply(rule kle_adjacent[OF k(2)]) using goal1(2) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 671` ``` hence "x = a2" using as by auto thus False using goal1(2) using kle_refl by auto qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 672` ``` let ?s = "insert a3 (s - {a0})" have "ksimplex p n ?s" apply(rule ksimplexI) proof(rule_tac[2-] ballI,rule_tac[4] ballI) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 673` ``` show "card ?s = n + 1" using ksimplexD(2-3)[OF assms(1)] ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 674` ``` using `a3\a0` `a3\s` `a0\s` by(auto simp add:card_insert_if) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 675` ``` fix x assume x:"x \ insert a3 (s - {a0})" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 676` ``` show "\j. x j \ p" proof(rule,cases "x = a3") ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 677` ``` fix j case False thus "x j\p" using x ksimplexD(4)[OF assms(1)] by auto next ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 678` ``` fix j case True show "x j\p" unfolding True proof(cases "j=k") ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 679` ``` case False thus "a3 j \p" unfolding True a3_def using `a1\s` ksimplexD(4)[OF assms(1)] by auto next ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 680` ``` guess a4 using assms(5)[unfolded bex_simps ball_simps,rule_format,OF k(1)] .. note a4=this ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 681` ``` have "a2 k \ a4 k" using lem3[OF a4(1)[unfolded `a=a0`],THEN kle_imp_pointwise] by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 682` ``` also have "\ < p" using ksimplexD(4)[OF assms(1),rule_format,of a4 k] using a4 by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 683` ``` finally have *:"a0 k + 1 < p" unfolding k(2)[rule_format] by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 684` ``` case True thus "a3 j \p" unfolding a3_def unfolding a0a1(5)[rule_format] ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 685` ``` using k(1) k(2)assms(5) using * by simp qed qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 686` ``` show "\j. j \ {1..n} \ x j = p" proof(rule,rule,cases "x=a3") fix j::nat assume j:"j\{1..n}" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 687` ``` { case False thus "x j = p" using j x ksimplexD(5)[OF assms(1)] by auto } ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 688` ``` case True show "x j = p" unfolding True a3_def using j k(1) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 689` ``` using ksimplexD(5)[OF assms(1),rule_format,OF `a1\s` j] by auto qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 690` ``` fix y assume y:"y\insert a3 (s - {a0})" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 691` ``` have lem4:"\x. x\s \ x\a0 \ kle n x a3" proof- case goal1 ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 692` ``` guess kk using a0a1(4)[rule_format,OF `x\s`,THEN conjunct2,unfolded kle_def] ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 693` ``` apply-apply(erule exE,erule conjE) . note kk=this ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 694` ``` have "k\kk" proof assume "k\kk" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 695` ``` hence "a1 k = x k + 1" using kk by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 696` ``` hence "a0 k = x k" unfolding a0a1(5)[rule_format] using k(1) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 697` ``` hence "a2 k = x k + 1" unfolding k(2)[rule_format] by auto moreover ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 698` ``` have "a2 k \ x k" using lem3[of x,THEN kle_imp_pointwise] goal1 by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 699` ``` ultimately show False by auto qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 700` ``` thus ?case unfolding kle_def apply(rule_tac x="insert k kk" in exI) using kk(1) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 701` ``` unfolding a3_def kle_def kk(2)[rule_format] using k(1) by auto qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 702` ``` show "kle n x y \ kle n y x" proof(cases "y=a3") ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 703` ``` case True show ?thesis unfolding True apply(cases "x=a3") defer apply(rule disjI1,rule lem4) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 704` ``` using x by auto next ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 705` ``` case False show ?thesis proof(cases "x=a3") case True show ?thesis unfolding True ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 706` ``` apply(rule disjI2,rule lem4) using y False by auto next ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 707` ``` case False thus ?thesis apply(rule_tac ksimplexD(6)[OF assms(1),rule_format]) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 708` ``` using x y `y\a3` by auto qed qed qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 709` ``` hence "insert a3 (s - {a0}) \ ?A" unfolding mem_Collect_eq apply-apply(rule,assumption) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 710` ``` apply(rule_tac x="a3" in bexI) unfolding `a=a0` using `a3\s` by auto moreover ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 711` ``` have "s \ ?A" using assms(1,2) by auto ultimately have "?A \ {s, insert a3 (s - {a0})}" by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 712` ``` moreover have "?A \ {s, insert a3 (s - {a0})}" apply(rule) unfolding mem_Collect_eq proof(erule conjE) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 713` ``` fix s' assume as:"ksimplex p n s'" and "\b\s'. s' - {b} = s - {a}" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 714` ``` from this(2) guess a' .. note a'=this ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 715` ``` guess a_min a_max apply(rule ksimplex_extrema_strong[OF as assms(3)]) . note min_max=this ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 716` ``` have *:"\x\s' - {a'}. x k = a2 k" unfolding a' proof fix x assume x:"x\s-{a}" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 717` ``` hence "kle n a2 x" apply-apply(rule lem3) using `a=a0` by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 718` ``` hence "a2 k \ x k" apply(drule_tac kle_imp_pointwise) by auto moreover ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 719` ``` have "x k \ a2 k" unfolding k(2)[rule_format] using a0a1(4)[rule_format,of x,THEN conjunct1] ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 720` ``` unfolding kle_def using x by auto ultimately show "x k = a2 k" by auto qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 721` ``` have **:"a'=a_min \ a'=a_max" apply(rule ksimplex_fix_plane[OF a'(1) k(1) *]) using min_max by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 722` ``` show "s' \ {s, insert a3 (s - {a0})}" proof(cases "a'=a_min") ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 723` ``` case True have "a_max = a1" unfolding kle_antisym[THEN sym,of a_max a1 n] apply(rule) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 724` ``` apply(rule a0a1(4)[rule_format,THEN conjunct2]) defer proof(rule min_max(4)[rule_format,THEN conjunct2]) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 725` ``` show "a1\s'" using a' unfolding `a=a0` using a0a1 by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 726` ``` show "a_max \ s" proof(rule ccontr) assume "a_max\s" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 727` ``` hence "a_max = a'" using a' min_max by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 728` ``` thus False unfolding True using min_max by auto qed qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 729` ``` hence "\i. a_max i = a1 i" by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 730` ``` hence "a' = a" unfolding True `a=a0` apply-apply(subst expand_fun_eq,rule) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 731` ``` apply(erule_tac x=x in allE) unfolding a0a1(5)[rule_format] min_max(5)[rule_format] ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 732` ``` proof- case goal1 thus ?case apply(cases "x\{1..n}") by auto qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 733` ``` hence "s' = s" apply-apply(rule lem1[OF a'(2)]) using `a\s` `a'\s'` by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 734` ``` thus ?thesis by auto next ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 735` ``` case False hence as:"a' = a_max" using ** by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 736` ``` have "a_min = a2" unfolding kle_antisym[THEN sym, of _ _ n] apply rule ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 737` ``` apply(rule min_max(4)[rule_format,THEN conjunct1]) defer proof(rule lem3) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 738` ``` show "a_min \ s - {a0}" unfolding a'(2)[THEN sym,unfolded `a=a0`] ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 739` ``` unfolding as using min_max(1-3) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 740` ``` have "a2 \ a" unfolding `a=a0` using k(2)[rule_format,of k] by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 741` ``` hence "a2 \ s - {a}" using a2 by auto thus "a2 \ s'" unfolding a'(2)[THEN sym] by auto qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 742` ``` hence "\i. a_min i = a2 i" by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 743` ``` hence "a' = a3" unfolding as `a=a0` apply-apply(subst expand_fun_eq,rule) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 744` ``` apply(erule_tac x=x in allE) unfolding a0a1(5)[rule_format] min_max(5)[rule_format] ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 745` ``` unfolding a3_def k(2)[rule_format] unfolding a0a1(5)[rule_format] proof- case goal1 ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 746` ``` show ?case unfolding goal1 apply(cases "x\{1..n}") defer apply(cases "x=k") ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 747` ``` using `k\{1..n}` by auto qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 748` ``` hence "s' = insert a3 (s - {a0})" apply-apply(rule lem1) defer apply assumption ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 749` ``` apply(rule a'(1)) unfolding a' `a=a0` using `a3\s` by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 750` ``` thus ?thesis by auto qed qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 751` ``` ultimately have *:"?A = {s, insert a3 (s - {a0})}" by blast ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 752` ``` have "s \ insert a3 (s - {a0})" using `a3\s` by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 753` ``` hence ?thesis unfolding * by auto } moreover ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 754` ``` { assume "a=a1" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 755` ``` have *:"\P Q. (P \ Q) \ \ P \ Q" by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 756` ``` have "\x\s. \ kle n a1 x" apply(rule_tac x=a0 in bexI) proof assume as:"kle n a1 a0" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 757` ``` show False using kle_imp_pointwise[OF as,THEN spec[where x=1]] unfolding a0a1(5)[THEN spec[where x=1]] ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 758` ``` using assms(3) by auto qed(insert a0a1,auto) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 759` ``` hence "\y\s. \k\{1..n}. \j. a1 j = (if j = k then y j + 1 else y j)" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 760` ``` apply(rule_tac *[OF ksimplex_predecessor[OF assms(1-2),unfolded `a=a1`]]) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 761` ``` then guess a2 .. from this(2) guess k .. note k=this note a2=`a2\s` ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 762` ``` def a3 \ "\j. if j = k then a0 j - 1 else a0 j" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 763` ``` have "a2 \ a1" using k(2)[THEN spec[where x=k]] by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 764` ``` have lem3:"\x. x\(s - {a1}) \ kle n x a2" proof(rule ccontr) case goal1 hence as:"x\s" "x\a1" by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 765` ``` have "kle n a2 x \ kle n x a2" using ksimplexD(6)[OF assms(1)] and as `a2\s` by auto moreover ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 766` ``` have "kle n x a1" using a0a1(4) as by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 767` ``` ultimately have "x = a2 \ x = a1" apply-apply(rule kle_adjacent[OF k(2)]) using goal1(2) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 768` ``` hence "x = a2" using as by auto thus False using goal1(2) using kle_refl by auto qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 769` ``` have "a0 k \ 0" proof- ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 770` ``` guess a4 using assms(4)[unfolded bex_simps ball_simps,rule_format,OF `k\{1..n}`] .. note a4=this ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 771` ``` have "a4 k \ a2 k" using lem3[OF a4(1)[unfolded `a=a1`],THEN kle_imp_pointwise] by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 772` ``` moreover have "a4 k > 0" using a4 by auto ultimately have "a2 k > 0" by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 773` ``` hence "a1 k > 1" unfolding k(2)[rule_format] by simp ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 774` ``` thus ?thesis unfolding a0a1(5)[rule_format] using k(1) by simp qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 775` ``` hence lem4:"\j. a0 j = (if j=k then a3 j + 1 else a3 j)" unfolding a3_def by simp ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 776` ``` have "\ kle n a0 a3" apply(rule ccontr) unfolding not_not apply(drule kle_imp_pointwise) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 777` ``` unfolding lem4[rule_format] apply(erule_tac x=k in allE) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 778` ``` hence "a3 \ s" using a0a1(4) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 779` ``` hence "a3 \ a1" "a3 \ a0" using a0a1 by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 780` ``` let ?s = "insert a3 (s - {a1})" have "ksimplex p n ?s" apply(rule ksimplexI) proof(rule_tac[2-] ballI,rule_tac[4] ballI) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 781` ``` show "card ?s = n+1" using ksimplexD(2-3)[OF assms(1)] ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 782` ``` using `a3\a0` `a3\s` `a1\s` by(auto simp add:card_insert_if) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 783` ``` fix x assume x:"x \ insert a3 (s - {a1})" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 784` ``` show "\j. x j \ p" proof(rule,cases "x = a3") ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 785` ``` fix j case False thus "x j\p" using x ksimplexD(4)[OF assms(1)] by auto next ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 786` ``` fix j case True show "x j\p" unfolding True proof(cases "j=k") ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 787` ``` case False thus "a3 j \p" unfolding True a3_def using `a0\s` ksimplexD(4)[OF assms(1)] by auto next ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 788` ``` guess a4 using assms(5)[unfolded bex_simps ball_simps,rule_format,OF k(1)] .. note a4=this ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 789` ``` case True have "a3 k \ a0 k" unfolding lem4[rule_format] by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 790` ``` also have "\ \ p" using ksimplexD(4)[OF assms(1),rule_format,of a0 k] a0a1 by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 791` ``` finally show "a3 j \ p" unfolding True by auto qed qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 792` ``` show "\j. j \ {1..n} \ x j = p" proof(rule,rule,cases "x=a3") fix j::nat assume j:"j\{1..n}" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 793` ``` { case False thus "x j = p" using j x ksimplexD(5)[OF assms(1)] by auto } ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 794` ``` case True show "x j = p" unfolding True a3_def using j k(1) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 795` ``` using ksimplexD(5)[OF assms(1),rule_format,OF `a0\s` j] by auto qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 796` ``` fix y assume y:"y\insert a3 (s - {a1})" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 797` ``` have lem4:"\x. x\s \ x\a1 \ kle n a3 x" proof- case goal1 hence *:"x\s - {a1}" by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 798` ``` have "kle n a3 a2" proof- have "kle n a0 a1" using a0a1 by auto then guess kk unfolding kle_def .. ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 799` ``` thus ?thesis unfolding kle_def apply(rule_tac x=kk in exI) unfolding lem4[rule_format] k(2)[rule_format] ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 800` ``` apply(rule)defer proof(rule) case goal1 thus ?case apply-apply(erule conjE) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 801` ``` apply(erule_tac[!] x=j in allE) apply(cases "j\kk") apply(case_tac[!] "j=k") by auto qed auto qed moreover ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 802` ``` have "kle n a3 a0" unfolding kle_def lem4[rule_format] apply(rule_tac x="{k}" in exI) using k(1) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 803` ``` ultimately show ?case apply-apply(rule kle_between_l[of _ a0 _ a2]) using lem3[OF *] ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 804` ``` using a0a1(4)[rule_format,OF goal1(1)] by auto qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 805` ``` show "kle n x y \ kle n y x" proof(cases "y=a3") ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 806` ``` case True show ?thesis unfolding True apply(cases "x=a3") defer apply(rule disjI2,rule lem4) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 807` ``` using x by auto next ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 808` ``` case False show ?thesis proof(cases "x=a3") case True show ?thesis unfolding True ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 809` ``` apply(rule disjI1,rule lem4) using y False by auto next ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 810` ``` case False thus ?thesis apply(rule_tac ksimplexD(6)[OF assms(1),rule_format]) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 811` ``` using x y `y\a3` by auto qed qed qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 812` ``` hence "insert a3 (s - {a1}) \ ?A" unfolding mem_Collect_eq apply-apply(rule,assumption) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 813` ``` apply(rule_tac x="a3" in bexI) unfolding `a=a1` using `a3\s` by auto moreover ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 814` ``` have "s \ ?A" using assms(1,2) by auto ultimately have "?A \ {s, insert a3 (s - {a1})}" by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 815` ``` moreover have "?A \ {s, insert a3 (s - {a1})}" apply(rule) unfolding mem_Collect_eq proof(erule conjE) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 816` ``` fix s' assume as:"ksimplex p n s'" and "\b\s'. s' - {b} = s - {a}" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 817` ``` from this(2) guess a' .. note a'=this ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 818` ``` guess a_min a_max apply(rule ksimplex_extrema_strong[OF as assms(3)]) . note min_max=this ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 819` ``` have *:"\x\s' - {a'}. x k = a2 k" unfolding a' proof fix x assume x:"x\s-{a}" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 820` ``` hence "kle n x a2" apply-apply(rule lem3) using `a=a1` by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 821` ``` hence "x k \ a2 k" apply(drule_tac kle_imp_pointwise) by auto moreover ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 822` ``` { have "a2 k \ a0 k" using k(2)[rule_format,of k] unfolding a0a1(5)[rule_format] using k(1) by simp ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 823` ``` also have "\ \ x k" using a0a1(4)[rule_format,of x,THEN conjunct1,THEN kle_imp_pointwise] x by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 824` ``` finally have "a2 k \ x k" . } ultimately show "x k = a2 k" by auto qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 825` ``` have **:"a'=a_min \ a'=a_max" apply(rule ksimplex_fix_plane[OF a'(1) k(1) *]) using min_max by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 826` ``` have "a2 \ a1" proof assume as:"a2 = a1" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 827` ``` show False using k(2) unfolding as apply(erule_tac x=k in allE) by auto qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 828` ``` hence a2':"a2 \ s' - {a'}" unfolding a' using a2 unfolding `a=a1` by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 829` ``` show "s' \ {s, insert a3 (s - {a1})}" proof(cases "a'=a_min") ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 830` ``` case True have "a_max \ s - {a1}" using min_max unfolding a'(2)[unfolded `a=a1`,THEN sym] True by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 831` ``` hence "a_max = a2" unfolding kle_antisym[THEN sym,of a_max a2 n] apply-apply(rule) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 832` ``` apply(rule lem3,assumption) apply(rule min_max(4)[rule_format,THEN conjunct2]) using a2' by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 833` ``` hence a_max:"\i. a_max i = a2 i" by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 834` ``` have *:"\j. a2 j = (if j\{1..n} then a3 j + 1 else a3 j)" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 835` ``` using k(2) unfolding lem4[rule_format] a0a1(5)[rule_format] apply-apply(rule,erule_tac x=j in allE) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 836` ``` proof- case goal1 thus ?case apply(cases "j\{1..n}",case_tac[!] "j=k") by auto qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 837` ``` have "\i. a_min i = a3 i" using a_max apply-apply(rule,erule_tac x=i in allE) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 838` ``` unfolding min_max(5)[rule_format] *[rule_format] proof- case goal1 ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 839` ``` thus ?case apply(cases "i\{1..n}") by auto qed hence "a_min = a3" unfolding expand_fun_eq . ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 840` ``` hence "s' = insert a3 (s - {a1})" using a' unfolding `a=a1` True by auto thus ?thesis by auto next ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 841` ``` case False hence as:"a'=a_max" using ** by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 842` ``` have "a_min = a0" unfolding kle_antisym[THEN sym,of _ _ n] apply(rule) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 843` ``` apply(rule min_max(4)[rule_format,THEN conjunct1]) defer apply(rule a0a1(4)[rule_format,THEN conjunct1]) proof- ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 844` ``` have "a_min \ s - {a1}" using min_max(1,3) unfolding a'(2)[THEN sym,unfolded `a=a1`] as by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 845` ``` thus "a_min \ s" by auto have "a0 \ s - {a1}" using a0a1(1-3) by auto thus "a0 \ s'" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 846` ``` unfolding a'(2)[THEN sym,unfolded `a=a1`] by auto qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 847` ``` hence "\i. a_max i = a1 i" unfolding a0a1(5)[rule_format] min_max(5)[rule_format] by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 848` ``` hence "s' = s" apply-apply(rule lem1[OF a'(2)]) using `a\s` `a'\s'` unfolding as `a=a1` unfolding expand_fun_eq by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 849` ``` thus ?thesis by auto qed qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 850` ``` ultimately have *:"?A = {s, insert a3 (s - {a1})}" by blast ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 851` ``` have "s \ insert a3 (s - {a1})" using `a3\s` by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 852` ``` hence ?thesis unfolding * by auto } moreover ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 853` ``` { assume as:"a\a0" "a\a1" have "\ (\x\s. kle n a x)" proof case goal1 ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 854` ``` have "a=a0" unfolding kle_antisym[THEN sym,of _ _ n] apply(rule) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 855` ``` using goal1 a0a1 assms(2) by auto thus False using as by auto qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 856` ``` hence "\y\s. \k\{1..n}. \j. a j = (if j = k then y j + 1 else y j)" using ksimplex_predecessor[OF assms(1-2)] by blast ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 857` ``` then guess u .. from this(2) guess k .. note k = this[rule_format] note u = `u\s` ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 858` ``` have "\ (\x\s. kle n x a)" proof case goal1 ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 859` ``` have "a=a1" unfolding kle_antisym[THEN sym,of _ _ n] apply(rule) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 860` ``` using goal1 a0a1 assms(2) by auto thus False using as by auto qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 861` ``` hence "\y\s. \k\{1..n}. \j. y j = (if j = k then a j + 1 else a j)" using ksimplex_successor[OF assms(1-2)] by blast ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 862` ``` then guess v .. from this(2) guess l .. note l = this[rule_format] note v = `v\s` ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 863` ``` def a' \ "\j. if j = l then u j + 1 else u j" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 864` ``` have kl:"k \ l" proof assume "k=l" have *:"\P. (if P then (1::nat) else 0) \ 2" by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 865` ``` thus False using ksimplexD(6)[OF assms(1),rule_format,OF u v] unfolding kle_def ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 866` ``` unfolding l(2) k(2) `k=l` apply-apply(erule disjE)apply(erule_tac[!] exE conjE)+ ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 867` ``` apply(erule_tac[!] x=l in allE)+ by(auto simp add: *) qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 868` ``` hence aa':"a'\a" apply-apply rule unfolding expand_fun_eq unfolding a'_def k(2) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 869` ``` apply(erule_tac x=l in allE) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 870` ``` have "a' \ s" apply(rule) apply(drule ksimplexD(6)[OF assms(1),rule_format,OF `a\s`]) proof(cases "kle n a a'") ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 871` ``` case goal2 hence "kle n a' a" by auto thus False apply(drule_tac kle_imp_pointwise) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 872` ``` apply(erule_tac x=l in allE) unfolding a'_def k(2) using kl by auto next ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 873` ``` case True thus False apply(drule_tac kle_imp_pointwise) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 874` ``` apply(erule_tac x=k in allE) unfolding a'_def k(2) using kl by auto qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 875` ``` have kle_uv:"kle n u a" "kle n u a'" "kle n a v" "kle n a' v" unfolding kle_def apply- ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 876` ``` apply(rule_tac[1] x="{k}" in exI,rule_tac[2] x="{l}" in exI) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 877` ``` apply(rule_tac[3] x="{l}" in exI,rule_tac[4] x="{k}" in exI) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 878` ``` unfolding l(2) k(2) a'_def using l(1) k(1) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 879` ``` have uxv:"\x. kle n u x \ kle n x v \ (x = u) \ (x = a) \ (x = a') \ (x = v)" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 880` ``` proof- case goal1 thus ?case proof(cases "x k = u k", case_tac[!] "x l = u l") ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 881` ``` assume as:"x l = u l" "x k = u k" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 882` ``` have "x = u" unfolding expand_fun_eq ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 883` ``` using goal1(2)[THEN kle_imp_pointwise,unfolded l(2)] unfolding k(2) apply- ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 884` ``` using goal1(1)[THEN kle_imp_pointwise] apply-apply rule apply(erule_tac x=xa in allE)+ proof- case goal1 ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 885` ``` thus ?case apply(cases "x=l") apply(case_tac[!] "x=k") using as by auto qed thus ?case by auto next ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 886` ``` assume as:"x l \ u l" "x k = u k" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 887` ``` have "x = a'" unfolding expand_fun_eq unfolding a'_def ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 888` ``` using goal1(2)[THEN kle_imp_pointwise] unfolding l(2) k(2) apply- ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 889` ``` using goal1(1)[THEN kle_imp_pointwise] apply-apply rule apply(erule_tac x=xa in allE)+ proof- case goal1 ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 890` ``` thus ?case apply(cases "x=l") apply(case_tac[!] "x=k") using as by auto qed thus ?case by auto next ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 891` ``` assume as:"x l = u l" "x k \ u k" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 892` ``` have "x = a" unfolding expand_fun_eq ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 893` ``` using goal1(2)[THEN kle_imp_pointwise] unfolding l(2) k(2) apply- ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 894` ``` using goal1(1)[THEN kle_imp_pointwise] apply-apply rule apply(erule_tac x=xa in allE)+ proof- case goal1 ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 895` ``` thus ?case apply(cases "x=l") apply(case_tac[!] "x=k") using as by auto qed thus ?case by auto next ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 896` ``` assume as:"x l \ u l" "x k \ u k" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 897` ``` have "x = v" unfolding expand_fun_eq ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 898` ``` using goal1(2)[THEN kle_imp_pointwise] unfolding l(2) k(2) apply- ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 899` ``` using goal1(1)[THEN kle_imp_pointwise] apply-apply rule apply(erule_tac x=xa in allE)+ proof- case goal1 ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 900` ``` thus ?case apply(cases "x=l") apply(case_tac[!] "x=k") using as `k\l` by auto qed thus ?case by auto qed qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 901` ``` have uv:"kle n u v" apply(rule kle_trans[OF kle_uv(1,3)]) using ksimplexD(6)[OF assms(1)] using u v by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 902` ``` have lem3:"\x. x\s \ kle n v x \ kle n a' x" apply(rule kle_between_r[of _ u _ v]) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 903` ``` prefer 3 apply(rule kle_trans[OF uv]) defer apply(rule ksimplexD(6)[OF assms(1),rule_format]) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 904` ``` using kle_uv `u\s` by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 905` ``` have lem4:"\x. x\s \ kle n x u \ kle n x a'" apply(rule kle_between_l[of _ u _ v]) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 906` ``` prefer 4 apply(rule kle_trans[OF _ uv]) defer apply(rule ksimplexD(6)[OF assms(1),rule_format]) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 907` ``` using kle_uv `v\s` by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 908` ``` have lem5:"\x. x\s \ x\a \ kle n x a' \ kle n a' x" proof- case goal1 thus ?case ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 909` ``` proof(cases "kle n v x \ kle n x u") case True thus ?thesis using goal1 by(auto intro:lem3 lem4) next ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 910` ``` case False hence *:"kle n u x" "kle n x v" using ksimplexD(6)[OF assms(1)] using goal1 `u\s` `v\s` by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 911` ``` show ?thesis using uxv[OF *] using kle_uv using goal1 by auto qed qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 912` ``` have "ksimplex p n (insert a' (s - {a}))" apply(rule ksimplexI) proof(rule_tac[2-] ballI,rule_tac[4] ballI) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 913` ``` show "card (insert a' (s - {a})) = n + 1" using ksimplexD(2-3)[OF assms(1)] ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 914` ``` using `a'\a` `a'\s` `a\s` by(auto simp add:card_insert_if) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 915` ``` fix x assume x:"x \ insert a' (s - {a})" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 916` ``` show "\j. x j \ p" proof(rule,cases "x = a'") ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 917` ``` fix j case False thus "x j\p" using x ksimplexD(4)[OF assms(1)] by auto next ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 918` ``` fix j case True show "x j\p" unfolding True proof(cases "j=l") ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 919` ``` case False thus "a' j \p" unfolding True a'_def using `u\s` ksimplexD(4)[OF assms(1)] by auto next ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 920` ``` case True have *:"a l = u l" "v l = a l + 1" using k(2)[of l] l(2)[of l] `k\l` by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 921` ``` have "u l + 1 \ p" unfolding *[THEN sym] using ksimplexD(4)[OF assms(1)] using `v\s` by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 922` ``` thus "a' j \p" unfolding a'_def True by auto qed qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 923` ``` show "\j. j \ {1..n} \ x j = p" proof(rule,rule,cases "x=a'") fix j::nat assume j:"j\{1..n}" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 924` ``` { case False thus "x j = p" using j x ksimplexD(5)[OF assms(1)] by auto } ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 925` ``` case True show "x j = p" unfolding True a'_def using j l(1) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 926` ``` using ksimplexD(5)[OF assms(1),rule_format,OF `u\s` j] by auto qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 927` ``` fix y assume y:"y\insert a' (s - {a})" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 928` ``` show "kle n x y \ kle n y x" proof(cases "y=a'") ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 929` ``` case True show ?thesis unfolding True apply(cases "x=a'") defer apply(rule lem5) using x by auto next ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 930` ``` case False show ?thesis proof(cases "x=a'") case True show ?thesis unfolding True ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 931` ``` using lem5[of y] using y by auto next ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 932` ``` case False thus ?thesis apply(rule_tac ksimplexD(6)[OF assms(1),rule_format]) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 933` ``` using x y `y\a'` by auto qed qed qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 934` ``` hence "insert a' (s - {a}) \ ?A" unfolding mem_Collect_eq apply-apply(rule,assumption) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 935` ``` apply(rule_tac x="a'" in bexI) using aa' `a'\s` by auto moreover ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 936` ``` have "s \ ?A" using assms(1,2) by auto ultimately have "?A \ {s, insert a' (s - {a})}" by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 937` ``` moreover have "?A \ {s, insert a' (s - {a})}" apply(rule) unfolding mem_Collect_eq proof(erule conjE) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 938` ``` fix s' assume as:"ksimplex p n s'" and "\b\s'. s' - {b} = s - {a}" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 939` ``` from this(2) guess a'' .. note a''=this ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 940` ``` have "u\v" unfolding expand_fun_eq unfolding l(2) k(2) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 941` ``` hence uv':"\ kle n v u" using uv using kle_antisym by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 942` ``` have "u\a" "v\a" unfolding expand_fun_eq k(2) l(2) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 943` ``` hence uvs':"u\s'" "v\s'" using `u\s` `v\s` using a'' by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 944` ``` have lem6:"a \ s' \ a' \ s'" proof(cases "\x\s'. kle n x u \ kle n v x") ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 945` ``` case False then guess w unfolding ball_simps .. note w=this ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 946` ``` hence "kle n u w" "kle n w v" using ksimplexD(6)[OF as] uvs' by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 947` ``` hence "w = a' \ w = a" using uxv[of w] uvs' w by auto thus ?thesis using w by auto next ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 948` ``` case True have "\ (\x\s'. kle n x u)" unfolding ball_simps apply(rule_tac x=v in bexI) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 949` ``` using uv `u\v` unfolding kle_antisym[of n u v,THEN sym] using `v\s'` by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 950` ``` hence "\y\s'. \k\{1..n}. \j. y j = (if j = k then u j + 1 else u j)" using ksimplex_successor[OF as `u\s'`] by blast ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 951` ``` then guess w .. note w=this from this(2) guess kk .. note kk=this[rule_format] ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 952` ``` have "\ kle n w u" apply-apply(rule,drule kle_imp_pointwise) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 953` ``` apply(erule_tac x=kk in allE) unfolding kk by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 954` ``` hence *:"kle n v w" using True[rule_format,OF w(1)] by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 955` ``` hence False proof(cases "kk\l") case True thus False using *[THEN kle_imp_pointwise, unfolded l(2) kk k(2)] ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 956` ``` apply(erule_tac x=l in allE) using `k\l` by auto next ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 957` ``` case False hence "kk\k" using `k\l` by auto thus False using *[THEN kle_imp_pointwise, unfolded l(2) kk k(2)] ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 958` ``` apply(erule_tac x=k in allE) using `k\l` by auto qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 959` ``` thus ?thesis by auto qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 960` ``` thus "s' \ {s, insert a' (s - {a})}" proof(cases "a\s'") ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 961` ``` case True hence "s' = s" apply-apply(rule lem1[OF a''(2)]) using a'' `a\s` by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 962` ``` thus ?thesis by auto next case False hence "a'\s'" using lem6 by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 963` ``` hence "s' = insert a' (s - {a})" apply-apply(rule lem1[of _ a'' _ a']) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 964` ``` unfolding a''(2)[THEN sym] using a'' using `a'\s` by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 965` ``` thus ?thesis by auto qed qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 966` ``` ultimately have *:"?A = {s, insert a' (s - {a})}" by blast ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 967` ``` have "s \ insert a' (s - {a})" using `a'\s` by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 968` ``` hence ?thesis unfolding * by auto } ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 969` ``` ultimately show ?thesis by auto qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 970` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 971` ```subsection {* Hence another step towards concreteness. *} ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 972` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 973` ```lemma kuhn_simplex_lemma: ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 974` ``` assumes "\s. ksimplex p (n + 1) s \ (rl ` s \{0..n+1})" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 975` ``` "odd (card{f. \s a. ksimplex p (n + 1) s \ a \ s \ (f = s - {a}) \ ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 976` ``` (rl ` f = {0 .. n}) \ ((\j\{1..n+1}.\x\f. x j = 0) \ (\j\{1..n+1}.\x\f. x j = p))})" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 977` ``` shows "odd(card {s\{s. ksimplex p (n + 1) s}. rl ` s = {0..n+1} })" proof- ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 978` ``` have *:"\x y. x = y \ odd (card x) \ odd (card y)" by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 979` ``` have *:"odd(card {f\{f. \s\{s. ksimplex p (n + 1) s}. (\a\s. f = s - {a})}. ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 980` ``` (rl ` f = {0..n}) \ ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 981` ``` ((\j\{1..n+1}. \x\f. x j = 0) \ ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 982` ``` (\j\{1..n+1}. \x\f. x j = p))})" apply(rule *[OF _ assms(2)]) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 983` ``` show ?thesis apply(rule kuhn_complete_lemma[OF finite_simplices]) prefer 6 apply(rule *) apply(rule,rule,rule) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 984` ``` apply(subst ksimplex_def) defer apply(rule,rule assms(1)[rule_format]) unfolding mem_Collect_eq apply assumption ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 985` ``` apply default+ unfolding mem_Collect_eq apply(erule disjE bexE)+ defer apply(erule disjE bexE)+ defer ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 986` ``` apply default+ unfolding mem_Collect_eq apply(erule disjE bexE)+ unfolding mem_Collect_eq proof- ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 987` ``` fix f s a assume as:"ksimplex p (n + 1) s" "a\s" "f = s - {a}" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 988` ``` let ?S = "{s. ksimplex p (n + 1) s \ (\a\s. f = s - {a})}" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 989` ``` have S:"?S = {s'. ksimplex p (n + 1) s' \ (\b\s'. s' - {b} = s - {a})}" unfolding as by blast ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 990` ``` { fix j assume j:"j \ {1..n + 1}" "\x\f. x j = 0" thus "card {s. ksimplex p (n + 1) s \ (\a\s. f = s - {a})} = 1" unfolding S ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 991` ``` apply-apply(rule ksimplex_replace_0) apply(rule as)+ unfolding as by auto } ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 992` ``` { fix j assume j:"j \ {1..n + 1}" "\x\f. x j = p" thus "card {s. ksimplex p (n + 1) s \ (\a\s. f = s - {a})} = 1" unfolding S ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 993` ``` apply-apply(rule ksimplex_replace_1) apply(rule as)+ unfolding as by auto } ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 994` ``` show "\ ((\j\{1..n+1}. \x\f. x j = 0) \ (\j\{1..n+1}. \x\f. x j = p)) \ card ?S = 2" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 995` ``` unfolding S apply(rule ksimplex_replace_2) apply(rule as)+ unfolding as by auto qed auto qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 996` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 997` ```subsection {* Reduced labelling. *} ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 998` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 999` ```definition "reduced label (n::nat) (x::nat\nat) = ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1000` ``` (SOME k. k \ n \ (\i. 1\i \ i label x i = 0) \ (k = n \ label x (k + 1) \ (0::nat)))" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1001` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1002` ```lemma reduced_labelling: shows "reduced label n x \ n" (is ?t1) and ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1003` ``` "\i. 1\i \ i < reduced label n x + 1 \ (label x i = 0)" (is ?t2) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1004` ``` "(reduced label n x = n) \ (label x (reduced label n x + 1) \ 0)" (is ?t3) proof- ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1005` ``` have num_WOP:"\P k. P (k::nat) \ \n. P n \ (\m P m)" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1006` ``` apply(drule ex_has_least_nat[where m="\x. x"]) apply(erule exE,rule_tac x=x in exI) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1007` ``` have *:"n \ n \ (label x (n + 1) \ 0 \ n = n)" by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1008` ``` then guess N apply(drule_tac num_WOP[of "\j. j\n \ (label x (j+1) \ 0 \ n = j)"]) apply(erule exE) . note N=this ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1009` ``` have N':"N \ n" "\i. 1 \ i \ i < N + 1 \ label x i = 0" "N = n \ label x (N + 1) \ 0" defer proof(rule,rule) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1010` ``` fix i assume i:"1\i \ i nat" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1014` ``` assumes "r \ n" "\i. 1 \ i \ i < r + 1 \ (label x i = 0)" "(r = n) \ (label x (r + 1) \ 0)" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1015` ``` shows "reduced label n x = r" apply(rule le_antisym) apply(rule_tac[!] ccontr) unfolding not_le ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1016` ``` using reduced_labelling[of label n x] using assms by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1017` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1018` ```lemma reduced_labelling_0: assumes "j\{1..n}" "label x j = 0" shows "reduced label n x \ j - 1" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1019` ``` using reduced_labelling[of label n x] using assms by fastsimp ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1020` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1021` ```lemma reduced_labelling_1: assumes "j\{1..n}" "label x j \ 0" shows "reduced label n x < j" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1022` ``` using assms and reduced_labelling[of label n x] apply(erule_tac x=j in allE) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1023` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1024` ```lemma reduced_labelling_Suc: ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1025` ``` assumes "reduced lab (n + 1) x \ n + 1" shows "reduced lab (n + 1) x = reduced lab n x" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1026` ``` apply(subst eq_commute) apply(rule reduced_labelling_unique) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1027` ``` using reduced_labelling[of lab "n+1" x] and assms by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1028` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1029` ```lemma complete_face_top: ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1030` ``` assumes "\x\f. \j\{1..n+1}. x j = 0 \ lab x j = 0" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1031` ``` "\x\f. \j\{1..n+1}. x j = p \ lab x j = 1" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1032` ``` shows "((reduced lab (n + 1)) ` f = {0..n}) \ ((\j\{1..n+1}. \x\f. x j = 0) \ (\j\{1..n+1}. \x\f. x j = p)) \ ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1033` ``` ((reduced lab (n + 1)) ` f = {0..n}) \ (\x\f. x (n + 1) = p)" (is "?l = ?r") proof ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1034` ``` assume ?l (is "?as \ (?a \ ?b)") thus ?r apply-apply(rule,erule conjE,assumption) proof(cases ?a) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1035` ``` case True then guess j .. note j=this {fix x assume x:"x\f" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1036` ``` have "reduced lab (n+1) x \ j - 1" using j apply-apply(rule reduced_labelling_0) defer apply(rule assms(1)[rule_format]) using x by auto } ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1037` ``` moreover have "j - 1 \ {0..n}" using j by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1038` ``` then guess y unfolding `?l`[THEN conjunct1,THEN sym] and image_iff .. note y = this ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1039` ``` ultimately have False by auto thus "\x\f. x (n + 1) = p" by auto next ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1040` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1041` ``` case False hence ?b using `?l` by blast then guess j .. note j=this {fix x assume x:"x\f" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1042` ``` have "reduced lab (n+1) x < j" using j apply-apply(rule reduced_labelling_1) using assms(2)[rule_format,of x j] and x by auto } note * = this ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1043` ``` have "j = n + 1" proof(rule ccontr) case goal1 hence "j < n + 1" using j by auto moreover ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1044` ``` have "n \ {0..n}" by auto then guess y unfolding `?l`[THEN conjunct1,THEN sym] image_iff .. ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1045` ``` ultimately show False using *[of y] by auto qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1046` ``` thus "\x\f. x (n + 1) = p" using j by auto qed qed(auto) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1047` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1048` ```subsection {* Hence we get just about the nice induction. *} ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1049` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1050` ```lemma kuhn_induction: ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1051` ``` assumes "0 < p" "\x. \j\{1..n+1}. (\j. x j \ p) \ (x j = 0) \ (lab x j = 0)" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1052` ``` "\x. \j\{1..n+1}. (\j. x j \ p) \ (x j = p) \ (lab x j = 1)" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1053` ``` "odd (card {f. ksimplex p n f \ ((reduced lab n) ` f = {0..n})})" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1054` ``` shows "odd (card {s. ksimplex p (n+1) s \((reduced lab (n+1)) ` s = {0..n+1})})" proof- ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1055` ``` have *:"\s t. odd (card s) \ s = t \ odd (card t)" "\s f. (\x. f x \ n +1 ) \ f ` s \ {0..n+1}" by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1056` ``` show ?thesis apply(rule kuhn_simplex_lemma[unfolded mem_Collect_eq]) apply(rule,rule,rule *,rule reduced_labelling) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1057` ``` apply(rule *(1)[OF assms(4)]) apply(rule set_ext) unfolding mem_Collect_eq apply(rule,erule conjE) defer apply(rule) proof-(*(rule,rule)*) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1058` ``` fix f assume as:"ksimplex p n f" "reduced lab n ` f = {0..n}" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1059` ``` have *:"\x\f. \j\{1..n + 1}. x j = 0 \ lab x j = 0" "\x\f. \j\{1..n + 1}. x j = p \ lab x j = 1" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1060` ``` using assms(2-3) using as(1)[unfolded ksimplex_def] by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1061` ``` have allp:"\x\f. x (n + 1) = p" using assms(2) using as(1)[unfolded ksimplex_def] by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1062` ``` { fix x assume "x\f" hence "reduced lab (n + 1) x < n + 1" apply-apply(rule reduced_labelling_1) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1063` ``` defer using assms(3) using as(1)[unfolded ksimplex_def] by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1064` ``` hence "reduced lab (n + 1) x = reduced lab n x" apply-apply(rule reduced_labelling_Suc) using reduced_labelling(1) by auto } ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1065` ``` hence "reduced lab (n + 1) ` f = {0..n}" unfolding as(2)[THEN sym] apply- apply(rule set_ext) unfolding image_iff by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1066` ``` moreover guess s using as(1)[unfolded simplex_top_face[OF assms(1) allp,THEN sym]] .. then guess a .. ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1067` ``` ultimately show "\s a. ksimplex p (n + 1) s \ ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1068` ``` a \ s \ f = s - {a} \ reduced lab (n + 1) ` f = {0..n} \ ((\j\{1..n + 1}. \x\f. x j = 0) \ (\j\{1..n + 1}. \x\f. x j = p))" (is ?ex) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1069` ``` apply(rule_tac x=s in exI,rule_tac x=a in exI) unfolding complete_face_top[OF *] using allp as(1) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1070` ``` next fix f assume as:"\s a. ksimplex p (n + 1) s \ ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1071` ``` a \ s \ f = s - {a} \ reduced lab (n + 1) ` f = {0..n} \ ((\j\{1..n + 1}. \x\f. x j = 0) \ (\j\{1..n + 1}. \x\f. x j = p))" (is ?ex) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1072` ``` then guess s .. then guess a apply-apply(erule exE,(erule conjE)+) . note sa=this ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1073` ``` { fix x assume "x\f" hence "reduced lab (n + 1) x \ reduced lab (n + 1) ` f" by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1074` ``` hence "reduced lab (n + 1) x < n + 1" using sa(4) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1075` ``` hence "reduced lab (n + 1) x = reduced lab n x" apply-apply(rule reduced_labelling_Suc) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1076` ``` using reduced_labelling(1) by auto } ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1077` ``` thus part1:"reduced lab n ` f = {0..n}" unfolding sa(4)[THEN sym] apply-apply(rule set_ext) unfolding image_iff by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1078` ``` have *:"\x\f. x (n + 1) = p" proof(cases "\j\{1..n + 1}. \x\f. x j = 0") ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1079` ``` case True then guess j .. hence "\x. x\f \ reduced lab (n + 1) x \ j - 1" apply-apply(rule reduced_labelling_0) apply assumption ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1080` ``` apply(rule assms(2)[rule_format]) using sa(1)[unfolded ksimplex_def] unfolding sa by auto moreover ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1081` ``` have "j - 1 \ {0..n}" using `j\{1..n+1}` by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1082` ``` ultimately have False unfolding sa(4)[THEN sym] unfolding image_iff by fastsimp thus ?thesis by auto next ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1083` ``` case False hence "\j\{1..n + 1}. \x\f. x j = p" using sa(5) by fastsimp then guess j .. note j=this ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1084` ``` thus ?thesis proof(cases "j = n+1") ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1085` ``` case False hence *:"j\{1..n}" using j by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1086` ``` hence "\x. x\f \ reduced lab n x < j" apply(rule reduced_labelling_1) proof- fix x assume "x\f" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1087` ``` hence "lab x j = 1" apply-apply(rule assms(3)[rule_format,OF j(1)]) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1088` ``` using sa(1)[unfolded ksimplex_def] using j unfolding sa by auto thus "lab x j \ 0" by auto qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1089` ``` moreover have "j\{0..n}" using * by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1090` ``` ultimately have False unfolding part1[THEN sym] using * unfolding image_iff by auto thus ?thesis by auto qed auto qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1091` ``` thus "ksimplex p n f" using as unfolding simplex_top_face[OF assms(1) *,THEN sym] by auto qed qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1092` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1093` ```lemma kuhn_induction_Suc: ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1094` ``` assumes "0 < p" "\x. \j\{1..Suc n}. (\j. x j \ p) \ (x j = 0) \ (lab x j = 0)" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1095` ``` "\x. \j\{1..Suc n}. (\j. x j \ p) \ (x j = p) \ (lab x j = 1)" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1096` ``` "odd (card {f. ksimplex p n f \ ((reduced lab n) ` f = {0..n})})" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1097` ``` shows "odd (card {s. ksimplex p (Suc n) s \((reduced lab (Suc n)) ` s = {0..Suc n})})" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1098` ``` using assms unfolding Suc_eq_plus1 by(rule kuhn_induction) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1099` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1100` ```subsection {* And so we get the final combinatorial result. *} ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1101` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1102` ```lemma ksimplex_0: "ksimplex p 0 s \ s = {(\x. p)}" (is "?l = ?r") proof ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1103` ``` assume l:?l guess a using ksimplexD(3)[OF l, unfolded add_0] unfolding card_1_exists .. note a=this ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1104` ``` have "a = (\x. p)" using ksimplexD(5)[OF l, rule_format, OF a(1)] by(rule,auto) thus ?r using a by auto next ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1105` ``` assume r:?r show ?l unfolding r ksimplex_eq by auto qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1106` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1107` ```lemma reduce_labelling_0[simp]: "reduced lab 0 x = 0" apply(rule reduced_labelling_unique) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1108` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1109` ```lemma kuhn_combinatorial: ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1110` ``` assumes "0 < p" "\x j. (\j. x(j) \ p) \ 1 \ j \ j \ n \ (x j = 0) \ (lab x j = 0)" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1111` ``` "\x j. (\j. x(j) \ p) \ 1 \ j \ j \ n \ (x j = p) \ (lab x j = 1)" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1112` ``` shows " odd (card {s. ksimplex p n s \ ((reduced lab n) ` s = {0..n})})" using assms proof(induct n) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1113` ``` let ?M = "\n. {s. ksimplex p n s \ ((reduced lab n) ` s = {0..n})}" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1114` ``` { case 0 have *:"?M 0 = {{(\x. p)}}" unfolding ksimplex_0 by auto show ?case unfolding * by auto } ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1115` ``` case (Suc n) have "odd (card (?M n))" apply(rule Suc(1)[OF Suc(2)]) using Suc(3-) by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1116` ``` thus ?case apply-apply(rule kuhn_induction_Suc) using Suc(2-) by auto qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1117` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1118` ```lemma kuhn_lemma: assumes "0 < (p::nat)" "0 < (n::nat)" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1119` ``` "\x. (\i\{1..n}. x i \ p) \ (\i\{1..n}. (label x i = (0::nat)) \ (label x i = 1))" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1120` ``` "\x. (\i\{1..n}. x i \ p) \ (\i\{1..n}. (x i = 0) \ (label x i = 0))" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1121` ``` "\x. (\i\{1..n}. x i \ p) \ (\i\{1..n}. (x i = p) \ (label x i = 1))" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1122` ``` obtains q where "\i\{1..n}. q i < p" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1123` ``` "\i\{1..n}. \r s. (\j\{1..n}. q(j) \ r(j) \ r(j) \ q(j) + 1) \ ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1124` ``` (\j\{1..n}. q(j) \ s(j) \ s(j) \ q(j) + 1) \ ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1125` ``` ~(label r i = label s i)" proof- ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1126` ``` let ?A = "{s. ksimplex p n s \ reduced label n ` s = {0..n}}" have "n\0" using assms by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1127` ``` have conjD:"\P Q. P \ Q \ P" "\P Q. P \ Q \ Q" by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1128` ``` have "odd (card ?A)" apply(rule kuhn_combinatorial[of p n label]) using assms by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1129` ``` hence "card ?A \ 0" apply-apply(rule ccontr) by auto hence "?A \ {}" unfolding card_eq_0_iff by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1130` ``` then obtain s where "s\?A" by auto note s=conjD[OF this[unfolded mem_Collect_eq]] ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1131` ``` guess a b apply(rule ksimplex_extrema_strong[OF s(1) `n\0`]) . note ab=this ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1132` ``` show ?thesis apply(rule that[of a]) proof(rule_tac[!] ballI) fix i assume "i\{1..n}" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1133` ``` hence "a i + 1 \ p" apply-apply(rule order_trans[of _ "b i"]) apply(subst ab(5)[THEN spec[where x=i]]) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1134` ``` using s(1)[unfolded ksimplex_def] defer apply- apply(erule conjE)+ apply(drule_tac bspec[OF _ ab(2)])+ by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1135` ``` thus "a i < p" by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1136` ``` case goal2 hence "i \ reduced label n ` s" using s by auto then guess u unfolding image_iff .. note u=this ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1137` ``` from goal2 have "i - 1 \ reduced label n ` s" using s by auto then guess v unfolding image_iff .. note v=this ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1138` ``` show ?case apply(rule_tac x=u in exI, rule_tac x=v in exI) apply(rule conjI) defer apply(rule conjI) defer 2 proof(rule_tac[1-2] ballI) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1139` ``` show "label u i \ label v i" using reduced_labelling[of label n u] reduced_labelling[of label n v] ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1140` ``` unfolding u(2)[THEN sym] v(2)[THEN sym] using goal2 by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1141` ``` fix j assume j:"j\{1..n}" show "a j \ u j \ u j \ a j + 1" "a j \ v j \ v j \ a j + 1" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1142` ``` using conjD[OF ab(4)[rule_format, OF u(1)]] and conjD[OF ab(4)[rule_format, OF v(1)]] apply- ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1143` ``` apply(drule_tac[!] kle_imp_pointwise)+ apply(erule_tac[!] x=j in allE)+ unfolding ab(5)[rule_format] using j ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1144` ``` by auto qed qed qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1145` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1146` ```subsection {* The main result for the unit cube. *} ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1147` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1148` ```lemma kuhn_labelling_lemma': ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1149` ``` assumes "(\x::nat\real. P x \ P (f x))" "\x. P x \ (\i::nat. Q i \ 0 \ x i \ x i \ 1)" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1150` ``` shows "\l. (\x i. l x i \ (1::nat)) \ ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1151` ``` (\x i. P x \ Q i \ (x i = 0) \ (l x i = 0)) \ ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1152` ``` (\x i. P x \ Q i \ (x i = 1) \ (l x i = 1)) \ ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1153` ``` (\x i. P x \ Q i \ (l x i = 0) \ x i \ f(x) i) \ ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1154` ``` (\x i. P x \ Q i \ (l x i = 1) \ f(x) i \ x i)" proof- ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1155` ``` have and_forall_thm:"\P Q. (\x. P x) \ (\x. Q x) \ (\x. P x \ Q x)" by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1156` ``` have *:"\x y::real. 0 \ x \ x \ 1 \ 0 \ y \ y \ 1 \ (x \ 1 \ x \ y \ x \ 0 \ y \ x)" by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1157` ``` show ?thesis unfolding and_forall_thm apply(subst choice_iff[THEN sym])+ proof(rule,rule) case goal1 ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1158` ``` let ?R = "\y. (P x \ Q xa \ x xa = 0 \ y = (0::nat)) \ ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1159` ``` (P x \ Q xa \ x xa = 1 \ y = 1) \ (P x \ Q xa \ y = 0 \ x xa \ (f x) xa) \ (P x \ Q xa \ y = 1 \ (f x) xa \ x xa)" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1160` ``` { assume "P x" "Q xa" hence "0 \ (f x) xa \ (f x) xa \ 1" using assms(2)[rule_format,of "f x" xa] ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1161` ``` apply(drule_tac assms(1)[rule_format]) by auto } ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1162` ``` hence "?R 0 \ ?R 1" by auto thus ?case by auto qed qed ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1163` 34291 4e896680897e finite annotation on cartesian product is now implicit. hoelzl parents: 34289 diff changeset ` 1164` ```lemma brouwer_cube: fixes f::"real^'n \ real^'n" ``` 33741 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1165` ``` assumes "continuous_on {0..1} f" "f ` {0..1} \ {0..1}" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1166` ``` shows "\x\{0..1}. f x = x" apply(rule ccontr) proof- ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1167` ``` def n \ "CARD('n)" have n:"1 \ n" "0 < n" "n \ 0" unfolding n_def by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1168` ``` assume "\ (\x\{0..1}. f x = x)" hence *:"\ (\x\{0..1}. f x - x = 0)" by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1169` ``` guess d apply(rule brouwer_compactness_lemma[OF compact_interval _ *]) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1170` ``` apply(rule continuous_on_intros assms)+ . note d=this[rule_format] ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1171` ``` have *:"\x. x \ {0..1} \ f x \ {0..1}" "\x. x \ {0..1::real^'n} \ (\i. True \ 0 \ x \$ i \ x \$ i \ 1)" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1172` ``` using assms(2)[unfolded image_subset_iff Ball_def] unfolding mem_interval by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1173` ``` guess label using kuhn_labelling_lemma[OF *] apply-apply(erule exE,(erule conjE)+) . note label = this[rule_format] ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1174` ``` have lem1:"\x\{0..1}.\y\{0..1}.\i. label x i \ label y i ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1175` ``` \ abs(f x \$ i - x \$ i) \ norm(f y - f x) + norm(y - x)" proof(rule,rule,rule,rule) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1176` ``` fix x y assume xy:"x\{0..1::real^'n}" "y\{0..1::real^'n}" fix i::'n assume i:"label x i \ label y i" ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1177` ``` have *:"\x y fx fy::real. (x \ fx \ fy \ y \ fx \ x \ y \ fy) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1178` ``` \ abs(fx - x) \ abs(fy - fx) + abs(y - x)" by auto ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1179` ``` have "\(f x - x) \$ i\ \ abs((f y - f x)\$i) + abs((y - x)\$i)" unfolding vector_minus_component ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff changeset ` 1180` ``` apply(rule *) apply(cases "label x i = 0") apply(rule disjI1,rule) prefer 3 proof(rule disjI2,rule) ``` 4c414d0835ab Added derivation and Brouwer's fixpoint theorem in Multivariate Analysis (translated by Robert Himmelmann from HOL-light) hoelzl parents: diff