next | previous | forward | backward | up | index | toc

# substitute(Arrangement,RingMap) -- change the ring of an arrangement

## Synopsis

• Function: substitute
• Usage:
substitute(arr, f)
sub(arr, f)
arr ** f
• Inputs:
• arr, ,
• f, , with source ring arr, or a ring for which map(f, ring arr) makes sense
• Outputs:
• , the arrangement defined by applying f (if f is ) or map(f, ring arr) (if f is a ring) to each defining linear form

## Description

 i1 : R = QQ[x,y] o1 = R o1 : PolynomialRing i2 : arr = arrangement{x,y,x-y} o2 = {x, y, x - y} o2 : Hyperplane Arrangement  i3 : f = map(QQ[a,b], R, {a, a+b}) o3 = map (QQ[a..b], R, {a, a + b}) o3 : RingMap QQ[a..b] <-- R i4 : sub(arr, f) o4 = {a, a + b, -b} o4 : Hyperplane Arrangement 

Alternatively, you can use **.

 i5 : arr ** f === sub(arr, f) o5 = true

Given a ring S, sub(arr, S) is the same as sub(arr, map(S, ring arr)).

 i6 : S = QQ[x,y,z] o6 = S o6 : PolynomialRing i7 : arr' = sub(arr, S) o7 = {x, y, x - y} o7 : Hyperplane Arrangement  i8 : ring arr' === S o8 = true

Note that the underlying matroid of the arrangement may change as a result of changing the ring. For example, the Fano matroid is realizable only in characteristic 2:

 i9 : R = ZZ[x,y,z] o9 = R o9 : PolynomialRing i10 : A = arrangement("nonFano",R) o10 = {x, y, z, y - z, x - z, x - y, x + y - z} o10 : Hyperplane Arrangement  i11 : f = map(ZZ/2[x,y,z],R); ZZ o11 : RingMap --[x..z] <-- R 2 i12 : B = A**f o12 = {x, y, z, y + z, x + z, x + y, x + y + z} o12 : Hyperplane Arrangement  i13 : flats(2,A) o13 = {{5, 6}, {1, 4, 6}, {0, 3, 6}, {2, 6}, {3, 4, 5}, {2, 5}, {0, 1, 5}, ----------------------------------------------------------------------- {0, 2, 4}, {1, 2, 3}} o13 : List i14 : flats(2,B) o14 = {{2, 5, 6}, {1, 4, 6}, {0, 3, 6}, {3, 4, 5}, {0, 1, 5}, {0, 2, 4}, {1, ----------------------------------------------------------------------- 2, 3}} o14 : List