fact: Definition sor {I O} (x y : I ▷ O) : I ▷ O := match x with {| Operations := P₁ ; Arities := A₁ ; Sorts := s₁ |} => match y with {| Operations := P₂ ; Arities := A₂ ; Sorts := s₂ |} => {| Operations := λ x, (P₁ x + P₂ x)%type ; Arities := λ o op, match op with | inl op' => A₁ o op' | inr op' => A₂ o op' end ; Sorts := λ o op, match op with | inl op' => s₁ o op' | inr op' => s₂ o op' end |} end end.
imports: Hask.Ltac Coq.Program.Equality Coq.Unicode.Utf8 FunctionalExtensionality Iso Tuple