proposition: Lemma similar_PlusAC : forall c1 c2 c3, similar (Plus (Plus c1 c2) c3) (Plus (Plus c1 c3) c2).
proof: Proof. move => c1 c2 c3. transitivity (Plus c1 (Plus c2 c3)); first by apply: similar_PlusA. transitivity (Plus c1 (Plus c3 c2)). - apply similar_congr_Plus; first reflexivity. by apply similar_PlusC. symmetry; by apply : similar_PlusA. Qed.
imports: Coq(RelationClasses Setoid Morphisms Permutation) Coq(SetoidList Mergesort Orders) mathcomp(ssreflect ssrfun ssrbool eqtype ssrnat seq fintype) mathcomp(bigop path) RegLang(languages) RegexpBrzozowski(glue gfinset regexp)