| author | nipkow | 
| Sun, 07 Oct 2018 16:28:38 +0200 | |
| changeset 69133 | 22fe10b4c0c6 | 
| parent 69030 | 1eb517214deb | 
| child 69260 | 0a9688695a1b | 
| permissions | -rw-r--r-- | 
| 
69030
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
1  | 
(* Author: Sébastien Gouëzel sebastien.gouezel@univ-rennes1.fr with additions from LCP  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
2  | 
License: BSD  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
3  | 
*)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
4  | 
|
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
5  | 
theory Function_Topology  | 
| 
69030
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
6  | 
imports Topology_Euclidean_Space Bounded_Linear_Function Finite_Product_Measure  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
7  | 
begin  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
8  | 
|
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
9  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
10  | 
section%important \<open>Product topology\<close>  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
11  | 
|
| 64911 | 12  | 
text \<open>We want to define the product topology.  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
13  | 
|
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
14  | 
The product topology on a product of topological spaces is generated by  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
15  | 
the sets which are products of open sets along finitely many coordinates, and the whole  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
16  | 
space along the other coordinates. This is the coarsest topology for which the projection  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
17  | 
to each factor is continuous.  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
18  | 
|
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
19  | 
To form a product of objects in Isabelle/HOL, all these objects should be subsets of a common type  | 
| 64910 | 20  | 
'a. The product is then @{term "Pi\<^sub>E I X"}, the set of elements from 'i to 'a such that the $i$-th
 | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
21  | 
coordinate belongs to $X\;i$ for all $i \in I$.  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
22  | 
|
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
23  | 
Hence, to form a product of topological spaces, all these spaces should be subsets of a common type.  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
24  | 
This means that type classes can not be used to define such a product if one wants to take the  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
25  | 
product of different topological spaces (as the type 'a can only be given one structure of  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
26  | 
topological space using type classes). On the other hand, one can define different topologies (as  | 
| 
66827
 
c94531b5007d
Divided Topology_Euclidean_Space in two, creating new theory Connected. Also deleted some duplicate / variant theorems
 
paulson <lp15@cam.ac.uk> 
parents: 
65036 
diff
changeset
 | 
27  | 
introduced in \verb+thy+) on one type, and these topologies do not need to  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
28  | 
share the same maximal open set. Hence, one can form a product of topologies in this sense, and  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
29  | 
this works well. The big caveat is that it does not interact well with the main body of  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
30  | 
topology in Isabelle/HOL defined in terms of type classes... For instance, continuity of maps  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
31  | 
is not defined in this setting.  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
32  | 
|
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
33  | 
As the product of different topological spaces is very important in several areas of  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
34  | 
mathematics (for instance adeles), I introduce below the product topology in terms of topologies,  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
35  | 
and reformulate afterwards the consequences in terms of type classes (which are of course very  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
36  | 
handy for applications).  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
37  | 
|
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
38  | 
Given this limitation, it looks to me that it would be very beneficial to revamp the theory  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
39  | 
of topological spaces in Isabelle/HOL in terms of topologies, and keep the statements involving  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
40  | 
type classes as consequences of more general statements in terms of topologies (but I am  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
41  | 
probably too naive here).  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
42  | 
|
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
43  | 
Here is an example of a reformulation using topologies. Let  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
44  | 
\begin{verbatim}
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
45  | 
continuous_on_topo T1 T2 f = ((\<forall> U. openin T2 U \<longrightarrow> openin T1 (f-`U \<inter> topspace(T1)))  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
46  | 
\<and> (f`(topspace T1) \<subseteq> (topspace T2)))  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
47  | 
\end{verbatim}
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
48  | 
be the natural continuity definition of a map from the topology $T1$ to the topology $T2$. Then  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
49  | 
the current \verb+continuous_on+ (with type classes) can be redefined as  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
50  | 
\begin{verbatim}
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
51  | 
continuous_on s f = continuous_on_topo (subtopology euclidean s) (topology euclidean) f  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
52  | 
\end{verbatim}
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
53  | 
|
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
54  | 
In fact, I need \verb+continuous_on_topo+ to express the continuity of the projection on subfactors  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
55  | 
for the product topology, in Lemma~\verb+continuous_on_restrict_product_topology+, and I show  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
56  | 
the above equivalence in Lemma~\verb+continuous_on_continuous_on_topo+.  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
57  | 
|
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
58  | 
I only develop the basics of the product topology in this theory. The most important missing piece  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
59  | 
is Tychonov theorem, stating that a product of compact spaces is always compact for the product  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
60  | 
topology, even when the product is not finite (or even countable).  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
61  | 
|
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
62  | 
I realized afterwards that this theory has a lot in common with \verb+Fin_Map.thy+.  | 
| 64911 | 63  | 
\<close>  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
64  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
65  | 
subsection%important \<open>Topology without type classes\<close>  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
66  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
67  | 
subsubsection%important \<open>The topology generated by some (open) subsets\<close>  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
68  | 
|
| 64911 | 69  | 
text \<open>In the definition below of a generated topology, the \<open>Empty\<close> case is not necessary,  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
70  | 
as it follows from \<open>UN\<close> taking for $K$ the empty set. However, it is convenient to have,  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
71  | 
and is never a problem in proofs, so I prefer to write it down explicitly.  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
72  | 
|
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
73  | 
We do not require UNIV to be an open set, as this will not be the case in applications. (We are  | 
| 64911 | 74  | 
thinking of a topology on a subset of UNIV, the remaining part of UNIV being irrelevant.)\<close>  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
75  | 
|
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
76  | 
inductive generate_topology_on for S where  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
77  | 
Empty: "generate_topology_on S {}"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
78  | 
|Int: "generate_topology_on S a \<Longrightarrow> generate_topology_on S b \<Longrightarrow> generate_topology_on S (a \<inter> b)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
79  | 
| UN: "(\<And>k. k \<in> K \<Longrightarrow> generate_topology_on S k) \<Longrightarrow> generate_topology_on S (\<Union>K)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
80  | 
| Basis: "s \<in> S \<Longrightarrow> generate_topology_on S s"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
81  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
82  | 
lemma%unimportant istopology_generate_topology_on:  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
83  | 
"istopology (generate_topology_on S)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
84  | 
unfolding istopology_def by (auto intro: generate_topology_on.intros)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
85  | 
|
| 64911 | 86  | 
text \<open>The basic property of the topology generated by a set $S$ is that it is the  | 
87  | 
smallest topology containing all the elements of $S$:\<close>  | 
|
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
88  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
89  | 
lemma%unimportant generate_topology_on_coarsest:  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
90  | 
assumes "istopology T"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
91  | 
"\<And>s. s \<in> S \<Longrightarrow> T s"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
92  | 
"generate_topology_on S s0"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
93  | 
shows "T s0"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
94  | 
using assms(3) apply (induct rule: generate_topology_on.induct)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
95  | 
using assms(1) assms(2) unfolding istopology_def by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
96  | 
|
| 
69030
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
97  | 
abbreviation%unimportant topology_generated_by::"('a set set) \<Rightarrow> ('a topology)"
 | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
98  | 
where "topology_generated_by S \<equiv> topology (generate_topology_on S)"  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
99  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
100  | 
lemma%unimportant openin_topology_generated_by_iff:  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
101  | 
"openin (topology_generated_by S) s \<longleftrightarrow> generate_topology_on S s"  | 
| 
69030
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
102  | 
using topology_inverse'[OF istopology_generate_topology_on[of S]] by simp  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
103  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
104  | 
lemma%unimportant openin_topology_generated_by:  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
105  | 
"openin (topology_generated_by S) s \<Longrightarrow> generate_topology_on S s"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
106  | 
using openin_topology_generated_by_iff by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
107  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
108  | 
lemma%important topology_generated_by_topspace:  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
109  | 
"topspace (topology_generated_by S) = (\<Union>S)"  | 
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
110  | 
proof%unimportant  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
111  | 
  {
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
112  | 
fix s assume "openin (topology_generated_by S) s"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
113  | 
then have "generate_topology_on S s" by (rule openin_topology_generated_by)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
114  | 
then have "s \<subseteq> (\<Union>S)" by (induct, auto)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
115  | 
}  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
116  | 
then show "topspace (topology_generated_by S) \<subseteq> (\<Union>S)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
117  | 
unfolding topspace_def by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
118  | 
next  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
119  | 
have "generate_topology_on S (\<Union>S)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
120  | 
using generate_topology_on.UN[OF generate_topology_on.Basis, of S S] by simp  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
121  | 
then show "(\<Union>S) \<subseteq> topspace (topology_generated_by S)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
122  | 
unfolding topspace_def using openin_topology_generated_by_iff by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
123  | 
qed  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
124  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
125  | 
lemma%important topology_generated_by_Basis:  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
126  | 
"s \<in> S \<Longrightarrow> openin (topology_generated_by S) s"  | 
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
127  | 
by%unimportant (simp only: openin_topology_generated_by_iff, auto simp: generate_topology_on.Basis)  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
128  | 
|
| 
69030
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
129  | 
lemma generate_topology_on_Inter:  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
130  | 
  "\<lbrakk>finite \<F>; \<And>K. K \<in> \<F> \<Longrightarrow> generate_topology_on \<S> K; \<F> \<noteq> {}\<rbrakk> \<Longrightarrow> generate_topology_on \<S> (\<Inter>\<F>)"
 | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
131  | 
by (induction \<F> rule: finite_induct; force intro: generate_topology_on.intros)  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
132  | 
|
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
133  | 
subsection\<open>Topology bases and sub-bases\<close>  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
134  | 
|
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
135  | 
lemma istopology_base_alt:  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
136  | 
"istopology (arbitrary union_of P) \<longleftrightarrow>  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
137  | 
(\<forall>S T. (arbitrary union_of P) S \<and> (arbitrary union_of P) T  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
138  | 
\<longrightarrow> (arbitrary union_of P) (S \<inter> T))"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
139  | 
by (simp add: istopology_def) (blast intro: arbitrary_union_of_Union)  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
140  | 
|
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
141  | 
lemma istopology_base_eq:  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
142  | 
"istopology (arbitrary union_of P) \<longleftrightarrow>  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
143  | 
(\<forall>S T. P S \<and> P T \<longrightarrow> (arbitrary union_of P) (S \<inter> T))"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
144  | 
by (simp add: istopology_base_alt arbitrary_union_of_Int_eq)  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
145  | 
|
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
146  | 
lemma istopology_base:  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
147  | 
"(\<And>S T. \<lbrakk>P S; P T\<rbrakk> \<Longrightarrow> P(S \<inter> T)) \<Longrightarrow> istopology (arbitrary union_of P)"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
148  | 
by (simp add: arbitrary_def istopology_base_eq union_of_inc)  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
149  | 
|
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
150  | 
lemma openin_topology_base_unique:  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
151  | 
"openin X = arbitrary union_of P \<longleftrightarrow>  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
152  | 
(\<forall>V. P V \<longrightarrow> openin X V) \<and> (\<forall>U x. openin X U \<and> x \<in> U \<longrightarrow> (\<exists>V. P V \<and> x \<in> V \<and> V \<subseteq> U))"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
153  | 
(is "?lhs = ?rhs")  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
154  | 
proof  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
155  | 
assume ?lhs  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
156  | 
then show ?rhs  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
157  | 
by (auto simp: union_of_def arbitrary_def)  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
158  | 
next  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
159  | 
assume R: ?rhs  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
160  | 
then have *: "\<exists>\<U>\<subseteq>Collect P. \<Union>\<U> = S" if "openin X S" for S  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
161  | 
    using that by (rule_tac x="{V. P V \<and> V \<subseteq> S}" in exI) fastforce
 | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
162  | 
from R show ?lhs  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
163  | 
by (fastforce simp add: union_of_def arbitrary_def intro: *)  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
164  | 
qed  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
165  | 
|
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
166  | 
lemma topology_base_unique:  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
167  | 
"\<lbrakk>\<And>S. P S \<Longrightarrow> openin X S;  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
168  | 
\<And>U x. \<lbrakk>openin X U; x \<in> U\<rbrakk> \<Longrightarrow> \<exists>B. P B \<and> x \<in> B \<and> B \<subseteq> U\<rbrakk>  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
169  | 
\<Longrightarrow> topology(arbitrary union_of P) = X"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
170  | 
by (metis openin_topology_base_unique openin_inverse [of X])  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
171  | 
|
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
172  | 
lemma topology_bases_eq_aux:  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
173  | 
"\<lbrakk>(arbitrary union_of P) S;  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
174  | 
\<And>U x. \<lbrakk>P U; x \<in> U\<rbrakk> \<Longrightarrow> \<exists>V. Q V \<and> x \<in> V \<and> V \<subseteq> U\<rbrakk>  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
175  | 
\<Longrightarrow> (arbitrary union_of Q) S"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
176  | 
by (metis arbitrary_union_of_alt arbitrary_union_of_idempot)  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
177  | 
|
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
178  | 
lemma topology_bases_eq:  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
179  | 
"\<lbrakk>\<And>U x. \<lbrakk>P U; x \<in> U\<rbrakk> \<Longrightarrow> \<exists>V. Q V \<and> x \<in> V \<and> V \<subseteq> U;  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
180  | 
\<And>V x. \<lbrakk>Q V; x \<in> V\<rbrakk> \<Longrightarrow> \<exists>U. P U \<and> x \<in> U \<and> U \<subseteq> V\<rbrakk>  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
181  | 
\<Longrightarrow> topology (arbitrary union_of P) =  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
182  | 
topology (arbitrary union_of Q)"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
183  | 
by (fastforce intro: arg_cong [where f=topology] elim: topology_bases_eq_aux)  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
184  | 
|
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
185  | 
lemma istopology_subbase:  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
186  | 
"istopology (arbitrary union_of (finite intersection_of P relative_to S))"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
187  | 
by (simp add: finite_intersection_of_Int istopology_base relative_to_Int)  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
188  | 
|
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
189  | 
lemma openin_subbase:  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
190  | 
"openin (topology (arbitrary union_of (finite intersection_of B relative_to U))) S  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
191  | 
\<longleftrightarrow> (arbitrary union_of (finite intersection_of B relative_to U)) S"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
192  | 
by (simp add: istopology_subbase topology_inverse')  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
193  | 
|
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
194  | 
lemma topspace_subbase [simp]:  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
195  | 
"topspace(topology (arbitrary union_of (finite intersection_of B relative_to U))) = U" (is "?lhs = _")  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
196  | 
proof  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
197  | 
show "?lhs \<subseteq> U"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
198  | 
by (metis arbitrary_union_of_relative_to openin_subbase openin_topspace relative_to_imp_subset)  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
199  | 
show "U \<subseteq> ?lhs"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
200  | 
by (metis arbitrary_union_of_inc finite_intersection_of_empty inf.orderE istopology_subbase  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
201  | 
openin_subset relative_to_inc subset_UNIV topology_inverse')  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
202  | 
qed  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
203  | 
|
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
204  | 
lemma minimal_topology_subbase:  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
205  | 
"\<lbrakk>\<And>S. P S \<Longrightarrow> openin X S; openin X U;  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
206  | 
openin(topology(arbitrary union_of (finite intersection_of P relative_to U))) S\<rbrakk>  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
207  | 
\<Longrightarrow> openin X S"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
208  | 
apply (simp add: istopology_subbase topology_inverse)  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
209  | 
apply (simp add: union_of_def intersection_of_def relative_to_def)  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
210  | 
apply (blast intro: openin_Int_Inter)  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
211  | 
done  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
212  | 
|
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
213  | 
lemma istopology_subbase_UNIV:  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
214  | 
"istopology (arbitrary union_of (finite intersection_of P))"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
215  | 
by (simp add: istopology_base finite_intersection_of_Int)  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
216  | 
|
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
217  | 
|
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
218  | 
lemma generate_topology_on_eq:  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
219  | 
"generate_topology_on S = arbitrary union_of finite' intersection_of (\<lambda>x. x \<in> S)" (is "?lhs = ?rhs")  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
220  | 
proof (intro ext iffI)  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
221  | 
fix A  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
222  | 
assume "?lhs A"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
223  | 
then show "?rhs A"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
224  | 
proof induction  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
225  | 
case (Int a b)  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
226  | 
then show ?case  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
227  | 
by (metis (mono_tags, lifting) istopology_base_alt finite'_intersection_of_Int istopology_base)  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
228  | 
next  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
229  | 
case (UN K)  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
230  | 
then show ?case  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
231  | 
by (simp add: arbitrary_union_of_Union)  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
232  | 
next  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
233  | 
case (Basis s)  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
234  | 
then show ?case  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
235  | 
by (simp add: Sup_upper arbitrary_union_of_inc finite'_intersection_of_inc relative_to_subset)  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
236  | 
qed auto  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
237  | 
next  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
238  | 
fix A  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
239  | 
assume "?rhs A"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
240  | 
then obtain \<U> where \<U>: "\<And>T. T \<in> \<U> \<Longrightarrow> \<exists>\<F>. finite' \<F> \<and> \<F> \<subseteq> S \<and> \<Inter>\<F> = T" and eq: "A = \<Union>\<U>"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
241  | 
unfolding union_of_def intersection_of_def by auto  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
242  | 
show "?lhs A"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
243  | 
unfolding eq  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
244  | 
proof (rule generate_topology_on.UN)  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
245  | 
fix T  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
246  | 
assume "T \<in> \<U>"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
247  | 
with \<U> obtain \<F> where "finite' \<F>" "\<F> \<subseteq> S" "\<Inter>\<F> = T"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
248  | 
by blast  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
249  | 
have "generate_topology_on S (\<Inter>\<F>)"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
250  | 
proof (rule generate_topology_on_Inter)  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
251  | 
      show "finite \<F>" "\<F> \<noteq> {}"
 | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
252  | 
by (auto simp: \<open>finite' \<F>\<close>)  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
253  | 
show "\<And>K. K \<in> \<F> \<Longrightarrow> generate_topology_on S K"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
254  | 
by (metis \<open>\<F> \<subseteq> S\<close> generate_topology_on.simps subset_iff)  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
255  | 
qed  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
256  | 
then show "generate_topology_on S T"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
257  | 
using \<open>\<Inter>\<F> = T\<close> by blast  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
258  | 
qed  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
259  | 
qed  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
260  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
261  | 
subsubsection%important \<open>Continuity\<close>  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
262  | 
|
| 64911 | 263  | 
text \<open>We will need to deal with continuous maps in terms of topologies and not in terms  | 
264  | 
of type classes, as defined below.\<close>  | 
|
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
265  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
266  | 
definition%important continuous_on_topo::"'a topology \<Rightarrow> 'b topology \<Rightarrow> ('a \<Rightarrow> 'b) \<Rightarrow> bool"
 | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
267  | 
where "continuous_on_topo T1 T2 f = ((\<forall> U. openin T2 U \<longrightarrow> openin T1 (f-`U \<inter> topspace(T1)))  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
268  | 
\<and> (f`(topspace T1) \<subseteq> (topspace T2)))"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
269  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
270  | 
lemma%important continuous_on_continuous_on_topo:  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
271  | 
"continuous_on s f \<longleftrightarrow> continuous_on_topo (subtopology euclidean s) euclidean f"  | 
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
272  | 
unfolding%unimportant continuous_on_open_invariant openin_open vimage_def continuous_on_topo_def  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
273  | 
topspace_euclidean_subtopology open_openin topspace_euclidean by fast  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
274  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
275  | 
lemma%unimportant continuous_on_topo_UNIV:  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
276  | 
"continuous_on UNIV f \<longleftrightarrow> continuous_on_topo euclidean euclidean f"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
277  | 
using continuous_on_continuous_on_topo[of UNIV f] subtopology_UNIV[of euclidean] by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
278  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
279  | 
lemma%important continuous_on_topo_open [intro]:  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
280  | 
"continuous_on_topo T1 T2 f \<Longrightarrow> openin T2 U \<Longrightarrow> openin T1 (f-`U \<inter> topspace(T1))"  | 
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
281  | 
unfolding%unimportant continuous_on_topo_def by auto  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
282  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
283  | 
lemma%unimportant continuous_on_topo_topspace [intro]:  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
284  | 
"continuous_on_topo T1 T2 f \<Longrightarrow> f`(topspace T1) \<subseteq> (topspace T2)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
285  | 
unfolding continuous_on_topo_def by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
286  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
287  | 
lemma%important continuous_on_generated_topo_iff:  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
288  | 
"continuous_on_topo T1 (topology_generated_by S) f \<longleftrightarrow>  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
289  | 
((\<forall>U. U \<in> S \<longrightarrow> openin T1 (f-`U \<inter> topspace(T1))) \<and> (f`(topspace T1) \<subseteq> (\<Union> S)))"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
290  | 
unfolding continuous_on_topo_def topology_generated_by_topspace  | 
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
291  | 
proof%unimportant (auto simp add: topology_generated_by_Basis)  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
292  | 
assume H: "\<forall>U. U \<in> S \<longrightarrow> openin T1 (f -` U \<inter> topspace T1)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
293  | 
fix U assume "openin (topology_generated_by S) U"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
294  | 
then have "generate_topology_on S U" by (rule openin_topology_generated_by)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
295  | 
then show "openin T1 (f -` U \<inter> topspace T1)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
296  | 
proof (induct)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
297  | 
fix a b  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
298  | 
assume H: "openin T1 (f -` a \<inter> topspace T1)" "openin T1 (f -` b \<inter> topspace T1)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
299  | 
have "f -` (a \<inter> b) \<inter> topspace T1 = (f-`a \<inter> topspace T1) \<inter> (f-`b \<inter> topspace T1)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
300  | 
by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
301  | 
then show "openin T1 (f -` (a \<inter> b) \<inter> topspace T1)" using H by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
302  | 
next  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
303  | 
fix K  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
304  | 
assume H: "openin T1 (f -` k \<inter> topspace T1)" if "k\<in> K" for k  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
305  | 
    define L where "L = {f -` k \<inter> topspace T1|k. k \<in> K}"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
306  | 
have *: "openin T1 l" if "l \<in>L" for l using that H unfolding L_def by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
307  | 
have "openin T1 (\<Union>L)" using openin_Union[OF *] by simp  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
308  | 
moreover have "(\<Union>L) = (f -` \<Union>K \<inter> topspace T1)" unfolding L_def by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
309  | 
ultimately show "openin T1 (f -` \<Union>K \<inter> topspace T1)" by simp  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
310  | 
qed (auto simp add: H)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
311  | 
qed  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
312  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
313  | 
lemma%important continuous_on_generated_topo:  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
314  | 
assumes "\<And>U. U \<in>S \<Longrightarrow> openin T1 (f-`U \<inter> topspace(T1))"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
315  | 
"f`(topspace T1) \<subseteq> (\<Union> S)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
316  | 
shows "continuous_on_topo T1 (topology_generated_by S) f"  | 
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
317  | 
using%unimportant assms continuous_on_generated_topo_iff by blast  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
318  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
319  | 
lemma%important continuous_on_topo_compose:  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
320  | 
assumes "continuous_on_topo T1 T2 f" "continuous_on_topo T2 T3 g"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
321  | 
shows "continuous_on_topo T1 T3 (g o f)"  | 
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
322  | 
using%unimportant assms unfolding continuous_on_topo_def  | 
| 
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
323  | 
proof%unimportant (auto)  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
324  | 
fix U :: "'c set"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
325  | 
assume H: "openin T3 U"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
326  | 
have "openin T1 (f -` (g -` U \<inter> topspace T2) \<inter> topspace T1)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
327  | 
using H assms by blast  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
328  | 
moreover have "f -` (g -` U \<inter> topspace T2) \<inter> topspace T1 = (g \<circ> f) -` U \<inter> topspace T1"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
329  | 
using H assms continuous_on_topo_topspace by fastforce  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
330  | 
ultimately show "openin T1 ((g \<circ> f) -` U \<inter> topspace T1)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
331  | 
by simp  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
332  | 
qed (blast)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
333  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
334  | 
lemma%unimportant continuous_on_topo_preimage_topspace [intro]:  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
335  | 
assumes "continuous_on_topo T1 T2 f"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
336  | 
shows "f-`(topspace T2) \<inter> topspace T1 = topspace T1"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
337  | 
using assms unfolding continuous_on_topo_def by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
338  | 
|
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
339  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
340  | 
subsubsection%important \<open>Pullback topology\<close>  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
341  | 
|
| 64911 | 342  | 
text \<open>Pulling back a topology by map gives again a topology. \<open>subtopology\<close> is  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
343  | 
a special case of this notion, pulling back by the identity. We introduce the general notion as  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
344  | 
we will need it to define the strong operator topology on the space of continuous linear operators,  | 
| 64911 | 345  | 
by pulling back the product topology on the space of all functions.\<close>  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
346  | 
|
| 64911 | 347  | 
text \<open>\verb+pullback_topology A f T+ is the pullback of the topology $T$ by the map $f$ on  | 
348  | 
the set $A$.\<close>  | 
|
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
349  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
350  | 
definition%important pullback_topology::"('a set) \<Rightarrow> ('a \<Rightarrow> 'b) \<Rightarrow> ('b topology) \<Rightarrow> ('a topology)"
 | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
351  | 
where "pullback_topology A f T = topology (\<lambda>S. \<exists>U. openin T U \<and> S = f-`U \<inter> A)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
352  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
353  | 
lemma%important istopology_pullback_topology:  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
354  | 
"istopology (\<lambda>S. \<exists>U. openin T U \<and> S = f-`U \<inter> A)"  | 
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
355  | 
unfolding%unimportant istopology_def proof (auto)  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
356  | 
fix K assume "\<forall>S\<in>K. \<exists>U. openin T U \<and> S = f -` U \<inter> A"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
357  | 
then have "\<exists>U. \<forall>S\<in>K. openin T (U S) \<and> S = f-`(U S) \<inter> A"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
358  | 
by (rule bchoice)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
359  | 
then obtain U where U: "\<forall>S\<in>K. openin T (U S) \<and> S = f-`(U S) \<inter> A"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
360  | 
by blast  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
361  | 
define V where "V = (\<Union>S\<in>K. U S)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
362  | 
have "openin T V" "\<Union>K = f -` V \<inter> A" unfolding V_def using U by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
363  | 
then show "\<exists>V. openin T V \<and> \<Union>K = f -` V \<inter> A" by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
364  | 
qed  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
365  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
366  | 
lemma%unimportant openin_pullback_topology:  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
367  | 
"openin (pullback_topology A f T) S \<longleftrightarrow> (\<exists>U. openin T U \<and> S = f-`U \<inter> A)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
368  | 
unfolding pullback_topology_def topology_inverse'[OF istopology_pullback_topology] by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
369  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
370  | 
lemma%unimportant topspace_pullback_topology:  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
371  | 
"topspace (pullback_topology A f T) = f-`(topspace T) \<inter> A"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
372  | 
by (auto simp add: topspace_def openin_pullback_topology)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
373  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
374  | 
lemma%important continuous_on_topo_pullback [intro]:  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
375  | 
assumes "continuous_on_topo T1 T2 g"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
376  | 
shows "continuous_on_topo (pullback_topology A f T1) T2 (g o f)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
377  | 
unfolding continuous_on_topo_def  | 
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
378  | 
proof%unimportant (auto)  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
379  | 
fix U::"'b set" assume "openin T2 U"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
380  | 
then have "openin T1 (g-`U \<inter> topspace T1)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
381  | 
using assms unfolding continuous_on_topo_def by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
382  | 
have "(g o f)-`U \<inter> topspace (pullback_topology A f T1) = (g o f)-`U \<inter> A \<inter> f-`(topspace T1)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
383  | 
unfolding topspace_pullback_topology by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
384  | 
also have "... = f-`(g-`U \<inter> topspace T1) \<inter> A "  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
385  | 
by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
386  | 
also have "openin (pullback_topology A f T1) (...)"  | 
| 64911 | 387  | 
unfolding openin_pullback_topology using \<open>openin T1 (g-`U \<inter> topspace T1)\<close> by auto  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
388  | 
finally show "openin (pullback_topology A f T1) ((g \<circ> f) -` U \<inter> topspace (pullback_topology A f T1))"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
389  | 
by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
390  | 
next  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
391  | 
fix x assume "x \<in> topspace (pullback_topology A f T1)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
392  | 
then have "f x \<in> topspace T1"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
393  | 
unfolding topspace_pullback_topology by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
394  | 
then show "g (f x) \<in> topspace T2"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
395  | 
using assms unfolding continuous_on_topo_def by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
396  | 
qed  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
397  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
398  | 
lemma%important continuous_on_topo_pullback' [intro]:  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
399  | 
assumes "continuous_on_topo T1 T2 (f o g)" "topspace T1 \<subseteq> g-`A"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
400  | 
shows "continuous_on_topo T1 (pullback_topology A f T2) g"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
401  | 
unfolding continuous_on_topo_def  | 
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
402  | 
proof%unimportant (auto)  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
403  | 
fix U assume "openin (pullback_topology A f T2) U"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
404  | 
then have "\<exists>V. openin T2 V \<and> U = f-`V \<inter> A"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
405  | 
unfolding openin_pullback_topology by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
406  | 
then obtain V where "openin T2 V" "U = f-`V \<inter> A"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
407  | 
by blast  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
408  | 
then have "g -` U \<inter> topspace T1 = g-`(f-`V \<inter> A) \<inter> topspace T1"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
409  | 
by blast  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
410  | 
also have "... = (f o g)-`V \<inter> (g-`A \<inter> topspace T1)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
411  | 
by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
412  | 
also have "... = (f o g)-`V \<inter> topspace T1"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
413  | 
using assms(2) by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
414  | 
also have "openin T1 (...)"  | 
| 64911 | 415  | 
using assms(1) \<open>openin T2 V\<close> by auto  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
416  | 
finally show "openin T1 (g -` U \<inter> topspace T1)" by simp  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
417  | 
next  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
418  | 
fix x assume "x \<in> topspace T1"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
419  | 
have "(f o g) x \<in> topspace T2"  | 
| 64911 | 420  | 
using assms(1) \<open>x \<in> topspace T1\<close> unfolding continuous_on_topo_def by auto  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
421  | 
then have "g x \<in> f-`(topspace T2)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
422  | 
unfolding comp_def by blast  | 
| 64911 | 423  | 
moreover have "g x \<in> A" using assms(2) \<open>x \<in> topspace T1\<close> by blast  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
424  | 
ultimately show "g x \<in> topspace (pullback_topology A f T2)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
425  | 
unfolding topspace_pullback_topology by blast  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
426  | 
qed  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
427  | 
|
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
428  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
429  | 
subsection%important \<open>The product topology\<close>  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
430  | 
|
| 64911 | 431  | 
text \<open>We can now define the product topology, as generated by  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
432  | 
the sets which are products of open sets along finitely many coordinates, and the whole  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
433  | 
space along the other coordinates. Equivalently, it is generated by sets which are one open  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
434  | 
set along one single coordinate, and the whole space along other coordinates. In fact, this is only  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
435  | 
equivalent for nonempty products, but for the empty product the first formulation is better  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
436  | 
(the second one gives an empty product space, while an empty product should have exactly one  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
437  | 
point, equal to \verb+undefined+ along all coordinates.  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
438  | 
|
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
439  | 
So, we use the first formulation, which moreover seems to give rise to more straightforward proofs.  | 
| 64911 | 440  | 
\<close>  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
441  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
442  | 
definition%important product_topology::"('i \<Rightarrow> ('a topology)) \<Rightarrow> ('i set) \<Rightarrow> (('i \<Rightarrow> 'a) topology)"
 | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
443  | 
where "product_topology T I =  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
444  | 
    topology_generated_by {(\<Pi>\<^sub>E i\<in>I. X i) |X. (\<forall>i. openin (T i) (X i)) \<and> finite {i. X i \<noteq> topspace (T i)}}"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
445  | 
|
| 64911 | 446  | 
text \<open>The total set of the product topology is the product of the total sets  | 
447  | 
along each coordinate.\<close>  | 
|
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
448  | 
|
| 
69030
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
449  | 
proposition product_topology:  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
450  | 
"product_topology X I =  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
451  | 
topology  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
452  | 
(arbitrary union_of  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
453  | 
((finite intersection_of  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
454  | 
        (\<lambda>F. \<exists>i U. F = {f. f i \<in> U} \<and> i \<in> I \<and> openin (X i) U))
 | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
455  | 
relative_to (\<Pi>\<^sub>E i\<in>I. topspace (X i))))"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
456  | 
(is "_ = topology (_ union_of ((_ intersection_of ?\<Psi>) relative_to ?TOP))")  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
457  | 
proof -  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
458  | 
  let ?\<Omega> = "(\<lambda>F. \<exists>Y. F = Pi\<^sub>E I Y \<and> (\<forall>i. openin (X i) (Y i)) \<and> finite {i. Y i \<noteq> topspace (X i)})"
 | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
459  | 
have *: "(finite' intersection_of ?\<Omega>) A = (finite intersection_of ?\<Psi> relative_to ?TOP) A" for A  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
460  | 
proof -  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
461  | 
have 1: "\<exists>U. (\<exists>\<U>. finite \<U> \<and> \<U> \<subseteq> Collect ?\<Psi> \<and> \<Inter>\<U> = U) \<and> ?TOP \<inter> U = \<Inter>\<U>"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
462  | 
      if \<U>: "\<U> \<subseteq> Collect ?\<Omega>" and "finite' \<U>" "A = \<Inter>\<U>" "\<U> \<noteq> {}" for \<U>
 | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
463  | 
proof -  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
464  | 
      have "\<forall>U \<in> \<U>. \<exists>Y. U = Pi\<^sub>E I Y \<and> (\<forall>i. openin (X i) (Y i)) \<and> finite {i. Y i \<noteq> topspace (X i)}"
 | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
465  | 
using \<U> by auto  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
466  | 
      then obtain Y where Y: "\<And>U. U \<in> \<U> \<Longrightarrow> U = Pi\<^sub>E I (Y U) \<and> (\<forall>i. openin (X i) (Y U i)) \<and> finite {i. (Y U) i \<noteq> topspace (X i)}"
 | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
467  | 
by metis  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
468  | 
obtain U where "U \<in> \<U>"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
469  | 
        using \<open>\<U> \<noteq> {}\<close> by blast
 | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
470  | 
      let ?F = "\<lambda>U. (\<lambda>i. {f. f i \<in> Y U i}) ` {i \<in> I. Y U i \<noteq> topspace (X i)}"
 | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
471  | 
show ?thesis  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
472  | 
proof (intro conjI exI)  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
473  | 
show "finite (\<Union>U\<in>\<U>. ?F U)"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
474  | 
using Y \<open>finite' \<U>\<close> by auto  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
475  | 
show "?TOP \<inter> \<Inter>(\<Union>U\<in>\<U>. ?F U) = \<Inter>\<U>"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
476  | 
proof  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
477  | 
have *: "f \<in> U"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
478  | 
if "U \<in> \<U>" and "\<forall>V\<in>\<U>. \<forall>i. i \<in> I \<and> Y V i \<noteq> topspace (X i) \<longrightarrow> f i \<in> Y V i"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
479  | 
and "\<forall>i\<in>I. f i \<in> topspace (X i)" and "f \<in> extensional I" for f U  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
480  | 
proof -  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
481  | 
have "Pi\<^sub>E I (Y U) = U"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
482  | 
using Y \<open>U \<in> \<U>\<close> by blast  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
483  | 
then show "f \<in> U"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
484  | 
using that unfolding PiE_def Pi_def by blast  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
485  | 
qed  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
486  | 
show "?TOP \<inter> \<Inter>(\<Union>U\<in>\<U>. ?F U) \<subseteq> \<Inter>\<U>"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
487  | 
by (auto simp: PiE_iff *)  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
488  | 
show "\<Inter>\<U> \<subseteq> ?TOP \<inter> \<Inter>(\<Union>U\<in>\<U>. ?F U)"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
489  | 
using Y openin_subset \<open>finite' \<U>\<close> by fastforce  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
490  | 
qed  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
491  | 
qed (use Y openin_subset in \<open>blast+\<close>)  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
492  | 
qed  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
493  | 
have 2: "\<exists>\<U>'. finite' \<U>' \<and> \<U>' \<subseteq> Collect ?\<Omega> \<and> \<Inter>\<U>' = ?TOP \<inter> \<Inter>\<U>"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
494  | 
if \<U>: "\<U> \<subseteq> Collect ?\<Psi>" and "finite \<U>" for \<U>  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
495  | 
    proof (cases "\<U>={}")
 | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
496  | 
case True  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
497  | 
then show ?thesis  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
498  | 
        apply (rule_tac x="{?TOP}" in exI, simp)
 | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
499  | 
apply (rule_tac x="\<lambda>i. topspace (X i)" in exI)  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
500  | 
apply force  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
501  | 
done  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
502  | 
next  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
503  | 
case False  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
504  | 
then obtain U where "U \<in> \<U>"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
505  | 
by blast  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
506  | 
      have "\<forall>U \<in> \<U>. \<exists>i Y. U = {f. f i \<in> Y} \<and> i \<in> I \<and> openin (X i) Y"
 | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
507  | 
using \<U> by auto  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
508  | 
then obtain J Y where  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
509  | 
        Y: "\<And>U. U \<in> \<U> \<Longrightarrow> U = {f. f (J U) \<in> Y U} \<and> J U \<in> I \<and> openin (X (J U)) (Y U)"
 | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
510  | 
by metis  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
511  | 
let ?G = "\<lambda>U. \<Pi>\<^sub>E i\<in>I. if i = J U then Y U else topspace (X i)"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
512  | 
show ?thesis  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
513  | 
proof (intro conjI exI)  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
514  | 
        show "finite (?G ` \<U>)" "?G ` \<U> \<noteq> {}"
 | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
515  | 
using \<open>finite \<U>\<close> \<open>U \<in> \<U>\<close> by blast+  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
516  | 
have *: "\<And>U. U \<in> \<U> \<Longrightarrow> openin (X (J U)) (Y U)"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
517  | 
using Y by force  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
518  | 
        show "?G ` \<U> \<subseteq> {Pi\<^sub>E I Y |Y. (\<forall>i. openin (X i) (Y i)) \<and> finite {i. Y i \<noteq> topspace (X i)}}"
 | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
519  | 
apply clarsimp  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
520  | 
apply (rule_tac x=" (\<lambda>i. if i = J U then Y U else topspace (X i))" in exI)  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
521  | 
apply (auto simp: *)  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
522  | 
done  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
523  | 
next  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
524  | 
show "(\<Inter>U\<in>\<U>. ?G U) = ?TOP \<inter> \<Inter>\<U>"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
525  | 
proof  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
526  | 
have "(\<Pi>\<^sub>E i\<in>I. if i = J U then Y U else topspace (X i)) \<subseteq> (\<Pi>\<^sub>E i\<in>I. topspace (X i))"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
527  | 
apply (clarsimp simp: PiE_iff Ball_def all_conj_distrib split: if_split_asm)  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
528  | 
using Y \<open>U \<in> \<U>\<close> openin_subset by blast+  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
529  | 
then have "(\<Inter>U\<in>\<U>. ?G U) \<subseteq> ?TOP"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
530  | 
using \<open>U \<in> \<U>\<close>  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
531  | 
by fastforce  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
532  | 
moreover have "(\<Inter>U\<in>\<U>. ?G U) \<subseteq> \<Inter>\<U>"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
533  | 
using PiE_mem Y by fastforce  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
534  | 
ultimately show "(\<Inter>U\<in>\<U>. ?G U) \<subseteq> ?TOP \<inter> \<Inter>\<U>"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
535  | 
by auto  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
536  | 
qed (use Y in fastforce)  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
537  | 
qed  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
538  | 
qed  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
539  | 
show ?thesis  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
540  | 
unfolding relative_to_def intersection_of_def  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
541  | 
by (safe; blast dest!: 1 2)  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
542  | 
qed  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
543  | 
show ?thesis  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
544  | 
unfolding product_topology_def generate_topology_on_eq  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
545  | 
apply (rule arg_cong [where f = topology])  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
546  | 
apply (rule arg_cong [where f = "(union_of)arbitrary"])  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
547  | 
apply (force simp: *)  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
548  | 
done  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
549  | 
qed  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
550  | 
|
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
551  | 
lemma%important topspace_product_topology:  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
552  | 
"topspace (product_topology T I) = (\<Pi>\<^sub>E i\<in>I. topspace(T i))"  | 
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
553  | 
proof%unimportant  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
554  | 
show "topspace (product_topology T I) \<subseteq> (\<Pi>\<^sub>E i\<in>I. topspace (T i))"  | 
| 
69030
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
555  | 
unfolding product_topology_def topology_generated_by_topspace  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
556  | 
unfolding topspace_def by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
557  | 
  have "(\<Pi>\<^sub>E i\<in>I. topspace (T i)) \<in> {(\<Pi>\<^sub>E i\<in>I. X i) |X. (\<forall>i. openin (T i) (X i)) \<and> finite {i. X i \<noteq> topspace (T i)}}"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
558  | 
using openin_topspace not_finite_existsD by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
559  | 
then show "(\<Pi>\<^sub>E i\<in>I. topspace (T i)) \<subseteq> topspace (product_topology T I)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
560  | 
unfolding product_topology_def using PiE_def by (auto simp add: topology_generated_by_topspace)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
561  | 
qed  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
562  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
563  | 
lemma%unimportant product_topology_basis:  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
564  | 
  assumes "\<And>i. openin (T i) (X i)" "finite {i. X i \<noteq> topspace (T i)}"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
565  | 
shows "openin (product_topology T I) (\<Pi>\<^sub>E i\<in>I. X i)"  | 
| 
69030
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
566  | 
unfolding product_topology_def  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
567  | 
by (rule topology_generated_by_Basis) (use assms in auto)  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
568  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
569  | 
lemma%important product_topology_open_contains_basis:  | 
| 
69030
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
570  | 
assumes "openin (product_topology T I) U" "x \<in> U"  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
571  | 
  shows "\<exists>X. x \<in> (\<Pi>\<^sub>E i\<in>I. X i) \<and> (\<forall>i. openin (T i) (X i)) \<and> finite {i. X i \<noteq> topspace (T i)} \<and> (\<Pi>\<^sub>E i\<in>I. X i) \<subseteq> U"
 | 
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
572  | 
proof%unimportant -  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
573  | 
  have "generate_topology_on {(\<Pi>\<^sub>E i\<in>I. X i) |X. (\<forall>i. openin (T i) (X i)) \<and> finite {i. X i \<noteq> topspace (T i)}} U"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
574  | 
using assms unfolding product_topology_def by (intro openin_topology_generated_by) auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
575  | 
  then have "\<And>x. x\<in>U \<Longrightarrow> \<exists>X. x \<in> (\<Pi>\<^sub>E i\<in>I. X i) \<and> (\<forall>i. openin (T i) (X i)) \<and> finite {i. X i \<noteq> topspace (T i)} \<and> (\<Pi>\<^sub>E i\<in>I. X i) \<subseteq> U"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
576  | 
proof induction  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
577  | 
case (Int U V x)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
578  | 
then obtain XU XV where H:  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
579  | 
      "x \<in> Pi\<^sub>E I XU" "(\<forall>i. openin (T i) (XU i))" "finite {i. XU i \<noteq> topspace (T i)}" "Pi\<^sub>E I XU \<subseteq> U"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
580  | 
      "x \<in> Pi\<^sub>E I XV" "(\<forall>i. openin (T i) (XV i))" "finite {i. XV i \<noteq> topspace (T i)}" "Pi\<^sub>E I XV \<subseteq> V"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
581  | 
by auto meson  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
582  | 
define X where "X = (\<lambda>i. XU i \<inter> XV i)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
583  | 
have "Pi\<^sub>E I X \<subseteq> Pi\<^sub>E I XU \<inter> Pi\<^sub>E I XV"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
584  | 
unfolding X_def by (auto simp add: PiE_iff)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
585  | 
then have "Pi\<^sub>E I X \<subseteq> U \<inter> V" using H by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
586  | 
moreover have "\<forall>i. openin (T i) (X i)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
587  | 
unfolding X_def using H by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
588  | 
    moreover have "finite {i. X i \<noteq> topspace (T i)}"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
589  | 
      apply (rule rev_finite_subset[of "{i. XU i \<noteq> topspace (T i)} \<union> {i. XV i \<noteq> topspace (T i)}"])
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
590  | 
unfolding X_def using H by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
591  | 
moreover have "x \<in> Pi\<^sub>E I X"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
592  | 
unfolding X_def using H by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
593  | 
ultimately show ?case  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
594  | 
by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
595  | 
next  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
596  | 
case (UN K x)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
597  | 
then obtain k where "k \<in> K" "x \<in> k" by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
598  | 
    with UN have "\<exists>X. x \<in> Pi\<^sub>E I X \<and> (\<forall>i. openin (T i) (X i)) \<and> finite {i. X i \<noteq> topspace (T i)} \<and> Pi\<^sub>E I X \<subseteq> k"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
599  | 
by simp  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
600  | 
    then obtain X where "x \<in> Pi\<^sub>E I X \<and> (\<forall>i. openin (T i) (X i)) \<and> finite {i. X i \<noteq> topspace (T i)} \<and> Pi\<^sub>E I X \<subseteq> k"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
601  | 
by blast  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
602  | 
    then have "x \<in> Pi\<^sub>E I X \<and> (\<forall>i. openin (T i) (X i)) \<and> finite {i. X i \<noteq> topspace (T i)} \<and> Pi\<^sub>E I X \<subseteq> (\<Union>K)"
 | 
| 64911 | 603  | 
using \<open>k \<in> K\<close> by auto  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
604  | 
then show ?case  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
605  | 
by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
606  | 
qed auto  | 
| 64911 | 607  | 
then show ?thesis using \<open>x \<in> U\<close> by auto  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
608  | 
qed  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
609  | 
|
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
610  | 
|
| 
69030
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
611  | 
lemma openin_product_topology:  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
612  | 
"openin (product_topology X I) =  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
613  | 
arbitrary union_of  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
614  | 
          ((finite intersection_of (\<lambda>F. (\<exists>i U. F = {f. f i \<in> U} \<and> i \<in> I \<and> openin (X i) U)))
 | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
615  | 
relative_to topspace (product_topology X I))"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
616  | 
apply (subst product_topology)  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
617  | 
apply (simp add: topspace_product_topology topology_inverse' [OF istopology_subbase])  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
618  | 
done  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
619  | 
|
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
620  | 
lemma subtopology_PiE:  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
621  | 
"subtopology (product_topology X I) (\<Pi>\<^sub>E i\<in>I. (S i)) = product_topology (\<lambda>i. subtopology (X i) (S i)) I"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
622  | 
proof -  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
623  | 
  let ?P = "\<lambda>F. \<exists>i U. F = {f. f i \<in> U} \<and> i \<in> I \<and> openin (X i) U"
 | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
624  | 
let ?X = "\<Pi>\<^sub>E i\<in>I. topspace (X i)"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
625  | 
have "finite intersection_of ?P relative_to ?X \<inter> Pi\<^sub>E I S =  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
626  | 
finite intersection_of (?P relative_to ?X \<inter> Pi\<^sub>E I S) relative_to ?X \<inter> Pi\<^sub>E I S"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
627  | 
by (rule finite_intersection_of_relative_to)  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
628  | 
also have "\<dots> = finite intersection_of  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
629  | 
                      ((\<lambda>F. \<exists>i U. F = {f. f i \<in> U} \<and> i \<in> I \<and> (openin (X i) relative_to S i) U)
 | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
630  | 
relative_to ?X \<inter> Pi\<^sub>E I S)  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
631  | 
relative_to ?X \<inter> Pi\<^sub>E I S"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
632  | 
apply (rule arg_cong2 [where f = "(relative_to)"])  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
633  | 
apply (rule arg_cong [where f = "(intersection_of)finite"])  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
634  | 
apply (rule ext)  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
635  | 
apply (auto simp: relative_to_def intersection_of_def)  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
636  | 
done  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
637  | 
finally  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
638  | 
have "finite intersection_of ?P relative_to ?X \<inter> Pi\<^sub>E I S =  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
639  | 
finite intersection_of  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
640  | 
          (\<lambda>F. \<exists>i U. F = {f. f i \<in> U} \<and> i \<in> I \<and> (openin (X i) relative_to S i) U)
 | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
641  | 
relative_to ?X \<inter> Pi\<^sub>E I S"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
642  | 
by (metis finite_intersection_of_relative_to)  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
643  | 
then show ?thesis  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
644  | 
unfolding topology_eq  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
645  | 
apply clarify  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
646  | 
apply (simp add: openin_product_topology flip: openin_relative_to)  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
647  | 
apply (simp add: arbitrary_union_of_relative_to topspace_product_topology topspace_subtopology flip: PiE_Int)  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
648  | 
done  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
649  | 
qed  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
650  | 
|
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
651  | 
|
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
652  | 
lemma product_topology_base_alt:  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
653  | 
   "finite intersection_of (\<lambda>F. (\<exists>i U. F = {f. f i \<in> U} \<and> i \<in> I \<and> openin (X i) U))
 | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
654  | 
relative_to topspace(product_topology X I) =  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
655  | 
    (\<lambda>F. (\<exists>U. F =  Pi\<^sub>E I U \<and> finite {i \<in> I. U i \<noteq> topspace(X i)} \<and> (\<forall>i \<in> I. openin (X i) (U i))))"
 | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
656  | 
(is "?lhs = ?rhs")  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
657  | 
proof -  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
658  | 
have "(\<forall>F. ?lhs F \<longrightarrow> ?rhs F)"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
659  | 
unfolding all_relative_to all_intersection_of topspace_product_topology  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
660  | 
proof clarify  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
661  | 
fix \<F>  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
662  | 
    assume "finite \<F>" and "\<F> \<subseteq> {{f. f i \<in> U} |i U. i \<in> I \<and> openin (X i) U}"
 | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
663  | 
then show "\<exists>U. (\<Pi>\<^sub>E i\<in>I. topspace (X i)) \<inter> \<Inter>\<F> = Pi\<^sub>E I U \<and>  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
664  | 
          finite {i \<in> I. U i \<noteq> topspace (X i)} \<and> (\<forall>i\<in>I. openin (X i) (U i))"
 | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
665  | 
proof (induction)  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
666  | 
case (insert F \<F>)  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
667  | 
then obtain U where eq: "(\<Pi>\<^sub>E i\<in>I. topspace (X i)) \<inter> \<Inter>\<F> = Pi\<^sub>E I U"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
668  | 
        and fin: "finite {i \<in> I. U i \<noteq> topspace (X i)}"
 | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
669  | 
and ope: "\<And>i. i \<in> I \<Longrightarrow> openin (X i) (U i)"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
670  | 
by auto  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
671  | 
      obtain i V where "F = {f. f i \<in> V}" "i \<in> I" "openin (X i) V"
 | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
672  | 
using insert by auto  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
673  | 
let ?U = "\<lambda>j. U j \<inter> (if j = i then V else topspace(X j))"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
674  | 
show ?case  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
675  | 
proof (intro exI conjI)  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
676  | 
show "(\<Pi>\<^sub>E i\<in>I. topspace (X i)) \<inter> \<Inter>insert F \<F> = Pi\<^sub>E I ?U"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
677  | 
        using eq  PiE_mem \<open>i \<in> I\<close>  by (auto simp: \<open>F = {f. f i \<in> V}\<close>) fastforce
 | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
678  | 
next  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
679  | 
        show "finite {i \<in> I. ?U i \<noteq> topspace (X i)}"
 | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
680  | 
by (rule rev_finite_subset [OF finite.insertI [OF fin]]) auto  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
681  | 
next  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
682  | 
show "\<forall>i\<in>I. openin (X i) (?U i)"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
683  | 
by (simp add: \<open>openin (X i) V\<close> ope openin_Int)  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
684  | 
qed  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
685  | 
qed (auto intro: dest: not_finite_existsD)  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
686  | 
qed  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
687  | 
moreover have "(\<forall>F. ?rhs F \<longrightarrow> ?lhs F)"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
688  | 
proof clarify  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
689  | 
fix U :: "'a \<Rightarrow> 'b set"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
690  | 
    assume fin: "finite {i \<in> I. U i \<noteq> topspace (X i)}" and ope: "\<forall>i\<in>I. openin (X i) (U i)"
 | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
691  | 
    let ?U = "\<Inter>i\<in>{i \<in> I. U i \<noteq> topspace (X i)}. {x. x i \<in> U i}"
 | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
692  | 
show "?lhs (Pi\<^sub>E I U)"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
693  | 
unfolding relative_to_def topspace_product_topology  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
694  | 
proof (intro exI conjI)  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
695  | 
      show "(finite intersection_of (\<lambda>F. \<exists>i U. F = {f. f i \<in> U} \<and> i \<in> I \<and> openin (X i) U)) ?U"
 | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
696  | 
using fin ope by (intro finite_intersection_of_Inter finite_intersection_of_inc) auto  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
697  | 
show "(\<Pi>\<^sub>E i\<in>I. topspace (X i)) \<inter> ?U = Pi\<^sub>E I U"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
698  | 
using ope openin_subset by fastforce  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
699  | 
qed  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
700  | 
qed  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
701  | 
ultimately show ?thesis  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
702  | 
by meson  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
703  | 
qed  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
704  | 
|
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
705  | 
|
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
706  | 
lemma topspace_product_topology_alt:  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
707  | 
   "topspace (product_topology Y I) = {f \<in> extensional I. \<forall>k \<in> I. f k \<in> topspace(Y k)}"
 | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
708  | 
by (force simp: product_topology PiE_def)  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
709  | 
|
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
710  | 
lemma openin_product_topology_alt:  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
711  | 
"openin (product_topology X I) S \<longleftrightarrow>  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
712  | 
    (\<forall>x \<in> S. \<exists>U. finite {i \<in> I. U i \<noteq> topspace(X i)} \<and>
 | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
713  | 
(\<forall>i \<in> I. openin (X i) (U i)) \<and> x \<in> Pi\<^sub>E I U \<and> Pi\<^sub>E I U \<subseteq> S)"  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
714  | 
apply (simp add: openin_product_topology arbitrary_union_of_alt product_topology_base_alt, auto)  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
715  | 
apply (drule bspec; blast)  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
716  | 
done  | 
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
717  | 
|
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
718  | 
|
| 64911 | 719  | 
text \<open>The basic property of the product topology is the continuity of projections:\<close>  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
720  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
721  | 
lemma%unimportant continuous_on_topo_product_coordinates [simp]:  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
722  | 
assumes "i \<in> I"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
723  | 
shows "continuous_on_topo (product_topology T I) (T i) (\<lambda>x. x i)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
724  | 
proof -  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
725  | 
  {
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
726  | 
fix U assume "openin (T i) U"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
727  | 
define X where "X = (\<lambda>j. if j = i then U else topspace (T j))"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
728  | 
then have *: "(\<lambda>x. x i) -` U \<inter> (\<Pi>\<^sub>E i\<in>I. topspace (T i)) = (\<Pi>\<^sub>E j\<in>I. X j)"  | 
| 64911 | 729  | 
unfolding X_def using assms openin_subset[OF \<open>openin (T i) U\<close>]  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
730  | 
by (auto simp add: PiE_iff, auto, metis subsetCE)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
731  | 
    have **: "(\<forall>i. openin (T i) (X i)) \<and> finite {i. X i \<noteq> topspace (T i)}"
 | 
| 64911 | 732  | 
unfolding X_def using \<open>openin (T i) U\<close> by auto  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
733  | 
have "openin (product_topology T I) ((\<lambda>x. x i) -` U \<inter> (\<Pi>\<^sub>E i\<in>I. topspace (T i)))"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
734  | 
unfolding product_topology_def  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
735  | 
apply (rule topology_generated_by_Basis)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
736  | 
apply (subst *)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
737  | 
using ** by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
738  | 
}  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
739  | 
then show ?thesis unfolding continuous_on_topo_def  | 
| 
69030
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
740  | 
by (auto simp add: assms topspace_product_topology PiE_iff)  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
741  | 
qed  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
742  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
743  | 
lemma%important continuous_on_topo_coordinatewise_then_product [intro]:  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
744  | 
assumes "\<And>i. i \<in> I \<Longrightarrow> continuous_on_topo T1 (T i) (\<lambda>x. f x i)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
745  | 
"\<And>i x. i \<notin> I \<Longrightarrow> x \<in> topspace T1 \<Longrightarrow> f x i = undefined"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
746  | 
shows "continuous_on_topo T1 (product_topology T I) f"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
747  | 
unfolding product_topology_def  | 
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
748  | 
proof%unimportant (rule continuous_on_generated_topo)  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
749  | 
  fix U assume "U \<in> {Pi\<^sub>E I X |X. (\<forall>i. openin (T i) (X i)) \<and> finite {i. X i \<noteq> topspace (T i)}}"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
750  | 
  then obtain X where H: "U = Pi\<^sub>E I X" "\<And>i. openin (T i) (X i)" "finite {i. X i \<noteq> topspace (T i)}"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
751  | 
by blast  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
752  | 
  define J where "J = {i \<in> I. X i \<noteq> topspace (T i)}"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
753  | 
have "finite J" "J \<subseteq> I" unfolding J_def using H(3) by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
754  | 
have "(\<lambda>x. f x i)-`(topspace(T i)) \<inter> topspace T1 = topspace T1" if "i \<in> I" for i  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
755  | 
using that assms(1) by (simp add: continuous_on_topo_preimage_topspace)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
756  | 
then have *: "(\<lambda>x. f x i)-`(X i) \<inter> topspace T1 = topspace T1" if "i \<in> I-J" for i  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
757  | 
using that unfolding J_def by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
758  | 
have "f-`U \<inter> topspace T1 = (\<Inter>i\<in>I. (\<lambda>x. f x i)-`(X i) \<inter> topspace T1) \<inter> (topspace T1)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
759  | 
by (subst H(1), auto simp add: PiE_iff assms)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
760  | 
also have "... = (\<Inter>i\<in>J. (\<lambda>x. f x i)-`(X i) \<inter> topspace T1) \<inter> (topspace T1)"  | 
| 64911 | 761  | 
using * \<open>J \<subseteq> I\<close> by auto  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
762  | 
also have "openin T1 (...)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
763  | 
apply (rule openin_INT)  | 
| 64911 | 764  | 
apply (simp add: \<open>finite J\<close>)  | 
765  | 
using H(2) assms(1) \<open>J \<subseteq> I\<close> by auto  | 
|
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
766  | 
ultimately show "openin T1 (f-`U \<inter> topspace T1)" by simp  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
767  | 
next  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
768  | 
  show "f `topspace T1 \<subseteq> \<Union>{Pi\<^sub>E I X |X. (\<forall>i. openin (T i) (X i)) \<and> finite {i. X i \<noteq> topspace (T i)}}"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
769  | 
apply (subst topology_generated_by_topspace[symmetric])  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
770  | 
apply (subst product_topology_def[symmetric])  | 
| 
69030
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
771  | 
apply (simp only: topspace_product_topology)  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
772  | 
apply (auto simp add: PiE_iff)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
773  | 
using assms unfolding continuous_on_topo_def by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
774  | 
qed  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
775  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
776  | 
lemma%unimportant continuous_on_topo_product_then_coordinatewise [intro]:  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
777  | 
assumes "continuous_on_topo T1 (product_topology T I) f"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
778  | 
shows "\<And>i. i \<in> I \<Longrightarrow> continuous_on_topo T1 (T i) (\<lambda>x. f x i)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
779  | 
"\<And>i x. i \<notin> I \<Longrightarrow> x \<in> topspace T1 \<Longrightarrow> f x i = undefined"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
780  | 
proof -  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
781  | 
fix i assume "i \<in> I"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
782  | 
have "(\<lambda>x. f x i) = (\<lambda>y. y i) o f" by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
783  | 
also have "continuous_on_topo T1 (T i) (...)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
784  | 
apply (rule continuous_on_topo_compose[of _ "product_topology T I"])  | 
| 64911 | 785  | 
using assms \<open>i \<in> I\<close> by auto  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
786  | 
ultimately show "continuous_on_topo T1 (T i) (\<lambda>x. f x i)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
787  | 
by simp  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
788  | 
next  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
789  | 
fix i x assume "i \<notin> I" "x \<in> topspace T1"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
790  | 
have "f x \<in> topspace (product_topology T I)"  | 
| 64911 | 791  | 
using assms \<open>x \<in> topspace T1\<close> unfolding continuous_on_topo_def by auto  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
792  | 
then have "f x \<in> (\<Pi>\<^sub>E i\<in>I. topspace (T i))"  | 
| 
69030
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
793  | 
using topspace_product_topology by metis  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
794  | 
then show "f x i = undefined"  | 
| 64911 | 795  | 
using \<open>i \<notin> I\<close> by (auto simp add: PiE_iff extensional_def)  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
796  | 
qed  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
797  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
798  | 
lemma%unimportant continuous_on_restrict:  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
799  | 
assumes "J \<subseteq> I"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
800  | 
shows "continuous_on_topo (product_topology T I) (product_topology T J) (\<lambda>x. restrict x J)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
801  | 
proof (rule continuous_on_topo_coordinatewise_then_product)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
802  | 
fix i assume "i \<in> J"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
803  | 
then have "(\<lambda>x. restrict x J i) = (\<lambda>x. x i)" unfolding restrict_def by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
804  | 
then show "continuous_on_topo (product_topology T I) (T i) (\<lambda>x. restrict x J i)"  | 
| 64911 | 805  | 
using \<open>i \<in> J\<close> \<open>J \<subseteq> I\<close> by auto  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
806  | 
next  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
807  | 
fix i assume "i \<notin> J"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
808  | 
then show "restrict x J i = undefined" for x::"'a \<Rightarrow> 'b"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
809  | 
unfolding restrict_def by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
810  | 
qed  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
811  | 
|
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
812  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
813  | 
subsubsection%important \<open>Powers of a single topological space as a topological space, using type classes\<close>  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
814  | 
|
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
815  | 
instantiation "fun" :: (type, topological_space) topological_space  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
816  | 
begin  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
817  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
818  | 
definition%important open_fun_def:  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
819  | 
"open U = openin (product_topology (\<lambda>i. euclidean) UNIV) U"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
820  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
821  | 
instance proof%unimportant  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
822  | 
  have "topspace (product_topology (\<lambda>(i::'a). euclidean::('b topology)) UNIV) = UNIV"
 | 
| 
69030
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
823  | 
unfolding topspace_product_topology topspace_euclidean by auto  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
824  | 
  then show "open (UNIV::('a \<Rightarrow> 'b) set)"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
825  | 
unfolding open_fun_def by (metis openin_topspace)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
826  | 
qed (auto simp add: open_fun_def)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
827  | 
|
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
828  | 
end  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
829  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
830  | 
lemma%unimportant euclidean_product_topology:  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
831  | 
  "euclidean = product_topology (\<lambda>i. euclidean::('b::topological_space) topology) UNIV"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
832  | 
by (metis open_openin topology_eq open_fun_def)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
833  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
834  | 
lemma%important product_topology_basis':  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
835  | 
  fixes x::"'i \<Rightarrow> 'a" and U::"'i \<Rightarrow> ('b::topological_space) set"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
836  | 
assumes "finite I" "\<And>i. i \<in> I \<Longrightarrow> open (U i)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
837  | 
  shows "open {f. \<forall>i\<in>I. f (x i) \<in> U i}"
 | 
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
838  | 
proof%unimportant -  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
839  | 
define J where "J = x`I"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
840  | 
  define V where "V = (\<lambda>y. if y \<in> J then \<Inter>{U i|i. i\<in>I \<and> x i = y} else UNIV)"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
841  | 
define X where "X = (\<lambda>y. if y \<in> J then V y else UNIV)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
842  | 
have *: "open (X i)" for i  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
843  | 
unfolding X_def V_def using assms by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
844  | 
  have **: "finite {i. X i \<noteq> UNIV}"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
845  | 
unfolding X_def V_def J_def using assms(1) by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
846  | 
have "open (Pi\<^sub>E UNIV X)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
847  | 
unfolding open_fun_def apply (rule product_topology_basis)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
848  | 
using * ** unfolding open_openin topspace_euclidean by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
849  | 
  moreover have "Pi\<^sub>E UNIV X = {f. \<forall>i\<in>I. f (x i) \<in> U i}"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
850  | 
apply (auto simp add: PiE_iff) unfolding X_def V_def J_def  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
851  | 
proof (auto)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
852  | 
fix f :: "'a \<Rightarrow> 'b" and i :: 'i  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
853  | 
assume a1: "i \<in> I"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
854  | 
      assume a2: "\<forall>i. f i \<in> (if i \<in> x`I then if i \<in> x`I then \<Inter>{U ia |ia. ia \<in> I \<and> x ia = i} else UNIV else UNIV)"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
855  | 
have f3: "x i \<in> x`I"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
856  | 
using a1 by blast  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
857  | 
      have "U i \<in> {U ia |ia. ia \<in> I \<and> x ia = x i}"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
858  | 
using a1 by blast  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
859  | 
then show "f (x i) \<in> U i"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
860  | 
using f3 a2 by (meson Inter_iff)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
861  | 
qed  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
862  | 
ultimately show ?thesis by simp  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
863  | 
qed  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
864  | 
|
| 64911 | 865  | 
text \<open>The results proved in the general situation of products of possibly different  | 
866  | 
spaces have their counterparts in this simpler setting.\<close>  | 
|
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
867  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
868  | 
lemma%unimportant continuous_on_product_coordinates [simp]:  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
869  | 
  "continuous_on UNIV (\<lambda>x. x i::('b::topological_space))"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
870  | 
unfolding continuous_on_topo_UNIV euclidean_product_topology  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
871  | 
by (rule continuous_on_topo_product_coordinates, simp)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
872  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
873  | 
lemma%unimportant continuous_on_coordinatewise_then_product [intro, continuous_intros]:  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
874  | 
assumes "\<And>i. continuous_on UNIV (\<lambda>x. f x i)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
875  | 
shows "continuous_on UNIV f"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
876  | 
using assms unfolding continuous_on_topo_UNIV euclidean_product_topology  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
877  | 
by (rule continuous_on_topo_coordinatewise_then_product, simp)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
878  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
879  | 
lemma%unimportant continuous_on_product_then_coordinatewise:  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
880  | 
assumes "continuous_on UNIV f"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
881  | 
shows "continuous_on UNIV (\<lambda>x. f x i)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
882  | 
using assms unfolding continuous_on_topo_UNIV euclidean_product_topology  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
883  | 
by (rule continuous_on_topo_product_then_coordinatewise(1), simp)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
884  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
885  | 
lemma%unimportant continuous_on_product_coordinatewise_iff:  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
886  | 
"continuous_on UNIV f \<longleftrightarrow> (\<forall>i. continuous_on UNIV (\<lambda>x. f x i))"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
887  | 
by (auto intro: continuous_on_product_then_coordinatewise)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
888  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
889  | 
subsubsection%important \<open>Topological countability for product spaces\<close>  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
890  | 
|
| 64911 | 891  | 
text \<open>The next two lemmas are useful to prove first or second countability  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
892  | 
of product spaces, but they have more to do with countability and could  | 
| 64911 | 893  | 
be put in the corresponding theory.\<close>  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
894  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
895  | 
lemma%unimportant countable_nat_product_event_const:  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
896  | 
fixes F::"'a set" and a::'a  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
897  | 
assumes "a \<in> F" "countable F"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
898  | 
  shows "countable {x::(nat \<Rightarrow> 'a). (\<forall>i. x i \<in> F) \<and> finite {i. x i \<noteq> a}}"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
899  | 
proof -  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
900  | 
  have *: "{x::(nat \<Rightarrow> 'a). (\<forall>i. x i \<in> F) \<and> finite {i. x i \<noteq> a}}
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
901  | 
                  \<subseteq> (\<Union>N. {x. (\<forall>i. x i \<in> F) \<and> (\<forall>i\<ge>N. x i = a)})"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
902  | 
using infinite_nat_iff_unbounded_le by fastforce  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
903  | 
  have "countable {x. (\<forall>i. x i \<in> F) \<and> (\<forall>i\<ge>N. x i = a)}" for N::nat
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
904  | 
proof (induction N)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
905  | 
case 0  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
906  | 
    have "{x. (\<forall>i. x i \<in> F) \<and> (\<forall>i\<ge>(0::nat). x i = a)} = {(\<lambda>i. a)}"
 | 
| 64911 | 907  | 
using \<open>a \<in> F\<close> by auto  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
908  | 
then show ?case by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
909  | 
next  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
910  | 
case (Suc N)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
911  | 
define f::"((nat \<Rightarrow> 'a) \<times> 'a) \<Rightarrow> (nat \<Rightarrow> 'a)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
912  | 
where "f = (\<lambda>(x, b). (\<lambda>i. if i = N then b else x i))"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
913  | 
    have "{x. (\<forall>i. x i \<in> F) \<and> (\<forall>i\<ge>Suc N. x i = a)} \<subseteq> f`({x. (\<forall>i. x i \<in> F) \<and> (\<forall>i\<ge>N. x i = a)} \<times> F)"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
914  | 
proof (auto)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
915  | 
fix x assume H: "\<forall>i::nat. x i \<in> F" "\<forall>i\<ge>Suc N. x i = a"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
916  | 
define y where "y = (\<lambda>i. if i = N then a else x i)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
917  | 
have "f (y, x N) = x"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
918  | 
unfolding f_def y_def by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
919  | 
      moreover have "(y, x N) \<in> {x. (\<forall>i. x i \<in> F) \<and> (\<forall>i\<ge>N. x i = a)} \<times> F"
 | 
| 64911 | 920  | 
unfolding y_def using H \<open>a \<in> F\<close> by auto  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
921  | 
      ultimately show "x \<in> f`({x. (\<forall>i. x i \<in> F) \<and> (\<forall>i\<ge>N. x i = a)} \<times> F)"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
922  | 
by (metis (no_types, lifting) image_eqI)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
923  | 
qed  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
924  | 
    moreover have "countable ({x. (\<forall>i. x i \<in> F) \<and> (\<forall>i\<ge>N. x i = a)} \<times> F)"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
925  | 
using Suc.IH assms(2) by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
926  | 
ultimately show ?case  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
927  | 
by (meson countable_image countable_subset)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
928  | 
qed  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
929  | 
then show ?thesis using countable_subset[OF *] by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
930  | 
qed  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
931  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
932  | 
lemma%unimportant countable_product_event_const:  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
933  | 
  fixes F::"('a::countable) \<Rightarrow> 'b set" and b::'b
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
934  | 
assumes "\<And>i. countable (F i)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
935  | 
  shows "countable {f::('a \<Rightarrow> 'b). (\<forall>i. f i \<in> F i) \<and> (finite {i. f i \<noteq> b})}"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
936  | 
proof -  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
937  | 
  define G where "G = (\<Union>i. F i) \<union> {b}"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
938  | 
have "countable G" unfolding G_def using assms by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
939  | 
have "b \<in> G" unfolding G_def by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
940  | 
  define pi where "pi = (\<lambda>(x::(nat \<Rightarrow> 'b)). (\<lambda> i::'a. x ((to_nat::('a \<Rightarrow> nat)) i)))"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
941  | 
  have "{f::('a \<Rightarrow> 'b). (\<forall>i. f i \<in> F i) \<and> (finite {i. f i \<noteq> b})}
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
942  | 
        \<subseteq> pi`{g::(nat \<Rightarrow> 'b). (\<forall>j. g j \<in> G) \<and> (finite {j. g j \<noteq> b})}"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
943  | 
proof (auto)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
944  | 
    fix f assume H: "\<forall>i. f i \<in> F i" "finite {i. f i \<noteq> b}"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
945  | 
    define I where "I = {i. f i \<noteq> b}"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
946  | 
define g where "g = (\<lambda>j. if j \<in> to_nat`I then f (from_nat j) else b)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
947  | 
    have "{j. g j \<noteq> b} \<subseteq> to_nat`I" unfolding g_def by auto
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
948  | 
    then have "finite {j. g j \<noteq> b}"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
949  | 
unfolding I_def using H(2) using finite_surj by blast  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
950  | 
moreover have "g j \<in> G" for j  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
951  | 
unfolding g_def G_def using H by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
952  | 
    ultimately have "g \<in> {g::(nat \<Rightarrow> 'b). (\<forall>j. g j \<in> G) \<and> (finite {j. g j \<noteq> b})}"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
953  | 
by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
954  | 
moreover have "f = pi g"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
955  | 
unfolding pi_def g_def I_def using H by fastforce  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
956  | 
    ultimately show "f \<in> pi`{g. (\<forall>j. g j \<in> G) \<and> finite {j. g j \<noteq> b}}"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
957  | 
by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
958  | 
qed  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
959  | 
then show ?thesis  | 
| 64911 | 960  | 
using countable_nat_product_event_const[OF \<open>b \<in> G\<close> \<open>countable G\<close>]  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
961  | 
by (meson countable_image countable_subset)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
962  | 
qed  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
963  | 
|
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
964  | 
instance "fun" :: (countable, first_countable_topology) first_countable_topology  | 
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
965  | 
proof%unimportant  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
966  | 
fix x::"'a \<Rightarrow> 'b"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
967  | 
  have "\<exists>A::('b \<Rightarrow> nat \<Rightarrow> 'b set). \<forall>x. (\<forall>i. x \<in> A x i \<and> open (A x i)) \<and> (\<forall>S. open S \<and> x \<in> S \<longrightarrow> (\<exists>i. A x i \<subseteq> S))"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
968  | 
apply (rule choice) using first_countable_basis by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
969  | 
  then obtain A::"('b \<Rightarrow> nat \<Rightarrow> 'b set)" where A: "\<And>x i. x \<in> A x i"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
970  | 
"\<And>x i. open (A x i)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
971  | 
"\<And>x S. open S \<Longrightarrow> x \<in> S \<Longrightarrow> (\<exists>i. A x i \<subseteq> S)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
972  | 
by metis  | 
| 64911 | 973  | 
text \<open>$B i$ is a countable basis of neighborhoods of $x_i$.\<close>  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
974  | 
  define B where "B = (\<lambda>i. (A (x i))`UNIV \<union> {UNIV})"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
975  | 
have "countable (B i)" for i unfolding B_def by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
976  | 
|
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
977  | 
  define K where "K = {Pi\<^sub>E UNIV X | X. (\<forall>i. X i \<in> B i) \<and> finite {i. X i \<noteq> UNIV}}"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
978  | 
have "Pi\<^sub>E UNIV (\<lambda>i. UNIV) \<in> K"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
979  | 
unfolding K_def B_def by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
980  | 
  then have "K \<noteq> {}" by auto
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
981  | 
  have "countable {X. (\<forall>i. X i \<in> B i) \<and> finite {i. X i \<noteq> UNIV}}"
 | 
| 64911 | 982  | 
apply (rule countable_product_event_const) using \<open>\<And>i. countable (B i)\<close> by auto  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
983  | 
  moreover have "K = (\<lambda>X. Pi\<^sub>E UNIV X)`{X. (\<forall>i. X i \<in> B i) \<and> finite {i. X i \<noteq> UNIV}}"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
984  | 
unfolding K_def by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
985  | 
ultimately have "countable K" by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
986  | 
have "x \<in> k" if "k \<in> K" for k  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
987  | 
using that unfolding K_def B_def apply auto using A(1) by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
988  | 
have "open k" if "k \<in> K" for k  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
989  | 
using that unfolding open_fun_def K_def B_def apply (auto)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
990  | 
apply (rule product_topology_basis)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
991  | 
unfolding topspace_euclidean by (auto, metis imageE open_UNIV A(2))  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
992  | 
|
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
993  | 
have Inc: "\<exists>k\<in>K. k \<subseteq> U" if "open U \<and> x \<in> U" for U  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
994  | 
proof -  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
995  | 
have "openin (product_topology (\<lambda>i. euclidean) UNIV) U" "x \<in> U"  | 
| 64911 | 996  | 
using \<open>open U \<and> x \<in> U\<close> unfolding open_fun_def by auto  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
997  | 
with product_topology_open_contains_basis[OF this]  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
998  | 
    have "\<exists>X. x \<in> (\<Pi>\<^sub>E i\<in>UNIV. X i) \<and> (\<forall>i. open (X i)) \<and> finite {i. X i \<noteq> UNIV} \<and> (\<Pi>\<^sub>E i\<in>UNIV. X i) \<subseteq> U"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
999  | 
unfolding topspace_euclidean open_openin by simp  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1000  | 
then obtain X where H: "x \<in> (\<Pi>\<^sub>E i\<in>UNIV. X i)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1001  | 
"\<And>i. open (X i)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1002  | 
                           "finite {i. X i \<noteq> UNIV}"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1003  | 
"(\<Pi>\<^sub>E i\<in>UNIV. X i) \<subseteq> U"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1004  | 
by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1005  | 
    define I where "I = {i. X i \<noteq> UNIV}"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1006  | 
define Y where "Y = (\<lambda>i. if i \<in> I then (SOME y. y \<in> B i \<and> y \<subseteq> X i) else UNIV)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1007  | 
have *: "\<exists>y. y \<in> B i \<and> y \<subseteq> X i" for i  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1008  | 
unfolding B_def using A(3)[OF H(2)] H(1) by (metis PiE_E UNIV_I UnCI image_iff)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1009  | 
have **: "Y i \<in> B i \<and> Y i \<subseteq> X i" for i  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1010  | 
apply (cases "i \<in> I")  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1011  | 
unfolding Y_def using * that apply (auto)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1012  | 
apply (metis (no_types, lifting) someI, metis (no_types, lifting) someI_ex subset_iff)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1013  | 
unfolding B_def apply simp  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1014  | 
unfolding I_def apply auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1015  | 
done  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1016  | 
    have "{i. Y i \<noteq> UNIV} \<subseteq> I"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1017  | 
unfolding Y_def by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1018  | 
    then have ***: "finite {i. Y i \<noteq> UNIV}"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1019  | 
unfolding I_def using H(3) rev_finite_subset by blast  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1020  | 
    have "(\<forall>i. Y i \<in> B i) \<and> finite {i. Y i \<noteq> UNIV}"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1021  | 
using ** *** by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1022  | 
then have "Pi\<^sub>E UNIV Y \<in> K"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1023  | 
unfolding K_def by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1024  | 
|
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1025  | 
have "Y i \<subseteq> X i" for i  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1026  | 
apply (cases "i \<in> I") using ** apply simp unfolding Y_def I_def by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1027  | 
then have "Pi\<^sub>E UNIV Y \<subseteq> Pi\<^sub>E UNIV X" by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1028  | 
then have "Pi\<^sub>E UNIV Y \<subseteq> U" using H(4) by auto  | 
| 64911 | 1029  | 
then show ?thesis using \<open>Pi\<^sub>E UNIV Y \<in> K\<close> by auto  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1030  | 
qed  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1031  | 
|
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1032  | 
show "\<exists>L. (\<forall>(i::nat). x \<in> L i \<and> open (L i)) \<and> (\<forall>U. open U \<and> x \<in> U \<longrightarrow> (\<exists>i. L i \<subseteq> U))"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1033  | 
apply (rule first_countableI[of K])  | 
| 64911 | 1034  | 
using \<open>countable K\<close> \<open>\<And>k. k \<in> K \<Longrightarrow> x \<in> k\<close> \<open>\<And>k. k \<in> K \<Longrightarrow> open k\<close> Inc by auto  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1035  | 
qed  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1036  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
1037  | 
lemma%important product_topology_countable_basis:  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1038  | 
  shows "\<exists>K::(('a::countable \<Rightarrow> 'b::second_countable_topology) set set).
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1039  | 
topological_basis K \<and> countable K \<and>  | 
| 64910 | 1040  | 
          (\<forall>k\<in>K. \<exists>X. (k = Pi\<^sub>E UNIV X) \<and> (\<forall>i. open (X i)) \<and> finite {i. X i \<noteq> UNIV})"
 | 
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
1041  | 
proof%unimportant -  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1042  | 
obtain B::"'b set set" where B: "countable B \<and> topological_basis B"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1043  | 
using ex_countable_basis by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1044  | 
  then have "B \<noteq> {}" by (meson UNIV_I empty_iff open_UNIV topological_basisE)
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1045  | 
  define B2 where "B2 = B \<union> {UNIV}"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1046  | 
have "countable B2"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1047  | 
unfolding B2_def using B by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1048  | 
have "open U" if "U \<in> B2" for U  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1049  | 
using that unfolding B2_def using B topological_basis_open by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1050  | 
|
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1051  | 
  define K where "K = {Pi\<^sub>E UNIV X | X. (\<forall>i::'a. X i \<in> B2) \<and> finite {i. X i \<noteq> UNIV}}"
 | 
| 64910 | 1052  | 
  have i: "\<forall>k\<in>K. \<exists>X. (k = Pi\<^sub>E UNIV X) \<and> (\<forall>i. open (X i)) \<and> finite {i. X i \<noteq> UNIV}"
 | 
| 64911 | 1053  | 
unfolding K_def using \<open>\<And>U. U \<in> B2 \<Longrightarrow> open U\<close> by auto  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1054  | 
|
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1055  | 
  have "countable {X. (\<forall>(i::'a). X i \<in> B2) \<and> finite {i. X i \<noteq> UNIV}}"
 | 
| 64911 | 1056  | 
apply (rule countable_product_event_const) using \<open>countable B2\<close> by auto  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1057  | 
  moreover have "K = (\<lambda>X. Pi\<^sub>E UNIV X)`{X. (\<forall>i. X i \<in> B2) \<and> finite {i. X i \<noteq> UNIV}}"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1058  | 
unfolding K_def by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1059  | 
ultimately have ii: "countable K" by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1060  | 
|
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1061  | 
have iii: "topological_basis K"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1062  | 
proof (rule topological_basisI)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1063  | 
fix U and x::"'a\<Rightarrow>'b" assume "open U" "x \<in> U"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1064  | 
then have "openin (product_topology (\<lambda>i. euclidean) UNIV) U"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1065  | 
unfolding open_fun_def by auto  | 
| 64911 | 1066  | 
with product_topology_open_contains_basis[OF this \<open>x \<in> U\<close>]  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1067  | 
    have "\<exists>X. x \<in> (\<Pi>\<^sub>E i\<in>UNIV. X i) \<and> (\<forall>i. open (X i)) \<and> finite {i. X i \<noteq> UNIV} \<and> (\<Pi>\<^sub>E i\<in>UNIV. X i) \<subseteq> U"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1068  | 
unfolding topspace_euclidean open_openin by simp  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1069  | 
then obtain X where H: "x \<in> (\<Pi>\<^sub>E i\<in>UNIV. X i)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1070  | 
"\<And>i. open (X i)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1071  | 
                           "finite {i. X i \<noteq> UNIV}"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1072  | 
"(\<Pi>\<^sub>E i\<in>UNIV. X i) \<subseteq> U"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1073  | 
by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1074  | 
then have "x i \<in> X i" for i by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1075  | 
    define I where "I = {i. X i \<noteq> UNIV}"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1076  | 
define Y where "Y = (\<lambda>i. if i \<in> I then (SOME y. y \<in> B2 \<and> y \<subseteq> X i \<and> x i \<in> y) else UNIV)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1077  | 
have *: "\<exists>y. y \<in> B2 \<and> y \<subseteq> X i \<and> x i \<in> y" for i  | 
| 64911 | 1078  | 
unfolding B2_def using B \<open>open (X i)\<close> \<open>x i \<in> X i\<close> by (meson UnCI topological_basisE)  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1079  | 
have **: "Y i \<in> B2 \<and> Y i \<subseteq> X i \<and> x i \<in> Y i" for i  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1080  | 
using someI_ex[OF *]  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1081  | 
apply (cases "i \<in> I")  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1082  | 
unfolding Y_def using * apply (auto)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1083  | 
unfolding B2_def I_def by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1084  | 
    have "{i. Y i \<noteq> UNIV} \<subseteq> I"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1085  | 
unfolding Y_def by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1086  | 
    then have ***: "finite {i. Y i \<noteq> UNIV}"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1087  | 
unfolding I_def using H(3) rev_finite_subset by blast  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1088  | 
    have "(\<forall>i. Y i \<in> B2) \<and> finite {i. Y i \<noteq> UNIV}"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1089  | 
using ** *** by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1090  | 
then have "Pi\<^sub>E UNIV Y \<in> K"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1091  | 
unfolding K_def by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1092  | 
|
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1093  | 
have "Y i \<subseteq> X i" for i  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1094  | 
apply (cases "i \<in> I") using ** apply simp unfolding Y_def I_def by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1095  | 
then have "Pi\<^sub>E UNIV Y \<subseteq> Pi\<^sub>E UNIV X" by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1096  | 
then have "Pi\<^sub>E UNIV Y \<subseteq> U" using H(4) by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1097  | 
|
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1098  | 
have "x \<in> Pi\<^sub>E UNIV Y"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1099  | 
using ** by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1100  | 
|
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1101  | 
show "\<exists>V\<in>K. x \<in> V \<and> V \<subseteq> U"  | 
| 64911 | 1102  | 
using \<open>Pi\<^sub>E UNIV Y \<in> K\<close> \<open>Pi\<^sub>E UNIV Y \<subseteq> U\<close> \<open>x \<in> Pi\<^sub>E UNIV Y\<close> by auto  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1103  | 
next  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1104  | 
fix U assume "U \<in> K"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1105  | 
show "open U"  | 
| 64911 | 1106  | 
using \<open>U \<in> K\<close> unfolding open_fun_def K_def apply (auto)  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1107  | 
apply (rule product_topology_basis)  | 
| 64911 | 1108  | 
using \<open>\<And>V. V \<in> B2 \<Longrightarrow> open V\<close> open_UNIV unfolding topspace_euclidean open_openin[symmetric]  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1109  | 
by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1110  | 
qed  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1111  | 
|
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1112  | 
show ?thesis using i ii iii by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1113  | 
qed  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1114  | 
|
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1115  | 
instance "fun" :: (countable, second_countable_topology) second_countable_topology  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1116  | 
apply standard  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1117  | 
using product_topology_countable_basis topological_basis_imp_subbasis by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1118  | 
|
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1119  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
1120  | 
subsection%important \<open>The strong operator topology on continuous linear operators\<close> (* FIX ME mv*)  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1121  | 
|
| 64911 | 1122  | 
text \<open>Let 'a and 'b be two normed real vector spaces. Then the space of linear continuous  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1123  | 
operators from 'a to 'b has a canonical norm, and therefore a canonical corresponding topology  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1124  | 
(the type classes instantiation are given in \verb+Bounded_Linear_Function.thy+).  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1125  | 
|
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1126  | 
However, there is another topology on this space, the strong operator topology, where $T_n$ tends to  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1127  | 
$T$ iff, for all $x$ in 'a, then $T_n x$ tends to $T x$. This is precisely the product topology  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1128  | 
where the target space is endowed with the norm topology. It is especially useful when 'b is the set  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1129  | 
of real numbers, since then this topology is compact.  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1130  | 
|
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1131  | 
We can not implement it using type classes as there is already a topology, but at least we  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1132  | 
can define it as a topology.  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1133  | 
|
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1134  | 
Note that there is yet another (common and useful) topology on operator spaces, the weak operator  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1135  | 
topology, defined analogously using the product topology, but where the target space is given the  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1136  | 
weak-* topology, i.e., the pullback of the weak topology on the bidual of the space under the  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1137  | 
canonical embedding of a space into its bidual. We do not define it there, although it could also be  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1138  | 
defined analogously.  | 
| 64911 | 1139  | 
\<close>  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1140  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
1141  | 
definition%important strong_operator_topology::"('a::real_normed_vector \<Rightarrow>\<^sub>L'b::real_normed_vector) topology"
 | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1142  | 
where "strong_operator_topology = pullback_topology UNIV blinfun_apply euclidean"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1143  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
1144  | 
lemma%unimportant strong_operator_topology_topspace:  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1145  | 
"topspace strong_operator_topology = UNIV"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1146  | 
unfolding strong_operator_topology_def topspace_pullback_topology topspace_euclidean by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1147  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
1148  | 
lemma%important strong_operator_topology_basis:  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1149  | 
  fixes f::"('a::real_normed_vector \<Rightarrow>\<^sub>L'b::real_normed_vector)" and U::"'i \<Rightarrow> 'b set" and x::"'i \<Rightarrow> 'a"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1150  | 
assumes "finite I" "\<And>i. i \<in> I \<Longrightarrow> open (U i)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1151  | 
  shows "openin strong_operator_topology {f. \<forall>i\<in>I. blinfun_apply f (x i) \<in> U i}"
 | 
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
1152  | 
proof%unimportant -  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1153  | 
  have "open {g::('a\<Rightarrow>'b). \<forall>i\<in>I. g (x i) \<in> U i}"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1154  | 
by (rule product_topology_basis'[OF assms])  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1155  | 
  moreover have "{f. \<forall>i\<in>I. blinfun_apply f (x i) \<in> U i}
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1156  | 
                = blinfun_apply-`{g::('a\<Rightarrow>'b). \<forall>i\<in>I. g (x i) \<in> U i} \<inter> UNIV"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1157  | 
by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1158  | 
ultimately show ?thesis  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1159  | 
unfolding strong_operator_topology_def open_openin apply (subst openin_pullback_topology) by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1160  | 
qed  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1161  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
1162  | 
lemma%important strong_operator_topology_continuous_evaluation:  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1163  | 
"continuous_on_topo strong_operator_topology euclidean (\<lambda>f. blinfun_apply f x)"  | 
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
1164  | 
proof%unimportant -  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1165  | 
have "continuous_on_topo strong_operator_topology euclidean ((\<lambda>f. f x) o blinfun_apply)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1166  | 
unfolding strong_operator_topology_def apply (rule continuous_on_topo_pullback)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1167  | 
using continuous_on_topo_UNIV continuous_on_product_coordinates by fastforce  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1168  | 
then show ?thesis unfolding comp_def by simp  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1169  | 
qed  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1170  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
1171  | 
lemma%unimportant continuous_on_strong_operator_topo_iff_coordinatewise:  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1172  | 
"continuous_on_topo T strong_operator_topology f  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1173  | 
\<longleftrightarrow> (\<forall>x. continuous_on_topo T euclidean (\<lambda>y. blinfun_apply (f y) x))"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1174  | 
proof (auto)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1175  | 
fix x::"'b"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1176  | 
assume "continuous_on_topo T strong_operator_topology f"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1177  | 
with continuous_on_topo_compose[OF this strong_operator_topology_continuous_evaluation]  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1178  | 
have "continuous_on_topo T euclidean ((\<lambda>z. blinfun_apply z x) o f)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1179  | 
by simp  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1180  | 
then show "continuous_on_topo T euclidean (\<lambda>y. blinfun_apply (f y) x)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1181  | 
unfolding comp_def by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1182  | 
next  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1183  | 
assume *: "\<forall>x. continuous_on_topo T euclidean (\<lambda>y. blinfun_apply (f y) x)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1184  | 
have "continuous_on_topo T euclidean (blinfun_apply o f)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1185  | 
unfolding euclidean_product_topology  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1186  | 
apply (rule continuous_on_topo_coordinatewise_then_product, auto)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1187  | 
using * unfolding comp_def by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1188  | 
show "continuous_on_topo T strong_operator_topology f"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1189  | 
unfolding strong_operator_topology_def  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1190  | 
apply (rule continuous_on_topo_pullback')  | 
| 64911 | 1191  | 
by (auto simp add: \<open>continuous_on_topo T euclidean (blinfun_apply o f)\<close>)  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1192  | 
qed  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1193  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
1194  | 
lemma%important strong_operator_topology_weaker_than_euclidean:  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1195  | 
"continuous_on_topo euclidean strong_operator_topology (\<lambda>f. f)"  | 
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
1196  | 
by%unimportant (subst continuous_on_strong_operator_topo_iff_coordinatewise,  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1197  | 
auto simp add: continuous_on_topo_UNIV[symmetric] linear_continuous_on)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1198  | 
|
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1199  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
1200  | 
subsection%important \<open>Metrics on product spaces\<close>  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1201  | 
|
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1202  | 
|
| 64911 | 1203  | 
text \<open>In general, the product topology is not metrizable, unless the index set is countable.  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1204  | 
When the index set is countable, essentially any (convergent) combination of the metrics on the  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1205  | 
factors will do. We use below the simplest one, based on $L^1$, but $L^2$ would also work,  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1206  | 
for instance.  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1207  | 
|
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1208  | 
What is not completely trivial is that the distance thus defined induces the same topology  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1209  | 
as the product topology. This is what we have to prove to show that we have an instance  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1210  | 
of \verb+metric_space+.  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1211  | 
|
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1212  | 
The proofs below would work verbatim for general countable products of metric spaces. However,  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1213  | 
since distances are only implemented in terms of type classes, we only develop the theory  | 
| 64911 | 1214  | 
for countable products of the same space.\<close>  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1215  | 
|
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1216  | 
instantiation "fun" :: (countable, metric_space) metric_space  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1217  | 
begin  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1218  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
1219  | 
definition%important dist_fun_def:  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1220  | 
"dist x y = (\<Sum>n. (1/2)^n * min (dist (x (from_nat n)) (y (from_nat n))) 1)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1221  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
1222  | 
definition%important uniformity_fun_def:  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1223  | 
  "(uniformity::(('a \<Rightarrow> 'b) \<times> ('a \<Rightarrow> 'b)) filter) = (INF e:{0<..}. principal {(x, y). dist (x::('a\<Rightarrow>'b)) y < e})"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1224  | 
|
| 64911 | 1225  | 
text \<open>Except for the first one, the auxiliary lemmas below are only useful when proving the  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1226  | 
instance: once it is proved, they become trivial consequences of the general theory of metric  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1227  | 
spaces. It would thus be desirable to hide them once the instance is proved, but I do not know how  | 
| 64911 | 1228  | 
to do this.\<close>  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1229  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
1230  | 
lemma%important dist_fun_le_dist_first_terms:  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1231  | 
  "dist x y \<le> 2 * Max {dist (x (from_nat n)) (y (from_nat n))|n. n \<le> N} + (1/2)^N"
 | 
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
1232  | 
proof%unimportant -  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1233  | 
have "(\<Sum>n. (1 / 2) ^ (n+Suc N) * min (dist (x (from_nat (n+Suc N))) (y (from_nat (n+Suc N)))) 1)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1234  | 
= (\<Sum>n. (1 / 2) ^ (Suc N) * ((1/2) ^ n * min (dist (x (from_nat (n+Suc N))) (y (from_nat (n+Suc N)))) 1))"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1235  | 
by (rule suminf_cong, simp add: power_add)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1236  | 
also have "... = (1/2)^(Suc N) * (\<Sum>n. (1 / 2) ^ n * min (dist (x (from_nat (n+Suc N))) (y (from_nat (n+Suc N)))) 1)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1237  | 
apply (rule suminf_mult)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1238  | 
by (rule summable_comparison_test'[of "\<lambda>n. (1/2)^n"], auto simp add: summable_geometric_iff)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1239  | 
also have "... \<le> (1/2)^(Suc N) * (\<Sum>n. (1 / 2) ^ n)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1240  | 
apply (simp, rule suminf_le, simp)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1241  | 
by (rule summable_comparison_test'[of "\<lambda>n. (1/2)^n"], auto simp add: summable_geometric_iff)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1242  | 
also have "... = (1/2)^(Suc N) * 2"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1243  | 
using suminf_geometric[of "1/2"] by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1244  | 
also have "... = (1/2)^N"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1245  | 
by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1246  | 
finally have *: "(\<Sum>n. (1 / 2) ^ (n+Suc N) * min (dist (x (from_nat (n+Suc N))) (y (from_nat (n+Suc N)))) 1) \<le> (1/2)^N"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1247  | 
by simp  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1248  | 
|
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1249  | 
  define M where "M = Max {dist (x (from_nat n)) (y (from_nat n))|n. n \<le> N}"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1250  | 
have "dist (x (from_nat 0)) (y (from_nat 0)) \<le> M"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1251  | 
unfolding M_def by (rule Max_ge, auto)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1252  | 
then have [simp]: "M \<ge> 0" by (meson dual_order.trans zero_le_dist)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1253  | 
have "dist (x (from_nat n)) (y (from_nat n)) \<le> M" if "n\<le>N" for n  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1254  | 
unfolding M_def apply (rule Max_ge) using that by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1255  | 
then have i: "min (dist (x (from_nat n)) (y (from_nat n))) 1 \<le> M" if "n\<le>N" for n  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1256  | 
using that by force  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1257  | 
have "(\<Sum>n< Suc N. (1 / 2) ^ n * min (dist (x (from_nat n)) (y (from_nat n))) 1) \<le>  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1258  | 
(\<Sum>n< Suc N. M * (1 / 2) ^ n)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1259  | 
by (rule sum_mono, simp add: i)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1260  | 
also have "... = M * (\<Sum>n<Suc N. (1 / 2) ^ n)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1261  | 
by (rule sum_distrib_left[symmetric])  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1262  | 
also have "... \<le> M * (\<Sum>n. (1 / 2) ^ n)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1263  | 
by (rule mult_left_mono, rule sum_le_suminf, auto simp add: summable_geometric_iff)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1264  | 
also have "... = M * 2"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1265  | 
using suminf_geometric[of "1/2"] by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1266  | 
finally have **: "(\<Sum>n< Suc N. (1 / 2) ^ n * min (dist (x (from_nat n)) (y (from_nat n))) 1) \<le> 2 * M"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1267  | 
by simp  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1268  | 
|
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1269  | 
have "dist x y = (\<Sum>n. (1 / 2) ^ n * min (dist (x (from_nat n)) (y (from_nat n))) 1)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1270  | 
unfolding dist_fun_def by simp  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1271  | 
also have "... = (\<Sum>n. (1 / 2) ^ (n+Suc N) * min (dist (x (from_nat (n+Suc N))) (y (from_nat (n+Suc N)))) 1)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1272  | 
+ (\<Sum>n<Suc N. (1 / 2) ^ n * min (dist (x (from_nat n)) (y (from_nat n))) 1)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1273  | 
apply (rule suminf_split_initial_segment)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1274  | 
by (rule summable_comparison_test'[of "\<lambda>n. (1/2)^n"], auto simp add: summable_geometric_iff)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1275  | 
also have "... \<le> 2 * M + (1/2)^N"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1276  | 
using * ** by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1277  | 
finally show ?thesis unfolding M_def by simp  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1278  | 
qed  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1279  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
1280  | 
lemma%unimportant open_fun_contains_ball_aux:  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1281  | 
  assumes "open (U::(('a \<Rightarrow> 'b) set))"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1282  | 
"x \<in> U"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1283  | 
  shows "\<exists>e>0. {y. dist x y < e} \<subseteq> U"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1284  | 
proof -  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1285  | 
have *: "openin (product_topology (\<lambda>i. euclidean) UNIV) U"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1286  | 
using open_fun_def assms by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1287  | 
obtain X where H: "Pi\<^sub>E UNIV X \<subseteq> U"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1288  | 
"\<And>i. openin euclidean (X i)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1289  | 
                    "finite {i. X i \<noteq> topspace euclidean}"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1290  | 
"x \<in> Pi\<^sub>E UNIV X"  | 
| 64911 | 1291  | 
using product_topology_open_contains_basis[OF * \<open>x \<in> U\<close>] by auto  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1292  | 
  define I where "I = {i. X i \<noteq> topspace euclidean}"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1293  | 
have "finite I" unfolding I_def using H(3) by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1294  | 
  {
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1295  | 
fix i  | 
| 64911 | 1296  | 
have "x i \<in> X i" using \<open>x \<in> U\<close> H by auto  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1297  | 
then have "\<exists>e. e>0 \<and> ball (x i) e \<subseteq> X i"  | 
| 64911 | 1298  | 
using \<open>openin euclidean (X i)\<close> open_openin open_contains_ball by blast  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1299  | 
then obtain e where "e>0" "ball (x i) e \<subseteq> X i" by blast  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1300  | 
define f where "f = min e (1/2)"  | 
| 64911 | 1301  | 
have "f>0" "f<1" unfolding f_def using \<open>e>0\<close> by auto  | 
1302  | 
moreover have "ball (x i) f \<subseteq> X i" unfolding f_def using \<open>ball (x i) e \<subseteq> X i\<close> by auto  | 
|
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1303  | 
ultimately have "\<exists>f. f > 0 \<and> f < 1 \<and> ball (x i) f \<subseteq> X i" by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1304  | 
} note * = this  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1305  | 
have "\<exists>e. \<forall>i. e i > 0 \<and> e i < 1 \<and> ball (x i) (e i) \<subseteq> X i"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1306  | 
by (rule choice, auto simp add: *)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1307  | 
then obtain e where "\<And>i. e i > 0" "\<And>i. e i < 1" "\<And>i. ball (x i) (e i) \<subseteq> X i"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1308  | 
by blast  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1309  | 
  define m where "m = Min {(1/2)^(to_nat i) * e i|i. i \<in> I}"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1310  | 
  have "m > 0" if "I\<noteq>{}"
 | 
| 
65036
 
ab7e11730ad8
Some new lemmas. Existing lemmas modified to use uniform_limit rather than its expansion
 
paulson <lp15@cam.ac.uk> 
parents: 
64911 
diff
changeset
 | 
1311  | 
    unfolding m_def Min_gr_iff using \<open>finite I\<close> \<open>I \<noteq> {}\<close> \<open>\<And>i. e i > 0\<close> by auto
 | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1312  | 
  moreover have "{y. dist x y < m} \<subseteq> U"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1313  | 
proof (auto)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1314  | 
fix y assume "dist x y < m"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1315  | 
have "y i \<in> X i" if "i \<in> I" for i  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1316  | 
proof -  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1317  | 
have *: "summable (\<lambda>n. (1/2)^n * min (dist (x (from_nat n)) (y (from_nat n))) 1)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1318  | 
by (rule summable_comparison_test'[of "\<lambda>n. (1/2)^n"], auto simp add: summable_geometric_iff)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1319  | 
define n where "n = to_nat i"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1320  | 
have "(1/2)^n * min (dist (x (from_nat n)) (y (from_nat n))) 1 < m"  | 
| 64911 | 1321  | 
        using \<open>dist x y < m\<close> unfolding dist_fun_def using sum_le_suminf[OF *, of "{n}"] by auto
 | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1322  | 
then have "(1/2)^(to_nat i) * min (dist (x i) (y i)) 1 < m"  | 
| 64911 | 1323  | 
using \<open>n = to_nat i\<close> by auto  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1324  | 
also have "... \<le> (1/2)^(to_nat i) * e i"  | 
| 64911 | 1325  | 
unfolding m_def apply (rule Min_le) using \<open>finite I\<close> \<open>i \<in> I\<close> by auto  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1326  | 
ultimately have "min (dist (x i) (y i)) 1 < e i"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1327  | 
by (auto simp add: divide_simps)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1328  | 
then have "dist (x i) (y i) < e i"  | 
| 64911 | 1329  | 
using \<open>e i < 1\<close> by auto  | 
1330  | 
then show "y i \<in> X i" using \<open>ball (x i) (e i) \<subseteq> X i\<close> by auto  | 
|
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1331  | 
qed  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1332  | 
then have "y \<in> Pi\<^sub>E UNIV X" using H(1) unfolding I_def topspace_euclidean by (auto simp add: PiE_iff)  | 
| 64911 | 1333  | 
then show "y \<in> U" using \<open>Pi\<^sub>E UNIV X \<subseteq> U\<close> by auto  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1334  | 
qed  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1335  | 
  ultimately have *: "\<exists>m>0. {y. dist x y < m} \<subseteq> U" if "I \<noteq> {}" using that by auto
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1336  | 
|
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1337  | 
  have "U = UNIV" if "I = {}"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1338  | 
using that H(1) unfolding I_def topspace_euclidean by (auto simp add: PiE_iff)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1339  | 
  then have "\<exists>m>0. {y. dist x y < m} \<subseteq> U" if "I = {}" using that zero_less_one by blast
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1340  | 
  then show "\<exists>m>0. {y. dist x y < m} \<subseteq> U" using * by blast
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1341  | 
qed  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1342  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
1343  | 
lemma%unimportant ball_fun_contains_open_aux:  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1344  | 
  fixes x::"('a \<Rightarrow> 'b)" and e::real
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1345  | 
assumes "e>0"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1346  | 
  shows "\<exists>U. open U \<and> x \<in> U \<and> U \<subseteq> {y. dist x y < e}"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1347  | 
proof -  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1348  | 
have "\<exists>N::nat. 2^N > 8/e"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1349  | 
by (simp add: real_arch_pow)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1350  | 
then obtain N::nat where "2^N > 8/e" by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1351  | 
define f where "f = e/4"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1352  | 
have [simp]: "e>0" "f > 0" unfolding f_def using assms by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1353  | 
  define X::"('a \<Rightarrow> 'b set)" where "X = (\<lambda>i. if (\<exists>n\<le>N. i = from_nat n) then {z. dist (x i) z < f} else UNIV)"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1354  | 
  have "{i. X i \<noteq> UNIV} \<subseteq> from_nat`{0..N}"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1355  | 
unfolding X_def by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1356  | 
  then have "finite {i. X i \<noteq> topspace euclidean}"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1357  | 
unfolding topspace_euclidean using finite_surj by blast  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1358  | 
have "\<And>i. open (X i)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1359  | 
unfolding X_def using metric_space_class.open_ball open_UNIV by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1360  | 
then have "\<And>i. openin euclidean (X i)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1361  | 
using open_openin by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1362  | 
define U where "U = Pi\<^sub>E UNIV X"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1363  | 
have "open U"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1364  | 
unfolding open_fun_def product_topology_def apply (rule topology_generated_by_Basis)  | 
| 64911 | 1365  | 
    unfolding U_def using \<open>\<And>i. openin euclidean (X i)\<close> \<open>finite {i. X i \<noteq> topspace euclidean}\<close>
 | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1366  | 
by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1367  | 
moreover have "x \<in> U"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1368  | 
unfolding U_def X_def by (auto simp add: PiE_iff)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1369  | 
moreover have "dist x y < e" if "y \<in> U" for y  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1370  | 
proof -  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1371  | 
have *: "dist (x (from_nat n)) (y (from_nat n)) \<le> f" if "n \<le> N" for n  | 
| 64911 | 1372  | 
using \<open>y \<in> U\<close> unfolding U_def apply (auto simp add: PiE_iff)  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1373  | 
unfolding X_def using that by (metis less_imp_le mem_Collect_eq)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1374  | 
    have **: "Max {dist (x (from_nat n)) (y (from_nat n))|n. n \<le> N} \<le> f"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1375  | 
apply (rule Max.boundedI) using * by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1376  | 
|
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1377  | 
    have "dist x y \<le> 2 * Max {dist (x (from_nat n)) (y (from_nat n))|n. n \<le> N} + (1/2)^N"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1378  | 
by (rule dist_fun_le_dist_first_terms)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1379  | 
also have "... \<le> 2 * f + e / 8"  | 
| 64911 | 1380  | 
apply (rule add_mono) using ** \<open>2^N > 8/e\<close> by(auto simp add: algebra_simps divide_simps)  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1381  | 
also have "... \<le> e/2 + e/8"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1382  | 
unfolding f_def by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1383  | 
also have "... < e"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1384  | 
by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1385  | 
finally show "dist x y < e" by simp  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1386  | 
qed  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1387  | 
ultimately show ?thesis by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1388  | 
qed  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1389  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
1390  | 
lemma%unimportant fun_open_ball_aux:  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1391  | 
  fixes U::"('a \<Rightarrow> 'b) set"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1392  | 
shows "open U \<longleftrightarrow> (\<forall>x\<in>U. \<exists>e>0. \<forall>y. dist x y < e \<longrightarrow> y \<in> U)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1393  | 
proof (auto)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1394  | 
assume "open U"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1395  | 
fix x assume "x \<in> U"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1396  | 
then show "\<exists>e>0. \<forall>y. dist x y < e \<longrightarrow> y \<in> U"  | 
| 64911 | 1397  | 
using open_fun_contains_ball_aux[OF \<open>open U\<close> \<open>x \<in> U\<close>] by auto  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1398  | 
next  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1399  | 
assume H: "\<forall>x\<in>U. \<exists>e>0. \<forall>y. dist x y < e \<longrightarrow> y \<in> U"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1400  | 
  define K where "K = {V. open V \<and> V \<subseteq> U}"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1401  | 
  {
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1402  | 
fix x assume "x \<in> U"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1403  | 
    then obtain e where e: "e>0" "{y. dist x y < e} \<subseteq> U" using H by blast
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1404  | 
    then obtain V where V: "open V" "x \<in> V" "V \<subseteq> {y. dist x y < e}"
 | 
| 64911 | 1405  | 
using ball_fun_contains_open_aux[OF \<open>e>0\<close>, of x] by auto  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1406  | 
have "V \<in> K"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1407  | 
unfolding K_def using e(2) V(1) V(3) by auto  | 
| 64911 | 1408  | 
then have "x \<in> (\<Union>K)" using \<open>x \<in> V\<close> by auto  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1409  | 
}  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1410  | 
then have "(\<Union>K) = U"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1411  | 
unfolding K_def by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1412  | 
moreover have "open (\<Union>K)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1413  | 
unfolding K_def by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1414  | 
ultimately show "open U" by simp  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1415  | 
qed  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1416  | 
|
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1417  | 
instance proof  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1418  | 
fix x y::"'a \<Rightarrow> 'b" show "(dist x y = 0) = (x = y)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1419  | 
proof  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1420  | 
assume "x = y"  | 
| 64911 | 1421  | 
then show "dist x y = 0" unfolding dist_fun_def using \<open>x = y\<close> by auto  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1422  | 
next  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1423  | 
assume "dist x y = 0"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1424  | 
have *: "summable (\<lambda>n. (1/2)^n * min (dist (x (from_nat n)) (y (from_nat n))) 1)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1425  | 
by (rule summable_comparison_test'[of "\<lambda>n. (1/2)^n"], auto simp add: summable_geometric_iff)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1426  | 
have "(1/2)^n * min (dist (x (from_nat n)) (y (from_nat n))) 1 = 0" for n  | 
| 64911 | 1427  | 
using \<open>dist x y = 0\<close> unfolding dist_fun_def by (simp add: "*" suminf_eq_zero_iff)  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1428  | 
then have "dist (x (from_nat n)) (y (from_nat n)) = 0" for n  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1429  | 
by (metis div_0 min_def nonzero_mult_div_cancel_left power_eq_0_iff  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1430  | 
zero_eq_1_divide_iff zero_neq_numeral)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1431  | 
then have "x (from_nat n) = y (from_nat n)" for n  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1432  | 
by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1433  | 
then have "x i = y i" for i  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1434  | 
by (metis from_nat_to_nat)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1435  | 
then show "x = y"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1436  | 
by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1437  | 
qed  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1438  | 
next  | 
| 64911 | 1439  | 
text\<open>The proof of the triangular inequality is trivial, modulo the fact that we are dealing  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1440  | 
with infinite series, hence we should justify the convergence at each step. In this  | 
| 64911 | 1441  | 
respect, the following simplification rule is extremely handy.\<close>  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1442  | 
have [simp]: "summable (\<lambda>n. (1/2)^n * min (dist (u (from_nat n)) (v (from_nat n))) 1)" for u v::"'a \<Rightarrow> 'b"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1443  | 
by (rule summable_comparison_test'[of "\<lambda>n. (1/2)^n"], auto simp add: summable_geometric_iff)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1444  | 
fix x y z::"'a \<Rightarrow> 'b"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1445  | 
  {
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1446  | 
fix n  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1447  | 
have *: "dist (x (from_nat n)) (y (from_nat n)) \<le>  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1448  | 
dist (x (from_nat n)) (z (from_nat n)) + dist (y (from_nat n)) (z (from_nat n))"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1449  | 
by (simp add: dist_triangle2)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1450  | 
have "0 \<le> dist (y (from_nat n)) (z (from_nat n))"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1451  | 
using zero_le_dist by blast  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1452  | 
moreover  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1453  | 
    {
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1454  | 
assume "min (dist (y (from_nat n)) (z (from_nat n))) 1 \<noteq> dist (y (from_nat n)) (z (from_nat n))"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1455  | 
then have "1 \<le> min (dist (x (from_nat n)) (z (from_nat n))) 1 + min (dist (y (from_nat n)) (z (from_nat n))) 1"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1456  | 
by (metis (no_types) diff_le_eq diff_self min_def zero_le_dist zero_le_one)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1457  | 
}  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1458  | 
ultimately have "min (dist (x (from_nat n)) (y (from_nat n))) 1 \<le>  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1459  | 
min (dist (x (from_nat n)) (z (from_nat n))) 1 + min (dist (y (from_nat n)) (z (from_nat n))) 1"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1460  | 
using * by linarith  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1461  | 
} note ineq = this  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1462  | 
have "dist x y = (\<Sum>n. (1/2)^n * min (dist (x (from_nat n)) (y (from_nat n))) 1)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1463  | 
unfolding dist_fun_def by simp  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1464  | 
also have "... \<le> (\<Sum>n. (1/2)^n * min (dist (x (from_nat n)) (z (from_nat n))) 1  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1465  | 
+ (1/2)^n * min (dist (y (from_nat n)) (z (from_nat n))) 1)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1466  | 
apply (rule suminf_le)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1467  | 
using ineq apply (metis (no_types, hide_lams) add.right_neutral distrib_left  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1468  | 
le_divide_eq_numeral1(1) mult_2_right mult_left_mono zero_le_one zero_le_power)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1469  | 
by (auto simp add: summable_add)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1470  | 
also have "... = (\<Sum>n. (1/2)^n * min (dist (x (from_nat n)) (z (from_nat n))) 1)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1471  | 
+ (\<Sum>n. (1/2)^n * min (dist (y (from_nat n)) (z (from_nat n))) 1)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1472  | 
by (rule suminf_add[symmetric], auto)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1473  | 
also have "... = dist x z + dist y z"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1474  | 
unfolding dist_fun_def by simp  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1475  | 
finally show "dist x y \<le> dist x z + dist y z"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1476  | 
by simp  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1477  | 
next  | 
| 64911 | 1478  | 
text\<open>Finally, we show that the topology generated by the distance and the product  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1479  | 
topology coincide. This is essentially contained in Lemma \verb+fun_open_ball_aux+,  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1480  | 
except that the condition to prove is expressed with filters. To deal with this,  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1481  | 
we copy some mumbo jumbo from Lemma \verb+eventually_uniformity_metric+ in  | 
| 64911 | 1482  | 
\verb+Real_Vector_Spaces.thy+\<close>  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1483  | 
  fix U::"('a \<Rightarrow> 'b) set"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1484  | 
  have "eventually P uniformity \<longleftrightarrow> (\<exists>e>0. \<forall>x (y::('a \<Rightarrow> 'b)). dist x y < e \<longrightarrow> P (x, y))" for P
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1485  | 
unfolding uniformity_fun_def apply (subst eventually_INF_base)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1486  | 
by (auto simp: eventually_principal subset_eq intro: bexI[of _ "min _ _"])  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1487  | 
then show "open U = (\<forall>x\<in>U. \<forall>\<^sub>F (x', y) in uniformity. x' = x \<longrightarrow> y \<in> U)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1488  | 
unfolding fun_open_ball_aux by simp  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1489  | 
qed (simp add: uniformity_fun_def)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1490  | 
|
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1491  | 
end  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1492  | 
|
| 64911 | 1493  | 
text \<open>Nice properties of spaces are preserved under countable products. In addition  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1494  | 
to first countability, second countability and metrizability, as we have seen above,  | 
| 64911 | 1495  | 
completeness is also preserved, and therefore being Polish.\<close>  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1496  | 
|
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1497  | 
instance "fun" :: (countable, complete_space) complete_space  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1498  | 
proof  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1499  | 
  fix u::"nat \<Rightarrow> ('a \<Rightarrow> 'b)" assume "Cauchy u"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1500  | 
have "Cauchy (\<lambda>n. u n i)" for i  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1501  | 
unfolding cauchy_def proof (intro impI allI)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1502  | 
fix e assume "e>(0::real)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1503  | 
obtain k where "i = from_nat k"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1504  | 
using from_nat_to_nat[of i] by metis  | 
| 64911 | 1505  | 
have "(1/2)^k * min e 1 > 0" using \<open>e>0\<close> by auto  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1506  | 
then have "\<exists>N. \<forall>m n. N \<le> m \<and> N \<le> n \<longrightarrow> dist (u m) (u n) < (1/2)^k * min e 1"  | 
| 64911 | 1507  | 
using \<open>Cauchy u\<close> unfolding cauchy_def by blast  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1508  | 
then obtain N::nat where C: "\<forall>m n. N \<le> m \<and> N \<le> n \<longrightarrow> dist (u m) (u n) < (1/2)^k * min e 1"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1509  | 
by blast  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1510  | 
have "\<forall>m n. N \<le> m \<and> N \<le> n \<longrightarrow> dist (u m i) (u n i) < e"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1511  | 
proof (auto)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1512  | 
fix m n::nat assume "m \<ge> N" "n \<ge> N"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1513  | 
have "(1/2)^k * min (dist (u m i) (u n i)) 1  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1514  | 
              = sum (\<lambda>p. (1/2)^p * min (dist (u m (from_nat p)) (u n (from_nat p))) 1) {k}"
 | 
| 64911 | 1515  | 
using \<open>i = from_nat k\<close> by auto  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1516  | 
also have "... \<le> (\<Sum>p. (1/2)^p * min (dist (u m (from_nat p)) (u n (from_nat p))) 1)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1517  | 
apply (rule sum_le_suminf)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1518  | 
by (rule summable_comparison_test'[of "\<lambda>n. (1/2)^n"], auto simp add: summable_geometric_iff)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1519  | 
also have "... = dist (u m) (u n)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1520  | 
unfolding dist_fun_def by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1521  | 
also have "... < (1/2)^k * min e 1"  | 
| 64911 | 1522  | 
using C \<open>m \<ge> N\<close> \<open>n \<ge> N\<close> by auto  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1523  | 
finally have "min (dist (u m i) (u n i)) 1 < min e 1"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1524  | 
by (auto simp add: algebra_simps divide_simps)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1525  | 
then show "dist (u m i) (u n i) < e" by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1526  | 
qed  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1527  | 
then show "\<exists>N. \<forall>m n. N \<le> m \<and> N \<le> n \<longrightarrow> dist (u m i) (u n i) < e"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1528  | 
by blast  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1529  | 
qed  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1530  | 
then have "\<exists>x. (\<lambda>n. u n i) \<longlonglongrightarrow> x" for i  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1531  | 
using Cauchy_convergent convergent_def by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1532  | 
then have "\<exists>x. \<forall>i. (\<lambda>n. u n i) \<longlonglongrightarrow> x i"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1533  | 
using choice by force  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1534  | 
then obtain x where *: "\<And>i. (\<lambda>n. u n i) \<longlonglongrightarrow> x i" by blast  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1535  | 
have "u \<longlonglongrightarrow> x"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1536  | 
proof (rule metric_LIMSEQ_I)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1537  | 
fix e assume [simp]: "e>(0::real)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1538  | 
have i: "\<exists>K. \<forall>n\<ge>K. dist (u n i) (x i) < e/4" for i  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1539  | 
by (rule metric_LIMSEQ_D, auto simp add: *)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1540  | 
have "\<exists>K. \<forall>i. \<forall>n\<ge>K i. dist (u n i) (x i) < e/4"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1541  | 
apply (rule choice) using i by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1542  | 
then obtain K where K: "\<And>i n. n \<ge> K i \<Longrightarrow> dist (u n i) (x i) < e/4"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1543  | 
by blast  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1544  | 
|
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1545  | 
have "\<exists>N::nat. 2^N > 4/e"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1546  | 
by (simp add: real_arch_pow)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1547  | 
then obtain N::nat where "2^N > 4/e" by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1548  | 
    define L where "L = Max {K (from_nat n)|n. n \<le> N}"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1549  | 
have "dist (u k) x < e" if "k \<ge> L" for k  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1550  | 
proof -  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1551  | 
have *: "dist (u k (from_nat n)) (x (from_nat n)) \<le> e / 4" if "n \<le> N" for n  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1552  | 
proof -  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1553  | 
have "K (from_nat n) \<le> L"  | 
| 64911 | 1554  | 
unfolding L_def apply (rule Max_ge) using \<open>n \<le> N\<close> by auto  | 
1555  | 
then have "k \<ge> K (from_nat n)" using \<open>k \<ge> L\<close> by auto  | 
|
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1556  | 
then show ?thesis using K less_imp_le by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1557  | 
qed  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1558  | 
      have **: "Max {dist (u k (from_nat n)) (x (from_nat n)) |n. n \<le> N} \<le> e/4"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1559  | 
apply (rule Max.boundedI) using * by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1560  | 
      have "dist (u k) x \<le> 2 * Max {dist (u k (from_nat n)) (x (from_nat n)) |n. n \<le> N} + (1/2)^N"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1561  | 
using dist_fun_le_dist_first_terms by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1562  | 
also have "... \<le> 2 * e/4 + e/4"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1563  | 
apply (rule add_mono)  | 
| 64911 | 1564  | 
using ** \<open>2^N > 4/e\<close> less_imp_le by (auto simp add: algebra_simps divide_simps)  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1565  | 
also have "... < e" by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1566  | 
finally show ?thesis by simp  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1567  | 
qed  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1568  | 
then show "\<exists>L. \<forall>k\<ge>L. dist (u k) x < e" by blast  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1569  | 
qed  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1570  | 
then show "convergent u" using convergent_def by blast  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1571  | 
qed  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1572  | 
|
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1573  | 
instance "fun" :: (countable, polish_space) polish_space  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1574  | 
by standard  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1575  | 
|
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1576  | 
|
| 
69030
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
1577  | 
|
| 
 
1eb517214deb
more on product (function) topologies
 
paulson <lp15@cam.ac.uk> 
parents: 
68833 
diff
changeset
 | 
1578  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
1579  | 
subsection%important \<open>Measurability\<close> (*FIX ME mv *)  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1580  | 
|
| 64911 | 1581  | 
text \<open>There are two natural sigma-algebras on a product space: the borel sigma algebra,  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1582  | 
generated by open sets in the product, and the product sigma algebra, countably generated by  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1583  | 
products of measurable sets along finitely many coordinates. The second one is defined and studied  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1584  | 
in \verb+Finite_Product_Measure.thy+.  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1585  | 
|
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1586  | 
These sigma-algebra share a lot of natural properties (measurability of coordinates, for instance),  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1587  | 
but there is a fundamental difference: open sets are generated by arbitrary unions, not only  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1588  | 
countable ones, so typically many open sets will not be measurable with respect to the product sigma  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1589  | 
algebra (while all sets in the product sigma algebra are borel). The two sigma algebras coincide  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1590  | 
only when everything is countable (i.e., the product is countable, and the borel sigma algebra in  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1591  | 
the factor is countably generated).  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1592  | 
|
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1593  | 
In this paragraph, we develop basic measurability properties for the borel sigma algebra, and  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1594  | 
compare it with the product sigma algebra as explained above.  | 
| 64911 | 1595  | 
\<close>  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1596  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
1597  | 
lemma%unimportant measurable_product_coordinates [measurable (raw)]:  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1598  | 
"(\<lambda>x. x i) \<in> measurable borel borel"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1599  | 
by (rule borel_measurable_continuous_on1[OF continuous_on_product_coordinates])  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1600  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
1601  | 
lemma%unimportant measurable_product_then_coordinatewise:  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1602  | 
  fixes f::"'a \<Rightarrow> 'b \<Rightarrow> ('c::topological_space)"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1603  | 
assumes [measurable]: "f \<in> borel_measurable M"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1604  | 
shows "(\<lambda>x. f x i) \<in> borel_measurable M"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1605  | 
proof -  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1606  | 
have "(\<lambda>x. f x i) = (\<lambda>y. y i) o f"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1607  | 
unfolding comp_def by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1608  | 
then show ?thesis by simp  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1609  | 
qed  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1610  | 
|
| 64911 | 1611  | 
text \<open>To compare the Borel sigma algebra with the product sigma algebra, we give a presentation  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1612  | 
of the product sigma algebra that is more similar to the one we used above for the product  | 
| 64911 | 1613  | 
topology.\<close>  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1614  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
1615  | 
lemma%important sets_PiM_finite:  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1616  | 
"sets (Pi\<^sub>M I M) = sigma_sets (\<Pi>\<^sub>E i\<in>I. space (M i))  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1617  | 
        {(\<Pi>\<^sub>E i\<in>I. X i) |X. (\<forall>i. X i \<in> sets (M i)) \<and> finite {i. X i \<noteq> space (M i)}}"
 | 
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
1618  | 
proof%unimportant  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1619  | 
  have "{(\<Pi>\<^sub>E i\<in>I. X i) |X. (\<forall>i. X i \<in> sets (M i)) \<and> finite {i. X i \<noteq> space (M i)}} \<subseteq> sets (Pi\<^sub>M I M)"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1620  | 
proof (auto)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1621  | 
    fix X assume H: "\<forall>i. X i \<in> sets (M i)" "finite {i. X i \<noteq> space (M i)}"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1622  | 
then have *: "X i \<in> sets (M i)" for i by simp  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1623  | 
    define J where "J = {i \<in> I. X i \<noteq> space (M i)}"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1624  | 
have "finite J" "J \<subseteq> I" unfolding J_def using H by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1625  | 
define Y where "Y = (\<Pi>\<^sub>E j\<in>J. X j)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1626  | 
have "prod_emb I M J Y \<in> sets (Pi\<^sub>M I M)"  | 
| 64911 | 1627  | 
unfolding Y_def apply (rule sets_PiM_I) using \<open>finite J\<close> \<open>J \<subseteq> I\<close> * by auto  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1628  | 
moreover have "prod_emb I M J Y = (\<Pi>\<^sub>E i\<in>I. X i)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1629  | 
unfolding prod_emb_def Y_def J_def using H sets.sets_into_space[OF *]  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1630  | 
by (auto simp add: PiE_iff, blast)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1631  | 
ultimately show "Pi\<^sub>E I X \<in> sets (Pi\<^sub>M I M)" by simp  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1632  | 
qed  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1633  | 
  then show "sigma_sets (\<Pi>\<^sub>E i\<in>I. space (M i)) {(\<Pi>\<^sub>E i\<in>I. X i) |X. (\<forall>i. X i \<in> sets (M i)) \<and> finite {i. X i \<noteq> space (M i)}}
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1634  | 
\<subseteq> sets (Pi\<^sub>M I M)"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1635  | 
by (metis (mono_tags, lifting) sets.sigma_sets_subset' sets.top space_PiM)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1636  | 
|
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1637  | 
  have *: "\<exists>X. {f. (\<forall>i\<in>I. f i \<in> space (M i)) \<and> f \<in> extensional I \<and> f i \<in> A} = Pi\<^sub>E I X \<and>
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1638  | 
                (\<forall>i. X i \<in> sets (M i)) \<and> finite {i. X i \<noteq> space (M i)}"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1639  | 
if "i \<in> I" "A \<in> sets (M i)" for i A  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1640  | 
proof -  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1641  | 
define X where "X = (\<lambda>j. if j = i then A else space (M j))"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1642  | 
    have "{f. (\<forall>i\<in>I. f i \<in> space (M i)) \<and> f \<in> extensional I \<and> f i \<in> A} = Pi\<^sub>E I X"
 | 
| 64911 | 1643  | 
unfolding X_def using sets.sets_into_space[OF \<open>A \<in> sets (M i)\<close>] \<open>i \<in> I\<close>  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1644  | 
by (auto simp add: PiE_iff extensional_def, metis subsetCE, metis)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1645  | 
moreover have "X j \<in> sets (M j)" for j  | 
| 64911 | 1646  | 
unfolding X_def using \<open>A \<in> sets (M i)\<close> by auto  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1647  | 
    moreover have "finite {j. X j \<noteq> space (M j)}"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1648  | 
unfolding X_def by simp  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1649  | 
ultimately show ?thesis by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1650  | 
qed  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1651  | 
  show "sets (Pi\<^sub>M I M) \<subseteq> sigma_sets (\<Pi>\<^sub>E i\<in>I. space (M i)) {(\<Pi>\<^sub>E i\<in>I. X i) |X. (\<forall>i. X i \<in> sets (M i)) \<and> finite {i. X i \<noteq> space (M i)}}"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1652  | 
unfolding sets_PiM_single  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1653  | 
apply (rule sigma_sets_mono')  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1654  | 
apply (auto simp add: PiE_iff *)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1655  | 
done  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1656  | 
qed  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1657  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
1658  | 
lemma%important sets_PiM_subset_borel:  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1659  | 
"sets (Pi\<^sub>M UNIV (\<lambda>_. borel)) \<subseteq> sets borel"  | 
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
1660  | 
proof%unimportant -  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1661  | 
  have *: "Pi\<^sub>E UNIV X \<in> sets borel" if [measurable]: "\<And>i. X i \<in> sets borel" "finite {i. X i \<noteq> UNIV}" for X::"'a \<Rightarrow> 'b set"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1662  | 
proof -  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1663  | 
    define I where "I = {i. X i \<noteq> UNIV}"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1664  | 
have "finite I" unfolding I_def using that by simp  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1665  | 
have "Pi\<^sub>E UNIV X = (\<Inter>i\<in>I. (\<lambda>x. x i)-`(X i) \<inter> space borel) \<inter> space borel"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1666  | 
unfolding I_def by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1667  | 
also have "... \<in> sets borel"  | 
| 64911 | 1668  | 
using that \<open>finite I\<close> by measurable  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1669  | 
finally show ?thesis by simp  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1670  | 
qed  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1671  | 
  then have "{(\<Pi>\<^sub>E i\<in>UNIV. X i) |X::('a \<Rightarrow> 'b set). (\<forall>i. X i \<in> sets borel) \<and> finite {i. X i \<noteq> space borel}} \<subseteq> sets borel"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1672  | 
by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1673  | 
then show ?thesis unfolding sets_PiM_finite space_borel  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1674  | 
by (simp add: * sets.sigma_sets_subset')  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1675  | 
qed  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1676  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
1677  | 
lemma%important sets_PiM_equal_borel:  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1678  | 
  "sets (Pi\<^sub>M UNIV (\<lambda>i::('a::countable). borel::('b::second_countable_topology measure))) = sets borel"
 | 
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
1679  | 
proof%unimportant  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1680  | 
  obtain K::"('a \<Rightarrow> 'b) set set" where K: "topological_basis K" "countable K"
 | 
| 64910 | 1681  | 
            "\<And>k. k \<in> K \<Longrightarrow> \<exists>X. (k = Pi\<^sub>E UNIV X) \<and> (\<forall>i. open (X i)) \<and> finite {i. X i \<noteq> UNIV}"
 | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1682  | 
using product_topology_countable_basis by fast  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1683  | 
have *: "k \<in> sets (Pi\<^sub>M UNIV (\<lambda>_. borel))" if "k \<in> K" for k  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1684  | 
proof -  | 
| 64910 | 1685  | 
    obtain X where H: "k = Pi\<^sub>E UNIV X" "\<And>i. open (X i)" "finite {i. X i \<noteq> UNIV}"
 | 
| 64911 | 1686  | 
using K(3)[OF \<open>k \<in> K\<close>] by blast  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1687  | 
show ?thesis unfolding H(1) sets_PiM_finite space_borel using borel_open[OF H(2)] H(3) by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1688  | 
qed  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1689  | 
  have **: "U \<in> sets (Pi\<^sub>M UNIV (\<lambda>_. borel))" if "open U" for U::"('a \<Rightarrow> 'b) set"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1690  | 
proof -  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1691  | 
obtain B where "B \<subseteq> K" "U = (\<Union>B)"  | 
| 64911 | 1692  | 
using \<open>open U\<close> \<open>topological_basis K\<close> by (metis topological_basis_def)  | 
1693  | 
have "countable B" using \<open>B \<subseteq> K\<close> \<open>countable K\<close> countable_subset by blast  | 
|
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1694  | 
moreover have "k \<in> sets (Pi\<^sub>M UNIV (\<lambda>_. borel))" if "k \<in> B" for k  | 
| 64911 | 1695  | 
using \<open>B \<subseteq> K\<close> * that by auto  | 
1696  | 
ultimately show ?thesis unfolding \<open>U = (\<Union>B)\<close> by auto  | 
|
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1697  | 
qed  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1698  | 
  have "sigma_sets UNIV (Collect open) \<subseteq> sets (Pi\<^sub>M UNIV (\<lambda>i::'a. (borel::('b measure))))"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1699  | 
apply (rule sets.sigma_sets_subset') using ** by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1700  | 
  then show "sets (borel::('a \<Rightarrow> 'b) measure) \<subseteq> sets (Pi\<^sub>M UNIV (\<lambda>_. borel))"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1701  | 
unfolding borel_def by auto  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1702  | 
qed (simp add: sets_PiM_subset_borel)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1703  | 
|
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
1704  | 
lemma%important measurable_coordinatewise_then_product:  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1705  | 
  fixes f::"'a \<Rightarrow> ('b::countable) \<Rightarrow> ('c::second_countable_topology)"
 | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1706  | 
assumes [measurable]: "\<And>i. (\<lambda>x. f x i) \<in> borel_measurable M"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1707  | 
shows "f \<in> borel_measurable M"  | 
| 
68833
 
fde093888c16
tagged 21 theories in the Analysis library for the manual
 
Angeliki KoutsoukouArgyraki <ak2110@cam.ac.uk> 
parents: 
66827 
diff
changeset
 | 
1708  | 
proof%unimportant -  | 
| 
64289
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1709  | 
have "f \<in> measurable M (Pi\<^sub>M UNIV (\<lambda>_. borel))"  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1710  | 
by (rule measurable_PiM_single', auto simp add: assms)  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1711  | 
then show ?thesis using sets_PiM_equal_borel measurable_cong_sets by blast  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1712  | 
qed  | 
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1713  | 
|
| 
 
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
 
hoelzl 
parents:  
diff
changeset
 | 
1714  | 
end  |