Article ID | Journal | Published Year | Pages | File Type |
---|---|---|---|---|
432322 | The Journal of Logic and Algebraic Programming | 2008 | 30 Pages |
Finite maps or finite relations between infinite sets do not even form a category, since the necessary identities are not finite. We show relation-algebraic extensions of semigroupoids where the operations that would produce infinite results have been replaced with variants that preserve finiteness, but still satisfy useful algebraic laws. The resulting theories allow calculational reasoning in the relation-algebraic style with only minor sacrifices; our emphasis on generality even provides some concepts in theories where they had not been available before.The semigroupoid theories presented in this paper also can directly guide library interface design and thus be used for principled relation-algebraic programming; an example implementation in Haskell allows manipulating finite binary relations as data in a point-free relation-algebraic programming style that integrates naturally with the current Haskell collection types. This approach enables seamless integration of relation-algebraic formulations to provide elegant solutions of problems that, with different data organisation, are awkward to tackle.