should have done の have は何者か — 助動詞+have+過去分詞のからくり
入試対策講座 第2回
You should have called me.(電話してくれればよかったのに)。この have は現在完了ではありません。助動詞のあとに have+過去分詞を置くと、話し手の視線だけが過去へすっと引き戻される——その仕組みを should / must / may / cannot の4つでまとめて押さえる。
監修:原田高志(原田英語.com)
今日のテーマは「後悔・推量」の英語です。「あのとき電話してくれてれば」「彼は疲れていたに違いない」——過去のことを、いまの視点からあれこれ言う言い方。日本語だと自然にできますが、英語ではこれを「助動詞+have+過去分詞」という不思議な形で表します。この have、じつは現在完了とは別物。何者なのかをはっきりさせれば、should have done も must have done も一気に見え方が変わります。
音で学ぶ
ネイティブ音声で、聞く・くり返す・訳を確かめる。全部この場でできます。
速さ・和訳・練習の設定
読む速さ
聞き取れないときは 0.75x へ。音はそのまま、速さだけ変わります
和訳
ふだんは英文だけ。1文ずつ確かめたいときは、その文の「和訳」を押すと、そこだけ開きます
シャドーイング
オンにして文を押すと、同じ1文を3回くり返します。あいだの無音で、自分の口を動かしてください
助動詞+have+過去分詞
S + 助動詞 + have + 過去分詞 〜.(=話し手のいまの視点から、過去についての推量/後悔/非難を述べる)
「助動詞+have+過去分詞」の have は現在完了ではありません。ここが最大の入口です。
助動詞(should / must / may / cannot など)は、そもそも時制を持てない特別な動詞です。だから「過去のことを推量したい・後悔したい」と思ったとき、英語は助動詞そのものを過去形にする道を取れませんでした。代わりに使われたのが、後ろに have+過去分詞を貼り付けるという発明です。この have は「完了」ではなく、時間の目盛りだけを過去にひとつ動かすためのレバーとして働きます。
しくみが同じですから、意味も4つがきれいに並びます。
- ① should have done:〜すべきだったのに(しなかった)/〜すればよかった。過去の後悔・非難
- ② must have done:〜したに違いない。過去への強い推量(今の証拠から確信)
- ③ cannot have done:〜したはずがない。過去への強い否定的推量
- ④ may / might have done:〜したかもしれない。過去への弱い推量
並べてみるとよくわかります。助動詞の部分が「話し手の気持ちの強さ」を決め、have+過去分詞が「その気持ちの向く先を過去に振る」。この2階建て構造こそが、この文法の正体です。
もうひとつだけ加えます。need not have done は「〜する必要はなかったのに(実際はしてしまった)」。didn't need to do(する必要がなかった=しなかった)とは意味がまったく違うので、2つを混ぜないこと。この対比は毎年どこかの入試で問われます。
ここでつまずく
最大の罠は「must not have done で『〜したはずがない』」と書いてしまう誤りです。正しくは cannot have done。must not have done は「〜しなかったに違いない」(過去に「しなかった」と確信している)で、意味が180度変わります。もうひとつ、should have done を「〜すべきだった」と訳してから、「じゃあ実際にはやったのか、やっていないのか」を確かめずに次へ行かないこと。この形は必ず「実際にはやっていない」の含みを持ちます。長文の指示語問題で、この含みを取れているかが問われます。
例文で確かめる
You should have called me before coming over.
こっちに来る前に電話してくれればよかったのに。
後悔・軽い非難。実際には電話しなかったことを含む。
The road is wet. It must have rained during the night.
道が濡れている。夜のあいだに雨が降ったに違いない。
いまの証拠(濡れた道)から、過去の出来事を強く推量。
She cannot have seen the message — her phone was off all evening.
彼女がそのメッセージを見たはずがない。夜のあいだ電源が切れていたのだから。
「〜のはずがない」は cannot have done。must not have done ではない。
He may have missed the train because of the storm.
彼は嵐のせいで電車に乗り遅れたのかもしれない。
may / might have done は弱い推量。might のほうがさらに控えめ。
You need not have brought an umbrella — the rain stopped an hour ago.
傘を持ってこなくてよかったのに——雨は1時間前に止んだよ。
実際には傘を持ってきてしまった、の含み。didn't need to bring とは違う。
確認クイズ
-
Q1. 空所に入る最も適切な語句を選びなさい。 I'm so sorry — I ( ) called you last night, but I completely forgot.
-
Q2. 次の文と最も意味が近いものを選びなさい。 He cannot have written this essay by himself.
-
Q3. 下線部の意味として最も適切なものを選びなさい。 You need not have waited for me. I was working late anyway.
よくある質問
should have done は「〜すべきだった」と訳す本と「〜すればよかった」と訳す本があります。どちらが正しいですか?
どちらも正解です。中立に義務違反を語るなら「〜すべきだったのに(しなかった)」、話し手の悔いを前に出すなら「〜すればよかった」。文脈で選んでください。共通しているのは「過去にそうしなかった」という事実で、この含みが should have done の核心です。逆に言えば、実際にそうした場合には使えません。
must have done と cannot have done は必ずセットで覚えるようにと言われました。なぜですか?
この2つは「過去の推量」のペアで、確信の方向が正反対だからです。must have done は「〜だったに違いない(=きっとそうだった)」、cannot have done は「〜だったはずがない(=きっとそうではなかった)」。「過去の否定的推量は not have done ではなく cannot have done」——ここが入試の急所です。ふつうの否定 must not have done は「〜しなかったに違いない」の意味で、まったく別物になります。