## TPTP Problem File: HAL001+2.p

View Solutions - Solve Problem

```%--------------------------------------------------------------------------
% File     : HAL001+2 : TPTP v8.0.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.58 v7.5.0, 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 unt;   0 def)
%            Number of atoms       :   94 (  20 equ)
%            Maximal formula atoms :    7 (   2 avg)
%            Number of connectives :   61 (   0   ~;   0   |;  34   &)
%                                         (   2 <=>;  25  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   16 (   5 avg)
%            Maximal term depth    :    3 (   1 avg)
%            Number of predicates  :    7 (   6 usr;   0 prp; 1-4 aty)
%            Number of functors    :   17 (  17 usr;  14 con; 0-3 aty)
%            Number of variables   :   77 (  73   !;   4   ?)
% SPC      : FOF_THM_RFO_SEQ

%--------------------------------------------------------------------------
%----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) ).

%--------------------------------------------------------------------------
```