Allen W. answered 09/05/23
MS in Computer Science and Engineering with 2 years TA experience
What do these asymptotic notations mean formally? Start by writing out what they actually tell you. As an example (using your notation)
Let c be a real number with c>0. Since f(n)=Ω(g(n)) we know that there is a natural number n0 such that for all n>n0 , f(n) > c • g(n)
Now let's do the same for the consequents. First, what does it mean if f(n)=O(g(n))? It means that there exists constants c1 and n1 such that for all n>n1, f(n)≤c1•g(n)
Also if f(n)=o(g(n)) then for every real number c2>0 there is a natural number n2 such that for all n>n2 f(n)<c2•g(n)
We want to prove that if f=ω(g)) then f≠O(g) and f≠o(g). The easiest way to start is to prove a lemma 1 that if f≠O(g) then f≠o(g). We will prove the contrapositive.
Let f=o(g) and let c=1. Since f=o(g) there is a natural number n0 such that for all n>n0 f(n)<c•g(n). Then for this same n0 and c we have for all n>n0 f(n)≤c•g(n), so f=O(g) as required.
Then it is enough for us to prove that if f(n)=ω(g(n)) then f(n)≠O(g(n)). Let's proceed by contradiction.
Suppose f(n)=ω(g(n)) and f(n)=O(g(n)). Since f(n)=O(g(n)) there exist constants c and n0 such that for n>n0, f(n)≤c•g(n). Since f(n)=ω(g(n)) for that same value of c there exists a natural number n1 such that for n>n1 f(n)>c•g(n). Now let n2 = max(n0,n1) then for n>n2, f(n)>c•g(n) and f(n)≤c•g(n). This is our contradiction and we can conclude that if f(n)=ω(g(n)) then f(n)≠O(g(n)). After applying Lemma 1 we reach our desired conclusion: if f(n)=ω(g(n)) then f(n)≠O(g(n)) and f(n)≠o(g(n))