start
Rejestracja funktorowa
registration
let x1 be Θ1;
.....
let xn be Θn;
cluster τ(x1,...,xn) -> ξ1 ... ξm;
coherence
proof :: thesis: τ(x1,...,xn) is ξ1 ... ξm
thus τ(x1,...,xn) is ξ1;
....
thus τ(x1,...,xn) is ξm;
end;
end;
gdzie ξ
1, ..., ξ
m są
przymiotnikami, do
których typów definiowalności rozszerza się typ termu τ(x
1,...,x
n).
Przymiotnik ξ
i może mieć argumenty jawne (τ
i,1,...,τ
i,ni) zależne od x
1,...,x
n.
Rejestracja powoduje automatyczne dołączanie przymiotników ξ
1(τ
1,...,τ
n), ..., ξ
m(τ
1,...,τ
n) do typu termu τ(τ
1,...,τ
n).
Wariant z zawężeniem typu:
registration
let x1 be Θ1;
.....
let xn be Θn;
cluster τ(x1,...,xn) -> ξ1 ... ξm for Θ(x1,...,xn);
coherence
proof :: thesis: for x being Θ st x = τ(x1,...,xn)
:: holds x is ξ1 ... ξm
let x be Θ;
assume x = τ(x1,...,xn) ;
thus x is ξ1;
....
thus x is ξm;
end;
end;
gdzie ξ
1, ..., ξ
m są
przymiotnikami, do
których typów definiowalności rozszerza się Θ(x
1,...,x
n)
oraz Θ(x
1,...,x
n) rozszerza się do typy termu τ(x
1,...,x
n).