Opened 8 months ago

Closed 3 months ago

# allow creation of PermutationGroupElement with 0 in domain

Reported by: Owned by: dimpase major sage-duplicate/invalid/wontfix group theory dcoudert, stumpc5 Dima Pasechnik N/A

Permutation group acting on a domain with 0 and creating its individual elements (moving 0) is working as expected

sage: g = graphs.PetersenGraph()
sage: a = p.automorphism_group()
sage: a.domain()
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
sage: a("(0,1,2,3,8,5)(4,6,7)")
(0,1,2,3,8,5)(4,6,7)

The default constructor PermutationGroupElement constructs permutations on {1, ..., n} for compatibility with Permutation. The following raises an error as expected

sage: PermutationGroupElement("(0,2)")
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-1-fa3d3058e13a> in <module>()
----> 1 PermutationGroupElement("(0,2)")

/opt/sage/local/lib/python3.7/site-packages/sage/groups/perm_gps/constructor.py in PermutationGroupElement(g, parent, check)
47             raise ValueError("Invalid permutation vector: %s" % g)
48         degree = max([1] + [max(cycle+(1,)) for cycle in v])
---> 49         v = from_cycles(degree, v)
50
51         if parent is None:

/opt/sage/local/lib/python3.7/site-packages/sage/combinat/permutation.py in from_cycles(n, cycles, parent)
7045     # Only positive elements
7046     if int(flattened_and_sorted[0]) < 1:
-> 7047         raise ValueError("All elements should be strictly positive "
7048                          "integers, and I just found a non-positive one.")
7049

ValueError: All elements should be strictly positive integers, and I just found a non-positive one.

To create a permutation on a domain different from {1, ..., n} one should use one of

sage: S = SymmetricGroup([0,1,2])
sage: S("(0,2)")
(0,2)
sage: PermutationGroupElement("(0,2)", S)
(0,2)

It is hard to figure out what the code of the original "bug" report reproduced below is supposed to show.

one can create PermutationGroup_generic_with_category acting on a domain with 0, but creating its individual elements (moving 0) is broken.

sage: p=graphs.PetersenGraph()
sage: a=p.automorphism_group(); a
Permutation Group with generators [(3,7)(4,5)(8,9), (2,6)(3,8)(4,5)(7,9), (1,4,5)(2,3,8,6,9,7), (0,1)(2,4,6,5)(3,9,8,7)]
sage: a.domain()
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
sage: map(type, a.gens())
[<type 'sage.groups.perm_gps.permgroup_element.PermutationGroupElement'>,
<type 'sage.groups.perm_gps.permgroup_element.PermutationGroupElement'>,
<type 'sage.groups.perm_gps.permgroup_element.PermutationGroupElement'>,
<type 'sage.groups.perm_gps.permgroup_element.PermutationGroupElement'>]
sage: PermutationGroupElement("(0,2)")
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-15-fa3d3058e13a> in <module>()
----> 1 PermutationGroupElement("(0,2)")

/home/dimpase/Sage/sagetrac-mirror/local/lib/python2.7/site-packages/sage/groups/perm_gps/permgroup_element.pyx in sage.groups.perm_gps.permgroup_element.PermutationGroupElement.__init__ (build/cythonized/sage/groups/perm_gps/permgroup_element.c:5852)()
502
503         degree = max([1] + [max(cycle+(1,)) for cycle in v])
--> 504         v = from_cycles(degree, v)
505
506         self.__gap = 'PermList({})'.format(list(v)) # Make sure it is a list

/home/dimpase/Sage/sagetrac-mirror/local/lib/python2.7/site-packages/sage/combinat/permutation.pyc in from_cycles(n, cycles, parent)
7041     # Only positive elements
7042     if int(flattened_and_sorted[0]) < 1:
-> 7043         raise ValueError("All elements should be strictly positive "
7044                          "integers, and I just found a non-positive one.")
7045

ValueError: All elements should be strictly positive integers, and I just found a non-positive one.
}}

### comment:1 Changed 7 months ago by embray

• Milestone sage-8.8 deleted

As the Sage-8.8 release milestone is pending, we should delete the sage-8.8 milestone for tickets that are not actively being worked on or that still require significant work to move forward. If you feel that this ticket should be included in the next Sage release at the soonest please set its milestone to the next release milestone (sage-8.9).

### comment:2 Changed 3 months ago by vdelecroix

• Description modified (diff)

### comment:3 Changed 3 months ago by vdelecroix

• Description modified (diff)
• Milestone set to sage-duplicate/invalid/wontfix
• Status changed from new to needs_review

The message is

### comment:4 Changed 3 months ago by dimpase

one should not edit away the error reports!

### comment:5 Changed 3 months ago by vdelecroix

It was not a meaningful error report. The command PermutationGroupElement("(0,2)") is not working (as expected). And it has nothing to do with the computation of automorphism group of graphs.

### comment:6 Changed 3 months ago by dimpase

there was some code, meaningful or not, that used to produce errors.

are these errors fixed?

### comment:7 Changed 3 months ago by vdelecroix

Indeed PermutationGroupElement("(0,2)") produced and still produce an error. What do you mean by fixed? The error is intended.

### comment:8 Changed 3 months ago by vdelecroix

• Description modified (diff)

### comment:9 Changed 3 months ago by vdelecroix

• Description modified (diff)

### comment:10 Changed 3 months ago by vdelecroix

• Description modified (diff)

### comment:11 Changed 3 months ago by dimpase

• Reviewers set to Dima Pasechnik
• Status changed from needs_review to positive_review

OK, thanks. Sorry for noise - indeed it was not a bug.

### comment:12 Changed 3 months ago by chapoton

• Resolution set to invalid
• Status changed from positive_review to closed
Note: See TracTickets for help on using tickets.