Analogical reasoning and the development of algebraic abstraction