Exclusion
Deux électrons ne peuvent pas occuper exactement le même état.
T1 interdit les auto-transitions mod 3 : un état ne peut pas se recopier sur lui-même. La seule duplication autorisée vient d’une involution de spin, d’où le facteur 2.
Chimie PT / dérivation exécutable
Première démonstration robuste
En PT, le tableau des éléments n’est pas un catalogue empirique : sa forme vient d’une chaîne courte. Le spin donne le facteur 2, les orientations donnent 1, 3, 5, 7, et les capacités deviennent 2, 6, 10, 14. De là, les blocs, les périodes et plusieurs anomalies de configuration tombent ensemble.
Deux électrons ne peuvent pas occuper exactement le même état.
T1 interdit les auto-transitions mod 3 : un état ne peut pas se recopier sur lui-même. La seule duplication autorisée vient d’une involution de spin, d’où le facteur 2.
Chaque famille orbitale a un nombre déterminé de directions.
Pour un indice orbital ℓ, les valeurs magnétiques vont de -ℓ à +ℓ. Cela donne 2ℓ+1 positions discrètes : 1, 3, 5, 7 pour s, p, d, f.
On multiplie les directions par les deux spins.
Chaque position peut recevoir deux spins opposés. La capacité devient donc Cap(ℓ)=2(2ℓ+1), ce qui produit directement 2, 6, 10, 14.
Le tableau s’arrête à s, p, d, f pour une raison arithmétique.
La profondeur D=2 donne quatre types orbitaux, le groupe V4. Le pas suivant demanderait 9 ou p=11, mais 9 est composite et p=11 reste en écho.
Le tableau périodique est familier, visuel et très contraint. C’est exactement ce qu’il faut pour tester une théorie : la PT n’a pas le droit de choisir librement les blocs, les capacités ou les longueurs de période.
La force de cette page est donc sa rigidité : les nombres
2, 6, 10, 14 viennent de
2(2ℓ+1), les périodes
2, 8, 8, 18, 18, 32, 32 viennent de
L(k)=2⌈k/2⌉², puis les anomalies
d5/d10 et l’absence de bloc g
deviennent des tests secondaires.
| Étape | Ce qui est forcé | Résultat chimique |
|---|---|---|
| Orientations | 2ℓ+1 = 1,3,5,7 | blocs s, p, d, f |
| Spin | 2(2ℓ+1) | capacités 2, 6, 10, 14 |
| Profondeur | s → p → d → f | périodes 2, 8, 18, 32 |
| Stabilités | d5 et d10 | Cr, Cu, Pd, Ag, Au... |
La page ne propose pas une nouvelle nomenclature à mémoriser. Elle reprend les objets usuels de la chimie quantique et montre comment la PT transforme des regles empiriques en consequences structurelles.
| Objet chimique | Formulation usuelle | Lecture PT |
|---|---|---|
| Pauli | Principe quantique imposé aux électrons. | Exclusion issue de T1 : une involution de spin donne le facteur 2. |
| Capacités | Les sous-couches contiennent 2, 6, 10, 14 électrons. | Capacité forcée par 2(2ℓ+1) avec 2ℓ+1 = 1, 3, 5, 7. |
| Madelung | Règle empirique n+l, puis n. | Ordre de remplissage motivé par la fonction maîtresse décroissante du crible. |
| Cr, Cu, Pd, Au | Configurations anormales mémorisées comme exceptions. | Stabilités informationnelles d5/d10 du pentagone Z/10Z. |
| Lanthanides / actinides | Lignes séparées sous le tableau pour lisibilité. | Canal f enfoui : s -> f -> d -> p quand P3 = 7 s ouvre. |
| Pas de bloc g | Absence observée au-delà du domaine stable connu. | 9 = 3^2 est composite et p=11 reste en écho sous le seuil. |
Le dessin n’est pas une image d’orbitale dans l’espace. C’est une carte discrete du canal PT : le cercle marque le canal, chaque sommet represente une orientation disponible, et le spin double chaque sommet.
Lecture technique : les canaux se lisent sur les cercles
Z/(2P_l)Z. Les premiers actifs
3, 5, 7 donnent le triangle, le pentagone et
l’heptagone ; le cas s est le canal minimal,
une orientation doublee par spin.
1 orientation x 2 spins = 2
3 orientations x 2 spins = 6
5 orientations x 2 spins = 10
7 orientations x 2 spins = 14
Dans le canal d, cinq orientations forment le pentagone
Z/10Z après doublement par spin. Les configurations
d5 et d10 deviennent alors deux positions
speciales : demi-remplissage et fermeture. C’est la raison pour
laquelle Cr, Cu, Mo, Pd, Ag ou Au ne sont pas seulement des
exceptions à mémoriser.
La longueur de la période numéro $k$ est donnée par $L(k) = 2\lceil k/2\rceil^2$. Elle produit directement la suite observée jusqu’à 118 éléments.
chapters_fr/ch22_chemistry.tex,
section "Longueurs des périodes". Le code PTC l’implémente dans
period(Z) par cap = 2 * k * k avec
k = per // 2 + 1.
Le bleu marque l’ouverture s de chaque période ; le vert marque la fermeture p ; l’orange et le violet marquent les canaux internes d et f quand la période devient assez profonde.
Les périodes 2-3 n’ont que le schéma s -> p.
Aux périodes 4-5, la profondeur permet le canal pentagonal
d : capacité 2 x 5 = 10, avec les
stabilités d5 et d10 qui pilotent les
promotions de Madelung. Aux périodes 6-7, le canal
heptagonal f s’insère avant le retour au canal
d : s -> f -> d -> p, soit
2 + 14 + 10 + 6 = 32.
C’est précisément cette couche interne enfouie qui rend les
lanthanides et actinides structurellement naturels en PT :
ils ne sont pas une annexe du tableau, mais l’ouverture du
dernier premier actif P3 = 7. Le pas suivant
demanderait un canal g, mais 2ℓ+1 = 9
est composite et p = 11 reste un premier d’écho
(gamma_11 < 1/2).
La même dérivation se lit comme une succession de configurations
de fermeture : s2, puis
s2 p6, puis s2 d10 p6, puis
s2 f14 d10 p6.
La couche minimale ferme seulement le canal spin-orbital s.
Premier motif chimique complet : ouverture s, fermeture p.
Le pentagone d apparaît entre l’ouverture s et la fermeture p.
Le canal f s’enfouit avant le retour d, puis la fermeture p.
Une seule orientation, deux spins possibles.
involution spin issue de T1. La capacité vaut donc 2 x 1 = 2.
Trois directions spatiales, remplies par paires de spin.
premier actif P1 = 3. La capacité vaut donc 2 x 3 = 6.
Cinq positions, avec les stabilités demi-remplie et pleine.
premier actif P2 = 5. La capacité vaut donc 2 x 5 = 10.
Sept positions, dernier canal actif de la géométrie PT.
premier actif P3 = 7. La capacité vaut donc 2 x 7 = 14.
Les promotions $s \to d$ apparaissent aux points de stabilité du pentagone : demi-remplissage $d^5$ et fermeture $d^10$. PTC garde deux lectures séparées : le remplissage radial Aufbau pour l’écrantage, et le remplissage informationnel Madelung pour la structure fine.
ptc/periodic.py, _n_fill_aufbau()
reste radial, tandis que n_fill() applique
_MADELUNG_PROMOTIONS. Cette séparation est importante :
elle évite de confondre géométrie spatiale et stabilité
informationnelle.
| Élément | Aufbau | PT / Madelung | Cause |
|---|---|---|---|
| Cr Z=24 | d4s2 | d5s1 | demi-remplissage |
| Cu Z=29 | d9s2 | d10s1 | fermeture |
| Nb Z=41 | d3s2 | d4s1 | quasi-demi-remplissage |
| Mo Z=42 | d4s2 | d5s1 | demi-remplissage |
| Ru Z=44 | d6s2 | d7s1 | post-demi-remplissage |
| Rh Z=45 | d7s2 | d8s1 | post-demi-remplissage |
| Pd Z=46 | d8s2 | d10s0 | double fermeture |
| Ag Z=47 | d9s2 | d10s1 | fermeture |
| Pt Z=78 | d8s2 | d9s1 | quasi-fermeture |
| Au Z=79 | d9s2 | d10s1 | fermeture |
| Rg Z=111 | d9s2 | d10s1 | fermeture relativiste |
Le calculateur reprend la logique de periodic.py :
il convertit un numéro atomique en période, bloc, capacité,
remplissage radial Aufbau et remplissage PT/Madelung.
Exemple utile : entrer Z=79. L’or passe de
d9s2 à d10s1 parce que la fermeture du
canal d compense le coût de promotion s -> d.
retrouve la période depuis L(k) = 2 ceil(k/2)^2
PT_PROJECTS/PTC/ptc/periodic.py:13
assigne le bloc s, p, d ou f par position dans la période
PT_PROJECTS/PTC/ptc/periodic.py:31
renvoie 2, 6, 10 ou 14 depuis 2(2ℓ+1)
PT_PROJECTS/PTC/ptc/periodic.py:115
ajoute les promotions informationnelles d5/d10
PT_PROJECTS/PTC/ptc/periodic.py:75
cd PT_PROJECTS/PTC
PYTHONPATH=. python -m pytest ptc/tests/test_periodic.py -v Les assertions couvrent les frontières de périodes, les blocs s/p/d/f, les capacités 2/6/10/14, les remplissages Aufbau et les promotions Cr, Cu, Mo, Pd, Ag, Au.
periodic.py public/scripts-source/ptc/periodic.py · 185 lignes · copie jointe au site et intégrée au HTML au build.
Ce fichier est la traduction opérationnelle de la dérivation :
périodes par 2k², blocs s/p/d/f,
capacités 2, 6, 10, 14, et séparation explicite entre
remplissage radial Aufbau et promotions informationnelles de Madelung.
La copie brute reste aussi servie comme fichier statique à
/scripts-source/ptc/periodic.py.
"""
Periodic table structure functions.
Derived from PT first principles: period boundaries follow 2k² shells
where k = per // 2 + 1 (prime-indexed shells P1=3, P2=5, P3=7).
Zero adjustable parameters.
"""
from ptc.constants import P1, P2, P3
_BLOCK_MAP = {0: 's', 1: 'p', 2: 'd', 3: 'f'}
_CAP_MAP = {0: 2, 1: 2 * P1, 2: 2 * P2, 3: 2 * P3} # 2, 6, 10, 14
def period(Z: int) -> int:
"""Return the period number for atomic number Z."""
cumul, per = 0, 1
while True:
k = per // 2 + 1
cap = 2 * k * k
if Z <= cumul + cap:
return per
cumul += cap
per += 1
def period_start(per: int) -> int:
"""Return the first Z of period per."""
z0 = 1
for p in range(1, per):
k = p // 2 + 1
z0 += 2 * k * k
return z0
def l_of(Z: int) -> int:
"""Angular momentum of the valence sub-shell: s=0, p=1, d=2, f=3."""
per = period(Z)
z0 = period_start(per)
pos = Z - z0
if pos < 2:
return 0
if per <= 3:
return 1
if per <= 5:
return 2 if pos < 12 else 1
if pos == 2:
return 2
if pos < 16:
return 3
if pos < 26:
return 2
return 1
def _n_fill_aufbau(Z: int) -> int:
"""Number of electrons in the valence sub-shell (Aufbau, no promotions).
This is the RADIAL filling — used for screening (geometric γ₅ decay).
The screening is a spatial phenomenon and follows the standard Aufbau
ordering regardless of Madelung promotions.
"""
per = period(Z)
z0 = period_start(per)
pos = Z - z0
l = l_of(Z)
if l == 0:
return min(pos + 1, 2)
cap = 2 * (per // 2 + 1) ** 2
if l == 1:
return Z - (z0 + cap - 6) + 1
if l == 2:
nd = max(0, pos + 1 - 2)
if per >= 6:
nd = max(0, nd - 14)
return min(nd, 2 * P2)
if l == 3:
return min(max(0, pos + 1 - 2), 2 * P3)
return 1
# ── Madelung anomalies: PT predictions from the pentagon ──────────────
# d5 = half-fill = D_KL maximum on Z/10Z (persistence peak)
# d10 = closure = H minimum on Z/10Z (entropy floor)
# These are INFORMATIONAL, not radial — the polygon structure demands them.
# Z → (nd_madelung, ns_madelung) for elements with s→d promotions
_MADELUNG_PROMOTIONS: dict[int, tuple[int, int]] = {
24: (5, 1), # Cr: d4s2 → d5s1 (half-fill)
29: (10, 1), # Cu: d9s2 → d10s1 (closure)
41: (4, 1), # Nb: d3s2 → d4s1 (quasi-half)
42: (5, 1), # Mo: d4s2 → d5s1 (half-fill)
44: (7, 1), # Ru: d6s2 → d7s1 (post-half)
45: (8, 1), # Rh: d7s2 → d8s1 (post-half)
46: (10, 0), # Pd: d8s2 → d10s0 (double closure)
47: (10, 1), # Ag: d9s2 → d10s1 (closure)
78: (9, 1), # Pt: d8s2 → d9s1 (quasi-closure)
79: (10, 1), # Au: d9s2 → d10s1 (closure)
111: (10, 1), # Rg: d9s2 → d10s1 (closure, relativistic)
}
def n_fill(Z: int) -> int:
"""Number of electrons in the valence sub-shell (Madelung).
Returns the INFORMATIONAL filling — includes d5/d10 promotions
predicted by the pentagon Z/(2×5)Z structure. Used for polygon
construction (structure fine = harmonique).
For screening (radial, geometric), use _n_fill_aufbau().
"""
if Z in _MADELUNG_PROMOTIONS and l_of(Z) == 2:
return _MADELUNG_PROMOTIONS[Z][0]
return _n_fill_aufbau(Z)
def ns_config(Z: int) -> int:
"""Number of s-electrons, detecting s→d promotions.
In PT: promotion occurs when Hund half-filling stability or d-shell
closure exceeds the s→d promotion cost (gap decreases with period).
Uses _n_fill_aufbau for the detection logic (avoids recursion with
the Madelung n_fill).
"""
if Z in _MADELUNG_PROMOTIONS and l_of(Z) == 2:
return _MADELUNG_PROMOTIONS[Z][1]
l = l_of(Z)
if l == 0:
return min(_n_fill_aufbau(Z), 2)
if l != 2:
return 2
return 2
def block_of(Z: int) -> str:
"""Return the block letter ('s', 'p', 'd', or 'f') for element Z."""
return _BLOCK_MAP[l_of(Z)]
def capacity(Z: int) -> int:
"""Return the capacity (2(2l+1)) of the valence sub-shell for element Z."""
return _CAP_MAP[l_of(Z)]
def _np_of(Z: int) -> int:
"""Number of p-electrons for element Z.
Returns the valence p-electron count:
s-block (l=0): 0 — no p-electrons
p-block (l=1): n_fill(Z) — the p sub-shell filling
d-block (l=2): 0 — d-block bonds through s+d, not p
f-block (l=3): 0 — same logic
"""
l = l_of(Z)
if l == 1:
return min(n_fill(Z), _CAP_MAP[1])
return 0
def _nd_of(Z: int) -> int:
"""Number of d-electrons for element Z.
Returns the d sub-shell filling only for d-block (l=2).
s-block, p-block, and f-block return 0.
"""
if l_of(Z) != 2:
return 0
return min(n_fill(Z), 2 * P2)
def _valence_electrons(Z: int) -> int:
"""Total valence electrons."""
return n_fill(Z) + ns_config(Z)
def _lp_pairs(Z: int, bo: float) -> int:
"""Lone pairs available for bonding."""
l = l_of(Z)
if l == 0:
return 0
np_val = _np_of(Z)
P1 = 3
if np_val <= P1:
return 0
return max(0, np_val - P1 - int(bo - 1))
Exclusion, capacités de sous-couche, quatre blocs et absence de couche g.
Longueurs de périodes et ordre Aufbau depuis la fonction maîtresse.
Implémentation PTC et tests unitaires sur les fonctions périodiques.
Structure au-delà de Z=118 sans bloc g, à confronter aux données futures.
| Niveau | Ce qui est revendiqué | Ce qui reste à contrôler |
|---|---|---|
| dérivé | Blocs s/p/d/f, capacités 2/6/10/14, longueurs 2/8/8/18/18/32/32. | Relire la preuve C1/C-tableau et le statut no-g dans la monographie. |
| code | Implémentation PTC dans periodic.py et tests unitaires associés. | Maintenir la copie publique synchronisée avec le moteur PTC. |
| chimie | Promotions d5/d10 comme stabilités informationnelles du canal d. | Quantifier les coûts de promotion et les effets relativistes élément par élément. |
| frontière | Pas de bloc g actif : 9 composite et p=11 en écho. | Comparer aux modèles superlourds et aux données futures au-delà de 118. |
Sources locales : PT_MONOGRAPHY/chapters_fr/ch22_chemistry.tex,
PT_PROJECTS/PTC/ptc/periodic.py,
PT_PROJECTS/PTC/ptc/tests/test_periodic.py.