Skip to content

Conversation

@FissoreD
Copy link
Collaborator

typeabbrev (dl A) (list A).
pred p i:dl (dl A).

dl (dl A) is no more considered as an invalid (looping) type.

A typeabbrev can be created only if all of the constants in it have already been declared before it.
Recursive typeabbrev (like typeabbrev dl dl are still forbidden)

```
typeabbrev (dl A) (list A).
pred p i:dl (dl A).
```
is no more considered as an invalid (looping) type.
@FissoreD FissoreD changed the title [typeabbrev] type dl (dl A) where dl is typeabbrev is no more "recursif" [typeabbrev] type dl (dl A) where dl is typeabbrev is no more "looping" Sep 29, 2024
@gares
Copy link
Contributor

gares commented Sep 30, 2024

Can't we detect statically that the typeabbrev is not silly, as in the LHS does not occur in the RHS (and the RHS is only made of known symbols)? The last part may require some cleanup (planned but not done).

@FissoreD FissoreD merged commit b933fab into LPCIC:master Sep 30, 2024
8 of 9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants