2021-08-14 22:52:17 +0100 received badge ● Popular Question (source) 2020-12-23 17:36:25 +0100 received badge ● Notable Question (source) 2020-04-21 17:50:38 +0100 received badge ● Popular Question (source) 2019-09-07 13:42:37 +0100 commented answer Finitely presented group simplification Sorry for the late reply, it seems like your answer works perfectly, thanks!! 2019-08-30 09:54:20 +0100 received badge ● Nice Question (source) 2019-08-28 17:26:11 +0100 commented answer Finitely presented group simplification It might be that the previous example I gave was wrong (still unsure), but the following one has 17 elements (so, it's necessarily Z/17Z), but still it can't seem to be reducible.  2019-08-28 12:25:45 +0100 asked a question Finitely presented group simplification Hi! I have a bunch of finitely presented groups, with many generators and relations. I know that all of these are in fact cyclic groups, but many times using the "simplified()" function, I get a simpler presentation with 2 generators, rather than only one. The following is one example:  G. = FreeGroup() H =G/[(x5^-1*x0)^2*x5^-3, (x0^-1*x5^-1)^2*x0^-2*x5*x0^-1]  H is in fact just Z/27Z. Is there another way to simplify these presentations, in order to get a minimal one? The problem here is that I do not only need to identify the specific group, but also to recover the image of the previous generators in the simplified one (as done by the simplification_isomorphism() function). 2019-07-24 11:30:33 +0100 asked a question Crossings in knot diagram Hi! Given a plot of a knot, I was wondering if it is possible to obtain the position (within the plot) of its crossings, in order to then add some decorations to the diagram. 2019-05-22 22:55:45 +0100 commented question Formal determinant of symbolic matrix the question seems something like: how many nonzero terms are there in the determinant, if we don't allow for cancellations? 2019-05-22 22:55:45 +0100 received badge ● Commentator 2019-05-22 22:29:15 +0100 commented question Formal determinant of symbolic matrix the properties asked do not seem to be related to the non-commutativity of variables if I guess correctly 2019-05-22 22:27:53 +0100 commented answer Formal determinant of symbolic matrix I had a similar problem: one needs to keep track of the non-zero monomials appearing, so if there's cancellations it does not work 2019-05-22 21:25:16 +0100 received badge ● Nice Question (source) 2019-05-22 16:32:20 +0100 asked a question Formal determinant of symbolic matrix I have some sparse symbolic matrices, and want to compute their formal determinant (without cancellation of terms). In other words, if I have the matrix x,y = var('x,y') M = Matrix(SR, [[x,y],[x,y]])  I would like the result of M.determinant()  to be xy - xy, rather than just 0. The variables in each monomial are allowed to commute with each other, but on the other hand I would like all monomials containing a 0 to vanish (i.e if in the example above M = Matrix(SR, [[x,0],[x,y]])), then the determinant should be just xy, rather than xy - 0*x). Is there a way to achieve this (without using the expansion of the determinant as permutations, since the dimension of the matrices gets quite big!)? Thanks in advance! 2019-01-12 15:47:54 +0100 commented answer braid closures Thanks, that works perfectly! 2019-01-11 14:30:27 +0100 received badge ● Nice Question (source) 2019-01-11 13:45:51 +0100 asked a question braid closures Hi! I've noticed that when taking the closure of a braid on $n$ strands, the resulting link is obtained by ignoring any "unused" strand: B = BraidGroup(3) print B([1]).components_in_closure(), Link(B([1])).number_of_components()  outputs 2 1, instead of 2 2. In the documentation for the braid group I've read "The behavior of removing unused strands from an element of a braid group may change without notice in the future. Do not rely on this feature." Is there a workaround that allows to have the same number of components in a braid and in its closure? Note that braids given as an array of generators (as in the example above) are automatically simplified, so closing the braid [2,-2] (which should give the $2$-component unlink) produces the unknot. (In particular, the empty braid on $n$ strands should close to the $n$-component unlink.) 2018-11-24 15:00:00 +0100 received badge ● Scholar (source) 2018-11-24 14:59:55 +0100 commented answer Free/Braid groups not working that worked!! thanks a lot! 2018-11-21 15:34:23 +0100 commented question Free/Braid groups not working Any chance this could be solved easily? or should I just downgrade both ubuntu and sage? 2018-11-20 20:07:55 +0100 received badge ● Nice Question (source) 2018-11-05 15:18:20 +0100 commented question Free/Braid groups not working Got Listing... Done sagemath/bionic,now 8.1-7ubuntu1 amd64 [installed]" 2018-11-02 14:42:22 +0100 commented question Free/Braid groups not working Ubuntu 18.04, I am on a university machine, so I have no idea of how it was installed! 2018-11-02 12:05:55 +0100 asked a question Free/Braid groups not working Hi, I am working with SageMath 8.1, and it seems like "FreeGroup()" (and as a consequence BraidGroup() ) are not working properly. If I write in the notebook G. = FreeGroup()  I get the following: Traceback (most recent call last): File "", line 1, in File "_sage_input_7.py", line 10, in exec compile(u'open("___code___.py","w").write("# -*- coding: utf-8 -*-\\n" + _support_.preparse_worksheet_cell(base64.b64decode("Ry48YSxiLGM+ID0gRnJlZUdyb3VwKCk="),globals())+"\\n"); execfile(os.path.abspath("___code___.py")) File "", line 1, in File "/tmp/tmpFDI_RE/___code___.py", line 2, in exec compile(u"G = FreeGroup(names=('a', 'b', 'c',)); (a, b, c,) = G._first_ngens(3)" + '\n', '', 'single') File "", line 1, in File "sage/misc/lazy_import.pyx", line 388, in sage.misc.lazy_import.LazyImport.__call__ (build/cythonized/sage/misc/lazy_import.c:4118) File "/usr/lib/python2.7/dist-packages/sage/groups/free_group.py", line 648, in FreeGroup return FreeGroup_class(names) File "sage/misc/classcall_metaclass.pyx", line 330, in sage.misc.classcall_metaclass.ClasscallMetaclass.__call__ (build/cythonized/sage/misc/classcall_metaclass.c:1481) File "sage/misc/cachefunc.pyx", line 1059, in sage.misc.cachefunc.CachedFunction.__call__ (build/cythonized/sage/misc/cachefunc.c:6162) File "/usr/lib/python2.7/dist-packages/sage/structure/unique_representation.py", line 1021, in __classcall__ instance = typecall(cls, *args, **options) File "sage/misc/classcall_metaclass.pyx", line 497, in sage.misc.classcall_metaclass.typecall (build/cythonized/sage/misc/classcall_metaclass.c:1931) File "/usr/lib/python2.7/dist-packages/sage/groups/free_group.py", line 736, in __init__ libgap_free_group = libgap.FreeGroup(generator_names) File "sage/libs/gap/element.pyx", line 2213, in sage.libs.gap.element.GapElement_Function.__call__ (build/cythonized/sage/libs/gap/element.c:17671) ValueError: libGAP: Error, FreeGroup: function is not yet defined  Am I doing something wrong? Thanks! 2018-04-12 16:34:59 +0100 commented question connected sum of knots so it does not work either way? the result should be the same! anyway, it seems to have problems even when all knots are called in different ways, very weird! 2018-04-12 11:54:33 +0100 received badge ● Good Question (source) 2018-04-12 08:52:16 +0100 received badge ● Nice Question (source) 2018-04-11 13:14:13 +0100 asked a question connected sum of knots Hi! I was trying to recursively construct connected sums of knots, but I seem to run in to some problems when connect summing a knot to itself more than two times: B = BraidGroup(2) trefoil = Knot(B([1,1,1])) K = trefoil.connected_sum(trefoil) L = K.connected_sum(trefoil) This does not work: ValueError Traceback (most recent call last) ipython-input-1-7b977cf99468 in module() 2 trefoil = Knot(B([Integer(1),Integer(1),Integer(1)])) 3 K = trefoil.connected_sum(trefoil) --> 4 L = K.connected_sum(trefoil) /home/sc_serv/sage/local/lib/python2.7/site-packages/sage/knots/knot.pyc in connected_sum(self, other) 294 return Knot(B(list(b1.Tietze()) 295 + [(abs(i) + b2s) * Integer(i).sign() for i in b2.Tietze()] --> 296 + [b1s])) 297 /home/sc_serv/sage/local/lib/python2.7/site-packages/sage/knots/knot.pyc in __init__(self, data, check) 104 if check: 105 if self.number_of_components() != 1: --> 106 raise ValueError("the input has more than 1 connected component") 107 108 def __repr__(self): ValueError: the input has more than 1 connected component  Am I doing something wrong here? Thanks in advance! 2018-03-26 19:40:20 +0100 commented question problems with gauss code for knots It seems that the braid function is not working properly 2018-03-26 17:21:04 +0100 received badge ● Supporter (source) 2018-03-26 16:48:19 +0100 received badge ● Nice Question (source) 2018-03-26 15:12:55 +0100 received badge ● Student (source) 2017-11-07 13:34:58 +0100 asked a question different results for Alexander polynomials Hi! I just noticed that if one computes the Alexander polynomial of a knot, one gets different results according to whether the knot is presented as the closure of a braid or as a knot: t = var('t') B = BraidGroup(2) b = B([1,1,1]) knot = Knot(b) print b.alexander_polynomial() print knot.alexander_polynomial() Output: t^-2 - t^-1 + 1 t^-1 - 1 + t Of course the polynomials differ only by a t^n multiplication, but I guess it would be better if the two coincided right away. My question is: is this issue going to be solved in the future? (I can live happily either way, just wanted to avoid modifying some stuff I'm working on!) Thanks!