質問: 仮定法過去完了で条件節内の助動詞 仮定法過去完了のif節内に助動詞+have+ppはなぜ使えるのか if savings could have been made elsewhere, we would have continued to give financial support to local community service organizations last year. (もし他の部分で節約が出来たなら、昨年も引き続き地域のコミュニティ・サービス組織に資金援助しただろう。) この文は文法的に正しく、if節内はhad been madeとしても意味は変わらないようなのですが、 なぜif節内に助動詞+have+ppの形が来ることができるのでしょうか。 助動詞+have+過去分詞形が過去完了形であるということなのでしょうか。 (一通り検索してみたのですがうまく探し当てることが出来ませんでした。すでに質問されている内容でしたら申し訳ありません。)
回答: > if節内はhad been madeとしても意味は変わらないようなのです → より正確にはhad been able to be madeの方が意味的に近いように思います。 >助動詞+have+過去分詞形が過去完了形であるということなのでしょうか。 → 文法的にはそうはもちろん言えません。 oubliさんの関心は、学校文法が、過去の事実に反する仮定を表す構文のif節内は動詞は過去完了形である、とのみ記述していることとの齟齬にあるのではないでしょうか。私もこの点は気になっている点です。 >なぜif節内に助動詞+have+ppの形が来ることができるのでしょうか。 → 「なぜ」という質問に答えるのは私には難しすぎます。 が、来ることができるのも自然であろういう説明はできるように思います。 (1) i wish ~の文を用いて、「他の部分で節約が出来たならよかったのになあ」は、わが国の学校文法では 1.i wish savings had been able to be made elsewhere. が、思い浮かびますが、nativeはさらに 2.i wish savings could have been made elsewhere. がむしろより自然に感じるのではないでしょうか。 (2) 過去の事実に反することを想像して「~だったらよかったのに」の気持ちを上の(2)のi wish s’ could have ppの形で表すことがいかに自然であるかは、この形を選ばせる問題が2004年の大学入試センター試験(筆記)に出題されていることからもわかります。 「あの海岸は美しかったね。もっと長くいることができたらよかったのにね。」 the beach was beautiful! i wish i “could have stayed” longer. (第2問a問8(通し番号14)。引用符内を4つの選択肢から選ばせる問題。) また、『小学館プログレッシブ英和中辞典』(第4版)や『オーレックス英和辞典』(旺文社)でcouldの項目を引くとこの用法と例文が出ています。 (3)一般論として、 i wish ~やif only ~ の ~ の部分は仮定法構文の if ~, s ....の ~の部分の形が来ることができる、 と言えるように思います。 とすると、上の(1)や(2)が正しいとすると、「仮定法過去完了のif節内にcould + have + pp」が用いられる」ことも自然に感じられます。 (4) 実際、過去の事実に反する仮定を表す構文のif節内は動詞は ・過去完了形 だけでなく ・この”could have pp”タイプ が一般的であることは海外の語法・文法書には書かれています。 たとえば、 ・b. evance & c. evance ”a dictionary of contemporary american english”のsubjunctiveの項目 ・r. aitken “teaching tenses”の第4章 ’conditional section’(p.112) (5) ただ、表題の次にoubliさんは「仮定法過去完了のif節内に助動詞+have+ppはなぜ使えるのか」とお書きになっていますが、仮定法過去完了のif節内に用いられる"助動詞+have+pp"の助動詞位置にはcouldは普通であるのに対して、wouldやmightはまれなような気がします。どのような事情があってのことなのかは興味深い点ですが、私にはまだ腑に落ちてはいません。 いずれにせよ、わが国の学校文法でも中級以上のものは、過去の事実に反する仮定を表す構文のif節内は動詞は過去完了形と共に、could have ppの形も用いられる、と一言触れるものが表れて欲しいものです。