Putting this in a new thread to make it easier to find, but please see below for a new bug in the ‘implies’ (->) operator.
Bug in ~ operator (from other thread)
Bug in → operator?
25 ?- { (A == 1) -> (B == 2, C == 3) }.
false. % I would not expect this
26 ?- { (A == 1) -> (B == 2), (A == 1) -> (C == 3) }.
false. % I would not expect this
27 ?- { (A == 1) -> (B == 2) }, { (A == 1) -> (C == 3) } .
A::real(-1.0Inf, 1.0Inf), % Works fine
B::real(-1.0Inf, 1.0Inf),
C::real(-1.0Inf, 1.0Inf).
29 ?- { (A == 1) -> (B == 2) }, { (A == 1) -> (C == 3) }, A=1, solve([B,C]).
A = 1, % Good, this is just testing the above with solve(...)
B = 2,
C = 3.
Am I missing something or is this a bug?