オートマトン・形式言語の問題
アルファベット 上の正規表現を考える。正規表現 が表す言語を と書き、、(連接)、(、 は空列)と定める。文字列 に含まれる文字 の個数を 、 の長さを と書く。
正規表現
について、
が成り立つことを証明せよ。
この問題で使うもの
- 正規表現が表す言語と文字列の判定(説明と入口の問題)
ヒント
行き詰まったら、上から順に 1 つずつ開いてください。
ヒント 1
集合の等式なので、 と の 2 つの包含を示す。前者は の についての帰納法、後者は文字列の長さについての帰納法が使える。
ヒント 2
の元 と は、どれも を偶数個( 個か 個)含む。また , なら である。
ヒント 3
では の先頭の文字で場合分けする。先頭が のときは、残りの部分に が奇数個あるので必ず次の があり、 と分解できる。
採点の観点と模範解答
自分で証明を書いてから、採点の観点で見比べてください。
採点の観点を見る
()と書き直し、2 つの包含に分けて示す方針を立てている(1 点)
の各元の の個数が偶数であることと から、 についての帰納法で を示している(3 点)
を長さについての(累積)帰納法で示す枠組みを立て、空列の場合を処理し、 を用いている(2 点)
先頭が の場合に として に帰着させている(1 点)
先頭が の場合に、残りの の個数が奇数であることから次の の存在を示し、 と分解して に帰着させている(3 点)
どこでつまずきましたか?(選ぶと、戻る場所を案内します)
模範解答を読む
、 とおく。 である。 がすべての で成り立つことを用いる。
(1) の証明 0 以上の整数 について「」を についての帰納法で示す。
- : で は偶数なので成り立つ。
- を仮定する。 の元は (, )と書ける。仮定より は偶数であり、 なら 、 なら なので も偶数である。よって は偶数で、。したがって 。
よって 。
(2) の証明 まず、 と に対し であることを確認する。 となる をとると、 だからである( は連接の結合法則による)。
0 以上の整数 について「長さ の の元はすべて に属する」を、 についての累積帰納法で示す。すなわち、長さが 未満の の元がすべて に属すると仮定して、, なら を示す。
- のとき:。
- のとき: の先頭の文字で場合分けする。
- 先頭が のとき: と書ける。 は偶数なので で、 だから仮定より 。 なので、上の確認から 。
- 先頭が のとき: と書ける。 は奇数なので であり、 は を含む。 に現れる最初の の位置で区切ると、0 以上の整数 と を用いて と書ける(最初の より前はすべて だから)。すると であり、 は偶数なので 、また なので仮定より 。 なので 。
先頭の文字は か のどちらかなので、場合分けに漏れはない。よってすべての について主張が成り立ち、。
(1), (2) より 、すなわち である。