Closed marcosh closed 4 years ago
To clarify, we need to extend the context instead of dropping it, i.e. a function of (approximate) type Mu [] t -> Mu [...] (weaken t)
It turns out to be an actual rabbit hole, the problem is that we need a signature like
weakenMu : {v : Vect n Type} -> Mu [] t -> Mu v (weakenTDef t (S n) (LTESucc LTEZero))
which means you need to prove all kinds of nasty stuff, e.g. properties of rewrite
in the TVar
case, and various ways of redistributing weakenTDef
internally in recursive cases.
However, if you have a concrete t
, you can usually skip that and just reindex your structure naively. Maybe we could have a tactic for generating these weakenings?
Is this still needed? Should we prioritise it for Statebox-core?
Lets close this for now and re-open it if we run into it again
implement a function which allows to drop the context in
Mu
terms