GEOMETOR (geometor.model + Ecosystem): Exact Constructive Synthesis

  • Core Kernel: model/src/geometor/model/ (v0.6.0, MIT) + 32 sister repositories across 7 layers

  • Mathematical Foundation: Targeted constructive ancestral DAGs (Model(..., auto_intersect=False)) over exact SymPy Algebraic Number Polynomial (ANP) fields, System-E-equivalent topological selectors, Norman J. Wildberger’s Rational Trigonometry invariants, and Byrne/Rougeux-inspired :g: \(\leftrightarrow\) .euclid-graphic SVGs

1. Core Kernel Architecture (geometor.model)

Auditing all modules in model/src/geometor/model/ confirms how GEOMETOR avoids the traps that afflict generic CAS libraries and floating-point sketchers:

  1. Strict Zero-Float Gate (`model.py`): Model.__setitem__ inspects every coordinate expression and rejects float / sp.Float contamination at insertion time, guaranteeing 100% exact symbolic lineage across \(\mathbb{Q}\), \(\mathbb{Q}(\sqrt{d})\), \(\mathbb{Q}(\phi)\), and nested quadratic towers.

  2. Targeted Ancestral DAG & Closed-Form Intersections (`intersections.py`): Setting auto_intersect=False replaces \(O(N^2)\) combinatorial intersection explosion with explicit model.intersect(el1, el2, ...) calls solved via closed-form radical-axis quadratic formulas—never invoking SymPy’s slow Circle.intersection / solve()—and folded cleanly via with model.subconstruction(...) as scope: scope.keep(...).

  3. Deterministic Topological Selectors: side_of=(p1, p2, ±1) (via exact signed_area2), between=(p1, p2), beyond=(p1, p2), on_ray=(p1, p2), and other_than=pt disambiguate quadratic roots without floating-point branch jumping.

  4. Canonical ``ANP`` Zero-Testing & Rational Trigonometry (`algebra.py`, `invariants.py`, `proof.py`): zero_test reduces nested radical expressions inside sp.QQ.algebraic_field via primitive_element, powering @proposition assertions (assert_equal, assert_spread_equal, assert_perpendicular, assert_parallel, assert_congruent, assert_area_equal) alongside polynomial quadrance, line_spread, vertex_spread, signed_area2, and cross_ratio.

< A B C > ( B C ) (Q = 225) ( C B ) (Q = 225) ( A C ) (Q = 169) ( C A ) (Q = 169) ( A B ) (Q = 196) ( B A ) (Q = 196) ( X3 A ) (Q = 4225/64) ( A J ) (Q = 100) ( J A ) (Q = 100) ( B M ) (Q = 7056/25) ( M B ) (Q = 7056/25) ( X3 X4 ) (Q = 265/64) ( X4 X3 ) (Q = 265/64) ( X5 Mc ) (Q = 4225/256) ( C R ) (Q = 208) ( R C ) (Q = 208) ( A U ) (Q = 784/5) ( U A ) (Q = 784/5) ( X1 Hc ) (Q = 17) ( Hc Mc ) (Q = 4) ( Mc Hc ) (Q = 4) ( X1 Tc ) (Q = 16) [ B C ] [ D E ] [ A C ] [ F G ] [ A B ] [ H I ] [ A Ma ] [ B Mb ] [ K L ] [ N O ] [ X3 X4 ] [ P Q ] [ C R ] [ S T ] [ A U ] [ V W ] [ X Y ] A = [0, 0] B = [14, 0] C = [5, 12] Ma = [19/2, 6] Mb = [5/2, 6] Mc = [7, 0] X2 = [19/3, 4] X3 = [7, 33/8] Hc = [5, 0] X4 = [5, 15/4] X5 = [6, 63/16] X1 = [6, 4] Heronian 13-14-15: X1..X5 all in Q! Euler Line: X4 - X3 = 3(X2 - X3) AA BB CC MaMa MbMb McMc X2X2 X3X3 HcHc X4X4 X5X5 X1X1 + − ⟲ Lbl Gde

Figure 8 — Exact Rational Triangle Centers & Nine-Point Circle on the 13-14-15 Heronian Triangle: Constructed purely by compass and straightedge in geometor.codes.figures, yielding exact rational coordinates X1 = (6, 4), X2 = (19/3, 4), X3 = (7, 33/8), X4 = (5, 15/4), and X5 = (6, 63/16) on the Euler line X3X4.

[ O C1 ] [ O C2 ] [ A1 B2 ] [ A2 B1 ] [ A1 C2 ] [ A2 C1 ] [ B1 C2 ] [ B2 C1 ] [ X Z ] O = [0, 0] A1 = [2, 0] B1 = [3, 0] C1 = [6, 0] A2 = [1, 1] B2 = [5/2, 5/2] C2 = [4, 4] X = [23/11, 5/11] Y = [26/11, 8/11] Z = [38/11, 20/11] Pappus Axis: det[X, Y, Z] = 0 Harmonic Range: CR(O, B1; A1, C1) = -1 OO A1A1 B1B1 C1C1 A2A2 B2B2 C2C2 XX YY ZZ + − ⟲ Lbl Gde

Figure 9 — Exact Projective Pappus Hexagon & Harmonic Range: Verifying signed_area2(X, Y, Z) == 0 along Pappus axis XZ and cross_ratio(O, B1, A1, C1) == -1 on OC1.

2. Honest Self-Audit & Synthesis Roadmap

Comparing geometor.model (v0.6.0) against our 10 peer systems highlights three honest internal limitations—each directly addressed by our 11 Architectural Blueprints:

  1. High-Complexity Fallback in ``algebra.zero_test`` (`lines 247-251`): When count_ops(expr) > 25, zero_test skips primitive_element and falls back to abs(expr.evalf(80)) < 1e-65. Upgrading this to constructive BFMSS root-separation bounds (Blueprint 1) achieves 100% mathematical soundness at arbitrary tower depth.

  2. Step AST & Géométrographie Telemetry: Recording structured selector ASTs (Blueprint 2) and Émile Lemoine’s \((R_1, R_2, C_1, C_2, C_3)\) operational counts (Blueprint 3) on Step turns every Model into both a LeanEuclid proof generator and a quantitative complexity benchmark.

  3. First-Class Inversion, :math:`3 times 3` Conics & Area Elimination: Promoting geometor.model.inversion (Blueprint 4), ProjectiveConic \(3 \times 3\) symmetric matrices in geometor.pappus (Blueprint 5), and Chou–Gao–Zhang backward elimination in geometor.wildberger (Blueprint 6) completes a unified multi-lens engine unmatched by any single external system.