let (mut result, mut carry) = tseytin_half_adder(x[0].clone(), y[0].clone(), clauses, symbols);
/// 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)