"The birds fly."
날다 + 입니다 = drop ㄹ
Now it is 나+ 이 here 이 is weaker that ㅏ so ㅏ will remain and 이 will drop. So the last consonant will come under the first vowel.
So it is 납니다
The rule is really simple and straightforward, like most of the rules of Korean language :p. And it is as follows:
♥♥♥♥♥♥♥ The 'ㄹ' disappears from the verb stem when followed by 'ㅂ', 'ㄴ' or 'ㅅ'. ♥♥♥♥♥♥♥
날다 + ㅂ니다 = 납니다
날다 + 니? = 나니?
날다 + 세요 = 나세요
Another random examples: 놀다 -> 노십시오; 울다 -> 웁니다; 알다 -> 압니다; 만들다 -> 만듭니까? And it goes on and on...
This always works, with any verb ending with 'ㄹ' and with any suffix beginning with 'ㅂ', 'ㄴ' or 'ㅅ'. Please, write this down somewhere as it is really really helpful and important to remember.
I am sorry, but, with all due respect, your explaination makes completly no sense...
When you conjugate a verb to its formal polite form, you do add ㅂ니다 if the verb stem ends with a vowel or 습니다 if it ends with a consonant.
You do NOT add '입니다', which is already a separate conjugated verb (이다 - to be). And the process of disappearing vowels (or vowel 아 taking place of the vowel 이 because it is 'stronger' or something) which you described... well... it simply doesn't exist :(
I thought that 들 can be used only when you talk about people. Why does this sentence says 새들이 then?