OKlibrary  0.2.1.6
Homomorphisms.mac
Go to the documentation of this file.
```00001 /* Oliver Kullmann, 5.8.2012 (Swansea) */
00002 /* Copyright 2012 Oliver Kullmann
00003 This file is part of the OKlibrary. OKlibrary is free software; you can redistribute
00004 it and/or modify it under the terms of the GNU General Public License as published by
00005 the Free Software Foundation and included in this library; either version 3 of the
00006 License, or any later version. */
00007
00022 oklib_include("OKlib/ComputerAlgebra/Hypergraphs/Lisp/SetSystems.mac")\$
00023 oklib_include("OKlib/ComputerAlgebra/Algebra/Lisp/Ringframes/Rings/ResidueClasses.mac")\$ /* to provide inv_residues(n) */
00024 oklib_include("OKlib/ComputerAlgebra/Hypergraphs/Lisp/Generators/Schur.mac")\$
00025
00026
00027 /* ***********************************
00028    * Relations to Ramsey-hypergraphs *
00029    ***********************************
00030 */
00031
00032 /* A homomorphism from ramsey_hg(3,2,n+1) to schurtriples_hg(n), as well as a
00033    sup-homomorphism from ramsey_hg(4,2,n+1) to wschurtriples_hg(n): */
00034 hom_ramsey_schur(n) := lambda([e], second_element(e) - first_element(e))\$
00035
00036 /* Due to these morphisms we have
00037      schur(r)  <= ramsey([2,create_list(3,i,1,r)]) - 1
00038      wschur(r) <= ramsey([2,create_list(4,i,1,r)]) - 1.
00039 */
00040
00041 /* For a group G (with inversion) of order n together with an arbitrary
00042    linear order V (as a repetition-free list) of the base-set of G, a
00043    homomorphism from ramsey_hg(3,2,n) to grouptriples_ugrp2hg(G):
00044 */
00045 hom_ramsey_group_ugrpi_l(G,V) := block(
00046  [compo_ : G[2], inv_ : G[4], A : l2ary(V)],
00047  buildq([compo_,inv_,A], lambda([e], compo_(A[second_element(e)], inv_(A[first_element(e)])))))\$
00048 hom_ramsey_group_ugrpi(G) := hom_ramsey_group_ugrpi_l(G,listify(G[1]))\$
00049
00050
00051 /* *****************
00052    * Automorphisms *
00053    *****************
00054 */
00055
00056 /* For x in inv_residues(n+1) an automorphism of schurtriples_pd_hg(n): */
00057 auto_pdschur(n,x) := buildq([n,x], lambda([v], mirrorfold_schur(n)(mod(x*v,n+1))));
00058
00059 /* For x in inv_residues(n+1) an automorphism of wschurtriples_pd_hg(n): */
00060 auto_pdwschur(n,x) := buildq([n,x], lambda([v], mirrorfold_wschur(n)(mod(x*v,n+1))));
00061
00062
```