fact: Fixpoint args_for_requiv {t1 t2} (e1 : args_for (Term fnvar1) t1) (e2 : args_for (Term fnvar2) t2) {struct e1} : match args_for_requivT Term_requivT e1 e2, TypeCode_eq_semidec_transparent t1 t2 with | Some reflective_obligation, Some p => to_prop reflective_obligation -> args_for_related_ind Term_equiv (eq_rect _ (@args_for _) (map_args_for (unnatize_Term _) e1) _ p) (map_args_for (unnatize_Term _) e2) | _, _ => True 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