Is the above sentence grammatically correct?
Answer
This is an example that covers three different points of English grammar which we need to look at separately.
First, to look at the tenses, consider a different sentence that avoids the second and third issues:
If we have not wasted our time we would be in better shape today.
Have implies something that could potentially occur at any time up to the present and so can only affect things in the future. Thus we can say
If we have not wasted our time we will be in better shape tomorrow.
or
If we had not wasted our time we would be in better shape today.
So the tenses are syntactically correct but not semantically correct.
Next comes the replacement of the if clause with inversion:
Had we not wasted our time we would be in better shape today.
This is perfectly standard but opinions will differ as to which is better or more common in any given register, dialect or time period.
Thirdly there is the question of whether we can contract when this requires a change of word order:
Had we not – > hadn’t we
This is perfectly standard by itself (for example, in a question) but combined with the less common example of inversion you end up with a very strange-sounding, if perfectly correct, sentence. Since it is a principle of good English that you should not require the reader to do mental gymnastics to work out what you mean I would stick with
Had we not wasted our time we would be in better shape today.
Attribution
Source : Link , Question Author : jdrake , Answer Author : David Robinson