! [X,Y] : ( ( homomorphism(X) & homomorphism(Y) ) => homomorphism(compose(X,Y)) )
! [F,A] : ( maps(F,A,A) => ( ( one_to_one(F,A,A) & inverse_predicate(F,F,A,A) ) <=> identity(compose_function(F,F,A,A,A),A) ) )