I tried a simple example with OpenModelica v1.20.0, but I find a confusing results.
The code is as follows:
model test
Boolean state1;
Boolean state2;
Real f;
equation
f = if time<1 then 0.5 else if time<3 then 0.4 else if time<5 then 0.3 else if time<7 then 0.4 else 0.5;
state1 = f<=0.4;
state2 = f<0.4 or f==0.4;
end test;
And the corresponding result is as follows:

Obviously, the result of state1(<=) is not equal state2(< or ==), and state1 is not a desired result.
Why?
