Buenos días a todos.
Tengo un algoritmo que devuelve una tupla de dos valores, la tupla puede ser (Verdadero, A) o (Falso, B). Así, por ejemplo, una tupla no puede ser (Verdadero, B).
En mi propuesta tengo la siguiente afirmación:
El algoritmo X devuelve (True, A) si y sólo si se cumple la condición Y.
Desgraciadamente, creo que el enunciado no es muy claro, porque, si tomamos su inversa (que debería ser equivalente), quedará así:
El algoritmo X no devuelve (True, A) si y sólo si no se cumple la condición Y.
Entonces, ¿qué hace does not return (True, A)
¿significa aquí? Podría significar que devuelve (False, B)
, (False, A)
o (True, B)
(o por qué no (True, C)
dado que no sabemos realmente qué significa la negación de A).
Para mejorar la cuestión, he pensado en reescribir la declaración de la siguiente manera:
El algoritmo X devuelve (Verdadero, A) si y sólo si se cumple la condición Y (y (Falso,B) en caso contrario).
Sin embargo, mi afirmación se traduce literalmente en las dos siguientes afirmaciones:
Si el algoritmo X devuelve (Verdadero, A), entonces se cumple la condición Y (y (Falso, B) en caso contrario).
y
El algoritmo X devuelve (Verdadero, A) si se cumple la condición Y (y (Falso,B) en caso contrario).
Sólo la segunda de las frases tiene sentido, y probablemente podría ir con:
El algoritmo X devuelve (Verdadero, A) si se cumple la condición Y, y (Falso, B) en caso contrario.
Sin embargo, me gustaría mantener el iff
parte y también mantener el otherwise
parte entre paréntesis, para ahorrarme algo de espacio necesario (porque uso mucho la frase y sólo usaré los paréntesis la primera vez para especificar cuál es la negación de (Verdadero, A)).
Entonces, ¿debo ir con:
El algoritmo X devuelve (Verdadero, A) si y sólo si se cumple la condición Y (y (Falso,B) en caso contrario).
¿O hay alguna forma mejor y más clara de escribir mi declaración y mantenerla compacta para replicarla?
Gracias.