# Technical entry point to the Connectedness Atlas

The atlas is a research companion by Bernat Espigulé. Begin with a concrete parameter, dataset or named claim. The [mathematical guide](https://complextrees.com/4D/docs/) introduces the objects behind the interface.

Follow the repository’s [editorial and attribution policy](../../EDITORIAL_POLICY.md) when changing public copy, metadata, citations or research descriptions. Complex Trees is a research and mathematical-visualization project by Bernat Espigulé.

## Source and attribution checks

Distinguish published literature, published work by Espigulé and collaborators, current manuscript results, computational verification, observations, conjectures and explorer functionality. A ledger entry marked `proved-in-manuscript` records an argument in that manuscript; it does not establish peer review or priority. Keep the author, theorem reference, dated source, hypotheses and computational scope together.

Check important citations against the primary source. Aoki–Fujimura–Taniguchi’s Theorem 1.1 concerns normalized holomorphic systems; its strict square-sum bound, together with the separate binary fact in Remark 1.1, gives a DD connectedness implication. Cite it at that scope. The manuscript supplies the other orientation arguments. Calegari’s *Wiggle Island* concerns embeddedness in the DD(1,1) zipper slice, whereas the Calegari–Koch–Walker and Calegari–Walker similarity-pair papers study the common-multiplier DD slice.

Preserve the specific contributions documented here: four-dimensional charts, contact fibres, marked stable families and the implemented exploration tools. Explain display geometry from the actual projection code; do not infer a global topological conclusion or a historical dependency from a rendered shape. When the source does not resolve attribution, priority or proof status, retain narrower factual wording and record the unresolved question for author review.

| Resource | Scope |
|---|---|
| [`programme.json`](../data/programme.json) | Programme identity, authorship and main routes. |
| [`publications.json`](../data/publications.json) | Actual titles, authors, dates, status, links and citations. |
| [`research-ledger.json`](../data/research-ledger.json) | Named claims, sources, hypotheses and evidence categories. |
| [`datasets.json`](../data/datasets.json) | Domains, dimensions, checksums and finite-search scope. |
| [`publication-assets.json`](../data/publication-assets.json) | Dated file sizes and SHA-256 digests. |
| [`parameter.schema.json`](../schemas/parameter.schema.json) | Portable mathematical records independent of viewer sessions. |
| [`real-contact.json`](../examples/real-contact.json) | An exact dyadic example with an analytic source. |
| [`CITATION.cff`](../CITATION.cff), [`citations.bib`](../citations.bib) | Companion and research citations. |

## Decode a parameter

For `p={family,w,rho,alpha,gamma}`, angles are radians and

```text
lambda_minus = (2*w/rho) * exp(i*(alpha-gamma))
lambda_plus  = (2*(1-w)/rho) * exp(-i*(alpha+gamma))
DD: parity (0,0); DO: parity (0,1); OO: parity (1,1)
f_minus(z) = -1 + lambda_minus * C_parity_minus(z)
f_plus(z)  =  1 + lambda_plus  * C_parity_plus(z)
C_0(z)=z; C_1(z)=conjugate(z)
```

Validate finite numbers, `0<w<1`, and `rho>2*max(w,1-w)`. The final coupled inequality is documented in the schema; standard single-field JSON Schema bounds alone cannot enforce it. Reject an invalid mathematical record. UI clamping is a separate operation.

The reciprocals `c1=1/lambda_minus`, `c2=1/lambda_plus` each have modulus greater than one. Opposite-map inversion still includes conjugation. A source family’s endpoint parameter is not automatically a canonical coefficient.

The phase lattice identifies `(alpha,gamma)` with `(alpha+pi,gamma+pi)`. Branch exchange changes `w` to `1-w`, reverses `alpha`, and exchanges orientations and address symbols. Retain numeric weight, phases, radius and orientation; colour or a screen point alone is insufficient.

## Word order and contact

Words are outermost first: `f_12=f_1∘f_2`. With accumulated word `f_u(z)=t_u+L_u C_epsilon_u(z)`, appending `j` gives

```text
t_uj = t_u + L_u * C_epsilon_u(t_j)
L_uj = L_u * C_epsilon_u(lambda_j)
epsilon_uj = epsilon_u XOR epsilon_j
```

The contact difference is `Dp=L_minus(Kp)-L_plus(Kp)`, with marked point **2**. Legacy `Delta=f_minus(Kp)-f_plus(Kp)` equals `Dp-2` and has target **0**. Account for this translation in comparisons.

General difference specimens need two separate address tails and contraction products. A homogeneous reduction requires the correct common linear part; equal moduli are insufficient.

## Read evidence precisely

An exact family result is conditional on its hypotheses. A validated stability cell establishes its conclusion throughout that cell. A rational disconnection certificate must pass the independent complete-cover checker. Numerical exclusion, finite survival and work-cap termination remain distinct outcomes.

Finite fingerprints, contact graphs, point-cloud holes and interpolated sheets do not establish a limiting topological invariant. The 3D tree is a finite prefix scaffold with scale height. A stable zipper slice concerns excess coding identifications in its particular marked family.

For complete length-N prefix centres, the manuscript’s tail estimate also bounds the finite hull approximation in exact arithmetic. For a subset of sampled words, truncation bounds describe those evaluated words and do not alone prove Hausdorff coverage. Floating-point, binning and sampling errors are separate.

## Inspect the exact example

```python
import cmath
import json
import math
from urllib.request import urlopen

with urlopen("https://complextrees.com/4D/examples/real-contact.json") as response:
    record = json.load(response)
p = record["parameter"]
assert p["family"] in {"DD", "DO", "OO"}
assert all(math.isfinite(p[k]) for k in ("w", "rho", "alpha", "gamma"))
assert 0 < p["w"] < 1
assert p["rho"] > 2 * max(p["w"], 1-p["w"])
a = (2*p["w"]/p["rho"]) * cmath.exp(1j*(p["alpha"]-p["gamma"]))
b = (2*(1-p["w"])/p["rho"]) * cmath.exp(-1j*(p["alpha"]+p["gamma"]))
print(a, b, record["evidence"])
```

This gives the dyadic interval example `a=b=1/2`. General trigonometric slider coefficients are floating-point evaluations.

## Reuse

Cite the particular dated paper, source family or dataset used and preserve its actual authors. Cite Bernat Espigulé’s companion when referring to the explorer or original visual research programme. The catalogue grants no additional licence. A new computation should retain its exact parameter, domain, budgets, arithmetic, source revision and evidence category.
