Map calculus: a link between algebraic specification and first order theorem proving