# changeRing -- replaces vertices with variables of a different ring

## Synopsis

• Usage:
G = changeRing(H,R,L)
G = changeRing(H,R,L, MaximalEdges => B)
• Inputs:
• H, ,
• R, , containing the new vertices as variables
• L, a list, of substitutions, one variable in R for each vertex of H
• B, ,
• Optional inputs:
• MaximalEdges => ..., default value false, optional argument for changeRing
• Outputs:
• G, , over the ring R with edges obtained by making substitutions into the edges of H

## Description

This method is meant for moving a HyperGraph that is defined over one ring to another ring R. The parameter L must be a list containing variables of R that should replace the vertices of H. For the most basic way to use this method, see the first example:

 i1 : P = QQ[a,b,c]; i2 : H = hyperGraph({a*b,b*c}); i3 : S = QQ[x,y,z,w]; i4 : changeRing(H,S,{x,z,y}) o4 = HyperGraph{edges => {{y, z}, {x, z}}} ring => S vertices => {x, y, z, w} o4 : HyperGraph

In the example above, a is replaced with x, b is replaced with z, and c is replaced with y. A more complex situation arises when two vertices of H are replaced by the same variable.

 i5 : P = QQ[a,b,c]; i6 : H = hyperGraph({a*b*c}); i7 : G = hyperGraph({a*b,b*c}); i8 : S = QQ[x,y,z,w]; i9 : changeRing(H,S,{x,y,x}) o9 = HyperGraph{edges => {{x, y}} } ring => S vertices => {x, y, z, w} o9 : HyperGraph i10 : changeRing(G,S,{x,y,x}) o10 = HyperGraph{edges => {{x, y}} } ring => S vertices => {x, y, z, w} o10 : HyperGraph

Note that duplicate variables are removed from edges after substitution. Duplicate edges are also reduced to a single edge. As all HyperGraphs in this package have the property that no edge is a subset of any other edge, some edges may need to be dropped after substitution. This happens in the next example.

 i11 : P = QQ[a,b,c]; i12 : H = hyperGraph({a*b,b*c}); i13 : S = QQ[x,y]; i14 : changeRing(H,S,{x,y,y}) o14 = HyperGraph{edges => {{y}} } ring => S vertices => {x, y} o14 : HyperGraph i15 : changeRing(H,S,{x,y,y},MaximalEdges=>true) o15 = HyperGraph{edges => {{x, y}} } ring => S vertices => {x, y} o15 : HyperGraph

By default, changeRing uses minimal edges that appear after substitution to construct its output. The optional argument MaximalEdges allows one to get the maximal edges instead.