fact: Definition extract_constr {A} (a : A) n (i : nat) (t : Ast.term) def' := num <- tmNumConstructors n ;; r <- tmEval cbv (gen_constructor (|argument_types t|) num i : extracted a) ;; match def' with | Some def => def2 <- tmFreshName def ;; tmInstanceRed def2 None r;;tmReturn tt | None => tmReturn tt end;; ret r.
imports: Ascii String Undecidability.L(Util.L_facts) MetaCoq(Template.All Template.Checker) Undecidability.Shared.Libs.PSL.Base MetaCoq.Utils.bytestring