author | paulson |
Wed, 10 Jan 2001 11:05:13 +0100 | |
changeset 10841 | 2fb8089ab6cd |
parent 10687 | c186279eecea |
child 11701 | 3d51fbf81c17 |
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" |
|
9374 | 40 |
have "f (- x) = f ((- #1) \<cdot> x)" by (simp! add: negate_eq1) |
9035 | 41 |
also have "... = (- #1) * (f x)" by (rule linearform_mult) |
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]: |
61 |
"is_vectorspace V \<Longrightarrow> is_linearform V f \<Longrightarrow> f 0 = #0" |
|
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!)+ |
67 |
also have "... = #0" by simp |
|
9374 | 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 |