author | wenzelm |
Fri, 08 Mar 2002 16:24:06 +0100 | |
changeset 13049 | ce180e5b7fa0 |
parent 12018 | ec054019c910 |
child 13515 | a6a7025fd7e8 |
permissions | -rw-r--r-- |
7566 | 1 |
(* Title: HOL/Real/HahnBanach/Linearform.thy |
2 |
ID: $Id$ |
|
3 |
Author: Gertrud Bauer, TU Munich |
|
4 |
*) |
|
7535
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
5 |
|
9035 | 6 |
header {* Linearforms *} |
7535
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
7 |
|
9035 | 8 |
theory Linearform = VectorSpace: |
7917 | 9 |
|
10687 | 10 |
text {* |
11 |
A \emph{linear form} is a function on a vector space into the reals |
|
12 |
that is additive and multiplicative. |
|
13 |
*} |
|
7535
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
14 |
|
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
15 |
constdefs |
10687 | 16 |
is_linearform :: "'a::{plus, minus, zero} set \<Rightarrow> ('a \<Rightarrow> real) \<Rightarrow> bool" |
17 |
"is_linearform V f \<equiv> |
|
9374 | 18 |
(\<forall>x \<in> V. \<forall>y \<in> V. f (x + y) = f x + f y) \<and> |
10687 | 19 |
(\<forall>x \<in> V. \<forall>a. f (a \<cdot> x) = a * (f x))" |
7535
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
20 |
|
10687 | 21 |
lemma is_linearformI [intro]: |
22 |
"(\<And>x y. x \<in> V \<Longrightarrow> y \<in> V \<Longrightarrow> f (x + y) = f x + f y) \<Longrightarrow> |
|
23 |
(\<And>x c. x \<in> V \<Longrightarrow> f (c \<cdot> x) = c * f x) |
|
24 |
\<Longrightarrow> is_linearform V f" |
|
25 |
by (unfold is_linearform_def) blast |
|
7535
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
26 |
|
10687 | 27 |
lemma linearform_add [intro?]: |
28 |
"is_linearform V f \<Longrightarrow> x \<in> V \<Longrightarrow> y \<in> V \<Longrightarrow> f (x + y) = f x + f y" |
|
29 |
by (unfold is_linearform_def) blast |
|
7535
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
30 |
|
10687 | 31 |
lemma linearform_mult [intro?]: |
32 |
"is_linearform V f \<Longrightarrow> x \<in> V \<Longrightarrow> f (a \<cdot> x) = a * (f x)" |
|
33 |
by (unfold is_linearform_def) blast |
|
7535
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
34 |
|
9408 | 35 |
lemma linearform_neg [intro?]: |
10687 | 36 |
"is_vectorspace V \<Longrightarrow> is_linearform V f \<Longrightarrow> x \<in> V |
37 |
\<Longrightarrow> f (- x) = - f x" |
|
38 |
proof - |
|
39 |
assume "is_linearform V f" "is_vectorspace V" "x \<in> V" |
|
12018
ec054019c910
Numerals and simprocs for types real and hypreal. The abstract
paulson
parents:
11701
diff
changeset
|
40 |
have "f (- x) = f ((- 1) \<cdot> x)" by (simp! add: negate_eq1) |
ec054019c910
Numerals and simprocs for types real and hypreal. The abstract
paulson
parents:
11701
diff
changeset
|
41 |
also have "... = (- 1) * (f x)" by (rule linearform_mult) |
9035 | 42 |
also have "... = - (f x)" by (simp!) |
43 |
finally show ?thesis . |
|
44 |
qed |
|
7535
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
45 |
|
10687 | 46 |
lemma linearform_diff [intro?]: |
47 |
"is_vectorspace V \<Longrightarrow> is_linearform V f \<Longrightarrow> x \<in> V \<Longrightarrow> y \<in> V |
|
48 |
\<Longrightarrow> f (x - y) = f x - f y" |
|
9035 | 49 |
proof - |
10687 | 50 |
assume "is_vectorspace V" "is_linearform V f" "x \<in> V" "y \<in> V" |
9035 | 51 |
have "f (x - y) = f (x + - y)" by (simp! only: diff_eq1) |
10687 | 52 |
also have "... = f x + f (- y)" |
9035 | 53 |
by (rule linearform_add) (simp!)+ |
54 |
also have "f (- y) = - f y" by (rule linearform_neg) |
|
55 |
finally show "f (x - y) = f x - f y" by (simp!) |
|
56 |
qed |
|
7535
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
57 |
|
10687 | 58 |
text {* Every linear form yields @{text 0} for the @{text 0} vector. *} |
7917 | 59 |
|
10687 | 60 |
lemma linearform_zero [intro?, simp]: |
12018
ec054019c910
Numerals and simprocs for types real and hypreal. The abstract
paulson
parents:
11701
diff
changeset
|
61 |
"is_vectorspace V \<Longrightarrow> is_linearform V f \<Longrightarrow> f 0 = 0" |
10687 | 62 |
proof - |
63 |
assume "is_vectorspace V" "is_linearform V f" |
|
9374 | 64 |
have "f 0 = f (0 - 0)" by (simp!) |
10687 | 65 |
also have "... = f 0 - f 0" |
9035 | 66 |
by (rule linearform_diff) (simp!)+ |
12018
ec054019c910
Numerals and simprocs for types real and hypreal. The abstract
paulson
parents:
11701
diff
changeset
|
67 |
also have "... = 0" by simp |
ec054019c910
Numerals and simprocs for types real and hypreal. The abstract
paulson
parents:
11701
diff
changeset
|
68 |
finally show "f 0 = 0" . |
10687 | 69 |
qed |
7535
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
70 |
|
10687 | 71 |
end |