  The starting point of this paper is a collection of properties of an
algorithm that have been distilled from the informal descriptions of what an
algorithm is that are given in standard works from the mathematical and
computer science literature. Based on that, the notion of a proto-algorithm is
introduced. The thought is that algorithms are equivalence classes of
proto-algorithms under some equivalence relation. Three equivalence relations
are defined. Two of them give bounds between which an appropriate equivalence
relation must lie. The third lies in between these two and is likely an
appropriate equivalence relation. A sound method is presented to prove, using
an imperative process algebra based on ACP, that this equivalence relation
holds between two proto-algorithms.
