fact: Fixpoint better_Applied_rect {o} (a: Applied o): P a := match a with | AppliedOp x y => Pop x y (better_args y) | AppliedVar x v => Pvar x v end with better_args {o} (a: Arguments o): forallArgs a := match a with | NoMoreArguments _ => I | MoreArguments _ _ x y => (better_Applied_rect x, better_args y) end.
imports: MathClasses.interfaces.canonical_names MathClasses.interfaces.universal_algebra Coq.Program.Program