import java.applet.Applet; import java.awt.event.*; import java.awt.*; import java.awt.geom.*; class TextMatch { /**This is a documentation file. It is read by the file reader.**/ public TextMatch() {} public String getText(int k) { if(k==0) return(text0()); if(k==1) return(text1()); if(k==2) return(text2()); if(k==3) return(text3()); if(k==4) return(text4()); if(k==5) return(text5()); if(k==6) return(text6()); if(k==7) return(text7()); if(k==8) return(text8()); if(k==9) return(text9()); if(k==10) return(text10()); if(k==11) return(text11()); if(k==12) return(text12()); if(k==13) return(text13()); if(k==14) return(text14()); if(k==15) return(text15()); return(null); } public static String text0() { String S="VERTEX CONTROL: Now we have an explicit family of curves which has the same limit as our arithmetic graphs. Each curve contains all the endpoints of its predecessor. If our main theorem is really correct, we should be able to scale the I2 and I3 limits so that they contain all the vertices of each (ideal-rule version of) V2(k) and V3(k) respectively. We can determine the scaling factor just by looking at V(1), which is a triangle. We can (and do) make an explicit calculation."; return(S); } public static String text1() { String S="EXERCISE: Reset the program, then turn on V3(1) and I3(1). Press the 'ideal rule' button and press the 'edge+info' button. The highlighted vectors have their tails at (0,0) and their heads at the coordinates listed at top. Convince yourself that you could calculate the scale factors for the limit I2 and I3 curves based on the data you are staring at."; return(S); } public static String text2() { String S="SPECIAL VERTICES: Our goal is to show that the I2 and I3 limits contain all the vertices of V2(k) and V3(k) respectively, for k=1,3,5,... We mean here the ideal-rule versions. We describe the V3 case first."; return(S); } public static String text3() { String S="EXERCISE: Reset the program and then view the sets I3(1), I3(2), etc. Notice that each one of these unions of triangles contains the vertices of all the predecessors. The vertices of any I3(k) belong to the limit I3. We call 'special' those vertices which are at the right angles of the various triangles. We will show that all the vertices of V3(k) are special."; return(S); } public static String text4() { String S="ENHANCED SUBDIVISION: Suppose that x1,...,xN are some special vertices of the limit I3. Starting with the initial seed for I3, which is a union of 8 isosceles triangles, we apply the substitution rule only when necessary -- i.e. not uniformly across all triangles -- until we produce a finer union of triangles that has all x's as vertices. We call this the 'enhanced subdivision' associated to our finite list of vertices."; return(S); } public static String text5() { String S="We will apply the enhanced subdivision construction in a special case related to our problem. We use it when we have two vertices that are the endpoints of an edge of some V3(k)."; return(S); } public static String text6() { String S="KEY EXERCISE: Press the 'vertex check' button on the 'special configurations' window. The white edge in the left plot window is one of the edges of the ideal curve V3(5). We have zoomed in on the enhanced subdivision that reveals the endpoints x1 and x2 to be special vertices of I3. Now sample the other edges by pressing the big arrows."; return(S); } public static String text7() { String S="As we mentioned in the 'substitution' text unit, you can use some other keys for different kinds of sampling. You can use the 'a' and 's' keys in place of the arrows. If you want to sample the edges directly in terms of their type (0 through 43) use 'q' and 'w'. If you want to sample through all the edges having the same type, use 'd' or 'e'. When you do this kind of sampling, notice that the picture hardly changes at all from edge to edge. "; return(S); } public static String text8() { String S="SELF-SIMILARITY: You can make a visual check that the vertex statement holds for each ideal curve V3(k) for k=3,5,7,9. As we now explain, we can invoke self-similarity to finish the proof. Consider V3(3) and V3(7). The limit of these curves is invariant under various similarities. Every time we see an edge A of some type in V3(3) and an edge B of the same in V3(7), there is a similarity that carries A to B. "; return(S); } public static String text9() { String S="Hence, our vertex property propagates to V3(11), V3(15),... provided property (*) holds for all pairs (A,B): The map from A to B carries I3(A) to I3(B). Here I3(X) is the portion of I3 subtended by the segment X. Now I3(A) and I3(B) are determined by the pattern of triangles in the enhanced subdivision associated to A and likewise for B. If these two patterns match, then Property (*) holds for the pair (A,B)."; return(S); } public static String text10() { String S="EXERCISE: Press the 'vertex check' button again. Using the 'q' key, advance the picture until an edge of type 1 is shown. Now using the 'd' key, sample all these edges. Observe that the local picture is the same in all cases. Now switch the display so that V(3) is shown. Repeat. Now do the same for V(7). Finally, do the same for V(9). You might find that it takes too long to get through all the edges for V(9), but the pattern should be clear."; return(S); } public static String text11() { String S="The local pictures are all the same. So, Property (*) holds for edges of type 1. We have 39 more types to go. The same argument works except for the 8 edges 6+11k and 9+11k. Here k=0,1,2,3. So, really we just have 8 types to go."; return(S); } public static String text12() { String S="EXERCISE: Observe the local pictures for the 8 exceptional edges, 6 + 11k and 9+11k. Note that overall you see just two local types. An explicit check shows that the portion of I3 determined by the one type is isometric to the portion determined by the other type. This takes care of the remaining types, and thereby proves that the limit I3 coincides with the rescaled limit of the arithmetic graphs. This is half of the main theorem. It remains to deal with I2."; return(S); } public static String text13() { String S="CORRESPONDENCE: The I2 sets and the I3 sets are produced by combinatorially identical substitution rules. Moreover, the initial seeds are both length 8 cyclically ordered lists. For this reason, any kind of iterated subdivision of the initial I3 seed determines in a canonical way an iterated subdivision of the initial I2 seed. When you press the 'check vertex' button, the right plot window shows the subdivision of I2 corresponding to the enhanced subdivision of I3."; return(S); } public static String text14() { String S="THE OTHER HALF: In the right plot window, observe that the endpoints of the highlighted edges always appear at the edge-midpoints of the trapezoids or at the centers of the parallelograms. One can verify this explicitly for the first 4 examples, and then use the same kind of inductive self-similarity argument as in the I3 case to finish the proof in general. This explains the I2 half of the main theorem. Our proof (sketch) is done. "; return(S); } public static String text15() { String S="FINAL WORD: Note that the combinatorial correspondence actually induces continuous surjection from I3 to I2. Drawing the graph of this surjection, we produce a curve in R^4 that turns out to be affine equivalent to the original arithmetic graph in R^8. Thus, our analysis gives a complete picture of the asymptotic shape of the arithmetic graph associated to outer billiards on the regular octagon."; return(S); } }