Section Compare_fun_lemmas.
Variable (X : finType) (stop : X -> bool).

Lemma Compare_correct_neq (str1 str2 str3 : list X) (x1 x2 : X) t :
(forall x, In x str1 -> stop x = false) ->
stop x1 = false ->
stop x2 = false ->
x1 <> x2 ->
tape_local (fst t) = str1 ++ x1 :: str2 ->
tape_local (snd t) = str1 ++ x2 :: str3 ->
Compare_fun stop t =
(false, (midtape (rev str1 ++ left (fst t)) x1 str2, midtape (rev str1 ++ left (snd t)) x2 str3)).