「あの時〜だったに違いない」「〜すべきだった」── こうした表現はすべて「助動詞 + have + 過去分詞」の形で作ります。
助動詞が「今の判断」を、have done が「過去の出来事」を担当する、いわば時間をまたぐ表現です。
入試最頻出パターンの1つであり、正確な使い分けが得点に直結します。
英語の助動詞は、基本的に「今」の気持ちや判断を表します。 can は「(今)できる」、must は「(今)〜に違いない」、should は「(今)〜すべきだ」。 いずれも発話時点での判断です。
では、「あの時〜だったに違いない」「あの時〜すべきだった」のように、 過去のことについて今から判断を下したいときはどうすればよいでしょうか。 そこで登場するのが助動詞 + have + 過去分詞の形です。
助動詞:話し手の「今の判断」を担当(〜に違いない/〜かもしれない/〜すべきだ)
have + 過去分詞:「過去の出来事」を担当(〜した/〜だった)
この2つが合体して、「今から過去を振り返って判断する」表現になります。
助動詞の後ろには動詞の原形が来るので、have(原形)+ 過去分詞という形になります。had ではありません。
ネイティブにとって、この構文のイメージは「今ここに立って、過去を振り返り、判断を下す」というものです。
must have done なら「(今振り返ると)あれは〜だったに違いない」。判断しているのは「今」、対象になっているのは「過去」。
この時間のずれを意識すると、すべてのパターンが統一的に理解できます。
| 助動詞 | 現在への判断 | 過去への判断(+ have done) |
|---|---|---|
| must | 〜に違いない | 〜だったに違いない |
| cannot | 〜のはずがない | 〜だったはずがない |
| may / might | 〜かもしれない | 〜だったかもしれない |
| should | 〜すべきだ | 〜すべきだった(のにしなかった) |
| need not | 〜する必要はない | 〜する必要はなかった(のにした) |
must have done と cannot have done は、 過去の出来事に対する確信度の高い推量を表します。 must が「〜に違いない(強い肯定)」、cannot が「〜のはずがない(強い否定)」── この対比を押さえましょう。
must have + 過去分詞:「〜だったに違いない」(過去の出来事への強い肯定的推量)
cannot [can't] have + 過去分詞:「〜だったはずがない」(過去の出来事への強い否定的推量)
must do は義務(〜しなければならない)と現在の推量(〜に違いない)の2つの意味をもちます。
一方、must have done は過去の推量(〜だったに違いない)のみで、義務の意味はありません。
✕ 誤解:He must have finished it. =「彼はそれを終えなければならなかった」
○ 正:He must have finished it. =「彼はそれを終えたに違いない」
may have done / might have done は、 過去の出来事に対する不確かな推量(「〜だったかもしれない」)を表します。 must have done が「確信」なら、may/might have done は「可能性」です。
may have + 過去分詞:「〜だったかもしれない」(過去の出来事への不確かな推量)
might have + 過去分詞:「〜だったかもしれない」(may よりやや控え目・不確か)
過去の出来事への推量を確信度順に並べると、次のようになります。
must have done(〜だったに違いない)> may have done(〜だったかもしれない)> might have done(〜だったかもしれない ※やや弱い)
否定の推量は cannot have done(〜だったはずがない)が最も強い確信を表します。
should have done / ought to have done は、 「〜すべきだった(のにしなかった)」と、過去の行為への後悔・非難を表します。 「あるべき姿」と「実際の行動」にギャップがあったことを示す表現です。
should have + 過去分詞:「〜すべきだった(のにしなかった)」
ought to have + 過去分詞:should have done とほぼ同義
should not have + 過去分詞:「〜すべきではなかった(のにしてしまった)」
should は本来「〜すべきだ」「〜するのが当然だ」という理想・期待を表す助動詞です。
should have done は、「理想としては〜するべきだった」のに「実際にはしなかった」── このギャップを表します。
だからこそ、後悔(自分に対して)や非難(相手に対して)のニュアンスが生まれるのです。
need not have done は、「〜する必要はなかった(のに実際にはしてしまった)」を表します。 「余計なことをしてしまった」「やらなくてよかったのに」という気持ちを表す表現です。
need not have + 過去分詞:「〜する必要はなかった(のに実際にはした)」
この2つは日本語訳が似ていますが、実際に行為をしたかどうかが異なります。
need not have done(助動詞 need):する必要はなかった+実際にした
You need not have waited for me.(待つ必要はなかったのに、実際に待った)
didn't need to do(一般動詞 need):する必要はなかった+したかどうかは不明
You didn't need to wait for me.(待つ必要はなかった ※実際に待ったかどうかはこの文からは分からない)
入試では「実際にしたのかどうか」を問う問題が頻出です。
助動詞 + have done を学んだら、次のトピックへ進みましょう。
Q1. 「助動詞 + have + 過去分詞」の構文で、助動詞が担当する役割と have done が担当する役割をそれぞれ説明してください。
Q2. must have done の否定表現(「〜だったはずがない」)は何ですか。
Q3. should have done は「〜すべきだった」ですが、実際にはどうだったのですか。
Q4. need not have done と didn't need to do の違いを説明してください。
この記事で学んだ内容を、入試形式の問題で確認しましょう。
The ground is wet. It ( ) last night.
② must have rained
判断のポイント:last night(昨夜)という過去を示す語句があるので、過去への推量 must have done の形が必要です。
① must rain は現在への推量。③ must be raining は現在進行中の推量。④ must have been raining は過去の進行中の推量で文法的には可能ですが、「昨夜雨が降った」という完了した事実を推量する文脈では ② が最適です。
「地面が濡れている。昨夜雨が降ったに違いない。」
You ( ) your homework before going out to play.
② should have finished
判断のポイント:before going out to play(遊びに行く前に)という文脈から、「宿題を終えるべきだった(のに終えなかった)」という後悔・非難の意味が適切です。
② should have finished で「終えるべきだった」。① should finish は「今終えるべきだ」で時制が合わない。③ must have finished は「終えたに違いない」で意味が不適。④ need not have finished は「終える必要はなかった」で文脈に合いません。
「遊びに出かける前に宿題を終えるべきだった。」
次の2文がほぼ同じ意味になるように、空所に適語を入れなさい。
It was not necessary for her to come so early, but she did.
= She ( )( )( )( ) so early.
need not have come
判断のポイント:元の文は「そんなに早く来る必要はなかった、しかし実際に来た」という意味です。
「必要がなかったのに実際にした」を表す表現は need not have done です。didn't need to come でも「必要はなかった」は表せますが、「実際に来た(but she did)」を含意できるのは need not have come です。
「彼女はそんなに早く来る必要はなかったのに。(実際には来てしまった)」