fact: Definition fix_tac (f : name) (n : N) : tactic := fun g => gT <- M.goal_type g; '(f, new_goal) <- M.nu f mNone (fun f : gT => new_goal <- M.evar gT; fixp <- n_etas (N.to_nat n) new_goal; fixp <- M.abs_fix f fixp n; new_goal <- M.abs_fun f (AnyMetavar Typeₛ _ new_goal); M.ret (fixp, AHyp new_goal) ); exact f g;; M.ret [m:(m: tt,new_goal)].
imports: Strings.String ssrmatching.ssrmatching Mtac2(Logic Datatypes List Utils Logic Sorts MTeleMatch) Strings.String NArith.BinNat NArith.BinNatDef