fact: Fixpoint close_op {d}: ∀ (o: op_type A d), op_closed o → op_type carrier d := match d with | ne_list.one _ => λ o c, existT _ o (c) | ne_list.cons _ _ => λ o c X, close_op (o (projT1 X)) (c (projT1 X) (projT2 X)) end.
imports: Coq.Classes.RelationClasses MathClasses.interfaces.universal_algebra MathClasses.theory.ua_homomorphisms MathClasses.theory.categories MathClasses.interfaces.abstract_algebra