英語の仮定法(subjunctive)は、中英語期以前までは、現在・過去のいずれの時制でも現れ、それぞれ固有の語形変化をもっていたのですが、現代では仮定法自体やや特殊な用法となっています。"if"などを用いた条件節(conditional clause)内においては一般動詞を過去形に、be動詞の場合は"were"にすることによって法を表現し(現在では主語が"you"以外の単数の場合"was"が用いられることもある)、条件節以外では助動詞の過去形(例:would, could, might, should)を用いることによって表現します。仮定法本来の動詞変化が消失したためにこのような形で表現するのですが、そのせいで動詞の語形変化で表される時制と、仮定法によって叙述される時制にズレが生じます。
例: If I were a bird, I could fly into the sky.「もし私が鳥ならば、空に向かって飛んでいけるのだが。」
これを「仮定法過去」といい、叙述されているのは現在の状態・動作です。 仮定法によって過去の状態・動作を叙述するには、次のような構造を用います。
例: If I had been a bird, I could have flown into the sky.「もし私が鳥だったならば、空に向かって飛んでいけたのだが。」
条件節内を「助動詞haveの過去形"had"+過去分詞」とし、主節(main clause)内を「助動詞過去形+助動詞have+過去分詞」とする。これを「仮定法過去完了」という。 なお、主節の動詞が話者の意思を表す動詞(intentional verb)の場合、従属節(subordinate clause)内の動詞が人称・時制にかかわらず原形になる場合があり、これを「仮定法現在」という。叙述されている時制は主節内の動詞の時制となる。これはアメリカ英語に多く見られる用法であり、イギリス英語では従属節内の動詞の前に"should"をおく。
例: He insisted that she be innocent.「彼は、彼女が無罪であると主張した。」