Integration of the proof process in the system development through refinement steps
Résumé
In this paper, we present the incremental methodology to develop a multiplier and an adder. We start from an abstraction which gives the result in one shot and we introduce the algorithm using division by 2 and an accumulator to store a temporary result. For the adder we give another refinement to introduce the carry. Next we introduce two codings: an abstract one (sequence of bits) and a concrete one (bounded sequence of bits). We discover an overflow in the last refinement.