# SymPy Integration (overview)

This document provides an overview of the planned SymPy integration for ggblab.

NOTE: Advanced, implementation-specific guides and examples live in the
optional `ggblab_extra` package. See `docs/ggblab_extra_index.md` for how to
access those files or install `ggblab_extra` locally.

## Goals

- Provide a bridge between GeoGebra constructions and symbolic mathematics
  (SymPy) for verification and code generation.
- Support symbolic proofs of geometric relations (collinearity, concurrency,
  equal distances/angles, tangency, etc.).
- Enable export of symbolic results to Manim or other animation tooling.

## Scope (core)

- Lightweight converters from GeoGebra expression tokens → SymPy expressions.
- A small set of verification utilities for common geometric predicates.
- APIs for requesting symbolic computations from the notebook and returning
  human-readable proofs and verification reports.

## Advanced features (ggblab_extra)

The following capabilities are planned as advanced features and are provided
by the optional `ggblab_extra` package rather than the core `ggblab`:

- Full construction-to-SymPy translation covering complex dependent objects.
- Automated proof generation pipelines and step-by-step symbolic reasoning.
- Code generation helpers (SymPy → Python/Manim snippets) for reproducible
  visualizations.

## How to use (developer notes)

1. Consider enabling SymPy in your environment: `pip install sympy`.
2. Use the high-level API (planned):

```
from ggblab import GeoGebra
ggb = await GeoGebra().init()
# hypothetical API
res = await ggb.sympy.verify("Circle(A,B) is tangent to Line(C,D)")
```

For full implementation details and examples, consult the `ggblab_extra`
package documentation or install the extras locally and copy their docs into
`docs/ggblab_extra/`.