• 検索結果がありません。

全称記号

ドキュメント内 Mizar 講義録 四訂版 (ページ 30-35)

次に述語命題にはいっていきます.for x holds p[x] & q[x]の証明をします.な おp[x]とはxを含んだ述語という意味で,かぎかっこが許されているわけではありま せん.

for x holds P[x] & Q[x]

proof let x;

···

···

thus P[x]:

···

···

thus Q[x]; (thesis)

end:

全称記号for に対する言葉としてletがあります.let xとしておいて,thus P[x]で,Pを証明します.さらにthus Q[x]Qを証明します.

それから混乱しなければ,これは文字が変わってもかまいません.例えば y になっ てもかまいません.

4.6.1 変数が 2 つある場合

それから次の様に変数が 2 つある場合ですが,

for x,y st P[x,y] holds Q[x,y]

proof let x,y;

assume P[x,y];

···

···

thus Q[x,y]; (thesis)

end;

このように変数を 2 つ書きます.直接的には,

( x ) ( ) y P x y ( ( , )

Q x y ( , ) )

を証明

したことになります.assume ...は 1 つの論理式になっています.

4.6.2 such that を使った書き方

それから,もう 1 つの書き方として次のようなものがあります.

for x,y st P[x,y] holds Q[x,y]

proof

let xs,y such that L:P[x,y];

···

···

···

thus Q[x,y];

end;

なお,such that のあとに,ふつうはラベルを入れます(この例の場合 L

).そして,

最初の行のはstで,3行目はsuch thatです.

4.6.3 文の分割

こういうスケルトンがあります.

for x,y st P[x,y] & Q[x.y] holds R[x,y]

proof

let x,y such that L1:P[x,y] and L2:Q[x.y];

···

···

thus R[x,y];

end:

これを次のように書き換えることもできます.注意しなければならないのは & と and の違いです.

3

行目の,

let x,y such that L1:P[x,y] and L2:Q[x,y];

は,

let x,y such that L:P[x,y] & Q[x,y];

というふうに,書くこともできます.前の書き方と後の書き方は原理的には同じです.

前の書き方のandは,別のラベルをたてるために

2

つの文に分けるためのものです.こ れは,A & B という

1

つの文を,A という文と,B という文とに分けたということです.

それに対して,後の書き方はあくまで

1

つの文で,論理演算子でつながったものです.

このように,andを使って

1

つの文を

2

つの文に分けたり,逆に&を使って

2

つの文を

1

つの文にすることもできます.

4.6.4 文の分割 assume での場合

such that後の書き方の違いですが,これと似たことはassumeの場合にも起こり ます.例えばassumeの例に,& S[x, y]を加えて,

for x,y st P[x,y] & S[x,y] holds Q[x,y]

proof let x,y;

assume P[x,y] & S[x,y];

···

···

thus Q[x,y];

end;

と,なったとします.

このとき,

assume P[x,y] & S[x,y];

assume that L1:P[x,y] and L2:S[x,y];

と書くこともできます.後の書き方に限って,P[x, y]S[x, y]の両方にそれぞれに ラベルを書くことができます.この例ではL1, L2というラベルです.

4.6.5 that の後の注意

thatの使い方についていいますと,thatの後にはthenを使うことができません.

どうしてかというと,such thatの後に

2

つ以上の文があるかもしれないと考えるか らです.2 つ以上の文がある場合は,直前の文というのがはっきりしません.ですから,

assume that A and B:

then C;

こういう書き方はできません.必ずラベルを使って,

assume that L1:A and L2:B;

C by L1,L2;

こういうふうに書かないといけません.あるいは,B だけ使うときは,

C by L2;

これだけ書きます.引用が

1

つの場合にも then は使えません.thenでなくby L2と 書かなければいけません.ですからthatが来たらラベルが来なければこの文は使えま せん.thatの後には必ずラベルが来ると考えられます.

thatをつけなければthenを使えます.ですから,最初の書き方,

assume P[x, y] & Q[x, y]の場合は,

assume P[x,y] & Q[x,y];

then ···

と使うことができます.thatがなくて,1つの文しかないわけです.assumeのときは thenを使います.

ドキュメント内 Mizar 講義録 四訂版 (ページ 30-35)

関連したドキュメント