\
# Windows Quick Start

## Requirements

- 64-bit Windows;
- Python 3.10, 3.11, 3.12, or 3.13;
- internet access during the first installation, unless SymPy and its dependencies have already been downloaded.

The release audit was performed on Linux with Python 3.13.5 and SymPy 1.14.0. The batch files should be tested once on the author’s Windows machine before public release.

## Method A: double-click workflow

1. Download and extract `alexander-grobner-0.4.1-quickstart-en.zip`.
2. Open the extracted folder.
3. Double-click `START_HERE_WINDOWS.bat`.
4. Wait for the message `Installation completed successfully`.
5. Double-click `RUN_DEMO_WINDOWS.bat` to compute the bundled `L8n5` example.
6. Double-click `VERIFY_PAPER_EXAMPLES_WINDOWS.bat` to recompute the frozen paper examples.
7. To compute your own input, drag a JSON file onto `COMPUTE_INPUT_WINDOWS.bat`; enter the required value of `k` when prompted.

Do not launch the batch files while they are still inside the ZIP viewer. Extract the ZIP first.

## Method B: PowerShell

Open PowerShell in the extracted folder and run:

```powershell
py -3 -m venv .venv
.\.venv\Scripts\python.exe -m pip install alexander_grobner-0.4.1-py3-none-any.whl
.\.venv\Scripts\python.exe -m alexander_grobner doctor
.\.venv\Scripts\python.exe -m alexander_grobner demo L8n5
.\.venv\Scripts\python.exe -m alexander_grobner verify -o section3_reproduction.json
```

Activation of the virtual environment is optional. Calling `.venv\Scripts\python.exe` directly avoids PowerShell execution-policy problems.

## Expected first demo

The command

```powershell
.\.venv\Scripts\python.exe -m alexander_grobner demo L8n5
```

computes `AG_2` for the frozen oriented and ordered `L8n5` input. The reduced basis should contain

```text
t1*t2 - t1 - t2 + 1
t1*t3 - t1 - t3 + 1
t2**2 - 1
t2*t3 - t2 - t3 + 1
t3**2 - 1
```

## Verify the paper examples

```powershell
.\.venv\Scripts\python.exe -m alexander_grobner verify -o section3_reproduction.json
```

This writes a machine-readable record to `section3_reproduction.json`. Each frozen case is recomputed in a fresh Python process by default.

## Compute your own JSON input

First inspect the matrix size and candidate-minor count:

```powershell
.\.venv\Scripts\python.exe -m alexander_grobner inspect my_link.json -k 2
```

Then compute:

```powershell
.\.venv\Scripts\python.exe -m alexander_grobner compute my_link.json -k 2
.\.venv\Scripts\python.exe -m alexander_grobner compute my_link.json -k 2 --format json -o my_link_AG2.json
```

## Common problems

- **Python was not found:** install a supported 64-bit Python, reopen the folder, and try again.
- **PowerShell activation is blocked:** do not activate; call `.venv\Scripts\python.exe` directly.
- **SymPy cannot be downloaded:** install on a connected machine or download the required wheels separately.
- **Too many minors:** run `inspect`; do not use `--force` until the combinatorial size is understood.
- **Different users obtain different bases:** compare orientation, component order, variable order, `k`, package version, SymPy version, and the input JSON SHA-256.

See `docs/TROUBLESHOOTING.md` for details.
