Skip to content

Support coinduction #7

Open
Open
@flupe

Description

@flupe

No effort was put into looking whether coinduction works with the backend.

Currently, all inductives are inserted in the environment with type Finite, and IntoAny for AllowedEliminations.

Those should be properly set if we care about coinductions.

There's a gotcha: Rocq only allows mutually-defined coinductive datatypes. Or mutually-defined inductives. But I don't think a mixture of both is supported. Probably why the RecursivityKind is set at the level of the MutualInductiveBody.

Agda doesn't care about that and freely allows mutually-defined inductive datatypes and coinductive records. We should detect this and throw a hard error, probably.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesticeboxThings that won't happen soon

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions