Push a fresh fvar declaration without any body to instantiate. Useful for paths that introduce a binder for type-tracking purposes only (e.g. inductive validation walks where the binder is consumed later or in parallel). Returns the fvar id and the interned fvar expression.
(&mut self, ty: KExpr<M>)
| 615 | let fv_id = self.fresh_fvar_id(); |
| 616 | let fv = self.intern(KExpr::fvar(fv_id, name.clone())); |
| 617 | self.lctx.push(fv_id, LocalDecl::LDecl { name, ty, val }); |
| 618 | let body_open = instantiate_rev(&mut self.env.intern, body, &[fv]); |
| 619 | (body_open, fv_id) |
| 620 | } |
| 621 | |
| 622 | /// Push a fresh fvar declaration without any body to instantiate. |
| 623 | /// Useful for paths that introduce a binder for type-tracking purposes |
| 624 | /// only (e.g. inductive validation walks where the binder is consumed |
| 625 | /// later or in parallel). Returns the fvar id and the interned fvar |
| 626 | /// expression. |
| 627 | pub fn push_fvar_decl_anon(&mut self, ty: KExpr<M>) -> (FVarId, KExpr<M>) { |
no test coverage detected