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).