﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	severity	resolution	keywords	cc
1096	Error en los operadores de comparación con múltiples argumentos	Víctor de Buen Remiro	Víctor de Buen Remiro	"Los operadores de comparación con múltiples argumentos, es decir {{{EQ, NE, LT, GT, LE, GE}}}, no funcionan correctamente en la lógica trivaluada con omitidos.

Por ejemplo, el operador EQ resulta no ser conmutativo

{{{
#!cpp
Real ?==1;    //devuelve ?
Real 1==1;    //devuelve ?
Real EQ(?,1); //devuelve ?
Real EQ(1,?); //devuelve 1 y tendría que devolver ?
}}}

Los operadores de comparación multi-argumentos deben cumplir la regla general
{{{
#!cpp
 CMP(a, b, c, d, ...) = CMP(a,b) & CMP(b,c) & CMP(c,d) & ...
}}}

Sin embargo, esta expresión
{{{
#!cpp
Real EQ(?, 0, 1)
}}}
devuelve ? cuando tiene que devolver 0, pues 0 no es igual a 1 nunca, sea cual sea el resultado de comparar ? contra 0.

"	defect	accepted	highest	Mantainance	Kernel		blocker			imendez@…
