6.7 Cluster の定義
ある mode に属性 (attribute) をいくつか附与して,新しい mode のようなもの
(タイプ) を作り出すことができます.例えば,Real という mode があるとします.この
mode に対して positive という属性が定義されたとしましょう.このとき,positive
Real という mode (これを cluster という) も作ることができます.
それなら positive_Real という新しい mode を作ればよさそうですが,cluster が便利なのは,
x is positive_Real; then
x is positive;
はいえませんが,
x is positive Real; then
x is positive;
は理由付けなしにいえることです.即ち,"positive Real"という cluster
は positive な Real であることを,Mizar チェッカーがしっかりと覚えていてくれるのです.一度新しい
cluster が定義されれば,他の articles で,environ 部の clusters のというように最初のファイル名を記入しておけば,そこで,その
cluster を自由に使うことができます.
clusters を定義する例を下に掲げます.その定義には existence だけを証明する必要があることに注意しましょう.
なお,VOC ファイルには,あらかじめ
Vpositive
と書かれているものとします.
environ
vocabulary TEST8;
notation ARYTM,REAL_1;
constructors ARYTM;
theorems REAL_1,AXIOMS;
requirements ARYTM;
begin
definition let x be Real;
attr x is positive means :A1: 0<x;
end;
definition
cluster positive Real
existence
proof take 1; thus O<1; end;
end;
theorem for x,y begin positive Real
holds x+y is positive Real
proof let x,y is positive Real;
B1:0くx by A1; then 0くy by A1; then
x<x+y by REAL_1:69; then
0<x+y by B1, AXIOMS:22;
hence x+y is positive Real by A1;
end: