Week 4   Projective Geometry
Homework 4

© Dana Scott 1993/1997/1998

Copy this notebook and do all work in it
Name the file: 03.Homework.nb
Please hand in by Monday, 21 September 
Save it in your subdirectory of
the class handin directory

Name: xxxxxxxxx

1. Dualizing Desargues and Pappus  [25points]

Question 1 [15 points]

Question 1. Explain in words how you would prove that if two triangles have the intersections of corresponding sides collinear, then the joins of the corresponding vertices are concurrent.

Hint: A triangle is given either by three vertices (and the sides are the joins of the pairs of vertices), or dually by three sides (and the vertices are the meets of pairs of sides).

Answer

The given assertion is dual to the theorem of Desargues -  it is obtained by substituting points for lines and lines for points in the assertion of Desargues' theorem (and of course, substituting colinearity for concurrency and vice vera). But both the asserions state facts only about incidence between lines and points and so, due to the symmetry between lines and points in the definition of PD, the statements are actually equivalent.
However, to independently prove this dual statement to Desargues, one can continue in the following way:

Pick three colinear points (Subscript[D, 1]), (Subscript[D, 2])and (Subscript[D, 3]) to represent the intersections of the three pairs of corresponding sides of the triangles. We will pick the points w, u and a w + b u to simplify the calculations.

(Subscript[D, 1]) = w;  (Subscript[D, 2]) = u; (Subscript[D, 3]) = a w + b u;

Next, chose a pair of arbitraty lines through each of the points (Subscript[D, 1]), (Subscript[D, 2]) and (Subscript[D, 3])

\({P\_11, P\_12, P\_21, P\_22, P\_31, P\_32} = 
      Table[\(c\_\(i, 1\)\) u + \(c\_\(i, 2\)\) v + c\_\(i, 3\)\ w, 
        \ {i, 1, 6}]; 
a\_1 = PE[D\_1, P\_11]; \ a\_2 = PE[D\_1, P\_12]; 

    b\_1 = PE[D\_2, P\_21]; \ b\_2 = PE[D\_2, P\_22]; 

    c\_1 = PE[D\_3, P\_31]; \ c\_2 = PE[D\_3, P\_32]; \)

Those are the sides of the two triangles. Intersect them appropriately to obtain the vertices

\(A\_1 = PE[b\_1, c\_1]; B\_1 = PE[a\_1, c\_1]; C\_1 = PE[a\_1, b\_1]; 

    A\_2 = PE[b\_2, c\_2]; B\_2 = PE[a\_2, c\_2]; C\_2 = PE[a\_2, b\_2]; \)

and check for concurrency:

PD[PE[(Subscript[A, 1]),  (Subscript[A, 2])],  PE[PE[(Subscript[B, 1]), (Subscript[B, 2])],  PE[(Subscript[C, 1]), (Subscript[C, 2])]]] == 0  // 
      ExpandAll

Question 2 [10 points]

Question 2. How do you formulate the dual of Pappus' Theorem?  Does it need a separate proof?

Answer

If the alternate sides of a hexagon are concurrent, then the joins of its opposite points are also concurrent.

2. Harmony and triangles  [20points]

Question 1 [10 points]

Question 1.  Consider the triangle {u, v, w}.  Let X == a u + b v + c w be a point not on any of the sides of the triangle (which means none of a, b, and c are 0).  Join each of the vertices to X, and then intersect those lines with the sides of the given triangle, forming a  new triangle {(Subscript[U, 1]), (Subscript[V, 1]), (Subscript[W, 1])}.  Here is the computation:

{(Subscript[U, 1]), (Subscript[V, 1]), (Subscript[W, 1]), X, (Subscript[U, 2]), (Subscript[V, 2]), (Subscript[W, 2]), (Subscript[P, u]), (Subscript[P, v]), (Subscript[P, w])}

\(ClearAll[a, b, c]; 
X = \ a\ u + b\ v + c\ w; 

    U\_1 = PE[PE[u, X], PE[v, w]]\)(Subscript[V, 1]) = PE[PE[v, X], PE[w, u]](Subscript[W, 1]) = PE[PE[w, X], PE[u, v]]

Next, find the intersections of the corresponding sides of the triangles.  Here is the computation:

(Subscript[U, 2]) = PE[PE[v, w], PE[(Subscript[V, 1]), (Subscript[W, 1])]](Subscript[V, 2]) = PE[PE[w, u], PE[(Subscript[W, 1]), (Subscript[U, 1])]](Subscript[W, 2]) = PE[PE[u, v], PE[(Subscript[U, 1]), (Subscript[V, 1])]]

Prove by (a) symbolic computation and also by (b) reasoning from a previous theorem that the points {(Subscript[U, 2]), (Subscript[V, 2]), (Subscript[W, 2])} are collinear.

Answer

Here is the computation.  The theorem is a special case of Desargues' Theorem.

PD[PE[(Subscript[U, 2]), (Subscript[V, 2])], (Subscript[W, 2])]

Question 2 [5 points]

Question 2. Does the line found in Question 1 pass through any of the other named points in the configuration?

Answer

We calculate:

PD[PE[(Subscript[U, 2]), (Subscript[V, 2])], #]&/@{u, v, w, X, (Subscript[U, 1]), (Subscript[V, 1]), (Subscript[W, 1])}

By assumption about X, none of those are 0.

Question 3 [5 points]

Question 3. Here is a picture of a typical case of the configuration — once the line at infinity is made visible.  Find  as many cases of   harmonic separation among the named points as you can. (The points {u, v, w} have been renamed to make them more visible in the picture.)

\(a = \(-1\); b = \(-2\); c = 3; 

    Draw[{x, y, 
        z, {u, \*""\!\(P\_u\)""}, {v, \*""\!\(P\_v\)""}, {w, 
          \*""\!\(P\_w\)""}, {X, "X"}, {U\_1, 
          \*""\!\(U\_1\)""}, {V\_1, \*""\!\(V\_1\)""}, {W\_1, 
          \*""\!\(W\_1\)""}, 

        		{U\_2, \*""\!\(U\_2\)""}, {V\_2, \*""\!\(V\_2\)""}, {
          W\_2, \*""\!\(W\_2\)""}, 
		PE[u, X], PE[v, X], PE[w, X], 
        
		PE[V\_1, W\_1], PE[W\_1, U\_1], PE[U\_1, V\_1], 
\ \ 	
        PE[U\_2, V\_2]}, 
To -> {w, u + w, v + w, 5  x - \ y - 3\ z}]; 
    
ClearAll[a, b, c]; \)

Answer

{(Subscript[P, u]), (Subscript[P, v])} separates {(Subscript[W, 1]), (Subscript[W, 2])}
{(Subscript[P, v]), (Subscript[P, w])} separates {(Subscript[U, 1]), (Subscript[U, 2])}
{(Subscript[P, w]), (Subscript[P, u])} separates {(Subscript[V, 1]), (Subscript[V, 2])}

3. Discover a theorem yourself  [30points]

Question 1 [10 points]

Question 1.  Here are six points giving an instance of Pappus’ Theorem:

\(ClearAll[
      Subscript]; {A\_1, A\_2, A\_3} = {\(-u\) + w, 2\ u + w, 4\ u + w}; {
        B\_1, B\_2, B\_3} = {\(-v\) + w, 3\ v + w, 4\ v + w}; 


    Draw[{A\_1, A\_2, A\_3, B\_1, B\_2, B\_3, x, y}]; \)

There are, however, six possible hexagons depending in the order in which we join the points.

\(hex\_1 = {A\_1, B\_2, A\_2, B\_1, A\_3, B\_3, A\_1}; 

    hex\_2 = {A\_1, B\_2, A\_3, B\_1, A\_2, B\_3, A\_1}; 

    hex\_3 = {A\_1, B\_1, A\_2, B\_2, A\_3, B\_3, A\_1}; 

    hex\_4 = {A\_1, B\_1, A\_3, B\_2, A\_2, B\_3, A\_1}; 

    hex\_5 = {A\_1, B\_1, A\_2, B\_3, A\_3, B\_2, A\_1}; 

    hex\_6 = {A\_1, B\_1, A\_3, B\_3, A\_2, B\_2, A\_1}; \)

Why are these the only six possibilities that need be considered?

Answer

First argument:  There are only six hexagons needed, because:  
(a) We can always start the circuit through the vertices with the point (Subscript[A, 1]).  
(b)  The middle vertex (or 4th point) is either (Subscript[B, 1]) or (Subscript[B, 2]) or (Subscript[B, 3]), giving three choices.  
(c) Once the middle is chosen, there is only one choice for the pair of vertices next to (Subscript[A, 1]), since reading the hexagon backwards also gives a hexagon.  
(d)  Finally, once the pair around (Subscript[A, 1]) is chosen, then there are still two choices for the pair of A-vertices around the middle vertex.  This makes six!

Daniel Morris (a former student in the course) gives another argument:  For each point there are three points it can be joined to, and there are three points on a line, thus there are nine ways to draw one line connecting two points.  The opposite line to this must be chosen from the remaining four points and so there are four ways of choosing this line.  Once these two lines are chosen the hexagon is specified and so we get 9*4=36 hexagons.  However, since the order of the numbering of edges does not matter, we divide this by 6 to get 6 different haxagons.

Question 2 [15 points]

Question 2.  Here is a program that computes the Pappus line for any given hexagon.

Pappus[hh_] := 
      Module[{ss}, ss = Partition[hh, 2, 1]; 
        Factor[PE[
            PE[PE@@ss[[1]], 
              PE@@ss[[4]]], 
            PE[PE@@ss[[2]], 
              PE@@ss[[5]]]]]];

Here are the results for the six specific hexagons:

(Subscript[pap, 1]) = Pappus[(Subscript[hex, 1])](Subscript[pap, 2]) = Pappus[(Subscript[hex, 2])](Subscript[pap, 3]) = Pappus[(Subscript[hex, 3])](Subscript[pap, 4]) = Pappus[(Subscript[hex, 4])](Subscript[pap, 5]) = Pappus[(Subscript[hex, 5])](Subscript[pap, 6]) = Pappus[(Subscript[hex, 6])]

Look at the picture of these six lines.  Can you see in this configuration a possible theorem?  Can you prove it?

Draw[{(Subscript[pap, 1]), (Subscript[pap, 2]), (Subscript[pap, 3]), (Subscript[pap, 4]), (Subscript[pap, 5]), (Subscript[pap, 6])}];

Answer

The picture shows six Pappus lines, and they group into two concurrent triples.  Here they are (found by naming the lines in the picture):

\(\(Draw[{{pap\_1, \*""\!\(pap\_1\)""}, {pap\_2, 
          \*""\!\(pap\_2\)""}, {pap\_3, \*""\!\(pap\_3\)""}, {
          pap\_4, \*""\!\(pap\_4\)""}, {pap\_5, 
          \*""\!\(pap\_5\)""}, {pap\_6, \*""\!\(pap\_6\)""}}]; 
    \)\)

PD[(Subscript[pap, 1]), PE[(Subscript[pap, 4]), (Subscript[pap, 5])]]

PD[(Subscript[pap, 6]), PE[(Subscript[pap, 2]), (Subscript[pap, 3])]]

Question 3 [5 points]

Question 3.  This configuration started with specific points.  Can you rerun the computations to give a general proof?

Answer

Now, for the general tryout.  But we still use the x and y axes.

\(ClearAll[
      Subscript]; {A\_1, A\_2, A\_3} = {u + a\_1\ w, u + a\_2\ w, 
        u + a\_3\ w}; {B\_1, B\_2, B\_3} = {v + b\_1\ w, v + b\_2\ w, 
        v + b\_3\ w}; hex\_1 = {A\_1, B\_2, A\_2, B\_1, A\_3, B\_3, A\_1}; 
    hex\_2 = {A\_1, B\_2, A\_3, B\_1, A\_2, B\_3, A\_1}; 
    hex\_3 = {A\_1, B\_1, A\_2, B\_2, A\_3, B\_3, A\_1}; 
    hex\_4 = {A\_1, B\_1, A\_3, B\_2, A\_2, B\_3, A\_1}; 
    hex\_5 = {A\_1, B\_1, A\_2, B\_3, A\_3, B\_2, A\_1}; 
    hex\_6 = {A\_1, B\_1, A\_3, B\_3, A\_2, B\_2, A\_1}; 

    pap\_1 = Pappus[hex\_1]; 
pap\_2 = Pappus[hex\_2]; 

    pap\_3 = Pappus[hex\_3]; 
pap\_4 = Pappus[hex\_4]; 

    pap\_5 = Pappus[hex\_5]; 
pap\_6 = Pappus[hex\_6]; \)

Expand[PD[(Subscript[pap, 1]), PE[(Subscript[pap, 4]), (Subscript[pap, 5])]]]

Timing[Expand[PD[(Subscript[pap, 6]), PE[(Subscript[pap, 2]), (Subscript[pap, 3])]]]]

4. Finding points on and off a line  [25 points]

Question 1 [5 points]

Question.  Why does the following construction find at least  two points on a given line a x + b y + c z — often three?   But explain why there are clearly possibilities of degeneracy, and we cannot say which point is going to be non degenerate.

Flatten[Outer[PE, {a x + b y + c z}, {x, y, z}], 1]

Answer

The three lines are not concurrent.  Hence, any other line must cut two of them in distinct points.  If the line is one of them, it still cuts the other two in two points.

Question 2 [10 points]

Question 2.  Is there a simple program that always finds without failure a single point on a line?   And is there a program that always finds a single point off a line?  Test your answers.

Answer

Here is a formula that finds a point on a line:

ON[line_] := If[PD[line, u] == 0, u, PE[line, z]]

A test:

line = 7 x - 5 y + 14 z;
ON[line]
PD[line, ON[line]]

line = a x + b y + c z; 
ON[line]

Here is a formula that finds a point off a line:

OFF[line_] := 
      If[PD[line, u] ≠ 0, u, If[PD[line, v] ≠ 0, v, w]]

line = 7 x - 5 y + 14 z; OFF[line]

line =  - 5 y + 14 z; OFF[line]

line = a x + b y + c z; OFF[line]

Question 3 [5 points]

Question 3.  Given a list of lines, how can we find a point  not on any of them?

Answer

Tricky Algorithm.  Consider the following kinds of points (eventually to be indexed by integers):

pt[n_] := n^2 u + n v + w

We see that no three distinct points in this family (even for complex parameters) can be collinear:

PD[PE[pt[a],pt[b]],pt[c]] // Factor

Now suppose we consider any list of lines {(Subscript[l, 1]), (Subscript[l, 2]), (Subscript[l, 3]), . . . , (Subscript[l, n])} —distinct or not.  Try the points in order in the list {pt[1],pt[2],...,pt[2n + 1]} to see which is off all the lines in the given list.  If we get as far as pt[2n], and each of the 2n are on one of the lines, then the next point pt[2n+1] will be off all them—since otherwise there would be one of the lines containing three of these points!

Here is an implementation of the algorithm:

findpt[n_][list_] := If[MemberQ[PD[#,pt[n]]& /@ list, 0],
                     findpt[n+1][list],
                     pt[n]];

The answer is findpt[1], but findpt[0] or findpt[-5] would work as well.

ll = {x-y, x - 2y, x + 4z, x - 2y - 3z};
pp = findpt[1][ll]

PD[#,%]& /@ ll

Draw[Append[ll,pp]];

ll = {x-y, x - 2y, x + 4z, x - 2y - 3z};
pp = findpt[-3][ll]

PD[#,%]& /@ ll

Draw[Append[ll,pp]];