src/HOL/Library/BigO.thy
changeset 21404 eb85850d3eb7
parent 19736 d8d0f8f51d69
child 22665 cf152ff55d16
equal deleted inserted replaced
21403:dd58f13a8eb4 21404:eb85850d3eb7
    37 *}
    37 *}
    38 
    38 
    39 subsection {* Definitions *}
    39 subsection {* Definitions *}
    40 
    40 
    41 definition
    41 definition
    42   bigo :: "('a => 'b::ordered_idom) => ('a => 'b) set"    ("(1O'(_'))")
    42   bigo :: "('a => 'b::ordered_idom) => ('a => 'b) set"  ("(1O'(_'))") where
    43   "O(f::('a => 'b)) =
    43   "O(f::('a => 'b)) =
    44       {h. EX c. ALL x. abs (h x) <= c * abs (f x)}"
    44       {h. EX c. ALL x. abs (h x) <= c * abs (f x)}"
    45 
    45 
    46 lemma bigo_pos_const: "(EX (c::'a::ordered_idom). 
    46 lemma bigo_pos_const: "(EX (c::'a::ordered_idom). 
    47     ALL x. (abs (h x)) <= (c * (abs (f x))))
    47     ALL x. (abs (h x)) <= (c * (abs (f x))))
   734 
   734 
   735 subsection {* Less than or equal to *}
   735 subsection {* Less than or equal to *}
   736 
   736 
   737 definition
   737 definition
   738   lesso :: "('a => 'b::ordered_idom) => ('a => 'b) => ('a => 'b)"
   738   lesso :: "('a => 'b::ordered_idom) => ('a => 'b) => ('a => 'b)"
   739       (infixl "<o" 70)
   739     (infixl "<o" 70) where
   740   "f <o g = (%x. max (f x - g x) 0)"
   740   "f <o g = (%x. max (f x - g x) 0)"
   741 
   741 
   742 lemma bigo_lesseq1: "f =o O(h) ==> ALL x. abs (g x) <= abs (f x) ==>
   742 lemma bigo_lesseq1: "f =o O(h) ==> ALL x. abs (g x) <= abs (f x) ==>
   743     g =o O(h)"
   743     g =o O(h)"
   744   apply (unfold bigo_def)
   744   apply (unfold bigo_def)