proposition: Lemma string_append_single : forall a s1 s2, String a EmptyString = append s1 s2 -> (s1 = String a EmptyString /\ s2 = EmptyString) \/ (s2 = String a EmptyString /\ s1 = EmptyString).
proof: Proof. induction s1; simpl; intuition. injection H; intros; subst. symmetry in H0; apply string_append_nil in H0; subst; intuition. subst; intuition. Qed.
imports: Fiat.Common.Coq__8_4__8_5__Compat Coq.Numbers.Natural.Peano.NPeano Coq.Strings.String Coq.Arith.Lt Coq.Arith.Compare_dec Coq.Lists.List Coq.ZArith.ZArith