hazel icon indicating copy to clipboard operation
hazel copied to clipboard

prevent unnecessary fixpoints in elaboration

Open pigumar1 opened this issue 3 months ago • 3 comments

This PR tries to fix #1268 by checking if there are self-references in the function body/bodies during elaboration and decide whether to include the fixpoint based on that information.

For potential mutual recursive functions, the fixpoint is included as long as one of the function names occur in the definition as a free variable (by looking at the co-context)

A non-recursive function: image

A recursive function: image

Non-recursive functions: image

Mutual recursive functions: image

pigumar1 avatar Apr 18 '24 22:04 pigumar1