src/HOL/Real/HahnBanach/HahnBanachSupLemmas.thy
author wenzelm
Sat, 16 Dec 2000 21:41:51 +0100
changeset 10687 c186279eecea
parent 9623 3ade112482af
child 13515 a6a7025fd7e8
permissions -rw-r--r--
tuned HOL/Real/HahnBanach;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
     1
(*  Title:      HOL/Real/HahnBanach/HahnBanachSupLemmas.thy
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
     2
    ID:         $Id$
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
     3
    Author:     Gertrud Bauer, TU Munich
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
     4
*)
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
     5
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
     6
header {* The supremum w.r.t.~the function order *}
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
     7
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
     8
theory HahnBanachSupLemmas = FunctionNorm + ZornLemma:
9256
f9a6670427fb completed TYPES version of HahnBanach;
bauerg
parents: 9035
diff changeset
     9
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
    10
text {*
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
    11
  This section contains some lemmas that will be used in the proof of
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
    12
  the Hahn-Banach Theorem.  In this section the following context is
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
    13
  presumed.  Let @{text E} be a real vector space with a seminorm
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
    14
  @{text p} on @{text E}.  @{text F} is a subspace of @{text E} and
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
    15
  @{text f} a linear form on @{text F}. We consider a chain @{text c}
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
    16
  of norm-preserving extensions of @{text f}, such that
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
    17
  @{text "\<Union>c = graph H h"}.  We will show some properties about the
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
    18
  limit function @{text h}, i.e.\ the supremum of the chain @{text c}.
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
    19
*}
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
    20
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
    21
text {*
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
    22
  Let @{text c} be a chain of norm-preserving extensions of the
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
    23
  function @{text f} and let @{text "graph H h"} be the supremum of
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
    24
  @{text c}.  Every element in @{text H} is member of one of the
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
    25
  elements of the chain.
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
    26
*}
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
    27
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
    28
lemma some_H'h't:
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
    29
  "M = norm_pres_extensions E p F f \<Longrightarrow> c \<in> chain M \<Longrightarrow>
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
    30
  graph H h = \<Union>c \<Longrightarrow> x \<in> H
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
    31
   \<Longrightarrow> \<exists>H' h'. graph H' h' \<in> c \<and> (x, h x) \<in> graph H' h'
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
    32
       \<and> is_linearform H' h' \<and> is_subspace H' E
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
    33
       \<and> is_subspace F H' \<and> graph F f \<subseteq> graph H' h'
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
    34
       \<and> (\<forall>x \<in> H'. h' x \<le> p x)"
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
    35
proof -
9503
wenzelm
parents: 9394
diff changeset
    36
  assume m: "M = norm_pres_extensions E p F f" and "c \<in> chain M"
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
    37
     and u: "graph H h = \<Union>c"  "x \<in> H"
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
    38
9503
wenzelm
parents: 9394
diff changeset
    39
  have h: "(x, h x) \<in> graph H h" ..
wenzelm
parents: 9394
diff changeset
    40
  with u have "(x, h x) \<in> \<Union>c" by simp
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
    41
  hence ex1: "\<exists>g \<in> c. (x, h x) \<in> g"
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
    42
    by (simp only: Union_iff)
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
    43
  thus ?thesis
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
    44
  proof (elim bexE)
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
    45
    fix g assume g: "g \<in> c"  "(x, h x) \<in> g"
9503
wenzelm
parents: 9394
diff changeset
    46
    have "c \<subseteq> M" by (rule chainD2)
wenzelm
parents: 9394
diff changeset
    47
    hence "g \<in> M" ..
wenzelm
parents: 9394
diff changeset
    48
    hence "g \<in> norm_pres_extensions E p F f" by (simp only: m)
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
    49
    hence "\<exists>H' h'. graph H' h' = g
9503
wenzelm
parents: 9394
diff changeset
    50
                  \<and> is_linearform H' h'
wenzelm
parents: 9394
diff changeset
    51
                  \<and> is_subspace H' E
wenzelm
parents: 9394
diff changeset
    52
                  \<and> is_subspace F H'
wenzelm
parents: 9394
diff changeset
    53
                  \<and> graph F f \<subseteq> graph H' h'
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
    54
                  \<and> (\<forall>x \<in> H'. h' x \<le> p x)"
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
    55
      by (rule norm_pres_extension_D)
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
    56
    thus ?thesis
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
    57
    proof (elim exE conjE)
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
    58
      fix H' h'
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
    59
      assume "graph H' h' = g"  "is_linearform H' h'"
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
    60
        "is_subspace H' E"  "is_subspace F H'"
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
    61
        "graph F f \<subseteq> graph H' h'"  "\<forall>x \<in> H'. h' x \<le> p x"
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
    62
      show ?thesis
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
    63
      proof (intro exI conjI)
9503
wenzelm
parents: 9394
diff changeset
    64
        show "graph H' h' \<in> c" by (simp!)
wenzelm
parents: 9394
diff changeset
    65
        show "(x, h x) \<in> graph H' h'" by (simp!)
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
    66
      qed
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
    67
    qed
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
    68
  qed
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
    69
qed
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
    70
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
    71
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
    72
text {*
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
    73
  \medskip Let @{text c} be a chain of norm-preserving extensions of
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
    74
  the function @{text f} and let @{text "graph H h"} be the supremum
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
    75
  of @{text c}.  Every element in the domain @{text H} of the supremum
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
    76
  function is member of the domain @{text H'} of some function @{text
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
    77
  h'}, such that @{text h} extends @{text h'}.
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
    78
*}
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
    79
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
    80
lemma some_H'h':
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
    81
  "M = norm_pres_extensions E p F f \<Longrightarrow> c \<in> chain M \<Longrightarrow>
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
    82
  graph H h = \<Union>c \<Longrightarrow> x \<in> H
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
    83
  \<Longrightarrow> \<exists>H' h'. x \<in> H' \<and> graph H' h' \<subseteq> graph H h
9503
wenzelm
parents: 9394
diff changeset
    84
      \<and> is_linearform H' h' \<and> is_subspace H' E \<and> is_subspace F H'
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
    85
      \<and> graph F f \<subseteq> graph H' h' \<and> (\<forall>x \<in> H'. h' x \<le> p x)"
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
    86
proof -
9503
wenzelm
parents: 9394
diff changeset
    87
  assume "M = norm_pres_extensions E p F f" and cM: "c \<in> chain M"
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
    88
     and u: "graph H h = \<Union>c"  "x \<in> H"
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
    89
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
    90
  have "\<exists>H' h'. graph H' h' \<in> c \<and> (x, h x) \<in> graph H' h'
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
    91
       \<and> is_linearform H' h' \<and> is_subspace H' E
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
    92
       \<and> is_subspace F H' \<and> graph F f \<subseteq> graph H' h'
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
    93
       \<and> (\<forall>x \<in> H'. h' x \<le> p x)"
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
    94
    by (rule some_H'h't)
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
    95
  thus ?thesis
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
    96
  proof (elim exE conjE)
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
    97
    fix H' h' assume "(x, h x) \<in> graph H' h'"  "graph H' h' \<in> c"
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
    98
      "is_linearform H' h'"  "is_subspace H' E"  "is_subspace F H'"
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
    99
      "graph F f \<subseteq> graph H' h'"  "\<forall>x \<in> H'. h' x \<le> p x"
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   100
    show ?thesis
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   101
    proof (intro exI conjI)
9503
wenzelm
parents: 9394
diff changeset
   102
      show "x \<in> H'" by (rule graphD1)
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   103
      from cM u show "graph H' h' \<subseteq> graph H h"
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   104
        by (simp! only: chain_ball_Union_upper)
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   105
    qed
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   106
  qed
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   107
qed
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
   108
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
   109
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   110
text {*
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   111
  \medskip Any two elements @{text x} and @{text y} in the domain
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   112
  @{text H} of the supremum function @{text h} are both in the domain
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   113
  @{text H'} of some function @{text h'}, such that @{text h} extends
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   114
  @{text h'}.
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   115
*}
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
   116
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   117
lemma some_H'h'2:
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   118
  "M = norm_pres_extensions E p F f \<Longrightarrow> c \<in> chain M \<Longrightarrow>
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   119
  graph H h = \<Union>c \<Longrightarrow> x \<in> H \<Longrightarrow> y \<in> H
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   120
  \<Longrightarrow> \<exists>H' h'. x \<in> H' \<and> y \<in> H' \<and> graph H' h' \<subseteq> graph H h
9503
wenzelm
parents: 9394
diff changeset
   121
      \<and> is_linearform H' h' \<and> is_subspace H' E \<and> is_subspace F H'
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   122
      \<and> graph F f \<subseteq> graph H' h' \<and> (\<forall>x \<in> H'. h' x \<le> p x)"
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   123
proof -
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   124
  assume "M = norm_pres_extensions E p F f"  "c \<in> chain M"
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   125
         "graph H h = \<Union>c"  "x \<in> H"  "y \<in> H"
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
   126
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   127
  txt {*
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   128
    @{text x} is in the domain @{text H'} of some function @{text h'},
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   129
    such that @{text h} extends @{text h'}. *}
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
   130
9503
wenzelm
parents: 9394
diff changeset
   131
  have e1: "\<exists>H' h'. graph H' h' \<in> c \<and> (x, h x) \<in> graph H' h'
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   132
       \<and> is_linearform H' h' \<and> is_subspace H' E
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   133
       \<and> is_subspace F H' \<and> graph F f \<subseteq> graph H' h'
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   134
       \<and> (\<forall>x \<in> H'. h' x \<le> p x)"
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   135
    by (rule some_H'h't)
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
   136
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   137
  txt {* @{text y} is in the domain @{text H''} of some function @{text h''},
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   138
  such that @{text h} extends @{text h''}. *}
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
   139
9503
wenzelm
parents: 9394
diff changeset
   140
  have e2: "\<exists>H'' h''. graph H'' h'' \<in> c \<and> (y, h y) \<in> graph H'' h''
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   141
       \<and> is_linearform H'' h'' \<and> is_subspace H'' E
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   142
       \<and> is_subspace F H'' \<and> graph F f \<subseteq> graph H'' h''
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   143
       \<and> (\<forall>x \<in> H''. h'' x \<le> p x)"
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   144
    by (rule some_H'h't)
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
   145
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   146
  from e1 e2 show ?thesis
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   147
  proof (elim exE conjE)
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   148
    fix H' h' assume "(y, h y) \<in> graph H' h'"  "graph H' h' \<in> c"
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   149
      "is_linearform H' h'"  "is_subspace H' E"  "is_subspace F H'"
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   150
      "graph F f \<subseteq> graph H' h'"  "\<forall>x \<in> H'. h' x \<le> p x"
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
   151
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   152
    fix H'' h'' assume "(x, h x) \<in> graph H'' h''"  "graph H'' h'' \<in> c"
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   153
      "is_linearform H'' h''"  "is_subspace H'' E"  "is_subspace F H''"
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   154
      "graph F f \<subseteq> graph H'' h''"  "\<forall>x \<in> H''. h'' x \<le> p x"
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
   155
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   156
   txt {* Since both @{text h'} and @{text h''} are elements of the chain,
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   157
   @{text h''} is an extension of @{text h'} or vice versa. Thus both
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   158
   @{text x} and @{text y} are contained in the greater one. \label{cases1}*}
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
   159
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   160
    have "graph H'' h'' \<subseteq> graph H' h' \<or> graph H' h' \<subseteq> graph H'' h''"
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   161
      (is "?case1 \<or> ?case2")
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   162
      by (rule chainD)
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   163
    thus ?thesis
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   164
    proof
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   165
      assume ?case1
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   166
      show ?thesis
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   167
      proof (intro exI conjI)
9503
wenzelm
parents: 9394
diff changeset
   168
        have "(x, h x) \<in> graph H'' h''" .
wenzelm
parents: 9394
diff changeset
   169
        also have "... \<subseteq> graph H' h'" .
wenzelm
parents: 9394
diff changeset
   170
        finally have xh:"(x, h x) \<in> graph H' h'" .
wenzelm
parents: 9394
diff changeset
   171
        thus x: "x \<in> H'" ..
wenzelm
parents: 9394
diff changeset
   172
        show y: "y \<in> H'" ..
wenzelm
parents: 9394
diff changeset
   173
        show "graph H' h' \<subseteq> graph H h"
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   174
          by (simp! only: chain_ball_Union_upper)
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   175
      qed
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   176
    next
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   177
      assume ?case2
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   178
      show ?thesis
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   179
      proof (intro exI conjI)
9503
wenzelm
parents: 9394
diff changeset
   180
        show x: "x \<in> H''" ..
wenzelm
parents: 9394
diff changeset
   181
        have "(y, h y) \<in> graph H' h'" by (simp!)
wenzelm
parents: 9394
diff changeset
   182
        also have "... \<subseteq> graph H'' h''" .
wenzelm
parents: 9394
diff changeset
   183
        finally have yh: "(y, h y) \<in> graph H'' h''" .
wenzelm
parents: 9394
diff changeset
   184
        thus y: "y \<in> H''" ..
wenzelm
parents: 9394
diff changeset
   185
        show "graph H'' h'' \<subseteq> graph H h"
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   186
          by (simp! only: chain_ball_Union_upper)
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   187
      qed
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   188
    qed
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   189
  qed
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   190
qed
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
   191
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
   192
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
   193
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   194
text {*
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   195
  \medskip The relation induced by the graph of the supremum of a
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   196
  chain @{text c} is definite, i.~e.~t is the graph of a function. *}
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
   197
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   198
lemma sup_definite:
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   199
  "M \<equiv> norm_pres_extensions E p F f \<Longrightarrow> c \<in> chain M \<Longrightarrow>
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   200
  (x, y) \<in> \<Union>c \<Longrightarrow> (x, z) \<in> \<Union>c \<Longrightarrow> z = y"
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   201
proof -
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   202
  assume "c \<in> chain M"  "M \<equiv> norm_pres_extensions E p F f"
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   203
    "(x, y) \<in> \<Union>c"  "(x, z) \<in> \<Union>c"
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   204
  thus ?thesis
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   205
  proof (elim UnionE chainE2)
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
   206
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   207
    txt {* Since both @{text "(x, y) \<in> \<Union>c"} and @{text "(x, z) \<in> \<Union>c"}
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   208
    they are members of some graphs @{text "G\<^sub>1"} and @{text
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   209
    "G\<^sub>2"}, resp., such that both @{text "G\<^sub>1"} and @{text
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   210
    "G\<^sub>2"} are members of @{text c}.*}
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
   211
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   212
    fix G1 G2 assume
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   213
      "(x, y) \<in> G1"  "G1 \<in> c"  "(x, z) \<in> G2"  "G2 \<in> c"  "c \<subseteq> M"
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
   214
9503
wenzelm
parents: 9394
diff changeset
   215
    have "G1 \<in> M" ..
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   216
    hence e1: "\<exists>H1 h1. graph H1 h1 = G1"
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   217
      by (blast! dest: norm_pres_extension_D)
9503
wenzelm
parents: 9394
diff changeset
   218
    have "G2 \<in> M" ..
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   219
    hence e2: "\<exists>H2 h2. graph H2 h2 = G2"
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   220
      by (blast! dest: norm_pres_extension_D)
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   221
    from e1 e2 show ?thesis
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   222
    proof (elim exE)
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   223
      fix H1 h1 H2 h2
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   224
      assume "graph H1 h1 = G1"  "graph H2 h2 = G2"
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
   225
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   226
      txt {* @{text "G\<^sub>1"} is contained in @{text "G\<^sub>2"}
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   227
      or vice versa, since both @{text "G\<^sub>1"} and @{text
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   228
      "G\<^sub>2"} are members of @{text c}. \label{cases2}*}
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
   229
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   230
      have "G1 \<subseteq> G2 \<or> G2 \<subseteq> G1" (is "?case1 \<or> ?case2") ..
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   231
      thus ?thesis
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   232
      proof
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   233
        assume ?case1
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   234
        have "(x, y) \<in> graph H2 h2" by (blast!)
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   235
        hence "y = h2 x" ..
9503
wenzelm
parents: 9394
diff changeset
   236
        also have "(x, z) \<in> graph H2 h2" by (simp!)
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   237
        hence "z = h2 x" ..
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   238
        finally show ?thesis .
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   239
      next
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   240
        assume ?case2
9503
wenzelm
parents: 9394
diff changeset
   241
        have "(x, y) \<in> graph H1 h1" by (simp!)
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   242
        hence "y = h1 x" ..
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   243
        also have "(x, z) \<in> graph H1 h1" by (blast!)
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   244
        hence "z = h1 x" ..
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   245
        finally show ?thesis .
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   246
      qed
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   247
    qed
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   248
  qed
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   249
qed
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
   250
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   251
text {*
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   252
  \medskip The limit function @{text h} is linear. Every element
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   253
  @{text x} in the domain of @{text h} is in the domain of a function
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   254
  @{text h'} in the chain of norm preserving extensions.  Furthermore,
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   255
  @{text h} is an extension of @{text h'} so the function values of
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   256
  @{text x} are identical for @{text h'} and @{text h}.  Finally, the
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   257
  function @{text h'} is linear by construction of @{text M}.
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   258
*}
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
   259
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   260
lemma sup_lf:
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   261
  "M = norm_pres_extensions E p F f \<Longrightarrow> c \<in> chain M \<Longrightarrow>
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   262
  graph H h = \<Union>c \<Longrightarrow> is_linearform H h"
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   263
proof -
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   264
  assume "M = norm_pres_extensions E p F f"  "c \<in> chain M"
9503
wenzelm
parents: 9394
diff changeset
   265
         "graph H h = \<Union>c"
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   266
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   267
  show "is_linearform H h"
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   268
  proof
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   269
    fix x y assume "x \<in> H"  "y \<in> H"
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   270
    have "\<exists>H' h'. x \<in> H' \<and> y \<in> H' \<and> graph H' h' \<subseteq> graph H h
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   271
            \<and> is_linearform H' h' \<and> is_subspace H' E
9503
wenzelm
parents: 9394
diff changeset
   272
            \<and> is_subspace F H' \<and> graph F f \<subseteq> graph H' h'
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   273
            \<and> (\<forall>x \<in> H'. h' x \<le> p x)"
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   274
      by (rule some_H'h'2)
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
   275
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   276
    txt {* We have to show that @{text h} is additive. *}
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
   277
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   278
    thus "h (x + y) = h x + h y"
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   279
    proof (elim exE conjE)
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   280
      fix H' h' assume "x \<in> H'"  "y \<in> H'"
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   281
        and b: "graph H' h' \<subseteq> graph H h"
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   282
        and "is_linearform H' h'"  "is_subspace H' E"
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   283
      have "h' (x + y) = h' x + h' y"
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   284
        by (rule linearform_add)
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   285
      also have "h' x = h x" ..
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   286
      also have "h' y = h y" ..
9503
wenzelm
parents: 9394
diff changeset
   287
      also have "x + y \<in> H'" ..
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   288
      with b have "h' (x + y) = h (x + y)" ..
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   289
      finally show ?thesis .
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   290
    qed
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   291
  next
9503
wenzelm
parents: 9394
diff changeset
   292
    fix a x assume "x \<in> H"
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   293
    have "\<exists>H' h'. x \<in> H' \<and> graph H' h' \<subseteq> graph H h
9503
wenzelm
parents: 9394
diff changeset
   294
            \<and> is_linearform H' h' \<and> is_subspace H' E
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   295
            \<and> is_subspace F H' \<and> graph F f \<subseteq> graph H' h'
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   296
            \<and> (\<forall>x \<in> H'. h' x \<le> p x)"
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   297
      by (rule some_H'h')
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
   298
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   299
    txt{* We have to show that @{text h} is multiplicative. *}
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
   300
9503
wenzelm
parents: 9394
diff changeset
   301
    thus "h (a \<cdot> x) = a * h x"
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   302
    proof (elim exE conjE)
9503
wenzelm
parents: 9394
diff changeset
   303
      fix H' h' assume "x \<in> H'"
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   304
        and b: "graph H' h' \<subseteq> graph H h"
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   305
        and "is_linearform H' h'"  "is_subspace H' E"
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   306
      have "h' (a \<cdot> x) = a * h' x"
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   307
        by (rule linearform_mult)
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   308
      also have "h' x = h x" ..
9503
wenzelm
parents: 9394
diff changeset
   309
      also have "a \<cdot> x \<in> H'" ..
wenzelm
parents: 9394
diff changeset
   310
      with b have "h' (a \<cdot> x) = h (a \<cdot> x)" ..
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   311
      finally show ?thesis .
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   312
    qed
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   313
  qed
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   314
qed
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
   315
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   316
text {*
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   317
  \medskip The limit of a non-empty chain of norm preserving
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   318
  extensions of @{text f} is an extension of @{text f}, since every
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   319
  element of the chain is an extension of @{text f} and the supremum
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   320
  is an extension for every element of the chain.
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   321
*}
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
   322
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
   323
lemma sup_ext:
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   324
  "graph H h = \<Union>c \<Longrightarrow> M = norm_pres_extensions E p F f \<Longrightarrow>
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   325
  c \<in> chain M \<Longrightarrow> \<exists>x. x \<in> c \<Longrightarrow> graph F f \<subseteq> graph H h"
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   326
proof -
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   327
  assume "M = norm_pres_extensions E p F f"  "c \<in> chain M"
9503
wenzelm
parents: 9394
diff changeset
   328
         "graph H h = \<Union>c"
wenzelm
parents: 9394
diff changeset
   329
  assume "\<exists>x. x \<in> c"
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   330
  thus ?thesis
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   331
  proof
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   332
    fix x assume "x \<in> c"
9503
wenzelm
parents: 9394
diff changeset
   333
    have "c \<subseteq> M" by (rule chainD2)
wenzelm
parents: 9394
diff changeset
   334
    hence "x \<in> M" ..
wenzelm
parents: 9394
diff changeset
   335
    hence "x \<in> norm_pres_extensions E p F f" by (simp!)
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
   336
9503
wenzelm
parents: 9394
diff changeset
   337
    hence "\<exists>G g. graph G g = x
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   338
             \<and> is_linearform G g
9503
wenzelm
parents: 9394
diff changeset
   339
             \<and> is_subspace G E
wenzelm
parents: 9394
diff changeset
   340
             \<and> is_subspace F G
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   341
             \<and> graph F f \<subseteq> graph G g
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   342
             \<and> (\<forall>x \<in> G. g x \<le> p x)"
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   343
      by (simp! add: norm_pres_extension_D)
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
   344
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   345
    thus ?thesis
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   346
    proof (elim exE conjE)
9503
wenzelm
parents: 9394
diff changeset
   347
      fix G g assume "graph F f \<subseteq> graph G g"
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   348
      also assume "graph G g = x"
9503
wenzelm
parents: 9394
diff changeset
   349
      also have "... \<in> c" .
wenzelm
parents: 9394
diff changeset
   350
      hence "x \<subseteq> \<Union>c" by fast
9623
3ade112482af renamed 'RS' to 'THEN';
wenzelm
parents: 9503
diff changeset
   351
      also have [symmetric]: "graph H h = \<Union>c" .
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   352
      finally show ?thesis .
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   353
    qed
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   354
  qed
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   355
qed
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
   356
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   357
text {*
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   358
  \medskip The domain @{text H} of the limit function is a superspace
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   359
  of @{text F}, since @{text F} is a subset of @{text H}. The
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   360
  existence of the @{text 0} element in @{text F} and the closure
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   361
  properties follow from the fact that @{text F} is a vector space.
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   362
*}
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
   363
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   364
lemma sup_supF:
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   365
  "graph H h = \<Union>c \<Longrightarrow> M = norm_pres_extensions E p F f \<Longrightarrow>
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   366
  c \<in> chain M \<Longrightarrow> \<exists>x. x \<in> c \<Longrightarrow> is_subspace F E \<Longrightarrow> is_vectorspace E
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   367
  \<Longrightarrow> is_subspace F H"
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   368
proof -
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   369
  assume "M = norm_pres_extensions E p F f"  "c \<in> chain M"  "\<exists>x. x \<in> c"
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   370
    "graph H h = \<Union>c"  "is_subspace F E"  "is_vectorspace E"
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
   371
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   372
  show ?thesis
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   373
  proof
9503
wenzelm
parents: 9394
diff changeset
   374
    show "0 \<in> F" ..
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   375
    show "F \<subseteq> H"
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   376
    proof (rule graph_extD2)
9503
wenzelm
parents: 9394
diff changeset
   377
      show "graph F f \<subseteq> graph H h"
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   378
        by (rule sup_ext)
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   379
    qed
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   380
    show "\<forall>x \<in> F. \<forall>y \<in> F. x + y \<in> F"
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   381
    proof (intro ballI)
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   382
      fix x y assume "x \<in> F"  "y \<in> F"
9503
wenzelm
parents: 9394
diff changeset
   383
      show "x + y \<in> F" by (simp!)
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   384
    qed
9503
wenzelm
parents: 9394
diff changeset
   385
    show "\<forall>x \<in> F. \<forall>a. a \<cdot> x \<in> F"
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   386
    proof (intro ballI allI)
9503
wenzelm
parents: 9394
diff changeset
   387
      fix x a assume "x\<in>F"
wenzelm
parents: 9394
diff changeset
   388
      show "a \<cdot> x \<in> F" by (simp!)
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   389
    qed
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   390
  qed
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   391
qed
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
   392
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   393
text {*
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   394
  \medskip The domain @{text H} of the limit function is a subspace of
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   395
  @{text E}.
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   396
*}
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
   397
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   398
lemma sup_subE:
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   399
  "graph H h = \<Union>c \<Longrightarrow> M = norm_pres_extensions E p F f \<Longrightarrow>
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   400
  c \<in> chain M \<Longrightarrow> \<exists>x. x \<in> c \<Longrightarrow> is_subspace F E \<Longrightarrow> is_vectorspace E
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   401
  \<Longrightarrow> is_subspace H E"
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   402
proof -
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   403
  assume "M = norm_pres_extensions E p F f"  "c \<in> chain M"  "\<exists>x. x \<in> c"
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   404
    "graph H h = \<Union>c"  "is_subspace F E"  "is_vectorspace E"
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   405
  show ?thesis
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   406
  proof
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   407
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   408
    txt {* The @{text 0} element is in @{text H}, as @{text F} is a
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   409
    subset of @{text H}: *}
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
   410
9503
wenzelm
parents: 9394
diff changeset
   411
    have "0 \<in> F" ..
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   412
    also have "is_subspace F H" by (rule sup_supF)
9503
wenzelm
parents: 9394
diff changeset
   413
    hence "F \<subseteq> H" ..
wenzelm
parents: 9394
diff changeset
   414
    finally show "0 \<in> H" .
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
   415
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   416
    txt {* @{text H} is a subset of @{text E}: *}
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
   417
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   418
    show "H \<subseteq> E"
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   419
    proof
9503
wenzelm
parents: 9394
diff changeset
   420
      fix x assume "x \<in> H"
wenzelm
parents: 9394
diff changeset
   421
      have "\<exists>H' h'. x \<in> H' \<and> graph H' h' \<subseteq> graph H h
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   422
              \<and> is_linearform H' h' \<and> is_subspace H' E
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   423
              \<and> is_subspace F H' \<and> graph F f \<subseteq> graph H' h'
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   424
              \<and> (\<forall>x \<in> H'. h' x \<le> p x)"
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   425
        by (rule some_H'h')
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   426
      thus "x \<in> E"
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   427
      proof (elim exE conjE)
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   428
        fix H' h' assume "x \<in> H'"  "is_subspace H' E"
9503
wenzelm
parents: 9394
diff changeset
   429
        have "H' \<subseteq> E" ..
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   430
        thus "x \<in> E" ..
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   431
      qed
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   432
    qed
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
   433
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   434
    txt {* @{text H} is closed under addition: *}
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
   435
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   436
    show "\<forall>x \<in> H. \<forall>y \<in> H. x + y \<in> H"
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   437
    proof (intro ballI)
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   438
      fix x y assume "x \<in> H"  "y \<in> H"
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   439
      have "\<exists>H' h'. x \<in> H' \<and> y \<in> H' \<and> graph H' h' \<subseteq> graph H h
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   440
              \<and> is_linearform H' h' \<and> is_subspace H' E
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   441
              \<and> is_subspace F H' \<and> graph F f \<subseteq> graph H' h'
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   442
              \<and> (\<forall>x \<in> H'. h' x \<le> p x)"
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   443
        by (rule some_H'h'2)
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   444
      thus "x + y \<in> H"
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   445
      proof (elim exE conjE)
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   446
        fix H' h'
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   447
        assume "x \<in> H'"  "y \<in> H'"  "is_subspace H' E"
9503
wenzelm
parents: 9394
diff changeset
   448
          "graph H' h' \<subseteq> graph H h"
wenzelm
parents: 9394
diff changeset
   449
        have "x + y \<in> H'" ..
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   450
        also have "H' \<subseteq> H" ..
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   451
        finally show ?thesis .
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   452
      qed
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   453
    qed
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
   454
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   455
    txt {* @{text H} is closed under scalar multiplication: *}
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
   456
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   457
    show "\<forall>x \<in> H. \<forall>a. a \<cdot> x \<in> H"
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   458
    proof (intro ballI allI)
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   459
      fix x a assume "x \<in> H"
9503
wenzelm
parents: 9394
diff changeset
   460
      have "\<exists>H' h'. x \<in> H' \<and> graph H' h' \<subseteq> graph H h
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   461
              \<and> is_linearform H' h' \<and> is_subspace H' E
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   462
              \<and> is_subspace F H' \<and> graph F f \<subseteq> graph H' h'
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   463
              \<and> (\<forall>x \<in> H'. h' x \<le> p x)"
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   464
        by (rule some_H'h')
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   465
      thus "a \<cdot> x \<in> H"
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   466
      proof (elim exE conjE)
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   467
        fix H' h'
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   468
        assume "x \<in> H'"  "is_subspace H' E"  "graph H' h' \<subseteq> graph H h"
9503
wenzelm
parents: 9394
diff changeset
   469
        have "a \<cdot> x \<in> H'" ..
wenzelm
parents: 9394
diff changeset
   470
        also have "H' \<subseteq> H" ..
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   471
        finally show ?thesis .
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   472
      qed
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   473
    qed
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   474
  qed
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   475
qed
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
   476
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   477
text {*
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   478
  \medskip The limit function is bounded by the norm @{text p} as
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   479
  well, since all elements in the chain are bounded by @{text p}.
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   480
*}
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
   481
9374
153853af318b - xsymbols for
bauerg
parents: 9262
diff changeset
   482
lemma sup_norm_pres:
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   483
  "graph H h = \<Union>c \<Longrightarrow> M = norm_pres_extensions E p F f \<Longrightarrow>
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   484
  c \<in> chain M \<Longrightarrow> \<forall>x \<in> H. h x \<le> p x"
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   485
proof
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   486
  assume "M = norm_pres_extensions E p F f"  "c \<in> chain M"
9503
wenzelm
parents: 9394
diff changeset
   487
         "graph H h = \<Union>c"
wenzelm
parents: 9394
diff changeset
   488
  fix x assume "x \<in> H"
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   489
  have "\<exists>H' h'. x \<in> H' \<and> graph H' h' \<subseteq> graph H h
9503
wenzelm
parents: 9394
diff changeset
   490
          \<and> is_linearform H' h' \<and> is_subspace H' E \<and> is_subspace F H'
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   491
          \<and> graph F f \<subseteq> graph H' h' \<and> (\<forall>x \<in> H'. h' x \<le> p x)"
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   492
    by (rule some_H'h')
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   493
  thus "h x \<le> p x"
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   494
  proof (elim exE conjE)
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   495
    fix H' h'
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   496
    assume "x \<in> H'"  "graph H' h' \<subseteq> graph H h"
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   497
      and a: "\<forall>x \<in> H'. h' x \<le> p x"
9623
3ade112482af renamed 'RS' to 'THEN';
wenzelm
parents: 9503
diff changeset
   498
    have [symmetric]: "h' x = h x" ..
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   499
    also from a have "h' x \<le> p x " ..
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   500
    finally show ?thesis .
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   501
  qed
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   502
qed
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
   503
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
   504
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   505
text {*
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   506
  \medskip The following lemma is a property of linear forms on real
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   507
  vector spaces. It will be used for the lemma @{text abs_HahnBanach}
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   508
  (see page \pageref{abs-HahnBanach}). \label{abs-ineq-iff} For real
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   509
  vector spaces the following inequations are equivalent:
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   510
  \begin{center}
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   511
  \begin{tabular}{lll}
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   512
  @{text "\<forall>x \<in> H. \<bar>h x\<bar> \<le> p x"} & and &
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   513
  @{text "\<forall>x \<in> H. h x \<le> p x"} \\
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   514
  \end{tabular}
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   515
  \end{center}
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   516
*}
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
   517
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   518
lemma abs_ineq_iff:
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   519
  "is_subspace H E \<Longrightarrow> is_vectorspace E \<Longrightarrow> is_seminorm E p \<Longrightarrow>
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   520
  is_linearform H h
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   521
  \<Longrightarrow> (\<forall>x \<in> H. \<bar>h x\<bar> \<le> p x) = (\<forall>x \<in> H. h x \<le> p x)"
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   522
  (concl is "?L = ?R")
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   523
proof -
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   524
  assume "is_subspace H E"  "is_vectorspace E"  "is_seminorm E p"
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   525
         "is_linearform H h"
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   526
  have h: "is_vectorspace H" ..
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   527
  show ?thesis
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   528
  proof
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   529
    assume l: ?L
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   530
    show ?R
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   531
    proof
9503
wenzelm
parents: 9394
diff changeset
   532
      fix x assume x: "x \<in> H"
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   533
      have "h x \<le> \<bar>h x\<bar>" by (rule abs_ge_self)
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   534
      also from l have "... \<le> p x" ..
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   535
      finally show "h x \<le> p x" .
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   536
    qed
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   537
  next
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   538
    assume r: ?R
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   539
    show ?L
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   540
    proof
9503
wenzelm
parents: 9394
diff changeset
   541
      fix x assume "x \<in> H"
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   542
      show "\<And>a b :: real. - a \<le> b \<Longrightarrow> b \<le> a \<Longrightarrow> \<bar>b\<bar> \<le> a"
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   543
        by arith
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   544
      show "- p x \<le> h x"
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   545
      proof (rule real_minus_le)
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   546
        from h have "- h x = h (- x)"
9623
3ade112482af renamed 'RS' to 'THEN';
wenzelm
parents: 9503
diff changeset
   547
          by (rule linearform_neg [symmetric])
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   548
        also from r have "... \<le> p (- x)" by (simp!)
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   549
        also have "... = p x"
9379
21cfeae6659d tuded presentation;
bauerg
parents: 9374
diff changeset
   550
        proof (rule seminorm_minus)
9503
wenzelm
parents: 9394
diff changeset
   551
          show "x \<in> E" ..
9379
21cfeae6659d tuded presentation;
bauerg
parents: 9374
diff changeset
   552
        qed
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   553
        finally show "- h x \<le> p x" .
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   554
      qed
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   555
      from r show "h x \<le> p x" ..
9261
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   556
    qed
879e0f0cd047 removed sorry;
bauerg
parents: 9256
diff changeset
   557
  qed
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   558
qed
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents:
diff changeset
   559
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9623
diff changeset
   560
end