第3章 助動詞

助動詞 + have done
─ 「今の判断」で「過去」を振り返る

「あの時〜だったに違いない」「〜すべきだった」── こうした表現はすべて「助動詞 + have + 過去分詞」の形で作ります。
助動詞が「今の判断」を、have done が「過去の出来事」を担当する、いわば時間をまたぐ表現です。
入試最頻出パターンの1つであり、正確な使い分けが得点に直結します。

1助動詞 + have + 過去分詞の仕組み

英語の助動詞は、基本的に「今」の気持ちや判断を表します。 can は「(今)できる」、must は「(今)〜に違いない」、should は「(今)〜すべきだ」。 いずれも発話時点での判断です。

では、「あの時〜だったに違いない」「あの時〜すべきだった」のように、 過去のことについて今から判断を下したいときはどうすればよいでしょうか。 そこで登場するのが助動詞 + have + 過去分詞の形です。

💡 ここが本質:助動詞(今の判断)+ have done(過去の出来事)

助動詞:話し手の「今の判断」を担当(〜に違いない/〜かもしれない/〜すべきだ)

have + 過去分詞:「過去の出来事」を担当(〜した/〜だった)

この2つが合体して、「今から過去を振り返って判断する」表現になります。

助動詞の後ろには動詞の原形が来るので、have(原形)+ 過去分詞という形になります。had ではありません。

🧠 ネイティブの感覚:「今のレンズ」で「過去」を見る

ネイティブにとって、この構文のイメージは「今ここに立って、過去を振り返り、判断を下す」というものです。

must have done なら「(今振り返ると)あれは〜だったに違いない」。判断しているのは「今」、対象になっているのは「過去」。

この時間のずれを意識すると、すべてのパターンが統一的に理解できます。

助動詞 現在への判断 過去への判断(+ have done)
must 〜に違いない 〜だったに違いない
cannot 〜のはずがない 〜だったはずがない
may / might 〜かもしれない 〜だったかもしれない
should 〜すべきだ 〜すべきだった(のにしなかった)
need not 〜する必要はない 〜する必要はなかった(のにした)

2must have done / cannot have done

must have donecannot have done は、 過去の出来事に対する確信度の高い推量を表します。 must が「〜に違いない(強い肯定)」、cannot が「〜のはずがない(強い否定)」── この対比を押さえましょう。

📏 文法ルール:must have done / cannot have done

must have + 過去分詞:「〜だったに違いない」(過去の出来事への強い肯定的推量)

cannot [can't] have + 過去分詞:「〜だったはずがない」(過去の出来事への強い否定的推量)

※ must の否定は must not have done ではなく cannot have done を使う。
※ 「〜だったに違いない」の反対は「〜しなかったに違いない」ではなく「〜だったはずがない」。
📝 例文で確認
She must have been busy yesterday.
彼女は昨日忙しかったに違いない。
He can't have said such a thing.
彼がそんなことを言ったはずがない。
The road is wet. It must have rained last night.
道路が濡れている。昨夜雨が降ったに違いない。
⚠️ 落とし穴:must have done と must do の混同

must do は義務(〜しなければならない)と現在の推量(〜に違いない)の2つの意味をもちます。

一方、must have done は過去の推量(〜だったに違いない)のみで、義務の意味はありません。

✕ 誤解:He must have finished it. =「彼はそれを終えなければならなかった」

○ 正:He must have finished it. =「彼はそれを終えたに違いない」

3may have done / might have done

may have done / might have done は、 過去の出来事に対する不確かな推量(「〜だったかもしれない」)を表します。 must have done が「確信」なら、may/might have done は「可能性」です。

📏 文法ルール:may / might have done

may have + 過去分詞:「〜だったかもしれない」(過去の出来事への不確かな推量)

might have + 過去分詞:「〜だったかもしれない」(may よりやや控え目・不確か)

※ may と might の意味の差は小さい。might のほうがやや可能性が低い、あるいは丁寧というニュアンス。
※ 否定形は may not have done(〜しなかったかもしれない)。
📝 例文で確認
He may have missed the train.
彼は電車に乗り遅れたかもしれない。
She might have forgotten about our appointment.
彼女は私たちの約束を忘れていたかもしれない。
You may not have noticed, but the rules have changed.
気づかなかったかもしれないが、ルールが変わった。
🔬 ワンポイント:推量の確信度を整理する

過去の出来事への推量を確信度順に並べると、次のようになります。

must have done(〜だったに違いない)> may have done(〜だったかもしれない)> might have done(〜だったかもしれない ※やや弱い)

否定の推量は cannot have done(〜だったはずがない)が最も強い確信を表します。

4should have done / ought to have done

should have done / ought to have done は、 「〜すべきだった(のにしなかった)」と、過去の行為への後悔・非難を表します。 「あるべき姿」と「実際の行動」にギャップがあったことを示す表現です。

📏 文法ルール:should have done / ought to have done

should have + 過去分詞:「〜すべきだった(のにしなかった)」

ought to have + 過去分詞:should have done とほぼ同義

should not have + 過去分詞:「〜すべきではなかった(のにしてしまった)」

※ 肯定形は「しなかった後悔」、否定形は「してしまった後悔」を表す。
※ ought to have done は入試では読解で出ることが多い。英作文では should have done が一般的。
🧠 ネイティブの感覚:「あるべき姿」と「実際」のギャップ

should は本来「〜すべきだ」「〜するのが当然だ」という理想・期待を表す助動詞です。

should have done は、「理想としては〜するべきだった」のに「実際にはしなかった」── このギャップを表します。

だからこそ、後悔(自分に対して)や非難(相手に対して)のニュアンスが生まれるのです。

📝 例文で確認
You should have told me earlier.
もっと早く教えてくれるべきだった。(実際には教えてくれなかった → 非難)
I should have studied harder for the test.
もっと一生懸命勉強すべきだった。(実際にはしなかった → 後悔)
He should not have said that to her.
彼は彼女にそんなことを言うべきではなかった。(実際には言ってしまった → 非難)
She ought to have apologized to him.
彼女は彼に謝るべきだった。(実際には謝らなかった)

5need not have done

need not have done は、「〜する必要はなかった(のに実際にはしてしまった)」を表します。 「余計なことをしてしまった」「やらなくてよかったのに」という気持ちを表す表現です。

📏 文法ルール:need not have done

need not have + 過去分詞:「〜する必要はなかった(のに実際にはした)」

※ この need は助動詞用法。三単現の -s がつかず、後ろに動詞の原形がくる。
※ 実際にその行為をした点がポイント。やったけれど、やる必要はなかった。
📝 例文で確認
You need not have bought so much food.
そんなにたくさん食べ物を買う必要はなかったのに。(実際に買ってしまった)
She need not have hurried; there was plenty of time.
彼女は急ぐ必要はなかった。時間は十分あったのだから。(実際に急いだ)
⚠️ 落とし穴:need not have done vs didn't need to do

この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.(待つ必要はなかった ※実際に待ったかどうかはこの文からは分からない)

入試では「実際にしたのかどうか」を問う問題が頻出です。

6つながりマップ

助動詞 + have done を学んだら、次のトピックへ進みましょう。

  • → G-3-2 must の用法:must の義務(〜しなければならない)と推量(〜に違いない)を基本から学ぶ。must have done は推量用法の「過去版」です。
  • → G-3-6 should の用法:should の「〜すべきだ」「〜のはずだ」を整理。should have done は「すべきだった」の形です。
  • → G-10 仮定法:仮定法過去完了の主節で使う would have done / could have done との違いを確認しておきましょう。仮定法は if節あり、本記事の助動詞 + have done は if節なしの「単独判断」です。
  • → G-3-9 助動詞のまとめ:助動詞全体の体系を俯瞰し、それぞれの have done 形がどの位置にあるかを確認できます。

📋まとめ

  • 助動詞 + have done = 助動詞(今の判断)+ have + 過去分詞(過去の出来事)で「今から過去を振り返って判断する」
  • must have done:「〜だったに違いない」── 過去への強い肯定的推量
  • cannot have done:「〜だったはずがない」── 過去への強い否定的推量(must have done の否定)
  • may / might have done:「〜だったかもしれない」── 過去への不確かな推量
  • should have done:「〜すべきだった(のにしなかった)」── 後悔・非難
  • need not have done:「〜する必要はなかった(のにした)」── didn't need to do との違いに注意

確認テスト

Q1. 「助動詞 + have + 過去分詞」の構文で、助動詞が担当する役割と have done が担当する役割をそれぞれ説明してください。

▶ クリックして解答を表示助動詞 =「今の判断」を担当(〜に違いない/〜かもしれない/〜すべきだ など)。have done =「過去の出来事」を担当。2つが合体して「今から過去を振り返って判断する」表現になる。

Q2. must have done の否定表現(「〜だったはずがない」)は何ですか。

▶ クリックして解答を表示cannot [can't] have done。must not have done ではなく cannot have done を使う。must have done(強い肯定推量)↔ cannot have done(強い否定推量)の対比を押さえる。

Q3. should have done は「〜すべきだった」ですが、実際にはどうだったのですか。

▶ クリックして解答を表示実際にはしなかった。「すべきだったのにしなかった」→ 後悔・非難のニュアンス。否定の should not have done は「すべきではなかったのにしてしまった」。

Q4. need not have done と didn't need to do の違いを説明してください。

▶ クリックして解答を表示need not have done は「する必要はなかったのに実際にした」。didn't need to do は「する必要はなかった」で、実際にしたかどうかは不明。前者は「やったけど無駄だった」、後者は行為の有無に言及していない。

9入試問題演習

この記事で学んだ内容を、入試形式の問題で確認しましょう。

A 基礎レベル

3-10-1 A 基礎 must have done 空所補充

The ground is wet. It (  ) last night.

  • ① must rain
  • ② must have rained
  • ③ must be raining
  • ④ must have been raining
▶ クリックして解答・解説を表示
解答

② must have rained

解説

判断のポイント:last night(昨夜)という過去を示す語句があるので、過去への推量 must have done の形が必要です。

① must rain は現在への推量。③ must be raining は現在進行中の推量。④ must have been raining は過去の進行中の推量で文法的には可能ですが、「昨夜雨が降った」という完了した事実を推量する文脈では ② が最適です。

「地面が濡れている。昨夜雨が降ったに違いない。」

B 発展レベル

3-10-2 B 発展 should have done 空所補充

You (  ) your homework before going out to play.

  • ① should finish
  • ② should have finished
  • ③ must have finished
  • ④ need not have finished
▶ クリックして解答・解説を表示
解答

② should have finished

解説

判断のポイント:before going out to play(遊びに行く前に)という文脈から、「宿題を終えるべきだった(のに終えなかった)」という後悔・非難の意味が適切です。

② should have finished で「終えるべきだった」。① should finish は「今終えるべきだ」で時制が合わない。③ must have finished は「終えたに違いない」で意味が不適。④ need not have finished は「終える必要はなかった」で文脈に合いません。

「遊びに出かける前に宿題を終えるべきだった。」

C 応用レベル

3-10-3 C 応用 need not have done 書き換え

次の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 です。

「彼女はそんなに早く来る必要はなかったのに。(実際には来てしまった)」

得点の差がつくポイント
  • need not have done(実際にした)と didn't need to do(したかどうか不明)の区別が問われている
  • 元の文の "but she did" が「実際にした」ことを示す決定的なヒント