summary |
shortlog |
changelog |
graph |
tags |
branches |
files |
changeset |
file |
revisions |
annotate |
diff |
raw

src/HOL/Real/HahnBanach/Linearform.thy

author | ballarin |

Tue Jul 15 16:50:09 2008 +0200 (2008-07-15) | |

changeset 27611 | 2c01c0bdb385 |

parent 25762 | c03e9d04b3e4 |

child 27612 | d3eb431db035 |

permissions | -rw-r--r-- |

Removed uses of context element includes.

1 (* Title: HOL/Real/HahnBanach/Linearform.thy

2 ID: $Id$

3 Author: Gertrud Bauer, TU Munich

4 *)

6 header {* Linearforms *}

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 constrains V :: "'a\<Colon>{minus, plus, zero, uminus} set"

17 assumes add [iff]: "x \<in> V \<Longrightarrow> y \<in> V \<Longrightarrow> f (x + y) = f x + f y"

18 and mult [iff]: "x \<in> V \<Longrightarrow> f (a \<cdot> x) = a * f x"

20 declare linearform.intro [intro?]

22 lemma (in linearform) neg [iff]:

23 assumes "vectorspace V"

24 shows "x \<in> V \<Longrightarrow> f (- x) = - f x"

25 proof -

26 interpret vectorspace [V] by fact

27 assume x: "x \<in> V"

28 hence "f (- x) = f ((- 1) \<cdot> x)" by (simp add: negate_eq1)

29 also from x have "... = (- 1) * (f x)" by (rule mult)

30 also from x have "... = - (f x)" by simp

31 finally show ?thesis .

32 qed

34 lemma (in linearform) diff [iff]:

35 assumes "vectorspace V"

36 shows "x \<in> V \<Longrightarrow> y \<in> V \<Longrightarrow> f (x - y) = f x - f y"

37 proof -

38 interpret vectorspace [V] by fact

39 assume x: "x \<in> V" and y: "y \<in> V"

40 hence "x - y = x + - y" by (rule diff_eq1)

41 also have "f ... = f x + f (- y)" by (rule add) (simp_all add: x y)

42 also have "f (- y) = - f y" using `vectorspace V` y by (rule neg)

43 finally show ?thesis by simp

44 qed

46 text {* Every linear form yields @{text 0} for the @{text 0} vector. *}

48 lemma (in linearform) zero [iff]:

49 assumes "vectorspace V"

50 shows "f 0 = 0"

51 proof -

52 interpret vectorspace [V] by fact

53 have "f 0 = f (0 - 0)" by simp

54 also have "\<dots> = f 0 - f 0" using `vectorspace V` by (rule diff) simp_all

55 also have "\<dots> = 0" by simp

56 finally show ?thesis .

57 qed

59 end