fact: Definition tmTryInfer (n : ident) (red : option reductionStrategy) (A : Type) : TemplateMonad A := r <- tmInferInstance red A ;; match r with | my_Some i => ret i | my_None => A' <- match red with Some red => ret A | None => ret A end;; tmPrint "Did not find an instance for ";; (tmPrint A');; (tmEval cbv ("open obligation " ++ n ++ " for it. You might want to register a instance before and rerun this.") >>= tmPrint);; tmLemma n A end.
imports: Ascii String Undecidability.L(Util.L_facts) MetaCoq(Template.All Template.Checker) Undecidability.Shared.Libs.PSL.Base MetaCoq.Utils.bytestring