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-R imine groups,

with AT LEAST ONE imine (a pure sulfoxide/sulfone with no imine stays with the sulfur handler). Seniority: =O outranks =N, so when ANY oxo is present it is the principal characteristic group (-one/ -dione suffix) 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.