Corollary equiv_strings_have_same_reductions:
  forall S T:group_str, S ~~ T ->
    reduction S = reduction T.Add Parametric Morphism: reduction with signature
  (group_str_equiv) ==> (@eq group_str) as reduction_mor.

(* Specifications: *)
Lemma equivalence_is_equality_on_reduced_strings: forall S T:group_str, reduced S -> reduced T -> S ~~ T -> S = T.
Theorem unique_reduction: forall S:group_str, exists! R:group_str, S ~~ R /\ reduced R.