src/HOL/Complex/CLim.thy
author paulson
Mon, 12 May 2003 18:11:44 +0200
changeset 14020 5fc9474833e5
parent 13957 10dbf16be15f
child 14405 534de3572a65
permissions -rw-r--r--
oops
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
13957
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
     1
(*  Title       : CLim.thy
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
     2
    Author      : Jacques D. Fleuriot
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
     3
    Copyright   : 2001 University of Edinburgh
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
     4
    Description : A first theory of limits, continuity and 
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
     5
                  differentiation for complex functions
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
     6
*)
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
     7
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
     8
CLim = CSeries + 
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
     9
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    10
constdefs
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    11
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    12
  CLIM :: [complex=>complex,complex,complex] => bool
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    13
				("((_)/ -- (_)/ --C> (_))" [60, 0, 60] 60)
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    14
  "f -- a --C> L ==
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    15
     ALL r. 0 < r --> 
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    16
	     (EX s. 0 < s & (ALL x. (x ~= a & (cmod(x - a) < s)
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    17
			  --> cmod(f x - L) < r)))"
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    18
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    19
  NSCLIM :: [complex=>complex,complex,complex] => bool
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    20
			      ("((_)/ -- (_)/ --NSC> (_))" [60, 0, 60] 60)
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    21
  "f -- a --NSC> L == (ALL x. (x ~= hcomplex_of_complex a & 
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    22
           		         x @c= hcomplex_of_complex a 
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    23
                                   --> ( *fc* f) x @c= hcomplex_of_complex L))"   
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    24
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    25
  (* f: C --> R *)
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    26
  CRLIM :: [complex=>real,complex,real] => bool
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    27
				("((_)/ -- (_)/ --CR> (_))" [60, 0, 60] 60)
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    28
  "f -- a --CR> L ==
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    29
     ALL r. 0 < r --> 
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    30
	     (EX s. 0 < s & (ALL x. (x ~= a & (cmod(x - a) < s)
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    31
			  --> abs(f x - L) < r)))"
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    32
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    33
  NSCRLIM :: [complex=>real,complex,real] => bool
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    34
			      ("((_)/ -- (_)/ --NSCR> (_))" [60, 0, 60] 60)
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    35
  "f -- a --NSCR> L == (ALL x. (x ~= hcomplex_of_complex a & 
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    36
           		         x @c= hcomplex_of_complex a 
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    37
                                   --> ( *fcR* f) x @= hypreal_of_real L))"   
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    38
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    39
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    40
  isContc :: [complex=>complex,complex] => bool
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    41
  "isContc f a == (f -- a --C> (f a))"        
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    42
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    43
  (* NS definition dispenses with limit notions *)
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    44
  isNSContc :: [complex=>complex,complex] => bool
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    45
  "isNSContc f a == (ALL y. y @c= hcomplex_of_complex a --> 
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    46
			   ( *fc* f) y @c= hcomplex_of_complex (f a))"
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    47
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    48
  isContCR :: [complex=>real,complex] => bool
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    49
  "isContCR f a == (f -- a --CR> (f a))"        
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    50
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    51
  (* NS definition dispenses with limit notions *)
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    52
  isNSContCR :: [complex=>real,complex] => bool
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    53
  "isNSContCR f a == (ALL y. y @c= hcomplex_of_complex a --> 
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    54
			   ( *fcR* f) y @= hypreal_of_real (f a))"
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    55
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    56
  (* differentiation: D is derivative of function f at x *)
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    57
  cderiv:: [complex=>complex,complex,complex] => bool
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    58
			    ("(CDERIV (_)/ (_)/ :> (_))" [60, 0, 60] 60)
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    59
  "CDERIV f x :> D == ((%h. (f(x + h) - f(x))/h) -- 0 --C> D)"
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    60
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    61
  nscderiv :: [complex=>complex,complex,complex] => bool
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    62
			    ("(NSCDERIV (_)/ (_)/ :> (_))" [60, 0, 60] 60)
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    63
  "NSCDERIV f x :> D == (ALL h: CInfinitesimal - {0}. 
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    64
			      (( *fc* f)(hcomplex_of_complex x + h)
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    65
        			 - hcomplex_of_complex (f x))/h @c= hcomplex_of_complex D)"
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    66
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    67
  cdifferentiable :: [complex=>complex,complex] => bool   (infixl 60)
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    68
  "f cdifferentiable x == (EX D. CDERIV f x :> D)"
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    69
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    70
  NSCdifferentiable :: [complex=>complex,complex] => bool   (infixl 60)
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    71
  "f NSCdifferentiable x == (EX D. NSCDERIV f x :> D)"
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    72
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    73
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    74
  isUContc :: (complex=>complex) => bool
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    75
  "isUContc f ==  (ALL r. 0 < r --> 
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    76
		      (EX s. 0 < s & (ALL x y. cmod(x - y) < s
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    77
			    --> cmod(f x - f y) < r)))"
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    78
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    79
  isNSUContc :: (complex=>complex) => bool
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    80
  "isNSUContc f == (ALL x y. x @c= y --> ( *fc* f) x @c= ( *fc* f) y)"
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    81
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    82
end