Preparation for joint work, connecting dynamic geometry with proof and construction tools

Descriptive geometry

De Preparation for joint work, connecting dynamic geometry with proof and construction tools
Aller à la navigation Aller à la recherche
Example

This is an example taught in the subject "descriptive geometry" (Darstellende Geometrie) at Austrian high schools and in specific engineering studies.

The problem is: Given a plane <math>\epsilon</math> by the traces <math>s_1, s_2</math> and a point <math>P</math> on <math>\epsilon</math> by projection by <math>P^{\prime\prime}</math>, 
find a point <math>Q</math> with projection <math>Q^\prime</math> in top view and projection <math>Q^{\prime\prime}</math> in front view sucht that <math>Q</math> is on 
the line of steepest descent on <math>\epsilon</math> in a distance of <math>3 {\it units}</math> below <math>P</math>.
Construction

The following construction has <math>A, B, C</math> as free points defining the plain <math>\epsilon</math> by the traces <math>s_1, s_2</math> and <math>P^{\prime\prime}</math> as free point. The other free points <math>E, G, H, I</math> are caused by colouring of the resulting lines <math>d^\prime, d^{\prime\prime}, d^{\prime\prime\prime}</math>.


Prop-descriptive-geo.png

Notation

For a readable description of the construction we propose the following notation

<math>A^\prime, B^{\prime\prime}, P^{\prime\prime},X_1,X_2</math> points in the plane (TODO make consistent using <math\prime</math> in construction)
<math>P</math> point in the 3-dim. space with projections <math>(P^{\prime},P^{\prime\prime})</math>
<math>s_1,s_2,n</math> straight lines
<math>\overline{l\,}</math> length
A^\prime B^\prime|</math> distance between point <math>A^\prime </math> and <math> B^\prime</math> on the plane
<math> A B </math> distance between point <math>A </math> and <math> B</math> in space
<math>\overline{A B}</math> the line through points <math>A, B</math>
<math>P \bot n</math> the line through point <math>P</math> perpendicular to line <math>n</math>
<math>P n</math> the line through point <math>P</math> parallel to line <math>n</math>
<math>n\vdash X^\prime \overline{l\,} +</math> the point on line <math>n</math> with distance <math>\overline{l\,}</math> from point <math>X^\prime</math> in positive <math>+</math>orientation
<math>a \cap b</math> the point intersecting lines <math>a</math> and <math>b</math>
Program

Using these description we give a program below; the program takes the names <math>s_1,s_2, P^{\prime\prime}, \overline{d\,}</math> as arguments together with the respective coordinates and values. The names as arguments are useful for re-using the program as <math>{\it SubProblem}</math>.

The method names the horizontal axis <math>x</math>, the vertical axis <math>y</math> and creates an edge view of plane <math>\epsilon</math> in point <math>P^\prime</math> by <math>{\it SubProblem}({\it Geo},[{\it make},{\it proj}])</math>, which takes trace <math>s_1</math> and <math>P^\prime]</math> as arguments, constructs auxiliary view <math>n</math> and returnes the projection <math>p</math> (in the construction right bottom containing <math>P^{\prime\prime\prime}, Q^{\prime\prime\prime}</math>):

01  Program fallLinie <math>s_1(A(-5,0), B(0,-4))\;\;s_2(A(-5,0), C(0,6))\;\;P^{\prime\prime}(-1,5)</math>
      <math>(\overline{d\,}=3)</math> =
02    let <math>X_1 = {\it Take}\;x \cap \overline{P^{\prime\prime}B};</math>
03        <math>X_2 = {\it Take}\;X_1 || y;</math>
04        <math>P^\prime = {\it Take}\;\overline{X_2 O} \cap (P^{\prime\prime}|| y);</math>
05        <math>p = {\it SubProblem}({\it Geo},[{\it make},{\it proj}],[{\it make},{\it proj}])\;\;[s_1, P^\prime]</math>
06        <math>P^{\prime\prime\prime} = {\it Take}\;(P^\prime \bot n)\cap p ;</math>
07        <math>Q^{\prime\prime\prime} = {\it Take}\;p\vdash P^{\prime\prime\prime}\overline{d\,}- ;</math>
08        <math>Q^\prime = {\it Take}\;(Q^{\prime\prime\prime}\bot n)\cup n ;</math>
09        <math>X_8 = {\it Take}\;(Q^{\prime\prime\prime}\bot n)\cap x ;</math>
10        <math>X_9 = {\it Take}\;s_2\cap (X_8\bot x) ;</math>
11        <math>Q^{\prime\prime} = {\it Take}\;(X_9||x)\cap (Q^\prime\bot x) ;</math>
12    in <math>Q(Q^\prime,Q^{\prime\prime}) </math>


The tactics propagating the construction are Take and Subproblem.

Euqivalence of constructions

The program above shows a nice example for equivalences of constructions probably not yet accompished by ATP:

In lines 02..04 for point <math>P</math> on plane <math>\epsilon</math> the projection <math>P^\prime</math> is constructed from the given projection <math>P^{\prime\prime}</math> by using another point already given on <math>\epsilon</math>, <math>C=O</math>.

In lines 09..11 for point <math>Q</math> on plane <math>\epsilon</math> the projection <math>Q^{\prime\prime}</math> is constructed from the given projection <math>Q^\prime</math> by using the traces of <math>\epsilon</math>.

Another possibility would be to pack the problem for finding the other projection into a <math>{\it SubProblem}</math>, which would have the same postcondition for all methods:

input:         plain <math>\epsilon(s_1,s_2)</math>, point <math>P</math> with projection <math>P^\prime</math>
precondition:  <math>P \in \epsilon(s_1,s_2)</math>, lots of non-degeneracy conditions
output:        point <math>P^{\prime\prime}</math>
postcondition: <math>P(P^\prime,P^{\prime\prime})</math>

The above specification has different formalizations for different ATP-methods (see another example for the Area method). Particularly challenging are the postconditions: The postcondition for the <math>{\it SubProblem}</math> in the above program could be

<math>\forall P.\;P\in\epsilon\Leftrightarrow P^{\prime\prime\prime}\in n</math>