In sitemap there was page `a.html` which has some PageRank. 
Now `a.html` is redirecting to `b.html` using `301` and sitemap has `b.html` entry, `a.html` is removed.

Queries are:

1. As `a.html` is not is sitemap then how search engines understand `301` redirection of `a.html` to `b.html` and add PageRank of `a.html` to`b.html`
2. Will search engines still crawl `a.html`?  How much longer? 
3. Is it necessary for the sitemap to have both entries: `a.html` and `b.html` for some time so search engines resolve query 1 as mentioned above?