fact: Fixpoint unnatize_Term {var t} (base : nat) (e : @Term (fun t => nat * var t)%type t) : @Term var t := match e in @Term _ t return @Term _ t with | RVar T v => RVar (snd v) | RLambda A B f => RLambda (fun x => @unnatize_Term _ _ (S base) (f (base, x))) | RApp A B f x => RApp (@unnatize_Term _ _ base f) (@unnatize_Term _ _ base x) | RLiteralApp c t args => RLiteralApp t (map_args_for (fun t => @unnatize_Term _ t base) args) end.
imports: Coq.Lists.List Coq.Arith.EqNat Coq.Logic.Eqdep_dec Fiat.Parsers.Reflective.Syntax Fiat.Parsers.Reflective.SyntaxEquality Fiat.Parsers.Reflective.SyntaxEquivalence Fiat.Common.PointedProp Fiat.Common.OptionFacts Fiat.Common.Prod Fiat.Common.Sigma Fiat.Common