PET (Prime Exponent Tree) è un modello strutturale per rappresentare la fattorizzazione degli interi come alberi ricorsivi basati sugli esponenti primi.
L'idea centrale è separare due aspetti degli interi:
- il valore numerico
- la struttura moltiplicativa
Questo permette di studiare la geometria strutturale della fattorizzazione degli interi.
12 = 2² × 3
PET(12):
•
├─2
│ •
│ └─2
└─3
Installazione locale:
pip install -e .Esempi:
pet encode 72
pet metrics 256Generare un dataset:
pet scan 2 1000000 --jsonl docs/reports/data/scan-2-1000000.jsonlLa fattorizzazione prima descrive gli interi come prodotti di primi:
N = ∏ p_i^{e_i}
Nel modello PET:
- ogni fattore primo genera un nodo
- gli esponenti vengono rappresentati ricorsivamente come alberi PET
Questo produce una rappresentazione:
- canonica
- invertibile
- lossless
Il progetto ora tiene i risultati empirici bounded in report dedicati, invece di lasciare nel README numeri e claim destinati a diventare stantii.
Entry point attuali:
docs/SPEC.md— formato, schema, metriche e contratti di comportamentodocs/STATUS.md— cosa è definito, provato, empirico o ancora apertodocs/reports/metrics-2-10000.md— prima baseline riproducibile delle metrichedocs/reports/atlas-2-100000.md— empirical atlas report per2..100000docs/reports/atlas-2-1000000.md— empirical atlas report per2..1000000docs/reports/signatures-catalog-2-1000000.md— primo catalogo di signature strutturalidocs/reports/families-benchmark-disjoint.md— benchmark su famiglie classiche disgiuntedocs/reports/observation-pipeline.md— vocabolario per observation, bounded empirical pattern, conjecture ed established statement
Generare un dataset JSONL:
pet scan 2 1000000 --jsonl docs/reports/data/scan-2-1000000.jsonlRiassumere una scan in stile atlas:
python tools/atlas_summary.py docs/reports/data/scan-2-1000000.jsonlIspezionare i generatori di shape con metriche:
python3 -m src.pet.cli shape-generators docs/reports/data/scan-2-1000000.jsonl --metricsEseguire il benchmark tra famiglie classiche:
python tools/cluster_families_disjoint.pyLe conclusioni forti non devono vivere nel README.
Il README deve servire soprattutto come:
- punto di ingresso rapido
- guida minima d'uso
- mappa dei documenti stabili
- accesso ai workflow riproducibili
Le osservazioni bounded, i benchmark e i cataloghi strutturali stanno nei
report dedicati sotto docs/reports/.