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

Lemma Compare_correct_neq_midtape (str1 str2 str3 : list X) (m x1 x2 : X) ls1 ls2 :
(forall x, In x str1 -> stop x = false) ->
stop x1 = false ->
stop x2 = false ->
stop m = false ->
x1 <> x2 ->
Compare_fun stop (midtape ls1 m (str1 ++ x1 :: str2), midtape ls2 m (str1 ++ x2 :: str3)) =
(false, (midtape (rev str1 ++ m :: ls1) x1 str2, midtape (rev str1 ++ m :: ls2) x2 str3)).