fact: Fixpoint decode `(t: Term σ V o): Arguments σ o → Applied σ (result _ o) := match t with | Var _ _ x y => λ z, AppliedVar σ x y | Op _ _ x => AppliedOp σ x | App _ _ x y z w => λ p, decode z (MoreArguments σ y x (decode w (NoMoreArguments σ _)) p) end.
imports: MathClasses.interfaces.canonical_names MathClasses.interfaces.universal_algebra Coq.Program.Program