Definition Rule_U3 (nc pc : clause) :=
match nc , pc with
PosSpaceClause Gamma Delta ((Lseg x y)::Sigma) ,
NegSpaceClause Gamma' (Lseg x' Nil::Sigma') Delta' =>
match expr_cmp x x' with
Eq => Some (NegSpaceClause Gamma' (Lseg x y::Lseg y Nil::Sigma') Delta')
|_ => None
end
| _ , _ => None
end.

Lemma app_app: forall {A} (a:A) l ll l1 l2,
l ++ ll = l1 ++ a :: l2 ->
exists m, exists n,
(l = l1 ++ a :: n /\ l2 = n ++ ll) \/
(ll = m ++ a :: l2 /\ l1=l ++ m).