Bandler and Kohout Products of Relations

There are multiple ways to compose relations

Sub Product

SubPrdā€…ā€ŠXā€…ā€ŠYā€…ā€ŠZā€…ā€ŠRā€…ā€ŠS:={ā€…ā€Šx,z:xRāŠ†Szā€…ā€Š}\textbf{SubPrd} \; X \; Y \; Z \;R \; S := \{ \; x,z : xR \subseteq Sz \; \}

Relationā€…ā€ŠXā€…ā€ŠYā€…ā€ŠR\textbf{Relation} \; X \; Y \; R

Relationā€…ā€ŠYā€…ā€ŠZā€…ā€ŠS\textbf{Relation} \; Y \; Z \; S


Notation.

  1. SubPrdā€…ā€ŠXā€…ā€ŠYā€…ā€ŠZā€…ā€ŠRā€…ā€ŠS\textbf{SubPrd} \; X \; Y \; Z \; R \; S can be written SubPrdā€…ā€ŠRā€…ā€ŠS\textbf{SubPrd} \; R \; S when XX, YY and ZZ are clear from the context.

  2. SubPrdā€…ā€ŠRā€…ā€ŠS\textbf{SubPrd} \; R \; S can be written in symbols as RāŠ²SR \vartriangleleft S.


fun SubPrd (X,Y,Z: set univ, R: X->Y, S: Y->Z) : X->Z {
  { x: X, z: Z | x.R in S.z }
}

Super Product

SupPrdā€…ā€ŠXā€…ā€ŠYā€…ā€ŠZā€…ā€ŠRā€…ā€ŠS:={ā€…ā€Šx,z:xRāŠ‡Szā€…ā€Š}\textbf{SupPrd} \; X \; Y \; Z \; R \; S := \{ \; x,z : xR \supseteq Sz \; \}

Relationā€…ā€ŠXā€…ā€ŠYā€…ā€ŠR\textbf{Relation} \; X \; Y \; R

Relationā€…ā€ŠYā€…ā€ŠZā€…ā€ŠS\textbf{Relation} \; Y \; Z \; S


Notation.

  1. SupPrdā€…ā€ŠXā€…ā€ŠYā€…ā€ŠZā€…ā€ŠRā€…ā€ŠS\textbf{SupPrd} \; X \; Y \; Z \; R \; S can be written SupPrdā€…ā€ŠRā€…ā€ŠS\textbf{SupPrd} \; R \; S when XX, YY and ZZ are clear from the context.

  2. SupPrdā€…ā€ŠRā€…ā€ŠS\textbf{SupPrd} \; R \; S can be written in symbols as RāŠ³SR \vartriangleright S.


fun SupPrd (X,Y,Z: set univ, R: X->Y, S: Y->Z) : X->Z {
  { x: X, z: Z | S.z in x.R }
}

Square Product

SqrPrdā€…ā€ŠXā€…ā€ŠYā€…ā€ŠZā€…ā€ŠRā€…ā€ŠS:={ā€…ā€Šx,z:xR=Szā€…ā€Š}\textbf{SqrPrd} \; X \; Y \; Z \; R \; S := \{ \; x,z : xR = Sz \; \}

Relationā€…ā€ŠXā€…ā€ŠYā€…ā€ŠR\textbf{Relation} \; X \; Y \; R

Relationā€…ā€ŠYā€…ā€ŠZā€…ā€ŠS\textbf{Relation} \; Y \; Z \; S


Notation.

  1. SqrPrdā€…ā€ŠXā€…ā€ŠYā€…ā€ŠZā€…ā€ŠRā€…ā€ŠS\textbf{SqrPrd} \; X \; Y \; Z \; R \; S can be written SqrPrdā€…ā€ŠRā€…ā€ŠS\textbf{SqrPrd} \; R \; S when XX, YY and ZZ are clear from the context.

  2. SqrPrdā€…ā€ŠRā€…ā€ŠS\textbf{SqrPrd} \; R \; S can be written in symbols as Rā‹„SR \diamond S.


fun SqrPrd(X,Y,Z: set univ, R: X->Y, S: Y->Z) : X->Z {
  { x: X, z: Z | x.R = S.z }
}

Last updated