TPTP Axioms File: CAT001-0.ax


%--------------------------------------------------------------------------
% File     : CAT001-0 : TPTP v7.4.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 (   0 non-Horn;   6 unit;  12 RR)
%            Number of atoms      :   45 (   1 equality)
%            Maximal clause size  :    4 (   2 average)
%            Number of predicates :    4 (   0 propositional; 1-3 arity)
%            Number of functors   :    3 (   0 constant; 1-2 arity)
%            Number of variables  :   52 (   5 singleton)
%            Maximal term depth   :    2 (   1 average)
% 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 )).

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