src/HOL/Real/HahnBanach/NormedSpace.thy
author wenzelm
Fri, 08 Mar 2002 16:24:06 +0100
changeset 13049 ce180e5b7fa0
parent 12018 ec054019c910
child 13515 a6a7025fd7e8
permissions -rw-r--r--
tuned;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7566
c5a3f980a7af accomodate refined facts handling;
wenzelm
parents: 7535
diff changeset
     1
(*  Title:      HOL/Real/HahnBanach/NormedSpace.thy
c5a3f980a7af accomodate refined facts handling;
wenzelm
parents: 7535
diff changeset
     2
    ID:         $Id$
c5a3f980a7af accomodate refined facts handling;
wenzelm
parents: 7535
diff changeset
     3
    Author:     Gertrud Bauer, TU Munich
c5a3f980a7af accomodate refined facts handling;
wenzelm
parents: 7535
diff changeset
     4
*)
7535
599d3414b51d The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff changeset
     5
9035
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 9013
diff changeset
     6
header {* Normed vector spaces *}
7808
fd019ac3485f update from Gertrud;
wenzelm
parents: 7566
diff changeset
     7
9035
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 9013
diff changeset
     8
theory NormedSpace =  Subspace:
7535
599d3414b51d The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff changeset
     9
9035
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 9013
diff changeset
    10
subsection {* Quasinorms *}
7808
fd019ac3485f update from Gertrud;
wenzelm
parents: 7566
diff changeset
    11
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
    12
text {*
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
    13
  A \emph{seminorm} @{text "\<parallel>\<cdot>\<parallel>"} is a function on a real vector space
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
    14
  into the reals that has the following properties: it is positive
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
    15
  definite, absolute homogenous and subadditive.
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
    16
*}
7535
599d3414b51d The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff changeset
    17
599d3414b51d The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff changeset
    18
constdefs
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
    19
  is_seminorm :: "'a::{plus, minus, zero} set \<Rightarrow> ('a \<Rightarrow> real) \<Rightarrow> bool"
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
    20
  "is_seminorm V norm \<equiv> \<forall>x \<in> V. \<forall>y \<in> V. \<forall>a.
12018
ec054019c910 Numerals and simprocs for types real and hypreal. The abstract
paulson
parents: 11701
diff changeset
    21
        0 \<le> norm x
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
    22
      \<and> norm (a \<cdot> x) = \<bar>a\<bar> * norm x
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
    23
      \<and> norm (x + y) \<le> norm x + norm y"
7535
599d3414b51d The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff changeset
    24
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
    25
lemma is_seminormI [intro]:
12018
ec054019c910 Numerals and simprocs for types real and hypreal. The abstract
paulson
parents: 11701
diff changeset
    26
  "(\<And>x y a. x \<in> V \<Longrightarrow> y \<in> V \<Longrightarrow> 0 \<le> norm x) \<Longrightarrow>
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
    27
  (\<And>x a. x \<in> V \<Longrightarrow> norm (a \<cdot> x) = \<bar>a\<bar> * norm x) \<Longrightarrow>
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
    28
  (\<And>x y. x \<in> V \<Longrightarrow> y \<in> V \<Longrightarrow> norm (x + y) \<le> norm x + norm y)
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
    29
  \<Longrightarrow> is_seminorm V norm"
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
    30
  by (unfold is_seminorm_def) auto
7535
599d3414b51d The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff changeset
    31
9408
d3d56e1d2ec1 classical atts now intro! / intro / intro?;
wenzelm
parents: 9374
diff changeset
    32
lemma seminorm_ge_zero [intro?]:
12018
ec054019c910 Numerals and simprocs for types real and hypreal. The abstract
paulson
parents: 11701
diff changeset
    33
  "is_seminorm V norm \<Longrightarrow> x \<in> V \<Longrightarrow> 0 \<le> norm x"
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
    34
  by (unfold is_seminorm_def) blast
7535
599d3414b51d The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff changeset
    35
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
    36
lemma seminorm_abs_homogenous:
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
    37
  "is_seminorm V norm \<Longrightarrow> x \<in> V
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
    38
  \<Longrightarrow> norm (a \<cdot> x) = \<bar>a\<bar> * norm x"
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
    39
  by (unfold is_seminorm_def) blast
7535
599d3414b51d The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff changeset
    40
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
    41
lemma seminorm_subadditive:
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
    42
  "is_seminorm V norm \<Longrightarrow> x \<in> V \<Longrightarrow> y \<in> V
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
    43
  \<Longrightarrow> norm (x + y) \<le> norm x + norm y"
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
    44
  by (unfold is_seminorm_def) blast
7535
599d3414b51d The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff changeset
    45
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
    46
lemma seminorm_diff_subadditive:
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
    47
  "is_seminorm V norm \<Longrightarrow> x \<in> V \<Longrightarrow> y \<in> V \<Longrightarrow> is_vectorspace V
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
    48
  \<Longrightarrow> norm (x - y) \<le> norm x + norm y"
9035
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 9013
diff changeset
    49
proof -
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
    50
  assume "is_seminorm V norm"  "x \<in> V"  "y \<in> V"  "is_vectorspace V"
12018
ec054019c910 Numerals and simprocs for types real and hypreal. The abstract
paulson
parents: 11701
diff changeset
    51
  have "norm (x - y) = norm (x + - 1 \<cdot> y)"
9035
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 9013
diff changeset
    52
    by (simp! add: diff_eq2 negate_eq2a)
12018
ec054019c910 Numerals and simprocs for types real and hypreal. The abstract
paulson
parents: 11701
diff changeset
    53
  also have "... \<le> norm x + norm  (- 1 \<cdot> y)"
9035
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 9013
diff changeset
    54
    by (simp! add: seminorm_subadditive)
12018
ec054019c910 Numerals and simprocs for types real and hypreal. The abstract
paulson
parents: 11701
diff changeset
    55
  also have "norm (- 1 \<cdot> y) = \<bar>- 1\<bar> * norm y"
9035
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 9013
diff changeset
    56
    by (rule seminorm_abs_homogenous)
12018
ec054019c910 Numerals and simprocs for types real and hypreal. The abstract
paulson
parents: 11701
diff changeset
    57
  also have "\<bar>- 1\<bar> = (1::real)" by (rule abs_minus_one)
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
    58
  finally show "norm (x - y) \<le> norm x + norm y" by simp
9035
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 9013
diff changeset
    59
qed
7535
599d3414b51d The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff changeset
    60
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
    61
lemma seminorm_minus:
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
    62
  "is_seminorm V norm \<Longrightarrow> x \<in> V \<Longrightarrow> is_vectorspace V
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
    63
  \<Longrightarrow> norm (- x) = norm x"
9035
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 9013
diff changeset
    64
proof -
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
    65
  assume "is_seminorm V norm"  "x \<in> V"  "is_vectorspace V"
12018
ec054019c910 Numerals and simprocs for types real and hypreal. The abstract
paulson
parents: 11701
diff changeset
    66
  have "norm (- x) = norm (- 1 \<cdot> x)" by (simp! only: negate_eq1)
ec054019c910 Numerals and simprocs for types real and hypreal. The abstract
paulson
parents: 11701
diff changeset
    67
  also have "... = \<bar>- 1\<bar> * norm x"
9035
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 9013
diff changeset
    68
    by (rule seminorm_abs_homogenous)
12018
ec054019c910 Numerals and simprocs for types real and hypreal. The abstract
paulson
parents: 11701
diff changeset
    69
  also have "\<bar>- 1\<bar> = (1::real)" by (rule abs_minus_one)
9035
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 9013
diff changeset
    70
  finally show "norm (- x) = norm x" by simp
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 9013
diff changeset
    71
qed
7535
599d3414b51d The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff changeset
    72
599d3414b51d The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff changeset
    73
9035
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 9013
diff changeset
    74
subsection {* Norms *}
7808
fd019ac3485f update from Gertrud;
wenzelm
parents: 7566
diff changeset
    75
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
    76
text {*
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
    77
  A \emph{norm} @{text "\<parallel>\<cdot>\<parallel>"} is a seminorm that maps only the
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
    78
  @{text 0} vector to @{text 0}.
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
    79
*}
7535
599d3414b51d The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff changeset
    80
599d3414b51d The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff changeset
    81
constdefs
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
    82
  is_norm :: "'a::{plus, minus, zero} set \<Rightarrow> ('a \<Rightarrow> real) \<Rightarrow> bool"
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
    83
  "is_norm V norm \<equiv> \<forall>x \<in> V. is_seminorm V norm
12018
ec054019c910 Numerals and simprocs for types real and hypreal. The abstract
paulson
parents: 11701
diff changeset
    84
      \<and> (norm x = 0) = (x = 0)"
7535
599d3414b51d The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff changeset
    85
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
    86
lemma is_normI [intro]:
12018
ec054019c910 Numerals and simprocs for types real and hypreal. The abstract
paulson
parents: 11701
diff changeset
    87
  "\<forall>x \<in> V.  is_seminorm V norm  \<and> (norm x = 0) = (x = 0)
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
    88
  \<Longrightarrow> is_norm V norm" by (simp only: is_norm_def)
7535
599d3414b51d The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff changeset
    89
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
    90
lemma norm_is_seminorm [intro?]:
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
    91
  "is_norm V norm \<Longrightarrow> x \<in> V \<Longrightarrow> is_seminorm V norm"
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
    92
  by (unfold is_norm_def) blast
7535
599d3414b51d The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff changeset
    93
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
    94
lemma norm_zero_iff:
12018
ec054019c910 Numerals and simprocs for types real and hypreal. The abstract
paulson
parents: 11701
diff changeset
    95
  "is_norm V norm \<Longrightarrow> x \<in> V \<Longrightarrow> (norm x = 0) = (x = 0)"
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
    96
  by (unfold is_norm_def) blast
7535
599d3414b51d The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff changeset
    97
9408
d3d56e1d2ec1 classical atts now intro! / intro / intro?;
wenzelm
parents: 9374
diff changeset
    98
lemma norm_ge_zero [intro?]:
12018
ec054019c910 Numerals and simprocs for types real and hypreal. The abstract
paulson
parents: 11701
diff changeset
    99
  "is_norm V norm \<Longrightarrow> x \<in> V \<Longrightarrow> 0 \<le> norm x"
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
   100
  by (unfold is_norm_def is_seminorm_def) blast
7535
599d3414b51d The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff changeset
   101
599d3414b51d The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff changeset
   102
9035
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 9013
diff changeset
   103
subsection {* Normed vector spaces *}
7808
fd019ac3485f update from Gertrud;
wenzelm
parents: 7566
diff changeset
   104
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents: 7808
diff changeset
   105
text{* A vector space together with a norm is called
9035
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 9013
diff changeset
   106
a \emph{normed space}. *}
7535
599d3414b51d The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff changeset
   107
599d3414b51d The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff changeset
   108
constdefs
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
   109
  is_normed_vectorspace ::
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
   110
  "'a::{plus, minus, zero} set \<Rightarrow> ('a \<Rightarrow> real) \<Rightarrow> bool"
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
   111
  "is_normed_vectorspace V norm \<equiv>
9374
153853af318b - xsymbols for
bauerg
parents: 9035
diff changeset
   112
      is_vectorspace V \<and> is_norm V norm"
7535
599d3414b51d The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff changeset
   113
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
   114
lemma normed_vsI [intro]:
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
   115
  "is_vectorspace V \<Longrightarrow> is_norm V norm
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
   116
  \<Longrightarrow> is_normed_vectorspace V norm"
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
   117
  by (unfold is_normed_vectorspace_def) blast
7535
599d3414b51d The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff changeset
   118
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
   119
lemma normed_vs_vs [intro?]:
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
   120
  "is_normed_vectorspace V norm \<Longrightarrow> is_vectorspace V"
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
   121
  by (unfold is_normed_vectorspace_def) blast
7535
599d3414b51d The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff changeset
   122
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
   123
lemma normed_vs_norm [intro?]:
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
   124
  "is_normed_vectorspace V norm \<Longrightarrow> is_norm V norm"
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
   125
  by (unfold is_normed_vectorspace_def) blast
7535
599d3414b51d The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff changeset
   126
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
   127
lemma normed_vs_norm_ge_zero [intro?]:
12018
ec054019c910 Numerals and simprocs for types real and hypreal. The abstract
paulson
parents: 11701
diff changeset
   128
  "is_normed_vectorspace V norm \<Longrightarrow> x \<in> V \<Longrightarrow> 0 \<le> norm x"
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
   129
  by (unfold is_normed_vectorspace_def) (fast elim: norm_ge_zero)
7535
599d3414b51d The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff changeset
   130
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
   131
lemma normed_vs_norm_gt_zero [intro?]:
12018
ec054019c910 Numerals and simprocs for types real and hypreal. The abstract
paulson
parents: 11701
diff changeset
   132
  "is_normed_vectorspace V norm \<Longrightarrow> x \<in> V \<Longrightarrow> x \<noteq> 0 \<Longrightarrow> 0 < norm x"
9035
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 9013
diff changeset
   133
proof (unfold is_normed_vectorspace_def, elim conjE)
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
   134
  assume "x \<in> V"  "x \<noteq> 0"  "is_vectorspace V"  "is_norm V norm"
12018
ec054019c910 Numerals and simprocs for types real and hypreal. The abstract
paulson
parents: 11701
diff changeset
   135
  have "0 \<le> norm x" ..
ec054019c910 Numerals and simprocs for types real and hypreal. The abstract
paulson
parents: 11701
diff changeset
   136
  also have "0 \<noteq> norm x"
9035
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 9013
diff changeset
   137
  proof
12018
ec054019c910 Numerals and simprocs for types real and hypreal. The abstract
paulson
parents: 11701
diff changeset
   138
    presume "norm x = 0"
9374
153853af318b - xsymbols for
bauerg
parents: 9035
diff changeset
   139
    also have "?this = (x = 0)" by (rule norm_zero_iff)
153853af318b - xsymbols for
bauerg
parents: 9035
diff changeset
   140
    finally have "x = 0" .
9035
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 9013
diff changeset
   141
    thus "False" by contradiction
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 9013
diff changeset
   142
  qed (rule sym)
12018
ec054019c910 Numerals and simprocs for types real and hypreal. The abstract
paulson
parents: 11701
diff changeset
   143
  finally show "0 < norm x" .
9035
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 9013
diff changeset
   144
qed
7535
599d3414b51d The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff changeset
   145
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
   146
lemma normed_vs_norm_abs_homogenous [intro?]:
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
   147
  "is_normed_vectorspace V norm \<Longrightarrow> x \<in> V
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
   148
  \<Longrightarrow> norm (a \<cdot> x) = \<bar>a\<bar> * norm x"
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
   149
  by (rule seminorm_abs_homogenous, rule norm_is_seminorm,
9035
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 9013
diff changeset
   150
      rule normed_vs_norm)
7535
599d3414b51d The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff changeset
   151
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
   152
lemma normed_vs_norm_subadditive [intro?]:
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
   153
  "is_normed_vectorspace V norm \<Longrightarrow> x \<in> V \<Longrightarrow> y \<in> V
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
   154
  \<Longrightarrow> norm (x + y) \<le> norm x + norm y"
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
   155
  by (rule seminorm_subadditive, rule norm_is_seminorm,
9035
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 9013
diff changeset
   156
     rule normed_vs_norm)
7535
599d3414b51d The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff changeset
   157
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
   158
text{* Any subspace of a normed vector space is again a
9035
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 9013
diff changeset
   159
normed vectorspace.*}
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents: 7808
diff changeset
   160
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
   161
lemma subspace_normed_vs [intro?]:
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
   162
  "is_vectorspace E \<Longrightarrow> is_subspace F E \<Longrightarrow>
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
   163
  is_normed_vectorspace E norm \<Longrightarrow> is_normed_vectorspace F norm"
9035
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 9013
diff changeset
   164
proof (rule normed_vsI)
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
   165
  assume "is_subspace F E"  "is_vectorspace E"
9035
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 9013
diff changeset
   166
         "is_normed_vectorspace E norm"
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 9013
diff changeset
   167
  show "is_vectorspace F" ..
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
   168
  show "is_norm F norm"
9035
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 9013
diff changeset
   169
  proof (intro is_normI ballI conjI)
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
   170
    show "is_seminorm F norm"
9035
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 9013
diff changeset
   171
    proof
9374
153853af318b - xsymbols for
bauerg
parents: 9035
diff changeset
   172
      fix x y a presume "x \<in> E"
12018
ec054019c910 Numerals and simprocs for types real and hypreal. The abstract
paulson
parents: 11701
diff changeset
   173
      show "0 \<le> norm x" ..
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
   174
      show "norm (a \<cdot> x) = \<bar>a\<bar> * norm x" ..
9374
153853af318b - xsymbols for
bauerg
parents: 9035
diff changeset
   175
      presume "y \<in> E"
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
   176
      show "norm (x + y) \<le> norm x + norm y" ..
9035
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 9013
diff changeset
   177
    qed (simp!)+
7535
599d3414b51d The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff changeset
   178
9374
153853af318b - xsymbols for
bauerg
parents: 9035
diff changeset
   179
    fix x assume "x \<in> F"
12018
ec054019c910 Numerals and simprocs for types real and hypreal. The abstract
paulson
parents: 11701
diff changeset
   180
    show "(norm x = 0) = (x = 0)"
9035
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 9013
diff changeset
   181
    proof (rule norm_zero_iff)
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 9013
diff changeset
   182
      show "is_norm E norm" ..
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 9013
diff changeset
   183
    qed (simp!)
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 9013
diff changeset
   184
  qed
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 9013
diff changeset
   185
qed
7535
599d3414b51d The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff changeset
   186
10687
c186279eecea tuned HOL/Real/HahnBanach;
wenzelm
parents: 9408
diff changeset
   187
end