Inductive non_reduced: group_str -> Prop :=
| intro_letter_inverse: forall (S T: group_str) (a: alphabet),
non_reduced (S ++ (opposite a) :: a :: T).
Definition reduced (S: group_str) : Prop :=
not (non_reduced S).

Lemma split_non_reduced: forall (S: group_str) (a b:alphabet),
non_reduced (a :: b :: S) ->
non_reduced (b :: S) \/ a = opposite b.