  Many problems in reactive synthesis are stated using two formulas ---an
environment assumption and a system guarantee--- and ask for an implementation
that satisfies the guarantee in environments that satisfy their assumption.
Reactive synthesis tools often produce strategies that formally satisfy such
specifications by actively preventing an environment assumption from holding.
While formally correct, such strategies do not capture the intention of the
designer. We introduce an additional requirement in reactive synthesis,
non-conflictingness, which asks that a system strategy should always allow the
environment to fulfill its liveness requirements. We give an algorithm for
solving GR(1) synthesis that produces non-conflicting strategies. Our algorithm
is given by a 4-nested fixed point in the $\mu$-calculus, in contrast to the
usual 3-nested fixed point for GR(1). Our algorithm ensures that, in every
environment that satisfies its assumptions on its own, traces of the resulting
implementation satisfy both the assumptions and the guarantees. In addition,
the asymptotic complexity of our algorithm is the same as that of the usual
GR(1) solution. We have implemented our algorithm and show how its performance
compares to the usual GR(1) synthesis algorithm.
