/// This function adds two booleans and a carry boolean using the full-adder logic circuit, it is intended for use in a binary adder.
/// This function adds two booleans using the half-adder logic circuit, it is intended for use in a binary adder.
// Selects between two boolean vectors depending on a condition (both vectors must be the same length)
fn division_bounds(numerator: (i32, i32), denominator: (i32, i32)) -> Option<(i32, i32)> {