463e70332d
We say an inductive type T is reflexive if it contains at least one constructor that takes as an argument a function returning T. For reflexive types it doesn't seen to be possible to define a single brec_on that can eliminate to Type.{>=1} and Prop. The universe level expressions get too complicated. Even if we extend the universe constraint solver in the kernel, the additional complexity might be a problem. We workaround this issue by defining two versions of brec_on: - One (brec_on) that eliminates to Type.{>=1}, and - binduction_on that eliminates to Prop. For non-reflexive types, we can combine both of them. |
||
---|---|---|
.. | ||
lean | ||
lua |