proposition: Fact joinA : associative join.
proof: Proof. by move=> t1 t2 t3; apply: eq_from_tnth => i; rewrite !tnth_join joinA. Qed.
imports: HB(structures) mathcomp(ssreflect ssrfun ssrbool eqtype ssrnat choice seq) mathcomp(path fintype tuple bigop finset div prime finfun) mathcomp(finset)