due to how the algorithm given to us in Python is built, in the case where (0,0) is input, the circuit returns base and exp both to be equal (0,0), thus creating an error in the base/exp to gcd converting blackbox. Are we supposed to design around this?
If x = 0000
and y = 0000
, both base
and exponent
are indeed expected to represent zero, as given in lines 5 and 6 of Listing 1.
However, this only means that, they represent zero in their corresponding encodings, not that the strings themselves are all-zeros strings. Therefore, in such a case, base = 0000
(representing zero in standard binary notation) and exponent = 0001
(representing zero in one-hot encoding). These values will work perfectly fine with the base_exp_to_gcd
auxiliary circuit.