Skip to content

Latest commit

 

History

History

some-and-none

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

関係写像による関係の制限

関係代数には半結合と半差という演算があります。 このノートは、これらの演算を甲州記法で実現する方法について記述します。 このノートが記述された時点であるバージョン 0.37 では、 この機能は実装されていません。

関係 pq に対する半結合は、 q と交わり可能な組に p を制限する演算です。 たとえば、関係 p は項目 /a /b からなり、 関係 q は項目 /b /c からなるとします。 そのとき、関係 u のつぎのような定式化は、 半結合の展開された式とみなせます。

u : p | meet q | pick /a /b

甲州記法の半結合は、演算子 some を使って、 つぎのように書こうというものです。

u : p | some (meet q)

一般的には、p | some R のように関係写像 R をとり、 p の組をひとつだけもつ関係を R で写像した結果が空関係ではないとき、その組を残し、 空関係のとき、その組を捨てるという働きをします。

これは、「関係写像による関係の制限」とよばれるもので、 somenone があります。 some は関係写像が非空関係を出力すると組が残り、 none は、その反対で、空関係を出力すると組が残ります。 このふたつの演算子が半結合と半差に相当します。

none の使用例

v : p | none (meet q)

は、一般化された差集合に相当します。 そのため、つぎのような略記法を用意してもよいでしょう。

v : p | minus q