fact: Definition encode_arguments (B : term) (a i : nat) A_j := A <- tmUnquoteTyped Type A_j ;; name <- (tmEval cbv (name_of A_j ++ "_term") >>= Core.tmFreshName) ;; E <- tmTryInfer name None (encodable A);; t <- ret (@enc A E);; l <- tmQuote t;; ret (tApp l [tRel (a - i - 1) ]).
imports: Undecidability.L(L Tactics.Computable Tactics.ComputableTactics Tactics.Extract) MetaCoq(Template.All TemplateMonad.Core Template.Ast) List MetaCoq.Utils.bytestring