scheme :: YELLOW20:sch 1
SubcategoryUniq{ F1() -> category, F2() -> non empty subcategory of F1(), F3() -> non empty subcategory of F1(), P1[ set ], P2[ set , set , set ] } :
AltCatStr(# the carrier of F2(), the Arrows of F2(), the Comp of F2() #) = AltCatStr(# the carrier of F3(), the Arrows of F3(), the Comp of F3() #)
provided
A1: for a being Object of F1() holds
( a is Object of F2() iff P1[a] ) and
A2: for a, b being Object of F1()
for a9, b9 being Object of F2() st a9 = a & b9 = b & <^a,b^> <> {} holds
for f being Morphism of a,b holds
( f in <^a9,b9^> iff P2[a,b,f] ) and
A3: for a being Object of F1() holds
( a is Object of F3() iff P1[a] ) and
A4: for a, b being Object of F1()
for a9, b9 being Object of F3() st a9 = a & b9 = b & <^a,b^> <> {} holds
for f being Morphism of a,b holds
( f in <^a9,b9^> iff P2[a,b,f] )