Skip to content

Do not introduce recursive rtrees for non-recursive nesting inductive types#21600

Open
ppedrot wants to merge 1 commit intorocq-prover:masterfrom
ppedrot:recarg-indtypes-rm-useless-rec-nodes
Open

Do not introduce recursive rtrees for non-recursive nesting inductive types#21600
ppedrot wants to merge 1 commit intorocq-prover:masterfrom
ppedrot:recarg-indtypes-rm-useless-rec-nodes

Conversation

@ppedrot
Copy link
Member

@ppedrot ppedrot commented Feb 6, 2026

The previous code was representing every nested inductive node as an rtree of the form µX.F{X}. For nesting types that were not recursive this was inefficient, as the variable X cannot appear in the body F of the rtree, leading to useless rtree expansions in fixpoint computation. This commit basically compiles this node as F with the above notation.

This is still much less efficient than keeping an indirect representation for composed rtrees, but still better than nothing.

… types.

The previous code was representing every nested inductive node as an rtree
of the form µX.F{X}. For nesting types that were not recursive this was
inefficient, as the variable X cannot appear in the body F of the rtree,
leading to useless rtree expansions in fixpoint computation. This commit
basically compiles this node as F with the above notation.
@ppedrot ppedrot added this to the 9.3+rc1 milestone Feb 6, 2026
@ppedrot ppedrot requested a review from a team as a code owner February 6, 2026 16:46
@ppedrot ppedrot added kind: performance Improvements to performance and efficiency. request: full CI Use this label when you want your next push to trigger a full CI. labels Feb 6, 2026
@coqbot-app coqbot-app bot removed the request: full CI Use this label when you want your next push to trigger a full CI. label Feb 6, 2026
@ppedrot
Copy link
Member Author

ppedrot commented Feb 7, 2026

@coqbot bench

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

kind: performance Improvements to performance and efficiency.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant