src/HOL/Real/HahnBanach/Linearform.thy
 author wenzelm Thu Jun 14 00:22:45 2007 +0200 (2007-06-14) changeset 23378 1d138d6bb461 parent 16417 9bc16273c2d4 child 25762 c03e9d04b3e4 permissions -rw-r--r--
tuned proofs: avoid implicit prems;
1 (*  Title:      HOL/Real/HahnBanach/Linearform.thy
2     ID:         $Id$
3     Author:     Gertrud Bauer, TU Munich
4 *)
8 theory Linearform imports VectorSpace begin
10 text {*
11   A \emph{linear form} is a function on a vector space into the reals
12   that is additive and multiplicative.
13 *}
15 locale linearform = var V + var f +
16   assumes add [iff]: "x \<in> V \<Longrightarrow> y \<in> V \<Longrightarrow> f (x + y) = f x + f y"
17     and mult [iff]: "x \<in> V \<Longrightarrow> f (a \<cdot> x) = a * f x"
19 declare linearform.intro [intro?]
21 lemma (in linearform) neg [iff]:
22   includes vectorspace
23   shows "x \<in> V \<Longrightarrow> f (- x) = - f x"
24 proof -
25   assume x: "x \<in> V"
26   hence "f (- x) = f ((- 1) \<cdot> x)" by (simp add: negate_eq1)
27   also from x have "... = (- 1) * (f x)" by (rule mult)
28   also from x have "... = - (f x)" by simp
29   finally show ?thesis .
30 qed
32 lemma (in linearform) diff [iff]:
33   includes vectorspace
34   shows "x \<in> V \<Longrightarrow> y \<in> V \<Longrightarrow> f (x - y) = f x - f y"
35 proof -
36   assume x: "x \<in> V" and y: "y \<in> V"
37   hence "x - y = x + - y" by (rule diff_eq1)
38   also have "f ... = f x + f (- y)" by (rule add) (simp_all add: x y)
39   also have "f (- y) = - f y" using vectorspace V y by (rule neg)
40   finally show ?thesis by simp
41 qed
43 text {* Every linear form yields @{text 0} for the @{text 0} vector. *}
45 lemma (in linearform) zero [iff]:
46   includes vectorspace
47   shows "f 0 = 0"
48 proof -
49   have "f 0 = f (0 - 0)" by simp
50   also have "\<dots> = f 0 - f 0" using vectorspace V by (rule diff) simp_all
51   also have "\<dots> = 0" by simp
52   finally show ?thesis .
53 qed
55 end