TPTP Axioms File: CAT001-0.ax


%--------------------------------------------------------------------------
% File     : CAT001-0 : TPTP v8.2.0. Released v1.0.0.
% Domain   : Category theory
% Axioms   : Category theory axioms
% Version  : [Mit67] axioms.
% English  :

% Refs     : [Mit67] Mitchell (1967), Theory of Categories
% Source   : [ANL]
% Names    :

% Status   : Satisfiable
% Syntax   : Number of clauses     :   18 (   6 unt;   0 nHn;  12 RR)
%            Number of literals    :   45 (   1 equ;  27 neg)
%            Maximal clause size   :    4 (   2 avg)
%            Maximal term depth    :    2 (   1 avg)
%            Number of predicates  :    4 (   3 usr;   0 prp; 1-3 aty)
%            Number of functors    :    3 (   3 usr;   0 con; 1-2 aty)
%            Number of variables   :   52 (   5 sgn)
% SPC      : 

% Comments :
%--------------------------------------------------------------------------
%----Notice that composition is read as compose(x,y)(G) means x o y, -i.e.
%----x(y(G)). It is a skolem function from -(all x all
%----y, (DEF(x,y) -> exists z (P(x,y,z)))).

%-----Composition is closed when defined
cnf(closure_of_composition,axiom,
    ( ~ defined(X,Y)
    | product(X,Y,compose(X,Y)) ) ).

%-----Associative property
cnf(associative_property1,axiom,
    ( ~ product(X,Y,Z)
    | defined(X,Y) ) ).

cnf(associative_property2,axiom,
    ( ~ product(X,Y,Xy)
    | ~ defined(Xy,Z)
    | defined(Y,Z) ) ).

%-----Special category theory axiom
cnf(category_theory_axiom1,axiom,
    ( ~ product(X,Y,Xy)
    | ~ product(Y,Z,Yz)
    | ~ defined(Xy,Z)
    | defined(X,Yz) ) ).

cnf(category_theory_axiom2,axiom,
    ( ~ product(X,Y,Xy)
    | ~ product(Xy,Z,Xyz)
    | ~ product(Y,Z,Yz)
    | product(X,Yz,Xyz) ) ).

cnf(category_theory_axiom3,axiom,
    ( ~ product(Y,Z,Yz)
    | ~ defined(X,Yz)
    | defined(X,Y) ) ).

cnf(category_theory_axiom4,axiom,
    ( ~ product(Y,Z,Yz)
    | ~ product(X,Y,Xy)
    | ~ defined(X,Yz)
    | defined(Xy,Z) ) ).

cnf(category_theory_axiom5,axiom,
    ( ~ product(Y,Z,Yz)
    | ~ product(X,Yz,Xyz)
    | ~ product(X,Y,Xy)
    | product(Xy,Z,Xyz) ) ).

cnf(category_theory_axiom6,axiom,
    ( ~ defined(X,Y)
    | ~ defined(Y,Z)
    | ~ identity_map(Y)
    | defined(X,Z) ) ).

%-----Properties of domain(x) and codomain(x)
cnf(domain_is_an_identity_map,axiom,
    identity_map(domain(X)) ).

cnf(codomain_is_an_identity_map,axiom,
    identity_map(codomain(X)) ).

cnf(mapping_from_x_to_its_domain,axiom,
    defined(X,domain(X)) ).

cnf(mapping_from_codomain_of_x_to_x,axiom,
    defined(codomain(X),X) ).

cnf(product_on_domain,axiom,
    product(X,domain(X),X) ).

cnf(product_on_codomain,axiom,
    product(codomain(X),X,X) ).

%-----Definition of the identity predicate
cnf(identity1,axiom,
    ( ~ defined(X,Y)
    | ~ identity_map(X)
    | product(X,Y,Y) ) ).

cnf(identity2,axiom,
    ( ~ defined(X,Y)
    | ~ identity_map(Y)
    | product(X,Y,X) ) ).

%-----Composition is well defined
cnf(composition_is_well_defined,axiom,
    ( ~ product(X,Y,Z)
    | ~ product(X,Y,W)
    | Z = W ) ).

%--------------------------------------------------------------------------