orthonym.rules.mononuclear_hydrides#
Note
Internal API. Names and behaviour may change between releases.
Mononuclear parent-hydride namer / / λ-convention).
(a phase adds a sibling name_dinuclear_hydride for the two-atom
Group-14/Group-15 catenated hydride germylstibane family — — at
the bottom of this module; it reuses the structural guards but is a distinct
entry point with its own dispatch slot.)
Names a single non-carbon “hub” atom — a Group-15 pnictogen (P/As/Sb/Bi), a chalcogen (S/Se/Te) or iodine — as a substitutive parent hydride, optionally bearing the λ-convention when the hub valence is non-standard:
FS(F)(F)(F)(F)F -> hexafluoro-lambda6-sulfane (SF6, λ6 nonstandard)
FS(F)(F)F -> tetrafluoro-lambda4-sulfane (SF4, λ4)
FP(F)(F)(F)F -> pentafluoro-lambda5-phosphane (PF5, λ5)
FI(F)(F)(F)F -> pentafluoro-lambda5-iodane (IF5, λ5)
ClP(Cl)Cl -> trichlorophosphane (PCl3, standard valence)
FS(F) -> difluorosulfane (SF2, standard valence)
F[Si](F)(F)F -> tetrafluorosilane (SiF4, Group-14, std valence)
Cl[Ge](Cl)(Cl)Cl -> tetrachlorogermane (GeCl4, Group-14)
Cl[As](Cl)Cl -> trichloroarsane (AsCl3, Group-15)
C[As](C)C -> trimethylarsane (organyl As, Group-15)
c1ccccc1[As]... -> triphenylarsane
[AsH3] -> arsane (bare parent hydride)
Every emitted name round-trips through OPSIN 2.9.0 to the input structure (the
λ-convention parses; lambda ASCII spelling mirrors the spiro gold
4lambda4-thiaspiro[3.5]nonane).
- SCOPE (fail-closed, accuracy-first):
Two substituent regimes, never mixed (a mixed halo+organyl hub fails both guards and cascades onward — fail-closed):
All-halogen hub (any element in
_HUB_STEMS, hub degree >= 2): the halogen-prefix block (no enclosing marks — halogens are simple substituents, + optional λ. Covers SF6/SF4/PF5/IF5 (λ) AND the standard-valence PCl3/PF3/SF2/AsCl3/SbBr3/BiCl3 (no λ).Organyl / bare hub restricted to Group-15 As/Sb/Bi only (
_ORGANYL_HUBS): every substituent a pure unbranched-alkyl or phenyl/naphthyl organyl, named via the mononuclear-parent-hydride enclosing-mark rule. Covers trimethylarsane / triphenylarsane and the bare arsane/stibane/bismuthane.
P / S / Se / Te / I / Si / Ge take only the all-halogen regime here. Carbon-substituted Si/Ge (tetramethylsilane) stay with the organometallic hydride-parent namer; carbon-substituted P (trimethylphosphane) stays with
rules.phosphorus.name_phosphine(no double-claim); carbon-substituted chalcogens are sulfides/sulfanes named elsewhere; the organyl regime is reserved for the Group-15 metals As/Sb/Bi, which otherwise route to the organometallic handler and are mis-opened to a carbon chain (C[As](C)C->(methylmethyl)methane).Cl/Br are never hubs (RDKit refuses to construct their hypervalent forms); only iodine builds among the halogens, and interhalogens (ICl, degree 1) are excluded by the hub-degree>=2 guard.
This is a graph/atom classifier (NOT a SMARTS broadening — per the feedback_smarts_and_seniority lesson): every guard narrows, never widens. Oxoacids (hub with O neighbours), oxo-halides (SOCl2), organo-substituted chalcogens, di-/poly-nuclear hydrides (diphosphane), ions and rings all fail a guard and cascade onward — zero false positives.
- orthonym.rules.mononuclear_hydrides.name_mononuclear_hydride(mol)#
Return the substitutive PIN for a mononuclear parent hydride / , else
None(fail-closed cascade-continuation).Pure: no mol mutation, no global state.
- orthonym.rules.mononuclear_hydrides.name_dinuclear_hydride(mol)#
Return the substitutive PIN for a two-atom Group-14/Group-15 catenated parent hydride two-class-2-metal substitutive), else
None(fail-closed cascade-continuation).A single bond joins EXACTLY one Group-14 atom (Si/Ge/Sn/Pb) and one Group-15 atom (As/Sb/Bi), each otherwise saturated with hydrogen (no carbon, no halide, no other heavy atom). Per the Group-15 element is senior, so it is the PARENT hydride (arsane/stibane/bismuthane) and the Group-14 element is the substituent prefix (silyl/germyl/stannyl/plumbyl):
[GeH3][SbH2] -> germylstibane (Sb senior -> stibane parent) [SiH3][AsH2] -> silylarsane [PbH3][BiH2] -> plumbylbismuthane
Every emitted name round-trips through OPSIN 2.9.0 to the input structure.
SCOPE (fail-closed, accuracy-first): exactly one Group-14 + one Group-15 hub, single-bonded, H-saturated, neutral, non-radical, single fragment, neither hub in a ring. Homo-dinuclear (Si-Si disilane, Sb-Bi), substituted (hexamethyldisilane), >2 hubs, any carbon/halide/stray heteroatom, P/N parents, ions and rings each fail a guard and cascade onward — zero false positives. (P is excluded so phosphane stays with name_phosphine.)
Pure: no mol mutation, no global state.
- orthonym.rules.mononuclear_hydrides.name_lambda_sulfane_imine_oxide(mol)#
/.4 /.5 /.6 /.7 /.8: the mononuclear lambda-sulfane imine/oxide family — a single non-ring chalcogen hub E in {S, Se, Te} of non-standard valence (lambda4 / lambda6) bearing any combination of
single-bonded organyl groups (S-substituents),
terminal
=O(oxo), and=N-H/=N-Rimine groups,
with AT LEAST ONE imine (a pure sulfoxide/sulfone with no imine stays with the sulfur handler). Seniority:
=Ooutranks=N, so when ANY oxo is present it is the principal characteristic group (-one/-dionesuffix) and every imine becomes an(R-imino)prefix; when NO oxo is present the imines are the suffix (-imine/-diimine/-triimine):(C2H5)2S=N-C6H5 -> S,S-diethyl-N-phenyl-lambda4-sulfanimine (.3) CH3-N=S(=O)2 -> (methylimino)-lambda6-sulfanedione (.4) (C6H5)2S(=NH)2 -> diphenyl-lambda6-sulfanediimine (.5) (CH3)2S(=O)=N-C6H5 -> dimethyl(phenylimino)-lambda6-sulfanone (.6) CH3-N=S=N-CH2CH3 -> ethyl(methyl)-lambda4-sulfanediimine (.7) CH3-N=S(=NCH3)=NC6H5 -> dimethyl(phenyl)-lambda6-sulfanetriimine (.8)
Italic element locants (
S,S-/N-) are cited ONLY when substituents sit on BOTH the hub AND an imine nitrogen example); when all substituents live on one kind of atom the italic locants are unnecessary and omitted (the other five examples). Every emitted name round-trips through OPSIN 2.9.0.SCOPE (fail-closed, accuracy-first — a graph classifier, NOT a SMARTS broadening): exactly one S/Se/Te hub, not in a ring, neutral, non-radical, single fragment, hub valence non-standard, >=1 imine, and every hub neighbour is a pure-hydrocarbyl organyl (single bond), a terminal =O, or an =N with at most one pure-hydrocarbyl substituent. A non-hydrocarbyl N/S substituent (which would create a SENIOR parent, note), a single-bonded heteroatom on the hub, a standard-valence hub, or the both-substituted-with-multiple-imine-N combination all fail a guard and cascade onward — zero false positives. Pure: no mol mutation.
- orthonym.rules.mononuclear_hydrides.name_mononuclear_hydride_added_carbon(mol)#
/ /: added-carbon -carbaldehyde/-carbonitrile/-carboxylic acid on a Group-14/-15 parent hydride (see module comment above the lookup tables for the worked examples, the seniority rationale, and the element-scope rationale).
Exactly analogous to the added-carbon -carboxylic acid on a pnictogen parent hydride (
rules.phosphorus.name_phosphane_carboxylic_acid()) and to the ring added-carbon suffixes (cyclohexanecarboxylic acid / cyclohexanecarbaldehyde / cyclohexanecarbonitrile).Scope (fail-closed graph classifier, NOT SMARTS): exactly ONE hub atom restricted to
_ADDED_CARBON_HUB_STEMS, standard bonding number (no lambda), one of whose heavy neighbours is a single terminal aldehyde, nitrile or bare carboxyl carbon; every OTHER heavy hub-neighbour is a pure detachable organyl prefix: ethyl -> ethylsilanecarboxylic acid), and the whole molecule is nothing but the hub, its hydrogens, the added-carbon group and those organyl substituents. A ring, charge, radical, a non-organyl hub substituent (a silyl/germyl hub-chain, a stray heteroatom), a nonstandard hub valence, or more than one candidate added-carbon group each fail a guard and cascade onward – zero false positives. Pure: no mol mutation.