文法 / 仮定法

仮定法過去完了

要点整理

仮定法過去完了の基本形

仮定法過去(現在の事実に反する仮定)に対して、過去の事実に反することを仮定するときに使うのが仮定法過去完了です。

If S + had + 過去分詞, S + would(could/might) have + 過去分詞.

If I had studied harder, I would have passed the exam.(もしもっと一生懸命勉強していたら、試験に合格していただろうに。)

この文は、「実際には一生懸命勉強しなかったので、試験に合格しなかった」という、過去の事実の裏返しを表しています。If節はhad studied(過去完了)、主節はwould have passed(would have + 過去分詞)という形になる点に注意しましょう。

仮定法過去との時制の違いを整理する

仮定法過去と仮定法過去完了は、形が似ているため混同しやすいポイントです。次の対応を整理して覚えましょう。

仮定の内容 If節 主節
現在の事実に反する(仮定法過去) 過去形 would/could/might + 原形
過去の事実に反する(仮定法過去完了) had + 過去分詞 would/could/might + have + 過去分詞

If I were you, I would apologize to her.(もし私があなたなら、彼女に謝るだろう。=仮定法過去、現在の事実に反する) If I had been you, I would have apologized to her.(もし私があなただったら、彼女に謝っていただろう。=仮定法過去完了、過去の事実に反する)

混合型の仮定法

If節が過去の事実に反する仮定(had + 過去分詞)であっても、主節がその結果として現在に及ぶ場合は、主節に過去形の助動詞(wouldなど)+ 原形を使うことがあります。これを混合型の仮定法と呼びます。

If I had taken that job offer, I would be living in New York now.(もしあの仕事のオファーを受けていたら、私は今頃ニューヨークに住んでいるだろう。)

If節は過去(あのとき仕事を受けなかった)、主節は now という現在を表す語があるため、would be living(現在のことを表す形)になっています。

仮定法未来にも軽く触れておく

実現の可能性が非常に低い、あるいはまずありえない未来のことを仮定する場合には、If S should + 原形、If S were to + 原形という形を使うことがあります(仮定法未来)。

If the sun were to rise in the west, I would believe you.(もし太陽が西から昇るようなことがあれば、あなたを信じるだろう。=実際にはまずありえないこと)

例題

例題1(基本)

問題

次の( )内の動詞を適切な形に直せ。

If he ( leave ) home earlier, he would have caught the train.

解答・解説を見る

主節が would have caught(would have + 過去分詞)になっているので、過去の事実に反する仮定法過去完了だとわかります。If節はhad + 過去分詞にする必要があるので、leave を had left にします。

答え:had left(If he had left home earlier, he would have caught the train. もし彼がもっと早く家を出ていたら、電車に間に合っていただろうに。)

例題2(標準)

問題

次の日本語を、仮定法過去完了を使って英語に直せ。「もしあの事故がなかったら、彼は今も生きていただろう。」

解答・解説を見る

「あの事故がなかったら」は過去の事実に反する仮定なのでIf節はhad + 過去分詞にします。「今も生きていただろう」は現在の結果を表すので、主節はwould + 原形(仮定法過去の形)を使う混合型になります。

答え:If that accident had not happened, he would be alive now.

例題3(応用)

問題

次の英文を日本語に訳し、この文が仮定法過去と仮定法過去完了のどちらであるかを説明せよ。

If she had followed the doctor's advice, she wouldn't be suffering from this illness now.

解答・解説を見る

If節が had followed(過去完了)になっているので、「過去に医者の助言に従わなかった」という過去の事実に反する仮定を表しています。一方、主節は wouldn't be suffering(would + 原形の進行形)で、now という語があることからもわかるように、その結果が現在にまで及んでいることを表す混合型の仮定法です。

答え:「もし彼女が医者の助言に従っていたら、今この病気で苦しんでいないだろうに。」(If節は仮定法過去完了、主節は現在の結果を表す混合型。)

確認問題

問題

次の( )内の語句を適切な形に直せ。

If they ( not / make ) that mistake, the project would have succeeded.

答え

had not made(If they had not made that mistake, the project would have succeeded. もし彼らがあの間違いを犯していなかったら、そのプロジェクトは成功していただろうに。)