src/HOL/Hyperreal/SEQ.thy
changeset 21404 eb85850d3eb7
parent 21139 c957e02e7a36
child 21810 b2d23672b003
equal deleted inserted replaced
21403:dd58f13a8eb4 21404:eb85850d3eb7
    11 theory SEQ
    11 theory SEQ
    12 imports NatStar
    12 imports NatStar
    13 begin
    13 begin
    14 
    14 
    15 definition
    15 definition
    16 
       
    17   LIMSEQ :: "[nat => 'a::real_normed_vector, 'a] => bool"
    16   LIMSEQ :: "[nat => 'a::real_normed_vector, 'a] => bool"
    18     ("((_)/ ----> (_))" [60, 60] 60)
    17     ("((_)/ ----> (_))" [60, 60] 60) where
    19     --{*Standard definition of convergence of sequence*}
    18     --{*Standard definition of convergence of sequence*}
    20   "X ----> L = (\<forall>r. 0 < r --> (\<exists>no. \<forall>n. no \<le> n --> norm (X n - L) < r))"
    19   "X ----> L = (\<forall>r. 0 < r --> (\<exists>no. \<forall>n. no \<le> n --> norm (X n - L) < r))"
    21 
    20 
       
    21 definition
    22   NSLIMSEQ :: "[nat => 'a::real_normed_vector, 'a] => bool"
    22   NSLIMSEQ :: "[nat => 'a::real_normed_vector, 'a] => bool"
    23     ("((_)/ ----NS> (_))" [60, 60] 60)
    23     ("((_)/ ----NS> (_))" [60, 60] 60) where
    24     --{*Nonstandard definition of convergence of sequence*}
    24     --{*Nonstandard definition of convergence of sequence*}
    25   "X ----NS> L = (\<forall>N \<in> HNatInfinite. ( *f* X) N \<approx> star_of L)"
    25   "X ----NS> L = (\<forall>N \<in> HNatInfinite. ( *f* X) N \<approx> star_of L)"
    26 
    26 
    27   lim :: "(nat => 'a::real_normed_vector) => 'a"
    27 definition
       
    28   lim :: "(nat => 'a::real_normed_vector) => 'a" where
    28     --{*Standard definition of limit using choice operator*}
    29     --{*Standard definition of limit using choice operator*}
    29   "lim X = (THE L. X ----> L)"
    30   "lim X = (THE L. X ----> L)"
    30 
    31 
    31   nslim :: "(nat => 'a::real_normed_vector) => 'a"
    32 definition
       
    33   nslim :: "(nat => 'a::real_normed_vector) => 'a" where
    32     --{*Nonstandard definition of limit using choice operator*}
    34     --{*Nonstandard definition of limit using choice operator*}
    33   "nslim X = (THE L. X ----NS> L)"
    35   "nslim X = (THE L. X ----NS> L)"
    34 
    36 
    35   convergent :: "(nat => 'a::real_normed_vector) => bool"
    37 definition
       
    38   convergent :: "(nat => 'a::real_normed_vector) => bool" where
    36     --{*Standard definition of convergence*}
    39     --{*Standard definition of convergence*}
    37   "convergent X = (\<exists>L. X ----> L)"
    40   "convergent X = (\<exists>L. X ----> L)"
    38 
    41 
    39   NSconvergent :: "(nat => 'a::real_normed_vector) => bool"
    42 definition
       
    43   NSconvergent :: "(nat => 'a::real_normed_vector) => bool" where
    40     --{*Nonstandard definition of convergence*}
    44     --{*Nonstandard definition of convergence*}
    41   "NSconvergent X = (\<exists>L. X ----NS> L)"
    45   "NSconvergent X = (\<exists>L. X ----NS> L)"
    42 
    46 
    43   Bseq :: "(nat => 'a::real_normed_vector) => bool"
    47 definition
       
    48   Bseq :: "(nat => 'a::real_normed_vector) => bool" where
    44     --{*Standard definition for bounded sequence*}
    49     --{*Standard definition for bounded sequence*}
    45   "Bseq X = (\<exists>K>0.\<forall>n. norm (X n) \<le> K)"
    50   "Bseq X = (\<exists>K>0.\<forall>n. norm (X n) \<le> K)"
    46 
    51 
    47   NSBseq :: "(nat => 'a::real_normed_vector) => bool"
    52 definition
       
    53   NSBseq :: "(nat => 'a::real_normed_vector) => bool" where
    48     --{*Nonstandard definition for bounded sequence*}
    54     --{*Nonstandard definition for bounded sequence*}
    49   "NSBseq X = (\<forall>N \<in> HNatInfinite. ( *f* X) N : HFinite)"
    55   "NSBseq X = (\<forall>N \<in> HNatInfinite. ( *f* X) N : HFinite)"
    50 
    56 
    51   monoseq :: "(nat=>real)=>bool"
    57 definition
       
    58   monoseq :: "(nat=>real)=>bool" where
    52     --{*Definition for monotonicity*}
    59     --{*Definition for monotonicity*}
    53   "monoseq X = ((\<forall>m. \<forall>n\<ge>m. X m \<le> X n) | (\<forall>m. \<forall>n\<ge>m. X n \<le> X m))"
    60   "monoseq X = ((\<forall>m. \<forall>n\<ge>m. X m \<le> X n) | (\<forall>m. \<forall>n\<ge>m. X n \<le> X m))"
    54 
    61 
    55   subseq :: "(nat => nat) => bool"
    62 definition
       
    63   subseq :: "(nat => nat) => bool" where
    56     --{*Definition of subsequence*}
    64     --{*Definition of subsequence*}
    57   "subseq f = (\<forall>m. \<forall>n>m. (f m) < (f n))"
    65   "subseq f = (\<forall>m. \<forall>n>m. (f m) < (f n))"
    58 
    66 
    59   Cauchy :: "(nat => 'a::real_normed_vector) => bool"
    67 definition
       
    68   Cauchy :: "(nat => 'a::real_normed_vector) => bool" where
    60     --{*Standard definition of the Cauchy condition*}
    69     --{*Standard definition of the Cauchy condition*}
    61   "Cauchy X = (\<forall>e>0. \<exists>M. \<forall>m \<ge> M. \<forall>n \<ge> M. norm (X m - X n) < e)"
    70   "Cauchy X = (\<forall>e>0. \<exists>M. \<forall>m \<ge> M. \<forall>n \<ge> M. norm (X m - X n) < e)"
    62 
    71 
    63   NSCauchy :: "(nat => 'a::real_normed_vector) => bool"
    72 definition
       
    73   NSCauchy :: "(nat => 'a::real_normed_vector) => bool" where
    64     --{*Nonstandard definition*}
    74     --{*Nonstandard definition*}
    65   "NSCauchy X = (\<forall>M \<in> HNatInfinite. \<forall>N \<in> HNatInfinite. ( *f* X) M \<approx> ( *f* X) N)"
    75   "NSCauchy X = (\<forall>M \<in> HNatInfinite. \<forall>N \<in> HNatInfinite. ( *f* X) M \<approx> ( *f* X) N)"
    66 
    76 
    67 
    77 
    68 subsection {* Limits of Sequences *}
    78 subsection {* Limits of Sequences *}