TPTP Problem File: HAL001+2.p

View Solutions - Solve Problem

%--------------------------------------------------------------------------
% File     : HAL001+2 : TPTP v7.4.0. Released v2.6.0.
% Domain   : Homological Algebra
% Problem  : Short Five Lemma, Part 1
% Version  : [TPTP] axioms : Augmented.
% English  :

% Refs     : [Wei94] Weibel (1994), An Introduction to Homological Algebra
% Source   : [TPTP]
% Names    :

% Status   : Theorem
% Rating   : 0.62 v7.4.0, 0.53 v7.3.0, 0.52 v7.1.0, 0.48 v7.0.0, 0.60 v6.4.0, 0.65 v6.3.0, 0.54 v6.2.0, 0.68 v6.1.0, 0.77 v6.0.0, 0.91 v5.5.0, 0.89 v5.4.0, 0.86 v5.3.0, 0.85 v5.2.0, 0.80 v5.1.0, 0.81 v5.0.0, 0.96 v4.0.1, 0.91 v4.0.0, 0.92 v3.7.0, 0.90 v3.5.0, 0.84 v3.4.0, 0.79 v3.2.0, 0.82 v3.1.0, 1.00 v2.7.0, 0.83 v2.6.0
% Syntax   : Number of formulae    :   33 (  18 unit)
%            Number of atoms       :   94 (  20 equality)
%            Maximal formula depth :   16 (   5 average)
%            Number of connectives :   61 (   0 ~  ;   0  |;  34  &)
%                                         (   2 <=>;  25 =>;   0 <=)
%                                         (   0 <~>;   0 ~|;   0 ~&)
%            Number of predicates  :    7 (   0 propositional; 1-4 arity)
%            Number of functors    :   17 (  14 constant; 0-3 arity)
%            Number of variables   :   77 (   0 singleton;  73 !;   4 ?)
%            Maximal term depth    :    3 (   1 average)
% SPC      : FOF_THM_RFO_SEQ

% Comments :
%--------------------------------------------------------------------------
%----Include Standard homological algebra axioms
include('Axioms/HAL001+0.ax').
%--------------------------------------------------------------------------
%----Alternative defn of injection
fof(injection_properties_2,axiom,
    ( ! [Morphism,Dom,Cod] :
        ( ( injection(Morphism)
          & morphism(Morphism,Dom,Cod) )
       => ! [El] :
            ( ( element(El,Dom)
              & apply(Morphism,El) = zero(Cod) )
           => El = zero(Dom) ) ) )).

fof(properties_for_injection_2,axiom,
    ( ! [Morphism,Dom,Cod] :
        ( ( morphism(Morphism,Dom,Cod)
          & ! [El] :
              ( ( element(El,Dom)
                & apply(Morphism,El) = zero(Cod) )
             => El = zero(Dom) ) )
       => injection(Morphism) ) )).

fof(alpha_morphism,axiom,
    ( morphism(alpha,a,b) )).

fof(beta_morphism,axiom,
    ( morphism(beta,b,c) )).

fof(gamma_morphism,axiom,
    ( morphism(gamma,d,e) )).

fof(delta_morphism,axiom,
    ( morphism(delta,e,r) )).

fof(f_morphism,axiom,
    ( morphism(f,a,d) )).

fof(g_morphism,axiom,
    ( morphism(g,b,e) )).

fof(h_morphism,axiom,
    ( morphism(h,c,r) )).

fof(alpha_injection,axiom,
    ( injection(alpha) )).

fof(gamma_injection,axiom,
    ( injection(gamma) )).

fof(beta_surjection,axiom,
    ( surjection(beta) )).

fof(delta_surjection,axiom,
    ( surjection(delta) )).

fof(alpha_beta_exact,axiom,
    ( exact(alpha,beta) )).

fof(gamma_delta_exact,axiom,
    ( exact(gammma,delta) )).

fof(alpha_g_f_gamma_commute,axiom,
    ( commute(alpha,g,f,gamma) )).

fof(beta_h_g_delta_commute,axiom,
    ( commute(beta,h,g,delta) )).

fof(f_injection,hypothesis,
    ( injection(f) )).

fof(h_injection,hypothesis,
    ( injection(h) )).

fof(g_injection,conjecture,
    ( injection(g) )).

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