\begin{lisp:documentation}{*prover$-$order*}{VARIABLE}{\#'grevlex$>$ } Admissible monomial order used internally in the proofs of theorems. \end{lisp:documentation} \begin{lisp:documentation}{csym}{FUNCTION}{symbol number } Return symbol whose name is a concatenation of (SYMBOL$-$NAME SYMBOL) and a number NUMBER. \end{lisp:documentation} \begin{lisp:documentation}{real$-$identical$-$points}{MACRO}{a b } Return [ (A1$-$B1)**2 + (A2$-$B2)**2 ] in lisp (prefix) notation. The second value is the list of variables (A1 B1 A2 B2). Note that if the distance between two complex points A, B is zero, it does not mean that the points are identical. Use IDENTICAL$-$POINTS to express the fact that A and B are really identical. Use this macro in conclusions of theorems, as it may not be possible to prove that A and B are trully identical in the complex domain. \end{lisp:documentation} \begin{lisp:documentation}{identical$-$points}{MACRO}{a b } Return [ A1$-$B1, A2$-$B2 ] in lisp (prefix) notation. The second value is the list of variables (A1 B1 A2 B2). Note that sometimes one is able to prove only that (A1$-$B1)**2 + (A2$-$B2)**2 = 0. This equation in the complex domain has solutions with A and B distinct. Use REAL$-$IDENTICAL$-$POINTS to express the fact that the distance between two points is 0. Use this macro in assumptions of theorems, although this is seldom necessary because we assume most of the time that in assumptions all points are distinct if they are denoted by different symbols. \end{lisp:documentation} \begin{lisp:documentation}{perpendicular}{MACRO}{a b c d } Return [ (A1$-$B1) * (C1$-$D1) + (A2$-$B2) * (C2$-$D2) ] in lisp (prefix) notation. The second value is the list of variables (A1 A2 B1 B2 C1 C2 D1 D2). \end{lisp:documentation} \begin{lisp:documentation}{parallel}{MACRO}{a b c d } Return [ (A1$-$B1) * (C2$-$D2) $-$ (A2$-$B2) * (C1$-$D1) ] in lisp (prefix) notation. The second value is the list of variables (A1 A2 B1 B2 C1 C2 D1 D2). \end{lisp:documentation} \begin{lisp:documentation}{collinear}{MACRO}{a b c } Return the determinant det([[A1,A2,1],[B1,B2,1],[C1,C2,1]]) in lisp (prefix) notation. The second value is the list of variables (A1 A2 B1 B2 C1 C2). \end{lisp:documentation} \begin{lisp:documentation}{equidistant}{MACRO}{a b c d } Return the polynomial [(A1$-$B1)**2+(A2$-$B2)**2$-$(C1$-$D1)**2$-$(C2$-$D2)**2] in lisp (prefix) notation. The second value is the list of variables (A1 A2 B1 B2 C1 C2 D1 D2). \end{lisp:documentation} \begin{lisp:documentation}{euclidean$-$distance}{MACRO}{a b r } Return the polynomial [(A1$-$B1)**2+(A2$-$B2)**2$-$R\symbol{94}2] in lisp (prefix) notation. The second value is the list of variables (A1 A2 B1 B2 R). \end{lisp:documentation} \begin{lisp:documentation}{midpoint}{MACRO}{a b c } Express the fact that C is a midpoint of the segment AB. Returns the list [ 2*C1$-$A1$-$B1, 2*C2$-$A2$-$B2 ]. The second value returned is the list of variables (A1 A2 B1 B2 C1 C2). \end{lisp:documentation} \begin{lisp:documentation}{translate$-$statements}{MACRO}{{\sf \&rest} statements } {\ } % NO DOCUMENTATION FOR TRANSLATE-STATEMENTS \end{lisp:documentation} \begin{lisp:documentation}{translate$-$assumptions}{MACRO}{{\sf \&rest} assumptions } {\ } % NO DOCUMENTATION FOR TRANSLATE-ASSUMPTIONS \end{lisp:documentation} \begin{lisp:documentation}{translate$-$conclusions}{MACRO}{{\sf \&rest} conclusions } {\ } % NO DOCUMENTATION FOR TRANSLATE-CONCLUSIONS \end{lisp:documentation} \begin{lisp:documentation}{translate$-$theorem}{MACRO}{({\sf \&rest} assumptions) ({\sf \&rest} conclusions) } Translates a planar geometry theorem into a system of polynomial equations. Each assumption or conclusion takes form of a declaration (RELATION$-$NAME A B C ...) where A B C are points, entered as symbols and RELATION$-$NAME is a name of a geometric relation, for example, (COLLINEAR A B C) means that points A, B, C are all collinear. The translated equations use the convention that (A1,A2) are the coordinates of the point A. This macro returns multiple values. The first value is a list of polynomial expressions and the second value is an automatically generated list of variables from points A, B, C, etc. For convenience, several macros have been defined in order to make specifying common geometric relations easy. \end{lisp:documentation} \begin{lisp:documentation}{prove$-$theorem}{MACRO}{({\sf \&rest} assumptions) ({\sf \&rest} conclusions) {\sf \&key} (order *prover$-$order*) } Proves a geometric theorem, specified in the same manner as in the macro TRANSLATE$-$THEOREM. The proof is achieved by a call to IDEAL$-$POLYSATURATION. The theorem is true if the returned value is a trivial ideal containing 1. \end{lisp:documentation}