TSTP Solution File: ALG251^1 by Zipperpin---2.1.9999

View Problem - Process Solution

%------------------------------------------------------------------------------
% File     : Zipperpin---2.1.9999
% Problem  : ALG251^1 : TPTP v8.1.2. Bugfixed v5.2.0.
% Transfm  : NO INFORMATION
% Format   : NO INFORMATION
% Command  : python3 /export/starexec/sandbox2/solver/bin/portfolio.lams.parallel.py %s %d /export/starexec/sandbox2/tmp/tmp.O7AbLhuUNj true

% Computer : n014.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 : Wed Aug 30 17:12:27 EDT 2023

% Result   : Theorem 49.01s 6.98s
% Output   : Refutation 49.01s
% Verified : 
% SZS Type : Refutation
%            Derivation depth      :   41
%            Number of leaves      :   98
% Syntax   : Number of formulae    :  170 (  64 unt;  42 typ;   0 def)
%            Number of atoms       : 1704 ( 390 equ;  43 cnn)
%            Maximal formula atoms :   88 (  13 avg)
%            Number of connectives : 5267 ( 121   ~;  17   |;   0   &;3389   @)
%                                         (   0 <=>; 925  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   40 (   9 avg)
%            Number of types       :    3 (   2 usr)
%            Number of type conns  :   92 (  92   >;   0   *;   0   +;   0  <<)
%            Number of symbols     :   45 (  40 usr;  34 con; 0-2 aty)
%                                         ( 815  !!;   0  ??;   0 @@+;   0 @@-)
%            Number of variables   : 1086 ( 834   ^; 252   !;   0   ?;1086   :)

% Comments : 
%------------------------------------------------------------------------------
thf(term_type,type,
    term: $tType ).

thf(subst_type,type,
    subst: $tType ).

thf(axmap_type,type,
    axmap: $o ).

thf(axclos_type,type,
    axclos: $o ).

thf(lam_type,type,
    lam: term > term ).

thf(lamnotap_type,type,
    lamnotap: $o ).

thf(axvarcons_type,type,
    axvarcons: $o ).

thf(pushprop_gthm_type,type,
    pushprop_gthm: $o ).

thf('#l_lift15327_type',type,
    '#l_lift15327': term > $o ).

thf(push_type,type,
    push: term > subst > subst ).

thf('#sk48_type',type,
    '#sk48': ( term > $o ) > term ).

thf(axshiftcons_type,type,
    axshiftcons: $o ).

thf(axapp_type,type,
    axapp: $o ).

thf(shinj_type,type,
    shinj: $o ).

thf('#sk39_type',type,
    '#sk39': term ).

thf('#sk10_type',type,
    '#sk10': ( term > $o ) > term ).

thf(one_type,type,
    one: term ).

thf(id_type,type,
    id: subst ).

thf(comp_type,type,
    comp: subst > subst > subst ).

thf(axvarid_type,type,
    axvarid: $o ).

thf(axvarshift_type,type,
    axvarshift: $o ).

thf(sh_type,type,
    sh: subst ).

thf(laminj_type,type,
    laminj: $o ).

thf(ulamvarind_type,type,
    ulamvarind: $o ).

thf('#sk49_type',type,
    '#sk49': subst ).

thf(apinj2_type,type,
    apinj2: $o ).

thf(ulamvarsh_type,type,
    ulamvarsh: $o ).

thf('#sk30_type',type,
    '#sk30': term > $o ).

thf(lamnotvar_type,type,
    lamnotvar: $o ).

thf(apnotvar_type,type,
    apnotvar: $o ).

thf(pushprop_type,type,
    pushprop: $o ).

thf(sub_type,type,
    sub: term > subst > term ).

thf(apinj1_type,type,
    apinj1: $o ).

thf(axidl_type,type,
    axidl: $o ).

thf(ap_type,type,
    ap: term > term > term ).

thf(var_type,type,
    var: term > $o ).

thf(axassoc_type,type,
    axassoc: $o ).

thf(axidr_type,type,
    axidr: $o ).

thf(axabs_type,type,
    axabs: $o ).

thf(ulamvar1_type,type,
    ulamvar1: $o ).

thf(induction_type,type,
    induction: $o ).

thf(axscons_type,type,
    axscons: $o ).

thf(pushprop_gthm,axiom,
    ( pushprop_gthm
    = ( axapp
     => ( axvarcons
       => ( axvarid
         => ( axabs
           => ( axclos
             => ( axidl
               => ( axshiftcons
                 => ( axassoc
                   => ( axmap
                     => ( axidr
                       => ( axvarshift
                         => ( axscons
                           => ( ulamvar1
                             => ( ulamvarsh
                               => ( ulamvarind
                                 => ( apinj1
                                   => ( apinj2
                                     => ( laminj
                                       => ( shinj
                                         => ( lamnotap
                                           => ( apnotvar
                                             => ( lamnotvar
                                               => ( induction
                                                 => pushprop ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ).

thf('0',plain,
    ( pushprop_gthm
    = ( axapp
     => ( axvarcons
       => ( axvarid
         => ( axabs
           => ( axclos
             => ( axidl
               => ( axshiftcons
                 => ( axassoc
                   => ( axmap
                     => ( axidr
                       => ( axvarshift
                         => ( axscons
                           => ( ulamvar1
                             => ( ulamvarsh
                               => ( ulamvarind
                                 => ( apinj1
                                   => ( apinj2
                                     => ( laminj
                                       => ( shinj
                                         => ( lamnotap
                                           => ( apnotvar
                                             => ( lamnotvar
                                               => ( induction
                                                 => pushprop ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    define([status(thm)]) ).

thf(pushprop,axiom,
    ( pushprop
    = ( ! [P: term > $o,A: term,M: subst] :
          ( ! [B: term] :
              ( ( var @ B )
             => ( P @ ( sub @ B @ M ) ) )
         => ( ( P @ A )
           => ! [B: term] :
                ( ( var @ B )
               => ( P @ ( sub @ B @ ( push @ A @ M ) ) ) ) ) ) ) ) ).

thf('1',plain,
    ( pushprop
    = ( ! [X4: term > $o,X6: term,X8: subst] :
          ( ! [X10: term] :
              ( ( var @ X10 )
             => ( X4 @ ( sub @ X10 @ X8 ) ) )
         => ( ( X4 @ X6 )
           => ! [X12: term] :
                ( ( var @ X12 )
               => ( X4 @ ( sub @ X12 @ ( push @ X6 @ X8 ) ) ) ) ) ) ) ),
    define([status(thm)]) ).

thf(induction,axiom,
    ( induction
    = ( ! [P: term > $o] :
          ( ! [A: term] :
              ( ( var @ A )
             => ( P @ A ) )
         => ( ! [A: term,B: term] :
                ( ( P @ A )
               => ( ( P @ B )
                 => ( P @ ( ap @ A @ B ) ) ) )
           => ( ! [A: term] :
                  ( ( P @ A )
                 => ( P @ ( lam @ A ) ) )
             => ! [A: term] : ( P @ A ) ) ) ) ) ) ).

thf('2',plain,
    ( induction
    = ( ! [X4: term > $o] :
          ( ! [X6: term] :
              ( ( var @ X6 )
             => ( X4 @ X6 ) )
         => ( ! [X8: term,X10: term] :
                ( ( X4 @ X8 )
               => ( ( X4 @ X10 )
                 => ( X4 @ ( ap @ X8 @ X10 ) ) ) )
           => ( ! [X12: term] :
                  ( ( X4 @ X12 )
                 => ( X4 @ ( lam @ X12 ) ) )
             => ! [X14: term] : ( X4 @ X14 ) ) ) ) ) ),
    define([status(thm)]) ).

thf(lamnotvar,axiom,
    ( lamnotvar
    = ( ! [A: term] :
          ~ ( var @ ( lam @ A ) ) ) ) ).

thf('3',plain,
    ( lamnotvar
    = ( ! [X4: term] :
          ~ ( var @ ( lam @ X4 ) ) ) ),
    define([status(thm)]) ).

thf(apnotvar,axiom,
    ( apnotvar
    = ( ! [A: term,B: term] :
          ~ ( var @ ( ap @ A @ B ) ) ) ) ).

thf('4',plain,
    ( apnotvar
    = ( ! [X4: term,X6: term] :
          ~ ( var @ ( ap @ X4 @ X6 ) ) ) ),
    define([status(thm)]) ).

thf(lamnotap,axiom,
    ( lamnotap
    = ( ! [A: term,B: term,C: term] :
          ( ( lam @ A )
         != ( ap @ B @ C ) ) ) ) ).

thf('5',plain,
    ( lamnotap
    = ( ! [X4: term,X6: term,X8: term] :
          ( ( lam @ X4 )
         != ( ap @ X6 @ X8 ) ) ) ),
    define([status(thm)]) ).

thf(shinj,axiom,
    ( shinj
    = ( ! [A: term,B: term] :
          ( ( ( sub @ A @ sh )
            = ( sub @ B @ sh ) )
         => ( A = B ) ) ) ) ).

thf('6',plain,
    ( shinj
    = ( ! [X4: term,X6: term] :
          ( ( ( sub @ X4 @ sh )
            = ( sub @ X6 @ sh ) )
         => ( X4 = X6 ) ) ) ),
    define([status(thm)]) ).

thf(laminj,axiom,
    ( laminj
    = ( ! [A: term,B: term] :
          ( ( ( lam @ A )
            = ( lam @ B ) )
         => ( A = B ) ) ) ) ).

thf('7',plain,
    ( laminj
    = ( ! [X4: term,X6: term] :
          ( ( ( lam @ X4 )
            = ( lam @ X6 ) )
         => ( X4 = X6 ) ) ) ),
    define([status(thm)]) ).

thf(apinj2,axiom,
    ( apinj2
    = ( ! [A: term,B: term,C: term,D: term] :
          ( ( ( ap @ A @ C )
            = ( ap @ B @ D ) )
         => ( C = D ) ) ) ) ).

thf('8',plain,
    ( apinj2
    = ( ! [X4: term,X6: term,X8: term,X10: term] :
          ( ( ( ap @ X4 @ X8 )
            = ( ap @ X6 @ X10 ) )
         => ( X8 = X10 ) ) ) ),
    define([status(thm)]) ).

thf(apinj1,axiom,
    ( apinj1
    = ( ! [A: term,B: term,C: term,D: term] :
          ( ( ( ap @ A @ C )
            = ( ap @ B @ D ) )
         => ( A = B ) ) ) ) ).

thf('9',plain,
    ( apinj1
    = ( ! [X4: term,X6: term,X8: term,X10: term] :
          ( ( ( ap @ X4 @ X8 )
            = ( ap @ X6 @ X10 ) )
         => ( X4 = X6 ) ) ) ),
    define([status(thm)]) ).

thf(ulamvarind,axiom,
    ( ulamvarind
    = ( ! [P: term > $o] :
          ( ( P @ one )
         => ( ! [A: term] :
                ( ( var @ A )
               => ( ( P @ A )
                 => ( P @ ( sub @ A @ sh ) ) ) )
           => ! [A: term] :
                ( ( var @ A )
               => ( P @ A ) ) ) ) ) ) ).

thf('10',plain,
    ( ulamvarind
    = ( ! [X4: term > $o] :
          ( ( X4 @ one )
         => ( ! [X6: term] :
                ( ( var @ X6 )
               => ( ( X4 @ X6 )
                 => ( X4 @ ( sub @ X6 @ sh ) ) ) )
           => ! [X8: term] :
                ( ( var @ X8 )
               => ( X4 @ X8 ) ) ) ) ) ),
    define([status(thm)]) ).

thf(ulamvarsh,axiom,
    ( ulamvarsh
    = ( ! [A: term] :
          ( ( var @ A )
         => ( var @ ( sub @ A @ sh ) ) ) ) ) ).

thf('11',plain,
    ( ulamvarsh
    = ( ! [X4: term] :
          ( ( var @ X4 )
         => ( var @ ( sub @ X4 @ sh ) ) ) ) ),
    define([status(thm)]) ).

thf(ulamvar1,axiom,
    ( ulamvar1
    = ( var @ one ) ) ).

thf('12',plain,
    ( ulamvar1
    = ( var @ one ) ),
    inference(simplify_rw_rule,[status(thm)],[ulamvar1]) ).

thf('13',plain,
    ( ulamvar1
    = ( var @ one ) ),
    define([status(thm)]) ).

thf(axscons,axiom,
    ( axscons
    = ( ! [M: subst] :
          ( ( push @ ( sub @ one @ M ) @ ( comp @ sh @ M ) )
          = M ) ) ) ).

thf('14',plain,
    ( axscons
    = ( ! [X4: subst] :
          ( ( push @ ( sub @ one @ X4 ) @ ( comp @ sh @ X4 ) )
          = X4 ) ) ),
    define([status(thm)]) ).

thf(axvarshift,axiom,
    ( axvarshift
    = ( ( push @ one @ sh )
      = id ) ) ).

thf('15',plain,
    ( axvarshift
    = ( ( push @ one @ sh )
      = id ) ),
    define([status(thm)]) ).

thf(axidr,axiom,
    ( axidr
    = ( ! [M: subst] :
          ( ( comp @ M @ id )
          = M ) ) ) ).

thf('16',plain,
    ( axidr
    = ( ! [X4: subst] :
          ( ( comp @ X4 @ id )
          = X4 ) ) ),
    define([status(thm)]) ).

thf(axmap,axiom,
    ( axmap
    = ( ! [A: term,M: subst,N: subst] :
          ( ( comp @ ( push @ A @ M ) @ N )
          = ( push @ ( sub @ A @ N ) @ ( comp @ M @ N ) ) ) ) ) ).

thf('17',plain,
    ( axmap
    = ( ! [X4: term,X6: subst,X8: subst] :
          ( ( comp @ ( push @ X4 @ X6 ) @ X8 )
          = ( push @ ( sub @ X4 @ X8 ) @ ( comp @ X6 @ X8 ) ) ) ) ),
    define([status(thm)]) ).

thf(axassoc,axiom,
    ( axassoc
    = ( ! [M: subst,N: subst,K: subst] :
          ( ( comp @ ( comp @ M @ N ) @ K )
          = ( comp @ M @ ( comp @ N @ K ) ) ) ) ) ).

thf('18',plain,
    ( axassoc
    = ( ! [X4: subst,X6: subst,X8: subst] :
          ( ( comp @ ( comp @ X4 @ X6 ) @ X8 )
          = ( comp @ X4 @ ( comp @ X6 @ X8 ) ) ) ) ),
    define([status(thm)]) ).

thf(axshiftcons,axiom,
    ( axshiftcons
    = ( ! [A: term,M: subst] :
          ( ( comp @ sh @ ( push @ A @ M ) )
          = M ) ) ) ).

thf('19',plain,
    ( axshiftcons
    = ( ! [X4: term,X6: subst] :
          ( ( comp @ sh @ ( push @ X4 @ X6 ) )
          = X6 ) ) ),
    define([status(thm)]) ).

thf(axidl,axiom,
    ( axidl
    = ( ! [M: subst] :
          ( ( comp @ id @ M )
          = M ) ) ) ).

thf('20',plain,
    ( axidl
    = ( ! [X4: subst] :
          ( ( comp @ id @ X4 )
          = X4 ) ) ),
    define([status(thm)]) ).

thf(axclos,axiom,
    ( axclos
    = ( ! [A: term,M: subst,N: subst] :
          ( ( sub @ ( sub @ A @ M ) @ N )
          = ( sub @ A @ ( comp @ M @ N ) ) ) ) ) ).

thf('21',plain,
    ( axclos
    = ( ! [X4: term,X6: subst,X8: subst] :
          ( ( sub @ ( sub @ X4 @ X6 ) @ X8 )
          = ( sub @ X4 @ ( comp @ X6 @ X8 ) ) ) ) ),
    define([status(thm)]) ).

thf(axabs,axiom,
    ( axabs
    = ( ! [A: term,M: subst] :
          ( ( sub @ ( lam @ A ) @ M )
          = ( lam @ ( sub @ A @ ( push @ one @ ( comp @ M @ sh ) ) ) ) ) ) ) ).

thf('22',plain,
    ( axabs
    = ( ! [X4: term,X6: subst] :
          ( ( sub @ ( lam @ X4 ) @ X6 )
          = ( lam @ ( sub @ X4 @ ( push @ one @ ( comp @ X6 @ sh ) ) ) ) ) ) ),
    define([status(thm)]) ).

thf(axvarid,axiom,
    ( axvarid
    = ( ! [A: term] :
          ( ( sub @ A @ id )
          = A ) ) ) ).

thf('23',plain,
    ( axvarid
    = ( ! [X4: term] :
          ( ( sub @ X4 @ id )
          = X4 ) ) ),
    define([status(thm)]) ).

thf(axvarcons,axiom,
    ( axvarcons
    = ( ! [A: term,M: subst] :
          ( ( sub @ one @ ( push @ A @ M ) )
          = A ) ) ) ).

thf('24',plain,
    ( axvarcons
    = ( ! [X4: term,X6: subst] :
          ( ( sub @ one @ ( push @ X4 @ X6 ) )
          = X4 ) ) ),
    define([status(thm)]) ).

thf(axapp,axiom,
    ( axapp
    = ( ! [A: term,B: term,M: subst] :
          ( ( sub @ ( ap @ A @ B ) @ M )
          = ( ap @ ( sub @ A @ M ) @ ( sub @ B @ M ) ) ) ) ) ).

thf('25',plain,
    ( axapp
    = ( ! [X4: term,X6: term,X8: subst] :
          ( ( sub @ ( ap @ X4 @ X6 ) @ X8 )
          = ( ap @ ( sub @ X4 @ X8 ) @ ( sub @ X6 @ X8 ) ) ) ) ),
    define([status(thm)]) ).

thf(thm,conjecture,
    pushprop_gthm ).

thf(zf_stmt_0,conjecture,
    ( ! [X4: term,X6: term,X8: subst] :
        ( ( sub @ ( ap @ X4 @ X6 ) @ X8 )
        = ( ap @ ( sub @ X4 @ X8 ) @ ( sub @ X6 @ X8 ) ) )
   => ( ! [X10: term,X12: subst] :
          ( ( sub @ one @ ( push @ X10 @ X12 ) )
          = X10 )
     => ( ! [X14: term] :
            ( ( sub @ X14 @ id )
            = X14 )
       => ( ! [X16: term,X18: subst] :
              ( ( sub @ ( lam @ X16 ) @ X18 )
              = ( lam @ ( sub @ X16 @ ( push @ one @ ( comp @ X18 @ sh ) ) ) ) )
         => ( ! [X20: term,X22: subst,X24: subst] :
                ( ( sub @ ( sub @ X20 @ X22 ) @ X24 )
                = ( sub @ X20 @ ( comp @ X22 @ X24 ) ) )
           => ( ! [X26: subst] :
                  ( ( comp @ id @ X26 )
                  = X26 )
             => ( ! [X28: term,X30: subst] :
                    ( ( comp @ sh @ ( push @ X28 @ X30 ) )
                    = X30 )
               => ( ! [X32: subst,X34: subst,X36: subst] :
                      ( ( comp @ ( comp @ X32 @ X34 ) @ X36 )
                      = ( comp @ X32 @ ( comp @ X34 @ X36 ) ) )
                 => ( ! [X38: term,X40: subst,X42: subst] :
                        ( ( comp @ ( push @ X38 @ X40 ) @ X42 )
                        = ( push @ ( sub @ X38 @ X42 ) @ ( comp @ X40 @ X42 ) ) )
                   => ( ! [X44: subst] :
                          ( ( comp @ X44 @ id )
                          = X44 )
                     => ( ( ( push @ one @ sh )
                          = id )
                       => ( ! [X46: subst] :
                              ( ( push @ ( sub @ one @ X46 ) @ ( comp @ sh @ X46 ) )
                              = X46 )
                         => ( ( var @ one )
                           => ( ! [X48: term] :
                                  ( ( var @ X48 )
                                 => ( var @ ( sub @ X48 @ sh ) ) )
                             => ( ! [X50: term > $o] :
                                    ( ( X50 @ one )
                                   => ( ! [X52: term] :
                                          ( ( var @ X52 )
                                         => ( ( X50 @ X52 )
                                           => ( X50 @ ( sub @ X52 @ sh ) ) ) )
                                     => ! [X54: term] :
                                          ( ( var @ X54 )
                                         => ( X50 @ X54 ) ) ) )
                               => ( ! [X56: term,X58: term,X60: term,X62: term] :
                                      ( ( ( ap @ X56 @ X60 )
                                        = ( ap @ X58 @ X62 ) )
                                     => ( X56 = X58 ) )
                                 => ( ! [X64: term,X66: term,X68: term,X70: term] :
                                        ( ( ( ap @ X64 @ X68 )
                                          = ( ap @ X66 @ X70 ) )
                                       => ( X68 = X70 ) )
                                   => ( ! [X72: term,X74: term] :
                                          ( ( ( lam @ X72 )
                                            = ( lam @ X74 ) )
                                         => ( X72 = X74 ) )
                                     => ( ! [X76: term,X78: term] :
                                            ( ( ( sub @ X76 @ sh )
                                              = ( sub @ X78 @ sh ) )
                                           => ( X76 = X78 ) )
                                       => ( ! [X80: term,X82: term,X84: term] :
                                              ( ( lam @ X80 )
                                             != ( ap @ X82 @ X84 ) )
                                         => ( ! [X86: term,X88: term] :
                                                ~ ( var @ ( ap @ X86 @ X88 ) )
                                           => ( ! [X90: term] :
                                                  ~ ( var @ ( lam @ X90 ) )
                                             => ( ! [X92: term > $o] :
                                                    ( ! [X94: term] :
                                                        ( ( var @ X94 )
                                                       => ( X92 @ X94 ) )
                                                   => ( ! [X96: term,X98: term] :
                                                          ( ( X92 @ X96 )
                                                         => ( ( X92 @ X98 )
                                                           => ( X92 @ ( ap @ X96 @ X98 ) ) ) )
                                                     => ( ! [X100: term] :
                                                            ( ( X92 @ X100 )
                                                           => ( X92 @ ( lam @ X100 ) ) )
                                                       => ! [X102: term] : ( X92 @ X102 ) ) ) )
                                               => ! [X104: term > $o,X106: term,X108: subst] :
                                                    ( ! [X110: term] :
                                                        ( ( var @ X110 )
                                                       => ( X104 @ ( sub @ X110 @ X108 ) ) )
                                                   => ( ( X104 @ X106 )
                                                     => ! [X112: term] :
                                                          ( ( var @ X112 )
                                                         => ( X104 @ ( sub @ X112 @ ( push @ X106 @ X108 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ).

thf(zf_stmt_1,negated_conjecture,
    ~ ( ! [X4: term,X6: term,X8: subst] :
          ( ( sub @ ( ap @ X4 @ X6 ) @ X8 )
          = ( ap @ ( sub @ X4 @ X8 ) @ ( sub @ X6 @ X8 ) ) )
     => ( ! [X10: term,X12: subst] :
            ( ( sub @ one @ ( push @ X10 @ X12 ) )
            = X10 )
       => ( ! [X14: term] :
              ( ( sub @ X14 @ id )
              = X14 )
         => ( ! [X16: term,X18: subst] :
                ( ( sub @ ( lam @ X16 ) @ X18 )
                = ( lam @ ( sub @ X16 @ ( push @ one @ ( comp @ X18 @ sh ) ) ) ) )
           => ( ! [X20: term,X22: subst,X24: subst] :
                  ( ( sub @ ( sub @ X20 @ X22 ) @ X24 )
                  = ( sub @ X20 @ ( comp @ X22 @ X24 ) ) )
             => ( ! [X26: subst] :
                    ( ( comp @ id @ X26 )
                    = X26 )
               => ( ! [X28: term,X30: subst] :
                      ( ( comp @ sh @ ( push @ X28 @ X30 ) )
                      = X30 )
                 => ( ! [X32: subst,X34: subst,X36: subst] :
                        ( ( comp @ ( comp @ X32 @ X34 ) @ X36 )
                        = ( comp @ X32 @ ( comp @ X34 @ X36 ) ) )
                   => ( ! [X38: term,X40: subst,X42: subst] :
                          ( ( comp @ ( push @ X38 @ X40 ) @ X42 )
                          = ( push @ ( sub @ X38 @ X42 ) @ ( comp @ X40 @ X42 ) ) )
                     => ( ! [X44: subst] :
                            ( ( comp @ X44 @ id )
                            = X44 )
                       => ( ( ( push @ one @ sh )
                            = id )
                         => ( ! [X46: subst] :
                                ( ( push @ ( sub @ one @ X46 ) @ ( comp @ sh @ X46 ) )
                                = X46 )
                           => ( ( var @ one )
                             => ( ! [X48: term] :
                                    ( ( var @ X48 )
                                   => ( var @ ( sub @ X48 @ sh ) ) )
                               => ( ! [X50: term > $o] :
                                      ( ( X50 @ one )
                                     => ( ! [X52: term] :
                                            ( ( var @ X52 )
                                           => ( ( X50 @ X52 )
                                             => ( X50 @ ( sub @ X52 @ sh ) ) ) )
                                       => ! [X54: term] :
                                            ( ( var @ X54 )
                                           => ( X50 @ X54 ) ) ) )
                                 => ( ! [X56: term,X58: term,X60: term,X62: term] :
                                        ( ( ( ap @ X56 @ X60 )
                                          = ( ap @ X58 @ X62 ) )
                                       => ( X56 = X58 ) )
                                   => ( ! [X64: term,X66: term,X68: term,X70: term] :
                                          ( ( ( ap @ X64 @ X68 )
                                            = ( ap @ X66 @ X70 ) )
                                         => ( X68 = X70 ) )
                                     => ( ! [X72: term,X74: term] :
                                            ( ( ( lam @ X72 )
                                              = ( lam @ X74 ) )
                                           => ( X72 = X74 ) )
                                       => ( ! [X76: term,X78: term] :
                                              ( ( ( sub @ X76 @ sh )
                                                = ( sub @ X78 @ sh ) )
                                             => ( X76 = X78 ) )
                                         => ( ! [X80: term,X82: term,X84: term] :
                                                ( ( lam @ X80 )
                                               != ( ap @ X82 @ X84 ) )
                                           => ( ! [X86: term,X88: term] :
                                                  ~ ( var @ ( ap @ X86 @ X88 ) )
                                             => ( ! [X90: term] :
                                                    ~ ( var @ ( lam @ X90 ) )
                                               => ( ! [X92: term > $o] :
                                                      ( ! [X94: term] :
                                                          ( ( var @ X94 )
                                                         => ( X92 @ X94 ) )
                                                     => ( ! [X96: term,X98: term] :
                                                            ( ( X92 @ X96 )
                                                           => ( ( X92 @ X98 )
                                                             => ( X92 @ ( ap @ X96 @ X98 ) ) ) )
                                                       => ( ! [X100: term] :
                                                              ( ( X92 @ X100 )
                                                             => ( X92 @ ( lam @ X100 ) ) )
                                                         => ! [X102: term] : ( X92 @ X102 ) ) ) )
                                                 => ! [X104: term > $o,X106: term,X108: subst] :
                                                      ( ! [X110: term] :
                                                          ( ( var @ X110 )
                                                         => ( X104 @ ( sub @ X110 @ X108 ) ) )
                                                     => ( ( X104 @ X106 )
                                                       => ! [X112: term] :
                                                            ( ( var @ X112 )
                                                           => ( X104 @ ( sub @ X112 @ ( push @ X106 @ X108 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference('cnf.neg',[status(esa)],[zf_stmt_0]) ).

thf(zip_derived_cl0,plain,
    ~ ( ( !!
        @ ^ [Y0: term] :
            ( !!
            @ ^ [Y1: term] :
                ( !!
                @ ^ [Y2: subst] :
                    ( ( sub @ ( ap @ Y0 @ Y1 ) @ Y2 )
                    = ( ap @ ( sub @ Y0 @ Y2 ) @ ( sub @ Y1 @ Y2 ) ) ) ) ) )
     => ( ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: subst] :
                  ( ( sub @ one @ ( push @ Y0 @ Y1 ) )
                  = Y0 ) ) )
       => ( ( !!
            @ ^ [Y0: term] :
                ( ( sub @ Y0 @ id )
                = Y0 ) )
         => ( ( !!
              @ ^ [Y0: term] :
                  ( !!
                  @ ^ [Y1: subst] :
                      ( ( sub @ ( lam @ Y0 ) @ Y1 )
                      = ( lam @ ( sub @ Y0 @ ( push @ one @ ( comp @ Y1 @ sh ) ) ) ) ) ) )
           => ( ( !!
                @ ^ [Y0: term] :
                    ( !!
                    @ ^ [Y1: subst] :
                        ( !!
                        @ ^ [Y2: subst] :
                            ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                            = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
             => ( ( !!
                  @ ^ [Y0: subst] :
                      ( ( comp @ id @ Y0 )
                      = Y0 ) )
               => ( ( !!
                    @ ^ [Y0: term] :
                        ( !!
                        @ ^ [Y1: subst] :
                            ( ( comp @ sh @ ( push @ Y0 @ Y1 ) )
                            = Y1 ) ) )
                 => ( ( !!
                      @ ^ [Y0: subst] :
                          ( !!
                          @ ^ [Y1: subst] :
                              ( !!
                              @ ^ [Y2: subst] :
                                  ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                  = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                   => ( ( !!
                        @ ^ [Y0: term] :
                            ( !!
                            @ ^ [Y1: subst] :
                                ( !!
                                @ ^ [Y2: subst] :
                                    ( ( comp @ ( push @ Y0 @ Y1 ) @ Y2 )
                                    = ( push @ ( sub @ Y0 @ Y2 ) @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                     => ( ( !!
                          @ ^ [Y0: subst] :
                              ( ( comp @ Y0 @ id )
                              = Y0 ) )
                       => ( ( ( push @ one @ sh )
                            = id )
                         => ( ( !!
                              @ ^ [Y0: subst] :
                                  ( ( push @ ( sub @ one @ Y0 ) @ ( comp @ sh @ Y0 ) )
                                  = Y0 ) )
                           => ( ( var @ one )
                             => ( ( !!
                                  @ ^ [Y0: term] :
                                      ( ( var @ Y0 )
                                     => ( var @ ( sub @ Y0 @ sh ) ) ) )
                               => ( ( !!
                                    @ ^ [Y0: term > $o] :
                                        ( ( Y0 @ one )
                                       => ( ( !!
                                            @ ^ [Y1: term] :
                                                ( ( var @ Y1 )
                                               => ( ( Y0 @ Y1 )
                                                 => ( Y0 @ ( sub @ Y1 @ sh ) ) ) ) )
                                         => ( !!
                                            @ ^ [Y1: term] :
                                                ( ( var @ Y1 )
                                               => ( Y0 @ Y1 ) ) ) ) ) )
                                 => ( ( !!
                                      @ ^ [Y0: term] :
                                          ( !!
                                          @ ^ [Y1: term] :
                                              ( !!
                                              @ ^ [Y2: term] :
                                                  ( !!
                                                  @ ^ [Y3: term] :
                                                      ( ( ( ap @ Y0 @ Y2 )
                                                        = ( ap @ Y1 @ Y3 ) )
                                                     => ( Y0 = Y1 ) ) ) ) ) )
                                   => ( ( !!
                                        @ ^ [Y0: term] :
                                            ( !!
                                            @ ^ [Y1: term] :
                                                ( !!
                                                @ ^ [Y2: term] :
                                                    ( !!
                                                    @ ^ [Y3: term] :
                                                        ( ( ( ap @ Y0 @ Y2 )
                                                          = ( ap @ Y1 @ Y3 ) )
                                                       => ( Y2 = Y3 ) ) ) ) ) )
                                     => ( ( !!
                                          @ ^ [Y0: term] :
                                              ( !!
                                              @ ^ [Y1: term] :
                                                  ( ( ( lam @ Y0 )
                                                    = ( lam @ Y1 ) )
                                                 => ( Y0 = Y1 ) ) ) )
                                       => ( ( !!
                                            @ ^ [Y0: term] :
                                                ( !!
                                                @ ^ [Y1: term] :
                                                    ( ( ( sub @ Y0 @ sh )
                                                      = ( sub @ Y1 @ sh ) )
                                                   => ( Y0 = Y1 ) ) ) )
                                         => ( ( !!
                                              @ ^ [Y0: term] :
                                                  ( !!
                                                  @ ^ [Y1: term] :
                                                      ( !!
                                                      @ ^ [Y2: term] :
                                                          ( ( lam @ Y0 )
                                                         != ( ap @ Y1 @ Y2 ) ) ) ) )
                                           => ( ( !!
                                                @ ^ [Y0: term] :
                                                    ( !!
                                                    @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
                                             => ( ( !!
                                                  @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
                                               => ( ( !!
                                                    @ ^ [Y0: term > $o] :
                                                        ( ( !!
                                                          @ ^ [Y1: term] :
                                                              ( ( var @ Y1 )
                                                             => ( Y0 @ Y1 ) ) )
                                                       => ( ( !!
                                                            @ ^ [Y1: term] :
                                                                ( !!
                                                                @ ^ [Y2: term] :
                                                                    ( ( Y0 @ Y1 )
                                                                   => ( ( Y0 @ Y2 )
                                                                     => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                                         => ( ( !!
                                                              @ ^ [Y1: term] :
                                                                  ( ( Y0 @ Y1 )
                                                                 => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                           => ( !!
                                                              @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                                 => ( !!
                                                    @ ^ [Y0: term > $o] :
                                                        ( !!
                                                        @ ^ [Y1: term] :
                                                            ( !!
                                                            @ ^ [Y2: subst] :
                                                                ( ( !!
                                                                  @ ^ [Y3: term] :
                                                                      ( ( var @ Y3 )
                                                                     => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                               => ( ( Y0 @ Y1 )
                                                                 => ( !!
                                                                    @ ^ [Y3: term] :
                                                                        ( ( var @ Y3 )
                                                                       => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(cnf,[status(esa)],[zf_stmt_1]) ).

thf(zip_derived_cl2,plain,
    ~ ( ( !!
        @ ^ [Y0: term] :
            ( !!
            @ ^ [Y1: subst] :
                ( ( sub @ one @ ( push @ Y0 @ Y1 ) )
                = Y0 ) ) )
     => ( ( !!
          @ ^ [Y0: term] :
              ( ( sub @ Y0 @ id )
              = Y0 ) )
       => ( ( !!
            @ ^ [Y0: term] :
                ( !!
                @ ^ [Y1: subst] :
                    ( ( sub @ ( lam @ Y0 ) @ Y1 )
                    = ( lam @ ( sub @ Y0 @ ( push @ one @ ( comp @ Y1 @ sh ) ) ) ) ) ) )
         => ( ( !!
              @ ^ [Y0: term] :
                  ( !!
                  @ ^ [Y1: subst] :
                      ( !!
                      @ ^ [Y2: subst] :
                          ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                          = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
           => ( ( !!
                @ ^ [Y0: subst] :
                    ( ( comp @ id @ Y0 )
                    = Y0 ) )
             => ( ( !!
                  @ ^ [Y0: term] :
                      ( !!
                      @ ^ [Y1: subst] :
                          ( ( comp @ sh @ ( push @ Y0 @ Y1 ) )
                          = Y1 ) ) )
               => ( ( !!
                    @ ^ [Y0: subst] :
                        ( !!
                        @ ^ [Y1: subst] :
                            ( !!
                            @ ^ [Y2: subst] :
                                ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                 => ( ( !!
                      @ ^ [Y0: term] :
                          ( !!
                          @ ^ [Y1: subst] :
                              ( !!
                              @ ^ [Y2: subst] :
                                  ( ( comp @ ( push @ Y0 @ Y1 ) @ Y2 )
                                  = ( push @ ( sub @ Y0 @ Y2 ) @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                   => ( ( !!
                        @ ^ [Y0: subst] :
                            ( ( comp @ Y0 @ id )
                            = Y0 ) )
                     => ( ( ( push @ one @ sh )
                          = id )
                       => ( ( !!
                            @ ^ [Y0: subst] :
                                ( ( push @ ( sub @ one @ Y0 ) @ ( comp @ sh @ Y0 ) )
                                = Y0 ) )
                         => ( ( var @ one )
                           => ( ( !!
                                @ ^ [Y0: term] :
                                    ( ( var @ Y0 )
                                   => ( var @ ( sub @ Y0 @ sh ) ) ) )
                             => ( ( !!
                                  @ ^ [Y0: term > $o] :
                                      ( ( Y0 @ one )
                                     => ( ( !!
                                          @ ^ [Y1: term] :
                                              ( ( var @ Y1 )
                                             => ( ( Y0 @ Y1 )
                                               => ( Y0 @ ( sub @ Y1 @ sh ) ) ) ) )
                                       => ( !!
                                          @ ^ [Y1: term] :
                                              ( ( var @ Y1 )
                                             => ( Y0 @ Y1 ) ) ) ) ) )
                               => ( ( !!
                                    @ ^ [Y0: term] :
                                        ( !!
                                        @ ^ [Y1: term] :
                                            ( !!
                                            @ ^ [Y2: term] :
                                                ( !!
                                                @ ^ [Y3: term] :
                                                    ( ( ( ap @ Y0 @ Y2 )
                                                      = ( ap @ Y1 @ Y3 ) )
                                                   => ( Y0 = Y1 ) ) ) ) ) )
                                 => ( ( !!
                                      @ ^ [Y0: term] :
                                          ( !!
                                          @ ^ [Y1: term] :
                                              ( !!
                                              @ ^ [Y2: term] :
                                                  ( !!
                                                  @ ^ [Y3: term] :
                                                      ( ( ( ap @ Y0 @ Y2 )
                                                        = ( ap @ Y1 @ Y3 ) )
                                                     => ( Y2 = Y3 ) ) ) ) ) )
                                   => ( ( !!
                                        @ ^ [Y0: term] :
                                            ( !!
                                            @ ^ [Y1: term] :
                                                ( ( ( lam @ Y0 )
                                                  = ( lam @ Y1 ) )
                                               => ( Y0 = Y1 ) ) ) )
                                     => ( ( !!
                                          @ ^ [Y0: term] :
                                              ( !!
                                              @ ^ [Y1: term] :
                                                  ( ( ( sub @ Y0 @ sh )
                                                    = ( sub @ Y1 @ sh ) )
                                                 => ( Y0 = Y1 ) ) ) )
                                       => ( ( !!
                                            @ ^ [Y0: term] :
                                                ( !!
                                                @ ^ [Y1: term] :
                                                    ( !!
                                                    @ ^ [Y2: term] :
                                                        ( ( lam @ Y0 )
                                                       != ( ap @ Y1 @ Y2 ) ) ) ) )
                                         => ( ( !!
                                              @ ^ [Y0: term] :
                                                  ( !!
                                                  @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
                                           => ( ( !!
                                                @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
                                             => ( ( !!
                                                  @ ^ [Y0: term > $o] :
                                                      ( ( !!
                                                        @ ^ [Y1: term] :
                                                            ( ( var @ Y1 )
                                                           => ( Y0 @ Y1 ) ) )
                                                     => ( ( !!
                                                          @ ^ [Y1: term] :
                                                              ( !!
                                                              @ ^ [Y2: term] :
                                                                  ( ( Y0 @ Y1 )
                                                                 => ( ( Y0 @ Y2 )
                                                                   => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                                       => ( ( !!
                                                            @ ^ [Y1: term] :
                                                                ( ( Y0 @ Y1 )
                                                               => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                         => ( !!
                                                            @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                               => ( !!
                                                  @ ^ [Y0: term > $o] :
                                                      ( !!
                                                      @ ^ [Y1: term] :
                                                          ( !!
                                                          @ ^ [Y2: subst] :
                                                              ( ( !!
                                                                @ ^ [Y3: term] :
                                                                    ( ( var @ Y3 )
                                                                   => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                             => ( ( Y0 @ Y1 )
                                                               => ( !!
                                                                  @ ^ [Y3: term] :
                                                                      ( ( var @ Y3 )
                                                                     => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl0]) ).

thf(zip_derived_cl5,plain,
    ~ ( ( !!
        @ ^ [Y0: term] :
            ( ( sub @ Y0 @ id )
            = Y0 ) )
     => ( ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: subst] :
                  ( ( sub @ ( lam @ Y0 ) @ Y1 )
                  = ( lam @ ( sub @ Y0 @ ( push @ one @ ( comp @ Y1 @ sh ) ) ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: term] :
                ( !!
                @ ^ [Y1: subst] :
                    ( !!
                    @ ^ [Y2: subst] :
                        ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                        = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
         => ( ( !!
              @ ^ [Y0: subst] :
                  ( ( comp @ id @ Y0 )
                  = Y0 ) )
           => ( ( !!
                @ ^ [Y0: term] :
                    ( !!
                    @ ^ [Y1: subst] :
                        ( ( comp @ sh @ ( push @ Y0 @ Y1 ) )
                        = Y1 ) ) )
             => ( ( !!
                  @ ^ [Y0: subst] :
                      ( !!
                      @ ^ [Y1: subst] :
                          ( !!
                          @ ^ [Y2: subst] :
                              ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                              = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
               => ( ( !!
                    @ ^ [Y0: term] :
                        ( !!
                        @ ^ [Y1: subst] :
                            ( !!
                            @ ^ [Y2: subst] :
                                ( ( comp @ ( push @ Y0 @ Y1 ) @ Y2 )
                                = ( push @ ( sub @ Y0 @ Y2 ) @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                 => ( ( !!
                      @ ^ [Y0: subst] :
                          ( ( comp @ Y0 @ id )
                          = Y0 ) )
                   => ( ( ( push @ one @ sh )
                        = id )
                     => ( ( !!
                          @ ^ [Y0: subst] :
                              ( ( push @ ( sub @ one @ Y0 ) @ ( comp @ sh @ Y0 ) )
                              = Y0 ) )
                       => ( ( var @ one )
                         => ( ( !!
                              @ ^ [Y0: term] :
                                  ( ( var @ Y0 )
                                 => ( var @ ( sub @ Y0 @ sh ) ) ) )
                           => ( ( !!
                                @ ^ [Y0: term > $o] :
                                    ( ( Y0 @ one )
                                   => ( ( !!
                                        @ ^ [Y1: term] :
                                            ( ( var @ Y1 )
                                           => ( ( Y0 @ Y1 )
                                             => ( Y0 @ ( sub @ Y1 @ sh ) ) ) ) )
                                     => ( !!
                                        @ ^ [Y1: term] :
                                            ( ( var @ Y1 )
                                           => ( Y0 @ Y1 ) ) ) ) ) )
                             => ( ( !!
                                  @ ^ [Y0: term] :
                                      ( !!
                                      @ ^ [Y1: term] :
                                          ( !!
                                          @ ^ [Y2: term] :
                                              ( !!
                                              @ ^ [Y3: term] :
                                                  ( ( ( ap @ Y0 @ Y2 )
                                                    = ( ap @ Y1 @ Y3 ) )
                                                 => ( Y0 = Y1 ) ) ) ) ) )
                               => ( ( !!
                                    @ ^ [Y0: term] :
                                        ( !!
                                        @ ^ [Y1: term] :
                                            ( !!
                                            @ ^ [Y2: term] :
                                                ( !!
                                                @ ^ [Y3: term] :
                                                    ( ( ( ap @ Y0 @ Y2 )
                                                      = ( ap @ Y1 @ Y3 ) )
                                                   => ( Y2 = Y3 ) ) ) ) ) )
                                 => ( ( !!
                                      @ ^ [Y0: term] :
                                          ( !!
                                          @ ^ [Y1: term] :
                                              ( ( ( lam @ Y0 )
                                                = ( lam @ Y1 ) )
                                             => ( Y0 = Y1 ) ) ) )
                                   => ( ( !!
                                        @ ^ [Y0: term] :
                                            ( !!
                                            @ ^ [Y1: term] :
                                                ( ( ( sub @ Y0 @ sh )
                                                  = ( sub @ Y1 @ sh ) )
                                               => ( Y0 = Y1 ) ) ) )
                                     => ( ( !!
                                          @ ^ [Y0: term] :
                                              ( !!
                                              @ ^ [Y1: term] :
                                                  ( !!
                                                  @ ^ [Y2: term] :
                                                      ( ( lam @ Y0 )
                                                     != ( ap @ Y1 @ Y2 ) ) ) ) )
                                       => ( ( !!
                                            @ ^ [Y0: term] :
                                                ( !!
                                                @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
                                         => ( ( !!
                                              @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
                                           => ( ( !!
                                                @ ^ [Y0: term > $o] :
                                                    ( ( !!
                                                      @ ^ [Y1: term] :
                                                          ( ( var @ Y1 )
                                                         => ( Y0 @ Y1 ) ) )
                                                   => ( ( !!
                                                        @ ^ [Y1: term] :
                                                            ( !!
                                                            @ ^ [Y2: term] :
                                                                ( ( Y0 @ Y1 )
                                                               => ( ( Y0 @ Y2 )
                                                                 => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                                     => ( ( !!
                                                          @ ^ [Y1: term] :
                                                              ( ( Y0 @ Y1 )
                                                             => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                       => ( !!
                                                          @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                             => ( !!
                                                @ ^ [Y0: term > $o] :
                                                    ( !!
                                                    @ ^ [Y1: term] :
                                                        ( !!
                                                        @ ^ [Y2: subst] :
                                                            ( ( !!
                                                              @ ^ [Y3: term] :
                                                                  ( ( var @ Y3 )
                                                                 => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                           => ( ( Y0 @ Y1 )
                                                             => ( !!
                                                                @ ^ [Y3: term] :
                                                                    ( ( var @ Y3 )
                                                                   => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl2]) ).

thf(zip_derived_cl9,plain,
    ~ ( ( !!
        @ ^ [Y0: term] :
            ( !!
            @ ^ [Y1: subst] :
                ( ( sub @ ( lam @ Y0 ) @ Y1 )
                = ( lam @ ( sub @ Y0 @ ( push @ one @ ( comp @ Y1 @ sh ) ) ) ) ) ) )
     => ( ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: subst] :
                  ( !!
                  @ ^ [Y2: subst] :
                      ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                      = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: subst] :
                ( ( comp @ id @ Y0 )
                = Y0 ) )
         => ( ( !!
              @ ^ [Y0: term] :
                  ( !!
                  @ ^ [Y1: subst] :
                      ( ( comp @ sh @ ( push @ Y0 @ Y1 ) )
                      = Y1 ) ) )
           => ( ( !!
                @ ^ [Y0: subst] :
                    ( !!
                    @ ^ [Y1: subst] :
                        ( !!
                        @ ^ [Y2: subst] :
                            ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                            = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
             => ( ( !!
                  @ ^ [Y0: term] :
                      ( !!
                      @ ^ [Y1: subst] :
                          ( !!
                          @ ^ [Y2: subst] :
                              ( ( comp @ ( push @ Y0 @ Y1 ) @ Y2 )
                              = ( push @ ( sub @ Y0 @ Y2 ) @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
               => ( ( !!
                    @ ^ [Y0: subst] :
                        ( ( comp @ Y0 @ id )
                        = Y0 ) )
                 => ( ( ( push @ one @ sh )
                      = id )
                   => ( ( !!
                        @ ^ [Y0: subst] :
                            ( ( push @ ( sub @ one @ Y0 ) @ ( comp @ sh @ Y0 ) )
                            = Y0 ) )
                     => ( ( var @ one )
                       => ( ( !!
                            @ ^ [Y0: term] :
                                ( ( var @ Y0 )
                               => ( var @ ( sub @ Y0 @ sh ) ) ) )
                         => ( ( !!
                              @ ^ [Y0: term > $o] :
                                  ( ( Y0 @ one )
                                 => ( ( !!
                                      @ ^ [Y1: term] :
                                          ( ( var @ Y1 )
                                         => ( ( Y0 @ Y1 )
                                           => ( Y0 @ ( sub @ Y1 @ sh ) ) ) ) )
                                   => ( !!
                                      @ ^ [Y1: term] :
                                          ( ( var @ Y1 )
                                         => ( Y0 @ Y1 ) ) ) ) ) )
                           => ( ( !!
                                @ ^ [Y0: term] :
                                    ( !!
                                    @ ^ [Y1: term] :
                                        ( !!
                                        @ ^ [Y2: term] :
                                            ( !!
                                            @ ^ [Y3: term] :
                                                ( ( ( ap @ Y0 @ Y2 )
                                                  = ( ap @ Y1 @ Y3 ) )
                                               => ( Y0 = Y1 ) ) ) ) ) )
                             => ( ( !!
                                  @ ^ [Y0: term] :
                                      ( !!
                                      @ ^ [Y1: term] :
                                          ( !!
                                          @ ^ [Y2: term] :
                                              ( !!
                                              @ ^ [Y3: term] :
                                                  ( ( ( ap @ Y0 @ Y2 )
                                                    = ( ap @ Y1 @ Y3 ) )
                                                 => ( Y2 = Y3 ) ) ) ) ) )
                               => ( ( !!
                                    @ ^ [Y0: term] :
                                        ( !!
                                        @ ^ [Y1: term] :
                                            ( ( ( lam @ Y0 )
                                              = ( lam @ Y1 ) )
                                           => ( Y0 = Y1 ) ) ) )
                                 => ( ( !!
                                      @ ^ [Y0: term] :
                                          ( !!
                                          @ ^ [Y1: term] :
                                              ( ( ( sub @ Y0 @ sh )
                                                = ( sub @ Y1 @ sh ) )
                                             => ( Y0 = Y1 ) ) ) )
                                   => ( ( !!
                                        @ ^ [Y0: term] :
                                            ( !!
                                            @ ^ [Y1: term] :
                                                ( !!
                                                @ ^ [Y2: term] :
                                                    ( ( lam @ Y0 )
                                                   != ( ap @ Y1 @ Y2 ) ) ) ) )
                                     => ( ( !!
                                          @ ^ [Y0: term] :
                                              ( !!
                                              @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
                                       => ( ( !!
                                            @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
                                         => ( ( !!
                                              @ ^ [Y0: term > $o] :
                                                  ( ( !!
                                                    @ ^ [Y1: term] :
                                                        ( ( var @ Y1 )
                                                       => ( Y0 @ Y1 ) ) )
                                                 => ( ( !!
                                                      @ ^ [Y1: term] :
                                                          ( !!
                                                          @ ^ [Y2: term] :
                                                              ( ( Y0 @ Y1 )
                                                             => ( ( Y0 @ Y2 )
                                                               => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                                   => ( ( !!
                                                        @ ^ [Y1: term] :
                                                            ( ( Y0 @ Y1 )
                                                           => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                     => ( !!
                                                        @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                           => ( !!
                                              @ ^ [Y0: term > $o] :
                                                  ( !!
                                                  @ ^ [Y1: term] :
                                                      ( !!
                                                      @ ^ [Y2: subst] :
                                                          ( ( !!
                                                            @ ^ [Y3: term] :
                                                                ( ( var @ Y3 )
                                                               => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                         => ( ( Y0 @ Y1 )
                                                           => ( !!
                                                              @ ^ [Y3: term] :
                                                                  ( ( var @ Y3 )
                                                                 => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl5]) ).

thf(zip_derived_cl14,plain,
    ~ ( ( !!
        @ ^ [Y0: term] :
            ( !!
            @ ^ [Y1: subst] :
                ( !!
                @ ^ [Y2: subst] :
                    ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                    = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
     => ( ( !!
          @ ^ [Y0: subst] :
              ( ( comp @ id @ Y0 )
              = Y0 ) )
       => ( ( !!
            @ ^ [Y0: term] :
                ( !!
                @ ^ [Y1: subst] :
                    ( ( comp @ sh @ ( push @ Y0 @ Y1 ) )
                    = Y1 ) ) )
         => ( ( !!
              @ ^ [Y0: subst] :
                  ( !!
                  @ ^ [Y1: subst] :
                      ( !!
                      @ ^ [Y2: subst] :
                          ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                          = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
           => ( ( !!
                @ ^ [Y0: term] :
                    ( !!
                    @ ^ [Y1: subst] :
                        ( !!
                        @ ^ [Y2: subst] :
                            ( ( comp @ ( push @ Y0 @ Y1 ) @ Y2 )
                            = ( push @ ( sub @ Y0 @ Y2 ) @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
             => ( ( !!
                  @ ^ [Y0: subst] :
                      ( ( comp @ Y0 @ id )
                      = Y0 ) )
               => ( ( ( push @ one @ sh )
                    = id )
                 => ( ( !!
                      @ ^ [Y0: subst] :
                          ( ( push @ ( sub @ one @ Y0 ) @ ( comp @ sh @ Y0 ) )
                          = Y0 ) )
                   => ( ( var @ one )
                     => ( ( !!
                          @ ^ [Y0: term] :
                              ( ( var @ Y0 )
                             => ( var @ ( sub @ Y0 @ sh ) ) ) )
                       => ( ( !!
                            @ ^ [Y0: term > $o] :
                                ( ( Y0 @ one )
                               => ( ( !!
                                    @ ^ [Y1: term] :
                                        ( ( var @ Y1 )
                                       => ( ( Y0 @ Y1 )
                                         => ( Y0 @ ( sub @ Y1 @ sh ) ) ) ) )
                                 => ( !!
                                    @ ^ [Y1: term] :
                                        ( ( var @ Y1 )
                                       => ( Y0 @ Y1 ) ) ) ) ) )
                         => ( ( !!
                              @ ^ [Y0: term] :
                                  ( !!
                                  @ ^ [Y1: term] :
                                      ( !!
                                      @ ^ [Y2: term] :
                                          ( !!
                                          @ ^ [Y3: term] :
                                              ( ( ( ap @ Y0 @ Y2 )
                                                = ( ap @ Y1 @ Y3 ) )
                                             => ( Y0 = Y1 ) ) ) ) ) )
                           => ( ( !!
                                @ ^ [Y0: term] :
                                    ( !!
                                    @ ^ [Y1: term] :
                                        ( !!
                                        @ ^ [Y2: term] :
                                            ( !!
                                            @ ^ [Y3: term] :
                                                ( ( ( ap @ Y0 @ Y2 )
                                                  = ( ap @ Y1 @ Y3 ) )
                                               => ( Y2 = Y3 ) ) ) ) ) )
                             => ( ( !!
                                  @ ^ [Y0: term] :
                                      ( !!
                                      @ ^ [Y1: term] :
                                          ( ( ( lam @ Y0 )
                                            = ( lam @ Y1 ) )
                                         => ( Y0 = Y1 ) ) ) )
                               => ( ( !!
                                    @ ^ [Y0: term] :
                                        ( !!
                                        @ ^ [Y1: term] :
                                            ( ( ( sub @ Y0 @ sh )
                                              = ( sub @ Y1 @ sh ) )
                                           => ( Y0 = Y1 ) ) ) )
                                 => ( ( !!
                                      @ ^ [Y0: term] :
                                          ( !!
                                          @ ^ [Y1: term] :
                                              ( !!
                                              @ ^ [Y2: term] :
                                                  ( ( lam @ Y0 )
                                                 != ( ap @ Y1 @ Y2 ) ) ) ) )
                                   => ( ( !!
                                        @ ^ [Y0: term] :
                                            ( !!
                                            @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
                                     => ( ( !!
                                          @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
                                       => ( ( !!
                                            @ ^ [Y0: term > $o] :
                                                ( ( !!
                                                  @ ^ [Y1: term] :
                                                      ( ( var @ Y1 )
                                                     => ( Y0 @ Y1 ) ) )
                                               => ( ( !!
                                                    @ ^ [Y1: term] :
                                                        ( !!
                                                        @ ^ [Y2: term] :
                                                            ( ( Y0 @ Y1 )
                                                           => ( ( Y0 @ Y2 )
                                                             => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                                 => ( ( !!
                                                      @ ^ [Y1: term] :
                                                          ( ( Y0 @ Y1 )
                                                         => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                   => ( !!
                                                      @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                         => ( !!
                                            @ ^ [Y0: term > $o] :
                                                ( !!
                                                @ ^ [Y1: term] :
                                                    ( !!
                                                    @ ^ [Y2: subst] :
                                                        ( ( !!
                                                          @ ^ [Y3: term] :
                                                              ( ( var @ Y3 )
                                                             => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                       => ( ( Y0 @ Y1 )
                                                         => ( !!
                                                            @ ^ [Y3: term] :
                                                                ( ( var @ Y3 )
                                                               => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl9]) ).

thf(zip_derived_cl20,plain,
    ~ ( ( !!
        @ ^ [Y0: subst] :
            ( ( comp @ id @ Y0 )
            = Y0 ) )
     => ( ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: subst] :
                  ( ( comp @ sh @ ( push @ Y0 @ Y1 ) )
                  = Y1 ) ) )
       => ( ( !!
            @ ^ [Y0: subst] :
                ( !!
                @ ^ [Y1: subst] :
                    ( !!
                    @ ^ [Y2: subst] :
                        ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                        = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
         => ( ( !!
              @ ^ [Y0: term] :
                  ( !!
                  @ ^ [Y1: subst] :
                      ( !!
                      @ ^ [Y2: subst] :
                          ( ( comp @ ( push @ Y0 @ Y1 ) @ Y2 )
                          = ( push @ ( sub @ Y0 @ Y2 ) @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
           => ( ( !!
                @ ^ [Y0: subst] :
                    ( ( comp @ Y0 @ id )
                    = Y0 ) )
             => ( ( ( push @ one @ sh )
                  = id )
               => ( ( !!
                    @ ^ [Y0: subst] :
                        ( ( push @ ( sub @ one @ Y0 ) @ ( comp @ sh @ Y0 ) )
                        = Y0 ) )
                 => ( ( var @ one )
                   => ( ( !!
                        @ ^ [Y0: term] :
                            ( ( var @ Y0 )
                           => ( var @ ( sub @ Y0 @ sh ) ) ) )
                     => ( ( !!
                          @ ^ [Y0: term > $o] :
                              ( ( Y0 @ one )
                             => ( ( !!
                                  @ ^ [Y1: term] :
                                      ( ( var @ Y1 )
                                     => ( ( Y0 @ Y1 )
                                       => ( Y0 @ ( sub @ Y1 @ sh ) ) ) ) )
                               => ( !!
                                  @ ^ [Y1: term] :
                                      ( ( var @ Y1 )
                                     => ( Y0 @ Y1 ) ) ) ) ) )
                       => ( ( !!
                            @ ^ [Y0: term] :
                                ( !!
                                @ ^ [Y1: term] :
                                    ( !!
                                    @ ^ [Y2: term] :
                                        ( !!
                                        @ ^ [Y3: term] :
                                            ( ( ( ap @ Y0 @ Y2 )
                                              = ( ap @ Y1 @ Y3 ) )
                                           => ( Y0 = Y1 ) ) ) ) ) )
                         => ( ( !!
                              @ ^ [Y0: term] :
                                  ( !!
                                  @ ^ [Y1: term] :
                                      ( !!
                                      @ ^ [Y2: term] :
                                          ( !!
                                          @ ^ [Y3: term] :
                                              ( ( ( ap @ Y0 @ Y2 )
                                                = ( ap @ Y1 @ Y3 ) )
                                             => ( Y2 = Y3 ) ) ) ) ) )
                           => ( ( !!
                                @ ^ [Y0: term] :
                                    ( !!
                                    @ ^ [Y1: term] :
                                        ( ( ( lam @ Y0 )
                                          = ( lam @ Y1 ) )
                                       => ( Y0 = Y1 ) ) ) )
                             => ( ( !!
                                  @ ^ [Y0: term] :
                                      ( !!
                                      @ ^ [Y1: term] :
                                          ( ( ( sub @ Y0 @ sh )
                                            = ( sub @ Y1 @ sh ) )
                                         => ( Y0 = Y1 ) ) ) )
                               => ( ( !!
                                    @ ^ [Y0: term] :
                                        ( !!
                                        @ ^ [Y1: term] :
                                            ( !!
                                            @ ^ [Y2: term] :
                                                ( ( lam @ Y0 )
                                               != ( ap @ Y1 @ Y2 ) ) ) ) )
                                 => ( ( !!
                                      @ ^ [Y0: term] :
                                          ( !!
                                          @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
                                   => ( ( !!
                                        @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
                                     => ( ( !!
                                          @ ^ [Y0: term > $o] :
                                              ( ( !!
                                                @ ^ [Y1: term] :
                                                    ( ( var @ Y1 )
                                                   => ( Y0 @ Y1 ) ) )
                                             => ( ( !!
                                                  @ ^ [Y1: term] :
                                                      ( !!
                                                      @ ^ [Y2: term] :
                                                          ( ( Y0 @ Y1 )
                                                         => ( ( Y0 @ Y2 )
                                                           => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                               => ( ( !!
                                                    @ ^ [Y1: term] :
                                                        ( ( Y0 @ Y1 )
                                                       => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                 => ( !!
                                                    @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                       => ( !!
                                          @ ^ [Y0: term > $o] :
                                              ( !!
                                              @ ^ [Y1: term] :
                                                  ( !!
                                                  @ ^ [Y2: subst] :
                                                      ( ( !!
                                                        @ ^ [Y3: term] :
                                                            ( ( var @ Y3 )
                                                           => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                     => ( ( Y0 @ Y1 )
                                                       => ( !!
                                                          @ ^ [Y3: term] :
                                                              ( ( var @ Y3 )
                                                             => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl14]) ).

thf(zip_derived_cl24,plain,
    ~ ( ( !!
        @ ^ [Y0: term] :
            ( !!
            @ ^ [Y1: subst] :
                ( ( comp @ sh @ ( push @ Y0 @ Y1 ) )
                = Y1 ) ) )
     => ( ( !!
          @ ^ [Y0: subst] :
              ( !!
              @ ^ [Y1: subst] :
                  ( !!
                  @ ^ [Y2: subst] :
                      ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                      = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: term] :
                ( !!
                @ ^ [Y1: subst] :
                    ( !!
                    @ ^ [Y2: subst] :
                        ( ( comp @ ( push @ Y0 @ Y1 ) @ Y2 )
                        = ( push @ ( sub @ Y0 @ Y2 ) @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
         => ( ( !!
              @ ^ [Y0: subst] :
                  ( ( comp @ Y0 @ id )
                  = Y0 ) )
           => ( ( ( push @ one @ sh )
                = id )
             => ( ( !!
                  @ ^ [Y0: subst] :
                      ( ( push @ ( sub @ one @ Y0 ) @ ( comp @ sh @ Y0 ) )
                      = Y0 ) )
               => ( ( var @ one )
                 => ( ( !!
                      @ ^ [Y0: term] :
                          ( ( var @ Y0 )
                         => ( var @ ( sub @ Y0 @ sh ) ) ) )
                   => ( ( !!
                        @ ^ [Y0: term > $o] :
                            ( ( Y0 @ one )
                           => ( ( !!
                                @ ^ [Y1: term] :
                                    ( ( var @ Y1 )
                                   => ( ( Y0 @ Y1 )
                                     => ( Y0 @ ( sub @ Y1 @ sh ) ) ) ) )
                             => ( !!
                                @ ^ [Y1: term] :
                                    ( ( var @ Y1 )
                                   => ( Y0 @ Y1 ) ) ) ) ) )
                     => ( ( !!
                          @ ^ [Y0: term] :
                              ( !!
                              @ ^ [Y1: term] :
                                  ( !!
                                  @ ^ [Y2: term] :
                                      ( !!
                                      @ ^ [Y3: term] :
                                          ( ( ( ap @ Y0 @ Y2 )
                                            = ( ap @ Y1 @ Y3 ) )
                                         => ( Y0 = Y1 ) ) ) ) ) )
                       => ( ( !!
                            @ ^ [Y0: term] :
                                ( !!
                                @ ^ [Y1: term] :
                                    ( !!
                                    @ ^ [Y2: term] :
                                        ( !!
                                        @ ^ [Y3: term] :
                                            ( ( ( ap @ Y0 @ Y2 )
                                              = ( ap @ Y1 @ Y3 ) )
                                           => ( Y2 = Y3 ) ) ) ) ) )
                         => ( ( !!
                              @ ^ [Y0: term] :
                                  ( !!
                                  @ ^ [Y1: term] :
                                      ( ( ( lam @ Y0 )
                                        = ( lam @ Y1 ) )
                                     => ( Y0 = Y1 ) ) ) )
                           => ( ( !!
                                @ ^ [Y0: term] :
                                    ( !!
                                    @ ^ [Y1: term] :
                                        ( ( ( sub @ Y0 @ sh )
                                          = ( sub @ Y1 @ sh ) )
                                       => ( Y0 = Y1 ) ) ) )
                             => ( ( !!
                                  @ ^ [Y0: term] :
                                      ( !!
                                      @ ^ [Y1: term] :
                                          ( !!
                                          @ ^ [Y2: term] :
                                              ( ( lam @ Y0 )
                                             != ( ap @ Y1 @ Y2 ) ) ) ) )
                               => ( ( !!
                                    @ ^ [Y0: term] :
                                        ( !!
                                        @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
                                 => ( ( !!
                                      @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
                                   => ( ( !!
                                        @ ^ [Y0: term > $o] :
                                            ( ( !!
                                              @ ^ [Y1: term] :
                                                  ( ( var @ Y1 )
                                                 => ( Y0 @ Y1 ) ) )
                                           => ( ( !!
                                                @ ^ [Y1: term] :
                                                    ( !!
                                                    @ ^ [Y2: term] :
                                                        ( ( Y0 @ Y1 )
                                                       => ( ( Y0 @ Y2 )
                                                         => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                             => ( ( !!
                                                  @ ^ [Y1: term] :
                                                      ( ( Y0 @ Y1 )
                                                     => ( Y0 @ ( lam @ Y1 ) ) ) )
                                               => ( !!
                                                  @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                     => ( !!
                                        @ ^ [Y0: term > $o] :
                                            ( !!
                                            @ ^ [Y1: term] :
                                                ( !!
                                                @ ^ [Y2: subst] :
                                                    ( ( !!
                                                      @ ^ [Y3: term] :
                                                          ( ( var @ Y3 )
                                                         => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                   => ( ( Y0 @ Y1 )
                                                     => ( !!
                                                        @ ^ [Y3: term] :
                                                            ( ( var @ Y3 )
                                                           => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl20]) ).

thf(zip_derived_cl29,plain,
    ~ ( ( !!
        @ ^ [Y0: subst] :
            ( !!
            @ ^ [Y1: subst] :
                ( !!
                @ ^ [Y2: subst] :
                    ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                    = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
     => ( ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: subst] :
                  ( !!
                  @ ^ [Y2: subst] :
                      ( ( comp @ ( push @ Y0 @ Y1 ) @ Y2 )
                      = ( push @ ( sub @ Y0 @ Y2 ) @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: subst] :
                ( ( comp @ Y0 @ id )
                = Y0 ) )
         => ( ( ( push @ one @ sh )
              = id )
           => ( ( !!
                @ ^ [Y0: subst] :
                    ( ( push @ ( sub @ one @ Y0 ) @ ( comp @ sh @ Y0 ) )
                    = Y0 ) )
             => ( ( var @ one )
               => ( ( !!
                    @ ^ [Y0: term] :
                        ( ( var @ Y0 )
                       => ( var @ ( sub @ Y0 @ sh ) ) ) )
                 => ( ( !!
                      @ ^ [Y0: term > $o] :
                          ( ( Y0 @ one )
                         => ( ( !!
                              @ ^ [Y1: term] :
                                  ( ( var @ Y1 )
                                 => ( ( Y0 @ Y1 )
                                   => ( Y0 @ ( sub @ Y1 @ sh ) ) ) ) )
                           => ( !!
                              @ ^ [Y1: term] :
                                  ( ( var @ Y1 )
                                 => ( Y0 @ Y1 ) ) ) ) ) )
                   => ( ( !!
                        @ ^ [Y0: term] :
                            ( !!
                            @ ^ [Y1: term] :
                                ( !!
                                @ ^ [Y2: term] :
                                    ( !!
                                    @ ^ [Y3: term] :
                                        ( ( ( ap @ Y0 @ Y2 )
                                          = ( ap @ Y1 @ Y3 ) )
                                       => ( Y0 = Y1 ) ) ) ) ) )
                     => ( ( !!
                          @ ^ [Y0: term] :
                              ( !!
                              @ ^ [Y1: term] :
                                  ( !!
                                  @ ^ [Y2: term] :
                                      ( !!
                                      @ ^ [Y3: term] :
                                          ( ( ( ap @ Y0 @ Y2 )
                                            = ( ap @ Y1 @ Y3 ) )
                                         => ( Y2 = Y3 ) ) ) ) ) )
                       => ( ( !!
                            @ ^ [Y0: term] :
                                ( !!
                                @ ^ [Y1: term] :
                                    ( ( ( lam @ Y0 )
                                      = ( lam @ Y1 ) )
                                   => ( Y0 = Y1 ) ) ) )
                         => ( ( !!
                              @ ^ [Y0: term] :
                                  ( !!
                                  @ ^ [Y1: term] :
                                      ( ( ( sub @ Y0 @ sh )
                                        = ( sub @ Y1 @ sh ) )
                                     => ( Y0 = Y1 ) ) ) )
                           => ( ( !!
                                @ ^ [Y0: term] :
                                    ( !!
                                    @ ^ [Y1: term] :
                                        ( !!
                                        @ ^ [Y2: term] :
                                            ( ( lam @ Y0 )
                                           != ( ap @ Y1 @ Y2 ) ) ) ) )
                             => ( ( !!
                                  @ ^ [Y0: term] :
                                      ( !!
                                      @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
                               => ( ( !!
                                    @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
                                 => ( ( !!
                                      @ ^ [Y0: term > $o] :
                                          ( ( !!
                                            @ ^ [Y1: term] :
                                                ( ( var @ Y1 )
                                               => ( Y0 @ Y1 ) ) )
                                         => ( ( !!
                                              @ ^ [Y1: term] :
                                                  ( !!
                                                  @ ^ [Y2: term] :
                                                      ( ( Y0 @ Y1 )
                                                     => ( ( Y0 @ Y2 )
                                                       => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                           => ( ( !!
                                                @ ^ [Y1: term] :
                                                    ( ( Y0 @ Y1 )
                                                   => ( Y0 @ ( lam @ Y1 ) ) ) )
                                             => ( !!
                                                @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                   => ( !!
                                      @ ^ [Y0: term > $o] :
                                          ( !!
                                          @ ^ [Y1: term] :
                                              ( !!
                                              @ ^ [Y2: subst] :
                                                  ( ( !!
                                                    @ ^ [Y3: term] :
                                                        ( ( var @ Y3 )
                                                       => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                 => ( ( Y0 @ Y1 )
                                                   => ( !!
                                                      @ ^ [Y3: term] :
                                                          ( ( var @ Y3 )
                                                         => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl24]) ).

thf(zip_derived_cl34,plain,
    ~ ( ( !!
        @ ^ [Y0: term] :
            ( !!
            @ ^ [Y1: subst] :
                ( !!
                @ ^ [Y2: subst] :
                    ( ( comp @ ( push @ Y0 @ Y1 ) @ Y2 )
                    = ( push @ ( sub @ Y0 @ Y2 ) @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
     => ( ( !!
          @ ^ [Y0: subst] :
              ( ( comp @ Y0 @ id )
              = Y0 ) )
       => ( ( ( push @ one @ sh )
            = id )
         => ( ( !!
              @ ^ [Y0: subst] :
                  ( ( push @ ( sub @ one @ Y0 ) @ ( comp @ sh @ Y0 ) )
                  = Y0 ) )
           => ( ( var @ one )
             => ( ( !!
                  @ ^ [Y0: term] :
                      ( ( var @ Y0 )
                     => ( var @ ( sub @ Y0 @ sh ) ) ) )
               => ( ( !!
                    @ ^ [Y0: term > $o] :
                        ( ( Y0 @ one )
                       => ( ( !!
                            @ ^ [Y1: term] :
                                ( ( var @ Y1 )
                               => ( ( Y0 @ Y1 )
                                 => ( Y0 @ ( sub @ Y1 @ sh ) ) ) ) )
                         => ( !!
                            @ ^ [Y1: term] :
                                ( ( var @ Y1 )
                               => ( Y0 @ Y1 ) ) ) ) ) )
                 => ( ( !!
                      @ ^ [Y0: term] :
                          ( !!
                          @ ^ [Y1: term] :
                              ( !!
                              @ ^ [Y2: term] :
                                  ( !!
                                  @ ^ [Y3: term] :
                                      ( ( ( ap @ Y0 @ Y2 )
                                        = ( ap @ Y1 @ Y3 ) )
                                     => ( Y0 = Y1 ) ) ) ) ) )
                   => ( ( !!
                        @ ^ [Y0: term] :
                            ( !!
                            @ ^ [Y1: term] :
                                ( !!
                                @ ^ [Y2: term] :
                                    ( !!
                                    @ ^ [Y3: term] :
                                        ( ( ( ap @ Y0 @ Y2 )
                                          = ( ap @ Y1 @ Y3 ) )
                                       => ( Y2 = Y3 ) ) ) ) ) )
                     => ( ( !!
                          @ ^ [Y0: term] :
                              ( !!
                              @ ^ [Y1: term] :
                                  ( ( ( lam @ Y0 )
                                    = ( lam @ Y1 ) )
                                 => ( Y0 = Y1 ) ) ) )
                       => ( ( !!
                            @ ^ [Y0: term] :
                                ( !!
                                @ ^ [Y1: term] :
                                    ( ( ( sub @ Y0 @ sh )
                                      = ( sub @ Y1 @ sh ) )
                                   => ( Y0 = Y1 ) ) ) )
                         => ( ( !!
                              @ ^ [Y0: term] :
                                  ( !!
                                  @ ^ [Y1: term] :
                                      ( !!
                                      @ ^ [Y2: term] :
                                          ( ( lam @ Y0 )
                                         != ( ap @ Y1 @ Y2 ) ) ) ) )
                           => ( ( !!
                                @ ^ [Y0: term] :
                                    ( !!
                                    @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
                             => ( ( !!
                                  @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
                               => ( ( !!
                                    @ ^ [Y0: term > $o] :
                                        ( ( !!
                                          @ ^ [Y1: term] :
                                              ( ( var @ Y1 )
                                             => ( Y0 @ Y1 ) ) )
                                       => ( ( !!
                                            @ ^ [Y1: term] :
                                                ( !!
                                                @ ^ [Y2: term] :
                                                    ( ( Y0 @ Y1 )
                                                   => ( ( Y0 @ Y2 )
                                                     => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                         => ( ( !!
                                              @ ^ [Y1: term] :
                                                  ( ( Y0 @ Y1 )
                                                 => ( Y0 @ ( lam @ Y1 ) ) ) )
                                           => ( !!
                                              @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                 => ( !!
                                    @ ^ [Y0: term > $o] :
                                        ( !!
                                        @ ^ [Y1: term] :
                                            ( !!
                                            @ ^ [Y2: subst] :
                                                ( ( !!
                                                  @ ^ [Y3: term] :
                                                      ( ( var @ Y3 )
                                                     => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                               => ( ( Y0 @ Y1 )
                                                 => ( !!
                                                    @ ^ [Y3: term] :
                                                        ( ( var @ Y3 )
                                                       => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl29]) ).

thf(zip_derived_cl39,plain,
    ~ ( ( !!
        @ ^ [Y0: subst] :
            ( ( comp @ Y0 @ id )
            = Y0 ) )
     => ( ( ( push @ one @ sh )
          = id )
       => ( ( !!
            @ ^ [Y0: subst] :
                ( ( push @ ( sub @ one @ Y0 ) @ ( comp @ sh @ Y0 ) )
                = Y0 ) )
         => ( ( var @ one )
           => ( ( !!
                @ ^ [Y0: term] :
                    ( ( var @ Y0 )
                   => ( var @ ( sub @ Y0 @ sh ) ) ) )
             => ( ( !!
                  @ ^ [Y0: term > $o] :
                      ( ( Y0 @ one )
                     => ( ( !!
                          @ ^ [Y1: term] :
                              ( ( var @ Y1 )
                             => ( ( Y0 @ Y1 )
                               => ( Y0 @ ( sub @ Y1 @ sh ) ) ) ) )
                       => ( !!
                          @ ^ [Y1: term] :
                              ( ( var @ Y1 )
                             => ( Y0 @ Y1 ) ) ) ) ) )
               => ( ( !!
                    @ ^ [Y0: term] :
                        ( !!
                        @ ^ [Y1: term] :
                            ( !!
                            @ ^ [Y2: term] :
                                ( !!
                                @ ^ [Y3: term] :
                                    ( ( ( ap @ Y0 @ Y2 )
                                      = ( ap @ Y1 @ Y3 ) )
                                   => ( Y0 = Y1 ) ) ) ) ) )
                 => ( ( !!
                      @ ^ [Y0: term] :
                          ( !!
                          @ ^ [Y1: term] :
                              ( !!
                              @ ^ [Y2: term] :
                                  ( !!
                                  @ ^ [Y3: term] :
                                      ( ( ( ap @ Y0 @ Y2 )
                                        = ( ap @ Y1 @ Y3 ) )
                                     => ( Y2 = Y3 ) ) ) ) ) )
                   => ( ( !!
                        @ ^ [Y0: term] :
                            ( !!
                            @ ^ [Y1: term] :
                                ( ( ( lam @ Y0 )
                                  = ( lam @ Y1 ) )
                               => ( Y0 = Y1 ) ) ) )
                     => ( ( !!
                          @ ^ [Y0: term] :
                              ( !!
                              @ ^ [Y1: term] :
                                  ( ( ( sub @ Y0 @ sh )
                                    = ( sub @ Y1 @ sh ) )
                                 => ( Y0 = Y1 ) ) ) )
                       => ( ( !!
                            @ ^ [Y0: term] :
                                ( !!
                                @ ^ [Y1: term] :
                                    ( !!
                                    @ ^ [Y2: term] :
                                        ( ( lam @ Y0 )
                                       != ( ap @ Y1 @ Y2 ) ) ) ) )
                         => ( ( !!
                              @ ^ [Y0: term] :
                                  ( !!
                                  @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
                           => ( ( !!
                                @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
                             => ( ( !!
                                  @ ^ [Y0: term > $o] :
                                      ( ( !!
                                        @ ^ [Y1: term] :
                                            ( ( var @ Y1 )
                                           => ( Y0 @ Y1 ) ) )
                                     => ( ( !!
                                          @ ^ [Y1: term] :
                                              ( !!
                                              @ ^ [Y2: term] :
                                                  ( ( Y0 @ Y1 )
                                                 => ( ( Y0 @ Y2 )
                                                   => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                       => ( ( !!
                                            @ ^ [Y1: term] :
                                                ( ( Y0 @ Y1 )
                                               => ( Y0 @ ( lam @ Y1 ) ) ) )
                                         => ( !!
                                            @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                               => ( !!
                                  @ ^ [Y0: term > $o] :
                                      ( !!
                                      @ ^ [Y1: term] :
                                          ( !!
                                          @ ^ [Y2: subst] :
                                              ( ( !!
                                                @ ^ [Y3: term] :
                                                    ( ( var @ Y3 )
                                                   => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                             => ( ( Y0 @ Y1 )
                                               => ( !!
                                                  @ ^ [Y3: term] :
                                                      ( ( var @ Y3 )
                                                     => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl34]) ).

thf(zip_derived_cl44,plain,
    ~ ( ( ( push @ one @ sh )
        = id )
     => ( ( !!
          @ ^ [Y0: subst] :
              ( ( push @ ( sub @ one @ Y0 ) @ ( comp @ sh @ Y0 ) )
              = Y0 ) )
       => ( ( var @ one )
         => ( ( !!
              @ ^ [Y0: term] :
                  ( ( var @ Y0 )
                 => ( var @ ( sub @ Y0 @ sh ) ) ) )
           => ( ( !!
                @ ^ [Y0: term > $o] :
                    ( ( Y0 @ one )
                   => ( ( !!
                        @ ^ [Y1: term] :
                            ( ( var @ Y1 )
                           => ( ( Y0 @ Y1 )
                             => ( Y0 @ ( sub @ Y1 @ sh ) ) ) ) )
                     => ( !!
                        @ ^ [Y1: term] :
                            ( ( var @ Y1 )
                           => ( Y0 @ Y1 ) ) ) ) ) )
             => ( ( !!
                  @ ^ [Y0: term] :
                      ( !!
                      @ ^ [Y1: term] :
                          ( !!
                          @ ^ [Y2: term] :
                              ( !!
                              @ ^ [Y3: term] :
                                  ( ( ( ap @ Y0 @ Y2 )
                                    = ( ap @ Y1 @ Y3 ) )
                                 => ( Y0 = Y1 ) ) ) ) ) )
               => ( ( !!
                    @ ^ [Y0: term] :
                        ( !!
                        @ ^ [Y1: term] :
                            ( !!
                            @ ^ [Y2: term] :
                                ( !!
                                @ ^ [Y3: term] :
                                    ( ( ( ap @ Y0 @ Y2 )
                                      = ( ap @ Y1 @ Y3 ) )
                                   => ( Y2 = Y3 ) ) ) ) ) )
                 => ( ( !!
                      @ ^ [Y0: term] :
                          ( !!
                          @ ^ [Y1: term] :
                              ( ( ( lam @ Y0 )
                                = ( lam @ Y1 ) )
                             => ( Y0 = Y1 ) ) ) )
                   => ( ( !!
                        @ ^ [Y0: term] :
                            ( !!
                            @ ^ [Y1: term] :
                                ( ( ( sub @ Y0 @ sh )
                                  = ( sub @ Y1 @ sh ) )
                               => ( Y0 = Y1 ) ) ) )
                     => ( ( !!
                          @ ^ [Y0: term] :
                              ( !!
                              @ ^ [Y1: term] :
                                  ( !!
                                  @ ^ [Y2: term] :
                                      ( ( lam @ Y0 )
                                     != ( ap @ Y1 @ Y2 ) ) ) ) )
                       => ( ( !!
                            @ ^ [Y0: term] :
                                ( !!
                                @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
                         => ( ( !!
                              @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
                           => ( ( !!
                                @ ^ [Y0: term > $o] :
                                    ( ( !!
                                      @ ^ [Y1: term] :
                                          ( ( var @ Y1 )
                                         => ( Y0 @ Y1 ) ) )
                                   => ( ( !!
                                        @ ^ [Y1: term] :
                                            ( !!
                                            @ ^ [Y2: term] :
                                                ( ( Y0 @ Y1 )
                                               => ( ( Y0 @ Y2 )
                                                 => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                     => ( ( !!
                                          @ ^ [Y1: term] :
                                              ( ( Y0 @ Y1 )
                                             => ( Y0 @ ( lam @ Y1 ) ) ) )
                                       => ( !!
                                          @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                             => ( !!
                                @ ^ [Y0: term > $o] :
                                    ( !!
                                    @ ^ [Y1: term] :
                                        ( !!
                                        @ ^ [Y2: subst] :
                                            ( ( !!
                                              @ ^ [Y3: term] :
                                                  ( ( var @ Y3 )
                                                 => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                           => ( ( Y0 @ Y1 )
                                             => ( !!
                                                @ ^ [Y3: term] :
                                                    ( ( var @ Y3 )
                                                   => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl39]) ).

thf(zip_derived_cl49,plain,
    ~ ( ( !!
        @ ^ [Y0: subst] :
            ( ( push @ ( sub @ one @ Y0 ) @ ( comp @ sh @ Y0 ) )
            = Y0 ) )
     => ( ( var @ one )
       => ( ( !!
            @ ^ [Y0: term] :
                ( ( var @ Y0 )
               => ( var @ ( sub @ Y0 @ sh ) ) ) )
         => ( ( !!
              @ ^ [Y0: term > $o] :
                  ( ( Y0 @ one )
                 => ( ( !!
                      @ ^ [Y1: term] :
                          ( ( var @ Y1 )
                         => ( ( Y0 @ Y1 )
                           => ( Y0 @ ( sub @ Y1 @ sh ) ) ) ) )
                   => ( !!
                      @ ^ [Y1: term] :
                          ( ( var @ Y1 )
                         => ( Y0 @ Y1 ) ) ) ) ) )
           => ( ( !!
                @ ^ [Y0: term] :
                    ( !!
                    @ ^ [Y1: term] :
                        ( !!
                        @ ^ [Y2: term] :
                            ( !!
                            @ ^ [Y3: term] :
                                ( ( ( ap @ Y0 @ Y2 )
                                  = ( ap @ Y1 @ Y3 ) )
                               => ( Y0 = Y1 ) ) ) ) ) )
             => ( ( !!
                  @ ^ [Y0: term] :
                      ( !!
                      @ ^ [Y1: term] :
                          ( !!
                          @ ^ [Y2: term] :
                              ( !!
                              @ ^ [Y3: term] :
                                  ( ( ( ap @ Y0 @ Y2 )
                                    = ( ap @ Y1 @ Y3 ) )
                                 => ( Y2 = Y3 ) ) ) ) ) )
               => ( ( !!
                    @ ^ [Y0: term] :
                        ( !!
                        @ ^ [Y1: term] :
                            ( ( ( lam @ Y0 )
                              = ( lam @ Y1 ) )
                           => ( Y0 = Y1 ) ) ) )
                 => ( ( !!
                      @ ^ [Y0: term] :
                          ( !!
                          @ ^ [Y1: term] :
                              ( ( ( sub @ Y0 @ sh )
                                = ( sub @ Y1 @ sh ) )
                             => ( Y0 = Y1 ) ) ) )
                   => ( ( !!
                        @ ^ [Y0: term] :
                            ( !!
                            @ ^ [Y1: term] :
                                ( !!
                                @ ^ [Y2: term] :
                                    ( ( lam @ Y0 )
                                   != ( ap @ Y1 @ Y2 ) ) ) ) )
                     => ( ( !!
                          @ ^ [Y0: term] :
                              ( !!
                              @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
                       => ( ( !!
                            @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
                         => ( ( !!
                              @ ^ [Y0: term > $o] :
                                  ( ( !!
                                    @ ^ [Y1: term] :
                                        ( ( var @ Y1 )
                                       => ( Y0 @ Y1 ) ) )
                                 => ( ( !!
                                      @ ^ [Y1: term] :
                                          ( !!
                                          @ ^ [Y2: term] :
                                              ( ( Y0 @ Y1 )
                                             => ( ( Y0 @ Y2 )
                                               => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                   => ( ( !!
                                        @ ^ [Y1: term] :
                                            ( ( Y0 @ Y1 )
                                           => ( Y0 @ ( lam @ Y1 ) ) ) )
                                     => ( !!
                                        @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                           => ( !!
                              @ ^ [Y0: term > $o] :
                                  ( !!
                                  @ ^ [Y1: term] :
                                      ( !!
                                      @ ^ [Y2: subst] :
                                          ( ( !!
                                            @ ^ [Y3: term] :
                                                ( ( var @ Y3 )
                                               => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                         => ( ( Y0 @ Y1 )
                                           => ( !!
                                              @ ^ [Y3: term] :
                                                  ( ( var @ Y3 )
                                                 => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl44]) ).

thf(zip_derived_cl55,plain,
    ~ ( ( var @ one )
     => ( ( !!
          @ ^ [Y0: term] :
              ( ( var @ Y0 )
             => ( var @ ( sub @ Y0 @ sh ) ) ) )
       => ( ( !!
            @ ^ [Y0: term > $o] :
                ( ( Y0 @ one )
               => ( ( !!
                    @ ^ [Y1: term] :
                        ( ( var @ Y1 )
                       => ( ( Y0 @ Y1 )
                         => ( Y0 @ ( sub @ Y1 @ sh ) ) ) ) )
                 => ( !!
                    @ ^ [Y1: term] :
                        ( ( var @ Y1 )
                       => ( Y0 @ Y1 ) ) ) ) ) )
         => ( ( !!
              @ ^ [Y0: term] :
                  ( !!
                  @ ^ [Y1: term] :
                      ( !!
                      @ ^ [Y2: term] :
                          ( !!
                          @ ^ [Y3: term] :
                              ( ( ( ap @ Y0 @ Y2 )
                                = ( ap @ Y1 @ Y3 ) )
                             => ( Y0 = Y1 ) ) ) ) ) )
           => ( ( !!
                @ ^ [Y0: term] :
                    ( !!
                    @ ^ [Y1: term] :
                        ( !!
                        @ ^ [Y2: term] :
                            ( !!
                            @ ^ [Y3: term] :
                                ( ( ( ap @ Y0 @ Y2 )
                                  = ( ap @ Y1 @ Y3 ) )
                               => ( Y2 = Y3 ) ) ) ) ) )
             => ( ( !!
                  @ ^ [Y0: term] :
                      ( !!
                      @ ^ [Y1: term] :
                          ( ( ( lam @ Y0 )
                            = ( lam @ Y1 ) )
                         => ( Y0 = Y1 ) ) ) )
               => ( ( !!
                    @ ^ [Y0: term] :
                        ( !!
                        @ ^ [Y1: term] :
                            ( ( ( sub @ Y0 @ sh )
                              = ( sub @ Y1 @ sh ) )
                           => ( Y0 = Y1 ) ) ) )
                 => ( ( !!
                      @ ^ [Y0: term] :
                          ( !!
                          @ ^ [Y1: term] :
                              ( !!
                              @ ^ [Y2: term] :
                                  ( ( lam @ Y0 )
                                 != ( ap @ Y1 @ Y2 ) ) ) ) )
                   => ( ( !!
                        @ ^ [Y0: term] :
                            ( !!
                            @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
                     => ( ( !!
                          @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
                       => ( ( !!
                            @ ^ [Y0: term > $o] :
                                ( ( !!
                                  @ ^ [Y1: term] :
                                      ( ( var @ Y1 )
                                     => ( Y0 @ Y1 ) ) )
                               => ( ( !!
                                    @ ^ [Y1: term] :
                                        ( !!
                                        @ ^ [Y2: term] :
                                            ( ( Y0 @ Y1 )
                                           => ( ( Y0 @ Y2 )
                                             => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                 => ( ( !!
                                      @ ^ [Y1: term] :
                                          ( ( Y0 @ Y1 )
                                         => ( Y0 @ ( lam @ Y1 ) ) ) )
                                   => ( !!
                                      @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                         => ( !!
                            @ ^ [Y0: term > $o] :
                                ( !!
                                @ ^ [Y1: term] :
                                    ( !!
                                    @ ^ [Y2: subst] :
                                        ( ( !!
                                          @ ^ [Y3: term] :
                                              ( ( var @ Y3 )
                                             => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                       => ( ( Y0 @ Y1 )
                                         => ( !!
                                            @ ^ [Y3: term] :
                                                ( ( var @ Y3 )
                                               => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl49]) ).

thf(zip_derived_cl59,plain,
    ~ ( ( !!
        @ ^ [Y0: term] :
            ( ( var @ Y0 )
           => ( var @ ( sub @ Y0 @ sh ) ) ) )
     => ( ( !!
          @ ^ [Y0: term > $o] :
              ( ( Y0 @ one )
             => ( ( !!
                  @ ^ [Y1: term] :
                      ( ( var @ Y1 )
                     => ( ( Y0 @ Y1 )
                       => ( Y0 @ ( sub @ Y1 @ sh ) ) ) ) )
               => ( !!
                  @ ^ [Y1: term] :
                      ( ( var @ Y1 )
                     => ( Y0 @ Y1 ) ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: term] :
                ( !!
                @ ^ [Y1: term] :
                    ( !!
                    @ ^ [Y2: term] :
                        ( !!
                        @ ^ [Y3: term] :
                            ( ( ( ap @ Y0 @ Y2 )
                              = ( ap @ Y1 @ Y3 ) )
                           => ( Y0 = Y1 ) ) ) ) ) )
         => ( ( !!
              @ ^ [Y0: term] :
                  ( !!
                  @ ^ [Y1: term] :
                      ( !!
                      @ ^ [Y2: term] :
                          ( !!
                          @ ^ [Y3: term] :
                              ( ( ( ap @ Y0 @ Y2 )
                                = ( ap @ Y1 @ Y3 ) )
                             => ( Y2 = Y3 ) ) ) ) ) )
           => ( ( !!
                @ ^ [Y0: term] :
                    ( !!
                    @ ^ [Y1: term] :
                        ( ( ( lam @ Y0 )
                          = ( lam @ Y1 ) )
                       => ( Y0 = Y1 ) ) ) )
             => ( ( !!
                  @ ^ [Y0: term] :
                      ( !!
                      @ ^ [Y1: term] :
                          ( ( ( sub @ Y0 @ sh )
                            = ( sub @ Y1 @ sh ) )
                         => ( Y0 = Y1 ) ) ) )
               => ( ( !!
                    @ ^ [Y0: term] :
                        ( !!
                        @ ^ [Y1: term] :
                            ( !!
                            @ ^ [Y2: term] :
                                ( ( lam @ Y0 )
                               != ( ap @ Y1 @ Y2 ) ) ) ) )
                 => ( ( !!
                      @ ^ [Y0: term] :
                          ( !!
                          @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
                   => ( ( !!
                        @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
                     => ( ( !!
                          @ ^ [Y0: term > $o] :
                              ( ( !!
                                @ ^ [Y1: term] :
                                    ( ( var @ Y1 )
                                   => ( Y0 @ Y1 ) ) )
                             => ( ( !!
                                  @ ^ [Y1: term] :
                                      ( !!
                                      @ ^ [Y2: term] :
                                          ( ( Y0 @ Y1 )
                                         => ( ( Y0 @ Y2 )
                                           => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                               => ( ( !!
                                    @ ^ [Y1: term] :
                                        ( ( Y0 @ Y1 )
                                       => ( Y0 @ ( lam @ Y1 ) ) ) )
                                 => ( !!
                                    @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                       => ( !!
                          @ ^ [Y0: term > $o] :
                              ( !!
                              @ ^ [Y1: term] :
                                  ( !!
                                  @ ^ [Y2: subst] :
                                      ( ( !!
                                        @ ^ [Y3: term] :
                                            ( ( var @ Y3 )
                                           => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                     => ( ( Y0 @ Y1 )
                                       => ( !!
                                          @ ^ [Y3: term] :
                                              ( ( var @ Y3 )
                                             => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl55]) ).

thf(zip_derived_cl62,plain,
    ~ ( ( !!
        @ ^ [Y0: term > $o] :
            ( ( Y0 @ one )
           => ( ( !!
                @ ^ [Y1: term] :
                    ( ( var @ Y1 )
                   => ( ( Y0 @ Y1 )
                     => ( Y0 @ ( sub @ Y1 @ sh ) ) ) ) )
             => ( !!
                @ ^ [Y1: term] :
                    ( ( var @ Y1 )
                   => ( Y0 @ Y1 ) ) ) ) ) )
     => ( ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: term] :
                  ( !!
                  @ ^ [Y2: term] :
                      ( !!
                      @ ^ [Y3: term] :
                          ( ( ( ap @ Y0 @ Y2 )
                            = ( ap @ Y1 @ Y3 ) )
                         => ( Y0 = Y1 ) ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: term] :
                ( !!
                @ ^ [Y1: term] :
                    ( !!
                    @ ^ [Y2: term] :
                        ( !!
                        @ ^ [Y3: term] :
                            ( ( ( ap @ Y0 @ Y2 )
                              = ( ap @ Y1 @ Y3 ) )
                           => ( Y2 = Y3 ) ) ) ) ) )
         => ( ( !!
              @ ^ [Y0: term] :
                  ( !!
                  @ ^ [Y1: term] :
                      ( ( ( lam @ Y0 )
                        = ( lam @ Y1 ) )
                     => ( Y0 = Y1 ) ) ) )
           => ( ( !!
                @ ^ [Y0: term] :
                    ( !!
                    @ ^ [Y1: term] :
                        ( ( ( sub @ Y0 @ sh )
                          = ( sub @ Y1 @ sh ) )
                       => ( Y0 = Y1 ) ) ) )
             => ( ( !!
                  @ ^ [Y0: term] :
                      ( !!
                      @ ^ [Y1: term] :
                          ( !!
                          @ ^ [Y2: term] :
                              ( ( lam @ Y0 )
                             != ( ap @ Y1 @ Y2 ) ) ) ) )
               => ( ( !!
                    @ ^ [Y0: term] :
                        ( !!
                        @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
                 => ( ( !!
                      @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
                   => ( ( !!
                        @ ^ [Y0: term > $o] :
                            ( ( !!
                              @ ^ [Y1: term] :
                                  ( ( var @ Y1 )
                                 => ( Y0 @ Y1 ) ) )
                           => ( ( !!
                                @ ^ [Y1: term] :
                                    ( !!
                                    @ ^ [Y2: term] :
                                        ( ( Y0 @ Y1 )
                                       => ( ( Y0 @ Y2 )
                                         => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                             => ( ( !!
                                  @ ^ [Y1: term] :
                                      ( ( Y0 @ Y1 )
                                     => ( Y0 @ ( lam @ Y1 ) ) ) )
                               => ( !!
                                  @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                     => ( !!
                        @ ^ [Y0: term > $o] :
                            ( !!
                            @ ^ [Y1: term] :
                                ( !!
                                @ ^ [Y2: subst] :
                                    ( ( !!
                                      @ ^ [Y3: term] :
                                          ( ( var @ Y3 )
                                         => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                   => ( ( Y0 @ Y1 )
                                     => ( !!
                                        @ ^ [Y3: term] :
                                            ( ( var @ Y3 )
                                           => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl59]) ).

thf(zip_derived_cl65,plain,
    ~ ( ( !!
        @ ^ [Y0: term] :
            ( !!
            @ ^ [Y1: term] :
                ( !!
                @ ^ [Y2: term] :
                    ( !!
                    @ ^ [Y3: term] :
                        ( ( ( ap @ Y0 @ Y2 )
                          = ( ap @ Y1 @ Y3 ) )
                       => ( Y0 = Y1 ) ) ) ) ) )
     => ( ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: term] :
                  ( !!
                  @ ^ [Y2: term] :
                      ( !!
                      @ ^ [Y3: term] :
                          ( ( ( ap @ Y0 @ Y2 )
                            = ( ap @ Y1 @ Y3 ) )
                         => ( Y2 = Y3 ) ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: term] :
                ( !!
                @ ^ [Y1: term] :
                    ( ( ( lam @ Y0 )
                      = ( lam @ Y1 ) )
                   => ( Y0 = Y1 ) ) ) )
         => ( ( !!
              @ ^ [Y0: term] :
                  ( !!
                  @ ^ [Y1: term] :
                      ( ( ( sub @ Y0 @ sh )
                        = ( sub @ Y1 @ sh ) )
                     => ( Y0 = Y1 ) ) ) )
           => ( ( !!
                @ ^ [Y0: term] :
                    ( !!
                    @ ^ [Y1: term] :
                        ( !!
                        @ ^ [Y2: term] :
                            ( ( lam @ Y0 )
                           != ( ap @ Y1 @ Y2 ) ) ) ) )
             => ( ( !!
                  @ ^ [Y0: term] :
                      ( !!
                      @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
               => ( ( !!
                    @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
                 => ( ( !!
                      @ ^ [Y0: term > $o] :
                          ( ( !!
                            @ ^ [Y1: term] :
                                ( ( var @ Y1 )
                               => ( Y0 @ Y1 ) ) )
                         => ( ( !!
                              @ ^ [Y1: term] :
                                  ( !!
                                  @ ^ [Y2: term] :
                                      ( ( Y0 @ Y1 )
                                     => ( ( Y0 @ Y2 )
                                       => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                           => ( ( !!
                                @ ^ [Y1: term] :
                                    ( ( Y0 @ Y1 )
                                   => ( Y0 @ ( lam @ Y1 ) ) ) )
                             => ( !!
                                @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                   => ( !!
                      @ ^ [Y0: term > $o] :
                          ( !!
                          @ ^ [Y1: term] :
                              ( !!
                              @ ^ [Y2: subst] :
                                  ( ( !!
                                    @ ^ [Y3: term] :
                                        ( ( var @ Y3 )
                                       => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                 => ( ( Y0 @ Y1 )
                                   => ( !!
                                      @ ^ [Y3: term] :
                                          ( ( var @ Y3 )
                                         => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl62]) ).

thf(zip_derived_cl69,plain,
    ~ ( ( !!
        @ ^ [Y0: term] :
            ( !!
            @ ^ [Y1: term] :
                ( !!
                @ ^ [Y2: term] :
                    ( !!
                    @ ^ [Y3: term] :
                        ( ( ( ap @ Y0 @ Y2 )
                          = ( ap @ Y1 @ Y3 ) )
                       => ( Y2 = Y3 ) ) ) ) ) )
     => ( ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: term] :
                  ( ( ( lam @ Y0 )
                    = ( lam @ Y1 ) )
                 => ( Y0 = Y1 ) ) ) )
       => ( ( !!
            @ ^ [Y0: term] :
                ( !!
                @ ^ [Y1: term] :
                    ( ( ( sub @ Y0 @ sh )
                      = ( sub @ Y1 @ sh ) )
                   => ( Y0 = Y1 ) ) ) )
         => ( ( !!
              @ ^ [Y0: term] :
                  ( !!
                  @ ^ [Y1: term] :
                      ( !!
                      @ ^ [Y2: term] :
                          ( ( lam @ Y0 )
                         != ( ap @ Y1 @ Y2 ) ) ) ) )
           => ( ( !!
                @ ^ [Y0: term] :
                    ( !!
                    @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
             => ( ( !!
                  @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
               => ( ( !!
                    @ ^ [Y0: term > $o] :
                        ( ( !!
                          @ ^ [Y1: term] :
                              ( ( var @ Y1 )
                             => ( Y0 @ Y1 ) ) )
                       => ( ( !!
                            @ ^ [Y1: term] :
                                ( !!
                                @ ^ [Y2: term] :
                                    ( ( Y0 @ Y1 )
                                   => ( ( Y0 @ Y2 )
                                     => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                         => ( ( !!
                              @ ^ [Y1: term] :
                                  ( ( Y0 @ Y1 )
                                 => ( Y0 @ ( lam @ Y1 ) ) ) )
                           => ( !!
                              @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                 => ( !!
                    @ ^ [Y0: term > $o] :
                        ( !!
                        @ ^ [Y1: term] :
                            ( !!
                            @ ^ [Y2: subst] :
                                ( ( !!
                                  @ ^ [Y3: term] :
                                      ( ( var @ Y3 )
                                     => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                               => ( ( Y0 @ Y1 )
                                 => ( !!
                                    @ ^ [Y3: term] :
                                        ( ( var @ Y3 )
                                       => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl65]) ).

thf(zip_derived_cl73,plain,
    ~ ( ( !!
        @ ^ [Y0: term] :
            ( !!
            @ ^ [Y1: term] :
                ( ( ( lam @ Y0 )
                  = ( lam @ Y1 ) )
               => ( Y0 = Y1 ) ) ) )
     => ( ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: term] :
                  ( ( ( sub @ Y0 @ sh )
                    = ( sub @ Y1 @ sh ) )
                 => ( Y0 = Y1 ) ) ) )
       => ( ( !!
            @ ^ [Y0: term] :
                ( !!
                @ ^ [Y1: term] :
                    ( !!
                    @ ^ [Y2: term] :
                        ( ( lam @ Y0 )
                       != ( ap @ Y1 @ Y2 ) ) ) ) )
         => ( ( !!
              @ ^ [Y0: term] :
                  ( !!
                  @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
           => ( ( !!
                @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
             => ( ( !!
                  @ ^ [Y0: term > $o] :
                      ( ( !!
                        @ ^ [Y1: term] :
                            ( ( var @ Y1 )
                           => ( Y0 @ Y1 ) ) )
                     => ( ( !!
                          @ ^ [Y1: term] :
                              ( !!
                              @ ^ [Y2: term] :
                                  ( ( Y0 @ Y1 )
                                 => ( ( Y0 @ Y2 )
                                   => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                       => ( ( !!
                            @ ^ [Y1: term] :
                                ( ( Y0 @ Y1 )
                               => ( Y0 @ ( lam @ Y1 ) ) ) )
                         => ( !!
                            @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
               => ( !!
                  @ ^ [Y0: term > $o] :
                      ( !!
                      @ ^ [Y1: term] :
                          ( !!
                          @ ^ [Y2: subst] :
                              ( ( !!
                                @ ^ [Y3: term] :
                                    ( ( var @ Y3 )
                                   => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                             => ( ( Y0 @ Y1 )
                               => ( !!
                                  @ ^ [Y3: term] :
                                      ( ( var @ Y3 )
                                     => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl69]) ).

thf(zip_derived_cl78,plain,
    ~ ( ( !!
        @ ^ [Y0: term] :
            ( !!
            @ ^ [Y1: term] :
                ( ( ( sub @ Y0 @ sh )
                  = ( sub @ Y1 @ sh ) )
               => ( Y0 = Y1 ) ) ) )
     => ( ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: term] :
                  ( !!
                  @ ^ [Y2: term] :
                      ( ( lam @ Y0 )
                     != ( ap @ Y1 @ Y2 ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: term] :
                ( !!
                @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
         => ( ( !!
              @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
           => ( ( !!
                @ ^ [Y0: term > $o] :
                    ( ( !!
                      @ ^ [Y1: term] :
                          ( ( var @ Y1 )
                         => ( Y0 @ Y1 ) ) )
                   => ( ( !!
                        @ ^ [Y1: term] :
                            ( !!
                            @ ^ [Y2: term] :
                                ( ( Y0 @ Y1 )
                               => ( ( Y0 @ Y2 )
                                 => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                     => ( ( !!
                          @ ^ [Y1: term] :
                              ( ( Y0 @ Y1 )
                             => ( Y0 @ ( lam @ Y1 ) ) ) )
                       => ( !!
                          @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
             => ( !!
                @ ^ [Y0: term > $o] :
                    ( !!
                    @ ^ [Y1: term] :
                        ( !!
                        @ ^ [Y2: subst] :
                            ( ( !!
                              @ ^ [Y3: term] :
                                  ( ( var @ Y3 )
                                 => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                           => ( ( Y0 @ Y1 )
                             => ( !!
                                @ ^ [Y3: term] :
                                    ( ( var @ Y3 )
                                   => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl73]) ).

thf(zip_derived_cl84,plain,
    ~ ( ( !!
        @ ^ [Y0: term] :
            ( !!
            @ ^ [Y1: term] :
                ( !!
                @ ^ [Y2: term] :
                    ( ( lam @ Y0 )
                   != ( ap @ Y1 @ Y2 ) ) ) ) )
     => ( ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
         => ( ( !!
              @ ^ [Y0: term > $o] :
                  ( ( !!
                    @ ^ [Y1: term] :
                        ( ( var @ Y1 )
                       => ( Y0 @ Y1 ) ) )
                 => ( ( !!
                      @ ^ [Y1: term] :
                          ( !!
                          @ ^ [Y2: term] :
                              ( ( Y0 @ Y1 )
                             => ( ( Y0 @ Y2 )
                               => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                   => ( ( !!
                        @ ^ [Y1: term] :
                            ( ( Y0 @ Y1 )
                           => ( Y0 @ ( lam @ Y1 ) ) ) )
                     => ( !!
                        @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
           => ( !!
              @ ^ [Y0: term > $o] :
                  ( !!
                  @ ^ [Y1: term] :
                      ( !!
                      @ ^ [Y2: subst] :
                          ( ( !!
                            @ ^ [Y3: term] :
                                ( ( var @ Y3 )
                               => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                         => ( ( Y0 @ Y1 )
                           => ( !!
                              @ ^ [Y3: term] :
                                  ( ( var @ Y3 )
                                 => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl78]) ).

thf(zip_derived_cl92,plain,
    ~ ( ( !!
        @ ^ [Y0: term] :
            ( !!
            @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
     => ( ( !!
          @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
       => ( ( !!
            @ ^ [Y0: term > $o] :
                ( ( !!
                  @ ^ [Y1: term] :
                      ( ( var @ Y1 )
                     => ( Y0 @ Y1 ) ) )
               => ( ( !!
                    @ ^ [Y1: term] :
                        ( !!
                        @ ^ [Y2: term] :
                            ( ( Y0 @ Y1 )
                           => ( ( Y0 @ Y2 )
                             => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                 => ( ( !!
                      @ ^ [Y1: term] :
                          ( ( Y0 @ Y1 )
                         => ( Y0 @ ( lam @ Y1 ) ) ) )
                   => ( !!
                      @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
         => ( !!
            @ ^ [Y0: term > $o] :
                ( !!
                @ ^ [Y1: term] :
                    ( !!
                    @ ^ [Y2: subst] :
                        ( ( !!
                          @ ^ [Y3: term] :
                              ( ( var @ Y3 )
                             => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                       => ( ( Y0 @ Y1 )
                         => ( !!
                            @ ^ [Y3: term] :
                                ( ( var @ Y3 )
                               => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl84]) ).

thf(zip_derived_cl102,plain,
    ~ ( ( !!
        @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
     => ( ( !!
          @ ^ [Y0: term > $o] :
              ( ( !!
                @ ^ [Y1: term] :
                    ( ( var @ Y1 )
                   => ( Y0 @ Y1 ) ) )
             => ( ( !!
                  @ ^ [Y1: term] :
                      ( !!
                      @ ^ [Y2: term] :
                          ( ( Y0 @ Y1 )
                         => ( ( Y0 @ Y2 )
                           => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
               => ( ( !!
                    @ ^ [Y1: term] :
                        ( ( Y0 @ Y1 )
                       => ( Y0 @ ( lam @ Y1 ) ) ) )
                 => ( !!
                    @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
       => ( !!
          @ ^ [Y0: term > $o] :
              ( !!
              @ ^ [Y1: term] :
                  ( !!
                  @ ^ [Y2: subst] :
                      ( ( !!
                        @ ^ [Y3: term] :
                            ( ( var @ Y3 )
                           => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                     => ( ( Y0 @ Y1 )
                       => ( !!
                          @ ^ [Y3: term] :
                              ( ( var @ Y3 )
                             => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl92]) ).

thf(zip_derived_cl113,plain,
    ~ ( ( !!
        @ ^ [Y0: term > $o] :
            ( ( !!
              @ ^ [Y1: term] :
                  ( ( var @ Y1 )
                 => ( Y0 @ Y1 ) ) )
           => ( ( !!
                @ ^ [Y1: term] :
                    ( !!
                    @ ^ [Y2: term] :
                        ( ( Y0 @ Y1 )
                       => ( ( Y0 @ Y2 )
                         => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
             => ( ( !!
                  @ ^ [Y1: term] :
                      ( ( Y0 @ Y1 )
                     => ( Y0 @ ( lam @ Y1 ) ) ) )
               => ( !!
                  @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
     => ( !!
        @ ^ [Y0: term > $o] :
            ( !!
            @ ^ [Y1: term] :
                ( !!
                @ ^ [Y2: subst] :
                    ( ( !!
                      @ ^ [Y3: term] :
                          ( ( var @ Y3 )
                         => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                   => ( ( Y0 @ Y1 )
                     => ( !!
                        @ ^ [Y3: term] :
                            ( ( var @ Y3 )
                           => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl102]) ).

thf(zip_derived_cl122,plain,
    ~ ( !!
      @ ^ [Y0: term > $o] :
          ( !!
          @ ^ [Y1: term] :
              ( !!
              @ ^ [Y2: subst] :
                  ( ( !!
                    @ ^ [Y3: term] :
                        ( ( var @ Y3 )
                       => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                 => ( ( Y0 @ Y1 )
                   => ( !!
                      @ ^ [Y3: term] :
                          ( ( var @ Y3 )
                         => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl113]) ).

thf(zip_derived_cl127,plain,
    ~ ( !!
      @ ^ [Y0: term] :
          ( !!
          @ ^ [Y1: subst] :
              ( ( !!
                @ ^ [Y2: term] :
                    ( ( var @ Y2 )
                   => ( '#sk30' @ ( sub @ Y2 @ Y1 ) ) ) )
             => ( ( '#sk30' @ Y0 )
               => ( !!
                  @ ^ [Y2: term] :
                      ( ( var @ Y2 )
                     => ( '#sk30' @ ( sub @ Y2 @ ( push @ Y0 @ Y1 ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_exists,[status(thm)],[zip_derived_cl122]) ).

thf(zip_derived_cl129,plain,
    ~ ( !!
      @ ^ [Y0: subst] :
          ( ( !!
            @ ^ [Y1: term] :
                ( ( var @ Y1 )
               => ( '#sk30' @ ( sub @ Y1 @ Y0 ) ) ) )
         => ( ( '#sk30' @ '#sk39' )
           => ( !!
              @ ^ [Y1: term] :
                  ( ( var @ Y1 )
                 => ( '#sk30' @ ( sub @ Y1 @ ( push @ '#sk39' @ Y0 ) ) ) ) ) ) ) ),
    inference(lazy_cnf_exists,[status(thm)],[zip_derived_cl127]) ).

thf(zip_derived_cl131,plain,
    ~ ( ( !!
        @ ^ [Y0: term] :
            ( ( var @ Y0 )
           => ( '#sk30' @ ( sub @ Y0 @ '#sk49' ) ) ) )
     => ( ( '#sk30' @ '#sk39' )
       => ( !!
          @ ^ [Y0: term] :
              ( ( var @ Y0 )
             => ( '#sk30' @ ( sub @ Y0 @ ( push @ '#sk39' @ '#sk49' ) ) ) ) ) ) ),
    inference(lazy_cnf_exists,[status(thm)],[zip_derived_cl129]) ).

thf(zip_derived_cl135,plain,
    ~ ( ( '#sk30' @ '#sk39' )
     => ( !!
        @ ^ [Y0: term] :
            ( ( var @ Y0 )
           => ( '#sk30' @ ( sub @ Y0 @ ( push @ '#sk39' @ '#sk49' ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl131]) ).

thf(zip_derived_cl140,plain,
    ~ ( !!
      @ ^ [Y0: term] :
          ( ( var @ Y0 )
         => ( '#sk30' @ ( sub @ Y0 @ ( push @ '#sk39' @ '#sk49' ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl135]) ).

thf(zip_derived_cl144,plain,
    ~ ( ( var
        @ ( '#sk48'
          @ ^ [Y0: term] : ( '#sk30' @ ( sub @ Y0 @ ( push @ '#sk39' @ '#sk49' ) ) ) ) )
     => ( '#sk30'
        @ ( sub
          @ ( '#sk48'
            @ ^ [Y0: term] : ( '#sk30' @ ( sub @ Y0 @ ( push @ '#sk39' @ '#sk49' ) ) ) )
          @ ( push @ '#sk39' @ '#sk49' ) ) ) ),
    inference(lazy_cnf_exists,[status(thm)],[zip_derived_cl140]) ).

thf(zip_derived_cl147,plain,
    ( var
    @ ( '#sk48'
      @ ^ [Y0: term] : ( '#sk30' @ ( sub @ Y0 @ ( push @ '#sk39' @ '#sk49' ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl144]) ).

thf(zip_derived_cl147_001,plain,
    ( var
    @ ( '#sk48'
      @ ^ [Y0: term] : ( '#sk30' @ ( sub @ Y0 @ ( push @ '#sk39' @ '#sk49' ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl144]) ).

thf(zip_derived_cl12171,plain,
    ! [X1: term] :
      ( ( '#l_lift15327' @ X1 )
      = ( '#sk30' @ ( sub @ X1 @ ( push @ '#sk39' @ '#sk49' ) ) ) ),
    define([status(thm)]) ).

thf(zip_derived_cl12172,plain,
    var @ ( '#sk48' @ '#l_lift15327' ),
    inference(lambda_lifting,[status(thm)],[zip_derived_cl147,zip_derived_cl12171]) ).

thf(zip_derived_cl148,plain,
    ~ ( '#sk30'
      @ ( sub
        @ ( '#sk48'
          @ ^ [Y0: term] : ( '#sk30' @ ( sub @ Y0 @ ( push @ '#sk39' @ '#sk49' ) ) ) )
        @ ( push @ '#sk39' @ '#sk49' ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl144]) ).

thf(zip_derived_cl12171_002,plain,
    ! [X1: term] :
      ( ( '#l_lift15327' @ X1 )
      = ( '#sk30' @ ( sub @ X1 @ ( push @ '#sk39' @ '#sk49' ) ) ) ),
    define([status(thm)]) ).

thf(zip_derived_cl12173,plain,
    ~ ( '#sk30' @ ( sub @ ( '#sk48' @ '#l_lift15327' ) @ ( push @ '#sk39' @ '#sk49' ) ) ),
    inference(lambda_lifting,[status(thm)],[zip_derived_cl148,zip_derived_cl12171]) ).

thf(zip_derived_cl134,plain,
    ( !!
    @ ^ [Y0: term] :
        ( ( var @ Y0 )
       => ( '#sk30' @ ( sub @ Y0 @ '#sk49' ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl131]) ).

thf(zip_derived_cl138,plain,
    ! [X2: term] :
      ( ( var @ X2 )
     => ( '#sk30' @ ( sub @ X2 @ '#sk49' ) ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl134]) ).

thf(zip_derived_cl143,plain,
    ! [X2: term] :
      ( ~ ( var @ X2 )
      | ( '#sk30' @ ( sub @ X2 @ '#sk49' ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl138]) ).

thf(zip_derived_cl64,plain,
    ( !!
    @ ^ [Y0: term > $o] :
        ( ( Y0 @ one )
       => ( ( !!
            @ ^ [Y1: term] :
                ( ( var @ Y1 )
               => ( ( Y0 @ Y1 )
                 => ( Y0 @ ( sub @ Y1 @ sh ) ) ) ) )
         => ( !!
            @ ^ [Y1: term] :
                ( ( var @ Y1 )
               => ( Y0 @ Y1 ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl62]) ).

thf(zip_derived_cl67,plain,
    ! [X2: term > $o] :
      ( ( X2 @ one )
     => ( ( !!
          @ ^ [Y0: term] :
              ( ( var @ Y0 )
             => ( ( X2 @ Y0 )
               => ( X2 @ ( sub @ Y0 @ sh ) ) ) ) )
       => ( !!
          @ ^ [Y0: term] :
              ( ( var @ Y0 )
             => ( X2 @ Y0 ) ) ) ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl64]) ).

thf(zip_derived_cl171,plain,
    ( ( '#sk30' @ ( sub @ one @ ( push @ '#sk39' @ '#sk49' ) ) )
   => ( ( !!
        @ ^ [Y0: term] :
            ( ( var @ Y0 )
           => ( ( '#sk30' @ ( sub @ Y0 @ ( push @ '#sk39' @ '#sk49' ) ) )
             => ( '#sk30' @ ( sub @ ( sub @ Y0 @ sh ) @ ( push @ '#sk39' @ '#sk49' ) ) ) ) ) )
     => ( !!
        @ ^ [Y0: term] :
            ( ( var @ Y0 )
           => ( '#sk30' @ ( sub @ Y0 @ ( push @ '#sk39' @ '#sk49' ) ) ) ) ) ) ),
    inference(triggered_bool_instantiation,[status(thm)],[zip_derived_cl67]) ).

thf(zip_derived_cl4,plain,
    ( !!
    @ ^ [Y0: term] :
        ( !!
        @ ^ [Y1: subst] :
            ( ( sub @ one @ ( push @ Y0 @ Y1 ) )
            = Y0 ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl2]) ).

thf(zip_derived_cl7,plain,
    ! [X2: term] :
      ( !!
      @ ^ [Y0: subst] :
          ( ( sub @ one @ ( push @ X2 @ Y0 ) )
          = X2 ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl4]) ).

thf(zip_derived_cl11,plain,
    ! [X2: term,X4: subst] :
      ( ( sub @ one @ ( push @ X2 @ X4 ) )
      = X2 ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl7]) ).

thf(zip_derived_cl16,plain,
    ! [X2: term,X4: subst] :
      ( ( sub @ one @ ( push @ X2 @ X4 ) )
      = X2 ),
    inference('simplify nested equalities',[status(thm)],[zip_derived_cl11]) ).

thf(zip_derived_cl139,plain,
    '#sk30' @ '#sk39',
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl135]) ).

thf(zip_derived_cl205,plain,
    ( $true
   => ( ( !!
        @ ^ [Y0: term] :
            ( ( var @ Y0 )
           => ( ( '#sk30' @ ( sub @ Y0 @ ( push @ '#sk39' @ '#sk49' ) ) )
             => ( '#sk30' @ ( sub @ ( sub @ Y0 @ sh ) @ ( push @ '#sk39' @ '#sk49' ) ) ) ) ) )
     => ( !!
        @ ^ [Y0: term] :
            ( ( var @ Y0 )
           => ( '#sk30' @ ( sub @ Y0 @ ( push @ '#sk39' @ '#sk49' ) ) ) ) ) ) ),
    inference(demod,[status(thm)],[zip_derived_cl171,zip_derived_cl16,zip_derived_cl139]) ).

thf(zip_derived_cl206,plain,
    ( ( !!
      @ ^ [Y0: term] :
          ( ( var @ Y0 )
         => ( ( '#sk30' @ ( sub @ Y0 @ ( push @ '#sk39' @ '#sk49' ) ) )
           => ( '#sk30' @ ( sub @ ( sub @ Y0 @ sh ) @ ( push @ '#sk39' @ '#sk49' ) ) ) ) ) )
   => ( !!
      @ ^ [Y0: term] :
          ( ( var @ Y0 )
         => ( '#sk30' @ ( sub @ Y0 @ ( push @ '#sk39' @ '#sk49' ) ) ) ) ) ),
    inference('simplify boolean subterms',[status(thm)],[zip_derived_cl205]) ).

thf(zip_derived_cl207,plain,
    ( ~ ( !!
        @ ^ [Y0: term] :
            ( ( var @ Y0 )
           => ( ( '#sk30' @ ( sub @ Y0 @ ( push @ '#sk39' @ '#sk49' ) ) )
             => ( '#sk30' @ ( sub @ ( sub @ Y0 @ sh ) @ ( push @ '#sk39' @ '#sk49' ) ) ) ) ) )
    | ( !!
      @ ^ [Y0: term] :
          ( ( var @ Y0 )
         => ( '#sk30' @ ( sub @ Y0 @ ( push @ '#sk39' @ '#sk49' ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl206]) ).

thf(zip_derived_cl208,plain,
    ( ~ ( ( var
          @ ( '#sk10'
            @ ^ [Y0: term] : ( '#sk30' @ ( sub @ Y0 @ ( push @ '#sk39' @ '#sk49' ) ) ) ) )
       => ( ( '#sk30'
            @ ( sub
              @ ( '#sk10'
                @ ^ [Y0: term] : ( '#sk30' @ ( sub @ Y0 @ ( push @ '#sk39' @ '#sk49' ) ) ) )
              @ ( push @ '#sk39' @ '#sk49' ) ) )
         => ( '#sk30'
            @ ( sub
              @ ( sub
                @ ( '#sk10'
                  @ ^ [Y0: term] : ( '#sk30' @ ( sub @ Y0 @ ( push @ '#sk39' @ '#sk49' ) ) ) )
                @ sh )
              @ ( push @ '#sk39' @ '#sk49' ) ) ) ) )
    | ( !!
      @ ^ [Y0: term] :
          ( ( var @ Y0 )
         => ( '#sk30' @ ( sub @ Y0 @ ( push @ '#sk39' @ '#sk49' ) ) ) ) ) ),
    inference(lazy_cnf_exists,[status(thm)],[zip_derived_cl207]) ).

thf(zip_derived_cl19,plain,
    ( !!
    @ ^ [Y0: term] :
        ( !!
        @ ^ [Y1: subst] :
            ( !!
            @ ^ [Y2: subst] :
                ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl14]) ).

thf(zip_derived_cl22,plain,
    ! [X2: term] :
      ( !!
      @ ^ [Y0: subst] :
          ( !!
          @ ^ [Y1: subst] :
              ( ( sub @ ( sub @ X2 @ Y0 ) @ Y1 )
              = ( sub @ X2 @ ( comp @ Y0 @ Y1 ) ) ) ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl19]) ).

thf(zip_derived_cl26,plain,
    ! [X2: term,X4: subst] :
      ( !!
      @ ^ [Y0: subst] :
          ( ( sub @ ( sub @ X2 @ X4 ) @ Y0 )
          = ( sub @ X2 @ ( comp @ X4 @ Y0 ) ) ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl22]) ).

thf(zip_derived_cl30,plain,
    ! [X2: term,X4: subst,X6: subst] :
      ( ( sub @ ( sub @ X2 @ X4 ) @ X6 )
      = ( sub @ X2 @ ( comp @ X4 @ X6 ) ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl26]) ).

thf(zip_derived_cl35,plain,
    ! [X2: term,X4: subst,X6: subst] :
      ( ( sub @ ( sub @ X2 @ X4 ) @ X6 )
      = ( sub @ X2 @ ( comp @ X4 @ X6 ) ) ),
    inference('simplify nested equalities',[status(thm)],[zip_derived_cl30]) ).

thf(zip_derived_cl28,plain,
    ( !!
    @ ^ [Y0: term] :
        ( !!
        @ ^ [Y1: subst] :
            ( ( comp @ sh @ ( push @ Y0 @ Y1 ) )
            = Y1 ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl24]) ).

thf(zip_derived_cl32,plain,
    ! [X2: term] :
      ( !!
      @ ^ [Y0: subst] :
          ( ( comp @ sh @ ( push @ X2 @ Y0 ) )
          = Y0 ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl28]) ).

thf(zip_derived_cl36,plain,
    ! [X2: term,X4: subst] :
      ( ( comp @ sh @ ( push @ X2 @ X4 ) )
      = X4 ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl32]) ).

thf(zip_derived_cl40,plain,
    ! [X2: term,X4: subst] :
      ( ( comp @ sh @ ( push @ X2 @ X4 ) )
      = X4 ),
    inference('simplify nested equalities',[status(thm)],[zip_derived_cl36]) ).

thf(zip_derived_cl209,plain,
    ( ~ ( ( var
          @ ( '#sk10'
            @ ^ [Y0: term] : ( '#sk30' @ ( sub @ Y0 @ ( push @ '#sk39' @ '#sk49' ) ) ) ) )
       => ( ( '#sk30'
            @ ( sub
              @ ( '#sk10'
                @ ^ [Y0: term] : ( '#sk30' @ ( sub @ Y0 @ ( push @ '#sk39' @ '#sk49' ) ) ) )
              @ ( push @ '#sk39' @ '#sk49' ) ) )
         => ( '#sk30'
            @ ( sub
              @ ( '#sk10'
                @ ^ [Y0: term] : ( '#sk30' @ ( sub @ Y0 @ ( push @ '#sk39' @ '#sk49' ) ) ) )
              @ '#sk49' ) ) ) )
    | ( !!
      @ ^ [Y0: term] :
          ( ( var @ Y0 )
         => ( '#sk30' @ ( sub @ Y0 @ ( push @ '#sk39' @ '#sk49' ) ) ) ) ) ),
    inference(demod,[status(thm)],[zip_derived_cl208,zip_derived_cl35,zip_derived_cl40]) ).

thf(zip_derived_cl211,plain,
    ( ~ ( ( '#sk30'
          @ ( sub
            @ ( '#sk10'
              @ ^ [Y0: term] : ( '#sk30' @ ( sub @ Y0 @ ( push @ '#sk39' @ '#sk49' ) ) ) )
            @ ( push @ '#sk39' @ '#sk49' ) ) )
       => ( '#sk30'
          @ ( sub
            @ ( '#sk10'
              @ ^ [Y0: term] : ( '#sk30' @ ( sub @ Y0 @ ( push @ '#sk39' @ '#sk49' ) ) ) )
            @ '#sk49' ) ) )
    | ( !!
      @ ^ [Y0: term] :
          ( ( var @ Y0 )
         => ( '#sk30' @ ( sub @ Y0 @ ( push @ '#sk39' @ '#sk49' ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl209]) ).

thf(zip_derived_cl214,plain,
    ( ~ ( '#sk30'
        @ ( sub
          @ ( '#sk10'
            @ ^ [Y0: term] : ( '#sk30' @ ( sub @ Y0 @ ( push @ '#sk39' @ '#sk49' ) ) ) )
          @ '#sk49' ) )
    | ( !!
      @ ^ [Y0: term] :
          ( ( var @ Y0 )
         => ( '#sk30' @ ( sub @ Y0 @ ( push @ '#sk39' @ '#sk49' ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl211]) ).

thf(zip_derived_cl217,plain,
    ! [X2: term] :
      ( ( ( var @ X2 )
       => ( '#sk30' @ ( sub @ X2 @ ( push @ '#sk39' @ '#sk49' ) ) ) )
      | ~ ( '#sk30'
          @ ( sub
            @ ( '#sk10'
              @ ^ [Y0: term] : ( '#sk30' @ ( sub @ Y0 @ ( push @ '#sk39' @ '#sk49' ) ) ) )
            @ '#sk49' ) ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl214]) ).

thf(zip_derived_cl219,plain,
    ! [X2: term] :
      ( ~ ( var @ X2 )
      | ( '#sk30' @ ( sub @ X2 @ ( push @ '#sk39' @ '#sk49' ) ) )
      | ~ ( '#sk30'
          @ ( sub
            @ ( '#sk10'
              @ ^ [Y0: term] : ( '#sk30' @ ( sub @ Y0 @ ( push @ '#sk39' @ '#sk49' ) ) ) )
            @ '#sk49' ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl217]) ).

thf(zip_derived_cl12171_003,plain,
    ! [X1: term] :
      ( ( '#l_lift15327' @ X1 )
      = ( '#sk30' @ ( sub @ X1 @ ( push @ '#sk39' @ '#sk49' ) ) ) ),
    define([status(thm)]) ).

thf(zip_derived_cl12176,plain,
    ! [X2: term] :
      ( ~ ( var @ X2 )
      | ( '#sk30' @ ( sub @ X2 @ ( push @ '#sk39' @ '#sk49' ) ) )
      | ~ ( '#sk30' @ ( sub @ ( '#sk10' @ '#l_lift15327' ) @ '#sk49' ) ) ),
    inference(lambda_lifting,[status(thm)],[zip_derived_cl219,zip_derived_cl12171]) ).

thf(zip_derived_cl210,plain,
    ( ( var
      @ ( '#sk10'
        @ ^ [Y0: term] : ( '#sk30' @ ( sub @ Y0 @ ( push @ '#sk39' @ '#sk49' ) ) ) ) )
    | ( !!
      @ ^ [Y0: term] :
          ( ( var @ Y0 )
         => ( '#sk30' @ ( sub @ Y0 @ ( push @ '#sk39' @ '#sk49' ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl209]) ).

thf(zip_derived_cl212,plain,
    ! [X2: term] :
      ( ( ( var @ X2 )
       => ( '#sk30' @ ( sub @ X2 @ ( push @ '#sk39' @ '#sk49' ) ) ) )
      | ( var
        @ ( '#sk10'
          @ ^ [Y0: term] : ( '#sk30' @ ( sub @ Y0 @ ( push @ '#sk39' @ '#sk49' ) ) ) ) ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl210]) ).

thf(zip_derived_cl215,plain,
    ! [X2: term] :
      ( ~ ( var @ X2 )
      | ( '#sk30' @ ( sub @ X2 @ ( push @ '#sk39' @ '#sk49' ) ) )
      | ( var
        @ ( '#sk10'
          @ ^ [Y0: term] : ( '#sk30' @ ( sub @ Y0 @ ( push @ '#sk39' @ '#sk49' ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl212]) ).

thf(zip_derived_cl12171_004,plain,
    ! [X1: term] :
      ( ( '#l_lift15327' @ X1 )
      = ( '#sk30' @ ( sub @ X1 @ ( push @ '#sk39' @ '#sk49' ) ) ) ),
    define([status(thm)]) ).

thf(zip_derived_cl12174,plain,
    ! [X2: term] :
      ( ~ ( var @ X2 )
      | ( '#sk30' @ ( sub @ X2 @ ( push @ '#sk39' @ '#sk49' ) ) )
      | ( var @ ( '#sk10' @ '#l_lift15327' ) ) ),
    inference(lambda_lifting,[status(thm)],[zip_derived_cl215,zip_derived_cl12171]) ).

thf(zip_derived_cl12183,plain,
    $false,
    inference(eprover,[status(thm)],[zip_derived_cl12172,zip_derived_cl12173,zip_derived_cl143,zip_derived_cl12176,zip_derived_cl12174]) ).


%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.13  % Problem  : ALG251^1 : TPTP v8.1.2. Bugfixed v5.2.0.
% 0.00/0.14  % Command  : python3 /export/starexec/sandbox2/solver/bin/portfolio.lams.parallel.py %s %d /export/starexec/sandbox2/tmp/tmp.O7AbLhuUNj true
% 0.15/0.36  % Computer : n014.cluster.edu
% 0.15/0.36  % Model    : x86_64 x86_64
% 0.15/0.36  % CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.15/0.36  % Memory   : 8042.1875MB
% 0.15/0.36  % OS       : Linux 3.10.0-693.el7.x86_64
% 0.15/0.36  % CPULimit : 300
% 0.15/0.36  % WCLimit  : 300
% 0.15/0.36  % DateTime : Mon Aug 28 04:19:01 EDT 2023
% 0.15/0.36  % CPUTime  : 
% 0.15/0.36  % Running portfolio for 300 s
% 0.15/0.36  % File         : /export/starexec/sandbox2/benchmark/theBenchmark.p
% 0.15/0.36  % Number of cores: 8
% 0.15/0.36  % Python version: Python 3.6.8
% 0.15/0.36  % Running in HO mode
% 0.22/0.65  % Total configuration time : 828
% 0.22/0.65  % Estimated wc time : 1656
% 0.22/0.65  % Estimated cpu time (8 cpus) : 207.0
% 0.22/0.73  % /export/starexec/sandbox2/solver/bin/lams/40_c.s.sh running for 80s
% 0.22/0.77  % /export/starexec/sandbox2/solver/bin/lams/35_full_unif4.sh running for 80s
% 0.22/0.78  % /export/starexec/sandbox2/solver/bin/lams/40_c_ic.sh running for 80s
% 0.22/0.78  % /export/starexec/sandbox2/solver/bin/lams/40_noforms.sh running for 90s
% 0.22/0.78  % /export/starexec/sandbox2/solver/bin/lams/15_e_short1.sh running for 30s
% 0.22/0.79  % /export/starexec/sandbox2/solver/bin/lams/40_b.comb.sh running for 70s
% 0.22/0.79  % /export/starexec/sandbox2/solver/bin/lams/30_sp5.sh running for 60s
% 0.22/0.80  % /export/starexec/sandbox2/solver/bin/lams/20_acsne_simpl.sh running for 40s
% 0.22/0.84  % /export/starexec/sandbox2/solver/bin/lams/30_b.l.sh running for 90s
% 49.01/6.98  % Solved by lams/20_acsne_simpl.sh.
% 49.01/6.98  % done 540 iterations in 6.097s
% 49.01/6.98  % SZS status Theorem for '/export/starexec/sandbox2/benchmark/theBenchmark.p'
% 49.01/6.98  % SZS output start Refutation
% See solution above
% 49.01/6.99  
% 49.01/6.99  
% 49.01/6.99  % Terminating...
% 49.70/7.09  % Runner terminated.
% 49.70/7.10  % Zipperpin 1.5 exiting
%------------------------------------------------------------------------------