Proofs: Dadda multiplier
These are the human proofs of Dadda multiplier, at full length.
The Dadda reduction is always possible and computes the product full
This proof shows: correctness, termination.
Write a column state as heights and the value of the state as . Let , and the largest term below ; for there are no stages.
Termination. There are stages, each a single pass over columns with at most cells per column, and one final addition.
Lemma 1 (value). Each stage keeps the value. A full adder on bits of column outputs in column and in column , and , so the value changes by . The same holds for a half adder with . Bits that pass are unchanged.
Lemma 2 (heights before a stage). Before the stage with target , every column has height at most , where if and otherwise. In both cases .
Proof. Initially . Since by the choice of , the claim holds for the first stage. A stage with target leaves every column with height at most (Lemma 3 shows that the stage can be built; then each column has bits when and bits otherwise), which is the bound of the next stage, and .
Lemma 3 (enough bits). In a stage with target and previous bound , let be the number of carries into column , , and when , and otherwise. Then and for every .
Proof. By induction on . For , . Assume . If there are no adders and . Otherwise , and , so . For the bits: if is even, , and is equivalent to . If is odd, , and the condition is . Now since . Equality throughout needs , and ; then is even. So when is odd the inequality is strict, .
No carry leaves the top. Column starts empty and, as long as it has height 0, Lemma 3 gives , so it has no adders and sends no carry to column . Its height after a stage is at most . If it ever had bits with adders, the value would still be by Lemma 1; a bit of column would make the value at least , so column is always empty.
Theorem. DADDA-MULTIPLY returns the bits of .
Proof. Initially the value is (line L1). By Lemma 3 every stage can be built, by Lemma 1 it keeps the value, and by Lemma 2 after the last stage, with , every column has at most two bits. Reading the bits of each column as two rows and (a missing bit is 0), , and line L8 returns , which is less than and fits in the output bits.
Delay. An AND gate has delay 1. The adders of a stage take only bits present before the stage, so if all of those arrive by time , all bits after the stage arrive by time . By induction the two rows arrive by time .