Let S be a set of types.
Let F be a set of functions. The type of function f in F is type(f) = Sf1 -> Sf2 -> ... -> Sfk where each Sfj is chosen from S and k = k(f) depends on f.
Let T be another set of types.
Let G be another set of functions. |G| = |F|. type(g) = Tg1 -> Tg2 -> ... -> Tgk where each Tgj is chosen from S and k = k(g) depends on g.
Define a "generalized homomorphism" from G to T to be a set of two functions H, U, and a set of functions \Phi, such that:
Let F be a set of functions. The type of function f in F is type(f) = Sf1 -> Sf2 -> ... -> Sfk where each Sfj is chosen from S and k = k(f) depends on f.
Let T be another set of types.
Let G be another set of functions. |G| = |F|. type(g) = Tg1 -> Tg2 -> ... -> Tgk where each Tgj is chosen from S and k = k(g) depends on g.
Define a "generalized homomorphism" from G to T to be a set of two functions H, U, and a set of functions \Phi, such that:
- H : G -> F is one to one and onto
- U : T -> S -> \Phi
- For all \phi in \Phi where U(t, s) = \phi, \phi : t -> s
- If H(g) = f,
- k(g) = k(f) = k
- U(Tgk, Sfk)(g(x1, x2, ..., x(k-1))) = f(U(Tg1,Sf1)(x1), U(Tg2,Sf2)(x2), ..., U(Tg(k-1),Sf(k-1))(x(k-1)))
© Bart Parkis
Last modified:Tue May 19 19:07:52 2009