なぜ、canではなく、couldが使われているのでしょうか? また、ここでのhaveは、どういう意味でしょうか?
⇒ "You [couldn't have finished] your homework last night."([仮定法過去完了]) の省略形と考えればいいと思います。
〇can't have finished:終わったはずがない ※断定している
〇couldn't have finished:終わったはずがないでしょう ※助動詞の過去形(would/could/might)は表現を丁寧に、柔らかくなる
例:Can you do it? それやってくれる? / Could you do it? それをやっていただけますか?
会話の訳例:
「昨日の晩、宿題終わったよ。」
「そんなことないだろう。300ページ程の読みと小論だよ。」
参考にしてください。