Define the image of a representation of a finitely presented group in GAP












2












$begingroup$


Please note that the example below is just a baby case in which my problem occurs. Of course there is a simple workaround for my problem in this particular example, but I would like to apply this to more complicated finitely presented groups and also to reducible representations.



Assume I have the symmetric group $G$ on three letters, given by the presentation $$G = langle x,y | x^2, y^3, xyx^{-1}yrangle.$$ The group $G$ has the following irreducible complex representation $rho$ of degree $2$:
$$x mapsto begin{pmatrix} 0 & 1 \ 1 & 0 end{pmatrix}, ;; y mapsto begin{pmatrix} exp(4pi i/3) & 0 \ 0 & exp(2pi i /3) end{pmatrix}.$$



What I want to do in GAP is to define the image of $rho$ inside $GL(2, mathbb C)$. For this, I load the repsn package. The corresponding irreducible representation of $G$ in GAP is one indexed by the number 3. Here is, what I have to define the representation $rho$:



LoadPackage("repsn");
f := FreeGroup("x","y");
G := f / [f.1^2, f.2^3, f.1*f.2*f.1^-1*f.2];
rho := IrreducibleAffordingRepresentation(Irr(G)[3]);


Now, I want to define the image of $rho$ explicitly by defining the group generated by $rho(x), rho(y)$. But already



 Image(rho,x);


gives



Error, Variable: 'x' must have a value not in any function at *stdin*:19


Similary,



 Image(rho,f.1);


gives



Error, usage: Image(<map>), Image(<map>,<elm>), Image(<map>,<coll>) at /proc/cygdrive/C/gap-4.9.2/lib/mapping.gi:198 called from
<function "Image">( <arguments> )
called from read-eval loop at *stdin*:21
you can 'quit;' to quit to outer loop, or
you can 'return;' to continue


Therefore, defining the image $H$ of $rho$ in the four following ways gives errors:



H := Group(Image(rho,x),Image(rho,y));
H := Group(Image(rho,f.1),Image(rho,f.2));
H := Group([Image(rho,x),Image(rho,y)]);
H := Group([Image(rho,f.1),Image(rho,f.2)]);



So what can I do to define the image of $rho$ as the group generated by the images of the generators of $G$? (The bold part is crucial for my applications.)



I appreciate any help, thank you very much!










share|cite|improve this question









$endgroup$

















    2












    $begingroup$


    Please note that the example below is just a baby case in which my problem occurs. Of course there is a simple workaround for my problem in this particular example, but I would like to apply this to more complicated finitely presented groups and also to reducible representations.



    Assume I have the symmetric group $G$ on three letters, given by the presentation $$G = langle x,y | x^2, y^3, xyx^{-1}yrangle.$$ The group $G$ has the following irreducible complex representation $rho$ of degree $2$:
    $$x mapsto begin{pmatrix} 0 & 1 \ 1 & 0 end{pmatrix}, ;; y mapsto begin{pmatrix} exp(4pi i/3) & 0 \ 0 & exp(2pi i /3) end{pmatrix}.$$



    What I want to do in GAP is to define the image of $rho$ inside $GL(2, mathbb C)$. For this, I load the repsn package. The corresponding irreducible representation of $G$ in GAP is one indexed by the number 3. Here is, what I have to define the representation $rho$:



    LoadPackage("repsn");
    f := FreeGroup("x","y");
    G := f / [f.1^2, f.2^3, f.1*f.2*f.1^-1*f.2];
    rho := IrreducibleAffordingRepresentation(Irr(G)[3]);


    Now, I want to define the image of $rho$ explicitly by defining the group generated by $rho(x), rho(y)$. But already



     Image(rho,x);


    gives



    Error, Variable: 'x' must have a value not in any function at *stdin*:19


    Similary,



     Image(rho,f.1);


    gives



    Error, usage: Image(<map>), Image(<map>,<elm>), Image(<map>,<coll>) at /proc/cygdrive/C/gap-4.9.2/lib/mapping.gi:198 called from
    <function "Image">( <arguments> )
    called from read-eval loop at *stdin*:21
    you can 'quit;' to quit to outer loop, or
    you can 'return;' to continue


    Therefore, defining the image $H$ of $rho$ in the four following ways gives errors:



    H := Group(Image(rho,x),Image(rho,y));
    H := Group(Image(rho,f.1),Image(rho,f.2));
    H := Group([Image(rho,x),Image(rho,y)]);
    H := Group([Image(rho,f.1),Image(rho,f.2)]);



    So what can I do to define the image of $rho$ as the group generated by the images of the generators of $G$? (The bold part is crucial for my applications.)



    I appreciate any help, thank you very much!










    share|cite|improve this question









    $endgroup$















      2












      2








      2


      1



      $begingroup$


      Please note that the example below is just a baby case in which my problem occurs. Of course there is a simple workaround for my problem in this particular example, but I would like to apply this to more complicated finitely presented groups and also to reducible representations.



      Assume I have the symmetric group $G$ on three letters, given by the presentation $$G = langle x,y | x^2, y^3, xyx^{-1}yrangle.$$ The group $G$ has the following irreducible complex representation $rho$ of degree $2$:
      $$x mapsto begin{pmatrix} 0 & 1 \ 1 & 0 end{pmatrix}, ;; y mapsto begin{pmatrix} exp(4pi i/3) & 0 \ 0 & exp(2pi i /3) end{pmatrix}.$$



      What I want to do in GAP is to define the image of $rho$ inside $GL(2, mathbb C)$. For this, I load the repsn package. The corresponding irreducible representation of $G$ in GAP is one indexed by the number 3. Here is, what I have to define the representation $rho$:



      LoadPackage("repsn");
      f := FreeGroup("x","y");
      G := f / [f.1^2, f.2^3, f.1*f.2*f.1^-1*f.2];
      rho := IrreducibleAffordingRepresentation(Irr(G)[3]);


      Now, I want to define the image of $rho$ explicitly by defining the group generated by $rho(x), rho(y)$. But already



       Image(rho,x);


      gives



      Error, Variable: 'x' must have a value not in any function at *stdin*:19


      Similary,



       Image(rho,f.1);


      gives



      Error, usage: Image(<map>), Image(<map>,<elm>), Image(<map>,<coll>) at /proc/cygdrive/C/gap-4.9.2/lib/mapping.gi:198 called from
      <function "Image">( <arguments> )
      called from read-eval loop at *stdin*:21
      you can 'quit;' to quit to outer loop, or
      you can 'return;' to continue


      Therefore, defining the image $H$ of $rho$ in the four following ways gives errors:



      H := Group(Image(rho,x),Image(rho,y));
      H := Group(Image(rho,f.1),Image(rho,f.2));
      H := Group([Image(rho,x),Image(rho,y)]);
      H := Group([Image(rho,f.1),Image(rho,f.2)]);



      So what can I do to define the image of $rho$ as the group generated by the images of the generators of $G$? (The bold part is crucial for my applications.)



      I appreciate any help, thank you very much!










      share|cite|improve this question









      $endgroup$




      Please note that the example below is just a baby case in which my problem occurs. Of course there is a simple workaround for my problem in this particular example, but I would like to apply this to more complicated finitely presented groups and also to reducible representations.



      Assume I have the symmetric group $G$ on three letters, given by the presentation $$G = langle x,y | x^2, y^3, xyx^{-1}yrangle.$$ The group $G$ has the following irreducible complex representation $rho$ of degree $2$:
      $$x mapsto begin{pmatrix} 0 & 1 \ 1 & 0 end{pmatrix}, ;; y mapsto begin{pmatrix} exp(4pi i/3) & 0 \ 0 & exp(2pi i /3) end{pmatrix}.$$



      What I want to do in GAP is to define the image of $rho$ inside $GL(2, mathbb C)$. For this, I load the repsn package. The corresponding irreducible representation of $G$ in GAP is one indexed by the number 3. Here is, what I have to define the representation $rho$:



      LoadPackage("repsn");
      f := FreeGroup("x","y");
      G := f / [f.1^2, f.2^3, f.1*f.2*f.1^-1*f.2];
      rho := IrreducibleAffordingRepresentation(Irr(G)[3]);


      Now, I want to define the image of $rho$ explicitly by defining the group generated by $rho(x), rho(y)$. But already



       Image(rho,x);


      gives



      Error, Variable: 'x' must have a value not in any function at *stdin*:19


      Similary,



       Image(rho,f.1);


      gives



      Error, usage: Image(<map>), Image(<map>,<elm>), Image(<map>,<coll>) at /proc/cygdrive/C/gap-4.9.2/lib/mapping.gi:198 called from
      <function "Image">( <arguments> )
      called from read-eval loop at *stdin*:21
      you can 'quit;' to quit to outer loop, or
      you can 'return;' to continue


      Therefore, defining the image $H$ of $rho$ in the four following ways gives errors:



      H := Group(Image(rho,x),Image(rho,y));
      H := Group(Image(rho,f.1),Image(rho,f.2));
      H := Group([Image(rho,x),Image(rho,y)]);
      H := Group([Image(rho,f.1),Image(rho,f.2)]);



      So what can I do to define the image of $rho$ as the group generated by the images of the generators of $G$? (The bold part is crucial for my applications.)



      I appreciate any help, thank you very much!







      gap






      share|cite|improve this question













      share|cite|improve this question











      share|cite|improve this question




      share|cite|improve this question










      asked Dec 7 '18 at 16:21









      WilsonPrimeWilsonPrime

      1065




      1065






















          1 Answer
          1






          active

          oldest

          votes


















          2












          $begingroup$

          The first problem occurs because there is no GAP global variable called x at the point when you refer to it. As GAP manual says here, "Note that you cannot call the generators by their names. These names are not variables, but just display figures. So, if you want to access the generators by their names, you first have to introduce the respective variables and to assign the generators to them."



          The idea to use f.1 instead was good, but f.1 refers to the generator of the free group f and not to the generator of G. It would work if you would have used G.1 instead.



          This is how to make it work. First, the setup:



          gap> LoadPackage("repsn");
          -------------------------------------------------------
          Repsn for Constructing Representations of Finite Groups
          Version 3.0.2

          Written by
          Vahid Dabbaghian
          -------------------------------------------------------
          true
          gap> f := FreeGroup("x","y");
          <free group on the generators [ x, y ]>
          gap> G := f / [f.1^2, f.2^3, f.1*f.2*f.1^-1*f.2];
          <fp group on the generators [ x, y ]>
          gap> rho := IrreducibleAffordingRepresentation(Irr(G)[3]);
          [ x, y ] -> [ [ [ 0, 1 ], [ 1, 0 ] ], [ [ E(3)^2, 0 ], [ 0, E(3) ] ] ]


          Now, if you want to define variables x and y for the generators of G, then you can do this as follows:



          gap> gens:=GeneratorsOfGroup(G);
          [ x, y ]
          gap> x:=gens[1];y:=gens[2];
          x
          y
          gap> Image(rho,x);
          [ [ 0, 1 ], [ 1, 0 ] ]
          gap> Image(rho,y);
          [ [ E(3)^2, 0 ], [ 0, E(3) ] ]


          Another notation for the same uses the ^ symbol:



          gap> x^rho;
          [ [ 0, 1 ], [ 1, 0 ] ]
          gap> y^rho;
          [ [ E(3)^2, 0 ], [ 0, E(3) ] ]
          gap> (x^2*y^-1*x*y)^rho;
          [ [ 0, E(3)^2 ], [ E(3), 0 ] ]


          Finally, you can calculate the Image(rho) immediately:



          gap> Image(rho);
          Group([ [ [ 0, 1 ], [ 1, 0 ] ], [ [ E(3)^2, 0 ], [ 0, E(3) ] ] ])
          gap>


          Hope this helps!






          share|cite|improve this answer











          $endgroup$













          • $begingroup$
            Perfect, thank you so much!
            $endgroup$
            – WilsonPrime
            Dec 7 '18 at 23:35











          Your Answer





          StackExchange.ifUsing("editor", function () {
          return StackExchange.using("mathjaxEditing", function () {
          StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
          StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
          });
          });
          }, "mathjax-editing");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "69"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          noCode: true, onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f3030086%2fdefine-the-image-of-a-representation-of-a-finitely-presented-group-in-gap%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          2












          $begingroup$

          The first problem occurs because there is no GAP global variable called x at the point when you refer to it. As GAP manual says here, "Note that you cannot call the generators by their names. These names are not variables, but just display figures. So, if you want to access the generators by their names, you first have to introduce the respective variables and to assign the generators to them."



          The idea to use f.1 instead was good, but f.1 refers to the generator of the free group f and not to the generator of G. It would work if you would have used G.1 instead.



          This is how to make it work. First, the setup:



          gap> LoadPackage("repsn");
          -------------------------------------------------------
          Repsn for Constructing Representations of Finite Groups
          Version 3.0.2

          Written by
          Vahid Dabbaghian
          -------------------------------------------------------
          true
          gap> f := FreeGroup("x","y");
          <free group on the generators [ x, y ]>
          gap> G := f / [f.1^2, f.2^3, f.1*f.2*f.1^-1*f.2];
          <fp group on the generators [ x, y ]>
          gap> rho := IrreducibleAffordingRepresentation(Irr(G)[3]);
          [ x, y ] -> [ [ [ 0, 1 ], [ 1, 0 ] ], [ [ E(3)^2, 0 ], [ 0, E(3) ] ] ]


          Now, if you want to define variables x and y for the generators of G, then you can do this as follows:



          gap> gens:=GeneratorsOfGroup(G);
          [ x, y ]
          gap> x:=gens[1];y:=gens[2];
          x
          y
          gap> Image(rho,x);
          [ [ 0, 1 ], [ 1, 0 ] ]
          gap> Image(rho,y);
          [ [ E(3)^2, 0 ], [ 0, E(3) ] ]


          Another notation for the same uses the ^ symbol:



          gap> x^rho;
          [ [ 0, 1 ], [ 1, 0 ] ]
          gap> y^rho;
          [ [ E(3)^2, 0 ], [ 0, E(3) ] ]
          gap> (x^2*y^-1*x*y)^rho;
          [ [ 0, E(3)^2 ], [ E(3), 0 ] ]


          Finally, you can calculate the Image(rho) immediately:



          gap> Image(rho);
          Group([ [ [ 0, 1 ], [ 1, 0 ] ], [ [ E(3)^2, 0 ], [ 0, E(3) ] ] ])
          gap>


          Hope this helps!






          share|cite|improve this answer











          $endgroup$













          • $begingroup$
            Perfect, thank you so much!
            $endgroup$
            – WilsonPrime
            Dec 7 '18 at 23:35
















          2












          $begingroup$

          The first problem occurs because there is no GAP global variable called x at the point when you refer to it. As GAP manual says here, "Note that you cannot call the generators by their names. These names are not variables, but just display figures. So, if you want to access the generators by their names, you first have to introduce the respective variables and to assign the generators to them."



          The idea to use f.1 instead was good, but f.1 refers to the generator of the free group f and not to the generator of G. It would work if you would have used G.1 instead.



          This is how to make it work. First, the setup:



          gap> LoadPackage("repsn");
          -------------------------------------------------------
          Repsn for Constructing Representations of Finite Groups
          Version 3.0.2

          Written by
          Vahid Dabbaghian
          -------------------------------------------------------
          true
          gap> f := FreeGroup("x","y");
          <free group on the generators [ x, y ]>
          gap> G := f / [f.1^2, f.2^3, f.1*f.2*f.1^-1*f.2];
          <fp group on the generators [ x, y ]>
          gap> rho := IrreducibleAffordingRepresentation(Irr(G)[3]);
          [ x, y ] -> [ [ [ 0, 1 ], [ 1, 0 ] ], [ [ E(3)^2, 0 ], [ 0, E(3) ] ] ]


          Now, if you want to define variables x and y for the generators of G, then you can do this as follows:



          gap> gens:=GeneratorsOfGroup(G);
          [ x, y ]
          gap> x:=gens[1];y:=gens[2];
          x
          y
          gap> Image(rho,x);
          [ [ 0, 1 ], [ 1, 0 ] ]
          gap> Image(rho,y);
          [ [ E(3)^2, 0 ], [ 0, E(3) ] ]


          Another notation for the same uses the ^ symbol:



          gap> x^rho;
          [ [ 0, 1 ], [ 1, 0 ] ]
          gap> y^rho;
          [ [ E(3)^2, 0 ], [ 0, E(3) ] ]
          gap> (x^2*y^-1*x*y)^rho;
          [ [ 0, E(3)^2 ], [ E(3), 0 ] ]


          Finally, you can calculate the Image(rho) immediately:



          gap> Image(rho);
          Group([ [ [ 0, 1 ], [ 1, 0 ] ], [ [ E(3)^2, 0 ], [ 0, E(3) ] ] ])
          gap>


          Hope this helps!






          share|cite|improve this answer











          $endgroup$













          • $begingroup$
            Perfect, thank you so much!
            $endgroup$
            – WilsonPrime
            Dec 7 '18 at 23:35














          2












          2








          2





          $begingroup$

          The first problem occurs because there is no GAP global variable called x at the point when you refer to it. As GAP manual says here, "Note that you cannot call the generators by their names. These names are not variables, but just display figures. So, if you want to access the generators by their names, you first have to introduce the respective variables and to assign the generators to them."



          The idea to use f.1 instead was good, but f.1 refers to the generator of the free group f and not to the generator of G. It would work if you would have used G.1 instead.



          This is how to make it work. First, the setup:



          gap> LoadPackage("repsn");
          -------------------------------------------------------
          Repsn for Constructing Representations of Finite Groups
          Version 3.0.2

          Written by
          Vahid Dabbaghian
          -------------------------------------------------------
          true
          gap> f := FreeGroup("x","y");
          <free group on the generators [ x, y ]>
          gap> G := f / [f.1^2, f.2^3, f.1*f.2*f.1^-1*f.2];
          <fp group on the generators [ x, y ]>
          gap> rho := IrreducibleAffordingRepresentation(Irr(G)[3]);
          [ x, y ] -> [ [ [ 0, 1 ], [ 1, 0 ] ], [ [ E(3)^2, 0 ], [ 0, E(3) ] ] ]


          Now, if you want to define variables x and y for the generators of G, then you can do this as follows:



          gap> gens:=GeneratorsOfGroup(G);
          [ x, y ]
          gap> x:=gens[1];y:=gens[2];
          x
          y
          gap> Image(rho,x);
          [ [ 0, 1 ], [ 1, 0 ] ]
          gap> Image(rho,y);
          [ [ E(3)^2, 0 ], [ 0, E(3) ] ]


          Another notation for the same uses the ^ symbol:



          gap> x^rho;
          [ [ 0, 1 ], [ 1, 0 ] ]
          gap> y^rho;
          [ [ E(3)^2, 0 ], [ 0, E(3) ] ]
          gap> (x^2*y^-1*x*y)^rho;
          [ [ 0, E(3)^2 ], [ E(3), 0 ] ]


          Finally, you can calculate the Image(rho) immediately:



          gap> Image(rho);
          Group([ [ [ 0, 1 ], [ 1, 0 ] ], [ [ E(3)^2, 0 ], [ 0, E(3) ] ] ])
          gap>


          Hope this helps!






          share|cite|improve this answer











          $endgroup$



          The first problem occurs because there is no GAP global variable called x at the point when you refer to it. As GAP manual says here, "Note that you cannot call the generators by their names. These names are not variables, but just display figures. So, if you want to access the generators by their names, you first have to introduce the respective variables and to assign the generators to them."



          The idea to use f.1 instead was good, but f.1 refers to the generator of the free group f and not to the generator of G. It would work if you would have used G.1 instead.



          This is how to make it work. First, the setup:



          gap> LoadPackage("repsn");
          -------------------------------------------------------
          Repsn for Constructing Representations of Finite Groups
          Version 3.0.2

          Written by
          Vahid Dabbaghian
          -------------------------------------------------------
          true
          gap> f := FreeGroup("x","y");
          <free group on the generators [ x, y ]>
          gap> G := f / [f.1^2, f.2^3, f.1*f.2*f.1^-1*f.2];
          <fp group on the generators [ x, y ]>
          gap> rho := IrreducibleAffordingRepresentation(Irr(G)[3]);
          [ x, y ] -> [ [ [ 0, 1 ], [ 1, 0 ] ], [ [ E(3)^2, 0 ], [ 0, E(3) ] ] ]


          Now, if you want to define variables x and y for the generators of G, then you can do this as follows:



          gap> gens:=GeneratorsOfGroup(G);
          [ x, y ]
          gap> x:=gens[1];y:=gens[2];
          x
          y
          gap> Image(rho,x);
          [ [ 0, 1 ], [ 1, 0 ] ]
          gap> Image(rho,y);
          [ [ E(3)^2, 0 ], [ 0, E(3) ] ]


          Another notation for the same uses the ^ symbol:



          gap> x^rho;
          [ [ 0, 1 ], [ 1, 0 ] ]
          gap> y^rho;
          [ [ E(3)^2, 0 ], [ 0, E(3) ] ]
          gap> (x^2*y^-1*x*y)^rho;
          [ [ 0, E(3)^2 ], [ E(3), 0 ] ]


          Finally, you can calculate the Image(rho) immediately:



          gap> Image(rho);
          Group([ [ [ 0, 1 ], [ 1, 0 ] ], [ [ E(3)^2, 0 ], [ 0, E(3) ] ] ])
          gap>


          Hope this helps!







          share|cite|improve this answer














          share|cite|improve this answer



          share|cite|improve this answer








          edited Dec 8 '18 at 18:50

























          answered Dec 7 '18 at 23:20









          Alexander KonovalovAlexander Konovalov

          5,22221957




          5,22221957












          • $begingroup$
            Perfect, thank you so much!
            $endgroup$
            – WilsonPrime
            Dec 7 '18 at 23:35


















          • $begingroup$
            Perfect, thank you so much!
            $endgroup$
            – WilsonPrime
            Dec 7 '18 at 23:35
















          $begingroup$
          Perfect, thank you so much!
          $endgroup$
          – WilsonPrime
          Dec 7 '18 at 23:35




          $begingroup$
          Perfect, thank you so much!
          $endgroup$
          – WilsonPrime
          Dec 7 '18 at 23:35


















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Mathematics Stack Exchange!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          Use MathJax to format equations. MathJax reference.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f3030086%2fdefine-the-image-of-a-representation-of-a-finitely-presented-group-in-gap%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Biblatex bibliography style without URLs when DOI exists (in Overleaf with Zotero bibliography)

          ComboBox Display Member on multiple fields

          Is it possible to collect Nectar points via Trainline?