You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
If a (co)inductive type does not involve quotients, then we don't need the full power of QPF's, PFunctors suffice.
Polynomial functors have nicer def-eqs, so it would be nice if we could special case this.
Concretely, consider the type of infinite streams
codata (a : Type) Stream
| cons : a -> Stream a -> Stream a
We'd like this to satisfy the obvious def-eq. The current definition, in terms of MvQpf.Cofix does not, but an alternative definition in terms of MvPFunctor.M should!
example (s : Stream a) : Stream.cons (s.head) (s.tail) = s := rfl
The text was updated successfully, but these errors were encountered:
alexkeizer
changed the title
Special-case types definable through just polynomial functors
Feature: Special-case types definable through just polynomial functors
May 17, 2024
If a (co)inductive type does not involve quotients, then we don't need the full power of QPF's, PFunctors suffice.
Polynomial functors have nicer def-eqs, so it would be nice if we could special case this.
Concretely, consider the type of infinite streams
codata (a : Type) Stream | cons : a -> Stream a -> Stream a
We'd like this to satisfy the obvious def-eq. The current definition, in terms of
MvQpf.Cofix
does not, but an alternative definition in terms ofMvPFunctor.M
should!example (s : Stream a) : Stream.cons (s.head) (s.tail) = s := rfl
The text was updated successfully, but these errors were encountered: