Abstract `body` over `fvars` and wrap it in a chain of `All` (or `Let` for `LDecl` entries) binders, innermost-first. Same shape as [`Self::mk_lambda`] but emits `All` for `CDecl` entries. Mirrors `Lean.LocalContext.mkForall`.
(
&self,
intern: &mut InternTable<M>,
fvars: &[FVarId],
body: &KExpr<M>,
)
| 152 | /// Same shape as [`Self::mk_lambda`] but emits `All` for `CDecl` entries. |
| 153 | /// Mirrors `Lean.LocalContext.mkForall`. |
| 154 | pub fn mk_pi( |
| 155 | &self, |
| 156 | intern: &mut InternTable<M>, |
| 157 | fvars: &[FVarId], |
| 158 | body: &KExpr<M>, |
| 159 | ) -> KExpr<M> { |
| 160 | let abstracted = abstract_fvars(intern, body, fvars); |
| 161 | self.wrap_binders(intern, fvars, abstracted, /* as_lambda */ false) |
| 162 | } |
| 163 | |
| 164 | fn wrap_binders( |
| 165 | &self, |
nothing calls this directly
no test coverage detected