Skip to content

Parent structures - #323

Merged
ScriptRaccoon merged 6 commits into
mainfrom
parent-structures
Aug 10, 2026
Merged

Parent structures#323
ScriptRaccoon merged 6 commits into
mainfrom
parent-structures

Conversation

@ScriptRaccoon

@ScriptRaccoon ScriptRaccoon commented Aug 9, 2026

Copy link
Copy Markdown
Owner

Parent structures

CRing is a special case of CAlg(R), so every property of CAlg(R) should automatically hold for CRing. This PR automates this process and implements parts of #7.

To achieve this, each structure can now have a parent structure. If a parent has a non-deduced, decidable property, that property is inherited by the child. For example, CAlg(R) is a parent of CRing, so CRing is a child of CAlg(R). The category detail page shows the parent, if one exists, and the children, if any. Structures that have been designated as parents can be viewed as families of structures.

flowchart BT
    CRing --> CAlg_R["CAlg(R)"]
Loading

Many property assignments in child categories could now be removed from their files since they are now deduced from their parent. Existing assignments can nevertheless be kept when they are instructive. For example, we can keep the proof that CRing is not semi-strongly connected.

The three entries BGu, BGc, and BGf, corresponding to the cases where the group $G$ is uncountable, countable, and finite, respectively, now have BG as their parent. Properties of BG that cannot be determined for a general group $G$, such as finiteness, are marked as undecidable.

flowchart BT
    BG_c --> BG
    BG_f --> BG
    BG_u --> BG
Loading

The same change has been made for the three variants of FinVectK, depending on the cardinality of $K$.

The entry R-Mod now represents the case of a general nontrivial ring $R$. It has two children: one for the case where $R$ is a division ring, and one for the case where $R$ is not semisimple. These in turn have further children, Vect and Ab, respectively.

flowchart BT
    R_Mod_div["R-Mod_div"] --> R_Mod["R-Mod"]
    R_Mod_non_ss["R-Mod_non_ss"] --> R_Mod

    Vect --> R_Mod_div
    Ab --> R_Mod_non_ss
Loading

Category Detail Page

page for R-modules over a non-semisimple ring shows Ab has child and R-Mod as parent

Special objects/morphisms

For categories, special objects and morphisms are also inherited from the parent (if it exists).

Consistency

This PR also resolves an inconsistency in how proofs for special cases were handled. Previously, when a property $P$ was known for a parent, there were two approaches: sometimes $P$ was proved separately for the child, with the proof for the parent described as the same or very similar; in other cases, the proof was given for the parent and the child's proof simply stated that it was a special case of the parent.

The latter approach is now used consistently: whenever a property is inherited from a parent, the child's proof refers to the proof for the parent rather than reproducing it.

Parent Relationships

child parent
CRing CAlg(R)
Ring Alg(R)
BG_c BG
BG_f BG
BG_u BG
FinVect_c FinVect
FinVect_f FinVect
FinVect_u FinVect
R-Mod_div R-Mod
R-Mod_non_ss R-Mod
Vect R-Mod_div
Ab R-Mod_non_ss

Other changes

Category descriptions and some proofs have been improved.

@ScriptRaccoon
ScriptRaccoon force-pushed the parent-structures branch 3 times, most recently from 42a6257 to 2f4ea6a Compare August 10, 2026 08:35
@ScriptRaccoon
ScriptRaccoon marked this pull request as ready for review August 10, 2026 12:07
@ScriptRaccoon
ScriptRaccoon merged commit 99cd9c1 into main Aug 10, 2026
1 check passed
@ScriptRaccoon
ScriptRaccoon deleted the parent-structures branch August 10, 2026 16:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant