equal
deleted
inserted
replaced
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) |