(* ---------------------------------------- *) ⊢
setoid ≡ force1 ? MR lock.
+notation < "[\setoid\ensp\of term 19 x]" non associative with precedence 90 for @{'mk_setoid $x}.
+interpretation "mk_setoid" 'mk_setoid x = (mk_setoid x ?).
+
interpretation "setoid eq" 'eq t x y = (eq_rel ? (eq0 t) x y).
notation > "hvbox(a break =_0 b)" non associative with precedence 45
nlemma mk_binary_morphism:
∀A,B,C: setoid. ∀f: A → B → C. (∀a,a',b,b'. a=a' → b=b' → f a b = f a' b') →
A ⇒_0 (unary_morph_setoid B C).
- #A; #B; #C; #f; #H; @ [ #x; @ (f x) ] #a; #a'; #Ha [##2: napply unary_morph_eq; #y]
+ #A; #B; #C; #f; #H; @; ##[ #x; @ (f x) ] #a; #a'; #Ha [##2: napply unary_morph_eq; #y]
/2/.
nqed.
nqed.
unification hint 0 ≔ o1,o2,o3:setoid,f:o2 ⇒_0 o3,g:o1 ⇒_0 o2;
- R ≟ mk_unary_morphism ?? (composition … f g)
+ R ≟ mk_unary_morphism ?? (composition ??? f g)
(prop1 ?? (comp_unary_morphisms o1 o2 o3 f g))
(* -------------------------------------------------------------------- *) ⊢
- fun1 ?? R ≡ (composition … f g).
+ fun1 ?? R ≡ (composition ??? f g).
ndefinition comp_binary_morphisms:
∀o1,o2,o3.(o2 ⇒_0 o3) ⇒_0 ((o1 ⇒_0 o2) ⇒_0 (o1 ⇒_0 o3)).