On Monday, June 15, 2020 at 10:43:51 AM UTC-7, Nils Bruin wrote: > > There's obviously the choice for letting permutations/matrices on the > left/right, but I think there's a definite preferred choice for how to > convert to a permutation matrix: the one that makes it a homomorphism. And > for that, "Permutation" fails presently: > > sage: matrix(Permutation('(1,2,3)')*Permutation('(1,3)')) == > matrix(Permutation('(1,2,3)'))*matrix(Permutation('(1,3)')) > False > > To make things worse, there is actually an option to fix this:
sage: sage.combinat.permutation.Permutations.options(mult="r2l") sage: matrix(Permutation('(1,2,3)')*Permutation('(1,3)')) == matrix(Permutation('(1,2,3)'))*matrix(Permutatio ....: n('(1,3)')) Quoting from the documentation: It is best for code not to rely on this setting being set to a particular standard, but rather use the methods "left_action_product()" and "right_action_product()" for multiplying permutations (these methods don't depend on the setting). See https://trac.sagemath.org/14885 for more details. so, "Permutation" objects aren't really meant to be a group: they are just objects on which two different groups can be overlaid (the opposites). So that means "matrix" can't possibly get it right in all cases. There should be a left_action_permutation_matrix and right_action_permutation_matrix on Permutation objects. -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/sage-devel/4f585bb2-76f1-4210-834f-de70a795e1b8o%40googlegroups.com.