The equation compiler currently supports the following compilation strategies
brec_on (aka course of values recursion)
well_founded recursion
unbounded recursion for meta definitions
Non recursive
However, none of the compilation approaches can be used when proving lemmas for inductive predicates. We cannot use brec_on because, in general, we cannot define the auxiliary type below for an inductive predicate. The issue is that most inductive predicates can only eliminate into Prop. So, we need another compilation strategy which uses the rec recursor instead of the more general brec_on.
Until this feature is implemented, users must use tactics to prove lemmas about inductive predicates.
The equation compiler currently supports the following compilation strategies
brec_on
(aka course of values recursion)well_founded
recursionunbounded
recursion for meta definitionsHowever, none of the compilation approaches can be used when proving lemmas for inductive predicates. We cannot use
brec_on
because, in general, we cannot define the auxiliary typebelow
for an inductive predicate. The issue is that most inductive predicates can only eliminate intoProp
. So, we need another compilation strategy which uses therec
recursor instead of the more generalbrec_on
.Until this feature is implemented, users must use tactics to prove lemmas about inductive predicates.