TSTP Solution File: HAL001+2 by Z3---4.8.9.0

View Problem - Process Solution

%------------------------------------------------------------------------------
% File     : Z3---4.8.9.0
% Problem  : HAL001+2 : TPTP v8.1.0. Released v2.6.0.
% Transfm  : none
% Format   : tptp
% Command  : z3_tptp -proof -model -t:%d -file:%s

% Computer : n021.cluster.edu
% Model    : x86_64 x86_64
% CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 2.10GHz
% Memory   : 8042.1875MB
% OS       : Linux 3.10.0-693.el7.x86_64
% CPULimit : 300s
% WCLimit  : 300s
% DateTime : Fri Sep 16 22:35:02 EDT 2022

% Result   : Theorem 0.19s 0.43s
% Output   : Proof 0.19s
% Verified : 
% SZS Type : Refutation
%            Derivation depth      :   22
%            Number of leaves      :  135
% Syntax   : Number of formulae    :  273 (  74 unt;  22 typ;   0 def)
%            Number of atoms       : 2566 ( 778 equ)
%            Maximal formula atoms :   44 (  10 avg)
%            Number of connectives : 4153 (1991   ~;1587   |; 346   &)
%                                         ( 177 <=>;  52  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   21 (   8 avg)
%            Maximal term depth    :    5 (   1 avg)
%            Number of FOOLs       :  153 ( 153 fml;   0 var)
%            Number of types       :    2 (   0 usr)
%            Number of type conns  :   21 (   9   >;  12   *;   0   +;   0  <<)
%            Number of predicates  :   14 (  12 usr;   1 prp; 0-4 aty)
%            Number of functors    :   17 (  17 usr;  13 con; 0-3 aty)
%            Number of variables   : 1177 (1060   !;  13   ?;1177   :)

% Comments : 
%------------------------------------------------------------------------------
tff(zero_type,type,
    zero: $i > $i ).

tff(b_type,type,
    b: $i ).

tff(tptp_fun_El_8_type,type,
    tptp_fun_El_8: ( $i * $i * $i ) > $i ).

tff(g_type,type,
    g: $i ).

tff(e_type,type,
    e: $i ).

tff(apply_type,type,
    apply: ( $i * $i ) > $i ).

tff(a_type,type,
    a: $i ).

tff(alpha_type,type,
    alpha: $i ).

tff(element_type,type,
    element: ( $i * $i ) > $o ).

tff(morphism_type,type,
    morphism: ( $i * $i * $i ) > $o ).

tff(tptp_fun_ElDom_4_type,type,
    tptp_fun_ElDom_4: ( $i * $i * $i ) > $i ).

tff(d_type,type,
    d: $i ).

tff(f_type,type,
    f: $i ).

tff(gamma_type,type,
    gamma: $i ).

tff(injection_type,type,
    injection: $i > $o ).

tff(c_type,type,
    c: $i ).

tff(beta_type,type,
    beta: $i ).

tff(exact_type,type,
    exact: ( $i * $i ) > $o ).

tff(r_type,type,
    r: $i ).

tff(h_type,type,
    h: $i ).

tff(delta_type,type,
    delta: $i ).

tff(commute_type,type,
    commute: ( $i * $i * $i * $i ) > $o ).

tff(1,plain,
    ( morphism(alpha,a,b)
  <=> morphism(alpha,a,b) ),
    inference(rewrite,[status(thm)],]) ).

tff(2,axiom,
    morphism(alpha,a,b),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',alpha_morphism) ).

tff(3,plain,
    morphism(alpha,a,b),
    inference(modus_ponens,[status(thm)],[2,1]) ).

tff(4,plain,
    ^ [Morphism: $i,Dom: $i,Cod: $i] :
      rewrite(
        ( ( ~ morphism(Morphism,Dom,Cod)
          | ~ ( ~ ! [El: $i] :
                    ( ~ element(El,Dom)
                    | element(apply(Morphism,El),Cod) )
              | ( apply(Morphism,zero(Dom)) != zero(Cod) ) ) )
      <=> ( ~ morphism(Morphism,Dom,Cod)
          | ~ ( ( apply(Morphism,zero(Dom)) != zero(Cod) )
              | ~ ! [El: $i] :
                    ( ~ element(El,Dom)
                    | element(apply(Morphism,El),Cod) ) ) ) )),
    inference(bind,[status(th)],]) ).

tff(5,plain,
    ( ! [Morphism: $i,Dom: $i,Cod: $i] :
        ( ~ morphism(Morphism,Dom,Cod)
        | ~ ( ~ ! [El: $i] :
                  ( ~ element(El,Dom)
                  | element(apply(Morphism,El),Cod) )
            | ( apply(Morphism,zero(Dom)) != zero(Cod) ) ) )
  <=> ! [Morphism: $i,Dom: $i,Cod: $i] :
        ( ~ morphism(Morphism,Dom,Cod)
        | ~ ( ( apply(Morphism,zero(Dom)) != zero(Cod) )
            | ~ ! [El: $i] :
                  ( ~ element(El,Dom)
                  | element(apply(Morphism,El),Cod) ) ) ) ),
    inference(quant_intro,[status(thm)],[4]) ).

tff(6,plain,
    ^ [Morphism: $i,Dom: $i,Cod: $i] :
      refl(
        ( ( ~ morphism(Morphism,Dom,Cod)
          | ~ ( ~ ! [El: $i] :
                    ( ~ element(El,Dom)
                    | element(apply(Morphism,El),Cod) )
              | ( apply(Morphism,zero(Dom)) != zero(Cod) ) ) )
      <=> ( ~ morphism(Morphism,Dom,Cod)
          | ~ ( ~ ! [El: $i] :
                    ( ~ element(El,Dom)
                    | element(apply(Morphism,El),Cod) )
              | ( apply(Morphism,zero(Dom)) != zero(Cod) ) ) ) )),
    inference(bind,[status(th)],]) ).

tff(7,plain,
    ( ! [Morphism: $i,Dom: $i,Cod: $i] :
        ( ~ morphism(Morphism,Dom,Cod)
        | ~ ( ~ ! [El: $i] :
                  ( ~ element(El,Dom)
                  | element(apply(Morphism,El),Cod) )
            | ( apply(Morphism,zero(Dom)) != zero(Cod) ) ) )
  <=> ! [Morphism: $i,Dom: $i,Cod: $i] :
        ( ~ morphism(Morphism,Dom,Cod)
        | ~ ( ~ ! [El: $i] :
                  ( ~ element(El,Dom)
                  | element(apply(Morphism,El),Cod) )
            | ( apply(Morphism,zero(Dom)) != zero(Cod) ) ) ) ),
    inference(quant_intro,[status(thm)],[6]) ).

tff(8,plain,
    ^ [Morphism: $i,Dom: $i,Cod: $i] :
      rewrite(
        ( ( ~ morphism(Morphism,Dom,Cod)
          | ~ ( ~ ! [El: $i] :
                    ( ~ element(El,Dom)
                    | element(apply(Morphism,El),Cod) )
              | ( apply(Morphism,zero(Dom)) != zero(Cod) ) ) )
      <=> ( ~ morphism(Morphism,Dom,Cod)
          | ~ ( ~ ! [El: $i] :
                    ( ~ element(El,Dom)
                    | element(apply(Morphism,El),Cod) )
              | ( apply(Morphism,zero(Dom)) != zero(Cod) ) ) ) )),
    inference(bind,[status(th)],]) ).

tff(9,plain,
    ( ! [Morphism: $i,Dom: $i,Cod: $i] :
        ( ~ morphism(Morphism,Dom,Cod)
        | ~ ( ~ ! [El: $i] :
                  ( ~ element(El,Dom)
                  | element(apply(Morphism,El),Cod) )
            | ( apply(Morphism,zero(Dom)) != zero(Cod) ) ) )
  <=> ! [Morphism: $i,Dom: $i,Cod: $i] :
        ( ~ morphism(Morphism,Dom,Cod)
        | ~ ( ~ ! [El: $i] :
                  ( ~ element(El,Dom)
                  | element(apply(Morphism,El),Cod) )
            | ( apply(Morphism,zero(Dom)) != zero(Cod) ) ) ) ),
    inference(quant_intro,[status(thm)],[8]) ).

tff(10,plain,
    ( ! [Morphism: $i,Dom: $i,Cod: $i] :
        ( ~ morphism(Morphism,Dom,Cod)
        | ~ ( ~ ! [El: $i] :
                  ( ~ element(El,Dom)
                  | element(apply(Morphism,El),Cod) )
            | ( apply(Morphism,zero(Dom)) != zero(Cod) ) ) )
  <=> ! [Morphism: $i,Dom: $i,Cod: $i] :
        ( ~ morphism(Morphism,Dom,Cod)
        | ~ ( ~ ! [El: $i] :
                  ( ~ element(El,Dom)
                  | element(apply(Morphism,El),Cod) )
            | ( apply(Morphism,zero(Dom)) != zero(Cod) ) ) ) ),
    inference(transitivity,[status(thm)],[9,7]) ).

tff(11,plain,
    ^ [Morphism: $i,Dom: $i,Cod: $i] :
      rewrite(
        ( ( ~ morphism(Morphism,Dom,Cod)
          | ( ! [El: $i] :
                ( ~ element(El,Dom)
                | element(apply(Morphism,El),Cod) )
            & ( apply(Morphism,zero(Dom)) = zero(Cod) ) ) )
      <=> ( ~ morphism(Morphism,Dom,Cod)
          | ~ ( ~ ! [El: $i] :
                    ( ~ element(El,Dom)
                    | element(apply(Morphism,El),Cod) )
              | ( apply(Morphism,zero(Dom)) != zero(Cod) ) ) ) )),
    inference(bind,[status(th)],]) ).

tff(12,plain,
    ( ! [Morphism: $i,Dom: $i,Cod: $i] :
        ( ~ morphism(Morphism,Dom,Cod)
        | ( ! [El: $i] :
              ( ~ element(El,Dom)
              | element(apply(Morphism,El),Cod) )
          & ( apply(Morphism,zero(Dom)) = zero(Cod) ) ) )
  <=> ! [Morphism: $i,Dom: $i,Cod: $i] :
        ( ~ morphism(Morphism,Dom,Cod)
        | ~ ( ~ ! [El: $i] :
                  ( ~ element(El,Dom)
                  | element(apply(Morphism,El),Cod) )
            | ( apply(Morphism,zero(Dom)) != zero(Cod) ) ) ) ),
    inference(quant_intro,[status(thm)],[11]) ).

tff(13,plain,
    ( ! [Morphism: $i,Dom: $i,Cod: $i] :
        ( ~ morphism(Morphism,Dom,Cod)
        | ( ! [El: $i] :
              ( ~ element(El,Dom)
              | element(apply(Morphism,El),Cod) )
          & ( apply(Morphism,zero(Dom)) = zero(Cod) ) ) )
  <=> ! [Morphism: $i,Dom: $i,Cod: $i] :
        ( ~ morphism(Morphism,Dom,Cod)
        | ( ! [El: $i] :
              ( ~ element(El,Dom)
              | element(apply(Morphism,El),Cod) )
          & ( apply(Morphism,zero(Dom)) = zero(Cod) ) ) ) ),
    inference(rewrite,[status(thm)],]) ).

tff(14,plain,
    ^ [Morphism: $i,Dom: $i,Cod: $i] :
      trans(
        monotonicity(
          rewrite(
            ( ( ! [El: $i] :
                  ( element(El,Dom)
                 => element(apply(Morphism,El),Cod) )
              & ( apply(Morphism,zero(Dom)) = zero(Cod) ) )
          <=> ( ! [El: $i] :
                  ( ~ element(El,Dom)
                  | element(apply(Morphism,El),Cod) )
              & ( apply(Morphism,zero(Dom)) = zero(Cod) ) ) )),
          ( ( morphism(Morphism,Dom,Cod)
           => ( ! [El: $i] :
                  ( element(El,Dom)
                 => element(apply(Morphism,El),Cod) )
              & ( apply(Morphism,zero(Dom)) = zero(Cod) ) ) )
        <=> ( morphism(Morphism,Dom,Cod)
           => ( ! [El: $i] :
                  ( ~ element(El,Dom)
                  | element(apply(Morphism,El),Cod) )
              & ( apply(Morphism,zero(Dom)) = zero(Cod) ) ) ) )),
        rewrite(
          ( ( morphism(Morphism,Dom,Cod)
           => ( ! [El: $i] :
                  ( ~ element(El,Dom)
                  | element(apply(Morphism,El),Cod) )
              & ( apply(Morphism,zero(Dom)) = zero(Cod) ) ) )
        <=> ( ~ morphism(Morphism,Dom,Cod)
            | ( ! [El: $i] :
                  ( ~ element(El,Dom)
                  | element(apply(Morphism,El),Cod) )
              & ( apply(Morphism,zero(Dom)) = zero(Cod) ) ) ) )),
        ( ( morphism(Morphism,Dom,Cod)
         => ( ! [El: $i] :
                ( element(El,Dom)
               => element(apply(Morphism,El),Cod) )
            & ( apply(Morphism,zero(Dom)) = zero(Cod) ) ) )
      <=> ( ~ morphism(Morphism,Dom,Cod)
          | ( ! [El: $i] :
                ( ~ element(El,Dom)
                | element(apply(Morphism,El),Cod) )
            & ( apply(Morphism,zero(Dom)) = zero(Cod) ) ) ) )),
    inference(bind,[status(th)],]) ).

tff(15,plain,
    ( ! [Morphism: $i,Dom: $i,Cod: $i] :
        ( morphism(Morphism,Dom,Cod)
       => ( ! [El: $i] :
              ( element(El,Dom)
             => element(apply(Morphism,El),Cod) )
          & ( apply(Morphism,zero(Dom)) = zero(Cod) ) ) )
  <=> ! [Morphism: $i,Dom: $i,Cod: $i] :
        ( ~ morphism(Morphism,Dom,Cod)
        | ( ! [El: $i] :
              ( ~ element(El,Dom)
              | element(apply(Morphism,El),Cod) )
          & ( apply(Morphism,zero(Dom)) = zero(Cod) ) ) ) ),
    inference(quant_intro,[status(thm)],[14]) ).

tff(16,axiom,
    ! [Morphism: $i,Dom: $i,Cod: $i] :
      ( morphism(Morphism,Dom,Cod)
     => ( ! [El: $i] :
            ( element(El,Dom)
           => element(apply(Morphism,El),Cod) )
        & ( apply(Morphism,zero(Dom)) = zero(Cod) ) ) ),
    file('/export/starexec/sandbox2/benchmark/Axioms/HAL001+0.ax',morphism) ).

tff(17,plain,
    ! [Morphism: $i,Dom: $i,Cod: $i] :
      ( ~ morphism(Morphism,Dom,Cod)
      | ( ! [El: $i] :
            ( ~ element(El,Dom)
            | element(apply(Morphism,El),Cod) )
        & ( apply(Morphism,zero(Dom)) = zero(Cod) ) ) ),
    inference(modus_ponens,[status(thm)],[16,15]) ).

tff(18,plain,
    ! [Morphism: $i,Dom: $i,Cod: $i] :
      ( ~ morphism(Morphism,Dom,Cod)
      | ( ! [El: $i] :
            ( ~ element(El,Dom)
            | element(apply(Morphism,El),Cod) )
        & ( apply(Morphism,zero(Dom)) = zero(Cod) ) ) ),
    inference(modus_ponens,[status(thm)],[17,13]) ).

tff(19,plain,
    ! [Morphism: $i,Dom: $i,Cod: $i] :
      ( ~ morphism(Morphism,Dom,Cod)
      | ( ! [El: $i] :
            ( ~ element(El,Dom)
            | element(apply(Morphism,El),Cod) )
        & ( apply(Morphism,zero(Dom)) = zero(Cod) ) ) ),
    inference(skolemize,[status(sab)],[18]) ).

tff(20,plain,
    ! [Morphism: $i,Dom: $i,Cod: $i] :
      ( ~ morphism(Morphism,Dom,Cod)
      | ~ ( ~ ! [El: $i] :
                ( ~ element(El,Dom)
                | element(apply(Morphism,El),Cod) )
          | ( apply(Morphism,zero(Dom)) != zero(Cod) ) ) ),
    inference(modus_ponens,[status(thm)],[19,12]) ).

tff(21,plain,
    ! [Morphism: $i,Dom: $i,Cod: $i] :
      ( ~ morphism(Morphism,Dom,Cod)
      | ~ ( ~ ! [El: $i] :
                ( ~ element(El,Dom)
                | element(apply(Morphism,El),Cod) )
          | ( apply(Morphism,zero(Dom)) != zero(Cod) ) ) ),
    inference(modus_ponens,[status(thm)],[20,10]) ).

tff(22,plain,
    ! [Morphism: $i,Dom: $i,Cod: $i] :
      ( ~ morphism(Morphism,Dom,Cod)
      | ~ ( ( apply(Morphism,zero(Dom)) != zero(Cod) )
          | ~ ! [El: $i] :
                ( ~ element(El,Dom)
                | element(apply(Morphism,El),Cod) ) ) ),
    inference(modus_ponens,[status(thm)],[21,5]) ).

tff(23,plain,
    ( ( ~ ! [Morphism: $i,Dom: $i,Cod: $i] :
            ( ~ morphism(Morphism,Dom,Cod)
            | ~ ( ( apply(Morphism,zero(Dom)) != zero(Cod) )
                | ~ ! [El: $i] :
                      ( ~ element(El,Dom)
                      | element(apply(Morphism,El),Cod) ) ) )
      | ~ morphism(alpha,a,b)
      | ~ ( ( apply(alpha,zero(a)) != zero(b) )
          | ~ ! [El: $i] :
                ( ~ element(El,a)
                | element(apply(alpha,El),b) ) ) )
  <=> ( ~ ! [Morphism: $i,Dom: $i,Cod: $i] :
            ( ~ morphism(Morphism,Dom,Cod)
            | ~ ( ( apply(Morphism,zero(Dom)) != zero(Cod) )
                | ~ ! [El: $i] :
                      ( ~ element(El,Dom)
                      | element(apply(Morphism,El),Cod) ) ) )
      | ~ morphism(alpha,a,b)
      | ~ ( ( apply(alpha,zero(a)) != zero(b) )
          | ~ ! [El: $i] :
                ( ~ element(El,a)
                | element(apply(alpha,El),b) ) ) ) ),
    inference(rewrite,[status(thm)],]) ).

tff(24,plain,
    ( ~ ! [Morphism: $i,Dom: $i,Cod: $i] :
          ( ~ morphism(Morphism,Dom,Cod)
          | ~ ( ( apply(Morphism,zero(Dom)) != zero(Cod) )
              | ~ ! [El: $i] :
                    ( ~ element(El,Dom)
                    | element(apply(Morphism,El),Cod) ) ) )
    | ~ morphism(alpha,a,b)
    | ~ ( ( apply(alpha,zero(a)) != zero(b) )
        | ~ ! [El: $i] :
              ( ~ element(El,a)
              | element(apply(alpha,El),b) ) ) ),
    inference(quant_inst,[status(thm)],]) ).

tff(25,plain,
    ( ~ ! [Morphism: $i,Dom: $i,Cod: $i] :
          ( ~ morphism(Morphism,Dom,Cod)
          | ~ ( ( apply(Morphism,zero(Dom)) != zero(Cod) )
              | ~ ! [El: $i] :
                    ( ~ element(El,Dom)
                    | element(apply(Morphism,El),Cod) ) ) )
    | ~ morphism(alpha,a,b)
    | ~ ( ( apply(alpha,zero(a)) != zero(b) )
        | ~ ! [El: $i] :
              ( ~ element(El,a)
              | element(apply(alpha,El),b) ) ) ),
    inference(modus_ponens,[status(thm)],[24,23]) ).

tff(26,plain,
    ~ ( ( apply(alpha,zero(a)) != zero(b) )
      | ~ ! [El: $i] :
            ( ~ element(El,a)
            | element(apply(alpha,El),b) ) ),
    inference(unit_resolution,[status(thm)],[25,22,3]) ).

tff(27,plain,
    ( ( apply(alpha,zero(a)) != zero(b) )
    | ~ ! [El: $i] :
          ( ~ element(El,a)
          | element(apply(alpha,El),b) )
    | ( apply(alpha,zero(a)) = zero(b) ) ),
    inference(tautology,[status(thm)],]) ).

tff(28,plain,
    apply(alpha,zero(a)) = zero(b),
    inference(unit_resolution,[status(thm)],[27,26]) ).

tff(29,plain,
    ( ~ injection(g)
  <=> ~ injection(g) ),
    inference(rewrite,[status(thm)],]) ).

tff(30,axiom,
    ~ injection(g),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',g_injection) ).

tff(31,plain,
    ~ injection(g),
    inference(modus_ponens,[status(thm)],[30,29]) ).

tff(32,plain,
    ( morphism(g,b,e)
  <=> morphism(g,b,e) ),
    inference(rewrite,[status(thm)],]) ).

tff(33,axiom,
    morphism(g,b,e),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',g_morphism) ).

tff(34,plain,
    morphism(g,b,e),
    inference(modus_ponens,[status(thm)],[33,32]) ).

tff(35,plain,
    ^ [Morphism: $i,Dom: $i,Cod: $i] :
      refl(
        ( ( injection(Morphism)
          | ~ morphism(Morphism,Dom,Cod)
          | ~ ( ( tptp_fun_El_8(Cod,Dom,Morphism) = zero(Dom) )
              | ~ element(tptp_fun_El_8(Cod,Dom,Morphism),Dom)
              | ( apply(Morphism,tptp_fun_El_8(Cod,Dom,Morphism)) != zero(Cod) ) ) )
      <=> ( injection(Morphism)
          | ~ morphism(Morphism,Dom,Cod)
          | ~ ( ( tptp_fun_El_8(Cod,Dom,Morphism) = zero(Dom) )
              | ~ element(tptp_fun_El_8(Cod,Dom,Morphism),Dom)
              | ( apply(Morphism,tptp_fun_El_8(Cod,Dom,Morphism)) != zero(Cod) ) ) ) )),
    inference(bind,[status(th)],]) ).

tff(36,plain,
    ( ! [Morphism: $i,Dom: $i,Cod: $i] :
        ( injection(Morphism)
        | ~ morphism(Morphism,Dom,Cod)
        | ~ ( ( tptp_fun_El_8(Cod,Dom,Morphism) = zero(Dom) )
            | ~ element(tptp_fun_El_8(Cod,Dom,Morphism),Dom)
            | ( apply(Morphism,tptp_fun_El_8(Cod,Dom,Morphism)) != zero(Cod) ) ) )
  <=> ! [Morphism: $i,Dom: $i,Cod: $i] :
        ( injection(Morphism)
        | ~ morphism(Morphism,Dom,Cod)
        | ~ ( ( tptp_fun_El_8(Cod,Dom,Morphism) = zero(Dom) )
            | ~ element(tptp_fun_El_8(Cod,Dom,Morphism),Dom)
            | ( apply(Morphism,tptp_fun_El_8(Cod,Dom,Morphism)) != zero(Cod) ) ) ) ),
    inference(quant_intro,[status(thm)],[35]) ).

tff(37,plain,
    ^ [Morphism: $i,Dom: $i,Cod: $i] :
      rewrite(
        ( ( injection(Morphism)
          | ~ morphism(Morphism,Dom,Cod)
          | ~ ( ~ ( element(tptp_fun_El_8(Cod,Dom,Morphism),Dom)
                  & ( apply(Morphism,tptp_fun_El_8(Cod,Dom,Morphism)) = zero(Cod) ) )
              | ( tptp_fun_El_8(Cod,Dom,Morphism) = zero(Dom) ) ) )
      <=> ( injection(Morphism)
          | ~ morphism(Morphism,Dom,Cod)
          | ~ ( ( tptp_fun_El_8(Cod,Dom,Morphism) = zero(Dom) )
              | ~ element(tptp_fun_El_8(Cod,Dom,Morphism),Dom)
              | ( apply(Morphism,tptp_fun_El_8(Cod,Dom,Morphism)) != zero(Cod) ) ) ) )),
    inference(bind,[status(th)],]) ).

tff(38,plain,
    ( ! [Morphism: $i,Dom: $i,Cod: $i] :
        ( injection(Morphism)
        | ~ morphism(Morphism,Dom,Cod)
        | ~ ( ~ ( element(tptp_fun_El_8(Cod,Dom,Morphism),Dom)
                & ( apply(Morphism,tptp_fun_El_8(Cod,Dom,Morphism)) = zero(Cod) ) )
            | ( tptp_fun_El_8(Cod,Dom,Morphism) = zero(Dom) ) ) )
  <=> ! [Morphism: $i,Dom: $i,Cod: $i] :
        ( injection(Morphism)
        | ~ morphism(Morphism,Dom,Cod)
        | ~ ( ( tptp_fun_El_8(Cod,Dom,Morphism) = zero(Dom) )
            | ~ element(tptp_fun_El_8(Cod,Dom,Morphism),Dom)
            | ( apply(Morphism,tptp_fun_El_8(Cod,Dom,Morphism)) != zero(Cod) ) ) ) ),
    inference(quant_intro,[status(thm)],[37]) ).

tff(39,plain,
    ^ [Morphism: $i,Dom: $i,Cod: $i] :
      rewrite(
        ( ( injection(Morphism)
          | ~ morphism(Morphism,Dom,Cod)
          | ~ ( ~ ( element(tptp_fun_El_8(Cod,Dom,Morphism),Dom)
                  & ( apply(Morphism,tptp_fun_El_8(Cod,Dom,Morphism)) = zero(Cod) ) )
              | ( tptp_fun_El_8(Cod,Dom,Morphism) = zero(Dom) ) ) )
      <=> ( injection(Morphism)
          | ~ morphism(Morphism,Dom,Cod)
          | ~ ( ~ ( element(tptp_fun_El_8(Cod,Dom,Morphism),Dom)
                  & ( apply(Morphism,tptp_fun_El_8(Cod,Dom,Morphism)) = zero(Cod) ) )
              | ( tptp_fun_El_8(Cod,Dom,Morphism) = zero(Dom) ) ) ) )),
    inference(bind,[status(th)],]) ).

tff(40,plain,
    ( ! [Morphism: $i,Dom: $i,Cod: $i] :
        ( injection(Morphism)
        | ~ morphism(Morphism,Dom,Cod)
        | ~ ( ~ ( element(tptp_fun_El_8(Cod,Dom,Morphism),Dom)
                & ( apply(Morphism,tptp_fun_El_8(Cod,Dom,Morphism)) = zero(Cod) ) )
            | ( tptp_fun_El_8(Cod,Dom,Morphism) = zero(Dom) ) ) )
  <=> ! [Morphism: $i,Dom: $i,Cod: $i] :
        ( injection(Morphism)
        | ~ morphism(Morphism,Dom,Cod)
        | ~ ( ~ ( element(tptp_fun_El_8(Cod,Dom,Morphism),Dom)
                & ( apply(Morphism,tptp_fun_El_8(Cod,Dom,Morphism)) = zero(Cod) ) )
            | ( tptp_fun_El_8(Cod,Dom,Morphism) = zero(Dom) ) ) ) ),
    inference(quant_intro,[status(thm)],[39]) ).

tff(41,plain,
    ( ! [Morphism: $i,Dom: $i,Cod: $i] :
        ( injection(Morphism)
        | ~ ( morphism(Morphism,Dom,Cod)
            & ! [El: $i] :
                ( ~ ( element(El,Dom)
                    & ( apply(Morphism,El) = zero(Cod) ) )
                | ( El = zero(Dom) ) ) ) )
  <=> ! [Morphism: $i,Dom: $i,Cod: $i] :
        ( injection(Morphism)
        | ~ ( morphism(Morphism,Dom,Cod)
            & ! [El: $i] :
                ( ~ ( element(El,Dom)
                    & ( apply(Morphism,El) = zero(Cod) ) )
                | ( El = zero(Dom) ) ) ) ) ),
    inference(rewrite,[status(thm)],]) ).

tff(42,plain,
    ^ [Morphism: $i,Dom: $i,Cod: $i] :
      trans(
        monotonicity(
          rewrite(
            ( ( morphism(Morphism,Dom,Cod)
              & ! [El: $i] :
                  ( ( element(El,Dom)
                    & ( apply(Morphism,El) = zero(Cod) ) )
                 => ( El = zero(Dom) ) ) )
          <=> ( morphism(Morphism,Dom,Cod)
              & ! [El: $i] :
                  ( ~ ( element(El,Dom)
                      & ( apply(Morphism,El) = zero(Cod) ) )
                  | ( El = zero(Dom) ) ) ) )),
          ( ( ( morphism(Morphism,Dom,Cod)
              & ! [El: $i] :
                  ( ( element(El,Dom)
                    & ( apply(Morphism,El) = zero(Cod) ) )
                 => ( El = zero(Dom) ) ) )
           => injection(Morphism) )
        <=> ( ( morphism(Morphism,Dom,Cod)
              & ! [El: $i] :
                  ( ~ ( element(El,Dom)
                      & ( apply(Morphism,El) = zero(Cod) ) )
                  | ( El = zero(Dom) ) ) )
           => injection(Morphism) ) )),
        rewrite(
          ( ( ( morphism(Morphism,Dom,Cod)
              & ! [El: $i] :
                  ( ~ ( element(El,Dom)
                      & ( apply(Morphism,El) = zero(Cod) ) )
                  | ( El = zero(Dom) ) ) )
           => injection(Morphism) )
        <=> ( injection(Morphism)
            | ~ ( morphism(Morphism,Dom,Cod)
                & ! [El: $i] :
                    ( ~ ( element(El,Dom)
                        & ( apply(Morphism,El) = zero(Cod) ) )
                    | ( El = zero(Dom) ) ) ) ) )),
        ( ( ( morphism(Morphism,Dom,Cod)
            & ! [El: $i] :
                ( ( element(El,Dom)
                  & ( apply(Morphism,El) = zero(Cod) ) )
               => ( El = zero(Dom) ) ) )
         => injection(Morphism) )
      <=> ( injection(Morphism)
          | ~ ( morphism(Morphism,Dom,Cod)
              & ! [El: $i] :
                  ( ~ ( element(El,Dom)
                      & ( apply(Morphism,El) = zero(Cod) ) )
                  | ( El = zero(Dom) ) ) ) ) )),
    inference(bind,[status(th)],]) ).

tff(43,plain,
    ( ! [Morphism: $i,Dom: $i,Cod: $i] :
        ( ( morphism(Morphism,Dom,Cod)
          & ! [El: $i] :
              ( ( element(El,Dom)
                & ( apply(Morphism,El) = zero(Cod) ) )
             => ( El = zero(Dom) ) ) )
       => injection(Morphism) )
  <=> ! [Morphism: $i,Dom: $i,Cod: $i] :
        ( injection(Morphism)
        | ~ ( morphism(Morphism,Dom,Cod)
            & ! [El: $i] :
                ( ~ ( element(El,Dom)
                    & ( apply(Morphism,El) = zero(Cod) ) )
                | ( El = zero(Dom) ) ) ) ) ),
    inference(quant_intro,[status(thm)],[42]) ).

tff(44,axiom,
    ! [Morphism: $i,Dom: $i,Cod: $i] :
      ( ( morphism(Morphism,Dom,Cod)
        & ! [El: $i] :
            ( ( element(El,Dom)
              & ( apply(Morphism,El) = zero(Cod) ) )
           => ( El = zero(Dom) ) ) )
     => injection(Morphism) ),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',properties_for_injection_2) ).

tff(45,plain,
    ! [Morphism: $i,Dom: $i,Cod: $i] :
      ( injection(Morphism)
      | ~ ( morphism(Morphism,Dom,Cod)
          & ! [El: $i] :
              ( ~ ( element(El,Dom)
                  & ( apply(Morphism,El) = zero(Cod) ) )
              | ( El = zero(Dom) ) ) ) ),
    inference(modus_ponens,[status(thm)],[44,43]) ).

tff(46,plain,
    ! [Morphism: $i,Dom: $i,Cod: $i] :
      ( injection(Morphism)
      | ~ ( morphism(Morphism,Dom,Cod)
          & ! [El: $i] :
              ( ~ ( element(El,Dom)
                  & ( apply(Morphism,El) = zero(Cod) ) )
              | ( El = zero(Dom) ) ) ) ),
    inference(modus_ponens,[status(thm)],[45,41]) ).

tff(47,plain,
    ! [Morphism: $i,Dom: $i,Cod: $i] :
      ( injection(Morphism)
      | ~ morphism(Morphism,Dom,Cod)
      | ~ ( ~ ( element(tptp_fun_El_8(Cod,Dom,Morphism),Dom)
              & ( apply(Morphism,tptp_fun_El_8(Cod,Dom,Morphism)) = zero(Cod) ) )
          | ( tptp_fun_El_8(Cod,Dom,Morphism) = zero(Dom) ) ) ),
    inference(skolemize,[status(sab)],[46]) ).

tff(48,plain,
    ! [Morphism: $i,Dom: $i,Cod: $i] :
      ( injection(Morphism)
      | ~ morphism(Morphism,Dom,Cod)
      | ~ ( ~ ( element(tptp_fun_El_8(Cod,Dom,Morphism),Dom)
              & ( apply(Morphism,tptp_fun_El_8(Cod,Dom,Morphism)) = zero(Cod) ) )
          | ( tptp_fun_El_8(Cod,Dom,Morphism) = zero(Dom) ) ) ),
    inference(modus_ponens,[status(thm)],[47,40]) ).

tff(49,plain,
    ! [Morphism: $i,Dom: $i,Cod: $i] :
      ( injection(Morphism)
      | ~ morphism(Morphism,Dom,Cod)
      | ~ ( ( tptp_fun_El_8(Cod,Dom,Morphism) = zero(Dom) )
          | ~ element(tptp_fun_El_8(Cod,Dom,Morphism),Dom)
          | ( apply(Morphism,tptp_fun_El_8(Cod,Dom,Morphism)) != zero(Cod) ) ) ),
    inference(modus_ponens,[status(thm)],[48,38]) ).

tff(50,plain,
    ! [Morphism: $i,Dom: $i,Cod: $i] :
      ( injection(Morphism)
      | ~ morphism(Morphism,Dom,Cod)
      | ~ ( ( tptp_fun_El_8(Cod,Dom,Morphism) = zero(Dom) )
          | ~ element(tptp_fun_El_8(Cod,Dom,Morphism),Dom)
          | ( apply(Morphism,tptp_fun_El_8(Cod,Dom,Morphism)) != zero(Cod) ) ) ),
    inference(modus_ponens,[status(thm)],[49,36]) ).

tff(51,plain,
    ( ( ~ ! [Morphism: $i,Dom: $i,Cod: $i] :
            ( injection(Morphism)
            | ~ morphism(Morphism,Dom,Cod)
            | ~ ( ( tptp_fun_El_8(Cod,Dom,Morphism) = zero(Dom) )
                | ~ element(tptp_fun_El_8(Cod,Dom,Morphism),Dom)
                | ( apply(Morphism,tptp_fun_El_8(Cod,Dom,Morphism)) != zero(Cod) ) ) )
      | injection(g)
      | ~ morphism(g,b,e)
      | ~ ( ( tptp_fun_El_8(e,b,g) = zero(b) )
          | ~ element(tptp_fun_El_8(e,b,g),b)
          | ( apply(g,tptp_fun_El_8(e,b,g)) != zero(e) ) ) )
  <=> ( ~ ! [Morphism: $i,Dom: $i,Cod: $i] :
            ( injection(Morphism)
            | ~ morphism(Morphism,Dom,Cod)
            | ~ ( ( tptp_fun_El_8(Cod,Dom,Morphism) = zero(Dom) )
                | ~ element(tptp_fun_El_8(Cod,Dom,Morphism),Dom)
                | ( apply(Morphism,tptp_fun_El_8(Cod,Dom,Morphism)) != zero(Cod) ) ) )
      | injection(g)
      | ~ morphism(g,b,e)
      | ~ ( ( tptp_fun_El_8(e,b,g) = zero(b) )
          | ~ element(tptp_fun_El_8(e,b,g),b)
          | ( apply(g,tptp_fun_El_8(e,b,g)) != zero(e) ) ) ) ),
    inference(rewrite,[status(thm)],]) ).

tff(52,plain,
    ( ~ ! [Morphism: $i,Dom: $i,Cod: $i] :
          ( injection(Morphism)
          | ~ morphism(Morphism,Dom,Cod)
          | ~ ( ( tptp_fun_El_8(Cod,Dom,Morphism) = zero(Dom) )
              | ~ element(tptp_fun_El_8(Cod,Dom,Morphism),Dom)
              | ( apply(Morphism,tptp_fun_El_8(Cod,Dom,Morphism)) != zero(Cod) ) ) )
    | injection(g)
    | ~ morphism(g,b,e)
    | ~ ( ( tptp_fun_El_8(e,b,g) = zero(b) )
        | ~ element(tptp_fun_El_8(e,b,g),b)
        | ( apply(g,tptp_fun_El_8(e,b,g)) != zero(e) ) ) ),
    inference(quant_inst,[status(thm)],]) ).

tff(53,plain,
    ( ~ ! [Morphism: $i,Dom: $i,Cod: $i] :
          ( injection(Morphism)
          | ~ morphism(Morphism,Dom,Cod)
          | ~ ( ( tptp_fun_El_8(Cod,Dom,Morphism) = zero(Dom) )
              | ~ element(tptp_fun_El_8(Cod,Dom,Morphism),Dom)
              | ( apply(Morphism,tptp_fun_El_8(Cod,Dom,Morphism)) != zero(Cod) ) ) )
    | injection(g)
    | ~ morphism(g,b,e)
    | ~ ( ( tptp_fun_El_8(e,b,g) = zero(b) )
        | ~ element(tptp_fun_El_8(e,b,g),b)
        | ( apply(g,tptp_fun_El_8(e,b,g)) != zero(e) ) ) ),
    inference(modus_ponens,[status(thm)],[52,51]) ).

tff(54,plain,
    ~ ( ( tptp_fun_El_8(e,b,g) = zero(b) )
      | ~ element(tptp_fun_El_8(e,b,g),b)
      | ( apply(g,tptp_fun_El_8(e,b,g)) != zero(e) ) ),
    inference(unit_resolution,[status(thm)],[53,50,34,31]) ).

tff(55,plain,
    ( ( tptp_fun_El_8(e,b,g) = zero(b) )
    | ~ element(tptp_fun_El_8(e,b,g),b)
    | ( apply(g,tptp_fun_El_8(e,b,g)) != zero(e) )
    | ( apply(g,tptp_fun_El_8(e,b,g)) = zero(e) ) ),
    inference(tautology,[status(thm)],]) ).

tff(56,plain,
    apply(g,tptp_fun_El_8(e,b,g)) = zero(e),
    inference(unit_resolution,[status(thm)],[55,54]) ).

tff(57,plain,
    ( exact(alpha,beta)
  <=> exact(alpha,beta) ),
    inference(rewrite,[status(thm)],]) ).

tff(58,axiom,
    exact(alpha,beta),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',alpha_beta_exact) ).

tff(59,plain,
    exact(alpha,beta),
    inference(modus_ponens,[status(thm)],[58,57]) ).

tff(60,plain,
    ( morphism(beta,b,c)
  <=> morphism(beta,b,c) ),
    inference(rewrite,[status(thm)],]) ).

tff(61,axiom,
    morphism(beta,b,c),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',beta_morphism) ).

tff(62,plain,
    morphism(beta,b,c),
    inference(modus_ponens,[status(thm)],[61,60]) ).

tff(63,plain,
    ^ [Morphism1: $i,Morphism2: $i,Dom: $i,CodDom: $i,Cod: $i] :
      refl(
        ( ( ~ morphism(Morphism1,Dom,CodDom)
          | ~ morphism(Morphism2,CodDom,Cod)
          | ~ exact(Morphism1,Morphism2)
          | ! [ElCodDom: $i] :
              ~ ( ~ ( ~ element(ElCodDom,CodDom)
                    | ( apply(Morphism2,ElCodDom) != zero(Cod) )
                    | ~ ( ~ element(tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1),Dom)
                        | ( apply(Morphism1,tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1)) != ElCodDom ) ) )
                | ~ ( ~ ( ~ element(ElCodDom,CodDom)
                        | ( apply(Morphism2,ElCodDom) != zero(Cod) ) )
                    | ! [ElDom: $i] :
                        ( ~ element(ElDom,Dom)
                        | ( apply(Morphism1,ElDom) != ElCodDom ) ) ) ) )
      <=> ( ~ morphism(Morphism1,Dom,CodDom)
          | ~ morphism(Morphism2,CodDom,Cod)
          | ~ exact(Morphism1,Morphism2)
          | ! [ElCodDom: $i] :
              ~ ( ~ ( ~ element(ElCodDom,CodDom)
                    | ( apply(Morphism2,ElCodDom) != zero(Cod) )
                    | ~ ( ~ element(tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1),Dom)
                        | ( apply(Morphism1,tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1)) != ElCodDom ) ) )
                | ~ ( ~ ( ~ element(ElCodDom,CodDom)
                        | ( apply(Morphism2,ElCodDom) != zero(Cod) ) )
                    | ! [ElDom: $i] :
                        ( ~ element(ElDom,Dom)
                        | ( apply(Morphism1,ElDom) != ElCodDom ) ) ) ) ) )),
    inference(bind,[status(th)],]) ).

tff(64,plain,
    ( ! [Morphism1: $i,Morphism2: $i,Dom: $i,CodDom: $i,Cod: $i] :
        ( ~ morphism(Morphism1,Dom,CodDom)
        | ~ morphism(Morphism2,CodDom,Cod)
        | ~ exact(Morphism1,Morphism2)
        | ! [ElCodDom: $i] :
            ~ ( ~ ( ~ element(ElCodDom,CodDom)
                  | ( apply(Morphism2,ElCodDom) != zero(Cod) )
                  | ~ ( ~ element(tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1),Dom)
                      | ( apply(Morphism1,tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1)) != ElCodDom ) ) )
              | ~ ( ~ ( ~ element(ElCodDom,CodDom)
                      | ( apply(Morphism2,ElCodDom) != zero(Cod) ) )
                  | ! [ElDom: $i] :
                      ( ~ element(ElDom,Dom)
                      | ( apply(Morphism1,ElDom) != ElCodDom ) ) ) ) )
  <=> ! [Morphism1: $i,Morphism2: $i,Dom: $i,CodDom: $i,Cod: $i] :
        ( ~ morphism(Morphism1,Dom,CodDom)
        | ~ morphism(Morphism2,CodDom,Cod)
        | ~ exact(Morphism1,Morphism2)
        | ! [ElCodDom: $i] :
            ~ ( ~ ( ~ element(ElCodDom,CodDom)
                  | ( apply(Morphism2,ElCodDom) != zero(Cod) )
                  | ~ ( ~ element(tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1),Dom)
                      | ( apply(Morphism1,tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1)) != ElCodDom ) ) )
              | ~ ( ~ ( ~ element(ElCodDom,CodDom)
                      | ( apply(Morphism2,ElCodDom) != zero(Cod) ) )
                  | ! [ElDom: $i] :
                      ( ~ element(ElDom,Dom)
                      | ( apply(Morphism1,ElDom) != ElCodDom ) ) ) ) ) ),
    inference(quant_intro,[status(thm)],[63]) ).

tff(65,plain,
    ^ [Morphism1: $i,Morphism2: $i,Dom: $i,CodDom: $i,Cod: $i] :
      rewrite(
        ( ( ~ morphism(Morphism1,Dom,CodDom)
          | ~ morphism(Morphism2,CodDom,Cod)
          | ~ exact(Morphism1,Morphism2)
          | ! [ElCodDom: $i] :
              ~ ( ~ ( ~ element(ElCodDom,CodDom)
                    | ( apply(Morphism2,ElCodDom) != zero(Cod) )
                    | ~ ( ~ element(tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1),Dom)
                        | ( apply(Morphism1,tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1)) != ElCodDom ) ) )
                | ~ ( ~ ( ~ element(ElCodDom,CodDom)
                        | ( apply(Morphism2,ElCodDom) != zero(Cod) ) )
                    | ! [ElDom: $i] :
                        ( ~ element(ElDom,Dom)
                        | ( apply(Morphism1,ElDom) != ElCodDom ) ) ) ) )
      <=> ( ~ morphism(Morphism1,Dom,CodDom)
          | ~ morphism(Morphism2,CodDom,Cod)
          | ~ exact(Morphism1,Morphism2)
          | ! [ElCodDom: $i] :
              ~ ( ~ ( ~ element(ElCodDom,CodDom)
                    | ( apply(Morphism2,ElCodDom) != zero(Cod) )
                    | ~ ( ~ element(tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1),Dom)
                        | ( apply(Morphism1,tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1)) != ElCodDom ) ) )
                | ~ ( ~ ( ~ element(ElCodDom,CodDom)
                        | ( apply(Morphism2,ElCodDom) != zero(Cod) ) )
                    | ! [ElDom: $i] :
                        ( ~ element(ElDom,Dom)
                        | ( apply(Morphism1,ElDom) != ElCodDom ) ) ) ) ) )),
    inference(bind,[status(th)],]) ).

tff(66,plain,
    ( ! [Morphism1: $i,Morphism2: $i,Dom: $i,CodDom: $i,Cod: $i] :
        ( ~ morphism(Morphism1,Dom,CodDom)
        | ~ morphism(Morphism2,CodDom,Cod)
        | ~ exact(Morphism1,Morphism2)
        | ! [ElCodDom: $i] :
            ~ ( ~ ( ~ element(ElCodDom,CodDom)
                  | ( apply(Morphism2,ElCodDom) != zero(Cod) )
                  | ~ ( ~ element(tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1),Dom)
                      | ( apply(Morphism1,tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1)) != ElCodDom ) ) )
              | ~ ( ~ ( ~ element(ElCodDom,CodDom)
                      | ( apply(Morphism2,ElCodDom) != zero(Cod) ) )
                  | ! [ElDom: $i] :
                      ( ~ element(ElDom,Dom)
                      | ( apply(Morphism1,ElDom) != ElCodDom ) ) ) ) )
  <=> ! [Morphism1: $i,Morphism2: $i,Dom: $i,CodDom: $i,Cod: $i] :
        ( ~ morphism(Morphism1,Dom,CodDom)
        | ~ morphism(Morphism2,CodDom,Cod)
        | ~ exact(Morphism1,Morphism2)
        | ! [ElCodDom: $i] :
            ~ ( ~ ( ~ element(ElCodDom,CodDom)
                  | ( apply(Morphism2,ElCodDom) != zero(Cod) )
                  | ~ ( ~ element(tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1),Dom)
                      | ( apply(Morphism1,tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1)) != ElCodDom ) ) )
              | ~ ( ~ ( ~ element(ElCodDom,CodDom)
                      | ( apply(Morphism2,ElCodDom) != zero(Cod) ) )
                  | ! [ElDom: $i] :
                      ( ~ element(ElDom,Dom)
                      | ( apply(Morphism1,ElDom) != ElCodDom ) ) ) ) ) ),
    inference(quant_intro,[status(thm)],[65]) ).

tff(67,plain,
    ( ! [Morphism1: $i,Morphism2: $i,Dom: $i,CodDom: $i,Cod: $i] :
        ( ~ morphism(Morphism1,Dom,CodDom)
        | ~ morphism(Morphism2,CodDom,Cod)
        | ~ exact(Morphism1,Morphism2)
        | ! [ElCodDom: $i] :
            ~ ( ~ ( ~ element(ElCodDom,CodDom)
                  | ( apply(Morphism2,ElCodDom) != zero(Cod) )
                  | ~ ( ~ element(tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1),Dom)
                      | ( apply(Morphism1,tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1)) != ElCodDom ) ) )
              | ~ ( ~ ( ~ element(ElCodDom,CodDom)
                      | ( apply(Morphism2,ElCodDom) != zero(Cod) ) )
                  | ! [ElDom: $i] :
                      ( ~ element(ElDom,Dom)
                      | ( apply(Morphism1,ElDom) != ElCodDom ) ) ) ) )
  <=> ! [Morphism1: $i,Morphism2: $i,Dom: $i,CodDom: $i,Cod: $i] :
        ( ~ morphism(Morphism1,Dom,CodDom)
        | ~ morphism(Morphism2,CodDom,Cod)
        | ~ exact(Morphism1,Morphism2)
        | ! [ElCodDom: $i] :
            ~ ( ~ ( ~ element(ElCodDom,CodDom)
                  | ( apply(Morphism2,ElCodDom) != zero(Cod) )
                  | ~ ( ~ element(tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1),Dom)
                      | ( apply(Morphism1,tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1)) != ElCodDom ) ) )
              | ~ ( ~ ( ~ element(ElCodDom,CodDom)
                      | ( apply(Morphism2,ElCodDom) != zero(Cod) ) )
                  | ! [ElDom: $i] :
                      ( ~ element(ElDom,Dom)
                      | ( apply(Morphism1,ElDom) != ElCodDom ) ) ) ) ) ),
    inference(transitivity,[status(thm)],[66,64]) ).

tff(68,plain,
    ^ [Morphism1: $i,Morphism2: $i,Dom: $i,CodDom: $i,Cod: $i] :
      trans(
        monotonicity(
          trans(
            monotonicity(
              rewrite(
                ( ( exact(Morphism1,Morphism2)
                  & morphism(Morphism1,Dom,CodDom)
                  & morphism(Morphism2,CodDom,Cod) )
              <=> ~ ( ~ morphism(Morphism1,Dom,CodDom)
                    | ~ morphism(Morphism2,CodDom,Cod)
                    | ~ exact(Morphism1,Morphism2) ) )),
              ( ~ ( exact(Morphism1,Morphism2)
                  & morphism(Morphism1,Dom,CodDom)
                  & morphism(Morphism2,CodDom,Cod) )
            <=> ~ ~ ( ~ morphism(Morphism1,Dom,CodDom)
                    | ~ morphism(Morphism2,CodDom,Cod)
                    | ~ exact(Morphism1,Morphism2) ) )),
            rewrite(
              ( ~ ~ ( ~ morphism(Morphism1,Dom,CodDom)
                    | ~ morphism(Morphism2,CodDom,Cod)
                    | ~ exact(Morphism1,Morphism2) )
            <=> ( ~ morphism(Morphism1,Dom,CodDom)
                | ~ morphism(Morphism2,CodDom,Cod)
                | ~ exact(Morphism1,Morphism2) ) )),
            ( ~ ( exact(Morphism1,Morphism2)
                & morphism(Morphism1,Dom,CodDom)
                & morphism(Morphism2,CodDom,Cod) )
          <=> ( ~ morphism(Morphism1,Dom,CodDom)
              | ~ morphism(Morphism2,CodDom,Cod)
              | ~ exact(Morphism1,Morphism2) ) )),
          quant_intro(
            proof_bind(
              ^ [ElCodDom: $i] :
                trans(
                  monotonicity(
                    trans(
                      monotonicity(
                        trans(
                          monotonicity(
                            rewrite(
                              ( ( element(ElCodDom,CodDom)
                                & ( apply(Morphism2,ElCodDom) = zero(Cod) ) )
                            <=> ~ ( ~ element(ElCodDom,CodDom)
                                  | ( apply(Morphism2,ElCodDom) != zero(Cod) ) ) )),
                            ( ~ ( element(ElCodDom,CodDom)
                                & ( apply(Morphism2,ElCodDom) = zero(Cod) ) )
                          <=> ~ ~ ( ~ element(ElCodDom,CodDom)
                                  | ( apply(Morphism2,ElCodDom) != zero(Cod) ) ) )),
                          rewrite(
                            ( ~ ~ ( ~ element(ElCodDom,CodDom)
                                  | ( apply(Morphism2,ElCodDom) != zero(Cod) ) )
                          <=> ( ~ element(ElCodDom,CodDom)
                              | ( apply(Morphism2,ElCodDom) != zero(Cod) ) ) )),
                          ( ~ ( element(ElCodDom,CodDom)
                              & ( apply(Morphism2,ElCodDom) = zero(Cod) ) )
                        <=> ( ~ element(ElCodDom,CodDom)
                            | ( apply(Morphism2,ElCodDom) != zero(Cod) ) ) )),
                        rewrite(
                          ( ( element(tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1),Dom)
                            & ( apply(Morphism1,tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1)) = ElCodDom ) )
                        <=> ~ ( ~ element(tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1),Dom)
                              | ( apply(Morphism1,tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1)) != ElCodDom ) ) )),
                        ( ( ~ ( element(ElCodDom,CodDom)
                              & ( apply(Morphism2,ElCodDom) = zero(Cod) ) )
                          | ( element(tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1),Dom)
                            & ( apply(Morphism1,tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1)) = ElCodDom ) ) )
                      <=> ( ~ element(ElCodDom,CodDom)
                          | ( apply(Morphism2,ElCodDom) != zero(Cod) )
                          | ~ ( ~ element(tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1),Dom)
                              | ( apply(Morphism1,tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1)) != ElCodDom ) ) ) )),
                      rewrite(
                        ( ( ~ element(ElCodDom,CodDom)
                          | ( apply(Morphism2,ElCodDom) != zero(Cod) )
                          | ~ ( ~ element(tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1),Dom)
                              | ( apply(Morphism1,tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1)) != ElCodDom ) ) )
                      <=> ( ~ element(ElCodDom,CodDom)
                          | ( apply(Morphism2,ElCodDom) != zero(Cod) )
                          | ~ ( ~ element(tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1),Dom)
                              | ( apply(Morphism1,tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1)) != ElCodDom ) ) ) )),
                      ( ( ~ ( element(ElCodDom,CodDom)
                            & ( apply(Morphism2,ElCodDom) = zero(Cod) ) )
                        | ( element(tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1),Dom)
                          & ( apply(Morphism1,tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1)) = ElCodDom ) ) )
                    <=> ( ~ element(ElCodDom,CodDom)
                        | ( apply(Morphism2,ElCodDom) != zero(Cod) )
                        | ~ ( ~ element(tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1),Dom)
                            | ( apply(Morphism1,tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1)) != ElCodDom ) ) ) )),
                    rewrite(
                      ( ( ( element(ElCodDom,CodDom)
                          & ( apply(Morphism2,ElCodDom) = zero(Cod) ) )
                        | ! [ElDom: $i] :
                            ~ ( element(ElDom,Dom)
                              & ( apply(Morphism1,ElDom) = ElCodDom ) ) )
                    <=> ( ~ ( ~ element(ElCodDom,CodDom)
                            | ( apply(Morphism2,ElCodDom) != zero(Cod) ) )
                        | ! [ElDom: $i] :
                            ( ~ element(ElDom,Dom)
                            | ( apply(Morphism1,ElDom) != ElCodDom ) ) ) )),
                    ( ( ( ~ ( element(ElCodDom,CodDom)
                            & ( apply(Morphism2,ElCodDom) = zero(Cod) ) )
                        | ( element(tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1),Dom)
                          & ( apply(Morphism1,tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1)) = ElCodDom ) ) )
                      & ( ( element(ElCodDom,CodDom)
                          & ( apply(Morphism2,ElCodDom) = zero(Cod) ) )
                        | ! [ElDom: $i] :
                            ~ ( element(ElDom,Dom)
                              & ( apply(Morphism1,ElDom) = ElCodDom ) ) ) )
                  <=> ( ( ~ element(ElCodDom,CodDom)
                        | ( apply(Morphism2,ElCodDom) != zero(Cod) )
                        | ~ ( ~ element(tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1),Dom)
                            | ( apply(Morphism1,tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1)) != ElCodDom ) ) )
                      & ( ~ ( ~ element(ElCodDom,CodDom)
                            | ( apply(Morphism2,ElCodDom) != zero(Cod) ) )
                        | ! [ElDom: $i] :
                            ( ~ element(ElDom,Dom)
                            | ( apply(Morphism1,ElDom) != ElCodDom ) ) ) ) )),
                  rewrite(
                    ( ( ( ~ element(ElCodDom,CodDom)
                        | ( apply(Morphism2,ElCodDom) != zero(Cod) )
                        | ~ ( ~ element(tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1),Dom)
                            | ( apply(Morphism1,tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1)) != ElCodDom ) ) )
                      & ( ~ ( ~ element(ElCodDom,CodDom)
                            | ( apply(Morphism2,ElCodDom) != zero(Cod) ) )
                        | ! [ElDom: $i] :
                            ( ~ element(ElDom,Dom)
                            | ( apply(Morphism1,ElDom) != ElCodDom ) ) ) )
                  <=> ~ ( ~ ( ~ element(ElCodDom,CodDom)
                            | ( apply(Morphism2,ElCodDom) != zero(Cod) )
                            | ~ ( ~ element(tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1),Dom)
                                | ( apply(Morphism1,tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1)) != ElCodDom ) ) )
                        | ~ ( ~ ( ~ element(ElCodDom,CodDom)
                                | ( apply(Morphism2,ElCodDom) != zero(Cod) ) )
                            | ! [ElDom: $i] :
                                ( ~ element(ElDom,Dom)
                                | ( apply(Morphism1,ElDom) != ElCodDom ) ) ) ) )),
                  ( ( ( ~ ( element(ElCodDom,CodDom)
                          & ( apply(Morphism2,ElCodDom) = zero(Cod) ) )
                      | ( element(tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1),Dom)
                        & ( apply(Morphism1,tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1)) = ElCodDom ) ) )
                    & ( ( element(ElCodDom,CodDom)
                        & ( apply(Morphism2,ElCodDom) = zero(Cod) ) )
                      | ! [ElDom: $i] :
                          ~ ( element(ElDom,Dom)
                            & ( apply(Morphism1,ElDom) = ElCodDom ) ) ) )
                <=> ~ ( ~ ( ~ element(ElCodDom,CodDom)
                          | ( apply(Morphism2,ElCodDom) != zero(Cod) )
                          | ~ ( ~ element(tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1),Dom)
                              | ( apply(Morphism1,tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1)) != ElCodDom ) ) )
                      | ~ ( ~ ( ~ element(ElCodDom,CodDom)
                              | ( apply(Morphism2,ElCodDom) != zero(Cod) ) )
                          | ! [ElDom: $i] :
                              ( ~ element(ElDom,Dom)
                              | ( apply(Morphism1,ElDom) != ElCodDom ) ) ) ) ))),
            ( ! [ElCodDom: $i] :
                ( ( ~ ( element(ElCodDom,CodDom)
                      & ( apply(Morphism2,ElCodDom) = zero(Cod) ) )
                  | ( element(tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1),Dom)
                    & ( apply(Morphism1,tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1)) = ElCodDom ) ) )
                & ( ( element(ElCodDom,CodDom)
                    & ( apply(Morphism2,ElCodDom) = zero(Cod) ) )
                  | ! [ElDom: $i] :
                      ~ ( element(ElDom,Dom)
                        & ( apply(Morphism1,ElDom) = ElCodDom ) ) ) )
          <=> ! [ElCodDom: $i] :
                ~ ( ~ ( ~ element(ElCodDom,CodDom)
                      | ( apply(Morphism2,ElCodDom) != zero(Cod) )
                      | ~ ( ~ element(tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1),Dom)
                          | ( apply(Morphism1,tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1)) != ElCodDom ) ) )
                  | ~ ( ~ ( ~ element(ElCodDom,CodDom)
                          | ( apply(Morphism2,ElCodDom) != zero(Cod) ) )
                      | ! [ElDom: $i] :
                          ( ~ element(ElDom,Dom)
                          | ( apply(Morphism1,ElDom) != ElCodDom ) ) ) ) )),
          ( ( ~ ( exact(Morphism1,Morphism2)
                & morphism(Morphism1,Dom,CodDom)
                & morphism(Morphism2,CodDom,Cod) )
            | ! [ElCodDom: $i] :
                ( ( ~ ( element(ElCodDom,CodDom)
                      & ( apply(Morphism2,ElCodDom) = zero(Cod) ) )
                  | ( element(tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1),Dom)
                    & ( apply(Morphism1,tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1)) = ElCodDom ) ) )
                & ( ( element(ElCodDom,CodDom)
                    & ( apply(Morphism2,ElCodDom) = zero(Cod) ) )
                  | ! [ElDom: $i] :
                      ~ ( element(ElDom,Dom)
                        & ( apply(Morphism1,ElDom) = ElCodDom ) ) ) ) )
        <=> ( ~ morphism(Morphism1,Dom,CodDom)
            | ~ morphism(Morphism2,CodDom,Cod)
            | ~ exact(Morphism1,Morphism2)
            | ! [ElCodDom: $i] :
                ~ ( ~ ( ~ element(ElCodDom,CodDom)
                      | ( apply(Morphism2,ElCodDom) != zero(Cod) )
                      | ~ ( ~ element(tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1),Dom)
                          | ( apply(Morphism1,tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1)) != ElCodDom ) ) )
                  | ~ ( ~ ( ~ element(ElCodDom,CodDom)
                          | ( apply(Morphism2,ElCodDom) != zero(Cod) ) )
                      | ! [ElDom: $i] :
                          ( ~ element(ElDom,Dom)
                          | ( apply(Morphism1,ElDom) != ElCodDom ) ) ) ) ) )),
        rewrite(
          ( ( ~ morphism(Morphism1,Dom,CodDom)
            | ~ morphism(Morphism2,CodDom,Cod)
            | ~ exact(Morphism1,Morphism2)
            | ! [ElCodDom: $i] :
                ~ ( ~ ( ~ element(ElCodDom,CodDom)
                      | ( apply(Morphism2,ElCodDom) != zero(Cod) )
                      | ~ ( ~ element(tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1),Dom)
                          | ( apply(Morphism1,tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1)) != ElCodDom ) ) )
                  | ~ ( ~ ( ~ element(ElCodDom,CodDom)
                          | ( apply(Morphism2,ElCodDom) != zero(Cod) ) )
                      | ! [ElDom: $i] :
                          ( ~ element(ElDom,Dom)
                          | ( apply(Morphism1,ElDom) != ElCodDom ) ) ) ) )
        <=> ( ~ morphism(Morphism1,Dom,CodDom)
            | ~ morphism(Morphism2,CodDom,Cod)
            | ~ exact(Morphism1,Morphism2)
            | ! [ElCodDom: $i] :
                ~ ( ~ ( ~ element(ElCodDom,CodDom)
                      | ( apply(Morphism2,ElCodDom) != zero(Cod) )
                      | ~ ( ~ element(tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1),Dom)
                          | ( apply(Morphism1,tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1)) != ElCodDom ) ) )
                  | ~ ( ~ ( ~ element(ElCodDom,CodDom)
                          | ( apply(Morphism2,ElCodDom) != zero(Cod) ) )
                      | ! [ElDom: $i] :
                          ( ~ element(ElDom,Dom)
                          | ( apply(Morphism1,ElDom) != ElCodDom ) ) ) ) ) )),
        ( ( ~ ( exact(Morphism1,Morphism2)
              & morphism(Morphism1,Dom,CodDom)
              & morphism(Morphism2,CodDom,Cod) )
          | ! [ElCodDom: $i] :
              ( ( ~ ( element(ElCodDom,CodDom)
                    & ( apply(Morphism2,ElCodDom) = zero(Cod) ) )
                | ( element(tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1),Dom)
                  & ( apply(Morphism1,tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1)) = ElCodDom ) ) )
              & ( ( element(ElCodDom,CodDom)
                  & ( apply(Morphism2,ElCodDom) = zero(Cod) ) )
                | ! [ElDom: $i] :
                    ~ ( element(ElDom,Dom)
                      & ( apply(Morphism1,ElDom) = ElCodDom ) ) ) ) )
      <=> ( ~ morphism(Morphism1,Dom,CodDom)
          | ~ morphism(Morphism2,CodDom,Cod)
          | ~ exact(Morphism1,Morphism2)
          | ! [ElCodDom: $i] :
              ~ ( ~ ( ~ element(ElCodDom,CodDom)
                    | ( apply(Morphism2,ElCodDom) != zero(Cod) )
                    | ~ ( ~ element(tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1),Dom)
                        | ( apply(Morphism1,tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1)) != ElCodDom ) ) )
                | ~ ( ~ ( ~ element(ElCodDom,CodDom)
                        | ( apply(Morphism2,ElCodDom) != zero(Cod) ) )
                    | ! [ElDom: $i] :
                        ( ~ element(ElDom,Dom)
                        | ( apply(Morphism1,ElDom) != ElCodDom ) ) ) ) ) )),
    inference(bind,[status(th)],]) ).

tff(69,plain,
    ( ! [Morphism1: $i,Morphism2: $i,Dom: $i,CodDom: $i,Cod: $i] :
        ( ~ ( exact(Morphism1,Morphism2)
            & morphism(Morphism1,Dom,CodDom)
            & morphism(Morphism2,CodDom,Cod) )
        | ! [ElCodDom: $i] :
            ( ( ~ ( element(ElCodDom,CodDom)
                  & ( apply(Morphism2,ElCodDom) = zero(Cod) ) )
              | ( element(tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1),Dom)
                & ( apply(Morphism1,tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1)) = ElCodDom ) ) )
            & ( ( element(ElCodDom,CodDom)
                & ( apply(Morphism2,ElCodDom) = zero(Cod) ) )
              | ! [ElDom: $i] :
                  ~ ( element(ElDom,Dom)
                    & ( apply(Morphism1,ElDom) = ElCodDom ) ) ) ) )
  <=> ! [Morphism1: $i,Morphism2: $i,Dom: $i,CodDom: $i,Cod: $i] :
        ( ~ morphism(Morphism1,Dom,CodDom)
        | ~ morphism(Morphism2,CodDom,Cod)
        | ~ exact(Morphism1,Morphism2)
        | ! [ElCodDom: $i] :
            ~ ( ~ ( ~ element(ElCodDom,CodDom)
                  | ( apply(Morphism2,ElCodDom) != zero(Cod) )
                  | ~ ( ~ element(tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1),Dom)
                      | ( apply(Morphism1,tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1)) != ElCodDom ) ) )
              | ~ ( ~ ( ~ element(ElCodDom,CodDom)
                      | ( apply(Morphism2,ElCodDom) != zero(Cod) ) )
                  | ! [ElDom: $i] :
                      ( ~ element(ElDom,Dom)
                      | ( apply(Morphism1,ElDom) != ElCodDom ) ) ) ) ) ),
    inference(quant_intro,[status(thm)],[68]) ).

tff(70,plain,
    ( ! [Morphism1: $i,Morphism2: $i,Dom: $i,CodDom: $i,Cod: $i] :
        ( ~ ( exact(Morphism1,Morphism2)
            & morphism(Morphism1,Dom,CodDom)
            & morphism(Morphism2,CodDom,Cod) )
        | ! [ElCodDom: $i] :
            ( ( element(ElCodDom,CodDom)
              & ( apply(Morphism2,ElCodDom) = zero(Cod) ) )
          <=> ? [ElDom: $i] :
                ( element(ElDom,Dom)
                & ( apply(Morphism1,ElDom) = ElCodDom ) ) ) )
  <=> ! [Morphism1: $i,Morphism2: $i,Dom: $i,CodDom: $i,Cod: $i] :
        ( ~ ( exact(Morphism1,Morphism2)
            & morphism(Morphism1,Dom,CodDom)
            & morphism(Morphism2,CodDom,Cod) )
        | ! [ElCodDom: $i] :
            ( ( element(ElCodDom,CodDom)
              & ( apply(Morphism2,ElCodDom) = zero(Cod) ) )
          <=> ? [ElDom: $i] :
                ( element(ElDom,Dom)
                & ( apply(Morphism1,ElDom) = ElCodDom ) ) ) ) ),
    inference(rewrite,[status(thm)],]) ).

tff(71,plain,
    ^ [Morphism1: $i,Morphism2: $i,Dom: $i,CodDom: $i,Cod: $i] :
      trans(
        monotonicity(
          rewrite(
            ( ( exact(Morphism1,Morphism2)
              & morphism(Morphism1,Dom,CodDom)
              & morphism(Morphism2,CodDom,Cod) )
          <=> ( exact(Morphism1,Morphism2)
              & morphism(Morphism1,Dom,CodDom)
              & morphism(Morphism2,CodDom,Cod) ) )),
          ( ( ( exact(Morphism1,Morphism2)
              & morphism(Morphism1,Dom,CodDom)
              & morphism(Morphism2,CodDom,Cod) )
           => ! [ElCodDom: $i] :
                ( ( element(ElCodDom,CodDom)
                  & ( apply(Morphism2,ElCodDom) = zero(Cod) ) )
              <=> ? [ElDom: $i] :
                    ( element(ElDom,Dom)
                    & ( apply(Morphism1,ElDom) = ElCodDom ) ) ) )
        <=> ( ( exact(Morphism1,Morphism2)
              & morphism(Morphism1,Dom,CodDom)
              & morphism(Morphism2,CodDom,Cod) )
           => ! [ElCodDom: $i] :
                ( ( element(ElCodDom,CodDom)
                  & ( apply(Morphism2,ElCodDom) = zero(Cod) ) )
              <=> ? [ElDom: $i] :
                    ( element(ElDom,Dom)
                    & ( apply(Morphism1,ElDom) = ElCodDom ) ) ) ) )),
        rewrite(
          ( ( ( exact(Morphism1,Morphism2)
              & morphism(Morphism1,Dom,CodDom)
              & morphism(Morphism2,CodDom,Cod) )
           => ! [ElCodDom: $i] :
                ( ( element(ElCodDom,CodDom)
                  & ( apply(Morphism2,ElCodDom) = zero(Cod) ) )
              <=> ? [ElDom: $i] :
                    ( element(ElDom,Dom)
                    & ( apply(Morphism1,ElDom) = ElCodDom ) ) ) )
        <=> ( ~ ( exact(Morphism1,Morphism2)
                & morphism(Morphism1,Dom,CodDom)
                & morphism(Morphism2,CodDom,Cod) )
            | ! [ElCodDom: $i] :
                ( ( element(ElCodDom,CodDom)
                  & ( apply(Morphism2,ElCodDom) = zero(Cod) ) )
              <=> ? [ElDom: $i] :
                    ( element(ElDom,Dom)
                    & ( apply(Morphism1,ElDom) = ElCodDom ) ) ) ) )),
        ( ( ( exact(Morphism1,Morphism2)
            & morphism(Morphism1,Dom,CodDom)
            & morphism(Morphism2,CodDom,Cod) )
         => ! [ElCodDom: $i] :
              ( ( element(ElCodDom,CodDom)
                & ( apply(Morphism2,ElCodDom) = zero(Cod) ) )
            <=> ? [ElDom: $i] :
                  ( element(ElDom,Dom)
                  & ( apply(Morphism1,ElDom) = ElCodDom ) ) ) )
      <=> ( ~ ( exact(Morphism1,Morphism2)
              & morphism(Morphism1,Dom,CodDom)
              & morphism(Morphism2,CodDom,Cod) )
          | ! [ElCodDom: $i] :
              ( ( element(ElCodDom,CodDom)
                & ( apply(Morphism2,ElCodDom) = zero(Cod) ) )
            <=> ? [ElDom: $i] :
                  ( element(ElDom,Dom)
                  & ( apply(Morphism1,ElDom) = ElCodDom ) ) ) ) )),
    inference(bind,[status(th)],]) ).

tff(72,plain,
    ( ! [Morphism1: $i,Morphism2: $i,Dom: $i,CodDom: $i,Cod: $i] :
        ( ( exact(Morphism1,Morphism2)
          & morphism(Morphism1,Dom,CodDom)
          & morphism(Morphism2,CodDom,Cod) )
       => ! [ElCodDom: $i] :
            ( ( element(ElCodDom,CodDom)
              & ( apply(Morphism2,ElCodDom) = zero(Cod) ) )
          <=> ? [ElDom: $i] :
                ( element(ElDom,Dom)
                & ( apply(Morphism1,ElDom) = ElCodDom ) ) ) )
  <=> ! [Morphism1: $i,Morphism2: $i,Dom: $i,CodDom: $i,Cod: $i] :
        ( ~ ( exact(Morphism1,Morphism2)
            & morphism(Morphism1,Dom,CodDom)
            & morphism(Morphism2,CodDom,Cod) )
        | ! [ElCodDom: $i] :
            ( ( element(ElCodDom,CodDom)
              & ( apply(Morphism2,ElCodDom) = zero(Cod) ) )
          <=> ? [ElDom: $i] :
                ( element(ElDom,Dom)
                & ( apply(Morphism1,ElDom) = ElCodDom ) ) ) ) ),
    inference(quant_intro,[status(thm)],[71]) ).

tff(73,axiom,
    ! [Morphism1: $i,Morphism2: $i,Dom: $i,CodDom: $i,Cod: $i] :
      ( ( exact(Morphism1,Morphism2)
        & morphism(Morphism1,Dom,CodDom)
        & morphism(Morphism2,CodDom,Cod) )
     => ! [ElCodDom: $i] :
          ( ( element(ElCodDom,CodDom)
            & ( apply(Morphism2,ElCodDom) = zero(Cod) ) )
        <=> ? [ElDom: $i] :
              ( element(ElDom,Dom)
              & ( apply(Morphism1,ElDom) = ElCodDom ) ) ) ),
    file('/export/starexec/sandbox2/benchmark/Axioms/HAL001+0.ax',exact_properties) ).

tff(74,plain,
    ! [Morphism1: $i,Morphism2: $i,Dom: $i,CodDom: $i,Cod: $i] :
      ( ~ ( exact(Morphism1,Morphism2)
          & morphism(Morphism1,Dom,CodDom)
          & morphism(Morphism2,CodDom,Cod) )
      | ! [ElCodDom: $i] :
          ( ( element(ElCodDom,CodDom)
            & ( apply(Morphism2,ElCodDom) = zero(Cod) ) )
        <=> ? [ElDom: $i] :
              ( element(ElDom,Dom)
              & ( apply(Morphism1,ElDom) = ElCodDom ) ) ) ),
    inference(modus_ponens,[status(thm)],[73,72]) ).

tff(75,plain,
    ! [Morphism1: $i,Morphism2: $i,Dom: $i,CodDom: $i,Cod: $i] :
      ( ~ ( exact(Morphism1,Morphism2)
          & morphism(Morphism1,Dom,CodDom)
          & morphism(Morphism2,CodDom,Cod) )
      | ! [ElCodDom: $i] :
          ( ( element(ElCodDom,CodDom)
            & ( apply(Morphism2,ElCodDom) = zero(Cod) ) )
        <=> ? [ElDom: $i] :
              ( element(ElDom,Dom)
              & ( apply(Morphism1,ElDom) = ElCodDom ) ) ) ),
    inference(modus_ponens,[status(thm)],[74,70]) ).

tff(76,plain,
    ! [Morphism1: $i,Morphism2: $i,Dom: $i,CodDom: $i,Cod: $i] :
      ( ~ ( exact(Morphism1,Morphism2)
          & morphism(Morphism1,Dom,CodDom)
          & morphism(Morphism2,CodDom,Cod) )
      | ! [ElCodDom: $i] :
          ( ( ~ ( element(ElCodDom,CodDom)
                & ( apply(Morphism2,ElCodDom) = zero(Cod) ) )
            | ( element(tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1),Dom)
              & ( apply(Morphism1,tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1)) = ElCodDom ) ) )
          & ( ( element(ElCodDom,CodDom)
              & ( apply(Morphism2,ElCodDom) = zero(Cod) ) )
            | ! [ElDom: $i] :
                ~ ( element(ElDom,Dom)
                  & ( apply(Morphism1,ElDom) = ElCodDom ) ) ) ) ),
    inference(skolemize,[status(sab)],[75]) ).

tff(77,plain,
    ! [Morphism1: $i,Morphism2: $i,Dom: $i,CodDom: $i,Cod: $i] :
      ( ~ morphism(Morphism1,Dom,CodDom)
      | ~ morphism(Morphism2,CodDom,Cod)
      | ~ exact(Morphism1,Morphism2)
      | ! [ElCodDom: $i] :
          ~ ( ~ ( ~ element(ElCodDom,CodDom)
                | ( apply(Morphism2,ElCodDom) != zero(Cod) )
                | ~ ( ~ element(tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1),Dom)
                    | ( apply(Morphism1,tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1)) != ElCodDom ) ) )
            | ~ ( ~ ( ~ element(ElCodDom,CodDom)
                    | ( apply(Morphism2,ElCodDom) != zero(Cod) ) )
                | ! [ElDom: $i] :
                    ( ~ element(ElDom,Dom)
                    | ( apply(Morphism1,ElDom) != ElCodDom ) ) ) ) ),
    inference(modus_ponens,[status(thm)],[76,69]) ).

tff(78,plain,
    ! [Morphism1: $i,Morphism2: $i,Dom: $i,CodDom: $i,Cod: $i] :
      ( ~ morphism(Morphism1,Dom,CodDom)
      | ~ morphism(Morphism2,CodDom,Cod)
      | ~ exact(Morphism1,Morphism2)
      | ! [ElCodDom: $i] :
          ~ ( ~ ( ~ element(ElCodDom,CodDom)
                | ( apply(Morphism2,ElCodDom) != zero(Cod) )
                | ~ ( ~ element(tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1),Dom)
                    | ( apply(Morphism1,tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1)) != ElCodDom ) ) )
            | ~ ( ~ ( ~ element(ElCodDom,CodDom)
                    | ( apply(Morphism2,ElCodDom) != zero(Cod) ) )
                | ! [ElDom: $i] :
                    ( ~ element(ElDom,Dom)
                    | ( apply(Morphism1,ElDom) != ElCodDom ) ) ) ) ),
    inference(modus_ponens,[status(thm)],[77,67]) ).

tff(79,plain,
    ( ( ~ ! [Morphism1: $i,Morphism2: $i,Dom: $i,CodDom: $i,Cod: $i] :
            ( ~ morphism(Morphism1,Dom,CodDom)
            | ~ morphism(Morphism2,CodDom,Cod)
            | ~ exact(Morphism1,Morphism2)
            | ! [ElCodDom: $i] :
                ~ ( ~ ( ~ element(ElCodDom,CodDom)
                      | ( apply(Morphism2,ElCodDom) != zero(Cod) )
                      | ~ ( ~ element(tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1),Dom)
                          | ( apply(Morphism1,tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1)) != ElCodDom ) ) )
                  | ~ ( ~ ( ~ element(ElCodDom,CodDom)
                          | ( apply(Morphism2,ElCodDom) != zero(Cod) ) )
                      | ! [ElDom: $i] :
                          ( ~ element(ElDom,Dom)
                          | ( apply(Morphism1,ElDom) != ElCodDom ) ) ) ) )
      | ~ morphism(alpha,a,b)
      | ~ morphism(beta,b,c)
      | ~ exact(alpha,beta)
      | ! [ElCodDom: $i] :
          ~ ( ~ ( ~ element(ElCodDom,b)
                | ( apply(beta,ElCodDom) != zero(c) )
                | ~ ( ~ element(tptp_fun_ElDom_4(ElCodDom,a,alpha),a)
                    | ( apply(alpha,tptp_fun_ElDom_4(ElCodDom,a,alpha)) != ElCodDom ) ) )
            | ~ ( ~ ( ~ element(ElCodDom,b)
                    | ( apply(beta,ElCodDom) != zero(c) ) )
                | ! [ElDom: $i] :
                    ( ~ element(ElDom,a)
                    | ( apply(alpha,ElDom) != ElCodDom ) ) ) ) )
  <=> ( ~ ! [Morphism1: $i,Morphism2: $i,Dom: $i,CodDom: $i,Cod: $i] :
            ( ~ morphism(Morphism1,Dom,CodDom)
            | ~ morphism(Morphism2,CodDom,Cod)
            | ~ exact(Morphism1,Morphism2)
            | ! [ElCodDom: $i] :
                ~ ( ~ ( ~ element(ElCodDom,CodDom)
                      | ( apply(Morphism2,ElCodDom) != zero(Cod) )
                      | ~ ( ~ element(tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1),Dom)
                          | ( apply(Morphism1,tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1)) != ElCodDom ) ) )
                  | ~ ( ~ ( ~ element(ElCodDom,CodDom)
                          | ( apply(Morphism2,ElCodDom) != zero(Cod) ) )
                      | ! [ElDom: $i] :
                          ( ~ element(ElDom,Dom)
                          | ( apply(Morphism1,ElDom) != ElCodDom ) ) ) ) )
      | ~ morphism(alpha,a,b)
      | ~ morphism(beta,b,c)
      | ~ exact(alpha,beta)
      | ! [ElCodDom: $i] :
          ~ ( ~ ( ~ element(ElCodDom,b)
                | ( apply(beta,ElCodDom) != zero(c) )
                | ~ ( ~ element(tptp_fun_ElDom_4(ElCodDom,a,alpha),a)
                    | ( apply(alpha,tptp_fun_ElDom_4(ElCodDom,a,alpha)) != ElCodDom ) ) )
            | ~ ( ~ ( ~ element(ElCodDom,b)
                    | ( apply(beta,ElCodDom) != zero(c) ) )
                | ! [ElDom: $i] :
                    ( ~ element(ElDom,a)
                    | ( apply(alpha,ElDom) != ElCodDom ) ) ) ) ) ),
    inference(rewrite,[status(thm)],]) ).

tff(80,plain,
    ( ~ ! [Morphism1: $i,Morphism2: $i,Dom: $i,CodDom: $i,Cod: $i] :
          ( ~ morphism(Morphism1,Dom,CodDom)
          | ~ morphism(Morphism2,CodDom,Cod)
          | ~ exact(Morphism1,Morphism2)
          | ! [ElCodDom: $i] :
              ~ ( ~ ( ~ element(ElCodDom,CodDom)
                    | ( apply(Morphism2,ElCodDom) != zero(Cod) )
                    | ~ ( ~ element(tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1),Dom)
                        | ( apply(Morphism1,tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1)) != ElCodDom ) ) )
                | ~ ( ~ ( ~ element(ElCodDom,CodDom)
                        | ( apply(Morphism2,ElCodDom) != zero(Cod) ) )
                    | ! [ElDom: $i] :
                        ( ~ element(ElDom,Dom)
                        | ( apply(Morphism1,ElDom) != ElCodDom ) ) ) ) )
    | ~ morphism(alpha,a,b)
    | ~ morphism(beta,b,c)
    | ~ exact(alpha,beta)
    | ! [ElCodDom: $i] :
        ~ ( ~ ( ~ element(ElCodDom,b)
              | ( apply(beta,ElCodDom) != zero(c) )
              | ~ ( ~ element(tptp_fun_ElDom_4(ElCodDom,a,alpha),a)
                  | ( apply(alpha,tptp_fun_ElDom_4(ElCodDom,a,alpha)) != ElCodDom ) ) )
          | ~ ( ~ ( ~ element(ElCodDom,b)
                  | ( apply(beta,ElCodDom) != zero(c) ) )
              | ! [ElDom: $i] :
                  ( ~ element(ElDom,a)
                  | ( apply(alpha,ElDom) != ElCodDom ) ) ) ) ),
    inference(quant_inst,[status(thm)],]) ).

tff(81,plain,
    ( ~ ! [Morphism1: $i,Morphism2: $i,Dom: $i,CodDom: $i,Cod: $i] :
          ( ~ morphism(Morphism1,Dom,CodDom)
          | ~ morphism(Morphism2,CodDom,Cod)
          | ~ exact(Morphism1,Morphism2)
          | ! [ElCodDom: $i] :
              ~ ( ~ ( ~ element(ElCodDom,CodDom)
                    | ( apply(Morphism2,ElCodDom) != zero(Cod) )
                    | ~ ( ~ element(tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1),Dom)
                        | ( apply(Morphism1,tptp_fun_ElDom_4(ElCodDom,Dom,Morphism1)) != ElCodDom ) ) )
                | ~ ( ~ ( ~ element(ElCodDom,CodDom)
                        | ( apply(Morphism2,ElCodDom) != zero(Cod) ) )
                    | ! [ElDom: $i] :
                        ( ~ element(ElDom,Dom)
                        | ( apply(Morphism1,ElDom) != ElCodDom ) ) ) ) )
    | ~ morphism(alpha,a,b)
    | ~ morphism(beta,b,c)
    | ~ exact(alpha,beta)
    | ! [ElCodDom: $i] :
        ~ ( ~ ( ~ element(ElCodDom,b)
              | ( apply(beta,ElCodDom) != zero(c) )
              | ~ ( ~ element(tptp_fun_ElDom_4(ElCodDom,a,alpha),a)
                  | ( apply(alpha,tptp_fun_ElDom_4(ElCodDom,a,alpha)) != ElCodDom ) ) )
          | ~ ( ~ ( ~ element(ElCodDom,b)
                  | ( apply(beta,ElCodDom) != zero(c) ) )
              | ! [ElDom: $i] :
                  ( ~ element(ElDom,a)
                  | ( apply(alpha,ElDom) != ElCodDom ) ) ) ) ),
    inference(modus_ponens,[status(thm)],[80,79]) ).

tff(82,plain,
    ! [ElCodDom: $i] :
      ~ ( ~ ( ~ element(ElCodDom,b)
            | ( apply(beta,ElCodDom) != zero(c) )
            | ~ ( ~ element(tptp_fun_ElDom_4(ElCodDom,a,alpha),a)
                | ( apply(alpha,tptp_fun_ElDom_4(ElCodDom,a,alpha)) != ElCodDom ) ) )
        | ~ ( ~ ( ~ element(ElCodDom,b)
                | ( apply(beta,ElCodDom) != zero(c) ) )
            | ! [ElDom: $i] :
                ( ~ element(ElDom,a)
                | ( apply(alpha,ElDom) != ElCodDom ) ) ) ),
    inference(unit_resolution,[status(thm)],[81,78,3,62,59]) ).

tff(83,plain,
    ( ~ ! [ElCodDom: $i] :
          ~ ( ~ ( ~ element(ElCodDom,b)
                | ( apply(beta,ElCodDom) != zero(c) )
                | ~ ( ~ element(tptp_fun_ElDom_4(ElCodDom,a,alpha),a)
                    | ( apply(alpha,tptp_fun_ElDom_4(ElCodDom,a,alpha)) != ElCodDom ) ) )
            | ~ ( ~ ( ~ element(ElCodDom,b)
                    | ( apply(beta,ElCodDom) != zero(c) ) )
                | ! [ElDom: $i] :
                    ( ~ element(ElDom,a)
                    | ( apply(alpha,ElDom) != ElCodDom ) ) ) )
    | ~ ( ~ ( ~ element(tptp_fun_El_8(e,b,g),b)
            | ( apply(beta,tptp_fun_El_8(e,b,g)) != zero(c) )
            | ~ ( ~ element(tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha),a)
                | ( apply(alpha,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha)) != tptp_fun_El_8(e,b,g) ) ) )
        | ~ ( ~ ( ~ element(tptp_fun_El_8(e,b,g),b)
                | ( apply(beta,tptp_fun_El_8(e,b,g)) != zero(c) ) )
            | ! [ElDom: $i] :
                ( ~ element(ElDom,a)
                | ( apply(alpha,ElDom) != tptp_fun_El_8(e,b,g) ) ) ) ) ),
    inference(quant_inst,[status(thm)],]) ).

tff(84,plain,
    ~ ( ~ ( ~ element(tptp_fun_El_8(e,b,g),b)
          | ( apply(beta,tptp_fun_El_8(e,b,g)) != zero(c) )
          | ~ ( ~ element(tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha),a)
              | ( apply(alpha,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha)) != tptp_fun_El_8(e,b,g) ) ) )
      | ~ ( ~ ( ~ element(tptp_fun_El_8(e,b,g),b)
              | ( apply(beta,tptp_fun_El_8(e,b,g)) != zero(c) ) )
          | ! [ElDom: $i] :
              ( ~ element(ElDom,a)
              | ( apply(alpha,ElDom) != tptp_fun_El_8(e,b,g) ) ) ) ),
    inference(unit_resolution,[status(thm)],[83,82]) ).

tff(85,plain,
    ( ~ ( ~ element(tptp_fun_El_8(e,b,g),b)
        | ( apply(beta,tptp_fun_El_8(e,b,g)) != zero(c) )
        | ~ ( ~ element(tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha),a)
            | ( apply(alpha,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha)) != tptp_fun_El_8(e,b,g) ) ) )
    | ~ ( ~ ( ~ element(tptp_fun_El_8(e,b,g),b)
            | ( apply(beta,tptp_fun_El_8(e,b,g)) != zero(c) ) )
        | ! [ElDom: $i] :
            ( ~ element(ElDom,a)
            | ( apply(alpha,ElDom) != tptp_fun_El_8(e,b,g) ) ) )
    | ~ element(tptp_fun_El_8(e,b,g),b)
    | ( apply(beta,tptp_fun_El_8(e,b,g)) != zero(c) )
    | ~ ( ~ element(tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha),a)
        | ( apply(alpha,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha)) != tptp_fun_El_8(e,b,g) ) ) ),
    inference(tautology,[status(thm)],]) ).

tff(86,plain,
    ( ~ element(tptp_fun_El_8(e,b,g),b)
    | ( apply(beta,tptp_fun_El_8(e,b,g)) != zero(c) )
    | ~ ( ~ element(tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha),a)
        | ( apply(alpha,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha)) != tptp_fun_El_8(e,b,g) ) ) ),
    inference(unit_resolution,[status(thm)],[85,84]) ).

tff(87,plain,
    ( morphism(delta,e,r)
  <=> morphism(delta,e,r) ),
    inference(rewrite,[status(thm)],]) ).

tff(88,axiom,
    morphism(delta,e,r),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',delta_morphism) ).

tff(89,plain,
    morphism(delta,e,r),
    inference(modus_ponens,[status(thm)],[88,87]) ).

tff(90,plain,
    ( ( ~ ! [Morphism: $i,Dom: $i,Cod: $i] :
            ( ~ morphism(Morphism,Dom,Cod)
            | ~ ( ( apply(Morphism,zero(Dom)) != zero(Cod) )
                | ~ ! [El: $i] :
                      ( ~ element(El,Dom)
                      | element(apply(Morphism,El),Cod) ) ) )
      | ~ morphism(delta,e,r)
      | ~ ( ( apply(delta,zero(e)) != zero(r) )
          | ~ ! [El: $i] :
                ( ~ element(El,e)
                | element(apply(delta,El),r) ) ) )
  <=> ( ~ ! [Morphism: $i,Dom: $i,Cod: $i] :
            ( ~ morphism(Morphism,Dom,Cod)
            | ~ ( ( apply(Morphism,zero(Dom)) != zero(Cod) )
                | ~ ! [El: $i] :
                      ( ~ element(El,Dom)
                      | element(apply(Morphism,El),Cod) ) ) )
      | ~ morphism(delta,e,r)
      | ~ ( ( apply(delta,zero(e)) != zero(r) )
          | ~ ! [El: $i] :
                ( ~ element(El,e)
                | element(apply(delta,El),r) ) ) ) ),
    inference(rewrite,[status(thm)],]) ).

tff(91,plain,
    ( ~ ! [Morphism: $i,Dom: $i,Cod: $i] :
          ( ~ morphism(Morphism,Dom,Cod)
          | ~ ( ( apply(Morphism,zero(Dom)) != zero(Cod) )
              | ~ ! [El: $i] :
                    ( ~ element(El,Dom)
                    | element(apply(Morphism,El),Cod) ) ) )
    | ~ morphism(delta,e,r)
    | ~ ( ( apply(delta,zero(e)) != zero(r) )
        | ~ ! [El: $i] :
              ( ~ element(El,e)
              | element(apply(delta,El),r) ) ) ),
    inference(quant_inst,[status(thm)],]) ).

tff(92,plain,
    ( ~ ! [Morphism: $i,Dom: $i,Cod: $i] :
          ( ~ morphism(Morphism,Dom,Cod)
          | ~ ( ( apply(Morphism,zero(Dom)) != zero(Cod) )
              | ~ ! [El: $i] :
                    ( ~ element(El,Dom)
                    | element(apply(Morphism,El),Cod) ) ) )
    | ~ morphism(delta,e,r)
    | ~ ( ( apply(delta,zero(e)) != zero(r) )
        | ~ ! [El: $i] :
              ( ~ element(El,e)
              | element(apply(delta,El),r) ) ) ),
    inference(modus_ponens,[status(thm)],[91,90]) ).

tff(93,plain,
    ~ ( ( apply(delta,zero(e)) != zero(r) )
      | ~ ! [El: $i] :
            ( ~ element(El,e)
            | element(apply(delta,El),r) ) ),
    inference(unit_resolution,[status(thm)],[92,22,89]) ).

tff(94,plain,
    ( ( apply(delta,zero(e)) != zero(r) )
    | ~ ! [El: $i] :
          ( ~ element(El,e)
          | element(apply(delta,El),r) )
    | ( apply(delta,zero(e)) = zero(r) ) ),
    inference(tautology,[status(thm)],]) ).

tff(95,plain,
    apply(delta,zero(e)) = zero(r),
    inference(unit_resolution,[status(thm)],[94,93]) ).

tff(96,plain,
    apply(delta,apply(g,tptp_fun_El_8(e,b,g))) = apply(delta,zero(e)),
    inference(monotonicity,[status(thm)],[56]) ).

tff(97,plain,
    ( commute(beta,h,g,delta)
  <=> commute(beta,h,g,delta) ),
    inference(rewrite,[status(thm)],]) ).

tff(98,axiom,
    commute(beta,h,g,delta),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',beta_h_g_delta_commute) ).

tff(99,plain,
    commute(beta,h,g,delta),
    inference(modus_ponens,[status(thm)],[98,97]) ).

tff(100,plain,
    ( morphism(h,c,r)
  <=> morphism(h,c,r) ),
    inference(rewrite,[status(thm)],]) ).

tff(101,axiom,
    morphism(h,c,r),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',h_morphism) ).

tff(102,plain,
    morphism(h,c,r),
    inference(modus_ponens,[status(thm)],[101,100]) ).

tff(103,plain,
    ^ [M1: $i,M2: $i,M3: $i,M4: $i,Dom: $i,DomCod1: $i,DomCod2: $i,Cod: $i] :
      rewrite(
        ( ( ! [ElDom: $i] :
              ( ~ element(ElDom,Dom)
              | ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) )
          | ~ morphism(M1,Dom,DomCod1)
          | ~ morphism(M2,DomCod1,Cod)
          | ~ morphism(M3,Dom,DomCod2)
          | ~ morphism(M4,DomCod2,Cod)
          | ~ commute(M1,M2,M3,M4) )
      <=> ( ~ morphism(M1,Dom,DomCod1)
          | ~ morphism(M2,DomCod1,Cod)
          | ~ morphism(M3,Dom,DomCod2)
          | ~ morphism(M4,DomCod2,Cod)
          | ~ commute(M1,M2,M3,M4)
          | ! [ElDom: $i] :
              ( ~ element(ElDom,Dom)
              | ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) ) ) )),
    inference(bind,[status(th)],]) ).

tff(104,plain,
    ( ! [M1: $i,M2: $i,M3: $i,M4: $i,Dom: $i,DomCod1: $i,DomCod2: $i,Cod: $i] :
        ( ! [ElDom: $i] :
            ( ~ element(ElDom,Dom)
            | ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) )
        | ~ morphism(M1,Dom,DomCod1)
        | ~ morphism(M2,DomCod1,Cod)
        | ~ morphism(M3,Dom,DomCod2)
        | ~ morphism(M4,DomCod2,Cod)
        | ~ commute(M1,M2,M3,M4) )
  <=> ! [M1: $i,M2: $i,M3: $i,M4: $i,Dom: $i,DomCod1: $i,DomCod2: $i,Cod: $i] :
        ( ~ morphism(M1,Dom,DomCod1)
        | ~ morphism(M2,DomCod1,Cod)
        | ~ morphism(M3,Dom,DomCod2)
        | ~ morphism(M4,DomCod2,Cod)
        | ~ commute(M1,M2,M3,M4)
        | ! [ElDom: $i] :
            ( ~ element(ElDom,Dom)
            | ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) ) ) ),
    inference(quant_intro,[status(thm)],[103]) ).

tff(105,plain,
    ^ [M1: $i,M2: $i,M3: $i,M4: $i,Dom: $i,DomCod1: $i,DomCod2: $i,Cod: $i] :
      refl(
        ( ( ! [ElDom: $i] :
              ( ~ element(ElDom,Dom)
              | ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) )
          | ~ morphism(M1,Dom,DomCod1)
          | ~ morphism(M2,DomCod1,Cod)
          | ~ morphism(M3,Dom,DomCod2)
          | ~ morphism(M4,DomCod2,Cod)
          | ~ commute(M1,M2,M3,M4) )
      <=> ( ! [ElDom: $i] :
              ( ~ element(ElDom,Dom)
              | ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) )
          | ~ morphism(M1,Dom,DomCod1)
          | ~ morphism(M2,DomCod1,Cod)
          | ~ morphism(M3,Dom,DomCod2)
          | ~ morphism(M4,DomCod2,Cod)
          | ~ commute(M1,M2,M3,M4) ) )),
    inference(bind,[status(th)],]) ).

tff(106,plain,
    ( ! [M1: $i,M2: $i,M3: $i,M4: $i,Dom: $i,DomCod1: $i,DomCod2: $i,Cod: $i] :
        ( ! [ElDom: $i] :
            ( ~ element(ElDom,Dom)
            | ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) )
        | ~ morphism(M1,Dom,DomCod1)
        | ~ morphism(M2,DomCod1,Cod)
        | ~ morphism(M3,Dom,DomCod2)
        | ~ morphism(M4,DomCod2,Cod)
        | ~ commute(M1,M2,M3,M4) )
  <=> ! [M1: $i,M2: $i,M3: $i,M4: $i,Dom: $i,DomCod1: $i,DomCod2: $i,Cod: $i] :
        ( ! [ElDom: $i] :
            ( ~ element(ElDom,Dom)
            | ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) )
        | ~ morphism(M1,Dom,DomCod1)
        | ~ morphism(M2,DomCod1,Cod)
        | ~ morphism(M3,Dom,DomCod2)
        | ~ morphism(M4,DomCod2,Cod)
        | ~ commute(M1,M2,M3,M4) ) ),
    inference(quant_intro,[status(thm)],[105]) ).

tff(107,plain,
    ^ [M1: $i,M2: $i,M3: $i,M4: $i,Dom: $i,DomCod1: $i,DomCod2: $i,Cod: $i] :
      rewrite(
        ( ( ! [ElDom: $i] :
              ( ~ element(ElDom,Dom)
              | ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) )
          | ~ morphism(M1,Dom,DomCod1)
          | ~ morphism(M2,DomCod1,Cod)
          | ~ morphism(M3,Dom,DomCod2)
          | ~ morphism(M4,DomCod2,Cod)
          | ~ commute(M1,M2,M3,M4) )
      <=> ( ! [ElDom: $i] :
              ( ~ element(ElDom,Dom)
              | ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) )
          | ~ morphism(M1,Dom,DomCod1)
          | ~ morphism(M2,DomCod1,Cod)
          | ~ morphism(M3,Dom,DomCod2)
          | ~ morphism(M4,DomCod2,Cod)
          | ~ commute(M1,M2,M3,M4) ) )),
    inference(bind,[status(th)],]) ).

tff(108,plain,
    ( ! [M1: $i,M2: $i,M3: $i,M4: $i,Dom: $i,DomCod1: $i,DomCod2: $i,Cod: $i] :
        ( ! [ElDom: $i] :
            ( ~ element(ElDom,Dom)
            | ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) )
        | ~ morphism(M1,Dom,DomCod1)
        | ~ morphism(M2,DomCod1,Cod)
        | ~ morphism(M3,Dom,DomCod2)
        | ~ morphism(M4,DomCod2,Cod)
        | ~ commute(M1,M2,M3,M4) )
  <=> ! [M1: $i,M2: $i,M3: $i,M4: $i,Dom: $i,DomCod1: $i,DomCod2: $i,Cod: $i] :
        ( ! [ElDom: $i] :
            ( ~ element(ElDom,Dom)
            | ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) )
        | ~ morphism(M1,Dom,DomCod1)
        | ~ morphism(M2,DomCod1,Cod)
        | ~ morphism(M3,Dom,DomCod2)
        | ~ morphism(M4,DomCod2,Cod)
        | ~ commute(M1,M2,M3,M4) ) ),
    inference(quant_intro,[status(thm)],[107]) ).

tff(109,plain,
    ( ! [M1: $i,M2: $i,M3: $i,M4: $i,Dom: $i,DomCod1: $i,DomCod2: $i,Cod: $i] :
        ( ! [ElDom: $i] :
            ( ~ element(ElDom,Dom)
            | ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) )
        | ~ morphism(M1,Dom,DomCod1)
        | ~ morphism(M2,DomCod1,Cod)
        | ~ morphism(M3,Dom,DomCod2)
        | ~ morphism(M4,DomCod2,Cod)
        | ~ commute(M1,M2,M3,M4) )
  <=> ! [M1: $i,M2: $i,M3: $i,M4: $i,Dom: $i,DomCod1: $i,DomCod2: $i,Cod: $i] :
        ( ! [ElDom: $i] :
            ( ~ element(ElDom,Dom)
            | ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) )
        | ~ morphism(M1,Dom,DomCod1)
        | ~ morphism(M2,DomCod1,Cod)
        | ~ morphism(M3,Dom,DomCod2)
        | ~ morphism(M4,DomCod2,Cod)
        | ~ commute(M1,M2,M3,M4) ) ),
    inference(transitivity,[status(thm)],[108,106]) ).

tff(110,plain,
    ^ [M1: $i,M2: $i,M3: $i,M4: $i,Dom: $i,DomCod1: $i,DomCod2: $i,Cod: $i] :
      trans(
        monotonicity(
          trans(
            monotonicity(
              rewrite(
                ( ( commute(M1,M2,M3,M4)
                  & morphism(M1,Dom,DomCod1)
                  & morphism(M2,DomCod1,Cod)
                  & morphism(M3,Dom,DomCod2)
                  & morphism(M4,DomCod2,Cod) )
              <=> ~ ( ~ morphism(M1,Dom,DomCod1)
                    | ~ morphism(M2,DomCod1,Cod)
                    | ~ morphism(M3,Dom,DomCod2)
                    | ~ morphism(M4,DomCod2,Cod)
                    | ~ commute(M1,M2,M3,M4) ) )),
              ( ~ ( commute(M1,M2,M3,M4)
                  & morphism(M1,Dom,DomCod1)
                  & morphism(M2,DomCod1,Cod)
                  & morphism(M3,Dom,DomCod2)
                  & morphism(M4,DomCod2,Cod) )
            <=> ~ ~ ( ~ morphism(M1,Dom,DomCod1)
                    | ~ morphism(M2,DomCod1,Cod)
                    | ~ morphism(M3,Dom,DomCod2)
                    | ~ morphism(M4,DomCod2,Cod)
                    | ~ commute(M1,M2,M3,M4) ) )),
            rewrite(
              ( ~ ~ ( ~ morphism(M1,Dom,DomCod1)
                    | ~ morphism(M2,DomCod1,Cod)
                    | ~ morphism(M3,Dom,DomCod2)
                    | ~ morphism(M4,DomCod2,Cod)
                    | ~ commute(M1,M2,M3,M4) )
            <=> ( ~ morphism(M1,Dom,DomCod1)
                | ~ morphism(M2,DomCod1,Cod)
                | ~ morphism(M3,Dom,DomCod2)
                | ~ morphism(M4,DomCod2,Cod)
                | ~ commute(M1,M2,M3,M4) ) )),
            ( ~ ( commute(M1,M2,M3,M4)
                & morphism(M1,Dom,DomCod1)
                & morphism(M2,DomCod1,Cod)
                & morphism(M3,Dom,DomCod2)
                & morphism(M4,DomCod2,Cod) )
          <=> ( ~ morphism(M1,Dom,DomCod1)
              | ~ morphism(M2,DomCod1,Cod)
              | ~ morphism(M3,Dom,DomCod2)
              | ~ morphism(M4,DomCod2,Cod)
              | ~ commute(M1,M2,M3,M4) ) )),
          ( ( ~ ( commute(M1,M2,M3,M4)
                & morphism(M1,Dom,DomCod1)
                & morphism(M2,DomCod1,Cod)
                & morphism(M3,Dom,DomCod2)
                & morphism(M4,DomCod2,Cod) )
            | ! [ElDom: $i] :
                ( ~ element(ElDom,Dom)
                | ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) ) )
        <=> ( ~ morphism(M1,Dom,DomCod1)
            | ~ morphism(M2,DomCod1,Cod)
            | ~ morphism(M3,Dom,DomCod2)
            | ~ morphism(M4,DomCod2,Cod)
            | ~ commute(M1,M2,M3,M4)
            | ! [ElDom: $i] :
                ( ~ element(ElDom,Dom)
                | ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) ) ) )),
        rewrite(
          ( ( ~ morphism(M1,Dom,DomCod1)
            | ~ morphism(M2,DomCod1,Cod)
            | ~ morphism(M3,Dom,DomCod2)
            | ~ morphism(M4,DomCod2,Cod)
            | ~ commute(M1,M2,M3,M4)
            | ! [ElDom: $i] :
                ( ~ element(ElDom,Dom)
                | ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) ) )
        <=> ( ! [ElDom: $i] :
                ( ~ element(ElDom,Dom)
                | ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) )
            | ~ morphism(M1,Dom,DomCod1)
            | ~ morphism(M2,DomCod1,Cod)
            | ~ morphism(M3,Dom,DomCod2)
            | ~ morphism(M4,DomCod2,Cod)
            | ~ commute(M1,M2,M3,M4) ) )),
        ( ( ~ ( commute(M1,M2,M3,M4)
              & morphism(M1,Dom,DomCod1)
              & morphism(M2,DomCod1,Cod)
              & morphism(M3,Dom,DomCod2)
              & morphism(M4,DomCod2,Cod) )
          | ! [ElDom: $i] :
              ( ~ element(ElDom,Dom)
              | ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) ) )
      <=> ( ! [ElDom: $i] :
              ( ~ element(ElDom,Dom)
              | ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) )
          | ~ morphism(M1,Dom,DomCod1)
          | ~ morphism(M2,DomCod1,Cod)
          | ~ morphism(M3,Dom,DomCod2)
          | ~ morphism(M4,DomCod2,Cod)
          | ~ commute(M1,M2,M3,M4) ) )),
    inference(bind,[status(th)],]) ).

tff(111,plain,
    ( ! [M1: $i,M2: $i,M3: $i,M4: $i,Dom: $i,DomCod1: $i,DomCod2: $i,Cod: $i] :
        ( ~ ( commute(M1,M2,M3,M4)
            & morphism(M1,Dom,DomCod1)
            & morphism(M2,DomCod1,Cod)
            & morphism(M3,Dom,DomCod2)
            & morphism(M4,DomCod2,Cod) )
        | ! [ElDom: $i] :
            ( ~ element(ElDom,Dom)
            | ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) ) )
  <=> ! [M1: $i,M2: $i,M3: $i,M4: $i,Dom: $i,DomCod1: $i,DomCod2: $i,Cod: $i] :
        ( ! [ElDom: $i] :
            ( ~ element(ElDom,Dom)
            | ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) )
        | ~ morphism(M1,Dom,DomCod1)
        | ~ morphism(M2,DomCod1,Cod)
        | ~ morphism(M3,Dom,DomCod2)
        | ~ morphism(M4,DomCod2,Cod)
        | ~ commute(M1,M2,M3,M4) ) ),
    inference(quant_intro,[status(thm)],[110]) ).

tff(112,plain,
    ( ! [M1: $i,M2: $i,M3: $i,M4: $i,Dom: $i,DomCod1: $i,DomCod2: $i,Cod: $i] :
        ( ~ ( commute(M1,M2,M3,M4)
            & morphism(M1,Dom,DomCod1)
            & morphism(M2,DomCod1,Cod)
            & morphism(M3,Dom,DomCod2)
            & morphism(M4,DomCod2,Cod) )
        | ! [ElDom: $i] :
            ( ~ element(ElDom,Dom)
            | ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) ) )
  <=> ! [M1: $i,M2: $i,M3: $i,M4: $i,Dom: $i,DomCod1: $i,DomCod2: $i,Cod: $i] :
        ( ~ ( commute(M1,M2,M3,M4)
            & morphism(M1,Dom,DomCod1)
            & morphism(M2,DomCod1,Cod)
            & morphism(M3,Dom,DomCod2)
            & morphism(M4,DomCod2,Cod) )
        | ! [ElDom: $i] :
            ( ~ element(ElDom,Dom)
            | ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) ) ) ),
    inference(rewrite,[status(thm)],]) ).

tff(113,plain,
    ^ [M1: $i,M2: $i,M3: $i,M4: $i,Dom: $i,DomCod1: $i,DomCod2: $i,Cod: $i] :
      trans(
        monotonicity(
          trans(
            monotonicity(
              trans(
                monotonicity(
                  rewrite(
                    ( ( commute(M1,M2,M3,M4)
                      & morphism(M1,Dom,DomCod1)
                      & morphism(M2,DomCod1,Cod) )
                  <=> ( commute(M1,M2,M3,M4)
                      & morphism(M1,Dom,DomCod1)
                      & morphism(M2,DomCod1,Cod) ) )),
                  ( ( commute(M1,M2,M3,M4)
                    & morphism(M1,Dom,DomCod1)
                    & morphism(M2,DomCod1,Cod)
                    & morphism(M3,Dom,DomCod2) )
                <=> ( commute(M1,M2,M3,M4)
                    & morphism(M1,Dom,DomCod1)
                    & morphism(M2,DomCod1,Cod)
                    & morphism(M3,Dom,DomCod2) ) )),
                rewrite(
                  ( ( commute(M1,M2,M3,M4)
                    & morphism(M1,Dom,DomCod1)
                    & morphism(M2,DomCod1,Cod)
                    & morphism(M3,Dom,DomCod2) )
                <=> ( commute(M1,M2,M3,M4)
                    & morphism(M1,Dom,DomCod1)
                    & morphism(M2,DomCod1,Cod)
                    & morphism(M3,Dom,DomCod2) ) )),
                ( ( commute(M1,M2,M3,M4)
                  & morphism(M1,Dom,DomCod1)
                  & morphism(M2,DomCod1,Cod)
                  & morphism(M3,Dom,DomCod2) )
              <=> ( commute(M1,M2,M3,M4)
                  & morphism(M1,Dom,DomCod1)
                  & morphism(M2,DomCod1,Cod)
                  & morphism(M3,Dom,DomCod2) ) )),
              ( ( commute(M1,M2,M3,M4)
                & morphism(M1,Dom,DomCod1)
                & morphism(M2,DomCod1,Cod)
                & morphism(M3,Dom,DomCod2)
                & morphism(M4,DomCod2,Cod) )
            <=> ( commute(M1,M2,M3,M4)
                & morphism(M1,Dom,DomCod1)
                & morphism(M2,DomCod1,Cod)
                & morphism(M3,Dom,DomCod2)
                & morphism(M4,DomCod2,Cod) ) )),
            rewrite(
              ( ( commute(M1,M2,M3,M4)
                & morphism(M1,Dom,DomCod1)
                & morphism(M2,DomCod1,Cod)
                & morphism(M3,Dom,DomCod2)
                & morphism(M4,DomCod2,Cod) )
            <=> ( commute(M1,M2,M3,M4)
                & morphism(M1,Dom,DomCod1)
                & morphism(M2,DomCod1,Cod)
                & morphism(M3,Dom,DomCod2)
                & morphism(M4,DomCod2,Cod) ) )),
            ( ( commute(M1,M2,M3,M4)
              & morphism(M1,Dom,DomCod1)
              & morphism(M2,DomCod1,Cod)
              & morphism(M3,Dom,DomCod2)
              & morphism(M4,DomCod2,Cod) )
          <=> ( commute(M1,M2,M3,M4)
              & morphism(M1,Dom,DomCod1)
              & morphism(M2,DomCod1,Cod)
              & morphism(M3,Dom,DomCod2)
              & morphism(M4,DomCod2,Cod) ) )),
          quant_intro(
            proof_bind(
              ^ [ElDom: $i] :
                rewrite(
                  ( ( element(ElDom,Dom)
                   => ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) )
                <=> ( ~ element(ElDom,Dom)
                    | ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) ) ))),
            ( ! [ElDom: $i] :
                ( element(ElDom,Dom)
               => ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) )
          <=> ! [ElDom: $i] :
                ( ~ element(ElDom,Dom)
                | ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) ) )),
          ( ( ( commute(M1,M2,M3,M4)
              & morphism(M1,Dom,DomCod1)
              & morphism(M2,DomCod1,Cod)
              & morphism(M3,Dom,DomCod2)
              & morphism(M4,DomCod2,Cod) )
           => ! [ElDom: $i] :
                ( element(ElDom,Dom)
               => ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) ) )
        <=> ( ( commute(M1,M2,M3,M4)
              & morphism(M1,Dom,DomCod1)
              & morphism(M2,DomCod1,Cod)
              & morphism(M3,Dom,DomCod2)
              & morphism(M4,DomCod2,Cod) )
           => ! [ElDom: $i] :
                ( ~ element(ElDom,Dom)
                | ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) ) ) )),
        rewrite(
          ( ( ( commute(M1,M2,M3,M4)
              & morphism(M1,Dom,DomCod1)
              & morphism(M2,DomCod1,Cod)
              & morphism(M3,Dom,DomCod2)
              & morphism(M4,DomCod2,Cod) )
           => ! [ElDom: $i] :
                ( ~ element(ElDom,Dom)
                | ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) ) )
        <=> ( ~ ( commute(M1,M2,M3,M4)
                & morphism(M1,Dom,DomCod1)
                & morphism(M2,DomCod1,Cod)
                & morphism(M3,Dom,DomCod2)
                & morphism(M4,DomCod2,Cod) )
            | ! [ElDom: $i] :
                ( ~ element(ElDom,Dom)
                | ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) ) ) )),
        ( ( ( commute(M1,M2,M3,M4)
            & morphism(M1,Dom,DomCod1)
            & morphism(M2,DomCod1,Cod)
            & morphism(M3,Dom,DomCod2)
            & morphism(M4,DomCod2,Cod) )
         => ! [ElDom: $i] :
              ( element(ElDom,Dom)
             => ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) ) )
      <=> ( ~ ( commute(M1,M2,M3,M4)
              & morphism(M1,Dom,DomCod1)
              & morphism(M2,DomCod1,Cod)
              & morphism(M3,Dom,DomCod2)
              & morphism(M4,DomCod2,Cod) )
          | ! [ElDom: $i] :
              ( ~ element(ElDom,Dom)
              | ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) ) ) )),
    inference(bind,[status(th)],]) ).

tff(114,plain,
    ( ! [M1: $i,M2: $i,M3: $i,M4: $i,Dom: $i,DomCod1: $i,DomCod2: $i,Cod: $i] :
        ( ( commute(M1,M2,M3,M4)
          & morphism(M1,Dom,DomCod1)
          & morphism(M2,DomCod1,Cod)
          & morphism(M3,Dom,DomCod2)
          & morphism(M4,DomCod2,Cod) )
       => ! [ElDom: $i] :
            ( element(ElDom,Dom)
           => ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) ) )
  <=> ! [M1: $i,M2: $i,M3: $i,M4: $i,Dom: $i,DomCod1: $i,DomCod2: $i,Cod: $i] :
        ( ~ ( commute(M1,M2,M3,M4)
            & morphism(M1,Dom,DomCod1)
            & morphism(M2,DomCod1,Cod)
            & morphism(M3,Dom,DomCod2)
            & morphism(M4,DomCod2,Cod) )
        | ! [ElDom: $i] :
            ( ~ element(ElDom,Dom)
            | ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) ) ) ),
    inference(quant_intro,[status(thm)],[113]) ).

tff(115,axiom,
    ! [M1: $i,M2: $i,M3: $i,M4: $i,Dom: $i,DomCod1: $i,DomCod2: $i,Cod: $i] :
      ( ( commute(M1,M2,M3,M4)
        & morphism(M1,Dom,DomCod1)
        & morphism(M2,DomCod1,Cod)
        & morphism(M3,Dom,DomCod2)
        & morphism(M4,DomCod2,Cod) )
     => ! [ElDom: $i] :
          ( element(ElDom,Dom)
         => ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) ) ),
    file('/export/starexec/sandbox2/benchmark/Axioms/HAL001+0.ax',commute_properties) ).

tff(116,plain,
    ! [M1: $i,M2: $i,M3: $i,M4: $i,Dom: $i,DomCod1: $i,DomCod2: $i,Cod: $i] :
      ( ~ ( commute(M1,M2,M3,M4)
          & morphism(M1,Dom,DomCod1)
          & morphism(M2,DomCod1,Cod)
          & morphism(M3,Dom,DomCod2)
          & morphism(M4,DomCod2,Cod) )
      | ! [ElDom: $i] :
          ( ~ element(ElDom,Dom)
          | ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) ) ),
    inference(modus_ponens,[status(thm)],[115,114]) ).

tff(117,plain,
    ! [M1: $i,M2: $i,M3: $i,M4: $i,Dom: $i,DomCod1: $i,DomCod2: $i,Cod: $i] :
      ( ~ ( commute(M1,M2,M3,M4)
          & morphism(M1,Dom,DomCod1)
          & morphism(M2,DomCod1,Cod)
          & morphism(M3,Dom,DomCod2)
          & morphism(M4,DomCod2,Cod) )
      | ! [ElDom: $i] :
          ( ~ element(ElDom,Dom)
          | ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) ) ),
    inference(modus_ponens,[status(thm)],[116,112]) ).

tff(118,plain,
    ! [M1: $i,M2: $i,M3: $i,M4: $i,Dom: $i,DomCod1: $i,DomCod2: $i,Cod: $i] :
      ( ~ ( commute(M1,M2,M3,M4)
          & morphism(M1,Dom,DomCod1)
          & morphism(M2,DomCod1,Cod)
          & morphism(M3,Dom,DomCod2)
          & morphism(M4,DomCod2,Cod) )
      | ! [ElDom: $i] :
          ( ~ element(ElDom,Dom)
          | ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) ) ),
    inference(skolemize,[status(sab)],[117]) ).

tff(119,plain,
    ! [M1: $i,M2: $i,M3: $i,M4: $i,Dom: $i,DomCod1: $i,DomCod2: $i,Cod: $i] :
      ( ! [ElDom: $i] :
          ( ~ element(ElDom,Dom)
          | ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) )
      | ~ morphism(M1,Dom,DomCod1)
      | ~ morphism(M2,DomCod1,Cod)
      | ~ morphism(M3,Dom,DomCod2)
      | ~ morphism(M4,DomCod2,Cod)
      | ~ commute(M1,M2,M3,M4) ),
    inference(modus_ponens,[status(thm)],[118,111]) ).

tff(120,plain,
    ! [M1: $i,M2: $i,M3: $i,M4: $i,Dom: $i,DomCod1: $i,DomCod2: $i,Cod: $i] :
      ( ! [ElDom: $i] :
          ( ~ element(ElDom,Dom)
          | ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) )
      | ~ morphism(M1,Dom,DomCod1)
      | ~ morphism(M2,DomCod1,Cod)
      | ~ morphism(M3,Dom,DomCod2)
      | ~ morphism(M4,DomCod2,Cod)
      | ~ commute(M1,M2,M3,M4) ),
    inference(modus_ponens,[status(thm)],[119,109]) ).

tff(121,plain,
    ! [M1: $i,M2: $i,M3: $i,M4: $i,Dom: $i,DomCod1: $i,DomCod2: $i,Cod: $i] :
      ( ~ morphism(M1,Dom,DomCod1)
      | ~ morphism(M2,DomCod1,Cod)
      | ~ morphism(M3,Dom,DomCod2)
      | ~ morphism(M4,DomCod2,Cod)
      | ~ commute(M1,M2,M3,M4)
      | ! [ElDom: $i] :
          ( ~ element(ElDom,Dom)
          | ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) ) ),
    inference(modus_ponens,[status(thm)],[120,104]) ).

tff(122,plain,
    ( ( ~ ! [M1: $i,M2: $i,M3: $i,M4: $i,Dom: $i,DomCod1: $i,DomCod2: $i,Cod: $i] :
            ( ~ morphism(M1,Dom,DomCod1)
            | ~ morphism(M2,DomCod1,Cod)
            | ~ morphism(M3,Dom,DomCod2)
            | ~ morphism(M4,DomCod2,Cod)
            | ~ commute(M1,M2,M3,M4)
            | ! [ElDom: $i] :
                ( ~ element(ElDom,Dom)
                | ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) ) )
      | ~ morphism(g,b,e)
      | ~ morphism(beta,b,c)
      | ~ morphism(h,c,r)
      | ~ morphism(delta,e,r)
      | ~ commute(beta,h,g,delta)
      | ! [ElDom: $i] :
          ( ~ element(ElDom,b)
          | ( apply(h,apply(beta,ElDom)) = apply(delta,apply(g,ElDom)) ) ) )
  <=> ( ~ ! [M1: $i,M2: $i,M3: $i,M4: $i,Dom: $i,DomCod1: $i,DomCod2: $i,Cod: $i] :
            ( ~ morphism(M1,Dom,DomCod1)
            | ~ morphism(M2,DomCod1,Cod)
            | ~ morphism(M3,Dom,DomCod2)
            | ~ morphism(M4,DomCod2,Cod)
            | ~ commute(M1,M2,M3,M4)
            | ! [ElDom: $i] :
                ( ~ element(ElDom,Dom)
                | ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) ) )
      | ~ morphism(g,b,e)
      | ~ morphism(beta,b,c)
      | ~ morphism(h,c,r)
      | ~ morphism(delta,e,r)
      | ~ commute(beta,h,g,delta)
      | ! [ElDom: $i] :
          ( ~ element(ElDom,b)
          | ( apply(h,apply(beta,ElDom)) = apply(delta,apply(g,ElDom)) ) ) ) ),
    inference(rewrite,[status(thm)],]) ).

tff(123,plain,
    ( ( ~ morphism(beta,b,c)
      | ~ morphism(h,c,r)
      | ~ morphism(g,b,e)
      | ~ morphism(delta,e,r)
      | ~ commute(beta,h,g,delta)
      | ! [ElDom: $i] :
          ( ~ element(ElDom,b)
          | ( apply(h,apply(beta,ElDom)) = apply(delta,apply(g,ElDom)) ) ) )
  <=> ( ~ morphism(g,b,e)
      | ~ morphism(beta,b,c)
      | ~ morphism(h,c,r)
      | ~ morphism(delta,e,r)
      | ~ commute(beta,h,g,delta)
      | ! [ElDom: $i] :
          ( ~ element(ElDom,b)
          | ( apply(h,apply(beta,ElDom)) = apply(delta,apply(g,ElDom)) ) ) ) ),
    inference(rewrite,[status(thm)],]) ).

tff(124,plain,
    ( ( ~ ! [M1: $i,M2: $i,M3: $i,M4: $i,Dom: $i,DomCod1: $i,DomCod2: $i,Cod: $i] :
            ( ~ morphism(M1,Dom,DomCod1)
            | ~ morphism(M2,DomCod1,Cod)
            | ~ morphism(M3,Dom,DomCod2)
            | ~ morphism(M4,DomCod2,Cod)
            | ~ commute(M1,M2,M3,M4)
            | ! [ElDom: $i] :
                ( ~ element(ElDom,Dom)
                | ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) ) )
      | ~ morphism(beta,b,c)
      | ~ morphism(h,c,r)
      | ~ morphism(g,b,e)
      | ~ morphism(delta,e,r)
      | ~ commute(beta,h,g,delta)
      | ! [ElDom: $i] :
          ( ~ element(ElDom,b)
          | ( apply(h,apply(beta,ElDom)) = apply(delta,apply(g,ElDom)) ) ) )
  <=> ( ~ ! [M1: $i,M2: $i,M3: $i,M4: $i,Dom: $i,DomCod1: $i,DomCod2: $i,Cod: $i] :
            ( ~ morphism(M1,Dom,DomCod1)
            | ~ morphism(M2,DomCod1,Cod)
            | ~ morphism(M3,Dom,DomCod2)
            | ~ morphism(M4,DomCod2,Cod)
            | ~ commute(M1,M2,M3,M4)
            | ! [ElDom: $i] :
                ( ~ element(ElDom,Dom)
                | ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) ) )
      | ~ morphism(g,b,e)
      | ~ morphism(beta,b,c)
      | ~ morphism(h,c,r)
      | ~ morphism(delta,e,r)
      | ~ commute(beta,h,g,delta)
      | ! [ElDom: $i] :
          ( ~ element(ElDom,b)
          | ( apply(h,apply(beta,ElDom)) = apply(delta,apply(g,ElDom)) ) ) ) ),
    inference(monotonicity,[status(thm)],[123]) ).

tff(125,plain,
    ( ( ~ ! [M1: $i,M2: $i,M3: $i,M4: $i,Dom: $i,DomCod1: $i,DomCod2: $i,Cod: $i] :
            ( ~ morphism(M1,Dom,DomCod1)
            | ~ morphism(M2,DomCod1,Cod)
            | ~ morphism(M3,Dom,DomCod2)
            | ~ morphism(M4,DomCod2,Cod)
            | ~ commute(M1,M2,M3,M4)
            | ! [ElDom: $i] :
                ( ~ element(ElDom,Dom)
                | ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) ) )
      | ~ morphism(beta,b,c)
      | ~ morphism(h,c,r)
      | ~ morphism(g,b,e)
      | ~ morphism(delta,e,r)
      | ~ commute(beta,h,g,delta)
      | ! [ElDom: $i] :
          ( ~ element(ElDom,b)
          | ( apply(h,apply(beta,ElDom)) = apply(delta,apply(g,ElDom)) ) ) )
  <=> ( ~ ! [M1: $i,M2: $i,M3: $i,M4: $i,Dom: $i,DomCod1: $i,DomCod2: $i,Cod: $i] :
            ( ~ morphism(M1,Dom,DomCod1)
            | ~ morphism(M2,DomCod1,Cod)
            | ~ morphism(M3,Dom,DomCod2)
            | ~ morphism(M4,DomCod2,Cod)
            | ~ commute(M1,M2,M3,M4)
            | ! [ElDom: $i] :
                ( ~ element(ElDom,Dom)
                | ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) ) )
      | ~ morphism(g,b,e)
      | ~ morphism(beta,b,c)
      | ~ morphism(h,c,r)
      | ~ morphism(delta,e,r)
      | ~ commute(beta,h,g,delta)
      | ! [ElDom: $i] :
          ( ~ element(ElDom,b)
          | ( apply(h,apply(beta,ElDom)) = apply(delta,apply(g,ElDom)) ) ) ) ),
    inference(transitivity,[status(thm)],[124,122]) ).

tff(126,plain,
    ( ~ ! [M1: $i,M2: $i,M3: $i,M4: $i,Dom: $i,DomCod1: $i,DomCod2: $i,Cod: $i] :
          ( ~ morphism(M1,Dom,DomCod1)
          | ~ morphism(M2,DomCod1,Cod)
          | ~ morphism(M3,Dom,DomCod2)
          | ~ morphism(M4,DomCod2,Cod)
          | ~ commute(M1,M2,M3,M4)
          | ! [ElDom: $i] :
              ( ~ element(ElDom,Dom)
              | ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) ) )
    | ~ morphism(beta,b,c)
    | ~ morphism(h,c,r)
    | ~ morphism(g,b,e)
    | ~ morphism(delta,e,r)
    | ~ commute(beta,h,g,delta)
    | ! [ElDom: $i] :
        ( ~ element(ElDom,b)
        | ( apply(h,apply(beta,ElDom)) = apply(delta,apply(g,ElDom)) ) ) ),
    inference(quant_inst,[status(thm)],]) ).

tff(127,plain,
    ( ~ ! [M1: $i,M2: $i,M3: $i,M4: $i,Dom: $i,DomCod1: $i,DomCod2: $i,Cod: $i] :
          ( ~ morphism(M1,Dom,DomCod1)
          | ~ morphism(M2,DomCod1,Cod)
          | ~ morphism(M3,Dom,DomCod2)
          | ~ morphism(M4,DomCod2,Cod)
          | ~ commute(M1,M2,M3,M4)
          | ! [ElDom: $i] :
              ( ~ element(ElDom,Dom)
              | ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) ) )
    | ~ morphism(g,b,e)
    | ~ morphism(beta,b,c)
    | ~ morphism(h,c,r)
    | ~ morphism(delta,e,r)
    | ~ commute(beta,h,g,delta)
    | ! [ElDom: $i] :
        ( ~ element(ElDom,b)
        | ( apply(h,apply(beta,ElDom)) = apply(delta,apply(g,ElDom)) ) ) ),
    inference(modus_ponens,[status(thm)],[126,125]) ).

tff(128,plain,
    ! [ElDom: $i] :
      ( ~ element(ElDom,b)
      | ( apply(h,apply(beta,ElDom)) = apply(delta,apply(g,ElDom)) ) ),
    inference(unit_resolution,[status(thm)],[127,121,62,89,34,102,99]) ).

tff(129,plain,
    ( ( tptp_fun_El_8(e,b,g) = zero(b) )
    | ~ element(tptp_fun_El_8(e,b,g),b)
    | ( apply(g,tptp_fun_El_8(e,b,g)) != zero(e) )
    | element(tptp_fun_El_8(e,b,g),b) ),
    inference(tautology,[status(thm)],]) ).

tff(130,plain,
    element(tptp_fun_El_8(e,b,g),b),
    inference(unit_resolution,[status(thm)],[129,54]) ).

tff(131,plain,
    ( ( ~ ! [ElDom: $i] :
            ( ~ element(ElDom,b)
            | ( apply(h,apply(beta,ElDom)) = apply(delta,apply(g,ElDom)) ) )
      | ~ element(tptp_fun_El_8(e,b,g),b)
      | ( apply(h,apply(beta,tptp_fun_El_8(e,b,g))) = apply(delta,apply(g,tptp_fun_El_8(e,b,g))) ) )
  <=> ( ~ ! [ElDom: $i] :
            ( ~ element(ElDom,b)
            | ( apply(h,apply(beta,ElDom)) = apply(delta,apply(g,ElDom)) ) )
      | ~ element(tptp_fun_El_8(e,b,g),b)
      | ( apply(h,apply(beta,tptp_fun_El_8(e,b,g))) = apply(delta,apply(g,tptp_fun_El_8(e,b,g))) ) ) ),
    inference(rewrite,[status(thm)],]) ).

tff(132,plain,
    ( ~ ! [ElDom: $i] :
          ( ~ element(ElDom,b)
          | ( apply(h,apply(beta,ElDom)) = apply(delta,apply(g,ElDom)) ) )
    | ~ element(tptp_fun_El_8(e,b,g),b)
    | ( apply(h,apply(beta,tptp_fun_El_8(e,b,g))) = apply(delta,apply(g,tptp_fun_El_8(e,b,g))) ) ),
    inference(quant_inst,[status(thm)],]) ).

tff(133,plain,
    ( ~ ! [ElDom: $i] :
          ( ~ element(ElDom,b)
          | ( apply(h,apply(beta,ElDom)) = apply(delta,apply(g,ElDom)) ) )
    | ~ element(tptp_fun_El_8(e,b,g),b)
    | ( apply(h,apply(beta,tptp_fun_El_8(e,b,g))) = apply(delta,apply(g,tptp_fun_El_8(e,b,g))) ) ),
    inference(modus_ponens,[status(thm)],[132,131]) ).

tff(134,plain,
    apply(h,apply(beta,tptp_fun_El_8(e,b,g))) = apply(delta,apply(g,tptp_fun_El_8(e,b,g))),
    inference(unit_resolution,[status(thm)],[133,130,128]) ).

tff(135,plain,
    apply(h,apply(beta,tptp_fun_El_8(e,b,g))) = zero(r),
    inference(transitivity,[status(thm)],[134,96,95]) ).

tff(136,plain,
    ( ( ~ ! [Morphism: $i,Dom: $i,Cod: $i] :
            ( ~ morphism(Morphism,Dom,Cod)
            | ~ ( ( apply(Morphism,zero(Dom)) != zero(Cod) )
                | ~ ! [El: $i] :
                      ( ~ element(El,Dom)
                      | element(apply(Morphism,El),Cod) ) ) )
      | ~ morphism(beta,b,c)
      | ~ ( ( apply(beta,zero(b)) != zero(c) )
          | ~ ! [El: $i] :
                ( ~ element(El,b)
                | element(apply(beta,El),c) ) ) )
  <=> ( ~ ! [Morphism: $i,Dom: $i,Cod: $i] :
            ( ~ morphism(Morphism,Dom,Cod)
            | ~ ( ( apply(Morphism,zero(Dom)) != zero(Cod) )
                | ~ ! [El: $i] :
                      ( ~ element(El,Dom)
                      | element(apply(Morphism,El),Cod) ) ) )
      | ~ morphism(beta,b,c)
      | ~ ( ( apply(beta,zero(b)) != zero(c) )
          | ~ ! [El: $i] :
                ( ~ element(El,b)
                | element(apply(beta,El),c) ) ) ) ),
    inference(rewrite,[status(thm)],]) ).

tff(137,plain,
    ( ~ ! [Morphism: $i,Dom: $i,Cod: $i] :
          ( ~ morphism(Morphism,Dom,Cod)
          | ~ ( ( apply(Morphism,zero(Dom)) != zero(Cod) )
              | ~ ! [El: $i] :
                    ( ~ element(El,Dom)
                    | element(apply(Morphism,El),Cod) ) ) )
    | ~ morphism(beta,b,c)
    | ~ ( ( apply(beta,zero(b)) != zero(c) )
        | ~ ! [El: $i] :
              ( ~ element(El,b)
              | element(apply(beta,El),c) ) ) ),
    inference(quant_inst,[status(thm)],]) ).

tff(138,plain,
    ( ~ ! [Morphism: $i,Dom: $i,Cod: $i] :
          ( ~ morphism(Morphism,Dom,Cod)
          | ~ ( ( apply(Morphism,zero(Dom)) != zero(Cod) )
              | ~ ! [El: $i] :
                    ( ~ element(El,Dom)
                    | element(apply(Morphism,El),Cod) ) ) )
    | ~ morphism(beta,b,c)
    | ~ ( ( apply(beta,zero(b)) != zero(c) )
        | ~ ! [El: $i] :
              ( ~ element(El,b)
              | element(apply(beta,El),c) ) ) ),
    inference(modus_ponens,[status(thm)],[137,136]) ).

tff(139,plain,
    ~ ( ( apply(beta,zero(b)) != zero(c) )
      | ~ ! [El: $i] :
            ( ~ element(El,b)
            | element(apply(beta,El),c) ) ),
    inference(unit_resolution,[status(thm)],[138,22,62]) ).

tff(140,plain,
    ( ( apply(beta,zero(b)) != zero(c) )
    | ~ ! [El: $i] :
          ( ~ element(El,b)
          | element(apply(beta,El),c) )
    | ! [El: $i] :
        ( ~ element(El,b)
        | element(apply(beta,El),c) ) ),
    inference(tautology,[status(thm)],]) ).

tff(141,plain,
    ! [El: $i] :
      ( ~ element(El,b)
      | element(apply(beta,El),c) ),
    inference(unit_resolution,[status(thm)],[140,139]) ).

tff(142,plain,
    ( ( ~ ! [El: $i] :
            ( ~ element(El,b)
            | element(apply(beta,El),c) )
      | ~ element(tptp_fun_El_8(e,b,g),b)
      | element(apply(beta,tptp_fun_El_8(e,b,g)),c) )
  <=> ( ~ ! [El: $i] :
            ( ~ element(El,b)
            | element(apply(beta,El),c) )
      | ~ element(tptp_fun_El_8(e,b,g),b)
      | element(apply(beta,tptp_fun_El_8(e,b,g)),c) ) ),
    inference(rewrite,[status(thm)],]) ).

tff(143,plain,
    ( ~ ! [El: $i] :
          ( ~ element(El,b)
          | element(apply(beta,El),c) )
    | ~ element(tptp_fun_El_8(e,b,g),b)
    | element(apply(beta,tptp_fun_El_8(e,b,g)),c) ),
    inference(quant_inst,[status(thm)],]) ).

tff(144,plain,
    ( ~ ! [El: $i] :
          ( ~ element(El,b)
          | element(apply(beta,El),c) )
    | ~ element(tptp_fun_El_8(e,b,g),b)
    | element(apply(beta,tptp_fun_El_8(e,b,g)),c) ),
    inference(modus_ponens,[status(thm)],[143,142]) ).

tff(145,plain,
    element(apply(beta,tptp_fun_El_8(e,b,g)),c),
    inference(unit_resolution,[status(thm)],[144,141,130]) ).

tff(146,plain,
    ( injection(h)
  <=> injection(h) ),
    inference(rewrite,[status(thm)],]) ).

tff(147,axiom,
    injection(h),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',h_injection) ).

tff(148,plain,
    injection(h),
    inference(modus_ponens,[status(thm)],[147,146]) ).

tff(149,plain,
    ^ [Morphism: $i,Dom: $i,Cod: $i] :
      refl(
        ( ( ~ morphism(Morphism,Dom,Cod)
          | ~ injection(Morphism)
          | ! [El: $i] :
              ( ( El = zero(Dom) )
              | ~ element(El,Dom)
              | ( apply(Morphism,El) != zero(Cod) ) ) )
      <=> ( ~ morphism(Morphism,Dom,Cod)
          | ~ injection(Morphism)
          | ! [El: $i] :
              ( ( El = zero(Dom) )
              | ~ element(El,Dom)
              | ( apply(Morphism,El) != zero(Cod) ) ) ) )),
    inference(bind,[status(th)],]) ).

tff(150,plain,
    ( ! [Morphism: $i,Dom: $i,Cod: $i] :
        ( ~ morphism(Morphism,Dom,Cod)
        | ~ injection(Morphism)
        | ! [El: $i] :
            ( ( El = zero(Dom) )
            | ~ element(El,Dom)
            | ( apply(Morphism,El) != zero(Cod) ) ) )
  <=> ! [Morphism: $i,Dom: $i,Cod: $i] :
        ( ~ morphism(Morphism,Dom,Cod)
        | ~ injection(Morphism)
        | ! [El: $i] :
            ( ( El = zero(Dom) )
            | ~ element(El,Dom)
            | ( apply(Morphism,El) != zero(Cod) ) ) ) ),
    inference(quant_intro,[status(thm)],[149]) ).

tff(151,plain,
    ^ [Morphism: $i,Dom: $i,Cod: $i] :
      rewrite(
        ( ( ~ morphism(Morphism,Dom,Cod)
          | ~ injection(Morphism)
          | ! [El: $i] :
              ( ( El = zero(Dom) )
              | ~ element(El,Dom)
              | ( apply(Morphism,El) != zero(Cod) ) ) )
      <=> ( ~ morphism(Morphism,Dom,Cod)
          | ~ injection(Morphism)
          | ! [El: $i] :
              ( ( El = zero(Dom) )
              | ~ element(El,Dom)
              | ( apply(Morphism,El) != zero(Cod) ) ) ) )),
    inference(bind,[status(th)],]) ).

tff(152,plain,
    ( ! [Morphism: $i,Dom: $i,Cod: $i] :
        ( ~ morphism(Morphism,Dom,Cod)
        | ~ injection(Morphism)
        | ! [El: $i] :
            ( ( El = zero(Dom) )
            | ~ element(El,Dom)
            | ( apply(Morphism,El) != zero(Cod) ) ) )
  <=> ! [Morphism: $i,Dom: $i,Cod: $i] :
        ( ~ morphism(Morphism,Dom,Cod)
        | ~ injection(Morphism)
        | ! [El: $i] :
            ( ( El = zero(Dom) )
            | ~ element(El,Dom)
            | ( apply(Morphism,El) != zero(Cod) ) ) ) ),
    inference(quant_intro,[status(thm)],[151]) ).

tff(153,plain,
    ( ! [Morphism: $i,Dom: $i,Cod: $i] :
        ( ~ morphism(Morphism,Dom,Cod)
        | ~ injection(Morphism)
        | ! [El: $i] :
            ( ( El = zero(Dom) )
            | ~ element(El,Dom)
            | ( apply(Morphism,El) != zero(Cod) ) ) )
  <=> ! [Morphism: $i,Dom: $i,Cod: $i] :
        ( ~ morphism(Morphism,Dom,Cod)
        | ~ injection(Morphism)
        | ! [El: $i] :
            ( ( El = zero(Dom) )
            | ~ element(El,Dom)
            | ( apply(Morphism,El) != zero(Cod) ) ) ) ),
    inference(transitivity,[status(thm)],[152,150]) ).

tff(154,plain,
    ^ [Morphism: $i,Dom: $i,Cod: $i] :
      trans(
        monotonicity(
          trans(
            monotonicity(
              rewrite(
                ( ( injection(Morphism)
                  & morphism(Morphism,Dom,Cod) )
              <=> ~ ( ~ injection(Morphism)
                    | ~ morphism(Morphism,Dom,Cod) ) )),
              ( ~ ( injection(Morphism)
                  & morphism(Morphism,Dom,Cod) )
            <=> ~ ~ ( ~ injection(Morphism)
                    | ~ morphism(Morphism,Dom,Cod) ) )),
            rewrite(
              ( ~ ~ ( ~ injection(Morphism)
                    | ~ morphism(Morphism,Dom,Cod) )
            <=> ( ~ injection(Morphism)
                | ~ morphism(Morphism,Dom,Cod) ) )),
            ( ~ ( injection(Morphism)
                & morphism(Morphism,Dom,Cod) )
          <=> ( ~ injection(Morphism)
              | ~ morphism(Morphism,Dom,Cod) ) )),
          quant_intro(
            proof_bind(
              ^ [El: $i] :
                trans(
                  monotonicity(
                    trans(
                      monotonicity(
                        rewrite(
                          ( ( element(El,Dom)
                            & ( apply(Morphism,El) = zero(Cod) ) )
                        <=> ~ ( ~ element(El,Dom)
                              | ( apply(Morphism,El) != zero(Cod) ) ) )),
                        ( ~ ( element(El,Dom)
                            & ( apply(Morphism,El) = zero(Cod) ) )
                      <=> ~ ~ ( ~ element(El,Dom)
                              | ( apply(Morphism,El) != zero(Cod) ) ) )),
                      rewrite(
                        ( ~ ~ ( ~ element(El,Dom)
                              | ( apply(Morphism,El) != zero(Cod) ) )
                      <=> ( ~ element(El,Dom)
                          | ( apply(Morphism,El) != zero(Cod) ) ) )),
                      ( ~ ( element(El,Dom)
                          & ( apply(Morphism,El) = zero(Cod) ) )
                    <=> ( ~ element(El,Dom)
                        | ( apply(Morphism,El) != zero(Cod) ) ) )),
                    ( ( ~ ( element(El,Dom)
                          & ( apply(Morphism,El) = zero(Cod) ) )
                      | ( El = zero(Dom) ) )
                  <=> ( ~ element(El,Dom)
                      | ( apply(Morphism,El) != zero(Cod) )
                      | ( El = zero(Dom) ) ) )),
                  rewrite(
                    ( ( ~ element(El,Dom)
                      | ( apply(Morphism,El) != zero(Cod) )
                      | ( El = zero(Dom) ) )
                  <=> ( ( El = zero(Dom) )
                      | ~ element(El,Dom)
                      | ( apply(Morphism,El) != zero(Cod) ) ) )),
                  ( ( ~ ( element(El,Dom)
                        & ( apply(Morphism,El) = zero(Cod) ) )
                    | ( El = zero(Dom) ) )
                <=> ( ( El = zero(Dom) )
                    | ~ element(El,Dom)
                    | ( apply(Morphism,El) != zero(Cod) ) ) ))),
            ( ! [El: $i] :
                ( ~ ( element(El,Dom)
                    & ( apply(Morphism,El) = zero(Cod) ) )
                | ( El = zero(Dom) ) )
          <=> ! [El: $i] :
                ( ( El = zero(Dom) )
                | ~ element(El,Dom)
                | ( apply(Morphism,El) != zero(Cod) ) ) )),
          ( ( ~ ( injection(Morphism)
                & morphism(Morphism,Dom,Cod) )
            | ! [El: $i] :
                ( ~ ( element(El,Dom)
                    & ( apply(Morphism,El) = zero(Cod) ) )
                | ( El = zero(Dom) ) ) )
        <=> ( ~ injection(Morphism)
            | ~ morphism(Morphism,Dom,Cod)
            | ! [El: $i] :
                ( ( El = zero(Dom) )
                | ~ element(El,Dom)
                | ( apply(Morphism,El) != zero(Cod) ) ) ) )),
        rewrite(
          ( ( ~ injection(Morphism)
            | ~ morphism(Morphism,Dom,Cod)
            | ! [El: $i] :
                ( ( El = zero(Dom) )
                | ~ element(El,Dom)
                | ( apply(Morphism,El) != zero(Cod) ) ) )
        <=> ( ~ morphism(Morphism,Dom,Cod)
            | ~ injection(Morphism)
            | ! [El: $i] :
                ( ( El = zero(Dom) )
                | ~ element(El,Dom)
                | ( apply(Morphism,El) != zero(Cod) ) ) ) )),
        ( ( ~ ( injection(Morphism)
              & morphism(Morphism,Dom,Cod) )
          | ! [El: $i] :
              ( ~ ( element(El,Dom)
                  & ( apply(Morphism,El) = zero(Cod) ) )
              | ( El = zero(Dom) ) ) )
      <=> ( ~ morphism(Morphism,Dom,Cod)
          | ~ injection(Morphism)
          | ! [El: $i] :
              ( ( El = zero(Dom) )
              | ~ element(El,Dom)
              | ( apply(Morphism,El) != zero(Cod) ) ) ) )),
    inference(bind,[status(th)],]) ).

tff(155,plain,
    ( ! [Morphism: $i,Dom: $i,Cod: $i] :
        ( ~ ( injection(Morphism)
            & morphism(Morphism,Dom,Cod) )
        | ! [El: $i] :
            ( ~ ( element(El,Dom)
                & ( apply(Morphism,El) = zero(Cod) ) )
            | ( El = zero(Dom) ) ) )
  <=> ! [Morphism: $i,Dom: $i,Cod: $i] :
        ( ~ morphism(Morphism,Dom,Cod)
        | ~ injection(Morphism)
        | ! [El: $i] :
            ( ( El = zero(Dom) )
            | ~ element(El,Dom)
            | ( apply(Morphism,El) != zero(Cod) ) ) ) ),
    inference(quant_intro,[status(thm)],[154]) ).

tff(156,plain,
    ( ! [Morphism: $i,Dom: $i,Cod: $i] :
        ( ~ ( injection(Morphism)
            & morphism(Morphism,Dom,Cod) )
        | ! [El: $i] :
            ( ~ ( element(El,Dom)
                & ( apply(Morphism,El) = zero(Cod) ) )
            | ( El = zero(Dom) ) ) )
  <=> ! [Morphism: $i,Dom: $i,Cod: $i] :
        ( ~ ( injection(Morphism)
            & morphism(Morphism,Dom,Cod) )
        | ! [El: $i] :
            ( ~ ( element(El,Dom)
                & ( apply(Morphism,El) = zero(Cod) ) )
            | ( El = zero(Dom) ) ) ) ),
    inference(rewrite,[status(thm)],]) ).

tff(157,plain,
    ^ [Morphism: $i,Dom: $i,Cod: $i] :
      trans(
        monotonicity(
          quant_intro(
            proof_bind(
              ^ [El: $i] :
                rewrite(
                  ( ( ( element(El,Dom)
                      & ( apply(Morphism,El) = zero(Cod) ) )
                   => ( El = zero(Dom) ) )
                <=> ( ~ ( element(El,Dom)
                        & ( apply(Morphism,El) = zero(Cod) ) )
                    | ( El = zero(Dom) ) ) ))),
            ( ! [El: $i] :
                ( ( element(El,Dom)
                  & ( apply(Morphism,El) = zero(Cod) ) )
               => ( El = zero(Dom) ) )
          <=> ! [El: $i] :
                ( ~ ( element(El,Dom)
                    & ( apply(Morphism,El) = zero(Cod) ) )
                | ( El = zero(Dom) ) ) )),
          ( ( ( injection(Morphism)
              & morphism(Morphism,Dom,Cod) )
           => ! [El: $i] :
                ( ( element(El,Dom)
                  & ( apply(Morphism,El) = zero(Cod) ) )
               => ( El = zero(Dom) ) ) )
        <=> ( ( injection(Morphism)
              & morphism(Morphism,Dom,Cod) )
           => ! [El: $i] :
                ( ~ ( element(El,Dom)
                    & ( apply(Morphism,El) = zero(Cod) ) )
                | ( El = zero(Dom) ) ) ) )),
        rewrite(
          ( ( ( injection(Morphism)
              & morphism(Morphism,Dom,Cod) )
           => ! [El: $i] :
                ( ~ ( element(El,Dom)
                    & ( apply(Morphism,El) = zero(Cod) ) )
                | ( El = zero(Dom) ) ) )
        <=> ( ~ ( injection(Morphism)
                & morphism(Morphism,Dom,Cod) )
            | ! [El: $i] :
                ( ~ ( element(El,Dom)
                    & ( apply(Morphism,El) = zero(Cod) ) )
                | ( El = zero(Dom) ) ) ) )),
        ( ( ( injection(Morphism)
            & morphism(Morphism,Dom,Cod) )
         => ! [El: $i] :
              ( ( element(El,Dom)
                & ( apply(Morphism,El) = zero(Cod) ) )
             => ( El = zero(Dom) ) ) )
      <=> ( ~ ( injection(Morphism)
              & morphism(Morphism,Dom,Cod) )
          | ! [El: $i] :
              ( ~ ( element(El,Dom)
                  & ( apply(Morphism,El) = zero(Cod) ) )
              | ( El = zero(Dom) ) ) ) )),
    inference(bind,[status(th)],]) ).

tff(158,plain,
    ( ! [Morphism: $i,Dom: $i,Cod: $i] :
        ( ( injection(Morphism)
          & morphism(Morphism,Dom,Cod) )
       => ! [El: $i] :
            ( ( element(El,Dom)
              & ( apply(Morphism,El) = zero(Cod) ) )
           => ( El = zero(Dom) ) ) )
  <=> ! [Morphism: $i,Dom: $i,Cod: $i] :
        ( ~ ( injection(Morphism)
            & morphism(Morphism,Dom,Cod) )
        | ! [El: $i] :
            ( ~ ( element(El,Dom)
                & ( apply(Morphism,El) = zero(Cod) ) )
            | ( El = zero(Dom) ) ) ) ),
    inference(quant_intro,[status(thm)],[157]) ).

tff(159,axiom,
    ! [Morphism: $i,Dom: $i,Cod: $i] :
      ( ( injection(Morphism)
        & morphism(Morphism,Dom,Cod) )
     => ! [El: $i] :
          ( ( element(El,Dom)
            & ( apply(Morphism,El) = zero(Cod) ) )
         => ( El = zero(Dom) ) ) ),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',injection_properties_2) ).

tff(160,plain,
    ! [Morphism: $i,Dom: $i,Cod: $i] :
      ( ~ ( injection(Morphism)
          & morphism(Morphism,Dom,Cod) )
      | ! [El: $i] :
          ( ~ ( element(El,Dom)
              & ( apply(Morphism,El) = zero(Cod) ) )
          | ( El = zero(Dom) ) ) ),
    inference(modus_ponens,[status(thm)],[159,158]) ).

tff(161,plain,
    ! [Morphism: $i,Dom: $i,Cod: $i] :
      ( ~ ( injection(Morphism)
          & morphism(Morphism,Dom,Cod) )
      | ! [El: $i] :
          ( ~ ( element(El,Dom)
              & ( apply(Morphism,El) = zero(Cod) ) )
          | ( El = zero(Dom) ) ) ),
    inference(modus_ponens,[status(thm)],[160,156]) ).

tff(162,plain,
    ! [Morphism: $i,Dom: $i,Cod: $i] :
      ( ~ ( injection(Morphism)
          & morphism(Morphism,Dom,Cod) )
      | ! [El: $i] :
          ( ~ ( element(El,Dom)
              & ( apply(Morphism,El) = zero(Cod) ) )
          | ( El = zero(Dom) ) ) ),
    inference(skolemize,[status(sab)],[161]) ).

tff(163,plain,
    ! [Morphism: $i,Dom: $i,Cod: $i] :
      ( ~ morphism(Morphism,Dom,Cod)
      | ~ injection(Morphism)
      | ! [El: $i] :
          ( ( El = zero(Dom) )
          | ~ element(El,Dom)
          | ( apply(Morphism,El) != zero(Cod) ) ) ),
    inference(modus_ponens,[status(thm)],[162,155]) ).

tff(164,plain,
    ! [Morphism: $i,Dom: $i,Cod: $i] :
      ( ~ morphism(Morphism,Dom,Cod)
      | ~ injection(Morphism)
      | ! [El: $i] :
          ( ( El = zero(Dom) )
          | ~ element(El,Dom)
          | ( apply(Morphism,El) != zero(Cod) ) ) ),
    inference(modus_ponens,[status(thm)],[163,153]) ).

tff(165,plain,
    ( ( ~ ! [Morphism: $i,Dom: $i,Cod: $i] :
            ( ~ morphism(Morphism,Dom,Cod)
            | ~ injection(Morphism)
            | ! [El: $i] :
                ( ( El = zero(Dom) )
                | ~ element(El,Dom)
                | ( apply(Morphism,El) != zero(Cod) ) ) )
      | ~ morphism(h,c,r)
      | ~ injection(h)
      | ! [El: $i] :
          ( ~ element(El,c)
          | ( apply(h,El) != zero(r) )
          | ( El = zero(c) ) ) )
  <=> ( ~ ! [Morphism: $i,Dom: $i,Cod: $i] :
            ( ~ morphism(Morphism,Dom,Cod)
            | ~ injection(Morphism)
            | ! [El: $i] :
                ( ( El = zero(Dom) )
                | ~ element(El,Dom)
                | ( apply(Morphism,El) != zero(Cod) ) ) )
      | ~ morphism(h,c,r)
      | ~ injection(h)
      | ! [El: $i] :
          ( ~ element(El,c)
          | ( apply(h,El) != zero(r) )
          | ( El = zero(c) ) ) ) ),
    inference(rewrite,[status(thm)],]) ).

tff(166,plain,
    ( ( ~ morphism(h,c,r)
      | ~ injection(h)
      | ! [El: $i] :
          ( ~ element(El,c)
          | ( apply(h,El) != zero(r) )
          | ( El = zero(c) ) ) )
  <=> ( ~ morphism(h,c,r)
      | ~ injection(h)
      | ! [El: $i] :
          ( ~ element(El,c)
          | ( apply(h,El) != zero(r) )
          | ( El = zero(c) ) ) ) ),
    inference(rewrite,[status(thm)],]) ).

tff(167,plain,
    ^ [El: $i] :
      rewrite(
        ( ( ( El = zero(c) )
          | ~ element(El,c)
          | ( apply(h,El) != zero(r) ) )
      <=> ( ~ element(El,c)
          | ( apply(h,El) != zero(r) )
          | ( El = zero(c) ) ) )),
    inference(bind,[status(th)],]) ).

tff(168,plain,
    ( ! [El: $i] :
        ( ( El = zero(c) )
        | ~ element(El,c)
        | ( apply(h,El) != zero(r) ) )
  <=> ! [El: $i] :
        ( ~ element(El,c)
        | ( apply(h,El) != zero(r) )
        | ( El = zero(c) ) ) ),
    inference(quant_intro,[status(thm)],[167]) ).

tff(169,plain,
    ( ( ~ morphism(h,c,r)
      | ~ injection(h)
      | ! [El: $i] :
          ( ( El = zero(c) )
          | ~ element(El,c)
          | ( apply(h,El) != zero(r) ) ) )
  <=> ( ~ morphism(h,c,r)
      | ~ injection(h)
      | ! [El: $i] :
          ( ~ element(El,c)
          | ( apply(h,El) != zero(r) )
          | ( El = zero(c) ) ) ) ),
    inference(monotonicity,[status(thm)],[168]) ).

tff(170,plain,
    ( ( ~ morphism(h,c,r)
      | ~ injection(h)
      | ! [El: $i] :
          ( ( El = zero(c) )
          | ~ element(El,c)
          | ( apply(h,El) != zero(r) ) ) )
  <=> ( ~ morphism(h,c,r)
      | ~ injection(h)
      | ! [El: $i] :
          ( ~ element(El,c)
          | ( apply(h,El) != zero(r) )
          | ( El = zero(c) ) ) ) ),
    inference(transitivity,[status(thm)],[169,166]) ).

tff(171,plain,
    ( ( ~ ! [Morphism: $i,Dom: $i,Cod: $i] :
            ( ~ morphism(Morphism,Dom,Cod)
            | ~ injection(Morphism)
            | ! [El: $i] :
                ( ( El = zero(Dom) )
                | ~ element(El,Dom)
                | ( apply(Morphism,El) != zero(Cod) ) ) )
      | ~ morphism(h,c,r)
      | ~ injection(h)
      | ! [El: $i] :
          ( ( El = zero(c) )
          | ~ element(El,c)
          | ( apply(h,El) != zero(r) ) ) )
  <=> ( ~ ! [Morphism: $i,Dom: $i,Cod: $i] :
            ( ~ morphism(Morphism,Dom,Cod)
            | ~ injection(Morphism)
            | ! [El: $i] :
                ( ( El = zero(Dom) )
                | ~ element(El,Dom)
                | ( apply(Morphism,El) != zero(Cod) ) ) )
      | ~ morphism(h,c,r)
      | ~ injection(h)
      | ! [El: $i] :
          ( ~ element(El,c)
          | ( apply(h,El) != zero(r) )
          | ( El = zero(c) ) ) ) ),
    inference(monotonicity,[status(thm)],[170]) ).

tff(172,plain,
    ( ( ~ ! [Morphism: $i,Dom: $i,Cod: $i] :
            ( ~ morphism(Morphism,Dom,Cod)
            | ~ injection(Morphism)
            | ! [El: $i] :
                ( ( El = zero(Dom) )
                | ~ element(El,Dom)
                | ( apply(Morphism,El) != zero(Cod) ) ) )
      | ~ morphism(h,c,r)
      | ~ injection(h)
      | ! [El: $i] :
          ( ( El = zero(c) )
          | ~ element(El,c)
          | ( apply(h,El) != zero(r) ) ) )
  <=> ( ~ ! [Morphism: $i,Dom: $i,Cod: $i] :
            ( ~ morphism(Morphism,Dom,Cod)
            | ~ injection(Morphism)
            | ! [El: $i] :
                ( ( El = zero(Dom) )
                | ~ element(El,Dom)
                | ( apply(Morphism,El) != zero(Cod) ) ) )
      | ~ morphism(h,c,r)
      | ~ injection(h)
      | ! [El: $i] :
          ( ~ element(El,c)
          | ( apply(h,El) != zero(r) )
          | ( El = zero(c) ) ) ) ),
    inference(transitivity,[status(thm)],[171,165]) ).

tff(173,plain,
    ( ~ ! [Morphism: $i,Dom: $i,Cod: $i] :
          ( ~ morphism(Morphism,Dom,Cod)
          | ~ injection(Morphism)
          | ! [El: $i] :
              ( ( El = zero(Dom) )
              | ~ element(El,Dom)
              | ( apply(Morphism,El) != zero(Cod) ) ) )
    | ~ morphism(h,c,r)
    | ~ injection(h)
    | ! [El: $i] :
        ( ( El = zero(c) )
        | ~ element(El,c)
        | ( apply(h,El) != zero(r) ) ) ),
    inference(quant_inst,[status(thm)],]) ).

tff(174,plain,
    ( ~ ! [Morphism: $i,Dom: $i,Cod: $i] :
          ( ~ morphism(Morphism,Dom,Cod)
          | ~ injection(Morphism)
          | ! [El: $i] :
              ( ( El = zero(Dom) )
              | ~ element(El,Dom)
              | ( apply(Morphism,El) != zero(Cod) ) ) )
    | ~ morphism(h,c,r)
    | ~ injection(h)
    | ! [El: $i] :
        ( ~ element(El,c)
        | ( apply(h,El) != zero(r) )
        | ( El = zero(c) ) ) ),
    inference(modus_ponens,[status(thm)],[173,172]) ).

tff(175,plain,
    ! [El: $i] :
      ( ~ element(El,c)
      | ( apply(h,El) != zero(r) )
      | ( El = zero(c) ) ),
    inference(unit_resolution,[status(thm)],[174,164,102,148]) ).

tff(176,plain,
    ( ( ~ ! [El: $i] :
            ( ~ element(El,c)
            | ( apply(h,El) != zero(r) )
            | ( El = zero(c) ) )
      | ~ element(apply(beta,tptp_fun_El_8(e,b,g)),c)
      | ( apply(h,apply(beta,tptp_fun_El_8(e,b,g))) != zero(r) )
      | ( apply(beta,tptp_fun_El_8(e,b,g)) = zero(c) ) )
  <=> ( ~ ! [El: $i] :
            ( ~ element(El,c)
            | ( apply(h,El) != zero(r) )
            | ( El = zero(c) ) )
      | ~ element(apply(beta,tptp_fun_El_8(e,b,g)),c)
      | ( apply(h,apply(beta,tptp_fun_El_8(e,b,g))) != zero(r) )
      | ( apply(beta,tptp_fun_El_8(e,b,g)) = zero(c) ) ) ),
    inference(rewrite,[status(thm)],]) ).

tff(177,plain,
    ( ~ ! [El: $i] :
          ( ~ element(El,c)
          | ( apply(h,El) != zero(r) )
          | ( El = zero(c) ) )
    | ~ element(apply(beta,tptp_fun_El_8(e,b,g)),c)
    | ( apply(h,apply(beta,tptp_fun_El_8(e,b,g))) != zero(r) )
    | ( apply(beta,tptp_fun_El_8(e,b,g)) = zero(c) ) ),
    inference(quant_inst,[status(thm)],]) ).

tff(178,plain,
    ( ~ ! [El: $i] :
          ( ~ element(El,c)
          | ( apply(h,El) != zero(r) )
          | ( El = zero(c) ) )
    | ~ element(apply(beta,tptp_fun_El_8(e,b,g)),c)
    | ( apply(h,apply(beta,tptp_fun_El_8(e,b,g))) != zero(r) )
    | ( apply(beta,tptp_fun_El_8(e,b,g)) = zero(c) ) ),
    inference(modus_ponens,[status(thm)],[177,176]) ).

tff(179,plain,
    apply(beta,tptp_fun_El_8(e,b,g)) = zero(c),
    inference(unit_resolution,[status(thm)],[178,175,145,135]) ).

tff(180,plain,
    ( ~ ( ~ element(tptp_fun_El_8(e,b,g),b)
        | ( apply(beta,tptp_fun_El_8(e,b,g)) != zero(c) )
        | ~ ( ~ element(tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha),a)
            | ( apply(alpha,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha)) != tptp_fun_El_8(e,b,g) ) ) )
    | ~ element(tptp_fun_El_8(e,b,g),b)
    | ( apply(beta,tptp_fun_El_8(e,b,g)) != zero(c) )
    | ~ ( ~ element(tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha),a)
        | ( apply(alpha,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha)) != tptp_fun_El_8(e,b,g) ) ) ),
    inference(tautology,[status(thm)],]) ).

tff(181,plain,
    ( ~ ( ~ element(tptp_fun_El_8(e,b,g),b)
        | ( apply(beta,tptp_fun_El_8(e,b,g)) != zero(c) )
        | ~ ( ~ element(tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha),a)
            | ( apply(alpha,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha)) != tptp_fun_El_8(e,b,g) ) ) )
    | ( apply(beta,tptp_fun_El_8(e,b,g)) != zero(c) )
    | ~ ( ~ element(tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha),a)
        | ( apply(alpha,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha)) != tptp_fun_El_8(e,b,g) ) ) ),
    inference(unit_resolution,[status(thm)],[180,130]) ).

tff(182,plain,
    ~ ( ~ element(tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha),a)
      | ( apply(alpha,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha)) != tptp_fun_El_8(e,b,g) ) ),
    inference(unit_resolution,[status(thm)],[181,179,86]) ).

tff(183,plain,
    ( ~ element(tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha),a)
    | ( apply(alpha,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha)) != tptp_fun_El_8(e,b,g) )
    | ( apply(alpha,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha)) = tptp_fun_El_8(e,b,g) ) ),
    inference(tautology,[status(thm)],]) ).

tff(184,plain,
    apply(alpha,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha)) = tptp_fun_El_8(e,b,g),
    inference(unit_resolution,[status(thm)],[183,182]) ).

tff(185,plain,
    apply(g,apply(alpha,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha))) = apply(g,tptp_fun_El_8(e,b,g)),
    inference(monotonicity,[status(thm)],[184]) ).

tff(186,plain,
    ( ~ element(tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha),a)
    | ( apply(alpha,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha)) != tptp_fun_El_8(e,b,g) )
    | element(tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha),a) ),
    inference(tautology,[status(thm)],]) ).

tff(187,plain,
    element(tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha),a),
    inference(unit_resolution,[status(thm)],[186,182]) ).

tff(188,plain,
    ( commute(alpha,g,f,gamma)
  <=> commute(alpha,g,f,gamma) ),
    inference(rewrite,[status(thm)],]) ).

tff(189,axiom,
    commute(alpha,g,f,gamma),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',alpha_g_f_gamma_commute) ).

tff(190,plain,
    commute(alpha,g,f,gamma),
    inference(modus_ponens,[status(thm)],[189,188]) ).

tff(191,plain,
    ( morphism(f,a,d)
  <=> morphism(f,a,d) ),
    inference(rewrite,[status(thm)],]) ).

tff(192,axiom,
    morphism(f,a,d),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',f_morphism) ).

tff(193,plain,
    morphism(f,a,d),
    inference(modus_ponens,[status(thm)],[192,191]) ).

tff(194,plain,
    ( morphism(gamma,d,e)
  <=> morphism(gamma,d,e) ),
    inference(rewrite,[status(thm)],]) ).

tff(195,axiom,
    morphism(gamma,d,e),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',gamma_morphism) ).

tff(196,plain,
    morphism(gamma,d,e),
    inference(modus_ponens,[status(thm)],[195,194]) ).

tff(197,plain,
    ( ( ~ ! [M1: $i,M2: $i,M3: $i,M4: $i,Dom: $i,DomCod1: $i,DomCod2: $i,Cod: $i] :
            ( ~ morphism(M1,Dom,DomCod1)
            | ~ morphism(M2,DomCod1,Cod)
            | ~ morphism(M3,Dom,DomCod2)
            | ~ morphism(M4,DomCod2,Cod)
            | ~ commute(M1,M2,M3,M4)
            | ! [ElDom: $i] :
                ( ~ element(ElDom,Dom)
                | ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) ) )
      | ~ morphism(alpha,a,b)
      | ~ morphism(g,b,e)
      | ~ morphism(gamma,d,e)
      | ~ morphism(f,a,d)
      | ~ commute(alpha,g,f,gamma)
      | ! [ElDom: $i] :
          ( ~ element(ElDom,a)
          | ( apply(g,apply(alpha,ElDom)) = apply(gamma,apply(f,ElDom)) ) ) )
  <=> ( ~ ! [M1: $i,M2: $i,M3: $i,M4: $i,Dom: $i,DomCod1: $i,DomCod2: $i,Cod: $i] :
            ( ~ morphism(M1,Dom,DomCod1)
            | ~ morphism(M2,DomCod1,Cod)
            | ~ morphism(M3,Dom,DomCod2)
            | ~ morphism(M4,DomCod2,Cod)
            | ~ commute(M1,M2,M3,M4)
            | ! [ElDom: $i] :
                ( ~ element(ElDom,Dom)
                | ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) ) )
      | ~ morphism(alpha,a,b)
      | ~ morphism(g,b,e)
      | ~ morphism(gamma,d,e)
      | ~ morphism(f,a,d)
      | ~ commute(alpha,g,f,gamma)
      | ! [ElDom: $i] :
          ( ~ element(ElDom,a)
          | ( apply(g,apply(alpha,ElDom)) = apply(gamma,apply(f,ElDom)) ) ) ) ),
    inference(rewrite,[status(thm)],]) ).

tff(198,plain,
    ( ( ~ morphism(alpha,a,b)
      | ~ morphism(g,b,e)
      | ~ morphism(f,a,d)
      | ~ morphism(gamma,d,e)
      | ~ commute(alpha,g,f,gamma)
      | ! [ElDom: $i] :
          ( ~ element(ElDom,a)
          | ( apply(g,apply(alpha,ElDom)) = apply(gamma,apply(f,ElDom)) ) ) )
  <=> ( ~ morphism(alpha,a,b)
      | ~ morphism(g,b,e)
      | ~ morphism(gamma,d,e)
      | ~ morphism(f,a,d)
      | ~ commute(alpha,g,f,gamma)
      | ! [ElDom: $i] :
          ( ~ element(ElDom,a)
          | ( apply(g,apply(alpha,ElDom)) = apply(gamma,apply(f,ElDom)) ) ) ) ),
    inference(rewrite,[status(thm)],]) ).

tff(199,plain,
    ( ( ~ ! [M1: $i,M2: $i,M3: $i,M4: $i,Dom: $i,DomCod1: $i,DomCod2: $i,Cod: $i] :
            ( ~ morphism(M1,Dom,DomCod1)
            | ~ morphism(M2,DomCod1,Cod)
            | ~ morphism(M3,Dom,DomCod2)
            | ~ morphism(M4,DomCod2,Cod)
            | ~ commute(M1,M2,M3,M4)
            | ! [ElDom: $i] :
                ( ~ element(ElDom,Dom)
                | ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) ) )
      | ~ morphism(alpha,a,b)
      | ~ morphism(g,b,e)
      | ~ morphism(f,a,d)
      | ~ morphism(gamma,d,e)
      | ~ commute(alpha,g,f,gamma)
      | ! [ElDom: $i] :
          ( ~ element(ElDom,a)
          | ( apply(g,apply(alpha,ElDom)) = apply(gamma,apply(f,ElDom)) ) ) )
  <=> ( ~ ! [M1: $i,M2: $i,M3: $i,M4: $i,Dom: $i,DomCod1: $i,DomCod2: $i,Cod: $i] :
            ( ~ morphism(M1,Dom,DomCod1)
            | ~ morphism(M2,DomCod1,Cod)
            | ~ morphism(M3,Dom,DomCod2)
            | ~ morphism(M4,DomCod2,Cod)
            | ~ commute(M1,M2,M3,M4)
            | ! [ElDom: $i] :
                ( ~ element(ElDom,Dom)
                | ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) ) )
      | ~ morphism(alpha,a,b)
      | ~ morphism(g,b,e)
      | ~ morphism(gamma,d,e)
      | ~ morphism(f,a,d)
      | ~ commute(alpha,g,f,gamma)
      | ! [ElDom: $i] :
          ( ~ element(ElDom,a)
          | ( apply(g,apply(alpha,ElDom)) = apply(gamma,apply(f,ElDom)) ) ) ) ),
    inference(monotonicity,[status(thm)],[198]) ).

tff(200,plain,
    ( ( ~ ! [M1: $i,M2: $i,M3: $i,M4: $i,Dom: $i,DomCod1: $i,DomCod2: $i,Cod: $i] :
            ( ~ morphism(M1,Dom,DomCod1)
            | ~ morphism(M2,DomCod1,Cod)
            | ~ morphism(M3,Dom,DomCod2)
            | ~ morphism(M4,DomCod2,Cod)
            | ~ commute(M1,M2,M3,M4)
            | ! [ElDom: $i] :
                ( ~ element(ElDom,Dom)
                | ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) ) )
      | ~ morphism(alpha,a,b)
      | ~ morphism(g,b,e)
      | ~ morphism(f,a,d)
      | ~ morphism(gamma,d,e)
      | ~ commute(alpha,g,f,gamma)
      | ! [ElDom: $i] :
          ( ~ element(ElDom,a)
          | ( apply(g,apply(alpha,ElDom)) = apply(gamma,apply(f,ElDom)) ) ) )
  <=> ( ~ ! [M1: $i,M2: $i,M3: $i,M4: $i,Dom: $i,DomCod1: $i,DomCod2: $i,Cod: $i] :
            ( ~ morphism(M1,Dom,DomCod1)
            | ~ morphism(M2,DomCod1,Cod)
            | ~ morphism(M3,Dom,DomCod2)
            | ~ morphism(M4,DomCod2,Cod)
            | ~ commute(M1,M2,M3,M4)
            | ! [ElDom: $i] :
                ( ~ element(ElDom,Dom)
                | ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) ) )
      | ~ morphism(alpha,a,b)
      | ~ morphism(g,b,e)
      | ~ morphism(gamma,d,e)
      | ~ morphism(f,a,d)
      | ~ commute(alpha,g,f,gamma)
      | ! [ElDom: $i] :
          ( ~ element(ElDom,a)
          | ( apply(g,apply(alpha,ElDom)) = apply(gamma,apply(f,ElDom)) ) ) ) ),
    inference(transitivity,[status(thm)],[199,197]) ).

tff(201,plain,
    ( ~ ! [M1: $i,M2: $i,M3: $i,M4: $i,Dom: $i,DomCod1: $i,DomCod2: $i,Cod: $i] :
          ( ~ morphism(M1,Dom,DomCod1)
          | ~ morphism(M2,DomCod1,Cod)
          | ~ morphism(M3,Dom,DomCod2)
          | ~ morphism(M4,DomCod2,Cod)
          | ~ commute(M1,M2,M3,M4)
          | ! [ElDom: $i] :
              ( ~ element(ElDom,Dom)
              | ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) ) )
    | ~ morphism(alpha,a,b)
    | ~ morphism(g,b,e)
    | ~ morphism(f,a,d)
    | ~ morphism(gamma,d,e)
    | ~ commute(alpha,g,f,gamma)
    | ! [ElDom: $i] :
        ( ~ element(ElDom,a)
        | ( apply(g,apply(alpha,ElDom)) = apply(gamma,apply(f,ElDom)) ) ) ),
    inference(quant_inst,[status(thm)],]) ).

tff(202,plain,
    ( ~ ! [M1: $i,M2: $i,M3: $i,M4: $i,Dom: $i,DomCod1: $i,DomCod2: $i,Cod: $i] :
          ( ~ morphism(M1,Dom,DomCod1)
          | ~ morphism(M2,DomCod1,Cod)
          | ~ morphism(M3,Dom,DomCod2)
          | ~ morphism(M4,DomCod2,Cod)
          | ~ commute(M1,M2,M3,M4)
          | ! [ElDom: $i] :
              ( ~ element(ElDom,Dom)
              | ( apply(M2,apply(M1,ElDom)) = apply(M4,apply(M3,ElDom)) ) ) )
    | ~ morphism(alpha,a,b)
    | ~ morphism(g,b,e)
    | ~ morphism(gamma,d,e)
    | ~ morphism(f,a,d)
    | ~ commute(alpha,g,f,gamma)
    | ! [ElDom: $i] :
        ( ~ element(ElDom,a)
        | ( apply(g,apply(alpha,ElDom)) = apply(gamma,apply(f,ElDom)) ) ) ),
    inference(modus_ponens,[status(thm)],[201,200]) ).

tff(203,plain,
    ! [ElDom: $i] :
      ( ~ element(ElDom,a)
      | ( apply(g,apply(alpha,ElDom)) = apply(gamma,apply(f,ElDom)) ) ),
    inference(unit_resolution,[status(thm)],[202,121,3,196,193,34,190]) ).

tff(204,plain,
    ( ( ~ ! [ElDom: $i] :
            ( ~ element(ElDom,a)
            | ( apply(g,apply(alpha,ElDom)) = apply(gamma,apply(f,ElDom)) ) )
      | ~ element(tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha),a)
      | ( apply(g,apply(alpha,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha))) = apply(gamma,apply(f,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha))) ) )
  <=> ( ~ ! [ElDom: $i] :
            ( ~ element(ElDom,a)
            | ( apply(g,apply(alpha,ElDom)) = apply(gamma,apply(f,ElDom)) ) )
      | ~ element(tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha),a)
      | ( apply(g,apply(alpha,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha))) = apply(gamma,apply(f,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha))) ) ) ),
    inference(rewrite,[status(thm)],]) ).

tff(205,plain,
    ( ~ ! [ElDom: $i] :
          ( ~ element(ElDom,a)
          | ( apply(g,apply(alpha,ElDom)) = apply(gamma,apply(f,ElDom)) ) )
    | ~ element(tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha),a)
    | ( apply(g,apply(alpha,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha))) = apply(gamma,apply(f,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha))) ) ),
    inference(quant_inst,[status(thm)],]) ).

tff(206,plain,
    ( ~ ! [ElDom: $i] :
          ( ~ element(ElDom,a)
          | ( apply(g,apply(alpha,ElDom)) = apply(gamma,apply(f,ElDom)) ) )
    | ~ element(tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha),a)
    | ( apply(g,apply(alpha,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha))) = apply(gamma,apply(f,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha))) ) ),
    inference(modus_ponens,[status(thm)],[205,204]) ).

tff(207,plain,
    apply(g,apply(alpha,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha))) = apply(gamma,apply(f,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha))),
    inference(unit_resolution,[status(thm)],[206,203,187]) ).

tff(208,plain,
    apply(gamma,apply(f,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha))) = apply(g,apply(alpha,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha))),
    inference(symmetry,[status(thm)],[207]) ).

tff(209,plain,
    apply(gamma,apply(f,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha))) = zero(e),
    inference(transitivity,[status(thm)],[208,185,56]) ).

tff(210,plain,
    ( ( ~ ! [Morphism: $i,Dom: $i,Cod: $i] :
            ( ~ morphism(Morphism,Dom,Cod)
            | ~ ( ( apply(Morphism,zero(Dom)) != zero(Cod) )
                | ~ ! [El: $i] :
                      ( ~ element(El,Dom)
                      | element(apply(Morphism,El),Cod) ) ) )
      | ~ morphism(f,a,d)
      | ~ ( ( apply(f,zero(a)) != zero(d) )
          | ~ ! [El: $i] :
                ( ~ element(El,a)
                | element(apply(f,El),d) ) ) )
  <=> ( ~ ! [Morphism: $i,Dom: $i,Cod: $i] :
            ( ~ morphism(Morphism,Dom,Cod)
            | ~ ( ( apply(Morphism,zero(Dom)) != zero(Cod) )
                | ~ ! [El: $i] :
                      ( ~ element(El,Dom)
                      | element(apply(Morphism,El),Cod) ) ) )
      | ~ morphism(f,a,d)
      | ~ ( ( apply(f,zero(a)) != zero(d) )
          | ~ ! [El: $i] :
                ( ~ element(El,a)
                | element(apply(f,El),d) ) ) ) ),
    inference(rewrite,[status(thm)],]) ).

tff(211,plain,
    ( ~ ! [Morphism: $i,Dom: $i,Cod: $i] :
          ( ~ morphism(Morphism,Dom,Cod)
          | ~ ( ( apply(Morphism,zero(Dom)) != zero(Cod) )
              | ~ ! [El: $i] :
                    ( ~ element(El,Dom)
                    | element(apply(Morphism,El),Cod) ) ) )
    | ~ morphism(f,a,d)
    | ~ ( ( apply(f,zero(a)) != zero(d) )
        | ~ ! [El: $i] :
              ( ~ element(El,a)
              | element(apply(f,El),d) ) ) ),
    inference(quant_inst,[status(thm)],]) ).

tff(212,plain,
    ( ~ ! [Morphism: $i,Dom: $i,Cod: $i] :
          ( ~ morphism(Morphism,Dom,Cod)
          | ~ ( ( apply(Morphism,zero(Dom)) != zero(Cod) )
              | ~ ! [El: $i] :
                    ( ~ element(El,Dom)
                    | element(apply(Morphism,El),Cod) ) ) )
    | ~ morphism(f,a,d)
    | ~ ( ( apply(f,zero(a)) != zero(d) )
        | ~ ! [El: $i] :
              ( ~ element(El,a)
              | element(apply(f,El),d) ) ) ),
    inference(modus_ponens,[status(thm)],[211,210]) ).

tff(213,plain,
    ~ ( ( apply(f,zero(a)) != zero(d) )
      | ~ ! [El: $i] :
            ( ~ element(El,a)
            | element(apply(f,El),d) ) ),
    inference(unit_resolution,[status(thm)],[212,22,193]) ).

tff(214,plain,
    ( ( apply(f,zero(a)) != zero(d) )
    | ~ ! [El: $i] :
          ( ~ element(El,a)
          | element(apply(f,El),d) )
    | ! [El: $i] :
        ( ~ element(El,a)
        | element(apply(f,El),d) ) ),
    inference(tautology,[status(thm)],]) ).

tff(215,plain,
    ! [El: $i] :
      ( ~ element(El,a)
      | element(apply(f,El),d) ),
    inference(unit_resolution,[status(thm)],[214,213]) ).

tff(216,plain,
    ( ( ~ ! [El: $i] :
            ( ~ element(El,a)
            | element(apply(f,El),d) )
      | ~ element(tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha),a)
      | element(apply(f,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha)),d) )
  <=> ( ~ ! [El: $i] :
            ( ~ element(El,a)
            | element(apply(f,El),d) )
      | ~ element(tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha),a)
      | element(apply(f,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha)),d) ) ),
    inference(rewrite,[status(thm)],]) ).

tff(217,plain,
    ( ~ ! [El: $i] :
          ( ~ element(El,a)
          | element(apply(f,El),d) )
    | ~ element(tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha),a)
    | element(apply(f,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha)),d) ),
    inference(quant_inst,[status(thm)],]) ).

tff(218,plain,
    ( ~ ! [El: $i] :
          ( ~ element(El,a)
          | element(apply(f,El),d) )
    | ~ element(tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha),a)
    | element(apply(f,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha)),d) ),
    inference(modus_ponens,[status(thm)],[217,216]) ).

tff(219,plain,
    element(apply(f,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha)),d),
    inference(unit_resolution,[status(thm)],[218,215,187]) ).

tff(220,plain,
    ( injection(gamma)
  <=> injection(gamma) ),
    inference(rewrite,[status(thm)],]) ).

tff(221,axiom,
    injection(gamma),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',gamma_injection) ).

tff(222,plain,
    injection(gamma),
    inference(modus_ponens,[status(thm)],[221,220]) ).

tff(223,plain,
    ( ( ~ ! [Morphism: $i,Dom: $i,Cod: $i] :
            ( ~ morphism(Morphism,Dom,Cod)
            | ~ injection(Morphism)
            | ! [El: $i] :
                ( ( El = zero(Dom) )
                | ~ element(El,Dom)
                | ( apply(Morphism,El) != zero(Cod) ) ) )
      | ~ morphism(gamma,d,e)
      | ~ injection(gamma)
      | ! [El: $i] :
          ( ( El = zero(d) )
          | ~ element(El,d)
          | ( apply(gamma,El) != zero(e) ) ) )
  <=> ( ~ ! [Morphism: $i,Dom: $i,Cod: $i] :
            ( ~ morphism(Morphism,Dom,Cod)
            | ~ injection(Morphism)
            | ! [El: $i] :
                ( ( El = zero(Dom) )
                | ~ element(El,Dom)
                | ( apply(Morphism,El) != zero(Cod) ) ) )
      | ~ morphism(gamma,d,e)
      | ~ injection(gamma)
      | ! [El: $i] :
          ( ( El = zero(d) )
          | ~ element(El,d)
          | ( apply(gamma,El) != zero(e) ) ) ) ),
    inference(rewrite,[status(thm)],]) ).

tff(224,plain,
    ( ~ ! [Morphism: $i,Dom: $i,Cod: $i] :
          ( ~ morphism(Morphism,Dom,Cod)
          | ~ injection(Morphism)
          | ! [El: $i] :
              ( ( El = zero(Dom) )
              | ~ element(El,Dom)
              | ( apply(Morphism,El) != zero(Cod) ) ) )
    | ~ morphism(gamma,d,e)
    | ~ injection(gamma)
    | ! [El: $i] :
        ( ( El = zero(d) )
        | ~ element(El,d)
        | ( apply(gamma,El) != zero(e) ) ) ),
    inference(quant_inst,[status(thm)],]) ).

tff(225,plain,
    ( ~ ! [Morphism: $i,Dom: $i,Cod: $i] :
          ( ~ morphism(Morphism,Dom,Cod)
          | ~ injection(Morphism)
          | ! [El: $i] :
              ( ( El = zero(Dom) )
              | ~ element(El,Dom)
              | ( apply(Morphism,El) != zero(Cod) ) ) )
    | ~ morphism(gamma,d,e)
    | ~ injection(gamma)
    | ! [El: $i] :
        ( ( El = zero(d) )
        | ~ element(El,d)
        | ( apply(gamma,El) != zero(e) ) ) ),
    inference(modus_ponens,[status(thm)],[224,223]) ).

tff(226,plain,
    ! [El: $i] :
      ( ( El = zero(d) )
      | ~ element(El,d)
      | ( apply(gamma,El) != zero(e) ) ),
    inference(unit_resolution,[status(thm)],[225,164,196,222]) ).

tff(227,plain,
    ( ( ~ ! [El: $i] :
            ( ( El = zero(d) )
            | ~ element(El,d)
            | ( apply(gamma,El) != zero(e) ) )
      | ( apply(f,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha)) = zero(d) )
      | ~ element(apply(f,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha)),d)
      | ( apply(gamma,apply(f,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha))) != zero(e) ) )
  <=> ( ~ ! [El: $i] :
            ( ( El = zero(d) )
            | ~ element(El,d)
            | ( apply(gamma,El) != zero(e) ) )
      | ( apply(f,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha)) = zero(d) )
      | ~ element(apply(f,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha)),d)
      | ( apply(gamma,apply(f,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha))) != zero(e) ) ) ),
    inference(rewrite,[status(thm)],]) ).

tff(228,plain,
    ( ~ ! [El: $i] :
          ( ( El = zero(d) )
          | ~ element(El,d)
          | ( apply(gamma,El) != zero(e) ) )
    | ( apply(f,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha)) = zero(d) )
    | ~ element(apply(f,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha)),d)
    | ( apply(gamma,apply(f,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha))) != zero(e) ) ),
    inference(quant_inst,[status(thm)],]) ).

tff(229,plain,
    ( ~ ! [El: $i] :
          ( ( El = zero(d) )
          | ~ element(El,d)
          | ( apply(gamma,El) != zero(e) ) )
    | ( apply(f,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha)) = zero(d) )
    | ~ element(apply(f,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha)),d)
    | ( apply(gamma,apply(f,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha))) != zero(e) ) ),
    inference(modus_ponens,[status(thm)],[228,227]) ).

tff(230,plain,
    apply(f,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha)) = zero(d),
    inference(unit_resolution,[status(thm)],[229,226,219,209]) ).

tff(231,plain,
    ( injection(f)
  <=> injection(f) ),
    inference(rewrite,[status(thm)],]) ).

tff(232,axiom,
    injection(f),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',f_injection) ).

tff(233,plain,
    injection(f),
    inference(modus_ponens,[status(thm)],[232,231]) ).

tff(234,plain,
    ( ( ~ ! [Morphism: $i,Dom: $i,Cod: $i] :
            ( ~ morphism(Morphism,Dom,Cod)
            | ~ injection(Morphism)
            | ! [El: $i] :
                ( ( El = zero(Dom) )
                | ~ element(El,Dom)
                | ( apply(Morphism,El) != zero(Cod) ) ) )
      | ~ morphism(f,a,d)
      | ~ injection(f)
      | ! [El: $i] :
          ( ( El = zero(a) )
          | ~ element(El,a)
          | ( apply(f,El) != zero(d) ) ) )
  <=> ( ~ ! [Morphism: $i,Dom: $i,Cod: $i] :
            ( ~ morphism(Morphism,Dom,Cod)
            | ~ injection(Morphism)
            | ! [El: $i] :
                ( ( El = zero(Dom) )
                | ~ element(El,Dom)
                | ( apply(Morphism,El) != zero(Cod) ) ) )
      | ~ morphism(f,a,d)
      | ~ injection(f)
      | ! [El: $i] :
          ( ( El = zero(a) )
          | ~ element(El,a)
          | ( apply(f,El) != zero(d) ) ) ) ),
    inference(rewrite,[status(thm)],]) ).

tff(235,plain,
    ( ~ ! [Morphism: $i,Dom: $i,Cod: $i] :
          ( ~ morphism(Morphism,Dom,Cod)
          | ~ injection(Morphism)
          | ! [El: $i] :
              ( ( El = zero(Dom) )
              | ~ element(El,Dom)
              | ( apply(Morphism,El) != zero(Cod) ) ) )
    | ~ morphism(f,a,d)
    | ~ injection(f)
    | ! [El: $i] :
        ( ( El = zero(a) )
        | ~ element(El,a)
        | ( apply(f,El) != zero(d) ) ) ),
    inference(quant_inst,[status(thm)],]) ).

tff(236,plain,
    ( ~ ! [Morphism: $i,Dom: $i,Cod: $i] :
          ( ~ morphism(Morphism,Dom,Cod)
          | ~ injection(Morphism)
          | ! [El: $i] :
              ( ( El = zero(Dom) )
              | ~ element(El,Dom)
              | ( apply(Morphism,El) != zero(Cod) ) ) )
    | ~ morphism(f,a,d)
    | ~ injection(f)
    | ! [El: $i] :
        ( ( El = zero(a) )
        | ~ element(El,a)
        | ( apply(f,El) != zero(d) ) ) ),
    inference(modus_ponens,[status(thm)],[235,234]) ).

tff(237,plain,
    ! [El: $i] :
      ( ( El = zero(a) )
      | ~ element(El,a)
      | ( apply(f,El) != zero(d) ) ),
    inference(unit_resolution,[status(thm)],[236,164,193,233]) ).

tff(238,plain,
    ( ( ~ ! [El: $i] :
            ( ( El = zero(a) )
            | ~ element(El,a)
            | ( apply(f,El) != zero(d) ) )
      | ~ element(tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha),a)
      | ( tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha) = zero(a) )
      | ( apply(f,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha)) != zero(d) ) )
  <=> ( ~ ! [El: $i] :
            ( ( El = zero(a) )
            | ~ element(El,a)
            | ( apply(f,El) != zero(d) ) )
      | ~ element(tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha),a)
      | ( tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha) = zero(a) )
      | ( apply(f,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha)) != zero(d) ) ) ),
    inference(rewrite,[status(thm)],]) ).

tff(239,plain,
    ( ( ( tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha) = zero(a) )
      | ~ element(tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha),a)
      | ( apply(f,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha)) != zero(d) ) )
  <=> ( ~ element(tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha),a)
      | ( tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha) = zero(a) )
      | ( apply(f,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha)) != zero(d) ) ) ),
    inference(rewrite,[status(thm)],]) ).

tff(240,plain,
    ( ( ~ ! [El: $i] :
            ( ( El = zero(a) )
            | ~ element(El,a)
            | ( apply(f,El) != zero(d) ) )
      | ( tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha) = zero(a) )
      | ~ element(tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha),a)
      | ( apply(f,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha)) != zero(d) ) )
  <=> ( ~ ! [El: $i] :
            ( ( El = zero(a) )
            | ~ element(El,a)
            | ( apply(f,El) != zero(d) ) )
      | ~ element(tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha),a)
      | ( tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha) = zero(a) )
      | ( apply(f,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha)) != zero(d) ) ) ),
    inference(monotonicity,[status(thm)],[239]) ).

tff(241,plain,
    ( ( ~ ! [El: $i] :
            ( ( El = zero(a) )
            | ~ element(El,a)
            | ( apply(f,El) != zero(d) ) )
      | ( tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha) = zero(a) )
      | ~ element(tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha),a)
      | ( apply(f,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha)) != zero(d) ) )
  <=> ( ~ ! [El: $i] :
            ( ( El = zero(a) )
            | ~ element(El,a)
            | ( apply(f,El) != zero(d) ) )
      | ~ element(tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha),a)
      | ( tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha) = zero(a) )
      | ( apply(f,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha)) != zero(d) ) ) ),
    inference(transitivity,[status(thm)],[240,238]) ).

tff(242,plain,
    ( ~ ! [El: $i] :
          ( ( El = zero(a) )
          | ~ element(El,a)
          | ( apply(f,El) != zero(d) ) )
    | ( tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha) = zero(a) )
    | ~ element(tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha),a)
    | ( apply(f,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha)) != zero(d) ) ),
    inference(quant_inst,[status(thm)],]) ).

tff(243,plain,
    ( ~ ! [El: $i] :
          ( ( El = zero(a) )
          | ~ element(El,a)
          | ( apply(f,El) != zero(d) ) )
    | ~ element(tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha),a)
    | ( tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha) = zero(a) )
    | ( apply(f,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha)) != zero(d) ) ),
    inference(modus_ponens,[status(thm)],[242,241]) ).

tff(244,plain,
    ( ( tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha) = zero(a) )
    | ( apply(f,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha)) != zero(d) ) ),
    inference(unit_resolution,[status(thm)],[243,237,187]) ).

tff(245,plain,
    tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha) = zero(a),
    inference(unit_resolution,[status(thm)],[244,230]) ).

tff(246,plain,
    apply(alpha,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha)) = apply(alpha,zero(a)),
    inference(monotonicity,[status(thm)],[245]) ).

tff(247,plain,
    tptp_fun_El_8(e,b,g) = apply(alpha,tptp_fun_ElDom_4(tptp_fun_El_8(e,b,g),a,alpha)),
    inference(symmetry,[status(thm)],[184]) ).

tff(248,plain,
    tptp_fun_El_8(e,b,g) = zero(b),
    inference(transitivity,[status(thm)],[247,246,28]) ).

tff(249,plain,
    ( ( tptp_fun_El_8(e,b,g) = zero(b) )
    | ~ element(tptp_fun_El_8(e,b,g),b)
    | ( apply(g,tptp_fun_El_8(e,b,g)) != zero(e) )
    | ( tptp_fun_El_8(e,b,g) != zero(b) ) ),
    inference(tautology,[status(thm)],]) ).

tff(250,plain,
    tptp_fun_El_8(e,b,g) != zero(b),
    inference(unit_resolution,[status(thm)],[249,54]) ).

tff(251,plain,
    $false,
    inference(unit_resolution,[status(thm)],[250,248]) ).

%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.11/0.12  % Problem  : HAL001+2 : TPTP v8.1.0. Released v2.6.0.
% 0.11/0.13  % Command  : z3_tptp -proof -model -t:%d -file:%s
% 0.12/0.34  % Computer : n021.cluster.edu
% 0.12/0.34  % Model    : x86_64 x86_64
% 0.12/0.34  % CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.12/0.34  % Memory   : 8042.1875MB
% 0.12/0.34  % OS       : Linux 3.10.0-693.el7.x86_64
% 0.12/0.34  % CPULimit : 300
% 0.12/0.34  % WCLimit  : 300
% 0.12/0.34  % DateTime : Wed Aug 31 21:31:12 EDT 2022
% 0.12/0.34  % CPUTime  : 
% 0.12/0.34  Z3tptp [4.8.9.0] (c) 2006-20**. Microsoft Corp.
% 0.12/0.34  Usage: tptp [options] [-file:]file
% 0.12/0.34    -h, -?       prints this message.
% 0.12/0.34    -smt2        print SMT-LIB2 benchmark.
% 0.12/0.34    -m, -model   generate model.
% 0.12/0.34    -p, -proof   generate proof.
% 0.12/0.34    -c, -core    generate unsat core of named formulas.
% 0.12/0.34    -st, -statistics display statistics.
% 0.12/0.34    -t:timeout   set timeout (in second).
% 0.12/0.34    -smt2status  display status in smt2 format instead of SZS.
% 0.12/0.34    -check_status check the status produced by Z3 against annotation in benchmark.
% 0.12/0.34    -<param>:<value> configuration parameter and value.
% 0.12/0.34    -o:<output-file> file to place output in.
% 0.19/0.43  % SZS status Theorem
% 0.19/0.43  % SZS output start Proof
% See solution above
%------------------------------------------------------------------------------