Refutation soundness bug on Z3 trunk. z3-4.8.8 returns the correct result which is sat.
[581] % z3-4.8.8 small.smt2
sat
[582] % z3release small.smt2
unsat
[583] %
[583] % cat small.smt2
(declare-fun a () String)
(declare-fun b () String)
(assert (= (str.substr a 0 (str.len b)) "B"))
(assert (= (str.replace a b "") (str.++ "A" b)))
(check-sat)
[584] %
Commit: 395a304
OS: Ubuntu 18.04
NB: Fixed