Inductive alphabet: Type :=
  | intro_gen: generators -> alphabet
  | intro_gen_inv: generators -> alphabet.Inductive alphabet: Type :=
  | intro_gen: generators -> alphabet
  | intro_gen_inv: generators -> alphabet.Inductive alphabet: Type :=
  | intro_gen: generators -> alphabet
  | intro_gen_inv: generators -> alphabet.Definition group_str := list alphabet.Definition opposite (letter:alphabet) :=
  match letter with
  | intro_gen a => intro_gen_inv a
  | intro_gen_inv a => intro_gen a
  end.

(* Specifications: *)
Lemma opposite_involution: forall a:alphabet, opposite (opposite a) = a.