let C be non empty transitive associative AltCatStr ; for o1, o2, o3 being Object of C st <^o1,o2^> <> {} & <^o2,o3^> <> {} holds
for A being Morphism of o1,o2
for B being Morphism of o2,o3 st B * A is mono holds
A is mono
let o1, o2, o3 be Object of C; ( <^o1,o2^> <> {} & <^o2,o3^> <> {} implies for A being Morphism of o1,o2
for B being Morphism of o2,o3 st B * A is mono holds
A is mono )
assume A1:
( <^o1,o2^> <> {} & <^o2,o3^> <> {} )
; for A being Morphism of o1,o2
for B being Morphism of o2,o3 st B * A is mono holds
A is mono
let A be Morphism of o1,o2; for B being Morphism of o2,o3 st B * A is mono holds
A is mono
let B be Morphism of o2,o3; ( B * A is mono implies A is mono )
assume A2:
B * A is mono
; A is mono
let o be Object of C; ALTCAT_3:def 7 ( <^o,o1^> <> {} implies for B, C being Morphism of o,o1 st A * B = A * C holds
B = C )
assume A3:
<^o,o1^> <> {}
; for B, C being Morphism of o,o1 st A * B = A * C holds
B = C
let M1, M2 be Morphism of o,o1; ( A * M1 = A * M2 implies M1 = M2 )
assume A4:
A * M1 = A * M2
; M1 = M2
( (B * A) * M1 = B * (A * M1) & (B * A) * M2 = B * (A * M2) )
by A1, A3, ALTCAT_1:21;
hence
M1 = M2
by A2, A3, A4; verum